mirror of
https://github.com/jellyfin/jellyfin-kodi.git
synced 2024-12-26 02:36:10 +00:00
Validate strings for translation
This commit is contained in:
parent
b00bd7b1b7
commit
748c65efe7
2 changed files with 66 additions and 63 deletions
|
@ -126,21 +126,10 @@
|
||||||
<string id="30140"> - Loop Theme Music</string>
|
<string id="30140"> - Loop Theme Music</string>
|
||||||
<string id="30141">Enable Background Image (Requires Restart)</string>
|
<string id="30141">Enable Background Image (Requires Restart)</string>
|
||||||
<string id="30142">Services</string>
|
<string id="30142">Services</string>
|
||||||
<string id="30143">Enable Info Loader (Requires Restart)</string>
|
|
||||||
<string id="30144">Enable Menu Loader (Requires Restart)</string>
|
|
||||||
<string id="30145">Enable WebSocket Remote (Requires Restart)</string>
|
|
||||||
<string id="30146">Enable In Progress Loader (Requires Restart)</string>
|
|
||||||
<string id="30147">Enable Recent Info Loader (Requires Restart)</string>
|
|
||||||
<string id="30148">Enable Random Loader (Requires Restart)</string>
|
|
||||||
<string id="30149">Enable Next Up Loader (Requires Restart)</string>
|
|
||||||
|
|
||||||
<string id="30150">Skin does not support setting views</string>
|
<string id="30150">Skin does not support setting views</string>
|
||||||
<string id="30151">Select item action (Requires Restart)</string>
|
<string id="30151">Select item action (Requires Restart)</string>
|
||||||
|
|
||||||
<string id="30152">Show Indicators</string>
|
|
||||||
<string id="30153"> - Show Watched Indicator</string>
|
|
||||||
<string id="30154"> - Show Unplayed Count Indicator</string>
|
|
||||||
<string id="30155"> - Show Played Percentage Indicator</string>
|
|
||||||
<string id="30156">Sort NextUp by Show Title</string>
|
<string id="30156">Sort NextUp by Show Title</string>
|
||||||
<string id="30157">Enable Enhanced Images (eg CoverArt)</string><!-- Verified -->
|
<string id="30157">Enable Enhanced Images (eg CoverArt)</string><!-- Verified -->
|
||||||
<string id="30158">Metadata</string>
|
<string id="30158">Metadata</string>
|
||||||
|
@ -158,19 +147,19 @@
|
||||||
<string id="30168">Found server</string>
|
<string id="30168">Found server</string>
|
||||||
<string id="30169">Address : </string>
|
<string id="30169">Address : </string>
|
||||||
|
|
||||||
|
<!-- Video nodes -->
|
||||||
<string id="30170">Recently Added Tv Shows</string>
|
<string id="30170">Recently Added TV Shows</string><!-- Verified -->
|
||||||
<string id="30171">In Progress Tv Shows</string>
|
<string id="30171">In Progress TV Shows</string><!-- Verified -->
|
||||||
<string id="30172">All Music</string>
|
<string id="30172">All Music</string>
|
||||||
<string id="30173">Channels</string>
|
<string id="30173">Channels</string><!-- Verified -->
|
||||||
<string id="30174">Recently Added Movies</string>
|
<string id="30174">Recently Added Movies</string><!-- Verified -->
|
||||||
<string id="30175">Recently Added Episodes</string>
|
<string id="30175">Recently Added Episodes</string><!-- Verified -->
|
||||||
<string id="30176">Recently Added Albums</string>
|
<string id="30176">Recently Added Albums</string>
|
||||||
<string id="30177">In Progress Movies</string>
|
<string id="30177">In Progress Movies</string><!-- Verified -->
|
||||||
<string id="30178">In Progress Episodes</string>
|
<string id="30178">In Progress Episodes</string><!-- Verified -->
|
||||||
<string id="30179">Next Episodes</string>
|
<string id="30179">Next Episodes</string><!-- Verified -->
|
||||||
<string id="30180">Favorite Movies</string>
|
<string id="30180">Favorite Movies</string><!-- Verified -->
|
||||||
<string id="30181">Favorite Shows</string>
|
<string id="30181">Favorite Shows</string><!-- Verified -->
|
||||||
<string id="30182">Favorite Episodes</string>
|
<string id="30182">Favorite Episodes</string>
|
||||||
<string id="30183">Frequent Played Albums</string>
|
<string id="30183">Frequent Played Albums</string>
|
||||||
<string id="30184">Upcoming TV</string>
|
<string id="30184">Upcoming TV</string>
|
||||||
|
@ -178,7 +167,7 @@
|
||||||
<string id="30186">Trailers</string>
|
<string id="30186">Trailers</string>
|
||||||
<string id="30187">Music Videos</string>
|
<string id="30187">Music Videos</string>
|
||||||
<string id="30188">Photos</string>
|
<string id="30188">Photos</string>
|
||||||
<string id="30189">Unwatched Movies</string>
|
<string id="30189">Unwatched Movies</string><!-- Verified -->
|
||||||
<string id="30190">Movie Genres</string>
|
<string id="30190">Movie Genres</string>
|
||||||
<string id="30191">Movie Studios</string>
|
<string id="30191">Movie Studios</string>
|
||||||
<string id="30192">Movie Actors</string>
|
<string id="30192">Movie Actors</string>
|
||||||
|
@ -220,8 +209,8 @@
|
||||||
|
|
||||||
<string id="30227">Random Movies</string>
|
<string id="30227">Random Movies</string>
|
||||||
<string id="30228">Random Episodes</string>
|
<string id="30228">Random Episodes</string>
|
||||||
<string id="30229">Random Items</string>
|
<string id="30229">Random Items</string><!-- Verified -->
|
||||||
<string id="30230">Recommended Items</string>
|
<string id="30230">Recommended Items</string><!-- Verified -->
|
||||||
|
|
||||||
<string id="30235">Extras</string><!-- Verified -->
|
<string id="30235">Extras</string><!-- Verified -->
|
||||||
<string id="30236">Sync Theme Music</string>
|
<string id="30236">Sync Theme Music</string>
|
||||||
|
@ -233,18 +222,22 @@
|
||||||
<string id="30241">DB Sync Indication:</string>
|
<string id="30241">DB Sync Indication:</string>
|
||||||
<string id="30242">Play Count Sync Indication:</string>
|
<string id="30242">Play Count Sync Indication:</string>
|
||||||
<string id="30243">Enable HTTPS</string><!-- Verified -->
|
<string id="30243">Enable HTTPS</string><!-- Verified -->
|
||||||
|
<string id="30245">Force Transcoding Codecs</string>
|
||||||
|
|
||||||
|
<string id="30246">Enable Netflix style next up notification</string>
|
||||||
|
<string id="30247"> - The number of seconds before the end to show the notification</string>
|
||||||
|
<string id="30248">Show Emby Info dialog on play/select action</string>
|
||||||
<string id="30249">Enable server connection message on startup</string><!-- Verified -->
|
<string id="30249">Enable server connection message on startup</string><!-- Verified -->
|
||||||
|
|
||||||
<string id="30251">Recently added Home Videos</string>
|
<string id="30251">Recently added Home Videos</string><!-- Verified -->
|
||||||
<string id="30252">Recently added Photos</string>
|
<string id="30252">Recently added Photos</string><!-- Verified -->
|
||||||
<string id="30253">Favourite Home Videos</string>
|
<string id="30253">Favourite Home Videos</string><!-- Verified -->
|
||||||
<string id="30254">Favourite Photos</string>
|
<string id="30254">Favourite Photos</string><!-- Verified -->
|
||||||
<string id="30255">Favourite Albums</string>
|
<string id="30255">Favourite Albums</string>
|
||||||
|
|
||||||
<string id="30256">Recently added Music videos</string>
|
<string id="30256">Recently added Music videos</string><!-- Verified -->
|
||||||
<string id="30257">In progress Music videos</string>
|
<string id="30257">In progress Music videos</string><!-- Verified -->
|
||||||
<string id="30258">Unwatched Music videos</string>
|
<string id="30258">Unwatched Music videos</string><!-- Verified -->
|
||||||
|
|
||||||
<!-- Default views -->
|
<!-- Default views -->
|
||||||
<string id="30300">Active</string>
|
<string id="30300">Active</string>
|
||||||
|
@ -305,8 +298,8 @@
|
||||||
<string id="30529">Startup delay (in seconds)</string>
|
<string id="30529">Startup delay (in seconds)</string>
|
||||||
<string id="30530">Enable server restart message</string>
|
<string id="30530">Enable server restart message</string>
|
||||||
<string id="30531">Enable new content notification</string>
|
<string id="30531">Enable new content notification</string>
|
||||||
<string id="30532">Duration for the video library (in seconds)</string>
|
<string id="30532">For the video library (in seconds)</string>
|
||||||
<string id="30533">Duration for the music library (in seconds)</string>
|
<string id="30533">For the music library (in seconds)</string>
|
||||||
|
|
||||||
<!-- service add-on -->
|
<!-- service add-on -->
|
||||||
<string id="33000">Welcome</string>
|
<string id="33000">Welcome</string>
|
||||||
|
|
|
@ -54,6 +54,7 @@ class VideoNodes(object):
|
||||||
|
|
||||||
def viewNode(self, indexnumber, tagname, mediatype, viewtype, delete=False):
|
def viewNode(self, indexnumber, tagname, mediatype, viewtype, delete=False):
|
||||||
|
|
||||||
|
window = utils.window
|
||||||
kodiversion = self.kodiversion
|
kodiversion = self.kodiversion
|
||||||
|
|
||||||
cleantagname = utils.normalize_nodes(tagname.encode('utf-8'))
|
cleantagname = utils.normalize_nodes(tagname.encode('utf-8'))
|
||||||
|
@ -92,13 +93,13 @@ class VideoNodes(object):
|
||||||
path = "library://video/Emby - %s/" % dirname
|
path = "library://video/Emby - %s/" % dirname
|
||||||
for i in range(1, indexnumber):
|
for i in range(1, indexnumber):
|
||||||
# Verify to make sure we don't create duplicates
|
# Verify to make sure we don't create duplicates
|
||||||
if utils.window('Emby.nodes.%s.index' % i) == path:
|
if window('Emby.nodes.%s.index' % i) == path:
|
||||||
return
|
return
|
||||||
|
|
||||||
if mediatype=="photos":
|
if mediatype == "photos":
|
||||||
path = "plugin://plugin.video.emby/?id=%s&mode=getsubfolders" % indexnumber
|
path = "plugin://plugin.video.emby/?id=%s&mode=getsubfolders" % indexnumber
|
||||||
|
|
||||||
utils.window('Emby.nodes.%s.index' % indexnumber, value=path)
|
window('Emby.nodes.%s.index' % indexnumber, value=path)
|
||||||
|
|
||||||
# Root
|
# Root
|
||||||
if not mediatype=="photos":
|
if not mediatype=="photos":
|
||||||
|
@ -163,13 +164,14 @@ class VideoNodes(object):
|
||||||
'8': 30255,
|
'8': 30255,
|
||||||
'11': 30254
|
'11': 30254
|
||||||
},
|
},
|
||||||
|
|
||||||
'musicvideos':
|
'musicvideos':
|
||||||
{
|
{
|
||||||
'1': tagname,
|
'1': tagname,
|
||||||
'2': 30256,
|
'2': 30256,
|
||||||
'4': 30257,
|
'4': 30257,
|
||||||
'6': 30258
|
'6': 30258
|
||||||
},
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
nodes = mediatypes[mediatype]
|
nodes = mediatypes[mediatype]
|
||||||
|
@ -189,10 +191,12 @@ class VideoNodes(object):
|
||||||
# Set window properties
|
# Set window properties
|
||||||
if (mediatype == "homevideos" or mediatype == "photos") and nodetype == "all":
|
if (mediatype == "homevideos" or mediatype == "photos") and nodetype == "all":
|
||||||
# Custom query
|
# Custom query
|
||||||
path = "plugin://plugin.video.emby/?id=%s&mode=browsecontent&type=%s" %(tagname,mediatype)
|
path = ("plugin://plugin.video.emby/?id=%s&mode=browsecontent&type=%s"
|
||||||
|
% (tagname, mediatype))
|
||||||
elif (mediatype == "homevideos" or mediatype == "photos"):
|
elif (mediatype == "homevideos" or mediatype == "photos"):
|
||||||
# Custom query
|
# Custom query
|
||||||
path = "plugin://plugin.video.emby/?id=%s&mode=browsecontent&type=%s&folderid=%s" %(tagname,mediatype,nodetype)
|
path = ("plugin://plugin.video.emby/?id=%s&mode=browsecontent&type=%s&folderid=%s"
|
||||||
|
% (tagname, mediatype, nodetype))
|
||||||
elif nodetype == "nextepisodes":
|
elif nodetype == "nextepisodes":
|
||||||
# Custom query
|
# Custom query
|
||||||
path = "plugin://plugin.video.emby/?id=%s&mode=nextup&limit=25" % tagname
|
path = "plugin://plugin.video.emby/?id=%s&mode=nextup&limit=25" % tagname
|
||||||
|
@ -218,19 +222,20 @@ class VideoNodes(object):
|
||||||
templabel = label
|
templabel = label
|
||||||
|
|
||||||
embynode = "Emby.nodes.%s" % indexnumber
|
embynode = "Emby.nodes.%s" % indexnumber
|
||||||
utils.window('%s.title' % embynode, value=templabel)
|
window('%s.title' % embynode, value=templabel)
|
||||||
utils.window('%s.path' % embynode, value=windowpath)
|
window('%s.path' % embynode, value=windowpath)
|
||||||
utils.window('%s.content' % embynode, value=path)
|
window('%s.content' % embynode, value=path)
|
||||||
utils.window('%s.type' % embynode, value=mediatype)
|
window('%s.type' % embynode, value=mediatype)
|
||||||
else:
|
else:
|
||||||
embynode = "Emby.nodes.%s.%s" % (indexnumber, nodetype)
|
embynode = "Emby.nodes.%s.%s" % (indexnumber, nodetype)
|
||||||
utils.window('%s.title' % embynode, value=label)
|
window('%s.title' % embynode, value=label)
|
||||||
utils.window('%s.path' % embynode, value=windowpath)
|
window('%s.path' % embynode, value=windowpath)
|
||||||
utils.window('%s.content' % embynode, value=path)
|
window('%s.content' % embynode, value=path)
|
||||||
|
|
||||||
if mediatype=="photos":
|
if mediatype == "photos":
|
||||||
#for photos we do not create a node in videos but we do want the window props to be created
|
# For photos, we do not create a node in videos but we do want the window props
|
||||||
#todo: add our photos nodes to kodi picture sources somehow
|
# to be created.
|
||||||
|
# To do: add our photos nodes to kodi picture sources somehow
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if xbmcvfs.exists(nodeXML):
|
if xbmcvfs.exists(nodeXML):
|
||||||
|
@ -238,7 +243,8 @@ class VideoNodes(object):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# Create the root
|
# Create the root
|
||||||
if nodetype == "nextepisodes" or (kodiversion == 14 and nodetype in ('recentepisodes', 'inprogressepisodes')) or mediatype=="homevideos":
|
if (nodetype == "nextepisodes" or mediatype == "homevideos" or
|
||||||
|
(kodiversion == 14 and nodetype in ('recentepisodes', 'inprogressepisodes'))):
|
||||||
# Folder type with plugin path
|
# Folder type with plugin path
|
||||||
root = self.commonRoot(order=node, label=label, tagname=tagname, roottype=2)
|
root = self.commonRoot(order=node, label=label, tagname=tagname, roottype=2)
|
||||||
etree.SubElement(root, 'path').text = path
|
etree.SubElement(root, 'path').text = path
|
||||||
|
@ -311,6 +317,8 @@ class VideoNodes(object):
|
||||||
|
|
||||||
def singleNode(self, indexnumber, tagname, mediatype, itemtype):
|
def singleNode(self, indexnumber, tagname, mediatype, itemtype):
|
||||||
|
|
||||||
|
window = utils.window
|
||||||
|
|
||||||
tagname = tagname.encode('utf-8')
|
tagname = tagname.encode('utf-8')
|
||||||
cleantagname = utils.normalize_nodes(tagname)
|
cleantagname = utils.normalize_nodes(tagname)
|
||||||
nodepath = xbmc.translatePath("special://profile/library/video/").decode('utf-8')
|
nodepath = xbmc.translatePath("special://profile/library/video/").decode('utf-8')
|
||||||
|
@ -334,10 +342,10 @@ class VideoNodes(object):
|
||||||
}
|
}
|
||||||
label = utils.language(labels[tagname])
|
label = utils.language(labels[tagname])
|
||||||
embynode = "Emby.nodes.%s" % indexnumber
|
embynode = "Emby.nodes.%s" % indexnumber
|
||||||
utils.window('%s.title' % embynode, value=label)
|
window('%s.title' % embynode, value=label)
|
||||||
utils.window('%s.path' % embynode, value=windowpath)
|
window('%s.path' % embynode, value=windowpath)
|
||||||
utils.window('%s.content' % embynode, value=path)
|
window('%s.content' % embynode, value=path)
|
||||||
utils.window('%s.type' % embynode, value=itemtype)
|
window('%s.type' % embynode, value=itemtype)
|
||||||
|
|
||||||
if xbmcvfs.exists(nodeXML):
|
if xbmcvfs.exists(nodeXML):
|
||||||
# Don't recreate xml if already exists
|
# Don't recreate xml if already exists
|
||||||
|
@ -359,8 +367,10 @@ class VideoNodes(object):
|
||||||
|
|
||||||
def clearProperties(self):
|
def clearProperties(self):
|
||||||
|
|
||||||
|
window = utils.window
|
||||||
|
|
||||||
self.logMsg("Clearing nodes properties.", 1)
|
self.logMsg("Clearing nodes properties.", 1)
|
||||||
embyprops = utils.window('Emby.nodes.total')
|
embyprops = window('Emby.nodes.total')
|
||||||
propnames = [
|
propnames = [
|
||||||
|
|
||||||
"index","path","title","content",
|
"index","path","title","content",
|
||||||
|
@ -379,4 +389,4 @@ class VideoNodes(object):
|
||||||
totalnodes = int(embyprops)
|
totalnodes = int(embyprops)
|
||||||
for i in range(totalnodes):
|
for i in range(totalnodes):
|
||||||
for prop in propnames:
|
for prop in propnames:
|
||||||
utils.window('Emby.nodes.%s.%s' % (str(i), prop), clear=True)
|
window('Emby.nodes.%s.%s' % (str(i), prop), clear=True)
|
Loading…
Reference in a new issue