mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update translations
This commit is contained in:
parent
69682bd717
commit
a9e5a73d42
11 changed files with 122 additions and 96 deletions
|
@ -121,7 +121,7 @@
|
|||
@media all and (min-width: 1600px) {
|
||||
|
||||
.ehsContent {
|
||||
width: 1500px;
|
||||
width: 1440px;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
<a href="librarysettings.html" data-role="button">${TabAdvanced}</a>
|
||||
</div>
|
||||
<div class="readOnlyContent">
|
||||
<p style="margin: 2em 0;"><a href="https://github.com/MediaBrowser/MediaBrowser/wiki/Library-Structure" target="_blank">${ReferToMediaLibraryWiki}</a></p>
|
||||
<p style="margin: 2em 0;"><a href="http://mediabrowser.tv/community/index.php?/topic/674-media-files-folders-structure/" target="_blank">${ReferToMediaLibraryWiki}</a></p>
|
||||
<div id="divMediaLibrary">
|
||||
<p>
|
||||
<button type="button" data-mini="true" data-icon="plus" data-iconpos="right" onclick="MediaLibraryPage.addVirtualFolder();">${ButtonAddMediaFolder}</button>
|
||||
|
|
|
@ -1014,15 +1014,15 @@
|
|||
};
|
||||
}
|
||||
|
||||
MediaController.registerPlayer(new chromecastPlayer());
|
||||
//MediaController.registerPlayer(new chromecastPlayer());
|
||||
|
||||
$(MediaController).on('playerchange', function () {
|
||||
//$(MediaController).on('playerchange', function () {
|
||||
|
||||
if (MediaController.getPlayerInfo().name == PlayerName) {
|
||||
if (castPlayer.deviceState != DEVICE_STATE.ACTIVE && castPlayer.isInitialized) {
|
||||
castPlayer.launchApp();
|
||||
}
|
||||
}
|
||||
});
|
||||
// if (MediaController.getPlayerInfo().name == PlayerName) {
|
||||
// if (castPlayer.deviceState != DEVICE_STATE.ACTIVE && castPlayer.isInitialized) {
|
||||
// castPlayer.launchApp();
|
||||
// }
|
||||
// }
|
||||
//});
|
||||
|
||||
})(window, window.chrome, console);
|
|
@ -1170,18 +1170,42 @@ $(document).on('pagebeforeshow', "#dashboardPage", DashboardPage.onPageShow)
|
|||
|
||||
var msg = data;
|
||||
|
||||
if (msg.MessageType === "ActivityLogEntryCreated") {
|
||||
if (msg.MessageType === "ActivityLogEntry") {
|
||||
elem.each(function () {
|
||||
|
||||
reloadData(this);
|
||||
});
|
||||
}
|
||||
|
||||
}).on('websocketopen.activityloglistener', function (e, data) {
|
||||
|
||||
startListening();
|
||||
});
|
||||
}
|
||||
|
||||
function startListening() {
|
||||
|
||||
if (ApiClient.isWebSocketOpen()) {
|
||||
ApiClient.sendWebSocketMessage("ActivityLogEntryStart", "0,1500");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function stopListening() {
|
||||
|
||||
if (ApiClient.isWebSocketOpen()) {
|
||||
ApiClient.sendWebSocketMessage("ActivityLogEntryStop", "0,1500");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function destroyList(elem) {
|
||||
|
||||
$(ApiClient).off('websocketmessage.activityloglistener');
|
||||
$(ApiClient).off('websocketopen.activityloglistener').off('websocketmessage.activityloglistener');
|
||||
|
||||
stopListening();
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
$.fn.activityLogList = function (action) {
|
||||
|
@ -1192,6 +1216,8 @@ $(document).on('pagebeforeshow', "#dashboardPage", DashboardPage.onPageShow)
|
|||
createList(this);
|
||||
}
|
||||
|
||||
startListening();
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
SortOrder: "Ascending",
|
||||
IncludeItemTypes: section.types,
|
||||
Filters: "IsFavorite",
|
||||
Limit: screenWidth >= 1920 ? 8 : (screenWidth >= 1440 ? 8 : 6),
|
||||
Limit: screenWidth >= 1920 ? 10 : (screenWidth >= 1440 ? 8 : 6),
|
||||
Recursive: true,
|
||||
Fields: "PrimaryImageAspectRatio",
|
||||
CollapseBoxSetItems: false,
|
||||
|
|
|
@ -278,7 +278,7 @@
|
|||
SortOrder: "Descending",
|
||||
MediaTypes: "Video",
|
||||
Filters: "IsResumable",
|
||||
Limit: screenWidth >= 1600 ? 8 : (screenWidth >= 1200 ? 9 : 6),
|
||||
Limit: screenWidth >= 1920 ? 10 : (screenWidth >= 1600 ? 8 : (screenWidth >= 1200 ? 9 : 6)),
|
||||
Recursive: true,
|
||||
Fields: "PrimaryImageAspectRatio",
|
||||
CollapseBoxSetItems: false,
|
||||
|
|
|
@ -52,7 +52,7 @@
|
|||
SortOrder: "Descending",
|
||||
IncludeItemTypes: "Movie",
|
||||
Filters: "IsResumable",
|
||||
Limit: screenWidth >= 1600 ? 8 : (screenWidth >= 1200 ? 6 : 3),
|
||||
Limit: screenWidth >= 1920 ? 10 : (screenWidth >= 1600 ? 8 : (screenWidth >= 1200 ? 6 : 3)),
|
||||
Recursive: true,
|
||||
Fields: "PrimaryImageAspectRatio",
|
||||
CollapseBoxSetItems: false,
|
||||
|
@ -83,7 +83,7 @@
|
|||
|
||||
userId: Dashboard.getCurrentUserId(),
|
||||
categoryLimit: screenWidth >= 1200 ? 4 : 3,
|
||||
ItemLimit: screenWidth >= 1600 ? 7 : (screenWidth >= 1200 ? 6 : 5),
|
||||
ItemLimit: screenWidth >= 1920 ? 9 : (screenWidth >= 1600 ? 7 : (screenWidth >= 1200 ? 6 : 5)),
|
||||
Fields: "PrimaryImageAspectRatio"
|
||||
});
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
var options = {
|
||||
IncludeItemTypes: "Audio",
|
||||
Limit: screenWidth >= 1600 ? 21 : (screenWidth >= 1200 ? 21 : 12),
|
||||
Limit: screenWidth >= 1920 ? 24 : (screenWidth >= 1600 ? 21 : (screenWidth >= 1200 ? 21 : 12)),
|
||||
Fields: "PrimaryImageAspectRatio",
|
||||
ParentId: parentId
|
||||
};
|
||||
|
@ -34,7 +34,7 @@
|
|||
SortBy: "DatePlayed",
|
||||
SortOrder: "Descending",
|
||||
IncludeItemTypes: "Audio",
|
||||
Limit: screenWidth >= 1600 ? 7 : (screenWidth >= 1200 ? 7 : 6),
|
||||
Limit: screenWidth >= 1920 ? 8 : (screenWidth >= 1600 ? 7 : (screenWidth >= 1200 ? 7 : 6)),
|
||||
Recursive: true,
|
||||
Fields: "PrimaryImageAspectRatio,AudioInfo",
|
||||
Filters: "IsPlayed",
|
||||
|
@ -64,7 +64,7 @@
|
|||
SortBy: "PlayCount",
|
||||
SortOrder: "Descending",
|
||||
IncludeItemTypes: "Audio",
|
||||
Limit: screenWidth >= 1600 ? 14 : (screenWidth >= 1200 ? 14 : 12),
|
||||
Limit: screenWidth >= 1920 ? 16 : (screenWidth >= 1600 ? 14 : (screenWidth >= 1200 ? 14 : 12)),
|
||||
Recursive: true,
|
||||
Fields: "PrimaryImageAspectRatio,AudioInfo",
|
||||
Filters: "IsPlayed",
|
||||
|
|
|
@ -25,135 +25,135 @@
|
|||
{
|
||||
return [
|
||||
{},
|
||||
{ name: 'Series', sortField: 'SeriesSortName,SortName' },
|
||||
{ name: 'Season', sortField: 'SortName' },
|
||||
{ name: 'Season Number', sortField: 'IndexNumber' },
|
||||
{ name: 'Date Added', sortField: 'DateCreated,SortName' }
|
||||
{ name: Globalize.translate('HeaderSeries'), sortField: 'SeriesSortName,SortName', type: 'Series' },
|
||||
{ name: Globalize.translate('HeaderSeason'), sortField: 'SortName', type: 'Season' },
|
||||
{ name: Globalize.translate('HeaderSeasonNumber'), type: 'Season Number', sortField: 'IndexNumber' },
|
||||
{ name: Globalize.translate('HeaderDateAdded'), sortField: 'DateCreated,SortName', type: 'Date Added' }
|
||||
];
|
||||
}
|
||||
case 'Series':
|
||||
{
|
||||
return [
|
||||
{},
|
||||
{ name: 'Name', sortField: 'SortName' },
|
||||
{ name: 'Network', sortField: 'Studio,SortName' },
|
||||
{ name: 'Date Added', sortField: 'DateCreated,SortName' },
|
||||
{ name: 'Year', sortField: 'ProductionYear,PremiereDate,SortName' },
|
||||
{ name: 'Parental Rating', sortField: 'OfficialRating,SortName' },
|
||||
{ name: 'Community Rating', sortField: 'CommunityRating,SortName' },
|
||||
{ name: 'Runtime', sortField: 'Runtime,SortName' },
|
||||
{ name: 'Trailers' },
|
||||
{ name: 'Specials' }
|
||||
{ name: Globalize.translate('HeaderName'), sortField: 'SortName', type: 'Name' },
|
||||
{ name: Globalize.translate('HeaderNetwork'), sortField: 'Studio,SortName', type: 'Network' },
|
||||
{ name: Globalize.translate('HeaderDateAdded'), sortField: 'DateCreated,SortName', type: 'Date Added' },
|
||||
{ name: Globalize.translate('HeaderYear'), sortField: 'ProductionYear,PremiereDate,SortName', type: 'Year' },
|
||||
{ name: Globalize.translate('HeaderParentalRating'), sortField: 'OfficialRating,SortName', type: 'Parental Rating' },
|
||||
{ name: Globalize.translate('HeaderCommunityRating'), sortField: 'CommunityRating,SortName', type: 'Community Rating' },
|
||||
{ name: Globalize.translate('HeaderRuntime'), sortField: 'Runtime,SortName', type: 'Runtime' },
|
||||
{ name: Globalize.translate('HeaderTrailers'), type: 'Trailers' },
|
||||
{ name: Globalize.translate('HeaderSpecials'), type: 'Specials' }
|
||||
];
|
||||
}
|
||||
case 'Game':
|
||||
{
|
||||
return [
|
||||
{},
|
||||
{ name: 'Name', sortField: 'SortName' },
|
||||
{ name: 'Game System', sortField: 'GameSystem,SortName' },
|
||||
{ name: 'Date Added', sortField: 'DateCreated,GameSystem,SortName' },
|
||||
{ name: 'Release Date', sortField: 'ProductionYear,PremiereDate,GameSystem,SortName' },
|
||||
{ name: 'Parental Rating', sortField: 'OfficialRating,GameSystem,SortName' },
|
||||
{ name: 'Community Rating', sortField: 'CommunityRating,GameSystem,SortName' },
|
||||
{ name: 'Players', sortField: 'Players,GameSystem,SortName' },
|
||||
{ name: 'Trailers' }
|
||||
{ name: Globalize.translate('HeaderName'), sortField: 'SortName', type: 'Name' },
|
||||
{ name: Globalize.translate('HeaderGameSystem'), sortField: 'GameSystem,SortName', type: 'Game System' },
|
||||
{ name: Globalize.translate('HeaderDateAdded'), sortField: 'DateCreated,SortName', type: 'Date Added' },
|
||||
{ name: Globalize.translate('HeaderReleaseDate'), sortField: 'ProductionYear,PremiereDate,GameSystem,SortName', type: 'Release Date' },
|
||||
{ name: Globalize.translate('HeaderParentalRating'), sortField: 'OfficialRating,SortName', type: 'Parental Rating' },
|
||||
{ name: Globalize.translate('HeaderCommunityRating'), sortField: 'CommunityRating,SortName', type: 'Community Rating' },
|
||||
{ name: Globalize.translate('HeaderPlayers'), type: 'Players', sortField: 'Players,GameSystem,SortName' },
|
||||
{ name: Globalize.translate('HeaderTrailers'), type: 'Trailers' }
|
||||
];
|
||||
}
|
||||
case 'Audio':
|
||||
{
|
||||
return [
|
||||
{},
|
||||
{ name: 'Album Artist', sortField: 'AlbumArtist,Album,SortName' },
|
||||
{ name: 'Album', sortField: 'Album,SortName' },
|
||||
{ name: 'Disc' },
|
||||
{ name: 'Track' },
|
||||
{ name: 'Name', sortField: 'Name' },
|
||||
{ name: 'Date Added', sortField: 'DateCreated,SortName' },
|
||||
{ name: 'Release Date', sortField: 'ProductionYear,PremiereDate,SortName' },
|
||||
{ name: 'Runtime', sortField: 'Runtime,SortName' },
|
||||
{ name: 'Audio' },
|
||||
{ name: 'Embedded Image' }
|
||||
{ name: Globalize.translate('HeaderAlbumArtist'), sortField: 'AlbumArtist,Album,SortName', type: 'Album Artist' },
|
||||
{ name: Globalize.translate('HeaderAlbum'), type: 'Album', sortField: 'Album,SortName' },
|
||||
{ name: Globalize.translate('HeaderDisc'), type: 'Disc' },
|
||||
{ name: Globalize.translate('HeaderTrack'), type: 'Track' },
|
||||
{ name: Globalize.translate('HeaderName'), sortField: 'SortName', type: 'Name' },
|
||||
{ name: Globalize.translate('HeaderDateAdded'), sortField: 'DateCreated,SortName', type: 'Date Added' },
|
||||
{ name: Globalize.translate('HeaderReleaseDate'), sortField: 'ProductionYear,PremiereDate,SortName', type: 'Release Date' },
|
||||
{ name: Globalize.translate('HeaderRuntime'), sortField: 'Runtime,SortName', type: 'Runtime' },
|
||||
{ name: Globalize.translate('HeaderAudio'), type: 'Audio' },
|
||||
{ name: Globalize.translate('HeaderEmbeddedImage'), type: 'Embedded Image' }
|
||||
];
|
||||
}
|
||||
case 'Episode':
|
||||
{
|
||||
return [
|
||||
{},
|
||||
{ name: 'Series', sortField: 'SeriesSortName,SortName' },
|
||||
{ name: 'Season' },
|
||||
{ name: 'Name', sortField: 'SortName' },
|
||||
{ name: 'Date Added', sortField: 'DateCreated,SortName' },
|
||||
{ name: 'Release Date', sortField: 'ProductionYear,PremiereDate,SortName' },
|
||||
{ name: 'Community Rating', sortField: 'CommunityRating,SortName' },
|
||||
{ name: 'Runtime', sortField: 'Runtime,SortName' },
|
||||
{ name: 'Video' },
|
||||
{ name: 'Resolution' },
|
||||
{ name: 'Audio' },
|
||||
{ name: 'Subtitles' }
|
||||
{ name: Globalize.translate('HeaderSeries'), sortField: 'SeriesSortName,SortName', type: 'Series' },
|
||||
{ name: Globalize.translate('HeaderSeason') },
|
||||
{ name: Globalize.translate('HeaderName'), sortField: 'SortName', type: 'Name' },
|
||||
{ name: Globalize.translate('HeaderDateAdded'), sortField: 'DateCreated,SortName', type: 'Date Added' },
|
||||
{ name: Globalize.translate('HeaderReleaseDate'), sortField: 'ProductionYear,PremiereDate,SortName', type: 'Release Date' },
|
||||
{ name: Globalize.translate('HeaderCommunityRating'), sortField: 'CommunityRating,SortName', type: 'Community Rating' },
|
||||
{ name: Globalize.translate('HeaderRuntime'), sortField: 'Runtime,SortName', type: 'Runtime' },
|
||||
{ name: Globalize.translate('HeaderVideo'), type: 'Video' },
|
||||
{ name: Globalize.translate('HeaderResolution'), type: 'Resolution' },
|
||||
{ name: Globalize.translate('HeaderAudio'), type: 'Audio' },
|
||||
{ name: Globalize.translate('HeaderSubtitles'), type: 'Subtitles' }
|
||||
];
|
||||
}
|
||||
case 'BoxSet':
|
||||
{
|
||||
return [
|
||||
{},
|
||||
{ name: 'Name', sortField: 'SortName' },
|
||||
{ name: 'Date Added', sortField: 'DateCreated,SortName' },
|
||||
{ name: 'Release Date', sortField: 'ProductionYear,PremiereDate,SortName' },
|
||||
{ name: 'Parental Rating', sortField: 'OfficialRating,SortName' },
|
||||
{ name: 'Community Rating', sortField: 'CommunityRating,SortName' },
|
||||
{ name: 'Trailers' }
|
||||
{ name: Globalize.translate('HeaderName'), sortField: 'SortName', type: 'Name' },
|
||||
{ name: Globalize.translate('HeaderDateAdded'), sortField: 'DateCreated,SortName', type: 'Date Added' },
|
||||
{ name: Globalize.translate('HeaderReleaseDate'), sortField: 'ProductionYear,PremiereDate,SortName', type: 'Release Date' },
|
||||
{ name: Globalize.translate('HeaderParentalRating'), sortField: 'OfficialRating,SortName', type: 'Parental Rating' },
|
||||
{ name: Globalize.translate('HeaderCommunityRating'), sortField: 'CommunityRating,SortName', type: 'Community Rating' },
|
||||
{ name: Globalize.translate('HeaderTrailers'), type: 'Trailers' }
|
||||
];
|
||||
}
|
||||
case 'Book':
|
||||
{
|
||||
return [
|
||||
{},
|
||||
{ name: 'Series' },
|
||||
{ name: 'Name', sortField: 'SortName' },
|
||||
{ name: 'Date Added', sortField: 'DateCreated,SortName' },
|
||||
{ name: 'Release Date', sortField: 'ProductionYear,PremiereDate,SortName' },
|
||||
{ name: 'Parental Rating', sortField: 'OfficialRating,SortName' },
|
||||
{ name: 'Community Rating', sortField: 'CommunityRating,SortName' }
|
||||
{ name: Globalize.translate('HeaderSeries'), type: 'Series' },
|
||||
{ name: Globalize.translate('HeaderName'), sortField: 'SortName', type: 'Name' },
|
||||
{ name: Globalize.translate('HeaderDateAdded'), sortField: 'DateCreated,SortName', type: 'Date Added' },
|
||||
{ name: Globalize.translate('HeaderReleaseDate'), sortField: 'ProductionYear,PremiereDate,SortName', type: 'Release Date' },
|
||||
{ name: Globalize.translate('HeaderParentalRating'), sortField: 'OfficialRating,SortName', type: 'Parental Rating' },
|
||||
{ name: Globalize.translate('HeaderCommunityRating'), sortField: 'CommunityRating,SortName', type: 'Community Rating' }
|
||||
];
|
||||
}
|
||||
case 'MusicArtist':
|
||||
{
|
||||
return [
|
||||
{},
|
||||
{ name: 'Name', sortField: 'SortName' },
|
||||
{ name: 'Date Added', sortField: 'DateCreated,SortName' }
|
||||
{ name: Globalize.translate('HeaderName'), sortField: 'SortName', type: 'Name' },
|
||||
{ name: Globalize.translate('HeaderDateAdded'), sortField: 'DateCreated,SortName', type: 'Date Added' }
|
||||
];
|
||||
}
|
||||
case 'MusicAlbum':
|
||||
{
|
||||
return [
|
||||
{},
|
||||
{ name: 'Album Artist', sortField: 'AlbumArtist,SortName' },
|
||||
{ name: 'Name', sortField: 'SortName' },
|
||||
{ name: 'Date Added', sortField: 'DateCreated,SortName' },
|
||||
{ name: 'Release Date', sortField: 'ProductionYear,PremiereDate,SortName' },
|
||||
{ name: 'Parental Rating', sortField: 'OfficialRating,SortName' },
|
||||
{ name: 'Community Rating', sortField: 'CommunityRating,SortName' },
|
||||
{ name: 'Runtime', sortField: 'Runtime,SortName' }
|
||||
{ name: Globalize.translate('HeaderAlbumArtist'), sortField: 'AlbumArtist,SortName', type: 'Album Artist' },
|
||||
{ name: Globalize.translate('HeaderName'), sortField: 'SortName', type: 'Name' },
|
||||
{ name: Globalize.translate('HeaderDateAdded'), sortField: 'DateCreated,SortName', type: 'Date Added' },
|
||||
{ name: Globalize.translate('HeaderReleaseDate'), sortField: 'ProductionYear,PremiereDate,SortName', type: 'Release Date' },
|
||||
{ name: Globalize.translate('HeaderParentalRating'), sortField: 'OfficialRating,SortName', type: 'Parental Rating' },
|
||||
{ name: Globalize.translate('HeaderCommunityRating'), sortField: 'CommunityRating,SortName', type: 'Community Rating' },
|
||||
{ name: Globalize.translate('HeaderRuntime'), sortField: 'Runtime,SortName', type: 'Runtime' }
|
||||
];
|
||||
}
|
||||
default:
|
||||
{
|
||||
return [
|
||||
{},
|
||||
{ name: 'Name', sortField: 'SortName' },
|
||||
{ name: 'Date Added', sortField: 'DateCreated,SortName' },
|
||||
{ name: 'Release Date', sortField: 'ProductionYear,PremiereDate,SortName' },
|
||||
{ name: 'Parental Rating', sortField: 'OfficialRating,SortName' },
|
||||
{ name: 'Community Rating', sortField: 'CommunityRating,SortName' },
|
||||
{ name: 'Runtime', sortField: 'Runtime,SortName' },
|
||||
{ name: 'Video' },
|
||||
{ name: 'Resolution' },
|
||||
{ name: 'Audio' },
|
||||
{ name: 'Subtitles' },
|
||||
{ name: 'Trailers' },
|
||||
{ name: 'Specials' }
|
||||
{ name: Globalize.translate('HeaderName'), sortField: 'SortName', type: 'Name' },
|
||||
{ name: Globalize.translate('HeaderDateAdded'), sortField: 'DateCreated,SortName', type: 'Date Added' },
|
||||
{ name: Globalize.translate('HeaderReleaseDate'), sortField: 'ProductionYear,PremiereDate,SortName', type: 'Release Date' },
|
||||
{ name: Globalize.translate('HeaderParentalRating'), sortField: 'OfficialRating,SortName', type: 'Parental Rating' },
|
||||
{ name: Globalize.translate('HeaderCommunityRating'), sortField: 'CommunityRating,SortName', type: 'Community Rating' },
|
||||
{ name: Globalize.translate('HeaderRuntime'), sortField: 'Runtime,SortName', type: 'Runtime' },
|
||||
{ name: Globalize.translate('HeaderVideo'), type: 'Video' },
|
||||
{ name: Globalize.translate('HeaderResolution'), type: 'Resolution' },
|
||||
{ name: Globalize.translate('HeaderAudio'), type: 'Audio' },
|
||||
{ name: Globalize.translate('HeaderSubtitles'), type: 'Subtitles' },
|
||||
{ name: Globalize.translate('HeaderTrailers'), type: 'Trailers' },
|
||||
{ name: Globalize.translate('HeaderSpecials'), type: 'Specials' }
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
|
@ -93,7 +93,7 @@
|
|||
SortOrder: "Descending",
|
||||
IncludeItemTypes: "Episode",
|
||||
Filters: "IsResumable",
|
||||
Limit: screenWidth >= 1200 ? 6 : 4,
|
||||
Limit: screenWidth >= 1920 ? 5 : (screenWidth >= 1200 ? 6 : 4),
|
||||
Recursive: true,
|
||||
Fields: "PrimaryImageAspectRatio,SeriesInfo,UserData",
|
||||
ExcludeLocationTypes: "Virtual",
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
</p>
|
||||
<div id="divVirtualFolders"></div>
|
||||
</div>
|
||||
<p><a href="https://github.com/MediaBrowser/MediaBrowser/wiki/Library-Structure" target="_blank">${ReferToMediaLibraryWiki}</a></p>
|
||||
<p><a href="http://mediabrowser.tv/community/index.php?/topic/674-media-files-folders-structure/" target="_blank">${ReferToMediaLibraryWiki}</a></p>
|
||||
|
||||
<div data-role="popup" id="popupEnterText" class="popup">
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue