diff --git a/definitions/base.js b/definitions/base.js index d27d33cc..57a061bf 100644 --- a/definitions/base.js +++ b/definitions/base.js @@ -24,7 +24,7 @@ module.exports = function(s,config,lang){ "blocks": { "Page Control": { name: lang.Monitor, - headerTitle: `
当宽度和高度框显示,你应该将它们设置为640x480或以下。 这将优化该阅读的速度框架。
", "Disable Night Vision": "禁止夜视 的URL地址", "Disable Nightvision": "禁止夜视", - "Disabled": "残疾人", + "Disabled": "禁用", "Documentation": "文档", "Don't show this anymore": "不再这样下去了", "Double Quote Directory": "双引目录中的 一些目录具有空间。 使用这个可能会崩溃,一些摄像机。", @@ -176,8 +176,8 @@ "Font Path": "字体路径", "Font Size": "字体大小", "Force Port": "部队口", - "Found Devices": "设备找到了", - "Frame Rate": "框率 (》)", + "Found Devices": "发现设备", + "Frame Rate": "帧率", "Full Frame Detection": "完全检测框架", "Fullscreen": "全屏", "Greater Than": "大于", @@ -220,11 +220,11 @@ "Input": "输入", "Input Flags": "输入的标志", "Input Type": "输入类型", - "InputText1": "这部分告诉忍如何消耗流。 最佳性能试图调整你的摄像机的内置。 找到以下选项,并设定他们如图所示。 找到你的摄像机可以使用 建立在升扫描仪 的忍者. 一些升摄像机要求采用一个管理工具,以修改其内部设置。 如果你找不到你的摄像机你可以尝试 提升设备Manager for Windows.", + "InputText1": "这部分告诉Shinobi如何使用流。 最佳性能试图调整你的摄像机的内置。 找到以下选项,并设定他们如图所示。 找到你的摄像机可以使用 建立在升扫描仪 的Shinobi. 一些升摄像机要求采用一个管理工具,以修改其内部设置。 如果你找不到你的摄像机你可以尝试 提升设备Manager for Windows.", "InputText2": "addStorage
变量配置更多位置。",
+ "Tags": "标签",
+ "Compress Completed Videos": "压缩完成的视频",
+ "compressCompletedVideosFieldText": "自动压缩视频到WebM一旦录制。这样做需要一个强大的CPU,或者您必须允许大量的时间来进行压缩。视频添加到数据库的速率不能快于压缩速率。",
+ "Connection": "连接",
+ "fieldTextType": "将用于消费视频流的方法。",
+ "Automatic": "自动",
+ "fieldTextAutoHostEnable": "提供构建流URL所需的各个部分,或者提供完整的URL,并允许Shinobi为您解析它。",
+ "Full URL Path": "完整URL路径",
+ "fieldTextAutoHost": "完整的流URL。",
+ "fieldTextFatalMax": "在将监视器设置为禁用之前,服务器和摄像机之间的网络连接需要重试的次数。没有小数。设置为0将永远重试。",
+ "Skip Ping": "跳过Ping",
+ "fieldTextSkipPing": "选择在启动监视器进程之前是否需要一个成功的ping。",
+ "fieldTextIsOnvif": "这是一个兼容ONVIF的相机吗?",
+ "fieldTextAduration": "如果您正在使用RTSP并且有流问题,则设置为100000。",
+ "fieldTextProbesize": "如果您正在使用RTSP并且有流问题,则设置为100000。",
+ "fieldTextSfps": "指定摄像机提供流的帧率(FPS)。",
+ "Use Camera Timestamps": "使用相机时间戳",
+ "fieldTextWallClockTimestampIgnore": "将所有传入的摄像机数据以摄像机时间而不是服务器时间为基础",
+ "Accelerator": "加速器",
+ "fieldTextAccelerator": "硬件加速(HWAccel)解码流。",
+ "fieldTextStreamType": "将用于消费视频流的方法。",
+ "fieldTextChannelStreamVcodec": "流媒体视频编解码器。",
+ "fieldTextStreamVcodec": "流媒体视频编解码器。",
+ "fieldTextDetailSubstreamOutputStreamVcodec": "流媒体视频编解码器。",
+ "fieldTextStreamAcodec": "只有在你所在地区的法律允许录制音频的情况下才打开这个功能。",
+ "fieldTextDetailSubstreamOutputStreamAcodec": "只有在你所在地区的法律允许录制音频的情况下才打开这个功能。",
+ "fieldTextChannelStreamAcodec": "只有在你所在地区的法律允许录制音频的情况下才打开这个功能。",
+ "Substream": "子流",
+ "substreamText": "这是一种按需观看直播的方式。你可以让它只在有人观看时才能观看,或者用于在低分辨率和高分辨率之间切换。",
+ "Output": "输出",
+ "substreamOutputText": "你可以在这里设置按需流的配置。在这里了解流类型的延迟。",
+ "fieldTextDetailSubstreamOutputHlsTime": "每个视频片段应该有多长,单位为分钟。每个段将由客户端通过m3u8文件绘制。更短的片段占用更少的空间",
+ "fieldTextChannelHlsTime": "每个视频片段应该有多长,单位为分钟。每个段将由客户端通过m3u8文件绘制。更短的片段占用更少的空间",
+ "fieldTextHlsListSize": "自动删除旧段前的最大段数。",
+ "fieldTextDetailSubstreamOutputHlsListSize": "自动删除旧段前的最大段数。",
+ "fieldTextDetectorBufferHlsListSize": "自动删除旧段前的最大段数。",
+ "fieldTextChannelHlsListSize": "自动删除旧段前的最大段数。",
+ "fieldTextChannelPresetStream": "如果你发现你的相机每隔几秒钟就死机一次:试着让它保持空白。",
+ "fieldTextPresetStream": "如果你发现你的相机每隔几秒钟就死机一次:试着让它保持空白。",
+ "fieldTextDetailSubstreamOutputPresetStream": "如果你发现你的相机每隔几秒钟就死机一次:试着让它保持空白。",
+ "fieldTextPresetRecord": "如果你发现你的相机每隔几秒钟就死机一次:试着让它保持空白。",
+ "fieldTextStreamQuality": "数字越大,质量越差。",
+ "fieldTextDetailSubstreamOutputStreamQuality": "数字越大,质量越差。",
+ "fieldTextCrf": "数字越大,质量越差。",
+ "fieldTextChannelStreamQuality": "数字越大,质量越差。",
+ "fieldTextStreamFps": "向客户端显示帧的速度,单位为每秒帧数。请注意,没有默认值。这可能导致高带宽占用。",
+ "fieldTextDetailSubstreamOutputStreamFps": "向客户端显示帧的速度,单位为每秒帧数。请注意,没有默认值。这可能导致高带宽占用。",
+ "fieldTextChannelStreamFps": "向客户端显示帧的速度,单位为每秒帧数。请注意,没有默认值。这可能导致高带宽占用。",
+ "fieldTextStreamScaleX": "处理后输出的流图像的宽度。",
+ "fieldTextDetailSubstreamOutputStreamScaleX": "处理后输出的流图像的宽度。",
+ "fieldTextChannelStreamScaleX": "处理后输出的流图像的宽度。",
+ "fieldTextStreamScaleY": "处理后输出的流图像的高度。",
+ "fieldTextDetailSubstreamOutputStreamScaleY": "处理后输出的流图像的高度。",
+ "fieldTextChannelStreamScaleY": "处理后输出的流图像的高度。",
+ "fieldTextStreamRotate": "改变视频流的观看角度。",
+ "fieldTextDetailSubstreamOutputStreamRotate": "改变视频流的观看角度。",
+ "fieldTextChannelStreamRotate": "改变视频流的观看角度。",
+ "fieldTextSnap": "在JPEG中获取最新的帧。",
+ "Timelapse": "间隔拍摄",
+ "fieldTextRecordTimelapse": "创建一个基于JPEG的时间推移。",
+ "Detector Settings": "探测器的设置",
+ "Primary Engine": "主引擎",
+ "fieldTextDetector": "这将在FFMPEG命令中为运动检测器添加另一个输出。",
+ "Call Method": "调用方法",
+ "PTZ Tracking": "PTZ跟踪",
+ "fieldTextDetectorPtzFollow": "用PTZ跟踪检测到的最大物体?需要运行对象检测器或提供事件的矩阵。",
+ "Copy Settings": "复制设置",
+ "Copy to Selected Monitor(s)": "复制到选定的监视器",
+ "Notifications": "通知",
+ "Methods": "方法",
+ "On Unexpected Exit": "意外退出",
+ "Use Raw Snapshot": "使用原始快照",
+ "fieldTextLoglevel": "完成工作时要提供的数据量。",
+ "fieldTextSqllog": "请谨慎使用,因为FFMPEG有时喜欢抛出多余的数据,这可能导致大量的数据库行。",
+ "Log Stream": "日志流",
+ "Minimum Change": "最小的变化",
+ "Maximum Change": "最大的变化",
+ "Trigger Threshold": "触发阈值",
+ "Color Threshold": "颜色阈值",
+ "Primary": "最基本的",
+ "fieldTextDetectorSensitivity": "运动置信度必须超过这个值才能被视为触发。这个数字与运动检测器返回的置信度直接相关。这个选项以前被命名为“无差异的”。",
+ "fieldTextDetectorMaxSensitivity": "动作置信度必须低于这个值才能被视为触发。留空表示没有最大值。这个选项以前被命名为“最大无差异”。",
+ "fieldTextDetectorThreshold": "触发运动事件的最小检测数。检测必须在检测器阈值内除以检测器fps秒。例如,如果检测器fps为2,触发阈值为3,则必须在1.5秒内发生三次检测才能触发一个运动事件。该阈值针对每个检测区域。",
+ "fieldTextDetectorColorThreshold": "",
+ "fieldTextDetectorNoiseFilterRange": "在一个像素被视为是移动之前允许的差异量。",
+ "fieldTextDetectorFrame": "这将读取整个帧的像素差异。这与创建覆盖整个屏幕的区域是一样的。如果没有区域添加到此监视器,此选项将默认为“是”。",
+ "Accuracy Mode": "精度模式",
+ "Tile Size": "平铺大小",
+ "fieldTextTileSize": "在精度模式下,这是每个贴图的像素平方。数值越低,准确性越高,但会占用更多的资源。",
+ "fieldTextEventFilters": "启用使所有事件遵守您的事件筛选规则。",
+ "Filter for Objects only": "仅针对对象的过滤器",
+ "Conditions": "条件",
+ "eventFilterActionText": "这些是从成功的筛选条件中发生的操作。“原始选择”是指您在监视器设置中选择的选项。",
+ "Drop Event": "剔除事件",
+ "fieldTextActionsHalt": "让事件什么都不做,就好像它从未发生过。",
+ "Save Events": "保存事件",
+ "Original Choice": "原始选项",
+ "Modify Indifference": "无差异修改",
+ "fieldTextActionsIndifference": "修改事件所需的最小无差异。",
+ "Legacy Webhook": "遗留Webhook",
+ "Detector Command": "探测器命令",
+ "fieldTextActionsCommand": "你可以使用它来触发一个脚本命令。",
+ "Use Record Method": "使用记录方法",
+ "fieldTextActionsRecord": "在“全局检测设置”部分中,使用基于事件的记录、热交换或不动地删除与其当前设置的选项。",
+ "Monitor States and Schedules": "监视状态和进度",
+ "Monitor States": "监控状态",
+ "MonitorStatesText": "您可以在ShinobiHub上了解如何使用它。",
+ "Schedules": "日程安排",
+ "Schedule": "时间表",
+ "Timezone Offset": "时区偏移",
+ "Days": "天数",
+ "January": "1月",
+ "February": "2月",
+ "March": "3月",
+ "April": "4月",
+ "May": "5月",
+ "June": "6月",
+ "July": "7月",
+ "August": "8月",
+ "September": "9月",
+ "October": "10月",
+ "November": "11月",
+ "December": "12月",
+ "Sunday": "周日",
+ "Monday": "周一",
+ "Tuesday": "周二",
+ "Wednesday": "周三",
+ "Thursday": "周四",
+ "Friday": "周五",
+ "Saturday": "周六",
+ "Today": "今天",
+ "Saved Logs": "保存日志",
+ "Type": "类型",
+ "Websocket Connected": "Websocket 连接",
+ "New Authentication Token": "新的身份验证令牌",
+ "Websocket Disconnected": "Websocket 断开连接",
+ "Streamed Logs": "流日志",
+ "Account Settings": "帐户设置",
+ "Alternate Logins": "备用登录",
+ "fieldTextFactorAuth": "通过已启用的方法之一启用登录的次要需求。",
+ "fieldTextMail": "登录账户。主帐户持有人的电子邮件地址将收到通知。",
+ "fieldTextPass": "修改设置时请留空,以保持相同的密码。",
+ "fieldTextPasswordAgain": "如果要更改密码,必须匹配密码字段。",
+ "fieldTextSize": "在清理之前,Shinobi允许消耗的磁盘空间大小。该值以兆字节为单位读取。",
+ "Video Share": "视频分享",
+ "fieldTextSizeVideoPercent": "视频可以记录的最大存储容量的百分比。",
+ "Timelapse Frames Share": "延时帧共享",
+ "fieldTextSizeTimelapsePercent": "延时帧可以记录的最大存储空间的百分比。",
+ "FileBin Share": "文件箱文件分享",
+ "fieldTextSizeFilebinPercent": "文件箱归档文件可以使用的最大存储量的百分比。",
+ "fieldTextDays": "清除前保存视频的天数。",
+ "fieldTextLang": "文本元素的主要语言。要完成翻译,请在conf.json中添加您的语言,例如:'language': 'en_CA'.",
+ "Notification Sound": "通知提示声音",
+ "fieldTextAudioNote": "当信息框出现时发出声音。",
+ "No Sound": "静音",
+ "Alert Sound": "警报提示音",
+ "fieldTextAudioAlert": "事件发生时的声音。",
+ "Alert Sound Delay": "警报声音延迟",
+ "fieldTextAudioDelay": "延迟到下一次事件触发警报时。以秒为单位。",
+ "Popout Monitor on Event": "事件上的弹出监视器",
+ "fieldTextEventMonPop": "当事件发生时弹出监视器流。",
+ "Uploaders": "上传工具",
+ "Cycle Monitors per row": "每行周期监视器",
+ "Number of Cycle Monitors": "周期监控器数量",
+ "Cycle Monitor Height": "周期监测仪高度",
+ "Cycle Interval": "周期时间间隔",
+ "Clock Format": "时钟格式",
+ "hlsOptions": "HLS选项",
+ "Force Monitors Per Row": "每行强制监视器",
+ "Get Logs to Client": "将日志发送到客户端",
+ "Themes": "主题",
+ "subAccountManager": "子帐户管理",
+ "Sub-Accounts": "子帐户",
+ "Currently Active": "当前活动",
+ "Account Information": "账户信息",
+ "Account Privileges": "账户权限",
+ "Can Create and Delete Monitors": "可以创建和删除监视器吗?",
+ "Can Change User Settings": "可以更改用户设置吗?",
+ "Can View Logs": "可以查看日志吗? ",
+ "Landing Page": "着陆页",
+ "Clear": "清除",
+ "Authenticated": "已认证",
+ "Can Authenticate Websocket": "可以验证Websocket",
+ "separateByCommasOrRange": "用逗号或一个范围分隔",
+ "fieldTextPort": "用逗号或一个范围分隔",
+ "Add All": "添加全部",
+ "Other Devices": "其他设备",
+ "ONVIFErr404": "没有找到。这可能只是网络设备的web面板。",
+ "ONVIFErr400": "找到ONVIF端口,但检索流URL时授权失败。检查扫描使用的用户名和密码。确保您的相机时间和服务器时间同步。",
+ "ONVIFErr405": "方法不允许。检查扫描使用的用户名和密码。",
+ "sorryNothingWasFound": "对不起,什么也没找到。",
+ "ONVIF Device Manager": "设备管理器",
+ "Notice": "注意事项",
+ "onvifdeviceManagerGlobalTip": "ONVIF允许修改相机的内部设置。ONVIF是一个总括性的术语,不幸的是它可以意味着很多东西。在这种情况下,您可能会在此工具中看到一个选项,但它可能无法编辑。这通常是因为相机供应商没有添加此方法或偏离了其预期用途。在这种情况下,您需要通过相机供应商规定的方法进入相机的配置,这通常是在您的web浏览器中打开相机的IP地址。",
+ "Reboot Camera": "重新启动相机",
+ "Gateway": "网关",
+ "Hostname": "主机名",
+ "Date and Time": "日期和时间",
+ "UTCDateTime": "日期",
+ "NTP Servers": "NTP 服务器",
+ "DateTimeType": "日期管理",
+ "Manual": "手动",
+ "DaylightSavings": "夏令时",
+ "Imaging": "成像",
+ "IrCutFilter": "夜视",
+ "On": "开",
+ "Off": "关",
+ "Brightness": "亮度",
+ "ColorSaturation": "色彩饱和度",
+ "Contrast": "对比",
+ "BacklightCompensation": "背光补偿",
+ "Exposure": "曝光",
+ "MinExposureTime": "最小曝光时间",
+ "MaxExposureTime": "最大曝光时间",
+ "MinGain": "最小增益",
+ "MaxGain": "最大增益",
+ "Sharpness": "锐度",
+ "WideDynamicRange": "动态宽度范围",
+ "WhiteBalance": "白平衡",
+ "Video Configuration": "视频配置",
+ "Resolution": "分辨率",
+ "FrameRateLimit": "帧率限制(FPS)",
+ "BitrateLimit": "比特率限制",
+ "Encoding": "编码",
+ "H264Profile": "H264概要",
+ "monitorConfigFinderDescription": "此工具将帮助您搜索社区发布的摄像机配置。都在 ShinobiHub上。你也可以贴出你的,这会对社区有很大的帮助。",
+ "Date Updated": "更新日期",
+ "Date Added": "添加日期",
+ "Title": "标题",
+ "Subtitle": "副标题",
+ "Newest": "最新的",
+ "Oldest": "最旧的",
+ "Helping Hand": "援助之手",
+ "helpFinderDescription": "这个工具将帮助你学习使用Shinobi或者只是为你做一些事情。",
+ "Active Tutorial": "活跃的教程",
+ "Welcome": "欢迎!",
+ "failedLoginText2": "请检查您的登录凭据。",
+ "Configuration": "配置",
+ "Controls and Logs": "控制和日志",
+ "Easy Remote Access (P2P)": "轻松远程访问(P2P)",
+ "Custom Auto Load": "自定义自动加载",
+ "Plugin Manager": "插件管理器",
+ "Not Activated": "未激活",
+ "Activated": "已激活",
+ "Main Configuration": "主要配置",
+ "Enable Debug Log": "开启调试日志",
+ "Fill in subscription ID": "填写订阅ID",
+ "Server port": "服务器端口",
+ "Password type": "密码类型",
+ "Additional Storage": "额外的存储",
+ "AdditionalStorageDes": "可以为不同的监视器设置单独的存储位置。",
+ "Storage Array": "存储阵列",
+ "Plugin Keys": "插件的Key",
+ "PluginKeysDes": "插件的快速客户端连接设置。只需添加插件Key,使其为传入连接做好准备。",
+ "Database Options": "数据库的选择",
+ "DatabaseOptionDes": "连接到存储详细信息位置的凭据。",
+ "Hostname / IP": "主机名/ IP",
+ "CRON Options": "CRON选项",
+ "deleteOld": "删除旧的视频",
+ "deleteOldDes": "cron将删除超过每个帐户最大天数的视频。",
+ "deleteNoVideo": "删除无视频文件",
+ "deleteNoVideoDes": "cron将删除它认为没有视频文件的SQL行。",
+ "deleteOverMax": "删除超出最大存储的视频",
+ "deleteOverMaxDes": "Cron将删除超过每个帐户最大存储空间的文件。",
+ "Email Options": "电子邮件选项",
+ "service": "服务",
+ "auth": "身份验证",
+ "secure": "安全",
+ "ignoreTLS": "忽略TLS",
+ "requireTLS": "需要TLS",
+ "detectorMergePamRegionTriggers": "检测器合并pam区域触发器",
+ "doSnapshot": "做快照",
+ "discordBot": "与机器不一致",
+ "dropInEventServer": "插入事件服务器",
+ "ftpServer": "ftp服务器",
+ "oldPowerVideo": "旧的电源视频",
+ "wallClockTimestampAsDefault": "以挂钟时间戳为默认值",
+ "defaultMjpeg": "默认Mjpeg",
+ "streamDir": "流目录",
+ "videosDir": "视频目录",
+ "windowsTempDir": "windows 临时目录",
+ "Enable Face Manager": "启用面部识别管理器",
+ "enableFaceManagerDes": "在仪表板中启用/禁用面部识别插件的面部管理器。",
+ "PluginsDes": "精心制作插件连接设置。",
+ "Https": "Https",
+ "Key": "Key",
+ "Plug": "插件",
+ "Restart Core": "重新启动核心",
+ "Update": "更新",
+ "Flush PM2 Logs": "刷新PM2日志",
+ "How to Connect": "如何连接",
+ "HowToConnectDes1": "此功能适用于移动许可证用户。要获得API密钥,请登录到您的Shinobi商店帐户并创建一个与任何活跃的订阅ID相关联的密钥。学习更多。",
+ "HowToConnectDes2": "如果您想访问私人(专用)P2P服务器,请在Shinobi商店并通过Live Chat小部件与我们联系",
+ "Download URL for Module": "模块下载网址",
+ "Subdirectory for Module": "模块子目录",
+ "Inside the downloaded package": "在下载的包中",
+ "Download Plugins": "下载插件",
+ "pluginDownloadText": "在文档中了解如何安装插件。",
+ "User": "用户",
+ "Database": "数据库",
+ "Current Version": "当前版本",
+ "Reset Form": "重置表单",
+ "Default is Global value": "默认为全局值",
+ "fieldTextEventDays": "清除前保留事件的天数。",
+ "EncodingInterval": "关键帧",
+ "ShinobiHub": "ShinobiHub"
}
diff --git a/web/assets/js/super.configEditor.js b/web/assets/js/super.configEditor.js
index 6ce3b060..b2f6337d 100644
--- a/web/assets/js/super.configEditor.js
+++ b/web/assets/js/super.configEditor.js
@@ -1,25 +1,25 @@
$(document).ready(function () {
var schema = {
- "title": "Main Configuration",
+ "title": lang["Main Configuration"],
"type": "object",
"properties": {
"debugLog": {
- "title": "Enable Debug Log",
+ "title": lang["Enable Debug Log"],
"type": "boolean",
"default": false
},
"subscriptionId": {
- "title": "Fill in subscription ID",
+ "title": lang["Fill in subscription ID"],
"type": "string",
"default": null
},
"port": {
- "title": "Server port",
+ "title": lang["Server port"],
"type": "integer",
"default": 8080
},
"passwordType": {
- "title": "Password type",
+ "title": lang["Password type"],
"type": "string",
"enum": [
"sha256",
@@ -31,12 +31,12 @@ $(document).ready(function () {
"addStorage": {
"type": "array",
"format": "table",
- "title": "Additional Storage",
- "description": "Separate storage locations that can be set for different monitors.",
+ "title": lang["Additional Storage"],
+ "description": lang["AdditionalStorageDes"],
"uniqueItems": true,
"items": {
"type": "object",
- "title": "Storage Array",
+ "title": lang["Storage Array"],
"properties": {
"name": {
"type": "string",
@@ -57,21 +57,24 @@ $(document).ready(function () {
"plugins": {
"type": "array",
"format": "table",
- "title": "Plugins",
- "descripton": "Elaborate Plugin connection settings.",
+ "title": lang["Plugins"],
+ "descripton": lang["PluginsDes"],
"uniqueItems": true,
"items": {
"type": "object",
- "title": "Plugin",
+ "title": lang["Plugin"],
"properties": {
"plug": {
+ "title": lang["Plug"],
"type": "string",
"default": "pluginName"
},
"key": {
+ "title": lang["Key"],
"type": "string"
},
"mode": {
+ "title": lang["Mode"],
"type": "string",
"enum": [
"host",
@@ -80,21 +83,25 @@ $(document).ready(function () {
"default": "client"
},
"https": {
+ "title": lang["Https"],
"type": "boolean",
"descripton": "Only for Host mode.",
"default": false
},
"host": {
+ "title": lang["Host"],
"type": "string",
"descripton": "Only for Host mode.",
"default": "localhost"
},
"port": {
+ "title": lang["Port"],
"type": "integer",
"descripton": "Only for Host mode.",
"default": 8082
},
"type": {
+ "title": lang["Type"],
"type": "string",
"default": "detector"
}
@@ -104,8 +111,8 @@ $(document).ready(function () {
"pluginKeys": {
"type": "object",
"format": "table",
- "title": "Plugin Keys",
- "description": "Quick client connection setup for plugins. Just add the plugin key to make it ready for incoming connections.",
+ "title": lang["Plugin Keys"],
+ "description": lang["PluginKeysDes"],
"uniqueItems": true,
"items": {
"type": "object",
@@ -116,29 +123,31 @@ $(document).ready(function () {
"db": {
"type": "object",
"format": "table",
- "title": "Database Options",
- "description": "Credentials to connect to where detailed information is stored.",
+ "title": lang["Database Options"],
+ "description": lang["DatabaseOptionDes"],
"properties": {
"host": {
- "title": "Hostname / IP",
+ "title": lang["Hostname / IP"],
"type": "string",
"default": "127.0.0.1"
},
"user": {
- "title": "Username",
+ "title": lang["User"],
"type": "string",
"default": "majesticflame"
},
"password": {
- "title": "Password",
+ "title": lang["Password"],
"type": "string",
"default": ""
},
"database": {
+ "title": lang["Database"],
"type": "string",
"default": "ccio"
},
"port": {
+ "title": lang["Port"],
"type": "integer",
"default": 3306
}
@@ -154,24 +163,27 @@ $(document).ready(function () {
"cron": {
"type": "object",
"format": "table",
- "title": "CRON Options",
+ "title": lang["CRON Options"],
"properties": {
"key": {
"type": "string",
},
"deleteOld": {
+ "title": lang["deleteOld"],
"type": "boolean",
- "description": "cron will delete videos older than Max Number of Days per account.",
+ "description": lang["deleteOldDes"],
"default": true
},
"deleteNoVideo": {
+ "title": lang["deleteNoVideo"],
"type": "boolean",
- "description": "cron will delete SQL rows that it thinks have no video files.",
+ "description": lang["deleteNoVideoDes"],
"default": true
},
"deleteOverMax": {
+ "title": lang["deleteOverMax"],
"type": "boolean",
- "description": "cron will delete files that are over the set maximum storage per account.",
+ "description": lang["deleteOverMaxDes"],
"default": true
},
}
@@ -179,85 +191,105 @@ $(document).ready(function () {
"mail": {
"type": "object",
"format": "table",
- "title": "Email Options",
+ "title": lang["Email Options"],
"properties": {
"service": {
+ "title": lang["service"],
"type": "string",
},
"host": {
+ "title": lang["Host"],
"type": "string",
},
"auth": {
+ "title": lang["auth"],
"type": "object",
"properties": {
"user": {
+ "title": lang["User"],
"type": "string",
},
"pass": {
+ "title": lang["Password"],
"type": "string",
},
},
},
"secure": {
+ "title": lang["secure"],
"type": "boolean",
"default": false
},
"ignoreTLS": {
+ "title": lang["ignoreTLS"],
"type": "boolean",
},
"requireTLS": {
+ "title": lang["requireTLS"],
"type": "boolean",
},
"port": {
+ "title": lang["Port"],
"type": "integer",
}
}
},
"detectorMergePamRegionTriggers": {
+ "title": lang["detectorMergePamRegionTriggers"],
"type": "boolean",
"default": true
},
"doSnapshot": {
+ "title": lang["doSnapshot"],
"type": "boolean",
"default": true
},
"discordBot": {
+ "title": lang["discordBot"],
"type": "boolean",
"default": false
},
"dropInEventServer": {
+ "title": lang["dropInEventServer"],
"type": "boolean",
"default": false
},
"ftpServer": {
+ "title": lang["ftpServer"],
"type": "boolean",
"default": false
},
"oldPowerVideo": {
+ "title": lang["oldPowerVideo"],
"type": "boolean",
"default": false
},
"wallClockTimestampAsDefault": {
+ "title": lang["wallClockTimestampAsDefault"],
"type": "boolean",
"default": true
},
"defaultMjpeg": {
+ "title": lang["defaultMjpeg"],
"type": "string",
},
"streamDir": {
+ "title": lang["streamDir"],
"type": "string",
},
"videosDir": {
+ "title": lang["videosDir"],
"type": "string",
},
"windowsTempDir": {
+ "title": lang["windowsTempDir"],
"type": "string",
},
"enableFaceManager": {
"type": "boolean",
"default": false,
- "title": "Enable Face Manager",
- "description": "Enable / Disable face manager for face recognition plugins in the dashboard."
+ "title": lang["Enable Face Manager"],
+ "description": lang["enableFaceManagerDes"]
}
}
};
diff --git a/web/pages/blocks/easyRemoteAccess.ejs b/web/pages/blocks/easyRemoteAccess.ejs
index a6412a92..09683f74 100644
--- a/web/pages/blocks/easyRemoteAccess.ejs
+++ b/web/pages/blocks/easyRemoteAccess.ejs
@@ -58,8 +58,8 @@
<%- lang['How to Connect'] %>
This feature is available to Mobile License subscribers. To get an API Key please login to your ShinobiShop account and create a key associated to any active Subscription ID. Learn More.
-If you would like to get access to a private (dedicated) P2P server please create an account at the ShinobiShop and contact us via the Live Chat widget.
+<%- lang['HowToConnectDes1'] %>
+<%- lang['HowToConnectDes2'] %>