feat(playlists): библиотека плейлистов приложения
CRUD в редакторе, read-only окно на пульте, отдельный аудиоканал, экспорт/импорт и маппинг из Foundry. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -111,6 +111,7 @@ export const EDITOR_MESSAGES: Record<EditorLocale, Record<string, string>> = {
|
||||
'top.project': 'Проект',
|
||||
'top.file': 'Файл',
|
||||
'top.players': 'Игроки',
|
||||
'top.playlists': 'Плейлисты',
|
||||
'top.backToProjects': 'К списку проектов',
|
||||
'top.appVersion': 'Версия приложения',
|
||||
'top.run': 'Запустить',
|
||||
@@ -325,6 +326,8 @@ export const EDITOR_MESSAGES: Record<EditorLocale, Record<string, string>> = {
|
||||
'export.npcsHint':
|
||||
'Отметьте НПС для экспорта. Вместе с ними попадут связи между отмеченными и группы этих персонажей.',
|
||||
'export.selectAllNpcs': 'Отметить всех',
|
||||
'export.playlists': 'Плейлисты',
|
||||
'export.playlistsHint': 'По умолчанию не выбраны. Отметьте плейлисты, которые нужно упаковать в архив.',
|
||||
'export.next': 'Далее',
|
||||
'export.back': 'Назад',
|
||||
'export.exporting': 'Экспорт…',
|
||||
@@ -459,6 +462,31 @@ export const EDITOR_MESSAGES: Record<EditorLocale, Record<string, string>> = {
|
||||
'players.deleteTeamTitle': 'Удаление команды',
|
||||
'players.deleteTeamConfirm': 'Вы уверены, что хотите удалить команду «{name}»? Игроки останутся без команды.',
|
||||
|
||||
'playlists.title': 'Плейлисты',
|
||||
'playlists.search': 'Поиск по плейлистам и трекам…',
|
||||
'playlists.create': 'Создать',
|
||||
'playlists.rename': 'Переименовать',
|
||||
'playlists.duplicate': 'Дублировать',
|
||||
'playlists.delete': 'Удалить',
|
||||
'playlists.deleteTitle': 'Удаление плейлиста',
|
||||
'playlists.deleteConfirm':
|
||||
'Удалить плейлист «{name}»? Если он сейчас играет — воспроизведение остановится.',
|
||||
'playlists.addAudio': 'Добавить аудио',
|
||||
'playlists.empty': 'Нет плейлистов. Создайте первый.',
|
||||
'playlists.emptyTracks': 'В плейлисте пока нет треков.',
|
||||
'playlists.dropAudioHint': 'Перетащите аудиофайлы сюда',
|
||||
'playlists.untitled': 'Без названия',
|
||||
'playlists.play': 'Играть',
|
||||
'playlists.pause': 'Пауза',
|
||||
'playlists.prev': 'Предыдущий',
|
||||
'playlists.next': 'Следующий',
|
||||
'playlists.volume': 'Громкость',
|
||||
'playlists.scrub': 'Перемотка',
|
||||
'playlists.emptyPlayer': 'Ничего не играет',
|
||||
'playlists.playPlaylist': 'Играть плейлист',
|
||||
'playlists.removeTrack': 'Убрать',
|
||||
'playlists.renameAudio': 'Переименовать трек',
|
||||
|
||||
'npcs.open': 'НПС',
|
||||
'npcs.editorTitle': 'НПС',
|
||||
'npcs.add': 'Добавить',
|
||||
@@ -619,6 +647,7 @@ export const EDITOR_MESSAGES: Record<EditorLocale, Record<string, string>> = {
|
||||
'control.markerTool': 'Маркер',
|
||||
'control.markerColor': 'Цвет маркера',
|
||||
'control.materialsTool': 'Материалы',
|
||||
'control.playlistsTool': 'Плейлисты',
|
||||
'control.npcsTool': 'НПС',
|
||||
'control.descriptionMissing': 'Описание отсутствует',
|
||||
'control.effects': 'ЭФФЕКТЫ',
|
||||
@@ -761,6 +790,7 @@ export const EDITOR_MESSAGES: Record<EditorLocale, Record<string, string>> = {
|
||||
'top.project': 'Project',
|
||||
'top.file': 'File',
|
||||
'top.players': 'Players',
|
||||
'top.playlists': 'Playlists',
|
||||
'top.backToProjects': 'Back to projects',
|
||||
'top.appVersion': 'App version',
|
||||
'top.run': 'Run',
|
||||
@@ -975,6 +1005,8 @@ export const EDITOR_MESSAGES: Record<EditorLocale, Record<string, string>> = {
|
||||
'export.npcsHint':
|
||||
'Select NPCs to export. Relations between selected NPCs and their groups are included.',
|
||||
'export.selectAllNpcs': 'Select all',
|
||||
'export.playlists': 'Playlists',
|
||||
'export.playlistsHint': 'None selected by default. Check playlists to include in the archive.',
|
||||
'export.next': 'Next',
|
||||
'export.back': 'Back',
|
||||
'export.exporting': 'Exporting…',
|
||||
@@ -1111,6 +1143,31 @@ export const EDITOR_MESSAGES: Record<EditorLocale, Record<string, string>> = {
|
||||
'players.deleteTeamConfirm':
|
||||
'Are you sure you want to delete team “{name}”? Players will become ungrouped.',
|
||||
|
||||
'playlists.title': 'Playlists',
|
||||
'playlists.search': 'Search playlists and tracks…',
|
||||
'playlists.create': 'Create',
|
||||
'playlists.rename': 'Rename',
|
||||
'playlists.duplicate': 'Duplicate',
|
||||
'playlists.delete': 'Delete',
|
||||
'playlists.deleteTitle': 'Delete playlist',
|
||||
'playlists.deleteConfirm':
|
||||
'Delete playlist “{name}”? If it is playing, playback will stop.',
|
||||
'playlists.addAudio': 'Add audio',
|
||||
'playlists.empty': 'No playlists yet. Create one.',
|
||||
'playlists.emptyTracks': 'This playlist has no tracks yet.',
|
||||
'playlists.dropAudioHint': 'Drop audio files here',
|
||||
'playlists.untitled': 'Untitled',
|
||||
'playlists.play': 'Play',
|
||||
'playlists.pause': 'Pause',
|
||||
'playlists.prev': 'Previous',
|
||||
'playlists.next': 'Next',
|
||||
'playlists.volume': 'Volume',
|
||||
'playlists.scrub': 'Seek',
|
||||
'playlists.emptyPlayer': 'Nothing playing',
|
||||
'playlists.playPlaylist': 'Play playlist',
|
||||
'playlists.removeTrack': 'Remove',
|
||||
'playlists.renameAudio': 'Rename track',
|
||||
|
||||
'npcs.open': 'NPCs',
|
||||
'npcs.editorTitle': 'NPCs',
|
||||
'npcs.add': 'Add',
|
||||
@@ -1271,6 +1328,7 @@ export const EDITOR_MESSAGES: Record<EditorLocale, Record<string, string>> = {
|
||||
'control.markerTool': 'Marker',
|
||||
'control.markerColor': 'Marker color',
|
||||
'control.materialsTool': 'Materials',
|
||||
'control.playlistsTool': 'Playlists',
|
||||
'control.npcsTool': 'NPCs',
|
||||
'control.descriptionMissing': 'No description',
|
||||
'control.effects': 'EFFECTS',
|
||||
|
||||
Reference in New Issue
Block a user