243 lines
11 KiB
JavaScript

export default {
ok: 'Ok',
cancel: 'Cancel',
socketConnected: 'Event stream connected',
socketDisconnected: 'Event stream disconnected',
alert: {
wrongLogin: 'Incorrect login data!',
},
button: {
login: 'Login',
home: 'Home',
player: 'Player',
media: 'Media',
message: 'Message',
logging: 'Logging',
channels: 'Channels',
configure: 'Configure',
logout: 'Logout',
},
error: {
notFound: 'Page not found',
serverError: 'Internal server error',
},
input: {
username: 'Username',
password: 'Password',
},
system: {
cpu: 'CPU',
cores: 'Cores',
load: 'Load',
memory: 'Memory',
swap: 'Swap',
total: 'Total',
usage: 'Usage',
network: 'Network',
in: 'In',
out: 'Out',
storage: 'Storage',
device: 'Device',
size: 'Size',
used: 'Used',
},
control: {
noClip: 'No clip is playing',
ingest: 'Live Ingest',
start: 'Start Playout Service',
last: 'Jump to last Clip',
stop: 'Stop Playout Service',
reset: 'Reset Playout State',
restart: 'Restart Playout Service',
next: 'Jump to next Clip',
},
player: {
start: 'Start',
file: 'File',
play: 'Play',
title: 'Title',
duration: 'Duration',
total: 'Total',
in: 'In',
out: 'Out',
ad: 'Ad',
edit: 'Edit',
delete: 'Delete',
copy: 'Copy Playlist',
loop: 'Loop Clips in Playlist',
remote: 'Add (remote) Source to Playlist',
import: 'Import text/m3u file',
generate: 'Simple and advanced playlist generator',
reset: 'Reset Playlist',
save: 'Save Playlist',
deletePlaylist: 'Delete Playlist',
unsavedProgram: 'There is a program that is not saved!',
copyTo: 'Copy current Program to',
addEdit: 'Add/Edit Source',
audio: 'Audio',
customFilter: 'Custom Filter',
deleteFrom: 'Delete program from',
deleteSuccess: 'Playlist deleted...',
generateProgram: 'Generate Program',
simple: 'Simple',
advanced: 'Advanced',
sorted: 'Sorted',
shuffle: 'Shuffle',
shift: 'Shift',
all: 'All',
addBlock: 'Add time block',
infinitInfo: 'Playout runs in infinite mode. No time based information is possible.',
generateDone: 'Generate Playlist done...',
dateYesterday: 'Current time is before the playlist start time!',
},
media: {
notExists: 'Storage not exist!',
create: 'Create Folder',
upload: 'Upload Files',
delete: 'Delete',
file: 'File',
folder: 'Folder',
deleteQuestion: 'Are you sure that you want to delete',
preview: 'Preview',
rename: 'Rename File',
newFile: 'New filename',
createFolder: 'Create Folder',
foldername: 'Foldername',
current: 'Current',
overall: 'Overall',
uploading: 'Uploading',
moveError: 'Move error',
deleteError: 'Delete error',
folderExists: 'Folder exists already',
folderCreate: 'Folder create done...',
folderError: 'Folder create error',
uploadError: 'Upload error',
fileExists: 'File exists already!',
recursive: 'Recursive',
},
message: {
savePreset: 'Save Preset',
newPreset: 'New Preset',
delPreset: 'Delete Preset',
delText: 'Are you sure that you want to delete preset',
placeholder: 'Message',
xAxis: 'X Axis',
yAxis: 'Y Axis',
showBox: 'Show Box',
boxColor: 'Box Color',
boxAlpha: 'Box Alpha',
size: 'Size',
spacing: 'Spacing',
overallAlpha: 'Overall Alpha',
fontColor: 'Font Color',
fontAlpha: 'Font Alpha',
borderWidth: 'Border Width',
send: 'Send',
name: 'Name',
saveDone: 'Save Preset done!',
saveFailed: 'Save Preset failed!',
sendDone: 'Sending success...',
sendFailed: 'Sending failed...',
},
log: {
download: 'Download log file',
reload: '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: 'Channel',
user: 'User',
channelConf: 'Channel Configuration',
addChannel: 'Add new Channel',
name: 'Name',
previewUrl: 'Preview URL',
extensions: 'Extra Extensions',
save: 'Save',
delete: 'Delete',
updateChannelSuccess: 'Update channel config success!',
updateChannelFailed: 'Update channel config failed!',
errorChannelDelete: 'First channel can not be deleted!',
deleteChannelSuccess: 'Delete channel config success!',
deleteChannelFailed: 'Delete channel config failed!',
playoutConf: 'Playout Configuration',
general: 'General',
rpcServer: 'RPC Server',
mail: 'Email',
logging: 'Logging',
processing: 'Processing',
ingest: 'Ingest',
playlist: 'Playlist',
storage: 'Storage',
text: 'Text',
task: 'Task',
output: 'Output',
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.
'mail_level' can be INFO, WARNING, or ERROR.
'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: 'Restart Playout',
restartText: 'Restart ffplayout to apply changes?',
updatePlayoutSuccess: 'Update playout config success!',
updatePlayoutFailed: 'Update playout config failed!',
forbiddenPlaylistPath: 'Access forbidden: Playlist folder cannot be opened.',
noPlayoutConfig: 'No playout config found!',
publicPath: 'Public (HLS) Path',
playlistPath: 'Playlist Path',
storagePath: 'Storage Path',
sharedStorage: 'Shared storage is enabled, use the same storage root for all channels!',
},
user: {
title: 'User Configuration',
add: 'Add User',
delete: 'Delete',
name: 'Username',
mail: 'Email',
password: 'Password',
newPass: 'New Password',
confirmPass: 'Confirm Password',
save: 'Save',
admin: 'Admin',
deleteNotPossible: 'Delete current user not possible!',
deleteSuccess: 'Delete user done!',
deleteError: 'Delete user error',
addSuccess: 'Add user success!',
addFailed: 'Add user failed!',
mismatch: 'Password mismatch!',
updateSuccess: 'Update user profile success!',
updateFailed: 'Update user profile failed!',
},
}