242 lines
14 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

export default {
ok: 'ОК',
cancel: 'Отмена',
socketConnected: 'Event stream connected',
socketDisconnected: 'Event stream disconnected',
alert: {
wrongLogin: 'Неверные данные для входа!',
},
button: {
login: 'Логин',
home: 'Домашняя страница',
player: 'Плеер',
media: 'Файлы',
message: 'Сообщение',
logging: 'Логи',
channels: 'Каналы',
configure: 'Конфигурация',
logout: 'Выйти',
},
error: {
notFound: 'Страница не найдена',
serverError: 'Внутреняя серверная ошибка',
},
input: {
username: 'Логин',
password: 'Пароль',
},
system: {
cpu: 'Процессор',
cores: 'Ядра',
load: 'Нагрузка',
memory: 'Оперативная память',
swap: 'Swap',
total: 'Всего',
usage: 'Используется',
network: 'Интернет',
in: 'Прием',
out: 'Отдача',
storage: 'Хранилище',
device: 'Устройство',
size: 'Размер',
used: 'Использовано',
},
control: {
noClip: 'На данный момент ни один файл не воспроизводится',
ingest: 'Прямой эфир/Перехват эфира',
start: 'Запустить Playout Service',
last: 'Переключить на предыдущий файл',
stop: 'Остановить Playout Service',
reset: 'Сбросить Playout State',
restart: 'Перезапустить Playout Service',
next: 'Переключить на следующий файл',
},
player: {
start: 'Начало',
file: 'Файл',
play: 'Проиграть',
title: 'Название файла',
duration: 'Длительность',
total: 'Всего',
in: 'Начало',
out: 'Конец',
ad: 'Реклама',
edit: 'Редактировать',
delete: 'Удалить',
copy: 'Скопировать плейлист',
loop: 'Повторить все видео в плейлисте',
remote: 'Добавить (удаленно) файл в плейлист',
import: 'Загрузить text/m3u файл',
generate: 'Простой и продвинутый генератор плейлистов',
reset: 'Сбросить плейлист',
save: 'Сохранить плейлист',
deletePlaylist: 'Удалить плейлист',
unsavedProgram: 'Этот плейлист не сохранен!',
copyTo: 'Скопировать текущую программу за',
addEdit: 'Добавить/Редактировать файл',
audio: 'Звук',
customFilter: 'Пользовательский фильтр',
deleteFrom: 'Удалить плейлист за',
deleteSuccess: 'Плейлист удален...',
generateProgram: 'Генерация плейлиста',
simple: 'Простой',
advanced: 'Расширенный',
sorted: 'Отсортировать',
shuffle: 'Перемещать/Перетасовать',
shift: 'Перемотка',
all: 'Все',
addBlock: 'Добавить время начало передачи',
infinitInfo: 'Воспроизведение работает в бесконечном режиме. Никакая информация, основанная на времени, невозможна.',
generateDone: 'Генерация плейлиста завершена...',
dateYesterday: 'Current time is before the playlist start time!',
},
media: {
notExists: 'Папки не существует!',
create: 'Сделать папку',
upload: 'Загрузить файлы',
delete: 'Удалить',
file: 'Файл',
folder: 'Папку',
deleteQuestion: 'Вы уверены что хотите это удалить',
preview: 'Просмотр',
rename: 'Переименовать файл',
newFile: 'Название нового файла',
createFolder: 'Сделать папку',
foldername: 'Имя папки',
current: 'Процесс загрузки',
overall: 'Всего',
uploading: 'Загружается',
moveError: 'Move error',
deleteError: 'Ошишка удаления',
folderExists: 'Папка уже имеется!',
folderCreate: 'Создание папки готово...',
folderError: 'Ошибка Создания папки',
uploadError: 'Ошибка Загрузки',
fileExists: 'Файл уже имеется!',
recursive: 'Рекурсивный',
},
message: {
savePreset: 'Сохранить шаблон',
newPreset: 'Новый шаблон',
delPreset: 'Удалить шаблон',
delText: 'Вы уверены что хотите удалить шаблон',
placeholder: 'Текст',
xAxis: 'X Axis',
yAxis: 'Y Axis',
showBox: 'Текст с фоном',
boxColor: 'Цвет фона для текста',
boxAlpha: 'Прозрачность фона для текста',
size: 'Размер',
spacing: 'Spacing',
overallAlpha: 'Overall Alpha',
fontColor: 'Цвет текста',
fontAlpha: 'Font Alpha',
borderWidth: 'Border Width',
send: 'Отправить в эфир',
name: 'Название',
saveDone: 'Сохранение предустановки выполнено!',
saveFailed: 'Сохранить пресет не удалось!',
sendDone: 'Отправка успешна...',
sendFailed: 'Отправка не удалась...',
},
log: {
download: 'Скачать лог файл',
reload: 'Перезагрузка',
},
advanced: {
title: 'Advanced Configuration',
decoder: 'Decoder',
encoder: 'Encoder',
filter: 'Filter',
ingest: 'Ingest',
updateSuccess: 'Update advanced config success!',
updateFailed: 'Update advanced config failed!',
warning: 'Warning! These settings are experimental and only intended for advanced users who are familiar with ffmpeg. Only change the settings here if you are sure of what you are doing! The settings can make the system unstable.',
},
config: {
channel: 'Канал',
user: 'Юзер',
channelConf: 'Конфигурация канала',
addChannel: 'Сделать новый канал',
name: 'Название канала',
previewUrl: 'Предварительный просмотр эфира канала по URL',
extensions: 'Дополнительные расширения',
save: 'Сохранить',
delete: 'Удалить',
updateChannelSuccess: 'Обновление конфигурации канала успешно!',
updateChannelFailed: 'Обновление конфигурации канала не получилось!',
errorChannelDelete: 'Первый канал не может быть удален!',
deleteChannelSuccess: 'Удаление канала успешно!',
deleteChannelFailed: 'Удаление канала неуспешно!',
playoutConf: 'Настройки Конфигурации',
general: 'Главное',
rpcServer: 'RPC Сервер',
mail: 'Электронная почта',
logging: 'Логирование',
processing: 'Настройки эфира',
ingest: 'Ingest',
playlist: 'Плейлист',
storage: 'Storage',
text: 'Текст',
task: 'Task',
output: 'Out',
placeholderPass: 'Password',
help: 'Help',
generalHelp: `Sometimes it can happen that a file is corrupt but still playable. This can produce a streaming error for all following files. The only solution in this case is to stop ffplayout and start it again.
'Stop Threshold' stops ffplayout if it is asynchronous in time above this value. A number below 3 can cause unexpected errors.`,
mailHelp: `Send error messages to an email address, such as missing clips, missing or invalid playlist format, etc.. Leave the recipient blank if you don't need this.
'Interval' refers to the number of seconds until a new email is sent; the value must be in increments of 10 and not lower then 30 seconds.`,
logHelp: `'ffmpeg_level/ingest_level' can be INFO, WARNING, or ERROR.
'detect_silence' logs an error message if the audio line is silent for 15 seconds during the validation process.
'ignore' allows logging to ignore strings that contain matched lines; the format is a semicolon-separated list.`,
processingHelp: `Default processing for all clips ensures uniqueness. The mode can be either 'playlist' or 'folder'.
The 'aspect' parameter must be a float number.
The 'audio_tracks' parameter specifies how many audio tracks should be processed.'audio_channels' can be used if the audio has more channels than stereo.
The 'logo' is used only if the path exists; the path is relative to your storage folder.
'logo_scale' scales the logo to the target size. Leave it blank if no scaling is needed. The format is 'width:height', for example, '100:-1' for proportional scaling. The 'logo_opacity' option allows the logo to become transparent.'logo_position' is specified in the format 'x:y', which sets the logo's position.
With 'custom_filter', it is possible to apply additional filters. The filter outputs should end with [c_v_out] for video filters and [c_a_out] for audio filters.
'vtt_enable' can only be used in HLS mode, and only when *.vtt files with the same filename as the video file exist.`,
ingestHelp: `Run a server for an ingest stream. This stream will override the normal streaming until it is finished. There is only a very simple authentication mechanism, which checks if the stream name is correct.
'custom_filter' can be used in the same way as the one in the process section.`,
playlistHelp: `'day_start' indicates at what time the playlist should start; leave 'day_start' blank if the playlist should always start at the beginning. 'length' represents the target length of the playlist; when it is blank, the real length will not be considered.
'infinite: true' works with a single playlist file and loops it infinitely.`,
storageHelp: `'filler' is used to play in place of a missing file or to fill the remaining time to reach a total of 24 hours. It can be a file or folder and will loop when necessary.
'extensions' specifies which files to search for by this extension. Activate 'shuffle' to pick files randomly.`,
textHelp: `Overlay text in combination with libzmq for remote text manipulation. 'font' is a relative path to your storage folder.
'text_from_filename' activates the extraction of text from a filename. With 'style', you can define the drawtext parameters, such as position, color, etc. Posting text over the API will override this. With 'regex', you can format file names to extract a title from them.`,
taskHelp: `Run an external program with a given media object. The media object is in JSON format and contains all the information about the current clip. The external program can be a script or a binary, but it should only run for a short time.`,
outputHelp: `The final playout encoding, set the settings according to your needs. 'mode' has the options 'desktop', 'hls', 'null', and 'stream'. Use 'stream' and adjust the 'output_param:' settings when you want to stream to an RTMP/RTSP/SRT/... server.
In production, don't serve HLS playlists with ffplayout; use Nginx or another web server!`,
restartTile: 'Перезапуск Playout',
restartText: 'Перезапустить ffplayout для применения изменений?',
updatePlayoutSuccess: 'Обновление конфигурации воспроизведения прошло успешно!',
updatePlayoutFailed: 'Обновление конфигурации воспроизведения не удалось!',
forbiddenPlaylistPath: 'Доступ запрещен: Папка плейлиста не может быть открыта.',
noPlayoutConfig: 'Конфигурация воспроизведения не найдена!',
publicPath: 'Public (HLS) Path',
playlistPath: 'Playlist Path',
storagePath: 'Storage Path',
sharedStorage: 'Общее хранилище включено, используйте один и тот же корень хранилища для всех каналов!',
},
user: {
title: 'Конфигурация пользователя',
add: 'Добавить пользователя',
delete: 'Удалить пользователя',
name: 'Имя пользователя',
mail: 'Электронная почта',
password: 'Пароль',
newPass: 'Новый пароль',
confirmPass: 'Подтвердите пароль',
save: 'Сохранить',
admin: 'Админ',
deleteNotPossible: 'Delete current user not possible!',
deleteSuccess: 'Удаление пользователя успешно!',
deleteError: 'Удаление пользователя с ошибкой',
addSuccess: 'Добавление пользователя успешно!',
addFailed: 'Добавление пользователя не успешно!',
mismatch: 'Password mismatch!',
updateSuccess: 'Обновление данных о пользователе успешно!',
updateFailed: 'Обновление данных о пользователе не успешно!',
},
}