Merge branch 'master' into mediafoundation
# Conflicts: # assets/webconfig/content/dashboard.html # assets/webconfig/i18n/en.json # assets/webconfig/js/content_dashboard.js # assets/webconfig/js/content_logging.js # assets/webconfig/js/hyperion.js # assets/webconfig/js/ui_utils.js
36
.github/workflows/pull-request.yml
vendored
@ -41,7 +41,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
tr -d '\n' < version > temp && mv temp version
|
tr -d '\n' < version > temp && mv temp version
|
||||||
echo -n -PR#${{ github.event.pull_request.number }} >> version
|
echo -n "+PR${{ github.event.pull_request.number }}" >> version
|
||||||
|
|
||||||
# Build packages
|
# Build packages
|
||||||
- name: Build packages
|
- name: Build packages
|
||||||
@ -63,7 +63,7 @@ jobs:
|
|||||||
|
|
||||||
# Upload artifacts
|
# Upload artifacts
|
||||||
- name: Upload artifacts
|
- name: Upload artifacts
|
||||||
uses: actions/upload-artifact@v1
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: ${{ matrix.dockerImage }}
|
name: ${{ matrix.dockerImage }}
|
||||||
path: ${{ matrix.dockerImage }}
|
path: ${{ matrix.dockerImage }}
|
||||||
@ -87,7 +87,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
tr -d '\n' < version > temp && mv temp version
|
tr -d '\n' < version > temp && mv temp version
|
||||||
echo -n "-PR#${{ github.event.pull_request.number }}" >> version
|
echo -n "+PR${{ github.event.pull_request.number }}" >> version
|
||||||
|
|
||||||
# Install dependencies
|
# Install dependencies
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
@ -110,7 +110,7 @@ jobs:
|
|||||||
|
|
||||||
# Upload artifacts
|
# Upload artifacts
|
||||||
- name: Upload artifacts
|
- name: Upload artifacts
|
||||||
uses: actions/upload-artifact@v1
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: macOS
|
name: macOS
|
||||||
path: macOS
|
path: macOS
|
||||||
@ -136,7 +136,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
tr -d '\n' < version > temp && mv temp version
|
tr -d '\n' < version > temp && mv temp version
|
||||||
echo -n "-PR#${{ github.event.pull_request.number }}" >> version
|
echo -n "+PR${{ github.event.pull_request.number }}" >> version
|
||||||
|
|
||||||
- name: Cache Qt
|
- name: Cache Qt
|
||||||
uses: actions/cache@v2
|
uses: actions/cache@v2
|
||||||
@ -189,7 +189,31 @@ jobs:
|
|||||||
|
|
||||||
# Upload artifacts
|
# Upload artifacts
|
||||||
- name: Upload artifacts
|
- name: Upload artifacts
|
||||||
uses: actions/upload-artifact@v1
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: windows
|
name: windows
|
||||||
path: windows
|
path: windows
|
||||||
|
|
||||||
|
##########################
|
||||||
|
#### Snap (x86_64) #######
|
||||||
|
##########################
|
||||||
|
|
||||||
|
snap:
|
||||||
|
name: Snap (x86_64)
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
# Build snap package
|
||||||
|
- name: Build snap
|
||||||
|
id: build
|
||||||
|
uses: snapcore/action-build@v1
|
||||||
|
|
||||||
|
# Upload snap artifact (only on tagged commit)
|
||||||
|
- name: Upload snap artifact
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: snap
|
||||||
|
path: ${{ steps.build.outputs.snap }}
|
||||||
|
67
.github/workflows/push-master.yml
vendored
@ -151,12 +151,37 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
path: build/Hyperion-*
|
path: build/Hyperion-*
|
||||||
|
|
||||||
################################
|
##########################
|
||||||
###### Publish Releases ########
|
#### Snap (x86_64) #######
|
||||||
################################
|
##########################
|
||||||
|
|
||||||
publish:
|
snap:
|
||||||
name: Publish Releases
|
name: Snap (x86_64)
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
# Build snap package
|
||||||
|
- name: Build snap
|
||||||
|
id: build
|
||||||
|
uses: snapcore/action-build@v1
|
||||||
|
|
||||||
|
# Upload snap artifact (only on tagged commit)
|
||||||
|
- name: Upload snap artifact
|
||||||
|
if: startsWith(github.event.ref, 'refs/tags')
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: snap
|
||||||
|
path: ${{ steps.build.outputs.snap }}
|
||||||
|
|
||||||
|
#######################################
|
||||||
|
###### Publish GitHub Releases ########
|
||||||
|
#######################################
|
||||||
|
|
||||||
|
github_publish:
|
||||||
|
name: Publish GitHub Releases
|
||||||
if: startsWith(github.event.ref, 'refs/tags')
|
if: startsWith(github.event.ref, 'refs/tags')
|
||||||
needs: [Linux, macOS, windows]
|
needs: [Linux, macOS, windows]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@ -193,3 +218,35 @@ jobs:
|
|||||||
prerelease: ${{ env.preRelease }}
|
prerelease: ${{ env.preRelease }}
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
############################
|
||||||
|
###### Snap Release ########
|
||||||
|
############################
|
||||||
|
|
||||||
|
snap_publish:
|
||||||
|
name: Publish Snap Release
|
||||||
|
if: startsWith(github.event.ref, 'refs/tags')
|
||||||
|
needs: [snap]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
# Download snap from snap job
|
||||||
|
- name: Download snap from snap build
|
||||||
|
id: download-artifact
|
||||||
|
uses: actions/download-artifact@v2
|
||||||
|
with:
|
||||||
|
name: snap
|
||||||
|
|
||||||
|
# Get file name of the snap
|
||||||
|
- name: Get file name of the snap
|
||||||
|
run: echo "snap=$(ls ${{ steps.download-artifact.outputs.download-path }}/hyperion-ng_*.snap)" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
# Publish snap build to edge channel
|
||||||
|
- name: Publish snap build to edge channel
|
||||||
|
uses: snapcore/action-publish@v1
|
||||||
|
with:
|
||||||
|
store_login: ${{ secrets.SNAP_STORE_LOGIN }}
|
||||||
|
snap: ${{ env.snap }}
|
||||||
|
release: edge
|
||||||
|
@ -704,6 +704,64 @@ trademarks does not indicate endorsement of the trademark holder by Font
|
|||||||
Awesome, nor vice versa. **Please do not use brand logos for any purpose except
|
Awesome, nor vice versa. **Please do not use brand logos for any purpose except
|
||||||
to represent the company, product, or service to which they refer.**
|
to represent the company, product, or service to which they refer.**
|
||||||
|
|
||||||
|
============
|
||||||
|
Material Design Icons
|
||||||
|
============
|
||||||
|
|
||||||
|
Copyright (c) 2014, Austin Andrews (http://materialdesignicons.com/), with Reserved Font Name Material Design Icons.
|
||||||
|
|
||||||
|
Copyright (c) 2014, Google (http://www.google.com/design/) uses the license at https://github.com/google/material-design-icons/blob/master/LICENSE
|
||||||
|
|
||||||
|
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||||
|
This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
|
||||||
|
|
||||||
|
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||||
|
PREAMBLE The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects,
|
||||||
|
to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and
|
||||||
|
improved in partnership with others.
|
||||||
|
|
||||||
|
The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves.
|
||||||
|
The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works.
|
||||||
|
The fonts and derivatives, however, cannot be released under any other type of license.
|
||||||
|
The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
|
||||||
|
|
||||||
|
DEFINITIONS "Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such.
|
||||||
|
This may include source files, build scripts and documentation.
|
||||||
|
|
||||||
|
"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
|
||||||
|
|
||||||
|
"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
|
||||||
|
|
||||||
|
"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version,
|
||||||
|
by changing formats or by porting the Font Software to a new environment.
|
||||||
|
|
||||||
|
"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
|
||||||
|
|
||||||
|
PERMISSION & CONDITIONS Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software,
|
||||||
|
to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
|
||||||
|
|
||||||
|
Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
|
||||||
|
|
||||||
|
Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software,
|
||||||
|
provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files,
|
||||||
|
human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
|
||||||
|
|
||||||
|
No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder.
|
||||||
|
This restriction only applies to the primary font name as presented to the users.
|
||||||
|
|
||||||
|
The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote,
|
||||||
|
endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
|
||||||
|
|
||||||
|
The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license.
|
||||||
|
The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
|
||||||
|
|
||||||
|
TERMINATION This license becomes null and void if any of the above conditions are not met.
|
||||||
|
|
||||||
|
DISCLAIMER THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM,
|
||||||
|
DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT,
|
||||||
|
TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||||
|
|
||||||
=====
|
=====
|
||||||
Gijgo
|
Gijgo
|
||||||
=====
|
=====
|
||||||
@ -739,7 +797,7 @@ HIDAPI
|
|||||||
|
|
||||||
Copyright 2009, Alan Ott, Signal 11 Software.
|
Copyright 2009, Alan Ott, Signal 11 Software.
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
This software may be used by anyone for any reason so
|
This software may be used by anyone for any reason so
|
||||||
long as the copyright notice in the source files
|
long as the copyright notice in the source files
|
||||||
remains intact.
|
remains intact.
|
||||||
@ -856,8 +914,8 @@ THE SOFTWARE.
|
|||||||
|
|
||||||
## Markdown
|
## Markdown
|
||||||
|
|
||||||
Copyright © 2004, John Gruber
|
Copyright © 2004, John Gruber
|
||||||
http://daringfireball.net/
|
http://daringfireball.net/
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||||||
@ -1377,7 +1435,7 @@ tinkerforge
|
|||||||
|
|
||||||
Copyright (C) 2012-2013 Matthias Bolte <matthias@tinkerforge.com>
|
Copyright (C) 2012-2013 Matthias Bolte <matthias@tinkerforge.com>
|
||||||
Copyright (C) 2011 Olaf Lüke <olaf@tinkerforge.com>
|
Copyright (C) 2011 Olaf Lüke <olaf@tinkerforge.com>
|
||||||
|
|
||||||
Redistribution and use in source and binary forms of this file,
|
Redistribution and use in source and binary forms of this file,
|
||||||
with or without modification, are permitted.
|
with or without modification, are permitted.
|
||||||
|
|
||||||
@ -1415,7 +1473,7 @@ Pulse-Eight Licensing <license@pulse-eight.com>
|
|||||||
http://www.pulse-eight.net/
|
http://www.pulse-eight.net/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
GNU GENERAL PUBLIC LICENSE
|
GNU GENERAL PUBLIC LICENSE
|
||||||
Version 2, June 1991
|
Version 2, June 1991
|
||||||
|
|
||||||
|
@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
### Breaking
|
### Breaking
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
- LED-Devices: basic support for Hue Play Gradient Lightstrip
|
||||||
|
|
||||||
- WLED: Support of ["live" property] (https://github.com/Aircoookie/WLED/issues/1308), addresses #1095
|
- WLED: Support of ["live" property] (https://github.com/Aircoookie/WLED/issues/1308), addresses #1095
|
||||||
- WLED: Support storing/restoring state, fixes #1101
|
- WLED: Support storing/restoring state, fixes #1101
|
||||||
@ -29,6 +30,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- LED-Hue: Proper black in Entertainement mode if min brightness is set
|
- LED-Hue: Proper black in Entertainement mode if min brightness is set
|
||||||
- LED-Hue: Minor fix of setColor command
|
- LED-Hue: Minor fix of setColor command
|
||||||
- Nanoleaf: Fix,if external control mode cannot be set
|
- Nanoleaf: Fix,if external control mode cannot be set
|
||||||
|
- Fix issue #1229: "LED Test" effect description is in wrong order
|
||||||
|
|
||||||
### Removed
|
### Removed
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
![Hyperion](https://raw.githubusercontent.com/hyperion-project/hyperion.ng/master/assets/webconfig/img/hyperion/hyperionlogo.png)
|
![Hyperion](doc/logo.png)
|
||||||
|
|
||||||
[![Latest-Release](https://img.shields.io/github/v/release/hyperion-project/hyperion.ng?include_prereleases)](https://github.com/hyperion-project/hyperion.ng/releases)
|
[![Latest-Release](https://img.shields.io/github/v/release/hyperion-project/hyperion.ng?include_prereleases)](https://github.com/hyperion-project/hyperion.ng/releases)
|
||||||
[![GitHub Actions](https://github.com/hyperion-project/hyperion.ng/workflows/Hyperion%20CI%20Build/badge.svg?branch=master)](https://github.com/hyperion-project/hyperion.ng/actions)
|
[![GitHub Actions](https://github.com/hyperion-project/hyperion.ng/workflows/Hyperion%20CI%20Build/badge.svg?branch=master)](https://github.com/hyperion-project/hyperion.ng/actions)
|
||||||
|
@ -138,7 +138,7 @@ to this service over the network.
|
|||||||
sys.stderr.write(
|
sys.stderr.write(
|
||||||
'--- UDP to Serial redirector\n'
|
'--- UDP to Serial redirector\n'
|
||||||
'--- listening on udp port {a.localport}\n'
|
'--- listening on udp port {a.localport}\n'
|
||||||
'--- sending to {p.name} {p.baudrate},{p.bytesize}{p.parity}{p.stopbits}\n'
|
'--- sending to {p.name} {p.baudrate},{p.bytesize}{p.parity}{p.stopbits}\n'
|
||||||
'--- type Ctrl-C / BREAK to quit\n'.format(p=ser, a=args))
|
'--- type Ctrl-C / BREAK to quit\n'.format(p=ser, a=args))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@ -153,7 +153,7 @@ to this service over the network.
|
|||||||
|
|
||||||
srv = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
srv = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||||
srv.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
srv.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
||||||
srv.bind(('0.0.0.0', args.localport))
|
srv.bind(('0.0.0.0', args.localport)) # lgtm [py/bind-socket-all-network-interfaces]
|
||||||
|
|
||||||
try:
|
try:
|
||||||
intentional_exit = False
|
intentional_exit = False
|
||||||
@ -165,14 +165,14 @@ to this service over the network.
|
|||||||
if not data:
|
if not data:
|
||||||
break
|
break
|
||||||
|
|
||||||
if args.ada:
|
if args.ada:
|
||||||
numleds = len(data)/3
|
numleds = len(data)/3
|
||||||
hi = (numleds-1)/256
|
hi = (numleds-1)/256
|
||||||
lo = (numleds-1)&255
|
lo = (numleds-1)&255
|
||||||
sum = hi^lo^0x55
|
sum = hi^lo^0x55
|
||||||
ser.write ("Ada"+ chr(hi) + chr(lo) + chr(sum))
|
ser.write ("Ada"+ chr(hi) + chr(lo) + chr(sum))
|
||||||
|
|
||||||
ser.write(data) # get a bunch of bytes and send them
|
ser.write(data) # get a bunch of bytes and send them
|
||||||
except socket.error as msg:
|
except socket.error as msg:
|
||||||
if args.develop:
|
if args.develop:
|
||||||
raise
|
raise
|
||||||
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 38 KiB |
@ -1,106 +1,78 @@
|
|||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<h3 class="page-header"><i class="fa fa-info-circle fa-fw"></i><span data-i18n="main_menu_about_token">About
|
<h3 class="page-header">
|
||||||
Hyperion</span></h3>
|
<i class="fa fa-info-circle fa-fw"></i><span data-i18n="main_menu_about_token">
|
||||||
<div class="row">
|
About
|
||||||
<div class="col-lg-12">
|
Hyperion
|
||||||
<div id="about_cont"></div>
|
</span>
|
||||||
|
</h3>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12">
|
||||||
|
<div id="about_cont"></div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div id="danger_act" class="col-lg-6" style="display:none;padding-top:20px">
|
<div id="danger_act" class="col-lg-6" style="display:none;padding-top:20px">
|
||||||
<h4>You found a hidden service menu!</h4>
|
<h4>You found a hidden service menu!</h4>
|
||||||
<button id="reset_cache" class="btn btn-danger">Reset Browser Cache</button>
|
<button id="reset_cache" class="btn btn-danger">Reset Browser Cache</button>
|
||||||
<button id="hyp_restart" class="btn btn-danger">Force Hyperion Restart</button>
|
<button id="hyp_restart" class="btn btn-danger">Force Hyperion Restart</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
performTranslation();
|
performTranslation();
|
||||||
|
|
||||||
var si = sysInfo.hyperion;
|
var si = window.sysInfo.hyperion;
|
||||||
var libs = { "Bootstrap 3": "https://getbootstrap.com/", "JQuery": "https://jquery.com/", "Bootstrap Colorpicker": "https://itsjavi.com/bootstrap-colorpicker/", "Bootstrap Toggle": "https://www.bootstraptoggle.com/", "Bootstrap Select": "https://developer.snapappointments.com/bootstrap-select/", "JSON-Editor": "https://www.jeremydorn.com/json-editor", "jQuery.i18n": "https://github.com/wikimedia/jquery.i18n", "metisMenu": "https://mm.onokumus.com/index.html", "download.js": "https://github.com/rndme/download", "gijgo": "https://gijgo.com/" };
|
var libs = { "Bootstrap 3": "https://getbootstrap.com/", "JQuery": "https://jquery.com/", "Bootstrap Colorpicker": "https://itsjavi.com/bootstrap-colorpicker/", "Bootstrap Toggle": "https://www.bootstraptoggle.com/", "Bootstrap Select": "https://developer.snapappointments.com/bootstrap-select/", "JSON-Editor": "https://www.jeremydorn.com/json-editor", "jQuery.i18n": "https://github.com/wikimedia/jquery.i18n", "metisMenu": "https://mm.onokumus.com/index.html", "download.js": "https://github.com/rndme/download", "gijgo": "https://gijgo.com/" };
|
||||||
var libh = "";
|
var libh = "";
|
||||||
var lang = [];
|
var lang = [];
|
||||||
var dcount = 0;
|
var dcount = 0;
|
||||||
|
|
||||||
for (var i = 0; i < availLang.length; i++)
|
for (var i = 0; i < availLang.length; i++)
|
||||||
lang.push($.i18n('general_speech_' + availLang[i]));
|
lang.push($.i18n('general_speech_' + availLang[i]));
|
||||||
lang.sort();
|
lang.sort();
|
||||||
for (key in libs)
|
for (key in libs)
|
||||||
libh += '<a href="' + libs[key] + '" target="_blank">' + key + '</a>, ';
|
libh += '<a href="' + libs[key] + '" target="_blank">' + key + '</a>, ';
|
||||||
libh += "<br/>" + $.i18n("about_credits");
|
libh += "<br/>" + $.i18n("about_credits");
|
||||||
lang = lang.toString().replace(/,/g, ", ");
|
lang = lang.toString().replace(/,/g, ", ");
|
||||||
|
|
||||||
// Github Issue bugreport infos
|
var info = '<pre>' + getSystemInfo() + '</pre>';
|
||||||
var sys = window.sysInfo.system;
|
|
||||||
var shy = window.sysInfo.hyperion;
|
|
||||||
var info = "<pre>Hyperion Server: \n";
|
|
||||||
info += '- Build: ' + shy.build + '\n';
|
|
||||||
info += '- Build time: ' + shy.time + '\n';
|
|
||||||
info += '- Git Remote: ' + shy.gitremote + '\n';
|
|
||||||
info += '- Version: ' + shy.version + '\n';
|
|
||||||
info += '- UI Lang: ' + storedLang + ' (BrowserLang: ' + navigator.language + ')\n';
|
|
||||||
info += '- UI Access: ' + storedAccess + '\n';
|
|
||||||
//info += '- Log lvl: ' + window.serverConfig.logger.level + '\n';
|
|
||||||
info += '- Avail Capt: ' + window.serverInfo.grabbers.available + '\n';
|
|
||||||
info += '- Database: ' + (shy.readOnlyMode ? "ready-only" : "read/write") + '\n';
|
|
||||||
|
|
||||||
info += '\n';
|
var fc = ['<span id="danger_trig">' + $.i18n("about_version") + '<span>', $.i18n("about_build"), $.i18n("about_builddate"), $.i18n("about_translations"), $.i18n("about_resources", $.i18n("general_webui_title")), "System info (Github Issue)", $.i18n("about_3rd_party_licenses")];
|
||||||
|
var sc = [currentVersion, si.build, si.time, '(' + availLang.length + ')<p>' + lang + '</p><p><a href="https://github.com/hyperion-project/hyperion.ng" target="_blank">' + $.i18n("about_contribute") + '</a></p>', libh, info, '<pre><div id="3rdpartylicenses" style="overflow:scroll;max-height:400px"></div></pre>'];
|
||||||
|
|
||||||
info += 'Hyperion Server OS: \n';
|
createTable("", "atb", "about_cont");
|
||||||
info += '- Distribution: ' + sys.prettyName + '\n';
|
for (var i = 0; i < fc.length; i++)
|
||||||
info += '- Architecture: ' + sys.architecture + '\n';
|
$('.atb').append(createTableRow([fc[i], sc[i]], "atb", false));
|
||||||
|
|
||||||
if (sys.cpuModelName)
|
$('#danger_trig').off().on('click', function () {
|
||||||
info += '- CPU Model: ' + sys.cpuModelName + '\n';
|
dcount++;
|
||||||
if (sys.cpuModelType)
|
if (dcount > 2)
|
||||||
info += '- CPU Type: ' + sys.cpuModelType + '\n';
|
$('#danger_act').toggle(true);
|
||||||
if (sys.cpuRevision)
|
});
|
||||||
info += '- CPU Revision: ' + sys.cpuRevision + '\n';
|
|
||||||
if (sys.cpuHardware)
|
|
||||||
info += '- CPU Hardware: ' + sys.cpuHardware + '\n';
|
|
||||||
|
|
||||||
info += '- Kernel: ' + sys.kernelType + ' (' + sys.kernelVersion + ' (WS: ' + sys.wordSize + '))\n';
|
$('#reset_cache').off().on('click', function () {
|
||||||
info += '- Qt Version: ' + sys.qtVersion + '\n';
|
localStorage.clear();
|
||||||
info += '- Python Version: ' + sys.pyVersion + '\n';
|
});
|
||||||
info += '- Browser: ' + navigator.userAgent + ' </pre>';
|
|
||||||
|
|
||||||
var fc = ['<span id="danger_trig">' + $.i18n("about_version") + '<span>', $.i18n("about_build"), $.i18n("about_builddate"), $.i18n("about_translations"), $.i18n("about_resources", $.i18n("general_webui_title")), "System info (Github Issue)", $.i18n("about_3rd_party_licenses")];
|
$('#hyp_restart').off().on('click', function () {
|
||||||
var sc = [currentVersion, si.build, si.time, '(' + availLang.length + ')<p>' + lang + '</p><p><a href="https://github.com/hyperion-project/hyperion.ng" target="_blank">' + $.i18n("about_contribute") + '</a></p>', libh, info, '<pre><div id="3rdpartylicenses" style="overflow:scroll;max-height:400px"></div></pre>'];
|
initRestart();
|
||||||
|
});
|
||||||
|
|
||||||
createTable("", "atb", "about_cont");
|
var url = 'https://raw.githubusercontent.com/hyperion-project/hyperion.ng/master/3RD_PARTY_LICENSES';
|
||||||
for (var i = 0; i < fc.length; i++)
|
fetch(url)
|
||||||
$('.atb').append(createTableRow([fc[i], sc[i]], "atb", false));
|
.then(function (response) {
|
||||||
|
if (!response.ok) {
|
||||||
|
$("#3rdpartylicenses").html('<a href="' + url + '">' + $.i18n("about_3rd_party_licenses_error") + '</a>');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
response.text().then(function (text) {
|
||||||
|
$("#3rdpartylicenses").html('<code>' + text + '</code>');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(function (rejected) {
|
||||||
|
$("#3rdpartylicenses").html('<a href="' + url + '">' + $.i18n("about_3rd_party_licenses_error") + '</a>');
|
||||||
|
});
|
||||||
|
|
||||||
$('#danger_trig').off().on('click', function () {
|
removeOverlay();
|
||||||
dcount++;
|
|
||||||
if (dcount > 2)
|
|
||||||
$('#danger_act').toggle(true);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#reset_cache').off().on('click', function () {
|
|
||||||
localStorage.clear();
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#hyp_restart').off().on('click', function () {
|
|
||||||
initRestart();
|
|
||||||
});
|
|
||||||
|
|
||||||
var url = 'https://raw.githubusercontent.com/hyperion-project/hyperion.ng/master/3RD_PARTY_LICENSES';
|
|
||||||
fetch(url)
|
|
||||||
.then(function (response) {
|
|
||||||
if (!response.ok) {
|
|
||||||
$("#3rdpartylicenses").html('<a href="' + url + '">' + $.i18n("about_3rd_party_licenses_error") + '</a>');
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
response.text().then(function (text) {
|
|
||||||
$("#3rdpartylicenses").html('<code>' + text + '</code>');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.catch(function (rejected) {
|
|
||||||
$("#3rdpartylicenses").html('<a href="' + url + '">' + $.i18n("about_3rd_party_licenses_error") + '</a>');
|
|
||||||
});
|
|
||||||
|
|
||||||
removeOverlay();
|
|
||||||
</script>
|
</script>
|
||||||
|
@ -2,11 +2,23 @@
|
|||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-12">
|
<div class="col-lg-12">
|
||||||
<h3 class="page-header"><i class="fa fa-photo fa-fw"></i><span data-i18n="main_menu_colors_conf_token">Image Processing</span></h3>
|
<h3 class="page-header"><i class="fa fa-photo fa-fw"></i><span data-i18n="main_menu_colors_conf_token">Image Processing</span></h3>
|
||||||
<div id="conf_cont"></div>
|
|
||||||
|
<div class="panel panel-default" style="border:0px;">
|
||||||
|
<div class="panel-heading panel-instance" style="border-radius:3px; border-bottom:0px;">
|
||||||
|
<div class="dropdown">
|
||||||
|
<a id="active_instance_dropdown" class="dropdown-toggle" data-toggle="dropdown" href="#" style="text-decoration:none;display:flex;align-items:center;">
|
||||||
|
<div id="active_instance_friendly_name"></div>
|
||||||
|
<div id="btn_hypinstanceswitch" style="white-space:nowrap;"><span class="mdi mdi-lightbulb-group mdi-24px" style="margin-right:0; margin-left:5px;"></span><span class="mdi mdi-menu-down mdi-24px"></span></div>
|
||||||
|
</a>
|
||||||
|
<ul id="hyp_inst_listing" class="dropdown-menu dropdown-alerts" style="cursor:pointer;"></ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="conf_cont"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<script src="/js/content_colors.js"></script>
|
<script src="/js/content_colors.js"></script>
|
||||||
|
@ -2,6 +2,19 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-12">
|
<div class="col-lg-12">
|
||||||
<h3 class="page-header"><i class="fa fa-spinner fa-fw"></i><span data-i18n="main_menu_effect_conf_token">Effects</span></h3>
|
<h3 class="page-header"><i class="fa fa-spinner fa-fw"></i><span data-i18n="main_menu_effect_conf_token">Effects</span></h3>
|
||||||
|
|
||||||
|
<div class="panel panel-default" style="border:0px;">
|
||||||
|
<div class="panel-heading panel-instance" style="border-radius:3px; border-bottom:0px;">
|
||||||
|
<div class="dropdown">
|
||||||
|
<a id="active_instance_dropdown" class="dropdown-toggle" data-toggle="dropdown" href="#" style="text-decoration:none;display:flex;align-items:center;">
|
||||||
|
<div id="active_instance_friendly_name"></div>
|
||||||
|
<div id="btn_hypinstanceswitch" style="white-space:nowrap;"><span class="mdi mdi-lightbulb-group mdi-24px" style="margin-right:0; margin-left:5px;"></span><span class="mdi mdi-menu-down mdi-24px"></span></div>
|
||||||
|
</a>
|
||||||
|
<ul id="hyp_inst_listing" class="dropdown-menu dropdown-alerts" style="cursor:pointer;"></ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div id="conf_cont"></div>
|
<div id="conf_cont"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-6" id="inst_desc">
|
<div class="col-lg-6" id="inst_desc">
|
||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading"><i class="fa fa-plus fa-fw"></i><span data-i18n="conf_general_inst_title"></span></div>
|
<div class="panel-heading panel-instance"><i class="mdi mdi-lightbulb-group mdi-24px"></i><span data-i18n="conf_general_inst_title"></span></div>
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<div id="inst_desc_cont"></div>
|
<div id="inst_desc_cont"></div>
|
||||||
<div id="itable"></div>
|
<div id="itable"></div>
|
||||||
|
@ -1,374 +1,397 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Hyperion - LED Device Configuration</title>
|
||||||
|
</head>
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<h3 class="page-header"><i class="fa fa-lightbulb-o fa-fw"></i><span data-i18n="main_menu_leds_conf_token">LED Hardware</span></h3>
|
<h3 class="page-header"><i class="mdi mdi-lightbulb-on fa-fw"></i><span data-i18n="main_menu_leds_conf_token">LED Hardware</span></h3>
|
||||||
<ul id="leds_cfg_nav" class="nav nav-tabs">
|
|
||||||
<li class="active"><a data-toggle="tab" href="#menu_controller" data-i18n="conf_leds_nav_label_ledcontroller">LED Controller</a></li>
|
|
||||||
<li><a data-toggle="tab" href="#menu_gencfg" data-i18n="conf_leds_nav_label_ledlayout">LED Layout</a></li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<div class="tab-content">
|
<div class="panel panel-default" style="border:0px;">
|
||||||
|
<div class="panel-heading panel-instance" style="border-radius:3px; border-bottom:0px;">
|
||||||
<div id="menu_controller" class="tab-pane fade in active" style="padding-top:10px">
|
<div class="dropdown">
|
||||||
<div class="row">
|
<a id="active_instance_dropdown" class="dropdown-toggle" data-toggle="dropdown" href="#" style="text-decoration:none;display:flex;align-items:center;">
|
||||||
<div class="col-lg-12" id="leddevice_intro"></div>
|
<div id="active_instance_friendly_name"></div>
|
||||||
<div class="col-lg-6">
|
<div id="btn_hypinstanceswitch" style="white-space:nowrap;"><span class="mdi mdi-lightbulb-group mdi-24px" style="margin-right:0; margin-left:5px;"></span><span class="mdi mdi-menu-down mdi-24px"></span></div>
|
||||||
<div class="panel panel-default">
|
</a>
|
||||||
<div class="panel-heading form-group">
|
<ul id="hyp_inst_listing" class="dropdown-menu dropdown-alerts" style="cursor:pointer;"></ul>
|
||||||
<label for="leddevices" class="panel-title" data-i18n="conf_leds_contr_label_contrtype">Controller type:</label>
|
|
||||||
<select id="leddevices" class="form-control" style="color:black;width:auto;margin-left:10px;display:inline-block" />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="panel-body">
|
|
||||||
<div id="btn_wiz_holder"></div>
|
|
||||||
<div id="ledDeviceOptions"> <div id='editor_container'></div> </div>
|
|
||||||
</div>
|
|
||||||
<div class="panel-footer" style="text-align:right">
|
|
||||||
<button id='btn_submit_controller' class="btn btn-primary"><i class="fa fa-fw fa-save" /><span data-i18n="general_button_savesettings">Save Settings</span></button>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="menu_gencfg" class="tab-pane fade" style="padding-top:10px">
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-12" id="layout_intro"></div>
|
|
||||||
<div class="col-lg-6 col-md-12">
|
|
||||||
<div class="panel-group" id="accordion">
|
|
||||||
<div class="panel panel-primary">
|
|
||||||
<div class="panel-heading headcollapse" data-toggle="collapse" data-parent="#accordion" data-target="#collapse1">
|
|
||||||
<h4 class="panel-title">
|
|
||||||
<a><i class="fa fa-television fa-fw"></i><span data-i18n="conf_leds_layout_frame">Classic Layout (LED Frame)</span></a>
|
|
||||||
</h4>
|
|
||||||
</div>
|
|
||||||
<div id="collapse1" class="panel-collapse collapse in">
|
|
||||||
<div class="panel-body">
|
|
||||||
<table class="table borderless">
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td class="ltd">
|
|
||||||
<label class="ltdlabel" for="ip_cl_top" data-i18n="conf_leds_layout_cl_top">Top</label>
|
|
||||||
</td>
|
|
||||||
<td class="itd input-group">
|
|
||||||
<input class="form-control ledCLconstr " id="ip_cl_top" type="number" value="1" min="0" step="1"></input>
|
|
||||||
<div class="input-group-addon" data-i18n="edt_append_leds">LEDs</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="ltd">
|
|
||||||
<label class="ltdlabel" for="ip_cl_bottom" data-i18n="conf_leds_layout_cl_bottom">Bottom</label>
|
|
||||||
</td>
|
|
||||||
<td class="itd input-group">
|
|
||||||
<input class="form-control ledCLconstr" id="ip_cl_bottom" type="number" value="0" min="0" step="1"></input>
|
|
||||||
<div class="input-group-addon" data-i18n="edt_append_leds">LEDs</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="ltd">
|
|
||||||
<label class="ltdlabel" for="ip_cl_left" data-i18n="conf_leds_layout_cl_left">Left</label>
|
|
||||||
</td>
|
|
||||||
<td class="itd input-group">
|
|
||||||
<input class="form-control ledCLconstr" id="ip_cl_left" type="number" value="0" min="0" step="1"></input>
|
|
||||||
<div class="input-group-addon" data-i18n="edt_append_leds">LEDs</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="ltd">
|
|
||||||
<label class="ltdlabel" for="ip_cl_right" data-i18n="conf_leds_layout_cl_right">Right</label>
|
|
||||||
</td>
|
|
||||||
<td class="itd input-group">
|
|
||||||
<input class="form-control ledCLconstr" id="ip_cl_right" type="number" value="0" min="0" step="1"></input>
|
|
||||||
<div class="input-group-addon" data-i18n="edt_append_leds">LEDs</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="ltd">
|
|
||||||
<label class="ltdlabel" for="ip_cl_glength" data-i18n="conf_leds_layout_cl_gaglength">Gap length</label>
|
|
||||||
</td>
|
|
||||||
<td class="itd input-group">
|
|
||||||
<input class="form-control ledCLconstr" id="ip_cl_glength" type="number" value="0" min="0" step="1"></input>
|
|
||||||
<div class="input-group-addon" data-i18n="edt_append_leds">LEDs</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="ltd">
|
|
||||||
<label class="ltdlabel" for="ip_cl_gpos" data-i18n="conf_leds_layout_cl_gappos">Gap position</label>
|
|
||||||
</td>
|
|
||||||
<td class="itd">
|
|
||||||
<input class="form-control ledCLconstr" id="ip_cl_gpos" type="number" value="0" min="0" step="1">
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="ltd">
|
|
||||||
<label class="ltdlabel" for="ip_cl_position" data-i18n="conf_leds_layout_cl_inppos">Input position</label>
|
|
||||||
</td>
|
|
||||||
<td class="itd">
|
|
||||||
<input class="form-control ledCLconstr" id="ip_cl_position" type="number" value="0" min="0" step="1">
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="ltd">
|
|
||||||
<label class="ltdlabel" for="ip_cl_reverse" data-i18n="conf_leds_layout_cl_reversdir">Reverse direction</label>
|
|
||||||
</td>
|
|
||||||
<td class="itd">
|
|
||||||
<div class="checkbox">
|
|
||||||
<input class="ledCLconstr" id="ip_cl_reverse" type="checkbox" value="false"></input>
|
|
||||||
<label></label>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading headcollapse" data-toggle="collapse" data-target="#collapse3">
|
|
||||||
<h4 class="panel-title">
|
|
||||||
<a><span data-i18n="conf_leds_layout_advanced">Advanced settings</span></a>
|
|
||||||
</h4>
|
|
||||||
</div>
|
|
||||||
<div id="collapse3" class="panel-collapse collapse">
|
|
||||||
<div class="panel-body ">
|
|
||||||
<table class="tableform borderless">
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td class="ltd">
|
|
||||||
<label class="ltdlabel" for="ip_cl_hdepth" data-i18n="conf_leds_layout_cl_hleddepth">Horizontal LED depth</label>
|
|
||||||
</td>
|
|
||||||
<td class="itd input-group">
|
|
||||||
<input class="form-control ledCLconstr" id="ip_cl_hdepth" type="number" value="8" min="1" max="100" step="1"></input>
|
|
||||||
<div class="input-group-addon" data-i18n="edt_append_percent">%</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="ltd">
|
|
||||||
<label class="ltdlabel" for="ip_cl_vdepth" data-i18n="conf_leds_layout_cl_vleddepth">Vertical LED depth</label>
|
|
||||||
</td>
|
|
||||||
<td class="itd input-group">
|
|
||||||
<input class="form-control ledCLconstr" id="ip_cl_vdepth" type="number" value="5" min="1" max="100" step="1"></input>
|
|
||||||
<div class="input-group-addon" data-i18n="edt_append_percent">%</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="ltd">
|
|
||||||
<label class="ltdlabel" for="ip_cl_overlap" data-i18n="conf_leds_layout_cl_overlap">Edge Gap</label>
|
|
||||||
</td>
|
|
||||||
<td class="itd input-group">
|
|
||||||
<input class="form-control ledCLconstr" id="ip_cl_overlap" type="number" value="0" min="0" max="200" step="1"></input>
|
|
||||||
<div class="input-group-addon" data-i18n="edt_append_percent">%</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="ltd">
|
|
||||||
<label class="ltdlabel" for="ip_cl_edgegap" data-i18n="conf_leds_layout_cl_edgegap">Edge Gap</label>
|
|
||||||
</td>
|
|
||||||
<td class="itd input-group">
|
|
||||||
<input class="form-control ledCLconstr" id="ip_cl_edgegap" type="number" value="0" min="0" max="50" step="1"></input>
|
|
||||||
<div class="input-group-addon" data-i18n="edt_append_percent">%</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="ltd">
|
|
||||||
<label class="ltdlabel" for="ip_cl_ptl" data-i18n="conf_leds_layout_ptl">Point Top Left</label>
|
|
||||||
</td>
|
|
||||||
<td class="itd input-group">
|
|
||||||
<input class="form-control ledCLconstr" id="ip_cl_ptlh" type="number" value="0" min="0" max="40" step="1"></input>
|
|
||||||
<div class="input-group-addon" data-i18n="edt_append_percent_h">%h</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="ltd"></td>
|
|
||||||
<td class="itd input-group">
|
|
||||||
<input class="form-control ledCLconstr" id="ip_cl_ptlv" type="number" value="0" min="0" max="40" step="1"></input>
|
|
||||||
<div class="input-group-addon" data-i18n="edt_append_percent_v">%v</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="ltd">
|
|
||||||
<label class="ltdlabel" for="ip_cl_ptr" data-i18n="conf_leds_layout_ptr">Point Top Right</label>
|
|
||||||
</td>
|
|
||||||
<td class="itd input-group">
|
|
||||||
<input class="form-control ledCLconstr" id="ip_cl_ptrh" type="number" value="100" min="60" max="100" step="1"></input>
|
|
||||||
<div class="input-group-addon" data-i18n="edt_append_percent_h">%</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="ltd"></td>
|
|
||||||
<td class="itd input-group">
|
|
||||||
<input class="form-control ledCLconstr" id="ip_cl_ptrv" type="number" value="0" min="0" max="40" step="1"></input>
|
|
||||||
<div class="input-group-addon" data-i18n="edt_append_percent_v">%</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="ltd">
|
|
||||||
<label class="ltdlabel" for="ip_cl_pbr" data-i18n="conf_leds_layout_pbr">Point Bottom Right</label>
|
|
||||||
</td>
|
|
||||||
<td class="itd input-group">
|
|
||||||
<input class="form-control ledCLconstr" id="ip_cl_pbrh" type="number" value="100" min="60" max="100" step="1"></input>
|
|
||||||
<div class="input-group-addon" data-i18n="edt_append_percent_h">%</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="ltd"></td>
|
|
||||||
<td class="itd input-group">
|
|
||||||
<input class="form-control ledCLconstr" id="ip_cl_pbrv" type="number" value="100" min="60" max="100" step="1"></input>
|
|
||||||
<div class="input-group-addon" data-i18n="edt_append_percent_v">%</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="ltd">
|
|
||||||
<label class="ltdlabel" for="ip_cl_pbl" data-i18n="conf_leds_layout_pbl">Point Bottom Left</label>
|
|
||||||
</td>
|
|
||||||
<td class="itd input-group">
|
|
||||||
<input class="form-control ledCLconstr" id="ip_cl_pblh" type="number" value="0" min="0" max="40" step="1"></input>
|
|
||||||
<div class="input-group-addon" data-i18n="edt_append_percent_h">%</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="ltd"></td>
|
|
||||||
<td class="itd input-group">
|
|
||||||
<input class="form-control ledCLconstr" id="ip_cl_pblv" type="number" value="100" min="60" max="100" step="1"></input>
|
|
||||||
<div class="input-group-addon" data-i18n="edt_append_percent_v">%</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<!-- <tr>
|
|
||||||
<td class="ltd">
|
|
||||||
<label class="ltdlabel" for="ip_cl_cornergap" data-i18n="conf_leds_layout_cl_cornergap">Corner Gap</label>
|
|
||||||
</td>
|
|
||||||
<td class="itd input-group">
|
|
||||||
<input class="form-control ledCLconstr " id="ip_cl_cornergap" type="number" value="0" min="0" max="50" step="1"></input>
|
|
||||||
<div class="input-group-addon" data-i18n="edt_append_percent">%</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
-->
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="panel-footer" style="text-align:right;">
|
|
||||||
<button id="btn_cl_save" class="btn btn-primary"><i class="fa fa-fw fa-save"></i><span data-i18n="conf_leds_layout_button_savelay">Save layout</span></button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="panel panel-primary">
|
|
||||||
<div class="panel-heading headcollapse" data-toggle="collapse" data-parent="#accordion" data-target="#collapse2">
|
|
||||||
<h4 class="panel-title">
|
|
||||||
<a><i class="fa fa-th fa-fw"></i><span data-i18n="conf_leds_layout_matrix">Matrix Configuration (LED wall)</span></a>
|
|
||||||
</h4>
|
|
||||||
</div>
|
|
||||||
<div id="collapse2" class="panel-collapse collapse">
|
|
||||||
<div class="panel-body">
|
|
||||||
<table>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td class="ltd">
|
|
||||||
<label class="ltdlabel" for="ip_ma_ledshoriz" data-i18n="conf_leds_layout_ma_horiz">Horizontal</label>
|
|
||||||
</td>
|
|
||||||
<td class="itd input-group">
|
|
||||||
<input class="form-control ledMAconstr" id="ip_ma_ledshoriz" type="number" value="1" min="1" step="1"></input>
|
|
||||||
<div class="input-group-addon" data-i18n="edt_append_leds">LEDs</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="ltd">
|
|
||||||
<label class="ltdlabel" for="ip_ma_ledsvert" data-i18n="conf_leds_layout_ma_vert">Vertical</label>
|
|
||||||
</td>
|
|
||||||
<td class="itd input-group">
|
|
||||||
<input class="form-control ledMAconstr" id="ip_ma_ledsvert" type="number" value="1" min="1" step="1"></input>
|
|
||||||
<div class="input-group-addon" data-i18n="edt_append_leds">LEDs</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="ltd">
|
|
||||||
<label class="ltdlabel" for="ip_ma_cabling" data-i18n="conf_leds_layout_ma_cabling">Cabling</label>
|
|
||||||
</td>
|
|
||||||
<td class="itd">
|
|
||||||
<select class="form-control ledMAconstr" id="ip_ma_cabling">
|
|
||||||
<option value="snake" data-i18n="conf_leds_layout_ma_optsnake">Snake</option>
|
|
||||||
<option value="parallel" data-i18n="conf_leds_layout_ma_optparallel">Parallel</option>
|
|
||||||
</select>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<!--- <tr>
|
|
||||||
<td class="ltd">
|
|
||||||
<label class="ltdlabel" for="ip_ma_order" data-i18n="conf_leds_layout_ma_order">Order</label>
|
|
||||||
</td>
|
|
||||||
<td class="itd">
|
|
||||||
<select class="form-control ledMAconstr" id="ip_ma_order">
|
|
||||||
<option value="horizontal" data-i18n="conf_leds_layout_ma_opthoriz">Horizontal</option>
|
|
||||||
<option value="vertical" data-i18n="conf_leds_layout_ma_optvert">Vertical</option>
|
|
||||||
</select>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
--->
|
|
||||||
<tr>
|
|
||||||
<td class="ltd">
|
|
||||||
<label class="ltdlabel" for="ip_ma_start" data-i18n="conf_leds_layout_ma_position">Input</label>
|
|
||||||
</td>
|
|
||||||
<td class="itd">
|
|
||||||
<select class="form-control ledMAconstr" id="ip_ma_start">
|
|
||||||
<option value="top-left" data-i18n="conf_leds_layout_ma_opttopleft">Top left</option>
|
|
||||||
<option value="top-right" data-i18n="conf_leds_layout_ma_opttopright">Top right</option>
|
|
||||||
<option value="bottom-left" data-i18n="conf_leds_layout_ma_optbottomleft">Bottom left</option>
|
|
||||||
<option value="bottom-right" data-i18n="conf_leds_layout_ma_optbottomright">Bottom right</option>
|
|
||||||
</select>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div class="panel-footer" style="text-align:right;">
|
|
||||||
<button id="btn_ma_save" class="btn btn-primary"><i class="fa fa-fw fa-save"></i><span data-i18n="conf_leds_layout_button_savelay">Save layout</span></button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="texfield_panel" class="panel panel-primary">
|
|
||||||
<div class="panel-heading headcollapse" data-toggle="collapse" data-parent="#accordion" data-target="#collapse4">
|
|
||||||
<h4 class="panel-title">
|
|
||||||
<a><i class="fa fa-wrench fa-fw"></i><span data-i18n="conf_leds_layout_generatedconf">Generated/Actual LED Configuration</span></a>
|
|
||||||
</h4>
|
|
||||||
</div>
|
|
||||||
<div id="collapse4" class="panel-collapse collapse">
|
|
||||||
<div class="panel-body">
|
|
||||||
<p id="leds_wl" data-i18n="conf_leds_layout_textf1">This textfield shows by default your current loaded layout and will be overwritten if you generate a new one above. Optional you could perform further edits.</p>
|
|
||||||
<div id="aceedit" style="width:100%;height:500px"></div>
|
|
||||||
</div>
|
|
||||||
<div class="panel-footer">
|
|
||||||
<button type="button" class="btn btn-warning" id="leds_custom_updsim"><i class="fa fa-search fa-fw"></i><span data-i18n="conf_leds_layout_button_updsim">Update preview</span></button>
|
|
||||||
<button type="button" class="btn btn-primary pull-right" id="leds_custom_save"><i class="fa fa-fw fa-save"></i><span data-i18n="conf_leds_layout_button_savelay">Save layout</span></button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div> <!-- accordion -->
|
|
||||||
<div class="col-lg-6 col-md-12">
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading">
|
|
||||||
<h4 class="panel-title"><i class="fa fa-search fa-fw"></i><span data-i18n="conf_leds_layout_peview">LED Layout preview</span></h4>
|
|
||||||
</div>
|
|
||||||
<div class="panel-body">
|
|
||||||
<p id="previewcreator" style="font-weight:bold"></p>
|
|
||||||
<p id="previewledcount" style="font-weight:bold"></p>
|
|
||||||
<p id="previewledpower" style="font-weight:bold"></p>
|
|
||||||
<div id="led_vis_help"></div>
|
|
||||||
<div class="col-lg-12 st_helper" style="padding-left:0px; padding-right:0px">
|
|
||||||
<div id="leds_preview"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="panel-footer">
|
|
||||||
<button type="button" class="btn btn-danger" id="leds_prev_toggle_num"><i class="fa fa-info fa-fw"></i><span data-i18n="main_ledsim_btn_togglelednumber">toggle led numbers</span></button>
|
|
||||||
<button type="button" class="btn btn-primary" id="leds_prev_checklist"><i class="fa fa-info-circle fa-fw"></i><span data-i18n="conf_leds_layout_btn_checklist">toggle led numbers</span></button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div> <!-- row layout -->
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
|
<ul id="leds_cfg_nav" class="nav nav-tabs">
|
||||||
|
<li class="active"><a data-toggle="tab" href="#menu_controller" data-i18n="conf_leds_nav_label_ledcontroller">LED Controller</a></li>
|
||||||
|
<li><a data-toggle="tab" href="#menu_gencfg" data-i18n="conf_leds_nav_label_ledlayout">LED Layout</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
</div> <!-- tab content -->
|
<div class="tab-content">
|
||||||
|
<div id="menu_controller" class="tab-pane fade in active" style="padding-top:10px">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12" id="leddevice_intro"></div>
|
||||||
|
<div class="col-lg-6">
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading form-group">
|
||||||
|
<label for="leddevices" class="panel-title" data-i18n="conf_leds_contr_label_contrtype">Controller type:</label>
|
||||||
|
<select id="leddevices" class="form-control" style="color:black;width:auto;margin-left:10px;display:inline-block"></select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="panel-body">
|
||||||
|
<div id="btn_wiz_holder"></div>
|
||||||
|
<div id='editor_container_leddevice'></div>
|
||||||
|
<div class="bs-callout bs-callout-info" style="margin-top:0px"><h4 data-i18n="dashboard_infobox_label_title">Information</h4><span data-i18n="conf_leds_device_info_log"> In case your LEDs do not work, check here for errors: </span> <a onclick="SwitchToMenuItem('MenuItemLogging')" href="#" data-i18n="main_menu_logging_token"></a></div>
|
||||||
|
</div>
|
||||||
|
<div class="panel-footer" style="text-align:right">
|
||||||
|
<button id='btn_test_controller' class="btn btn-primary hidden" disabled data-toggle="tooltip" data-placement="top" title="Identify configured device by lighting it up">
|
||||||
|
<i class="fa fa-fw fa-save"></i><span data-i18n="wiz_identify">Identify/Test</span>
|
||||||
|
</button>
|
||||||
|
<button id='btn_submit_controller' class="btn btn-primary" data-toggle="tooltip" data-placement="top" title="Save the device's connectivity configuration">
|
||||||
|
<i class="fa fa-fw fa-save"></i><span data-i18n="general_button_savesettings">Save Settings</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="menu_gencfg" class="tab-pane fade" style="padding-top:10px">
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12" id="layout_intro"></div>
|
||||||
|
<div class="col-lg-6 col-md-12">
|
||||||
|
<div class="panel-group" id="accordion">
|
||||||
|
<div class="panel panel-primary">
|
||||||
|
<div class="panel-heading headcollapse" id="classic_panel" data-toggle="collapse" data-parent="#accordion" data-target="#collapse1">
|
||||||
|
<h4 class="panel-title">
|
||||||
|
<a><i class="fa fa-television fa-fw"></i><span data-i18n="conf_leds_layout_frame">Classic Layout (LED Frame)</span></a>
|
||||||
|
</h4>
|
||||||
|
</div>
|
||||||
|
<div id="collapse1" class="panel-collapse collapse">
|
||||||
|
<div class="panel-body">
|
||||||
|
<table class="table borderless">
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td class="ltd">
|
||||||
|
<label class="ltdlabel" for="ip_cl_top" data-i18n="conf_leds_layout_cl_top">Top</label>
|
||||||
|
</td>
|
||||||
|
<td class="itd input-group">
|
||||||
|
<input class="form-control ledCLconstr " id="ip_cl_top" type="number" value="1" min="0" step="1"></input>
|
||||||
|
<div class="input-group-addon" data-i18n="edt_append_leds">LEDs</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="ltd">
|
||||||
|
<label class="ltdlabel" for="ip_cl_bottom" data-i18n="conf_leds_layout_cl_bottom">Bottom</label>
|
||||||
|
</td>
|
||||||
|
<td class="itd input-group">
|
||||||
|
<input class="form-control ledCLconstr" id="ip_cl_bottom" type="number" value="0" min="0" step="1"></input>
|
||||||
|
<div class="input-group-addon" data-i18n="edt_append_leds">LEDs</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="ltd">
|
||||||
|
<label class="ltdlabel" for="ip_cl_left" data-i18n="conf_leds_layout_cl_left">Left</label>
|
||||||
|
</td>
|
||||||
|
<td class="itd input-group">
|
||||||
|
<input class="form-control ledCLconstr" id="ip_cl_left" type="number" value="0" min="0" step="1"></input>
|
||||||
|
<div class="input-group-addon" data-i18n="edt_append_leds">LEDs</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="ltd">
|
||||||
|
<label class="ltdlabel" for="ip_cl_right" data-i18n="conf_leds_layout_cl_right">Right</label>
|
||||||
|
</td>
|
||||||
|
<td class="itd input-group">
|
||||||
|
<input class="form-control ledCLconstr" id="ip_cl_right" type="number" value="0" min="0" step="1"></input>
|
||||||
|
<div class="input-group-addon" data-i18n="edt_append_leds">LEDs</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="ltd">
|
||||||
|
<label class="ltdlabel" for="ip_cl_glength" data-i18n="conf_leds_layout_cl_gaglength">Gap length</label>
|
||||||
|
</td>
|
||||||
|
<td class="itd input-group">
|
||||||
|
<input class="form-control ledCLconstr" id="ip_cl_glength" type="number" value="0" min="0" step="1"></input>
|
||||||
|
<div class="input-group-addon" data-i18n="edt_append_leds">LEDs</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="ltd">
|
||||||
|
<label class="ltdlabel" for="ip_cl_gpos" data-i18n="conf_leds_layout_cl_gappos">Gap position</label>
|
||||||
|
</td>
|
||||||
|
<td class="itd">
|
||||||
|
<input class="form-control ledCLconstr" id="ip_cl_gpos" type="number" value="0" min="0" step="1">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="ltd">
|
||||||
|
<label class="ltdlabel" for="ip_cl_position" data-i18n="conf_leds_layout_cl_inppos">Input position</label>
|
||||||
|
</td>
|
||||||
|
<td class="itd">
|
||||||
|
<input class="form-control ledCLconstr" id="ip_cl_position" type="number" value="0" min="0" step="1">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="ltd">
|
||||||
|
<label class="ltdlabel" for="ip_cl_reverse" data-i18n="conf_leds_layout_cl_reversdir">Reverse direction</label>
|
||||||
|
</td>
|
||||||
|
<td class="itd">
|
||||||
|
<div class="checkbox">
|
||||||
|
<input class="ledCLconstr" id="ip_cl_reverse" type="checkbox" value="false"></input>
|
||||||
|
<label></label>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading headcollapse" data-toggle="collapse" data-target="#collapse3">
|
||||||
|
<h4 class="panel-title">
|
||||||
|
<a><span data-i18n="conf_leds_layout_advanced">Advanced settings</span></a>
|
||||||
|
</h4>
|
||||||
|
</div>
|
||||||
|
<div id="collapse3" class="panel-collapse collapse">
|
||||||
|
<div class="panel-body ">
|
||||||
|
<table class="tableform borderless">
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td class="ltd">
|
||||||
|
<label class="ltdlabel" for="ip_cl_hdepth" data-i18n="conf_leds_layout_cl_hleddepth">Horizontal LED depth</label>
|
||||||
|
</td>
|
||||||
|
<td class="itd input-group">
|
||||||
|
<input class="form-control ledCLconstr" id="ip_cl_hdepth" type="number" value="8" min="1" max="100" step="1"></input>
|
||||||
|
<div class="input-group-addon" data-i18n="edt_append_percent">%</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="ltd">
|
||||||
|
<label class="ltdlabel" for="ip_cl_vdepth" data-i18n="conf_leds_layout_cl_vleddepth">Vertical LED depth</label>
|
||||||
|
</td>
|
||||||
|
<td class="itd input-group">
|
||||||
|
<input class="form-control ledCLconstr" id="ip_cl_vdepth" type="number" value="5" min="1" max="100" step="1"></input>
|
||||||
|
<div class="input-group-addon" data-i18n="edt_append_percent">%</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="ltd">
|
||||||
|
<label class="ltdlabel" for="ip_cl_overlap" data-i18n="conf_leds_layout_cl_overlap">Edge Gap</label>
|
||||||
|
</td>
|
||||||
|
<td class="itd input-group">
|
||||||
|
<input class="form-control ledCLconstr" id="ip_cl_overlap" type="number" value="0" min="0" max="200" step="1"></input>
|
||||||
|
<div class="input-group-addon" data-i18n="edt_append_percent">%</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="ltd">
|
||||||
|
<label class="ltdlabel" for="ip_cl_edgegap" data-i18n="conf_leds_layout_cl_edgegap">Edge Gap</label>
|
||||||
|
</td>
|
||||||
|
<td class="itd input-group">
|
||||||
|
<input class="form-control ledCLconstr" id="ip_cl_edgegap" type="number" value="0" min="0" max="50" step="1"></input>
|
||||||
|
<div class="input-group-addon" data-i18n="edt_append_percent">%</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="ltd">
|
||||||
|
<label class="ltdlabel" for="ip_cl_ptl" data-i18n="conf_leds_layout_ptl">Point Top Left</label>
|
||||||
|
</td>
|
||||||
|
<td class="itd input-group">
|
||||||
|
<input class="form-control ledCLconstr" id="ip_cl_ptlh" type="number" value="0" min="0" max="40" step="1"></input>
|
||||||
|
<div class="input-group-addon" data-i18n="edt_append_percent_h">%h</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="ltd"></td>
|
||||||
|
<td class="itd input-group">
|
||||||
|
<input class="form-control ledCLconstr" id="ip_cl_ptlv" type="number" value="0" min="0" max="40" step="1"></input>
|
||||||
|
<div class="input-group-addon" data-i18n="edt_append_percent_v">%v</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="ltd">
|
||||||
|
<label class="ltdlabel" for="ip_cl_ptr" data-i18n="conf_leds_layout_ptr">Point Top Right</label>
|
||||||
|
</td>
|
||||||
|
<td class="itd input-group">
|
||||||
|
<input class="form-control ledCLconstr" id="ip_cl_ptrh" type="number" value="100" min="60" max="100" step="1"></input>
|
||||||
|
<div class="input-group-addon" data-i18n="edt_append_percent_h">%</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="ltd"></td>
|
||||||
|
<td class="itd input-group">
|
||||||
|
<input class="form-control ledCLconstr" id="ip_cl_ptrv" type="number" value="0" min="0" max="40" step="1"></input>
|
||||||
|
<div class="input-group-addon" data-i18n="edt_append_percent_v">%</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="ltd">
|
||||||
|
<label class="ltdlabel" for="ip_cl_pbr" data-i18n="conf_leds_layout_pbr">Point Bottom Right</label>
|
||||||
|
</td>
|
||||||
|
<td class="itd input-group">
|
||||||
|
<input class="form-control ledCLconstr" id="ip_cl_pbrh" type="number" value="100" min="60" max="100" step="1"></input>
|
||||||
|
<div class="input-group-addon" data-i18n="edt_append_percent_h">%</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="ltd"></td>
|
||||||
|
<td class="itd input-group">
|
||||||
|
<input class="form-control ledCLconstr" id="ip_cl_pbrv" type="number" value="100" min="60" max="100" step="1"></input>
|
||||||
|
<div class="input-group-addon" data-i18n="edt_append_percent_v">%</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="ltd">
|
||||||
|
<label class="ltdlabel" for="ip_cl_pbl" data-i18n="conf_leds_layout_pbl">Point Bottom Left</label>
|
||||||
|
</td>
|
||||||
|
<td class="itd input-group">
|
||||||
|
<input class="form-control ledCLconstr" id="ip_cl_pblh" type="number" value="0" min="0" max="40" step="1"></input>
|
||||||
|
<div class="input-group-addon" data-i18n="edt_append_percent_h">%</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="ltd"></td>
|
||||||
|
<td class="itd input-group">
|
||||||
|
<input class="form-control ledCLconstr" id="ip_cl_pblv" type="number" value="100" min="60" max="100" step="1"></input>
|
||||||
|
<div class="input-group-addon" data-i18n="edt_append_percent_v">%</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<!-- <tr>
|
||||||
|
<td class="ltd">
|
||||||
|
<label class="ltdlabel" for="ip_cl_cornergap" data-i18n="conf_leds_layout_cl_cornergap">Corner Gap</label>
|
||||||
|
</td>
|
||||||
|
<td class="itd input-group">
|
||||||
|
<input class="form-control ledCLconstr " id="ip_cl_cornergap" type="number" value="0" min="0" max="50" step="1"></input>
|
||||||
|
<div class="input-group-addon" data-i18n="edt_append_percent">%</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
-->
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="panel-footer" style="text-align:right;">
|
||||||
|
<button id="btn_cl_save" class="btn btn-primary"><i class="fa fa-fw fa-save"></i><span data-i18n="conf_leds_layout_button_savelay">Save layout</span></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="panel panel-primary">
|
||||||
|
<div class="panel-heading headcollapse" id="matrix_panel" data-toggle="collapse" data-parent="#accordion" data-target="#collapse2">
|
||||||
|
<h4 class="panel-title">
|
||||||
|
<a><i class="fa fa-th fa-fw"></i><span data-i18n="conf_leds_layout_matrix">Matrix Configuration (LED wall)</span></a>
|
||||||
|
</h4>
|
||||||
|
</div>
|
||||||
|
<div id="collapse2" class="panel-collapse collapse">
|
||||||
|
<div class="panel-body">
|
||||||
|
<table>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td class="ltd">
|
||||||
|
<label class="ltdlabel" for="ip_ma_ledshoriz" data-i18n="conf_leds_layout_ma_horiz">Horizontal</label>
|
||||||
|
</td>
|
||||||
|
<td class="itd input-group">
|
||||||
|
<input class="form-control ledMAconstr" id="ip_ma_ledshoriz" type="number" value="1" min="1" step="1"></input>
|
||||||
|
<div class="input-group-addon" data-i18n="edt_append_leds">LEDs</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="ltd">
|
||||||
|
<label class="ltdlabel" for="ip_ma_ledsvert" data-i18n="conf_leds_layout_ma_vert">Vertical</label>
|
||||||
|
</td>
|
||||||
|
<td class="itd input-group">
|
||||||
|
<input class="form-control ledMAconstr" id="ip_ma_ledsvert" type="number" value="1" min="1" step="1"></input>
|
||||||
|
<div class="input-group-addon" data-i18n="edt_append_leds">LEDs</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="ltd">
|
||||||
|
<label class="ltdlabel" for="ip_ma_cabling" data-i18n="conf_leds_layout_ma_cabling">Cabling</label>
|
||||||
|
</td>
|
||||||
|
<td class="itd">
|
||||||
|
<select class="form-control ledMAconstr" id="ip_ma_cabling">
|
||||||
|
<option value="snake" data-i18n="conf_leds_layout_ma_optsnake">Snake</option>
|
||||||
|
<option value="parallel" data-i18n="conf_leds_layout_ma_optparallel">Parallel</option>
|
||||||
|
</select>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="ltd">
|
||||||
|
<label class="ltdlabel" for="ip_ma_start" data-i18n="conf_leds_layout_ma_position">Input</label>
|
||||||
|
</td>
|
||||||
|
<td class="itd">
|
||||||
|
<select class="form-control ledMAconstr" id="ip_ma_start">
|
||||||
|
<option value="top-left" data-i18n="conf_leds_layout_ma_opttopleft">Top left</option>
|
||||||
|
<option value="top-right" data-i18n="conf_leds_layout_ma_opttopright">Top right</option>
|
||||||
|
<option value="bottom-left" data-i18n="conf_leds_layout_ma_optbottomleft">Bottom left</option>
|
||||||
|
<option value="bottom-right" data-i18n="conf_leds_layout_ma_optbottomright">Bottom right</option>
|
||||||
|
</select>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="panel-footer" style="text-align:right;">
|
||||||
|
<button id="btn_ma_save" class="btn btn-primary"><i class="fa fa-fw fa-save"></i><span data-i18n="conf_leds_layout_button_savelay">Save layout</span></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="blacklist_panel" class="panel panel-primary">
|
||||||
|
<div class="panel-heading headcollapse" id="blacklist_config_panel" data-toggle="collapse" data-parent="#accordion" data-target="#collapse4">
|
||||||
|
<h4 class="panel-title">
|
||||||
|
<a><i class="fa fa-ban fa-fw"></i><span data-i18n="conf_leds_layout_blacklistleds_title">Blacklist LEDs</span></a>
|
||||||
|
</h4>
|
||||||
|
</div>
|
||||||
|
<div id="collapse4" class="panel-collapse collapse">
|
||||||
|
<div class="panel-body">
|
||||||
|
<div id="editor_container_blacklist_conf"></div>
|
||||||
|
</div>
|
||||||
|
<div class="panel-footer" style="text-align:right;">
|
||||||
|
<button id="btn_bl_save" class="btn btn-primary"><i class="fa fa-fw fa-save"></i><span data-i18n="conf_leds_layout_button_savelay">Save layout</span></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="texfield_panel" class="panel panel-primary">
|
||||||
|
<div class="panel-heading headcollapse" id="current_config_panel" data-toggle="collapse" data-parent="#accordion" data-target="#collapse5">
|
||||||
|
<h4 class="panel-title">
|
||||||
|
<a><i class="fa fa-wrench fa-fw"></i><span data-i18n="conf_leds_layout_generatedconf">Generated/Actual LED Configuration</span></a>
|
||||||
|
</h4>
|
||||||
|
</div>
|
||||||
|
<div id="collapse5" class="panel-collapse collapse in">
|
||||||
|
<div class="panel-body">
|
||||||
|
<p id="leds_wl" data-i18n="conf_leds_layout_textf1">This textfield shows by default your current loaded layout and will be overwritten if you generate a new one above. Optional you could perform further edits.</p>
|
||||||
|
<div id="aceedit" style="width:100%;height:500px"></div>
|
||||||
|
</div>
|
||||||
|
<div class="panel-footer">
|
||||||
|
<button type="button" class="btn btn-warning" id="leds_custom_updsim"><i class="fa fa-search fa-fw"></i><span data-i18n="conf_leds_layout_button_updsim">Update preview</span></button>
|
||||||
|
<button type="button" class="btn btn-primary pull-right" id="leds_custom_save"><i class="fa fa-fw fa-save"></i><span data-i18n="conf_leds_layout_button_savelay">Save layout</span></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div> <!-- accordion -->
|
||||||
|
<div class="col-lg-6 col-md-12">
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
|
<h4 class="panel-title"><i class="fa fa-search fa-fw"></i><span data-i18n="conf_leds_layout_peview">LED Layout preview</span></h4>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
<p id="previewcreator" style="font-weight:bold"></p>
|
||||||
|
<p id="previewledcount" style="font-weight:bold"></p>
|
||||||
|
<p id="previewledpower" style="font-weight:bold"></p>
|
||||||
|
<div id="led_vis_help"></div>
|
||||||
|
<div class="col-lg-12 st_helper" style="position:relative; padding-left:0px; padding-right:0px">
|
||||||
|
<canvas id="image_preview" style="position:absolute; z-index:0"></canvas>
|
||||||
|
<div id="leds_preview"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="panel-footer">
|
||||||
|
<button type="button" class="btn btn-danger" id="leds_prev_toggle_num"><i class="fa fa-info fa-fw"></i><span data-i18n="main_ledsim_btn_togglelednumber">toggle led numbers</span></button>
|
||||||
|
<button type="button" class="btn btn-danger" id="leds_prev_toggle_live_video"><i class="fa fa-fw fa-television"></i><span data-i18n="main_ledsim_btn_togglelivevideo">toggle live video</span></button>
|
||||||
|
<button type="button" class="btn btn-primary" id="leds_prev_checklist"><i class="fa fa-info-circle fa-fw"></i><span data-i18n="conf_leds_layout_btn_checklist">toggle led numbers</span></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="/js/content_leds.js"></script>
|
<script src="/js/content_leds.js"></script>
|
||||||
|
@ -1,21 +1,22 @@
|
|||||||
<div class="container-fluid" id="trans_conf_logging">
|
<div class="container-fluid" id="trans_conf_logging">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-12">
|
<div class="col-lg-12">
|
||||||
<h3 class="page-header"><i class="fa fa-reorder fa-fw"></i><span data-i18n="main_menu_logging_token">Log</span></h3>
|
<h3 class="page-header"><i class="fa fa-reorder fa-fw"></i><span data-i18n="main_menu_logging_token">Log</span></h3>
|
||||||
<div id="log_head"></div>
|
<div id="log_head"></div>
|
||||||
<div class="row" id='conf_cont'></div>
|
<div class="row" id='conf_cont'></div>
|
||||||
<hr />
|
</div>
|
||||||
<div id="log_content"><span style="font-weight:bold;font-size:17px" data-i18n="conf_logging_nomessage"></span></div>
|
<div class="col-lg-12">
|
||||||
<hr>
|
<div class="panel panel-default">
|
||||||
<div style="display:none">
|
<div class="panel-heading"><i class="fa fa-book fa-fw"></i><span data-i18n="conf_logging_logoutput"></span></div>
|
||||||
<h4 style="font-weight:bold"><i class="fa fa-reorder fa-fw"></i><span data-i18n="conf_logging_report">Bericht</span></h4>
|
<div class="panel-body">
|
||||||
<button class="btn btn-primary" id="btn_logupload"><i class="fa fa-upload fa-fw"></i><span data-i18n="conf_logging_btn_pbupload"></span></button>
|
<div id="log_content"><span style="font-weight:bold;font-size:17px" data-i18n="conf_logging_nomessage"></span></div>
|
||||||
<div id="log_upl_pol"></div>
|
</div>
|
||||||
<div id="upl_link" style="margin-top:10px;font-weight:bold;"></div>
|
<div class="panel-footer" id="log_footer">
|
||||||
<div id="prev_reports"></div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="/js/content_logging.js"></script>
|
<script src="/js/content_logging.js"></script>
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-12">
|
<div class="col-lg-12">
|
||||||
<h3 class="page-header"><i class="fa fa-sitemap fa-fw"></i><span data-i18n="main_menu_network_conf_token">Network Services</span></h3>
|
<h3 class="page-header"><i class="fa fa-sitemap fa-fw"></i><span data-i18n="main_menu_network_conf_token">Network Services</span></h3>
|
||||||
<div id="conf_cont">
|
<div id="conf_cont">
|
||||||
<div class="row" id="conf_cont_tok">
|
<div class="row" id="conf_cont_tok">
|
||||||
<div class="col-lg-6" id="tok_desc">
|
<div class="col-lg-6" id="tok_desc">
|
||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading"><i class="fa fa-key fa-fw"></i><span data-i18n="conf_network_tok_title"></span></div>
|
<div class="panel-heading panel-system"><i class="fa fa-key fa-fw"></i><span data-i18n="conf_network_tok_title"></span></div>
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<div id="tok_desc_cont"></div>
|
<div id="tok_desc_cont"></div>
|
||||||
<div id="tktable"></div>
|
<div id="tktable"></div>
|
||||||
@ -34,4 +34,4 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="/js/content_network.js"></script>
|
<script src="/js/content_network.js"></script>
|
||||||
|
@ -1,94 +1,92 @@
|
|||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-12">
|
<div class="col-lg-12">
|
||||||
<h3 class="page-header"><i class="fa fa-dashboard fa-fw"></i><span data-i18n="main_menu_dashboard_token">Dashboard</span></h3>
|
<h3 class="page-header"><i class="fa fa-dashboard fa-fw"></i><span data-i18n="main_menu_dashboard_token">Dashboard</span></h3>
|
||||||
<div id="dash_intro">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-6 col-xxl-4">
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading">
|
|
||||||
<i class="fa fa-info-circle fa-fw"></i>
|
|
||||||
<span data-i18n="dashboard_infobox_label_title">Information</span>
|
|
||||||
</div>
|
|
||||||
<div class="panel-body">
|
|
||||||
<table class="table borderless">
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td data-i18n="dashboard_infobox_label_statush"></td>
|
|
||||||
<td id="dash_statush" style="font-weight:bold">unknown</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td data-i18n="conf_leds_contr_label_contrtype">LED type:</td>
|
|
||||||
<td id="dash_leddevice"></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td data-i18n="dashboard_infobox_label_instance">Instance</td>
|
|
||||||
<td id="dash_instance"></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td data-i18n="dashboard_infobox_label_ports">Ports</td>
|
|
||||||
<td id="dash_ports"></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td data-i18n="dashboard_infobox_label_currenthyp">Hyperion version:</td>
|
|
||||||
<td id="dash_currv">unknown</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td data-i18n="dashboard_infobox_label_watchedversionbranch">Watched version branch:</td>
|
|
||||||
<td id="dash_watchedversionbranch">unknown</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td data-i18n="dashboard_infobox_label_latesthyp">Latest version:</td>
|
|
||||||
<td id="dash_latev">unknown</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<hr>
|
|
||||||
<p style="font-weight:bold" data-i18n="dashboard_infobox_label_smartacc">Smart Access<p>
|
|
||||||
<span id="btn_hsc"></span>
|
|
||||||
<hr>
|
|
||||||
<span id="versioninforesult"></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-6 col-xxl-3">
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading">
|
|
||||||
<i class="fa fa-eye fa-fw"></i>
|
|
||||||
<span data-i18n="dashboard_componentbox_label_title">Components status</span>
|
|
||||||
</div>
|
|
||||||
<div class="panel-body">
|
|
||||||
<table class="table">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th data-i18n="dashboard_componentbox_label_comp">Component</th>
|
|
||||||
<th data-i18n="dashboard_componentbox_label_status">Status</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody id="tab_components">
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-12 col-xxl-5" style="display:none">
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading">
|
|
||||||
<i class="fa fa-newspaper-o fa-fw"></i>
|
|
||||||
<span data-i18n="dashboard_newsbox_label_title">Visit Hyperion Blog</span>
|
|
||||||
</div>
|
|
||||||
<div class="panel-body">
|
|
||||||
<div id="dash_news" style="margin-bottom:7px"></div>
|
|
||||||
<a href="https://hyperion-project.org/blog/?pk_campaign=WebUI&pk_kwd=visitblog" target="_blank" data-i18n="dashboard_newsbox_visitblog"></a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- /.col-lg-12 -->
|
|
||||||
</div>
|
|
||||||
<!-- /.row -->
|
|
||||||
</div>
|
|
||||||
<!-- /.container-fluid -->
|
|
||||||
|
|
||||||
<script src="/js/content_dashboard.js"></script>
|
<!-- Infobox -->
|
||||||
|
<div id="dash_intro">
|
||||||
|
|
||||||
|
<!-- Instance(s) -->
|
||||||
|
<div class="row instances">
|
||||||
|
|
||||||
|
<!-- Config status -->
|
||||||
|
<div class="col-md-6 col-xxl-4">
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading panel-system">
|
||||||
|
<span id="dash_config_status">Status</span>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
<table class="table borderless">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th colspan="3">
|
||||||
|
<i class="mdi mdi-lan"></i>
|
||||||
|
<span data-i18n="dashboard_infobox_label_ports">Ports</span>
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td data-i18n="dashboard_infobox_label_port_proto">proto</td>
|
||||||
|
<td id="dash_pbPort" style="text-align:right">unknown</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td data-i18n="dashboard_infobox_label_port_flat">flat</td>
|
||||||
|
<td id="dash_fbPort" style="text-align:right">unknown</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td data-i18n="dashboard_infobox_label_port_json">json</td>
|
||||||
|
<td id="dash_jsonPort" style="text-align:right">unknown</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td data-i18n="dashboard_infobox_label_ports_websocket">websocket</td>
|
||||||
|
<td id="dash_wsPorts" style="text-align:right">unknown</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<table class="table borderless">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th colspan="3">
|
||||||
|
<i class="mdi mdi-numeric"></i>
|
||||||
|
<span data-i18n="about_version">Version</span>
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td data-i18n="dashboard_infobox_label_currenthyp">Hyperion version:</td>
|
||||||
|
<td id="dash_currv" style="text-align:right">unknown</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td data-i18n="dashboard_infobox_label_watchedversionbranch">Watched version branch:</td>
|
||||||
|
<td id="dash_watchedversionbranch" style="text-align:right">unknown</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td data-i18n="dashboard_infobox_label_latesthyp">Latest version:</td>
|
||||||
|
<td id="dash_latev" style="text-align:right">unknown</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<hr>
|
||||||
|
<span id="versioninforesult"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- /.col-lg-12 -->
|
||||||
|
</div>
|
||||||
|
<!-- /.row -->
|
||||||
|
</div>
|
||||||
|
<!-- /.container-fluid -->
|
||||||
|
|
||||||
|
<script src="/js/content_dashboard.js"></script>
|
||||||
|
@ -1,7 +1,20 @@
|
|||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-12">
|
<div class="col-lg-12">
|
||||||
<h3 class="page-header"><i class="fa fa-cogs fa-fw"></i><span data-i18n="main_menu_effectsconfigurator_token">Effects Configurator</span></h3>
|
<h3 class="page-header"><i class="fa fa-cogs fa-fw"></i><span data-i18n="main_menu_effectsconfigurator_token">Effects Configurator</span></h3>
|
||||||
|
|
||||||
|
<div class="panel panel-default" style="border:0px;">
|
||||||
|
<div class="panel-heading panel-instance" style="border-radius:3px; border-bottom:0px;">
|
||||||
|
<div class="dropdown">
|
||||||
|
<a id="active_instance_dropdown" class="dropdown-toggle" data-toggle="dropdown" href="#" style="text-decoration:none;display:flex;align-items:center;">
|
||||||
|
<div id="active_instance_friendly_name"></div>
|
||||||
|
<div id="btn_hypinstanceswitch" style="white-space:nowrap;"><span class="mdi mdi-lightbulb-group mdi-24px" style="margin-right:0; margin-left:5px;"></span><span class="mdi mdi-menu-down mdi-24px"></span></div>
|
||||||
|
</a>
|
||||||
|
<ul id="hyp_inst_listing" class="dropdown-menu dropdown-alerts" style="cursor:pointer;"></ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div id="intro_effc">
|
<div id="intro_effc">
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@ -20,7 +33,7 @@
|
|||||||
<td class="itd"><input class="form-control" type="text" id="name-input" /></td>
|
<td class="itd"><input class="form-control" type="text" id="name-input" /></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<div id="editor_container" />
|
<div id="editor_container" />
|
||||||
</div>
|
</div>
|
||||||
<div class="panel-footer" id="eff_footer">
|
<div class="panel-footer" id="eff_footer">
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<style> body {margin:auto; padding:2%; text-align:center; font-family:arial;}</style>
|
<style> body {margin:auto; padding:2%; text-align:center; font-family:arial;}</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<img src="../img/hyperion/hyperionlogo.png" alt="Redefine ambient light!" style="margin-bottom:20px;">
|
<img src="../img/hyperion/logo_positiv.png" alt="Redefine ambient light!" style="margin-bottom:20px;">
|
||||||
<h2><span style="color:red">We are sorry, Internet Explorer is not supported!</span><br /><br /> Please use recent versions of Firefox, Chrome, Safari or MS Edge.</h2>
|
<h2><span style="color:red">We are sorry, Internet Explorer is not supported!</span><br /><br /> Please use recent versions of Firefox, Chrome, Safari or MS Edge.</h2>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,35 +1,35 @@
|
|||||||
<div class="container" style="margin:20px auto;max-width:500px;">
|
<div class="container" style="margin:20px auto;max-width:500px;">
|
||||||
<center>
|
<center>
|
||||||
<div>
|
<div>
|
||||||
<div class="panel panel-danger">
|
<div class="panel panel-danger">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading panel-system">
|
||||||
<h3 class="panel-title">Login</h3>
|
<h3 class="panel-title">Login</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<form>
|
<form>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<input name="password" class="form-control" type="password" id="password" placeholder="Password" autocomplete="off"/>
|
<input name="password" class="form-control" type="password" id="password" placeholder="Password" autocomplete="off" />
|
||||||
<input name="show_pw" type="checkbox" id="show_pw"/><label for="show_pw">Show/Hide Password</label>
|
<input name="show_pw" type="checkbox" id="show_pw" /><label for="show_pw">Show/Hide Password</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<button type="submit" class="btn btn-sm btn-success" id="btn_password" onclick="requestAuthorization(document.getElementById('password').value); return false;" disabled><i class="fa fa-fw fa-unlock"></i>Login</button>
|
<button type="submit" class="btn btn-sm btn-success" id="btn_password" onclick="requestAuthorization(document.getElementById('password').value); return false;" disabled><i class="fa fa-fw fa-unlock"></i>Login</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</center>
|
</center>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
removeOverlay();
|
removeOverlay();
|
||||||
|
|
||||||
$('#password').off().on('input',function(e) {
|
$('#password').off().on('input', function (e) {
|
||||||
if(e.currentTarget.value.length >= 8)
|
if (e.currentTarget.value.length >= 8)
|
||||||
$('#btn_password').removeAttr('disabled');
|
$('#btn_password').removeAttr('disabled');
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#show_pw').off().on('change',function(e) {
|
$('#show_pw').off().on('change', function (e) {
|
||||||
(e.currentTarget.checked ? $('#password').attr('type', 'text') : $('#password').attr('type', 'password'))
|
(e.currentTarget.checked ? $('#password').attr('type', 'text') : $('#password').attr('type', 'password'))
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -1,5 +1,18 @@
|
|||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<h3 class="page-header"><i class="fa fa-wifi fa-fw"></i><span data-i18n="main_menu_remotecontrol_token">Remote Control</span></h3>
|
<h3 class="page-header"><i class="fa fa-wifi fa-fw"></i><span data-i18n="main_menu_remotecontrol_token">Remote Control</span></h3>
|
||||||
|
|
||||||
|
<div class="panel panel-default" style="border:0px;">
|
||||||
|
<div class="panel-heading panel-instance" style="border-radius:3px; border-bottom:0px;">
|
||||||
|
<div class="dropdown">
|
||||||
|
<a id="active_instance_dropdown" class="dropdown-toggle" data-toggle="dropdown" href="#" style="text-decoration:none;display:flex;align-items:center;">
|
||||||
|
<div id="active_instance_friendly_name"></div>
|
||||||
|
<div id="btn_hypinstanceswitch" style="white-space:nowrap;"><span class="mdi mdi-lightbulb-group mdi-24px" style="margin-right:0; margin-left:5px;"></span><span class="mdi mdi-menu-down mdi-24px"></span></div>
|
||||||
|
</a>
|
||||||
|
<ul id="hyp_inst_listing" class="dropdown-menu dropdown-alerts" style="cursor:pointer;"></ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12 col-lg-8 col-xxl-7">
|
<div class="col-md-12 col-lg-8 col-xxl-7">
|
||||||
<div class="panel panel-default" >
|
<div class="panel panel-default" >
|
||||||
|
@ -14,6 +14,10 @@ body {
|
|||||||
border-color: #212121;
|
border-color: #212121;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.navbar-default li a {
|
||||||
|
color: #C6C6C6 !important;
|
||||||
|
}
|
||||||
|
|
||||||
.panel-body {
|
.panel-body {
|
||||||
background-color: #424242;
|
background-color: #424242;
|
||||||
}
|
}
|
||||||
@ -189,7 +193,7 @@ tr:hover td {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-menu>li>a {
|
.dropdown-menu>li>a {
|
||||||
color: #2e6da4;
|
color: #DDDDDD;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*Panels*/
|
/*Panels*/
|
||||||
@ -220,6 +224,18 @@ tr:hover td {
|
|||||||
color: #DDDDDD;
|
color: #DDDDDD;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.panel-default>.panel-system{
|
||||||
|
background-color: #0E83E7 !important;
|
||||||
|
border-color: #212121 !important;
|
||||||
|
color: #fff ;
|
||||||
|
}
|
||||||
|
|
||||||
|
.panel-default>.panel-instance{
|
||||||
|
background-color:#E18300 !important;
|
||||||
|
border-color: #212121 !important;
|
||||||
|
color: #DDDDDD;
|
||||||
|
}
|
||||||
|
|
||||||
.panel-footer {
|
.panel-footer {
|
||||||
background-color: #424242 !important;
|
background-color: #424242 !important;
|
||||||
border-top: 1px solid #616161 !important;
|
border-top: 1px solid #616161 !important;
|
||||||
@ -271,16 +287,16 @@ select.form-control {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.checklist li::before {
|
.checklist li::before {
|
||||||
color: greenyellow;
|
color: #DDDDDD;
|
||||||
}
|
}
|
||||||
|
|
||||||
.checkbox-success input[type="checkbox"]:checked + label::before, .checkbox-success input[type="radio"]:checked + label::before {
|
.checkbox input[type="checkbox"]:checked + label::before, .checkbox-success input[type="checkbox"]:checked + label::before, .checkbox-success input[type="radio"]:checked + label::before {
|
||||||
background-color: greenyellow;
|
border-color: #616161;
|
||||||
border-color: #5cb85c;
|
background-color: #212121;
|
||||||
}
|
}
|
||||||
|
|
||||||
.checkbox-success input[type="checkbox"]:checked + label::after, .checkbox-success input[type="radio"]:checked + label::after {
|
.checkbox input[type="checkbox"]:checked + label::after, .checkbox-success input[type="checkbox"]:checked + label::after, .checkbox-success input[type="radio"]:checked + label::after {
|
||||||
color: #1e1e1e;
|
color: #DDDDDD;
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle) {
|
.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle) {
|
||||||
@ -416,7 +432,7 @@ button.close:hover {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.bs-callout-success {
|
.bs-callout-success {
|
||||||
border-left-color: greenyellow;
|
border-left-color: #67FF01;
|
||||||
}
|
}
|
||||||
|
|
||||||
.bs-callout-success h4 {
|
.bs-callout-success h4 {
|
||||||
|
@ -2,12 +2,12 @@
|
|||||||
@font-face {
|
@font-face {
|
||||||
font-family: "Roboto";
|
font-family: "Roboto";
|
||||||
src: url("../fonts/Roboto-Regular.woff") format('woff'),
|
src: url("../fonts/Roboto-Regular.woff") format('woff'),
|
||||||
url("../fonts/Roboto-Regular.ttf") format('ttf');
|
url("../fonts/Roboto-Regular.ttf") format('ttf');
|
||||||
}
|
}
|
||||||
body{font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:15px;max-width:2000px;margin: 0 auto;}
|
body{font-family:Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:15px;max-width:2000px;margin: 0 auto;}
|
||||||
.form-group{margin-bottom:11px;}
|
.form-group{margin-bottom:11px;}
|
||||||
#page-content {
|
#page-content {
|
||||||
padding-bottom:50px;
|
padding-bottom:50px;
|
||||||
}
|
}
|
||||||
body{
|
body{
|
||||||
overflow-y: scroll;
|
overflow-y: scroll;
|
||||||
@ -15,22 +15,23 @@ body{
|
|||||||
/*
|
/*
|
||||||
#page-wrapper a[target=_blank]::after {
|
#page-wrapper a[target=_blank]::after {
|
||||||
content:"\f08e";
|
content:"\f08e";
|
||||||
position:relative;
|
position:relative;
|
||||||
font:normal normal normal 10px/1 FontAwesome;
|
font:normal normal normal 10px/1 FontAwesome;
|
||||||
top:-3px;
|
top:-3px;
|
||||||
left:3px;
|
left:3px;
|
||||||
margin-right:5px;
|
margin-right:5px;
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
/* fixed brand icon */
|
/* fixed brand icon */
|
||||||
@media (min-width: 768px){
|
@media (min-width: 768px){
|
||||||
.navbar-brand{position:fixed}
|
.navbar-brand{position:fixed}
|
||||||
|
#main-nav{position:absolute !important;}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*mobile nav*/
|
/*mobile nav*/
|
||||||
@media (max-width: 768px){
|
@media (max-width: 768px){
|
||||||
.navbar-toggle{position:fixed;right:0px;}
|
.navbar-toggle{position:fixed;right:0px;}
|
||||||
#main-nav{position:fixed;right:-200px;}
|
#main-nav{position:fixed;right:-200px;}
|
||||||
}
|
}
|
||||||
.navbar-toggle .icon-bar {
|
.navbar-toggle .icon-bar {
|
||||||
background-color:#4c4c4c !important;
|
background-color:#4c4c4c !important;
|
||||||
@ -71,40 +72,78 @@ table.input-group{width:100%}
|
|||||||
@media (max-width: 767px) {.ltd{white-space:normal;}}
|
@media (max-width: 767px) {.ltd{white-space:normal;}}
|
||||||
|
|
||||||
/*icon spacing*/
|
/*icon spacing*/
|
||||||
.fa-fw{margin-right:5px;}
|
.fa-fw,.mdi-24px{margin-right:5px;}
|
||||||
|
|
||||||
/*table*/
|
/*table*/
|
||||||
table.borderless td,table.borderless th{border: none !important;}
|
table.borderless td,table.borderless th{border: none !important;}
|
||||||
.borderless {margin-bottom:0px}
|
.borderless {margin-bottom:0px}
|
||||||
table label{margin:0}
|
table label{margin:0}
|
||||||
|
table.first_cell_borderless td:first-child,table.first_cell_borderless th:first-child{border: none !important;}
|
||||||
|
|
||||||
/*Header*/
|
/*Header*/
|
||||||
.navbar-brand{padding-top:0px;padding-bottom:5px;padding-left:20px;height:60px;}
|
.navbar-brand{padding-top:4px;padding-bottom:0px;padding-left:2;}
|
||||||
.sidebar{margin-top:62px;padding-top:20px;}
|
.sidebar{margin-top:65px;}
|
||||||
.dropdown{font-size:18px;}
|
.dropdown{font-size:18px;}
|
||||||
@media (max-width: 767px) {.sidebar{margin-top:0px;padding-top:0px !important;}}
|
@media (max-width: 767px) {.sidebar{margin-top:0px;padding-top:0px !important;}}
|
||||||
.page-header{margin-top:15px;}
|
.page-header{margin-top:0px;}
|
||||||
|
|
||||||
|
.navbar-top-links li a {
|
||||||
|
min-height: 64px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-default li a {
|
||||||
|
color: #303030 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar ul li a.active{
|
||||||
|
padding-left:5px;
|
||||||
|
border-left:10px solid #0E83E7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar ul li ul li a.active{
|
||||||
|
padding-left:27px;
|
||||||
|
border-left:10px solid #0E83E7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.itbody td:not(:first-child){
|
||||||
|
width: 1px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
/*Panels*/
|
/*Panels*/
|
||||||
.panel-heading{font-size:18px;}
|
.panel-heading{font-size:18px;}
|
||||||
.headcollapse{cursor:pointer;}
|
.headcollapse{cursor:pointer;}
|
||||||
.headcollapse a:hover{text-decoration:none;}
|
.headcollapse a:hover{text-decoration:none;}
|
||||||
.panel-default{
|
.panel-default{
|
||||||
background-color:#fff !important;
|
background-color:#fff !important;
|
||||||
border-color:#d0d0d0 !important;
|
border-color:#d0d0d0 !important;
|
||||||
}
|
}
|
||||||
.panel-default>.panel-heading{
|
.panel-default>.panel-heading{
|
||||||
background-color:#f3f3f3 !important;
|
background-color:#F3F3F3 !important;
|
||||||
border-color:#ddd !important;
|
border-color:#ddd !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.panel-default > .panel-system, .panel-danger > .panel-system {
|
||||||
|
background-color: #0E83E7 !important;
|
||||||
|
border-color: #ddd !important;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.panel-default>.panel-instance{
|
||||||
|
background-color:#E18300 !important;
|
||||||
|
border-color:#ddd !important;
|
||||||
|
color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*remote page*/
|
/*remote page*/
|
||||||
@media (max-width: 500px) {.ssthead th:nth-child(1), .sstbody td:nth-child(1){display:none}}
|
@media (max-width: 500px) {.ssthead th:nth-child(1), .sstbody td:nth-child(1){display:none}}
|
||||||
|
|
||||||
/*Dashboard*/
|
/*Dashboard*/
|
||||||
.component-on{color:green;}
|
.component-on{color: #67FF01;}
|
||||||
.component-off{color:grey;}
|
.component-off{color: grey;}
|
||||||
#dash_news hr{margin:10px 0}
|
#dash_news hr{margin: 10px 0}
|
||||||
|
|
||||||
/*Colorpicker 2x*/
|
/*Colorpicker 2x*/
|
||||||
.colorpicker-2x {z-index:99999}
|
.colorpicker-2x {z-index:99999}
|
||||||
@ -114,16 +153,16 @@ table label{margin:0}
|
|||||||
|
|
||||||
/*Hint*/
|
/*Hint*/
|
||||||
.info-hint{
|
.info-hint{
|
||||||
background-color:rgb(236,236,236);
|
background-color:rgb(236,236,236);
|
||||||
border-radius:10px;
|
border-radius:10px;
|
||||||
}
|
}
|
||||||
.intro-hint{
|
.intro-hint{
|
||||||
padding:8px 8px 8px 14px;
|
padding:8px 8px 8px 14px;
|
||||||
margin:0px 0px 15px 0px;
|
margin:0px 0px 15px 0px;
|
||||||
border-left:8px solid #0088cc;
|
border-left:8px solid #0088cc;
|
||||||
border-top:1px solid #0088cc;
|
border-top:1px solid #0088cc;
|
||||||
box-shadow: 1px 1px 1px 0px rgba(0,0,0,0.25);
|
box-shadow: 1px 1px 1px 0px rgba(0,0,0,0.25);
|
||||||
font-size:97%;
|
font-size:97%;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*Support page*/
|
/*Support page*/
|
||||||
@ -151,6 +190,11 @@ table label{margin:0}
|
|||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*backported bootstrap 4 font weight*/
|
||||||
|
.font-weight-bold {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
/*wizard button*/
|
/*wizard button*/
|
||||||
.btn-wizard {
|
.btn-wizard {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
@ -174,8 +218,12 @@ table label{margin:0}
|
|||||||
border-style: none;
|
border-style: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*general instance management button*/
|
||||||
|
[id^=instdel_], [id^=instren_] { padding: 0px 12px;}
|
||||||
|
.mdi-lead-pencil, .mdi-delete-forever {font-size: 22px;}
|
||||||
|
|
||||||
/*led preview & led visualisation*/
|
/*led preview & led visualisation*/
|
||||||
#leds_canvas {background-color:#AAAAAA; position:absolute; margin:15px; background-image:url(/img/hyperion/hyperionlogo.png); background-repeat:no-repeat; background-position: center;}
|
#leds_canvas {position:absolute; margin:15px; background-repeat:no-repeat; background-position: center;}
|
||||||
.led { display:inline-block; border: 1px solid black; position:absolute; opacity:0.8; text-align:center; vertical-align:middle; padding:4px; border-radius:2px;}
|
.led { display:inline-block; border: 1px solid black; position:absolute; opacity:0.8; text-align:center; vertical-align:middle; padding:4px; border-radius:2px;}
|
||||||
.led_num, .led_prev_num {display:none; position:relative; color:black; background-color: white; border-radius:2px; padding:1px; vertical-align:middle; text-align:center; font-size:0.8em;}
|
.led_num, .led_prev_num {display:none; position:relative; color:black; background-color: white; border-radius:2px; padding:1px; vertical-align:middle; text-align:center; font-size:0.8em;}
|
||||||
.led_ex{height:15px;width:25px;border-radius:3px;display:inline-block;border:1px solid black}
|
.led_ex{height:15px;width:25px;border-radius:3px;display:inline-block;border:1px solid black}
|
||||||
@ -189,36 +237,44 @@ table label{margin:0}
|
|||||||
|
|
||||||
/*Modal icons*/
|
/*Modal icons*/
|
||||||
[class*="modal-icon"]{
|
[class*="modal-icon"]{
|
||||||
padding:30px;
|
padding:30px;
|
||||||
border-radius: 60px;
|
border-radius: 60px;
|
||||||
color:white;
|
color:white;
|
||||||
font-size:50px !important;
|
font-size:50px !important;
|
||||||
}
|
}
|
||||||
.modal-icon-check{
|
.modal-icon-check{
|
||||||
background-color:#71c341;
|
background-color:#71c341;
|
||||||
}
|
}
|
||||||
.modal-icon-warning{
|
.modal-icon-warning{
|
||||||
background-color:#f7c44a;
|
background-color:#f7c44a;
|
||||||
}
|
}
|
||||||
.modal-icon-error{
|
.modal-icon-error{
|
||||||
background-color:#d1322e;
|
background-color:#d1322e;
|
||||||
}
|
}
|
||||||
|
|
||||||
.modal-icon-edit{
|
.modal-icon-edit{
|
||||||
background-color:#3579b6;
|
background-color:#3579b6;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Overlay for desktop devices */
|
||||||
.overlay {
|
.overlay {
|
||||||
background-image: url('/img/hyperion/hyperionwhitelogo.png');
|
background-image: url('/img/hyperion/logo_negativ.png');
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-position: center center;
|
background-position: center center;
|
||||||
background-color: rgba(1, 1, 1, 0.7);
|
background-color: rgba(1, 1, 1, 0.7);
|
||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
top: 0;
|
top: 0;
|
||||||
z-index:99999;
|
z-index:99999;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Overlay for mobile devices */
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.overlay {
|
||||||
|
background-size: contain;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*simple ripple effect for li a and btn*/
|
/*simple ripple effect for li a and btn*/
|
||||||
@ -307,7 +363,7 @@ li a:active:after {
|
|||||||
color: #428bca;
|
color: #428bca;
|
||||||
}
|
}
|
||||||
.bs-callout-success {
|
.bs-callout-success {
|
||||||
border-left-color: #5cb85c;
|
border-left-color: #67FF01;
|
||||||
}
|
}
|
||||||
.bs-callout-success h4 {
|
.bs-callout-success h4 {
|
||||||
color: #5cb85c;
|
color: #5cb85c;
|
||||||
@ -341,8 +397,8 @@ li a:active:after {
|
|||||||
@media (min-width: 1500px) {
|
@media (min-width: 1500px) {
|
||||||
.col-xxl-1, .col-xxl-2, .col-xxl-3, .col-xxl-4, .col-xxl-5, .col-xxl-6, .col-xxl-7, .col-xxl-8, .col-xxl-9, .col-xxl-10, .col-xxl-11, .col-xxl-12 {
|
.col-xxl-1, .col-xxl-2, .col-xxl-3, .col-xxl-4, .col-xxl-5, .col-xxl-6, .col-xxl-7, .col-xxl-8, .col-xxl-9, .col-xxl-10, .col-xxl-11, .col-xxl-12 {
|
||||||
float: left;
|
float: left;
|
||||||
padding-left:15px;
|
padding-left:15px;
|
||||||
padding-right:15px;
|
padding-right:15px;
|
||||||
}
|
}
|
||||||
.col-xxl-12 {
|
.col-xxl-12 {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@ -588,39 +644,39 @@ li a:active:after {
|
|||||||
left: 0;
|
left: 0;
|
||||||
}
|
}
|
||||||
.gj-resizable-w {
|
.gj-resizable-w {
|
||||||
cursor: w-resize;
|
cursor: w-resize;
|
||||||
width: 7px;
|
width: 7px;
|
||||||
left: -5px;
|
left: -5px;
|
||||||
top: 0;
|
top: 0;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
.gj-resizable-se {
|
.gj-resizable-se {
|
||||||
cursor: se-resize;
|
cursor: se-resize;
|
||||||
width: 12px;
|
width: 12px;
|
||||||
height: 12px;
|
height: 12px;
|
||||||
right: 1px;
|
right: 1px;
|
||||||
bottom: 1px;
|
bottom: 1px;
|
||||||
}
|
}
|
||||||
.gj-resizable-sw {
|
.gj-resizable-sw {
|
||||||
cursor: sw-resize;
|
cursor: sw-resize;
|
||||||
width: 9px;
|
width: 9px;
|
||||||
height: 9px;
|
height: 9px;
|
||||||
left: -5px;
|
left: -5px;
|
||||||
bottom: -5px;
|
bottom: -5px;
|
||||||
}
|
}
|
||||||
.gj-resizable-nw {
|
.gj-resizable-nw {
|
||||||
cursor: nw-resize;
|
cursor: nw-resize;
|
||||||
width: 9px;
|
width: 9px;
|
||||||
height: 9px;
|
height: 9px;
|
||||||
left: -5px;
|
left: -5px;
|
||||||
top: -5px;
|
top: -5px;
|
||||||
}
|
}
|
||||||
.gj-resizable-ne {
|
.gj-resizable-ne {
|
||||||
cursor: ne-resize;
|
cursor: ne-resize;
|
||||||
width: 9px;
|
width: 9px;
|
||||||
height: 9px;
|
height: 9px;
|
||||||
right: -5px;
|
right: -5px;
|
||||||
top: -5px;
|
top: -5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.gj-dialog-footer {
|
.gj-dialog-footer {
|
||||||
@ -815,11 +871,14 @@ li a:active:after {
|
|||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.checkbox input[type="checkbox"]:checked + label::before,
|
||||||
.checkbox-success input[type="checkbox"]:checked + label::before,
|
.checkbox-success input[type="checkbox"]:checked + label::before,
|
||||||
.checkbox-success input[type="radio"]:checked + label::before {
|
.checkbox-success input[type="radio"]:checked + label::before {
|
||||||
background-color: #5cb85c;
|
background-color: #5cb85c;
|
||||||
border-color: #5cb85c;
|
border-color: #5cb85c;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.checkbox input[type="checkbox"]:checked + label::after,
|
||||||
.checkbox-success input[type="checkbox"]:checked + label::after,
|
.checkbox-success input[type="checkbox"]:checked + label::after,
|
||||||
.checkbox-success input[type="radio"]:checked + label::after {
|
.checkbox-success input[type="radio"]:checked + label::after {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
|
3
assets/webconfig/css/materialdesignicons.min.css
vendored
Normal file
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 1.4 KiB |
BIN
assets/webconfig/fonts/materialdesignicons-webfont.eot
Normal file
BIN
assets/webconfig/fonts/materialdesignicons-webfont.ttf
Normal file
BIN
assets/webconfig/fonts/materialdesignicons-webfont.woff
Normal file
BIN
assets/webconfig/fonts/materialdesignicons-webfont.woff2
Normal file
@ -99,7 +99,6 @@
|
|||||||
"conf_leds_optgroup_RPiGPIO": "RPi GPIO",
|
"conf_leds_optgroup_RPiGPIO": "RPi GPIO",
|
||||||
"conf_leds_optgroup_RPiPWM": "RPi PWM",
|
"conf_leds_optgroup_RPiPWM": "RPi PWM",
|
||||||
"conf_leds_optgroup_RPiSPI": "RPi SPI\n",
|
"conf_leds_optgroup_RPiSPI": "RPi SPI\n",
|
||||||
"conf_leds_optgroup_debug": "Ladit",
|
|
||||||
"conf_leds_optgroup_network": "Síť",
|
"conf_leds_optgroup_network": "Síť",
|
||||||
"conf_leds_optgroup_usb": "USB",
|
"conf_leds_optgroup_usb": "USB",
|
||||||
"conf_logging_btn_autoscroll": "Automatické posouvání",
|
"conf_logging_btn_autoscroll": "Automatické posouvání",
|
||||||
@ -145,7 +144,7 @@
|
|||||||
"dashboard_infobox_label_instance": "Instance:",
|
"dashboard_infobox_label_instance": "Instance:",
|
||||||
"dashboard_infobox_label_latesthyp": "Poslední dostupná verze Hyperionu",
|
"dashboard_infobox_label_latesthyp": "Poslední dostupná verze Hyperionu",
|
||||||
"dashboard_infobox_label_platform": "Platforma:",
|
"dashboard_infobox_label_platform": "Platforma:",
|
||||||
"dashboard_infobox_label_ports": "Port (json|proto):",
|
"dashboard_infobox_label_ports": "Port",
|
||||||
"dashboard_infobox_label_smartacc": "Inteligentní přístup",
|
"dashboard_infobox_label_smartacc": "Inteligentní přístup",
|
||||||
"dashboard_infobox_label_statush": "Stav Hyperionu:",
|
"dashboard_infobox_label_statush": "Stav Hyperionu:",
|
||||||
"dashboard_infobox_label_title": "Informace",
|
"dashboard_infobox_label_title": "Informace",
|
||||||
|
@ -41,13 +41,23 @@
|
|||||||
"conf_general_inst_title": "LED-Hardware Instanzverwaltung",
|
"conf_general_inst_title": "LED-Hardware Instanzverwaltung",
|
||||||
"conf_general_intro": "Grundsätzliche Einstellungen zu Hyperion oder WebUI, die in keine andere Kategorie passen.",
|
"conf_general_intro": "Grundsätzliche Einstellungen zu Hyperion oder WebUI, die in keine andere Kategorie passen.",
|
||||||
"conf_general_label_title": "Allgemeine Einstellungen",
|
"conf_general_label_title": "Allgemeine Einstellungen",
|
||||||
"conf_grabber_fg_intro": "Plattform Aufnahme ist das lokale System auf dem Hyperion installiert wurde, welches als Bildquelle dient.",
|
"conf_grabber_fg_intro": "Bildschirm Aufnahme ist das lokale System auf dem Hyperion installiert wurde, welches als Bildquelle dient.",
|
||||||
"conf_grabber_v4l_intro": "USB-Aufnahme ist ein Gerät, welches via USB angeschlossen ist und als Bildquelle dient.",
|
"conf_grabber_v4l_intro": "USB-Aufnahme ist ein Gerät, welches via USB angeschlossen ist und als Bildquelle dient.",
|
||||||
"conf_helptable_expl": "Erklärung",
|
"conf_helptable_expl": "Erklärung",
|
||||||
"conf_helptable_option": "Option",
|
"conf_helptable_option": "Option",
|
||||||
|
"conf_leds_config_error": "Fehler in der LED/LED Layout Konfiguration",
|
||||||
|
"conf_leds_config_warning": "Überprüfe die LED/LED Layout Konfiguration",
|
||||||
"conf_leds_contr_label_contrtype": "Steuerungstyp:",
|
"conf_leds_contr_label_contrtype": "Steuerungstyp:",
|
||||||
|
"conf_leds_device_info_log": "Falls die LEDs nicht leuchten, schaue hier ob es einen Fehler gab: ",
|
||||||
"conf_leds_device_intro": "Wähle eine Methode zur Steuerung deiner LEDs aus, sie sind unterteilt in verschiedene Kategorien. Neben den allgemeinen Optionen die für alle gültig sind, gibt es auch spezifische, die sich unterscheiden je nach Wahl.",
|
"conf_leds_device_intro": "Wähle eine Methode zur Steuerung deiner LEDs aus, sie sind unterteilt in verschiedene Kategorien. Neben den allgemeinen Optionen die für alle gültig sind, gibt es auch spezifische, die sich unterscheiden je nach Wahl.",
|
||||||
|
"conf_leds_error_hwled_gt_layout": "Die Zahl der gegebenen Hardware LEDs ($1) ist größer, als die Anzahl der im LED-Layout definierten ($2), $3 {{plural:$3|LED wird|LEDs werden}} schwarz bleiben.",
|
||||||
|
"conf_leds_error_hwled_lt_layout": "Die Zahl der gegebenen Hardware LEDs ($1) ist kleiner, als die Anzahl der im LED-Layout definierten ($2). <br> Im LED-Layout dürfen nicht mehr LEDs konfiguriert sein, als vorhanden.",
|
||||||
"conf_leds_layout_advanced": "Erweiterte Optionen",
|
"conf_leds_layout_advanced": "Erweiterte Optionen",
|
||||||
|
"conf_leds_layout_blacklist_num_title": "LED-Anzahl",
|
||||||
|
"conf_leds_layout_blacklist_rule_title": "Ausschluss Regel",
|
||||||
|
"conf_leds_layout_blacklist_rules_title": "Ausschluss Regeln",
|
||||||
|
"conf_leds_layout_blacklist_start_title": "Start-LED",
|
||||||
|
"conf_leds_layout_blacklistleds_title": "Auszuschließende LEDs",
|
||||||
"conf_leds_layout_btn_checklist": "Zeige Checkliste",
|
"conf_leds_layout_btn_checklist": "Zeige Checkliste",
|
||||||
"conf_leds_layout_button_savelay": "Speichere Layout",
|
"conf_leds_layout_button_savelay": "Speichere Layout",
|
||||||
"conf_leds_layout_button_updsim": "Aktualisiere Vorschau",
|
"conf_leds_layout_button_updsim": "Aktualisiere Vorschau",
|
||||||
@ -113,17 +123,19 @@
|
|||||||
"conf_leds_layout_textf1": "Das Textfeld zeigt dir dein aktuell geladenes Layout, sofern du kein neues Layout mit den Optionen oben erstellt hast. Optional kann man die Werte hier weiter bearbeiten.",
|
"conf_leds_layout_textf1": "Das Textfeld zeigt dir dein aktuell geladenes Layout, sofern du kein neues Layout mit den Optionen oben erstellt hast. Optional kann man die Werte hier weiter bearbeiten.",
|
||||||
"conf_leds_nav_label_ledcontroller": "LED-Steuerung",
|
"conf_leds_nav_label_ledcontroller": "LED-Steuerung",
|
||||||
"conf_leds_nav_label_ledlayout": "LED-Layout",
|
"conf_leds_nav_label_ledlayout": "LED-Layout",
|
||||||
|
"conf_leds_note_layout_overwrite": "Achtung: Überschreiben erzeugt ein Standardlayout für {{plural:$1| eine LED| alle $1 LEDs}} gemäß der gegebenen Hardware LED-Anzahl",
|
||||||
"conf_leds_optgroup_RPiGPIO": "RPi GPIO",
|
"conf_leds_optgroup_RPiGPIO": "RPi GPIO",
|
||||||
"conf_leds_optgroup_RPiPWM": "RPi PWM",
|
"conf_leds_optgroup_RPiPWM": "RPi PWM",
|
||||||
"conf_leds_optgroup_RPiSPI": "RPi SPI",
|
"conf_leds_optgroup_RPiSPI": "RPi SPI",
|
||||||
"conf_leds_optgroup_debug": "Debug",
|
|
||||||
"conf_leds_optgroup_network": "Netzwerk",
|
"conf_leds_optgroup_network": "Netzwerk",
|
||||||
|
"conf_leds_optgroup_other": "Andere",
|
||||||
"conf_leds_optgroup_usb": "USB/Seriell",
|
"conf_leds_optgroup_usb": "USB/Seriell",
|
||||||
"conf_logging_btn_autoscroll": "Automatisch scrollen",
|
"conf_logging_btn_autoscroll": "Automatisch scrollen",
|
||||||
"conf_logging_btn_pbupload": "Bericht für Supportanfrage hochladen",
|
"conf_logging_btn_pbupload": "Bericht für Supportanfrage hochladen",
|
||||||
"conf_logging_contpolicy": "Berichts-Datenschutzerklärung",
|
"conf_logging_contpolicy": "Berichts-Datenschutzerklärung",
|
||||||
"conf_logging_label_intro": "Überprüfe die Meldungen im Protokoll um zu erfahren was Hyperion gerade beschäftigt. Je nach eingestellter Protokoll-Stufe siehst du mehr oder weniger Informationen.",
|
"conf_logging_label_intro": "Überprüfe die Meldungen im Protokoll um zu erfahren was Hyperion gerade beschäftigt. Je nach eingestellter Protokoll-Stufe siehst du mehr oder weniger Informationen.",
|
||||||
"conf_logging_lastreports": "Frühere Berichte",
|
"conf_logging_lastreports": "Frühere Berichte",
|
||||||
|
"conf_logging_logoutput": "Protokollausgabe",
|
||||||
"conf_logging_nomessage": "Keine Einträge vorhanden.",
|
"conf_logging_nomessage": "Keine Einträge vorhanden.",
|
||||||
"conf_logging_report": "Bericht",
|
"conf_logging_report": "Bericht",
|
||||||
"conf_logging_uplfailed": "Hochladen fehlgeschlagen! Überprüfe deine Internetverbindung!",
|
"conf_logging_uplfailed": "Hochladen fehlgeschlagen! Überprüfe deine Internetverbindung!",
|
||||||
@ -133,7 +145,7 @@
|
|||||||
"conf_network_bobl_intro": "Boblight Empfänger",
|
"conf_network_bobl_intro": "Boblight Empfänger",
|
||||||
"conf_network_createToken_btn": "Erstelle Token",
|
"conf_network_createToken_btn": "Erstelle Token",
|
||||||
"conf_network_fbs_intro": "Google Flatbuffers Empfänger. Wird genutzt für schnellen Bildempfang.",
|
"conf_network_fbs_intro": "Google Flatbuffers Empfänger. Wird genutzt für schnellen Bildempfang.",
|
||||||
"conf_network_forw_intro": "Leite alles an eine zweite Hyperion Instanz weiter, diese kann dann mit einer anderen LED-Steuerung genutzt werden",
|
"conf_network_forw_intro": "Leite alles an eine zweite Hyperion Installation weiter, diese kann dann mit einer anderen LED-Steuerung genutzt werden",
|
||||||
"conf_network_json_intro": "Der JSON-RPC-Port aller Hyperion-Instanzen, wird genutzt zur Fernsteuerung.",
|
"conf_network_json_intro": "Der JSON-RPC-Port aller Hyperion-Instanzen, wird genutzt zur Fernsteuerung.",
|
||||||
"conf_network_net_intro": "Einstellungen zum Netzwerk die für alle Netzwerk-Dienste gelten",
|
"conf_network_net_intro": "Einstellungen zum Netzwerk die für alle Netzwerk-Dienste gelten",
|
||||||
"conf_network_proto_intro": "Der PROTO-Port aller Hyperion-Instanzen, wird genutzt für \"Bildstreams\" (HyperionScreenCap, Kodi Add-on, Android Hyperion Grabber, ...)",
|
"conf_network_proto_intro": "Der PROTO-Port aller Hyperion-Instanzen, wird genutzt für \"Bildstreams\" (HyperionScreenCap, Kodi Add-on, Android Hyperion Grabber, ...)",
|
||||||
@ -163,15 +175,19 @@
|
|||||||
"dashboard_infobox_label_enableh": "Aktiviere Instanz: $1",
|
"dashboard_infobox_label_enableh": "Aktiviere Instanz: $1",
|
||||||
"dashboard_infobox_label_instance": "Instanz:",
|
"dashboard_infobox_label_instance": "Instanz:",
|
||||||
"dashboard_infobox_label_latesthyp": "Aktuellste Hyperion Version:",
|
"dashboard_infobox_label_latesthyp": "Aktuellste Hyperion Version:",
|
||||||
"dashboard_infobox_label_platform": "Plattform:",
|
"dashboard_infobox_label_platform": "Bildschirm:",
|
||||||
"dashboard_infobox_label_ports": "Ports (flat|proto):",
|
"dashboard_infobox_label_port_flat": "Flatbuffer:",
|
||||||
|
"dashboard_infobox_label_port_json": "JSON-Server:",
|
||||||
|
"dashboard_infobox_label_port_proto": "\nProtobuffer:",
|
||||||
|
"dashboard_infobox_label_ports": "Ports",
|
||||||
|
"dashboard_infobox_label_ports_websocket": "WebSocket (ws|wss):",
|
||||||
"dashboard_infobox_label_smartacc": "Schnellzugriff",
|
"dashboard_infobox_label_smartacc": "Schnellzugriff",
|
||||||
"dashboard_infobox_label_statush": "Hyperion Status:",
|
"dashboard_infobox_label_statush": "Hyperion Status:",
|
||||||
"dashboard_infobox_label_title": "Information",
|
"dashboard_infobox_label_title": "Information",
|
||||||
"dashboard_infobox_label_watchedversionbranch": "Ausgewählter Versionszweig:",
|
"dashboard_infobox_label_watchedversionbranch": "Ausgewählter Versionszweig:",
|
||||||
"dashboard_infobox_message_updatesuccess": "Du nutzt die aktuellste Version von Hyperion.",
|
"dashboard_infobox_message_updatesuccess": "Du nutzt die aktuellste Version von Hyperion.",
|
||||||
"dashboard_infobox_message_updatewarning": "Eine aktuellere Version von Hyperion ist verfügbar! ($1)",
|
"dashboard_infobox_message_updatewarning": "Eine aktuellere Version von Hyperion ist verfügbar! ($1)",
|
||||||
"dashboard_label_intro": "Das Dashboard zeigt dir Informationen zum Systemstatus, ob Updates verfügbar sind, den Komponentenstatus sowie die letzten Blog-Posts vom Hyperion Team.",
|
"dashboard_label_intro": "Das Dashboard zeigt dir Informationen zum Status und ob Updates verfügbar.",
|
||||||
"dashboard_message_default_password": "Das Standardpasswort der WebUI ist gesetzt. Wir empfehlen dringend, dieses zu ändern.",
|
"dashboard_message_default_password": "Das Standardpasswort der WebUI ist gesetzt. Wir empfehlen dringend, dieses zu ändern.",
|
||||||
"dashboard_message_default_password_t": "WebUI Standardpasswort gesetzt",
|
"dashboard_message_default_password_t": "WebUI Standardpasswort gesetzt",
|
||||||
"dashboard_message_do_not_show_again": "Diese Meldung nicht mehr anzeigen",
|
"dashboard_message_do_not_show_again": "Diese Meldung nicht mehr anzeigen",
|
||||||
@ -291,6 +307,7 @@
|
|||||||
"edt_conf_enum_logverbose": "Ausführlich",
|
"edt_conf_enum_logverbose": "Ausführlich",
|
||||||
"edt_conf_enum_logwarn": "Warnung",
|
"edt_conf_enum_logwarn": "Warnung",
|
||||||
"edt_conf_enum_multicolor_mean": "Mehrfarbig",
|
"edt_conf_enum_multicolor_mean": "Mehrfarbig",
|
||||||
|
"edt_conf_enum_please_select": "Bitte auswählen",
|
||||||
"edt_conf_enum_rbg": "RBG",
|
"edt_conf_enum_rbg": "RBG",
|
||||||
"edt_conf_enum_rgb": "RGB",
|
"edt_conf_enum_rgb": "RGB",
|
||||||
"edt_conf_enum_right_left": "von rechts nach links",
|
"edt_conf_enum_right_left": "von rechts nach links",
|
||||||
@ -305,12 +322,12 @@
|
|||||||
"edt_conf_fg_display_title": "Display",
|
"edt_conf_fg_display_title": "Display",
|
||||||
"edt_conf_fg_frequency_Hz_expl": "Wie schnell werden neue Bilder aufgenommen.",
|
"edt_conf_fg_frequency_Hz_expl": "Wie schnell werden neue Bilder aufgenommen.",
|
||||||
"edt_conf_fg_frequency_Hz_title": "Aufnahmefrequenz",
|
"edt_conf_fg_frequency_Hz_title": "Aufnahmefrequenz",
|
||||||
"edt_conf_fg_heading_title": "Plattform Aufnahme",
|
"edt_conf_fg_heading_title": "Bildschirm Aufnahme",
|
||||||
"edt_conf_fg_height_expl": "Verkleinere Bild auf dieser Höhe, da das Rohmaterial viel Leistung benötigen würde.",
|
"edt_conf_fg_height_expl": "Verkleinere Bild auf dieser Höhe, da das Rohmaterial viel Leistung benötigen würde.",
|
||||||
"edt_conf_fg_height_title": "Höhe",
|
"edt_conf_fg_height_title": "Höhe",
|
||||||
"edt_conf_fg_pixelDecimation_expl": "Bildverkleinerung (Faktor) ausgehend von der ursprünglichen Größe. 1 für die unveränderte/ursprüngliche Größe.",
|
"edt_conf_fg_pixelDecimation_expl": "Bildverkleinerung (Faktor) ausgehend von der ursprünglichen Größe. 1 für die unveränderte/ursprüngliche Größe.",
|
||||||
"edt_conf_fg_pixelDecimation_title": "Bildverkleinerung Faktor",
|
"edt_conf_fg_pixelDecimation_title": "Bildverkleinerung Faktor",
|
||||||
"edt_conf_fg_type_expl": "Art der Plattform Aufnahme; Standard ist 'auto'",
|
"edt_conf_fg_type_expl": "Art der Bildschirm Aufnahme; Standard ist 'auto'",
|
||||||
"edt_conf_fg_type_title": "Typ",
|
"edt_conf_fg_type_title": "Typ",
|
||||||
"edt_conf_fg_width_expl": "Verkleinere Bild auf dieser Breite, da das Rohmaterial viel Leistung benötigen würde.",
|
"edt_conf_fg_width_expl": "Verkleinere Bild auf dieser Breite, da das Rohmaterial viel Leistung benötigen würde.",
|
||||||
"edt_conf_fg_width_title": "Breite",
|
"edt_conf_fg_width_title": "Breite",
|
||||||
@ -325,11 +342,12 @@
|
|||||||
"edt_conf_fge_type_title": "Typ",
|
"edt_conf_fge_type_title": "Typ",
|
||||||
"edt_conf_fw_flat_expl": "Ein Flatbuffer Ziel pro Zeile. Bestehend aus IP:PORT (Beispiel: 127.0.0.1:19401)",
|
"edt_conf_fw_flat_expl": "Ein Flatbuffer Ziel pro Zeile. Bestehend aus IP:PORT (Beispiel: 127.0.0.1:19401)",
|
||||||
"edt_conf_fw_flat_itemtitle": "Flatbuffer Ziel",
|
"edt_conf_fw_flat_itemtitle": "Flatbuffer Ziel",
|
||||||
"edt_conf_fw_flat_title": "Liste von Flatbuffer zielen",
|
"edt_conf_fw_flat_title": "Liste von Flatbuffer Zielen",
|
||||||
"edt_conf_fw_heading_title": "Weiterleitung",
|
"edt_conf_fw_heading_title": "Weiterleitung",
|
||||||
"edt_conf_fw_json_expl": "Ein Json Ziel pro Zeile. Bestehend aus IP:PORT (Beispiel: 127.0.0.1:19446)",
|
"edt_conf_fw_json_expl": "Ein Json Ziel pro Zeile. Bestehend aus IP:PORT (Beispiel: 127.0.0.1:19446)",
|
||||||
"edt_conf_fw_json_itemtitle": "Json Ziel",
|
"edt_conf_fw_json_itemtitle": "Json Ziel",
|
||||||
"edt_conf_fw_json_title": "Liste von Json zielen",
|
"edt_conf_fw_json_title": "Liste von Json Zielen",
|
||||||
|
"edt_conf_gen_configVersion_title": "Konfiguration per Version",
|
||||||
"edt_conf_gen_heading_title": "Allgemeine Einstellungen",
|
"edt_conf_gen_heading_title": "Allgemeine Einstellungen",
|
||||||
"edt_conf_gen_name_expl": "Der Name wird verwendet, um Hyperion besser zu identifizieren. (Hilfreich bei mehreren Instanzen)",
|
"edt_conf_gen_name_expl": "Der Name wird verwendet, um Hyperion besser zu identifizieren. (Hilfreich bei mehreren Instanzen)",
|
||||||
"edt_conf_gen_name_title": "Name der Konfiguration",
|
"edt_conf_gen_name_title": "Name der Konfiguration",
|
||||||
@ -343,8 +361,8 @@
|
|||||||
"edt_conf_general_port_title": "Port",
|
"edt_conf_general_port_title": "Port",
|
||||||
"edt_conf_general_priority_expl": "Die Priorität dieser Komponente.",
|
"edt_conf_general_priority_expl": "Die Priorität dieser Komponente.",
|
||||||
"edt_conf_general_priority_title": "Priorität",
|
"edt_conf_general_priority_title": "Priorität",
|
||||||
"edt_conf_instC_systemEnable_expl": "Aktiviert die Plattform Aufnahme für diese LED Hardware Instanz.",
|
"edt_conf_instC_systemEnable_expl": "Aktiviert die Bildschirm Aufnahme für diese LED Hardware Instanz.",
|
||||||
"edt_conf_instC_systemEnable_title": "Aktiviere Plattform Aufnahme",
|
"edt_conf_instC_systemEnable_title": "Aktiviere Bildschirm Aufnahme",
|
||||||
"edt_conf_instC_v4lEnable_expl": "Aktiviert die USB Aufnahme für diese LED -Hardware Instanz.",
|
"edt_conf_instC_v4lEnable_expl": "Aktiviert die USB Aufnahme für diese LED -Hardware Instanz.",
|
||||||
"edt_conf_instC_v4lEnable_title": "Aktiviere USB-Aufnahme",
|
"edt_conf_instC_v4lEnable_title": "Aktiviere USB-Aufnahme",
|
||||||
"edt_conf_instCapture_heading_title": "Instance Aufnahme",
|
"edt_conf_instCapture_heading_title": "Instance Aufnahme",
|
||||||
@ -378,7 +396,7 @@
|
|||||||
"edt_conf_smooth_heading_title": "Glättung",
|
"edt_conf_smooth_heading_title": "Glättung",
|
||||||
"edt_conf_smooth_interpolationRate_expl": "Frequenz in der Zwischenschritte zur Glättung berechnet werden.",
|
"edt_conf_smooth_interpolationRate_expl": "Frequenz in der Zwischenschritte zur Glättung berechnet werden.",
|
||||||
"edt_conf_smooth_interpolationRate_title": "Interpolationsfrequenz",
|
"edt_conf_smooth_interpolationRate_title": "Interpolationsfrequenz",
|
||||||
"edt_conf_smooth_outputRate_expl": "Die Ausgangfrequnz zum LED-Device",
|
"edt_conf_smooth_outputRate_expl": "Die Ausgangfrequenz zum LED-Gerät",
|
||||||
"edt_conf_smooth_outputRate_title": "Ausgabefrequenz",
|
"edt_conf_smooth_outputRate_title": "Ausgabefrequenz",
|
||||||
"edt_conf_smooth_time_ms_expl": "Wie lange soll die Glättung Bilder sammeln?",
|
"edt_conf_smooth_time_ms_expl": "Wie lange soll die Glättung Bilder sammeln?",
|
||||||
"edt_conf_smooth_time_ms_title": "Zeit",
|
"edt_conf_smooth_time_ms_title": "Zeit",
|
||||||
@ -441,12 +459,15 @@
|
|||||||
"edt_conf_webc_sslport_expl": "Port des HTTPS-Webservers",
|
"edt_conf_webc_sslport_expl": "Port des HTTPS-Webservers",
|
||||||
"edt_conf_webc_sslport_title": "HTTPS Port",
|
"edt_conf_webc_sslport_title": "HTTPS Port",
|
||||||
"edt_dev_auth_key_title": "Authentisierungstoken",
|
"edt_dev_auth_key_title": "Authentisierungstoken",
|
||||||
|
"edt_dev_auth_key_title_info": "Authentifizierungstoken für das Gerät",
|
||||||
"edt_dev_enum_sub_min_cool_adjust": "Minimale Anpassung: cool",
|
"edt_dev_enum_sub_min_cool_adjust": "Minimale Anpassung: cool",
|
||||||
"edt_dev_enum_sub_min_warm_adjust": "Minimale Anpassung: warm",
|
"edt_dev_enum_sub_min_warm_adjust": "Minimale Anpassung: warm",
|
||||||
"edt_dev_enum_subtract_minimum": "Subtrahiere Minimum",
|
"edt_dev_enum_subtract_minimum": "Subtrahiere Minimum",
|
||||||
"edt_dev_enum_white_off": "Weiß ist aus",
|
"edt_dev_enum_white_off": "Weiß ist aus",
|
||||||
"edt_dev_general_colorOrder_title": "RGB Byte Reihenfolge",
|
"edt_dev_general_colorOrder_title": "RGB Byte Reihenfolge",
|
||||||
|
"edt_dev_general_colorOrder_title_info": "Die Farbreihenfolge des Gerätes",
|
||||||
"edt_dev_general_hardwareLedCount_title": "Anzahl Hardware LEDs",
|
"edt_dev_general_hardwareLedCount_title": "Anzahl Hardware LEDs",
|
||||||
|
"edt_dev_general_hardwareLedCount_title_info": "Die verfügbare LED Anzahl des Gerätes",
|
||||||
"edt_dev_general_heading_title": "Allgemeine Einstellungen",
|
"edt_dev_general_heading_title": "Allgemeine Einstellungen",
|
||||||
"edt_dev_general_name_title": "Name der Konfiguration",
|
"edt_dev_general_name_title": "Name der Konfiguration",
|
||||||
"edt_dev_general_rewriteTime_title": "Aktualisierungszeit",
|
"edt_dev_general_rewriteTime_title": "Aktualisierungszeit",
|
||||||
@ -460,7 +481,9 @@
|
|||||||
"edt_dev_spec_brightnessFactor_title": "Helligkeitsfaktor",
|
"edt_dev_spec_brightnessFactor_title": "Helligkeitsfaktor",
|
||||||
"edt_dev_spec_brightnessMax_title": "Helligkeitsmaximum",
|
"edt_dev_spec_brightnessMax_title": "Helligkeitsmaximum",
|
||||||
"edt_dev_spec_brightnessMin_title": "Helligkeitsminimum",
|
"edt_dev_spec_brightnessMin_title": "Helligkeitsminimum",
|
||||||
|
"edt_dev_spec_brightnessOverwrite_title": "Helligkeit überschreiben",
|
||||||
"edt_dev_spec_brightnessThreshold_title": "Signal Erkennung Helligkeitsminimum",
|
"edt_dev_spec_brightnessThreshold_title": "Signal Erkennung Helligkeitsminimum",
|
||||||
|
"edt_dev_spec_brightness_title": "Helligkeit",
|
||||||
"edt_dev_spec_chanperfixture_title": "Kanäle pro Gerät",
|
"edt_dev_spec_chanperfixture_title": "Kanäle pro Gerät",
|
||||||
"edt_dev_spec_cid_title": "CID",
|
"edt_dev_spec_cid_title": "CID",
|
||||||
"edt_dev_spec_clientKey_title": "Clientkey",
|
"edt_dev_spec_clientKey_title": "Clientkey",
|
||||||
@ -468,6 +491,11 @@
|
|||||||
"edt_dev_spec_debugLevel_title": "Debug Stufe",
|
"edt_dev_spec_debugLevel_title": "Debug Stufe",
|
||||||
"edt_dev_spec_debugStreamer_title": "Streamer Debugging",
|
"edt_dev_spec_debugStreamer_title": "Streamer Debugging",
|
||||||
"edt_dev_spec_delayAfterConnect_title": "Verzögerung nach Verbindung",
|
"edt_dev_spec_delayAfterConnect_title": "Verzögerung nach Verbindung",
|
||||||
|
"edt_dev_spec_devices_discovered_none": "Keine Geräte gefunden",
|
||||||
|
"edt_dev_spec_devices_discovered_title": "Gefundene LED-Geräte",
|
||||||
|
"edt_dev_spec_devices_discovered_title_info": "Wähle ein gefundenes LED-Gerät aus",
|
||||||
|
"edt_dev_spec_devices_discovered_title_info_custom": "Wähle ein gefundenes LED-Device aus oder setzte einen benutzerspezifischen Wert",
|
||||||
|
"edt_dev_spec_devices_discovery_inprogress": "Suche Geräte",
|
||||||
"edt_dev_spec_dithering_title": "Dithering",
|
"edt_dev_spec_dithering_title": "Dithering",
|
||||||
"edt_dev_spec_dmaNumber_title": "DMA Kanal",
|
"edt_dev_spec_dmaNumber_title": "DMA Kanal",
|
||||||
"edt_dev_spec_gamma_title": "Gamma",
|
"edt_dev_spec_gamma_title": "Gamma",
|
||||||
@ -482,6 +510,7 @@
|
|||||||
"edt_dev_spec_intervall_title": "Intervall",
|
"edt_dev_spec_intervall_title": "Intervall",
|
||||||
"edt_dev_spec_invert_title": "Invertiere Signal",
|
"edt_dev_spec_invert_title": "Invertiere Signal",
|
||||||
"edt_dev_spec_latchtime_title": "Sperrzeit",
|
"edt_dev_spec_latchtime_title": "Sperrzeit",
|
||||||
|
"edt_dev_spec_latchtime_title_info": "Die Sperrzeit ist der Zeitrahmen, den ein Gerät benötigt, bis das nächste Update verarbeitet werden kann. Während dieses Zeitraums werden Aktualisierungen ignoriert.",
|
||||||
"edt_dev_spec_ledIndex_title": "LED-Index",
|
"edt_dev_spec_ledIndex_title": "LED-Index",
|
||||||
"edt_dev_spec_ledType_title": "LED-Typ",
|
"edt_dev_spec_ledType_title": "LED-Typ",
|
||||||
"edt_dev_spec_lightid_itemtitle": "ID",
|
"edt_dev_spec_lightid_itemtitle": "ID",
|
||||||
@ -505,7 +534,8 @@
|
|||||||
"edt_dev_spec_port_title": "Port",
|
"edt_dev_spec_port_title": "Port",
|
||||||
"edt_dev_spec_printTimeStamp_title": "Mit Zeitstempel",
|
"edt_dev_spec_printTimeStamp_title": "Mit Zeitstempel",
|
||||||
"edt_dev_spec_pwmChannel_title": "PWM Kanal",
|
"edt_dev_spec_pwmChannel_title": "PWM Kanal",
|
||||||
"edt_dev_spec_restoreOriginalState_title": "Bei Deaktivierung, Lampen Originalzustand wiederherstellen",
|
"edt_dev_spec_restoreOriginalState_title": "Originalzustand wiederherstellen",
|
||||||
|
"edt_dev_spec_restoreOriginalState_title_info": "Bei Deaktivierung, Lampen Originalzustand wiederherstellen",
|
||||||
"edt_dev_spec_serial_title": "Seriennummer",
|
"edt_dev_spec_serial_title": "Seriennummer",
|
||||||
"edt_dev_spec_spipath_title": "SPI Pfad",
|
"edt_dev_spec_spipath_title": "SPI Pfad",
|
||||||
"edt_dev_spec_sslHSTimeoutMax_title": "Streamer Handshake maximum Timeout",
|
"edt_dev_spec_sslHSTimeoutMax_title": "Streamer Handshake maximum Timeout",
|
||||||
@ -513,7 +543,9 @@
|
|||||||
"edt_dev_spec_sslReadTimeout_title": "Streamer lese Timeout",
|
"edt_dev_spec_sslReadTimeout_title": "Streamer lese Timeout",
|
||||||
"edt_dev_spec_switchOffOnBlack_title": "Aus bei schwarz",
|
"edt_dev_spec_switchOffOnBlack_title": "Aus bei schwarz",
|
||||||
"edt_dev_spec_switchOffOnbelowMinBrightness_title": "Aus bei Minimum",
|
"edt_dev_spec_switchOffOnbelowMinBrightness_title": "Aus bei Minimum",
|
||||||
"edt_dev_spec_targetIpHost_title": "Ziel IP-Adresse/Rechnername",
|
"edt_dev_spec_syncOverwrite_title": "Deaktivierun der Synchronisierung",
|
||||||
|
"edt_dev_spec_targetIpHost_title": "Rechnername/IP-Adresse",
|
||||||
|
"edt_dev_spec_targetIpHost_title_info": "Der Rechnername oder die IP-Adresse des Gerätes",
|
||||||
"edt_dev_spec_targetIp_title": "Ziel IP-Adresse",
|
"edt_dev_spec_targetIp_title": "Ziel IP-Adresse",
|
||||||
"edt_dev_spec_transeffect_title": "Übergangseffekt",
|
"edt_dev_spec_transeffect_title": "Übergangseffekt",
|
||||||
"edt_dev_spec_transistionTimeExtra_title": "Extra Übergangszeit bei Schwarz",
|
"edt_dev_spec_transistionTimeExtra_title": "Extra Übergangszeit bei Schwarz",
|
||||||
@ -703,6 +735,7 @@
|
|||||||
"general_btn_off": "Aus",
|
"general_btn_off": "Aus",
|
||||||
"general_btn_ok": "OK",
|
"general_btn_ok": "OK",
|
||||||
"general_btn_on": "An",
|
"general_btn_on": "An",
|
||||||
|
"general_btn_overwrite": "Überschreiben",
|
||||||
"general_btn_rename": "Umbenennen",
|
"general_btn_rename": "Umbenennen",
|
||||||
"general_btn_restarthyperion": "Hyperion neustarten",
|
"general_btn_restarthyperion": "Hyperion neustarten",
|
||||||
"general_btn_save": "Speichern",
|
"general_btn_save": "Speichern",
|
||||||
@ -720,7 +753,7 @@
|
|||||||
"general_comp_BOBLIGHTSERVER": "Boblight Server",
|
"general_comp_BOBLIGHTSERVER": "Boblight Server",
|
||||||
"general_comp_FLATBUFSERVER": "Flatbuffers Server",
|
"general_comp_FLATBUFSERVER": "Flatbuffers Server",
|
||||||
"general_comp_FORWARDER": "Weiterleitung",
|
"general_comp_FORWARDER": "Weiterleitung",
|
||||||
"general_comp_GRABBER": "Plattform Aufnahme",
|
"general_comp_GRABBER": "Bildschirm Aufnahme",
|
||||||
"general_comp_LEDDEVICE": "LED-Hardware",
|
"general_comp_LEDDEVICE": "LED-Hardware",
|
||||||
"general_comp_PROTOSERVER": "Protocol Buffers Server",
|
"general_comp_PROTOSERVER": "Protocol Buffers Server",
|
||||||
"general_comp_SMOOTHING": "Glättung",
|
"general_comp_SMOOTHING": "Glättung",
|
||||||
@ -734,14 +767,18 @@
|
|||||||
"general_country_ru": "Russland",
|
"general_country_ru": "Russland",
|
||||||
"general_country_uk": "England",
|
"general_country_uk": "England",
|
||||||
"general_country_us": "Amerika",
|
"general_country_us": "Amerika",
|
||||||
|
"general_disabled": "deaktiviert",
|
||||||
|
"general_enabled": "aktiviert",
|
||||||
"general_speech_cs": "Tschechisch",
|
"general_speech_cs": "Tschechisch",
|
||||||
"general_speech_de": "Deutsch",
|
"general_speech_de": "Deutsch",
|
||||||
"general_speech_en": "Englisch",
|
"general_speech_en": "Englisch",
|
||||||
"general_speech_es": "Spanisch",
|
"general_speech_es": "Spanisch",
|
||||||
"general_speech_fr": "Französisch",
|
"general_speech_fr": "Französisch",
|
||||||
"general_speech_it": "Italienisch",
|
"general_speech_it": "Italienisch",
|
||||||
|
"general_speech_nb": "Norwegisch (Bokmål)",
|
||||||
"general_speech_nl": "Niederländisch",
|
"general_speech_nl": "Niederländisch",
|
||||||
"general_speech_pl": "Polnisch",
|
"general_speech_pl": "Polnisch",
|
||||||
|
"general_speech_pt": "Portugisisch",
|
||||||
"general_speech_ro": "Rumänisch",
|
"general_speech_ro": "Rumänisch",
|
||||||
"general_speech_ru": "Russisch",
|
"general_speech_ru": "Russisch",
|
||||||
"general_speech_sv": "Schwedisch",
|
"general_speech_sv": "Schwedisch",
|
||||||
@ -784,7 +821,7 @@
|
|||||||
"main_ledsim_title": "LED-Visualisierung",
|
"main_ledsim_title": "LED-Visualisierung",
|
||||||
"main_menu_about_token": "Über Hyperion",
|
"main_menu_about_token": "Über Hyperion",
|
||||||
"main_menu_colors_conf_token": "Bildverarbeitung",
|
"main_menu_colors_conf_token": "Bildverarbeitung",
|
||||||
"main_menu_configuration_token": "Konfiguration",
|
"main_menu_configuration_token": "LED Instanzen",
|
||||||
"main_menu_dashboard_token": "Dashboard",
|
"main_menu_dashboard_token": "Dashboard",
|
||||||
"main_menu_effect_conf_token": "Effekte",
|
"main_menu_effect_conf_token": "Effekte",
|
||||||
"main_menu_effectsconfigurator_token": "Effekt Konfigurator",
|
"main_menu_effectsconfigurator_token": "Effekt Konfigurator",
|
||||||
@ -811,7 +848,7 @@
|
|||||||
"remote_effects_label_picture": "Bild:",
|
"remote_effects_label_picture": "Bild:",
|
||||||
"remote_input_clearall": "Lösche alle Effekte/Farben",
|
"remote_input_clearall": "Lösche alle Effekte/Farben",
|
||||||
"remote_input_duration": "Dauer:",
|
"remote_input_duration": "Dauer:",
|
||||||
"remote_input_intro": "Hyperion nutzt ein Prioritätensystem, um die Quelle zu wählen. Alles was du setzt hat eine Priorität (Effekte,Farben,Plattform Aufnahme,USB Aufnahme und Netzwerkquellen). Standardmäßig nutzt Hyperion die Quelle mit der niedrigsten Priorität. Hier kannst du aktiv Einfluss darauf nehmen. $1",
|
"remote_input_intro": "Hyperion nutzt ein Prioritätensystem, um die Quelle zu wählen. Alles was du setzt hat eine Priorität (Effekte,Bildschirm ,Plattform Aufnahme,USB Aufnahme und Netzwerkquellen). Standardmäßig nutzt Hyperion die Quelle mit der niedrigsten Priorität. Hier kannst du aktiv Einfluss darauf nehmen. $1",
|
||||||
"remote_input_ip": "IP:",
|
"remote_input_ip": "IP:",
|
||||||
"remote_input_label": "Quellenauswahl",
|
"remote_input_label": "Quellenauswahl",
|
||||||
"remote_input_label_autoselect": "Automatische Auswahl",
|
"remote_input_label_autoselect": "Automatische Auswahl",
|
||||||
@ -827,6 +864,8 @@
|
|||||||
"remote_maptype_label_multicolor_mean": "Mehrfarbig",
|
"remote_maptype_label_multicolor_mean": "Mehrfarbig",
|
||||||
"remote_maptype_label_unicolor_mean": "Einfarbig",
|
"remote_maptype_label_unicolor_mean": "Einfarbig",
|
||||||
"remote_optgroup_syseffets": "Mitgelieferte Effekte",
|
"remote_optgroup_syseffets": "Mitgelieferte Effekte",
|
||||||
|
"remote_optgroup_templates_custom": "Nutzer Vorlage",
|
||||||
|
"remote_optgroup_templates_system": "System Vorlage",
|
||||||
"remote_optgroup_usreffets": "Benutzer Effekte",
|
"remote_optgroup_usreffets": "Benutzer Effekte",
|
||||||
"remote_videoMode_2D": "2D",
|
"remote_videoMode_2D": "2D",
|
||||||
"remote_videoMode_3DSBS": "3DSBS",
|
"remote_videoMode_3DSBS": "3DSBS",
|
||||||
@ -890,7 +929,7 @@
|
|||||||
"wiz_cc_title": "Farbkalibrierungs Assistent",
|
"wiz_cc_title": "Farbkalibrierungs Assistent",
|
||||||
"wiz_cololight_desc2": "Nun kannst du auswählen, welche der Lampen hinzugefügt werden sollen. Als Hilfe zur Identifizierung kannst du sie mit einem Klick auf den rechten Button kurz aufleuchten lassen.",
|
"wiz_cololight_desc2": "Nun kannst du auswählen, welche der Lampen hinzugefügt werden sollen. Als Hilfe zur Identifizierung kannst du sie mit einem Klick auf den rechten Button kurz aufleuchten lassen.",
|
||||||
"wiz_cololight_intro1": "Dieser Assistent hilft dir bei der Konfiguration von Hyperion für Cololight. Zu den Funktionen zählen ein automatisches Finden der Cololights und weitere Einstellungen von Hyperion automatisch anzupassen. Kurz gesagt: Komplette Einrichtung mit ein paar Klicks.<br />Achtung: Wenn Du ein Cololight Strip benutzt, musst Du ggf. die Anzahl der LEDs und das Layout manuell anpassen.",
|
"wiz_cololight_intro1": "Dieser Assistent hilft dir bei der Konfiguration von Hyperion für Cololight. Zu den Funktionen zählen ein automatisches Finden der Cololights und weitere Einstellungen von Hyperion automatisch anzupassen. Kurz gesagt: Komplette Einrichtung mit ein paar Klicks.<br />Achtung: Wenn Du ein Cololight Strip benutzt, musst Du ggf. die Anzahl der LEDs und das Layout manuell anpassen.",
|
||||||
"wiz_cololight_noprops": "Auf die Device Eigenschaften kann nicht zugegriffen werden - Konfiguriere die Anzahl der LEDs manuell.",
|
"wiz_cololight_noprops": "Auf die Geräteeigenschaften kann nicht zugegriffen werden - Konfiguriere die Anzahl der LEDs manuell.",
|
||||||
"wiz_cololight_title": "Cololight Einrichtungsassistent",
|
"wiz_cololight_title": "Cololight Einrichtungsassistent",
|
||||||
"wiz_guideyou": "Der $1 wird dich durch die Konfiguration leiten, drücke dazu einfach den Button!",
|
"wiz_guideyou": "Der $1 wird dich durch die Konfiguration leiten, drücke dazu einfach den Button!",
|
||||||
"wiz_hue_blinkblue": "Lasse ID $1 blau aufleuchten",
|
"wiz_hue_blinkblue": "Lasse ID $1 blau aufleuchten",
|
||||||
@ -940,4 +979,4 @@
|
|||||||
"wiz_yeelight_intro1": "Dieser Assistent hilft dir bei der Konfiguration von Hyperion für Yeelight. Zu den Funktionen zählen ein automatisches Finden der Yeelights, die einzelnen Lampen unterschiedlichen Bereichen im Bild zuzuordnen und weitere Einstellungen von Hyperion automatisch anzupassen. Kurz gesagt: Komplette Einrichtung mit ein paar Klicks.",
|
"wiz_yeelight_intro1": "Dieser Assistent hilft dir bei der Konfiguration von Hyperion für Yeelight. Zu den Funktionen zählen ein automatisches Finden der Yeelights, die einzelnen Lampen unterschiedlichen Bereichen im Bild zuzuordnen und weitere Einstellungen von Hyperion automatisch anzupassen. Kurz gesagt: Komplette Einrichtung mit ein paar Klicks.",
|
||||||
"wiz_yeelight_title": "Yeelight Einrichtungsassistent",
|
"wiz_yeelight_title": "Yeelight Einrichtungsassistent",
|
||||||
"wiz_yeelight_unsupported": "Nicht unterstützt"
|
"wiz_yeelight_unsupported": "Nicht unterstützt"
|
||||||
}
|
}
|
@ -45,9 +45,19 @@
|
|||||||
"conf_grabber_v4l_intro": "La captura USB es un dispositivo (de captura) conectado a través de USB que se utiliza para introducir imágenes de origen para su procesado.",
|
"conf_grabber_v4l_intro": "La captura USB es un dispositivo (de captura) conectado a través de USB que se utiliza para introducir imágenes de origen para su procesado.",
|
||||||
"conf_helptable_expl": "Explicación",
|
"conf_helptable_expl": "Explicación",
|
||||||
"conf_helptable_option": "Opción",
|
"conf_helptable_option": "Opción",
|
||||||
|
"conf_leds_config_error": "Error en la configuración de la disposición de los LEDs",
|
||||||
|
"conf_leds_config_warning": "Comprueba la configuración de la disposición de los LEDs",
|
||||||
"conf_leds_contr_label_contrtype": "Tipo de controladora:",
|
"conf_leds_contr_label_contrtype": "Tipo de controladora:",
|
||||||
|
"conf_leds_device_info_log": "En caso de que tus LEDs no funcionen, comprueba aquí si hay errores:",
|
||||||
"conf_leds_device_intro": "Hyperion soporta una gran cantidad de controladores para transmitir datos a tu dispositivo de destino. Selecciona un controlador LED fuera de la lista ordenada y configúralo. Hemos elegido los mejores ajustes por defecto para cada dispositivo.",
|
"conf_leds_device_intro": "Hyperion soporta una gran cantidad de controladores para transmitir datos a tu dispositivo de destino. Selecciona un controlador LED fuera de la lista ordenada y configúralo. Hemos elegido los mejores ajustes por defecto para cada dispositivo.",
|
||||||
|
"conf_leds_error_hwled_gt_layout": "El recuento de LEDs por hardware ($1) es mayor que los LEDs configurados a través de la disposición ($2),<br>$3 {{plural:$1|LED|LEDs}} se quedará en negro si continúas.",
|
||||||
|
"conf_leds_error_hwled_lt_layout": "El recuento de LEDs por hardware ($1) es menor que los LEDs configurados a través del diseño ($2). <br> El número de LEDs configurados en el esquema no debe superar los LEDs disponibles.",
|
||||||
"conf_leds_layout_advanced": "Ajustes Avanzados",
|
"conf_leds_layout_advanced": "Ajustes Avanzados",
|
||||||
|
"conf_leds_layout_blacklist_num_title": "Número de LEDs",
|
||||||
|
"conf_leds_layout_blacklist_rule_title": "Regla de lista negra",
|
||||||
|
"conf_leds_layout_blacklist_rules_title": "Reglas de lista negra",
|
||||||
|
"conf_leds_layout_blacklist_start_title": "LED de inicio",
|
||||||
|
"conf_leds_layout_blacklistleds_title": "LEDs de lista negra",
|
||||||
"conf_leds_layout_btn_checklist": "Mostrar lista",
|
"conf_leds_layout_btn_checklist": "Mostrar lista",
|
||||||
"conf_leds_layout_button_savelay": "Guardar Disposición",
|
"conf_leds_layout_button_savelay": "Guardar Disposición",
|
||||||
"conf_leds_layout_button_updsim": "Actualizar Vista Previa",
|
"conf_leds_layout_button_updsim": "Actualizar Vista Previa",
|
||||||
@ -113,17 +123,19 @@
|
|||||||
"conf_leds_layout_textf1": "Este campo de texto muestra de forma predeterminada el diseño cargado actual y se sobrescribirá si generas uno nuevo con las opciones siguientes. Opcional, puedes realizar más ediciones.",
|
"conf_leds_layout_textf1": "Este campo de texto muestra de forma predeterminada el diseño cargado actual y se sobrescribirá si generas uno nuevo con las opciones siguientes. Opcional, puedes realizar más ediciones.",
|
||||||
"conf_leds_nav_label_ledcontroller": "Controlador LED",
|
"conf_leds_nav_label_ledcontroller": "Controlador LED",
|
||||||
"conf_leds_nav_label_ledlayout": "Disposición LED",
|
"conf_leds_nav_label_ledlayout": "Disposición LED",
|
||||||
|
"conf_leds_note_layout_overwrite": "Nota: La sobrescritura crea un diseño por defecto para {{plural:$1| $1 LED| todos los $1 LED}} dado por el recuento de LEDs del hardware",
|
||||||
"conf_leds_optgroup_RPiGPIO": "GPIO RPi",
|
"conf_leds_optgroup_RPiGPIO": "GPIO RPi",
|
||||||
"conf_leds_optgroup_RPiPWM": "PWM RPi",
|
"conf_leds_optgroup_RPiPWM": "PWM RPi",
|
||||||
"conf_leds_optgroup_RPiSPI": "SPI RPi",
|
"conf_leds_optgroup_RPiSPI": "SPI RPi",
|
||||||
"conf_leds_optgroup_debug": "Depurar",
|
|
||||||
"conf_leds_optgroup_network": "Red",
|
"conf_leds_optgroup_network": "Red",
|
||||||
|
"conf_leds_optgroup_other": "Otro",
|
||||||
"conf_leds_optgroup_usb": "USB/Serial",
|
"conf_leds_optgroup_usb": "USB/Serial",
|
||||||
"conf_logging_btn_autoscroll": "Desplazamiento automático",
|
"conf_logging_btn_autoscroll": "Desplazamiento automático",
|
||||||
"conf_logging_btn_pbupload": "Crear informe para solicitud de soporte",
|
"conf_logging_btn_pbupload": "Crear informe para solicitud de soporte",
|
||||||
"conf_logging_contpolicy": "Informe de la Política de Privacidad",
|
"conf_logging_contpolicy": "Informe de la Política de Privacidad",
|
||||||
"conf_logging_label_intro": "Área para comprobar los mensajes de registro, dependiendo de la configuración de nivel de registro, verás más o menos información.",
|
"conf_logging_label_intro": "Área para comprobar los mensajes de registro, dependiendo de la configuración de nivel de registro, verás más o menos información.",
|
||||||
"conf_logging_lastreports": "Informes anteriores",
|
"conf_logging_lastreports": "Informes anteriores",
|
||||||
|
"conf_logging_logoutput": "Resultado del registro",
|
||||||
"conf_logging_nomessage": "No hay mensajes de registro disponibles.",
|
"conf_logging_nomessage": "No hay mensajes de registro disponibles.",
|
||||||
"conf_logging_report": "Informe",
|
"conf_logging_report": "Informe",
|
||||||
"conf_logging_uplfailed": "¡Subida fallida! ¡Por favor revise su conexion a internet!",
|
"conf_logging_uplfailed": "¡Subida fallida! ¡Por favor revise su conexion a internet!",
|
||||||
@ -164,14 +176,14 @@
|
|||||||
"dashboard_infobox_label_instance": "Instancia:",
|
"dashboard_infobox_label_instance": "Instancia:",
|
||||||
"dashboard_infobox_label_latesthyp": "Última versión de Hyperion:",
|
"dashboard_infobox_label_latesthyp": "Última versión de Hyperion:",
|
||||||
"dashboard_infobox_label_platform": "Plataforma:",
|
"dashboard_infobox_label_platform": "Plataforma:",
|
||||||
"dashboard_infobox_label_ports": "Puertos (json|proto):",
|
"dashboard_infobox_label_ports": "Puertos",
|
||||||
"dashboard_infobox_label_smartacc": "Acceso Inteligente",
|
"dashboard_infobox_label_smartacc": "Acceso Inteligente",
|
||||||
"dashboard_infobox_label_statush": "Estado de Hyperion:",
|
"dashboard_infobox_label_statush": "Estado de Hyperion:",
|
||||||
"dashboard_infobox_label_title": "Información",
|
"dashboard_infobox_label_title": "Información",
|
||||||
"dashboard_infobox_label_watchedversionbranch": "Rama de la versión visualizada:",
|
"dashboard_infobox_label_watchedversionbranch": "Rama de la versión visualizada:",
|
||||||
"dashboard_infobox_message_updatesuccess": "Ejecutas la última versión de Hyperion.",
|
"dashboard_infobox_message_updatesuccess": "Ejecutas la última versión de Hyperion.",
|
||||||
"dashboard_infobox_message_updatewarning": "¡Una versión más nueva de Hyperion está disponible! ($1)",
|
"dashboard_infobox_message_updatewarning": "¡Una versión más nueva de Hyperion está disponible! ($1)",
|
||||||
"dashboard_label_intro": "El cuadro de mandos te ofrece una visión general sobre el estado de Hyperion y te muestra las últimas noticias del Blog de Hyperion.",
|
"dashboard_label_intro": "El cuadro de mandos te ofrece una visión general sobre el estado de Hyperion.",
|
||||||
"dashboard_message_default_password": "Establecida la contraseña predeterminada para la WebUi. Recomendamos encarecidamente cambiar esto.",
|
"dashboard_message_default_password": "Establecida la contraseña predeterminada para la WebUi. Recomendamos encarecidamente cambiar esto.",
|
||||||
"dashboard_message_default_password_t": "Establecida la contraseña predeterminada de WebUi",
|
"dashboard_message_default_password_t": "Establecida la contraseña predeterminada de WebUi",
|
||||||
"dashboard_message_do_not_show_again": "No mostrar este mensaje de nuevo",
|
"dashboard_message_do_not_show_again": "No mostrar este mensaje de nuevo",
|
||||||
@ -288,6 +300,7 @@
|
|||||||
"edt_conf_enum_logverbose": "Detallado",
|
"edt_conf_enum_logverbose": "Detallado",
|
||||||
"edt_conf_enum_logwarn": "Advertencia",
|
"edt_conf_enum_logwarn": "Advertencia",
|
||||||
"edt_conf_enum_multicolor_mean": "Multicolor",
|
"edt_conf_enum_multicolor_mean": "Multicolor",
|
||||||
|
"edt_conf_enum_please_select": "Por favor, elije",
|
||||||
"edt_conf_enum_rbg": "RBG",
|
"edt_conf_enum_rbg": "RBG",
|
||||||
"edt_conf_enum_rgb": "RGB",
|
"edt_conf_enum_rgb": "RGB",
|
||||||
"edt_conf_enum_right_left": "De derecha a izquierda",
|
"edt_conf_enum_right_left": "De derecha a izquierda",
|
||||||
@ -327,6 +340,7 @@
|
|||||||
"edt_conf_fw_json_expl": "Un destino json por línea. Contiene IP:PUERTO (Ejemplo: 127.0.0.1:19446)",
|
"edt_conf_fw_json_expl": "Un destino json por línea. Contiene IP:PUERTO (Ejemplo: 127.0.0.1:19446)",
|
||||||
"edt_conf_fw_json_itemtitle": "Destino json",
|
"edt_conf_fw_json_itemtitle": "Destino json",
|
||||||
"edt_conf_fw_json_title": "Lista de clientes JSON",
|
"edt_conf_fw_json_title": "Lista de clientes JSON",
|
||||||
|
"edt_conf_gen_configVersion_title": "Versión de configuración",
|
||||||
"edt_conf_gen_heading_title": "Configuración General",
|
"edt_conf_gen_heading_title": "Configuración General",
|
||||||
"edt_conf_gen_name_expl": "Un nombre definido por el usuario que se utiliza para detectar Hyperion. (Útil con más de una instancia de Hyperion)",
|
"edt_conf_gen_name_expl": "Un nombre definido por el usuario que se utiliza para detectar Hyperion. (Útil con más de una instancia de Hyperion)",
|
||||||
"edt_conf_gen_name_title": "Nombre de configuración",
|
"edt_conf_gen_name_title": "Nombre de configuración",
|
||||||
@ -436,12 +450,15 @@
|
|||||||
"edt_conf_webc_sslport_expl": "Puerto del servidor web HTTPS",
|
"edt_conf_webc_sslport_expl": "Puerto del servidor web HTTPS",
|
||||||
"edt_conf_webc_sslport_title": "Puerto HTTPS",
|
"edt_conf_webc_sslport_title": "Puerto HTTPS",
|
||||||
"edt_dev_auth_key_title": "Token de autenticación",
|
"edt_dev_auth_key_title": "Token de autenticación",
|
||||||
|
"edt_dev_auth_key_title_info": "Token de autenticación necesario para acceder al dispositivo",
|
||||||
"edt_dev_enum_sub_min_cool_adjust": "Min. Ajuste fresco",
|
"edt_dev_enum_sub_min_cool_adjust": "Min. Ajuste fresco",
|
||||||
"edt_dev_enum_sub_min_warm_adjust": "Min. Ajuste caliente",
|
"edt_dev_enum_sub_min_warm_adjust": "Min. Ajuste caliente",
|
||||||
"edt_dev_enum_subtract_minimum": "Restar el mínimo",
|
"edt_dev_enum_subtract_minimum": "Restar el mínimo",
|
||||||
"edt_dev_enum_white_off": "Blanco apagado",
|
"edt_dev_enum_white_off": "Blanco apagado",
|
||||||
"edt_dev_general_colorOrder_title": "Orden de bytes RGB",
|
"edt_dev_general_colorOrder_title": "Orden de bytes RGB",
|
||||||
|
"edt_dev_general_colorOrder_title_info": "El orden de los colores del dispositivo",
|
||||||
"edt_dev_general_hardwareLedCount_title": "Recuento de LEDs de hardware",
|
"edt_dev_general_hardwareLedCount_title": "Recuento de LEDs de hardware",
|
||||||
|
"edt_dev_general_hardwareLedCount_title_info": "El número de LEDs físicos disponibles para el dispositivo dado",
|
||||||
"edt_dev_general_heading_title": "Configuración general",
|
"edt_dev_general_heading_title": "Configuración general",
|
||||||
"edt_dev_general_name_title": "Nombre de configuración",
|
"edt_dev_general_name_title": "Nombre de configuración",
|
||||||
"edt_dev_general_rewriteTime_title": "Tiempo de actualización",
|
"edt_dev_general_rewriteTime_title": "Tiempo de actualización",
|
||||||
@ -455,7 +472,9 @@
|
|||||||
"edt_dev_spec_brightnessFactor_title": "Factor de brillo",
|
"edt_dev_spec_brightnessFactor_title": "Factor de brillo",
|
||||||
"edt_dev_spec_brightnessMax_title": "Brillo máximo",
|
"edt_dev_spec_brightnessMax_title": "Brillo máximo",
|
||||||
"edt_dev_spec_brightnessMin_title": "Brillo mínimo",
|
"edt_dev_spec_brightnessMin_title": "Brillo mínimo",
|
||||||
|
"edt_dev_spec_brightnessOverwrite_title": "Sobrescribir brillo",
|
||||||
"edt_dev_spec_brightnessThreshold_title": "El brillo de la detección de la señal es mínimo",
|
"edt_dev_spec_brightnessThreshold_title": "El brillo de la detección de la señal es mínimo",
|
||||||
|
"edt_dev_spec_brightness_title": "Brillo",
|
||||||
"edt_dev_spec_chanperfixture_title": "Canales por Fixture",
|
"edt_dev_spec_chanperfixture_title": "Canales por Fixture",
|
||||||
"edt_dev_spec_cid_title": "CID",
|
"edt_dev_spec_cid_title": "CID",
|
||||||
"edt_dev_spec_clientKey_title": "Llave de cliente",
|
"edt_dev_spec_clientKey_title": "Llave de cliente",
|
||||||
@ -463,6 +482,11 @@
|
|||||||
"edt_dev_spec_debugLevel_title": "Nivel de depuración de la conexión del Streamer",
|
"edt_dev_spec_debugLevel_title": "Nivel de depuración de la conexión del Streamer",
|
||||||
"edt_dev_spec_debugStreamer_title": "Depuración de Streamer",
|
"edt_dev_spec_debugStreamer_title": "Depuración de Streamer",
|
||||||
"edt_dev_spec_delayAfterConnect_title": "Retraso después de la conexión",
|
"edt_dev_spec_delayAfterConnect_title": "Retraso después de la conexión",
|
||||||
|
"edt_dev_spec_devices_discovered_none": "No se han descubierto dispositivos",
|
||||||
|
"edt_dev_spec_devices_discovered_title": "Dispositivos descubiertos",
|
||||||
|
"edt_dev_spec_devices_discovered_title_info": "Selecciona tu dispositivo LED descubierto",
|
||||||
|
"edt_dev_spec_devices_discovered_title_info_custom": "Selecciona tu dispositivo LED descubierto o configura uno personalizado",
|
||||||
|
"edt_dev_spec_devices_discovery_inprogress": "Descubrimiento en progreso",
|
||||||
"edt_dev_spec_dithering_title": "Tintineo",
|
"edt_dev_spec_dithering_title": "Tintineo",
|
||||||
"edt_dev_spec_dmaNumber_title": "Canal DMA",
|
"edt_dev_spec_dmaNumber_title": "Canal DMA",
|
||||||
"edt_dev_spec_gamma_title": "Gamma",
|
"edt_dev_spec_gamma_title": "Gamma",
|
||||||
@ -477,6 +501,7 @@
|
|||||||
"edt_dev_spec_intervall_title": "Intervalo",
|
"edt_dev_spec_intervall_title": "Intervalo",
|
||||||
"edt_dev_spec_invert_title": "Invertir señal",
|
"edt_dev_spec_invert_title": "Invertir señal",
|
||||||
"edt_dev_spec_latchtime_title": "Tiempo de cierre",
|
"edt_dev_spec_latchtime_title": "Tiempo de cierre",
|
||||||
|
"edt_dev_spec_latchtime_title_info": "El tiempo de enganche es el tiempo que necesita un dispositivo hasta que se pueda procesar la siguiente actualización. Durante ese tiempo se ignoran las actualizaciones realizadas a través de él.",
|
||||||
"edt_dev_spec_ledIndex_title": "Índice LED",
|
"edt_dev_spec_ledIndex_title": "Índice LED",
|
||||||
"edt_dev_spec_ledType_title": "Tipo de LED",
|
"edt_dev_spec_ledType_title": "Tipo de LED",
|
||||||
"edt_dev_spec_lightid_itemtitle": "ID",
|
"edt_dev_spec_lightid_itemtitle": "ID",
|
||||||
@ -501,6 +526,7 @@
|
|||||||
"edt_dev_spec_printTimeStamp_title": "Añadir marca de tiempo",
|
"edt_dev_spec_printTimeStamp_title": "Añadir marca de tiempo",
|
||||||
"edt_dev_spec_pwmChannel_title": "Canal PWM",
|
"edt_dev_spec_pwmChannel_title": "Canal PWM",
|
||||||
"edt_dev_spec_restoreOriginalState_title": "Restaurar el estado original de las luces cuando se desactivan",
|
"edt_dev_spec_restoreOriginalState_title": "Restaurar el estado original de las luces cuando se desactivan",
|
||||||
|
"edt_dev_spec_restoreOriginalState_title_info": "Restaurar el estado original del dispositivo cuando se desactiva",
|
||||||
"edt_dev_spec_serial_title": "Número de serie",
|
"edt_dev_spec_serial_title": "Número de serie",
|
||||||
"edt_dev_spec_spipath_title": "Ruta SPI",
|
"edt_dev_spec_spipath_title": "Ruta SPI",
|
||||||
"edt_dev_spec_sslHSTimeoutMax_title": "Máximo tiempo de espera para el contacto con el Streamer",
|
"edt_dev_spec_sslHSTimeoutMax_title": "Máximo tiempo de espera para el contacto con el Streamer",
|
||||||
@ -508,7 +534,9 @@
|
|||||||
"edt_dev_spec_sslReadTimeout_title": "Tiempo de lectura del Streamer",
|
"edt_dev_spec_sslReadTimeout_title": "Tiempo de lectura del Streamer",
|
||||||
"edt_dev_spec_switchOffOnBlack_title": "Apagar en negro",
|
"edt_dev_spec_switchOffOnBlack_title": "Apagar en negro",
|
||||||
"edt_dev_spec_switchOffOnbelowMinBrightness_title": "Apagado, por debajo del mínimo",
|
"edt_dev_spec_switchOffOnbelowMinBrightness_title": "Apagado, por debajo del mínimo",
|
||||||
|
"edt_dev_spec_syncOverwrite_title": "Desactivar la sincronización",
|
||||||
"edt_dev_spec_targetIpHost_title": "IP de destino/nombre de host",
|
"edt_dev_spec_targetIpHost_title": "IP de destino/nombre de host",
|
||||||
|
"edt_dev_spec_targetIpHost_title_info": "El nombre de anfitrión o la dirección IP del dispositivo",
|
||||||
"edt_dev_spec_targetIp_title": "IP de destino",
|
"edt_dev_spec_targetIp_title": "IP de destino",
|
||||||
"edt_dev_spec_transeffect_title": "Efecto de transición",
|
"edt_dev_spec_transeffect_title": "Efecto de transición",
|
||||||
"edt_dev_spec_transistionTimeExtra_title": "Oscuridad de tiempo extra",
|
"edt_dev_spec_transistionTimeExtra_title": "Oscuridad de tiempo extra",
|
||||||
@ -550,7 +578,7 @@
|
|||||||
"edt_eff_colorrandom": "Color aleatório",
|
"edt_eff_colorrandom": "Color aleatório",
|
||||||
"edt_eff_colorshift": "Turno de Color",
|
"edt_eff_colorshift": "Turno de Color",
|
||||||
"edt_eff_colorstart": "Color de inicio",
|
"edt_eff_colorstart": "Color de inicio",
|
||||||
"edt_eff_colorstarttime": "Tiempo para mantener el color de fin",
|
"edt_eff_colorstarttime": "Tiempo para mantener el color de final",
|
||||||
"edt_eff_colortwo": "Color dos",
|
"edt_eff_colortwo": "Color dos",
|
||||||
"edt_eff_count": "Cuenta",
|
"edt_eff_count": "Cuenta",
|
||||||
"edt_eff_countries": "Países",
|
"edt_eff_countries": "Países",
|
||||||
@ -698,6 +726,7 @@
|
|||||||
"general_btn_off": "Apagado",
|
"general_btn_off": "Apagado",
|
||||||
"general_btn_ok": "OK",
|
"general_btn_ok": "OK",
|
||||||
"general_btn_on": "Encendido",
|
"general_btn_on": "Encendido",
|
||||||
|
"general_btn_overwrite": "Sobrescribir",
|
||||||
"general_btn_rename": "Renombrar",
|
"general_btn_rename": "Renombrar",
|
||||||
"general_btn_restarthyperion": "Reiniciar Hyperion",
|
"general_btn_restarthyperion": "Reiniciar Hyperion",
|
||||||
"general_btn_save": "Guardar",
|
"general_btn_save": "Guardar",
|
||||||
@ -822,6 +851,8 @@
|
|||||||
"remote_maptype_label_multicolor_mean": "Multicolor",
|
"remote_maptype_label_multicolor_mean": "Multicolor",
|
||||||
"remote_maptype_label_unicolor_mean": "Unicolor",
|
"remote_maptype_label_unicolor_mean": "Unicolor",
|
||||||
"remote_optgroup_syseffets": "Efectos Proporcionados",
|
"remote_optgroup_syseffets": "Efectos Proporcionados",
|
||||||
|
"remote_optgroup_templates_custom": "Plantillas de Usuario",
|
||||||
|
"remote_optgroup_templates_system": "Plantillas del Sistema",
|
||||||
"remote_optgroup_usreffets": "Efectos de Usuario",
|
"remote_optgroup_usreffets": "Efectos de Usuario",
|
||||||
"remote_videoMode_2D": "2D",
|
"remote_videoMode_2D": "2D",
|
||||||
"remote_videoMode_3DSBS": "3DSBS",
|
"remote_videoMode_3DSBS": "3DSBS",
|
||||||
|
@ -1,27 +1,27 @@
|
|||||||
{
|
{
|
||||||
"InfoDialog_access_text": "Selon le niveau des paramètres, vous pourrez ajuster plus d'options ou accéder à plus de fonctionnalités. Le niveau \"Par défaut\" est recommandé.",
|
"InfoDialog_access_text": "Selon le niveau des paramètres, vous pourrez ajuster plus d'options ou accéder à plus de fonctionnalités. Le niveau \"Par défaut\" est recommandé.",
|
||||||
"InfoDialog_access_title": "Paramètre de niveau",
|
"InfoDialog_access_title": "Niveau des paramètres",
|
||||||
"InfoDialog_iswitch_text": "Si vous faites fonctionner plus d'une instance Hyperion sur votre réseau local, vous pouvez basculer entre les différentes configurations. Sélectionnez l'instance d'Hyperion que vous souhaitez contrôler ci-dessous !",
|
"InfoDialog_iswitch_text": "Si vous faites fonctionner plus d'une instance Hyperion sur votre réseau local, vous pouvez basculer entre les différentes configurations. Sélectionnez l'instance d'Hyperion que vous souhaitez contrôler ci-dessous !",
|
||||||
"InfoDialog_iswitch_title": "Commutateur Hyperion",
|
"InfoDialog_iswitch_title": "Commutateur Hyperion",
|
||||||
"InfoDialog_lang_text": "Si la detection automatique de la langue vous correspond pas vous pouvez la changer ici.",
|
"InfoDialog_lang_text": "Si la détection automatique de la langue ne correspond pas à celle attendue, vous pouvez la modifier ici.",
|
||||||
"InfoDialog_lang_title": "Réglage de la langue",
|
"InfoDialog_lang_title": "Paramètres de langue",
|
||||||
"InfoDialog_nowrite_foottext": "Le WebUI sera débloqué automatiquement après que vous ayez résolu les problèmes.",
|
"InfoDialog_nowrite_foottext": "Le Web UI sera débloqué automatiquement après que vous ayez résolu les problèmes.",
|
||||||
"InfoDialog_nowrite_text": "Hyperion ne peut pas écrire à votre emplacement de fichier de configuration. Réparez les permissions sur le fichier pour continuer.",
|
"InfoDialog_nowrite_text": "Hyperion ne peut pas écrire votre fichier de configuration actuellement chargé. Réparez les permissions sur le fichier afin de poursuivre.",
|
||||||
"InfoDialog_nowrite_title": "Erreur de droit d'écriture !",
|
"InfoDialog_nowrite_title": "Erreur de droit d'écriture !",
|
||||||
"about_3rd_party_licenses": "Licences tierces",
|
"about_3rd_party_licenses": "Licences tierces",
|
||||||
"about_build": "Build",
|
"about_build": "Build",
|
||||||
"about_builddate": "Date de Build",
|
"about_builddate": "Date du build",
|
||||||
"about_contribute": "Développez Hyperion avec nous !",
|
"about_contribute": "Développez Hyperion avec nous !",
|
||||||
"about_credits": "Le mérite revient à tous ces développeurs !",
|
"about_credits": "Le mérite revient à tous ces développeurs !",
|
||||||
"about_resources": "$1 bibliothèques",
|
"about_resources": "$1 bibliothèques",
|
||||||
"about_translations": "Traductions",
|
"about_translations": "Traductions",
|
||||||
"about_version": "Version :",
|
"about_version": "Version :",
|
||||||
"conf_colors_blackborder_intro": "Évitez les barres noires où qu'elles se trouvent. Chaque mode utilise un algorithme de détection différent qui est réglé pour des situations spéciales. Augmentez le seuil si cela ne fonctionne pas pour vous.",
|
"conf_colors_blackborder_intro": "Évitez les barres noires où qu'elles se trouvent. Chaque mode utilise un algorithme de détection différent qui est réglé pour des situations particulières. Augmentez le seuil si cela ne fonctionne pas pour vous.",
|
||||||
"conf_colors_color_intro": "Créer une ou plusieurs profil de calibration, ajuster chaque couleurs, luminosité, linéarité et plus.",
|
"conf_colors_color_intro": "Créer un ou plusieurs profils de calibration, ajuster chaque couleur, luminosité, linéarité et plus.",
|
||||||
"conf_colors_smoothing_intro": "Le lissage aplatit les changements de couleur/luminosité pour réduire les distractions gênantes.",
|
"conf_colors_smoothing_intro": "Le fondu aplatit les changements de couleur/luminosité pour réduire les distractions gênantes.",
|
||||||
"conf_effect_bgeff_intro": "Définissez un effet/couleur d'arrière-plan, qui est affiché lorsqu'Hyperion sera \"inactif\". Commence toujours par une priorité de canal de 255",
|
"conf_effect_bgeff_intro": "Définissez un effet/couleur d'arrière-plan, qui est affiché lorsqu'Hyperion sera \"inactif\". Commence toujours par une priorité de canal de 255",
|
||||||
"conf_effect_fgeff_intro": "Définissez un effet ou une couleur de démarrage et sa durée, il sera utilisé lors du démarrage d'Hyperion.",
|
"conf_effect_fgeff_intro": "Définissez un effet ou une couleur de démarrage et sa durée, il sera utilisé lors du démarrage d'Hyperion.",
|
||||||
"conf_effect_path_intro": "Chargement des effets depuis l'emplacement définit. Vous pouvez également désactiver un simple effet par nom pour les cacher des autres effets de la liste.",
|
"conf_effect_path_intro": "Chargement des effets depuis l'emplacement défini. Vous pouvez également désactiver un simple effet par nom pour les cacher des autres effets de la liste.",
|
||||||
"conf_general_createInst_btn": "Créer une instance",
|
"conf_general_createInst_btn": "Créer une instance",
|
||||||
"conf_general_impexp_expbtn": "Exporter",
|
"conf_general_impexp_expbtn": "Exporter",
|
||||||
"conf_general_impexp_impbtn": "Importer",
|
"conf_general_impexp_impbtn": "Importer",
|
||||||
@ -31,7 +31,7 @@
|
|||||||
"conf_general_inst_actionhead": "Action",
|
"conf_general_inst_actionhead": "Action",
|
||||||
"conf_general_inst_name_title": "Nouveau nom d'instance",
|
"conf_general_inst_name_title": "Nouveau nom d'instance",
|
||||||
"conf_general_inst_namehead": "Nom d'instance",
|
"conf_general_inst_namehead": "Nom d'instance",
|
||||||
"conf_general_intro": "Configurations basique pour Hyperion et WebUI ne rentrant dans aucune autre catégorie.",
|
"conf_general_intro": "Configuration basique pour Hyperion et WebUI ne rentrant dans aucune autre catégorie.",
|
||||||
"conf_general_label_title": "Réglages généraux",
|
"conf_general_label_title": "Réglages généraux",
|
||||||
"conf_grabber_fg_intro": "La capture de plate-forme est votre système local, capturée comme source d'entrée.",
|
"conf_grabber_fg_intro": "La capture de plate-forme est votre système local, capturée comme source d'entrée.",
|
||||||
"conf_grabber_v4l_intro": "La capture USB utilise un périphérique de capture connecté en USB au système pour obtenir la source d'images à traiter.",
|
"conf_grabber_v4l_intro": "La capture USB utilise un périphérique de capture connecté en USB au système pour obtenir la source d'images à traiter.",
|
||||||
@ -43,8 +43,8 @@
|
|||||||
"conf_leds_layout_btn_checklist": "Afficher la checklist",
|
"conf_leds_layout_btn_checklist": "Afficher la checklist",
|
||||||
"conf_leds_layout_button_savelay": "Sauvegarder la disposition",
|
"conf_leds_layout_button_savelay": "Sauvegarder la disposition",
|
||||||
"conf_leds_layout_button_updsim": "Mettre à jour la prévisualisation",
|
"conf_leds_layout_button_updsim": "Mettre à jour la prévisualisation",
|
||||||
"conf_leds_layout_checkp1": "La led noire est votre première led, la première led est le point d'entré du signal de données.",
|
"conf_leds_layout_checkp1": "La LED noire est votre première led, la première led est le point d'entrée du signal de données.",
|
||||||
"conf_leds_layout_checkp2": "La disposition est toujours par rapport à l'avant de votre TV, pas l'arrière.",
|
"conf_leds_layout_checkp2": "La disposition est toujours celle visible par la face avant de votre TV, jamais par l'arrière.",
|
||||||
"conf_leds_layout_checkp3": "Assurez-vous que la direction est correcte. Les LED grises indiquent les LED numéro 2 et 3 pour aider à visualiser la direction des données",
|
"conf_leds_layout_checkp3": "Assurez-vous que la direction est correcte. Les LED grises indiquent les LED numéro 2 et 3 pour aider à visualiser la direction des données",
|
||||||
"conf_leds_layout_cl_bottom": "Bas",
|
"conf_leds_layout_cl_bottom": "Bas",
|
||||||
"conf_leds_layout_cl_bottomleft": "Bas gauche (Coin)",
|
"conf_leds_layout_cl_bottomleft": "Bas gauche (Coin)",
|
||||||
@ -87,39 +87,38 @@
|
|||||||
"conf_leds_layout_ma_vert": "Vertical",
|
"conf_leds_layout_ma_vert": "Vertical",
|
||||||
"conf_leds_layout_matrix": "Disposition en matrice (Mur LED)",
|
"conf_leds_layout_matrix": "Disposition en matrice (Mur LED)",
|
||||||
"conf_leds_layout_peview": "Prévisualisation de la disposition des LED",
|
"conf_leds_layout_peview": "Prévisualisation de la disposition des LED",
|
||||||
"conf_leds_layout_preview_l1": "C'est votre première LED (position de l'entrée)",
|
"conf_leds_layout_preview_l1": "Ceci est votre première LED (position de l'entrée)",
|
||||||
"conf_leds_layout_preview_l2": "Assistant disponible",
|
"conf_leds_layout_preview_l2": "Ceci vous permet de visualiser le sens de direction des LED (deuxième et troisième LED)",
|
||||||
"conf_leds_layout_preview_ledpower": "Consommation total des LED : $1 A",
|
"conf_leds_layout_preview_ledpower": "Consommation totale des LED : $1 A",
|
||||||
"conf_leds_layout_preview_originCL": "Créé à partir : Disposition classique (Cadre LED)",
|
"conf_leds_layout_preview_originCL": "Créé à partir : Disposition classique (Cadre LED)",
|
||||||
"conf_leds_layout_preview_originMA": "Crée à partir : Disposition en matrice (Mur LED)",
|
"conf_leds_layout_preview_originMA": "Crée à partir : Disposition en matrice (Mur LED)",
|
||||||
"conf_leds_layout_preview_originTEXT": "Crée à partir : Champ texte",
|
"conf_leds_layout_preview_originTEXT": "Crée à partir : Champ texte",
|
||||||
"conf_leds_layout_preview_totalleds": "Nombre total de LED : $1",
|
"conf_leds_layout_preview_totalleds": "Nombre total de LED : $1",
|
||||||
"conf_leds_layout_textf1": "Ce champ montre (par défaut) votre disposition actuellement chargée et sera écrasée si vous en générer une nouvelle avec les options ci-dessus. Optionnel vous pourrez y apporter des modifications dans le futur.",
|
"conf_leds_layout_textf1": "Ce champ montre (par défaut) votre disposition actuellement chargée et sera écrasée si vous en générez une nouvelle avec les options ci-dessus. Optionnel vous pourrez y apporter des modifications dans le futur.",
|
||||||
"conf_leds_nav_label_ledcontroller": "Contrôleur LED",
|
"conf_leds_nav_label_ledcontroller": "Contrôleur LED",
|
||||||
"conf_leds_nav_label_ledlayout": "Disposition des LED",
|
"conf_leds_nav_label_ledlayout": "Disposition des LED",
|
||||||
"conf_leds_optgroup_RPiGPIO": "RPi GPIO",
|
"conf_leds_optgroup_RPiGPIO": "RPi GPIO",
|
||||||
"conf_leds_optgroup_RPiPWM": "RPi PWM",
|
"conf_leds_optgroup_RPiPWM": "RPi PWM",
|
||||||
"conf_leds_optgroup_RPiSPI": "RPi SPI",
|
"conf_leds_optgroup_RPiSPI": "RPi SPI",
|
||||||
"conf_leds_optgroup_debug": "Débug",
|
|
||||||
"conf_leds_optgroup_network": "Réseau",
|
"conf_leds_optgroup_network": "Réseau",
|
||||||
"conf_leds_optgroup_usb": "USB",
|
"conf_leds_optgroup_usb": "USB/Série",
|
||||||
"conf_logging_btn_autoscroll": "Défilement automatique",
|
"conf_logging_btn_autoscroll": "Défilement automatique",
|
||||||
"conf_logging_btn_pbupload": "Télécharger un rapport pour des demandes au support",
|
"conf_logging_btn_pbupload": "Télécharger un rapport pour des demandes au support",
|
||||||
"conf_logging_contpolicy": "Signaler la politique de confidentialité",
|
"conf_logging_contpolicy": "Signaler la politique de confidentialité",
|
||||||
"conf_logging_label_intro": "Zone pour vérifier les messages de log, plus ou moins d'informations seront affichés en fonction du niveau de log réglé.",
|
"conf_logging_label_intro": "Zone pour vérifier les messages du journal, plus ou moins d'informations seront affichées en fonction du niveau de journalisation réglé.",
|
||||||
"conf_logging_lastreports": "Rapports précédents",
|
"conf_logging_lastreports": "Rapports précédents",
|
||||||
"conf_logging_nomessage": "Pas de message de log disponible.",
|
"conf_logging_nomessage": "Pas de message disponible dans le journal.",
|
||||||
"conf_logging_report": "Rapport",
|
"conf_logging_report": "Rapport",
|
||||||
"conf_logging_uplfailed": "Échec du téléchargement ! S'il vous plait, vérifiez votre connection internet !",
|
"conf_logging_uplfailed": "Échec du téléchargement ! Veuillez vérifier votre connexion Internet !",
|
||||||
"conf_logging_uploading": "Préparation des données...",
|
"conf_logging_uploading": "Préparation des données...",
|
||||||
"conf_logging_uplpolicy": "En cliquant sur ce bouton vous acceptez le",
|
"conf_logging_uplpolicy": "En cliquant sur ce bouton vous acceptez le",
|
||||||
"conf_logging_yourlink": "Lier à votre rapport",
|
"conf_logging_yourlink": "Lier à votre rapport",
|
||||||
"conf_network_bobl_intro": "Récepteur pour Boblight",
|
"conf_network_bobl_intro": "Le port pour Boblight",
|
||||||
"conf_network_createToken_btn": "Créer un token",
|
"conf_network_createToken_btn": "Créer un token",
|
||||||
"conf_network_fbs_intro": "Récepteur Google Fltbuffers, utilisé pour la transmission rapide des images",
|
"conf_network_fbs_intro": "Le port pour Google Fltbuffers, utilisé pour la transmission rapide des images",
|
||||||
"conf_network_forw_intro": "Transférer toutes les entrée vers une seconde instance d'Hyperion qui peut être contrôlée par une autre contrôleur LED.",
|
"conf_network_forw_intro": "Transférer toutes les entrées vers une seconde instance d'Hyperion qui peut être contrôlée par un autre contrôleur LED.",
|
||||||
"conf_network_json_intro": "Le JSON-RPC-Port de toutes les instances d'Hyperion utilisé pour de contrôle à distance.",
|
"conf_network_json_intro": "Le port JSON-RPC de toutes les instances d'Hyperion utilisé pour le contrôle à distance.",
|
||||||
"conf_network_proto_intro": "Le PROTO-Port de toutes les intactes d'Hyperion, utilisé les flux d'images (HyperionScreenCap, Kodi Add-on, Android Hyperion Grabber, ...)",
|
"conf_network_proto_intro": "Le port pour PROTO de toutes les instances d'Hyperion, utilisé pour les flux d'images (HyperionScreenCap, Extensions Kodi, Android Hyperion Grabber, ...)",
|
||||||
"conf_network_tok_cidhead": "Description",
|
"conf_network_tok_cidhead": "Description",
|
||||||
"conf_network_tok_comment_title": "Description du token",
|
"conf_network_tok_comment_title": "Description du token",
|
||||||
"conf_network_tok_diaTitle": "Le nouveau token a été créé !",
|
"conf_network_tok_diaTitle": "Le nouveau token a été créé !",
|
||||||
@ -131,31 +130,31 @@
|
|||||||
"dashboard_alert_message_confedit": "Votre configuration d'Hyperion a été modifiée. Redémarrer Hyperion pour l'appliquer.",
|
"dashboard_alert_message_confedit": "Votre configuration d'Hyperion a été modifiée. Redémarrer Hyperion pour l'appliquer.",
|
||||||
"dashboard_alert_message_confedit_t": "Configuration modifiée",
|
"dashboard_alert_message_confedit_t": "Configuration modifiée",
|
||||||
"dashboard_alert_message_confsave_success": "Votre configuration d'Hyperion a correctement été sauvegardée. Vos modifications sont maintenant actives.",
|
"dashboard_alert_message_confsave_success": "Votre configuration d'Hyperion a correctement été sauvegardée. Vos modifications sont maintenant actives.",
|
||||||
"dashboard_alert_message_confsave_success_t": "Configuration sauvegarder",
|
"dashboard_alert_message_confsave_success_t": "Configuration sauvegardée",
|
||||||
"dashboard_alert_message_disabled": "Cette instance est actuellement désactivée ! Pour l'utiliser à nouveau, activez là dans le tableau de bord.",
|
"dashboard_alert_message_disabled": "Cette instance est actuellement désactivée ! Pour l'utiliser à nouveau, activez-la dans le tableau de bord.",
|
||||||
"dashboard_alert_message_disabled_t": "Instance Matériel LED désactivée",
|
"dashboard_alert_message_disabled_t": "Instance matérielle LED désactivée",
|
||||||
"dashboard_componentbox_label_comp": "Composant",
|
"dashboard_componentbox_label_comp": "Composant",
|
||||||
"dashboard_componentbox_label_status": "Statut",
|
"dashboard_componentbox_label_status": "Etat",
|
||||||
"dashboard_componentbox_label_title": "Statut des composants",
|
"dashboard_componentbox_label_title": "Etat des composants",
|
||||||
"dashboard_infobox_label_currenthyp": "Votre version d'Hyperion : ",
|
"dashboard_infobox_label_currenthyp": "Votre version d'Hyperion : ",
|
||||||
"dashboard_infobox_label_disableh": "Désactiver l'instance : $1",
|
"dashboard_infobox_label_disableh": "Désactiver l'instance : $1",
|
||||||
"dashboard_infobox_label_enableh": "Activer Hyperion",
|
"dashboard_infobox_label_enableh": "Activer l'instance : $1",
|
||||||
"dashboard_infobox_label_instance": "Instance",
|
"dashboard_infobox_label_instance": "Instance",
|
||||||
"dashboard_infobox_label_latesthyp": "Dernière version d'Hyperion : ",
|
"dashboard_infobox_label_latesthyp": "Dernière version d'Hyperion : ",
|
||||||
"dashboard_infobox_label_platform": "Platforme",
|
"dashboard_infobox_label_platform": "Plateforme",
|
||||||
"dashboard_infobox_label_ports": "Ports (flat|proto)",
|
"dashboard_infobox_label_ports": "Ports",
|
||||||
"dashboard_infobox_label_smartacc": "Accès Simplifié",
|
"dashboard_infobox_label_smartacc": "Accès simplifié",
|
||||||
"dashboard_infobox_label_statush": "Statut d'Hyperion : ",
|
"dashboard_infobox_label_statush": "Statut d'Hyperion : ",
|
||||||
"dashboard_infobox_label_title": "Information",
|
"dashboard_infobox_label_title": "Information",
|
||||||
"dashboard_infobox_label_watchedversionbranch": "Branche surveillée :",
|
"dashboard_infobox_label_watchedversionbranch": "Branche surveillée :",
|
||||||
"dashboard_infobox_message_updatesuccess": "Vous utilisez la dernière version d'Hyperion.",
|
"dashboard_infobox_message_updatesuccess": "Vous utilisez la dernière version d'Hyperion.",
|
||||||
"dashboard_infobox_message_updatewarning": "Une nouvelle version d'Hyperion est disponible ! ($1)",
|
"dashboard_infobox_message_updatewarning": "Une nouvelle version d'Hyperion est disponible ! ($1)",
|
||||||
"dashboard_label_intro": "Ce dashboard vous donne un vue général de votre installation Hyperion et présente les dernières actualités du blog d'Hyperion.",
|
"dashboard_label_intro": "Ce dashboard vous donne une vue rapide sur l'état d'Hyperion.",
|
||||||
"dashboard_message_do_not_show_again": "Ne plus afficher ce message",
|
"dashboard_message_do_not_show_again": "Ne plus afficher ce message",
|
||||||
"dashboard_newsbox_label_title": "Hyperion - Blog",
|
"dashboard_newsbox_label_title": "Hyperion - Blog",
|
||||||
"dashboard_newsbox_noconn": "Impossible d'accéder au blog d'Hyperion. Votre connexion internet fonctionne-t-elle ?",
|
"dashboard_newsbox_noconn": "Impossible d'accéder au blog d'Hyperion. Votre connexion internet fonctionne-t-elle ?",
|
||||||
"dashboard_newsbox_readmore": "Lire plus",
|
"dashboard_newsbox_readmore": "Lire plus",
|
||||||
"dashboard_newsbox_visitblog": "Visitez le Blog Hyperion",
|
"dashboard_newsbox_visitblog": "Visiter le Blog d'Hyperion",
|
||||||
"edt_append_degree": "°",
|
"edt_append_degree": "°",
|
||||||
"edt_append_hz": "Hz",
|
"edt_append_hz": "Hz",
|
||||||
"edt_append_leds": "Leds",
|
"edt_append_leds": "Leds",
|
||||||
@ -539,7 +538,7 @@
|
|||||||
"general_btn_cancel": "Annuler",
|
"general_btn_cancel": "Annuler",
|
||||||
"general_btn_continue": "Continuer",
|
"general_btn_continue": "Continuer",
|
||||||
"general_btn_delete": "Supprimer",
|
"general_btn_delete": "Supprimer",
|
||||||
"general_btn_iswitch": "Bascule",
|
"general_btn_iswitch": "Basculer",
|
||||||
"general_btn_next": "Suivant",
|
"general_btn_next": "Suivant",
|
||||||
"general_btn_off": "Off",
|
"general_btn_off": "Off",
|
||||||
"general_btn_ok": "OK",
|
"general_btn_ok": "OK",
|
||||||
@ -555,23 +554,23 @@
|
|||||||
"general_col_blue": "bleu",
|
"general_col_blue": "bleu",
|
||||||
"general_col_green": "vert",
|
"general_col_green": "vert",
|
||||||
"general_col_red": "rouge",
|
"general_col_red": "rouge",
|
||||||
"general_comp_BLACKBORDER": "Détection des bordures noir",
|
"general_comp_BLACKBORDER": "Détection des bandes noires",
|
||||||
"general_comp_BOBLIGHTSERVER": "Serveur Boblight",
|
"general_comp_BOBLIGHTSERVER": "Serveur Boblight",
|
||||||
"general_comp_FLATBUFSERVER": "Serveur Flatbuffers",
|
"general_comp_FLATBUFSERVER": "Serveur Flatbuffers",
|
||||||
"general_comp_FORWARDER": "Transfert",
|
"general_comp_FORWARDER": "Transfert",
|
||||||
"general_comp_GRABBER": "Platforme de capture",
|
"general_comp_GRABBER": "Platforme de capture",
|
||||||
"general_comp_LEDDEVICE": "Equipement LED",
|
"general_comp_LEDDEVICE": "Périphérique LED",
|
||||||
"general_comp_PROTOSERVER": "Protocole du Serveur Flatbuffers",
|
"general_comp_PROTOSERVER": "Serveur Protocolbuffers",
|
||||||
"general_comp_SMOOTHING": "Fondu",
|
"general_comp_SMOOTHING": "Fondu",
|
||||||
"general_comp_V4L": "Capture par USB",
|
"general_comp_V4L": "Capture USB",
|
||||||
"general_country_de": "Allemagne",
|
"general_country_de": "Allemagne",
|
||||||
"general_country_es": "Espagne",
|
"general_country_es": "Espagne",
|
||||||
"general_country_fr": "France",
|
"general_country_fr": "France",
|
||||||
"general_country_it": "Italie",
|
"general_country_it": "Italie",
|
||||||
"general_country_nl": "Hollande",
|
"general_country_nl": "Hollande",
|
||||||
"general_country_uk": "Angleterre",
|
"general_country_uk": "Royaume-Uni",
|
||||||
"general_country_us": "États-Unis",
|
"general_country_us": "États-Unis",
|
||||||
"general_speech_cs": "République Tchèque",
|
"general_speech_cs": "Tchèque",
|
||||||
"general_speech_de": "Allemand",
|
"general_speech_de": "Allemand",
|
||||||
"general_speech_en": "Anglais",
|
"general_speech_en": "Anglais",
|
||||||
"general_speech_es": "Espagnol",
|
"general_speech_es": "Espagnol",
|
||||||
@ -583,7 +582,7 @@
|
|||||||
"general_speech_sv": "Suédois",
|
"general_speech_sv": "Suédois",
|
||||||
"general_speech_vi": "Vietnamien",
|
"general_speech_vi": "Vietnamien",
|
||||||
"general_webui_title": "Hyperion - Configuration web",
|
"general_webui_title": "Hyperion - Configuration web",
|
||||||
"general_wiki_moreto": "Plus d'information à propos de \"$1\" sont disponible sur notre",
|
"general_wiki_moreto": "Plus d'informations à propos de \"$1\" sont disponible sur notre Wiki",
|
||||||
"infoDialog_checklist_title": "Checklist !",
|
"infoDialog_checklist_title": "Checklist !",
|
||||||
"infoDialog_effconf_created_text": "L'effet \"$1\" a été correctement créé !",
|
"infoDialog_effconf_created_text": "L'effet \"$1\" a été correctement créé !",
|
||||||
"infoDialog_effconf_deleted_text": "L'effet \"$1\" a été correctement supprimé !",
|
"infoDialog_effconf_deleted_text": "L'effet \"$1\" a été correctement supprimé !",
|
||||||
@ -591,43 +590,43 @@
|
|||||||
"infoDialog_general_success_title": "Succès",
|
"infoDialog_general_success_title": "Succès",
|
||||||
"infoDialog_general_warning_title": "Avertissement",
|
"infoDialog_general_warning_title": "Avertissement",
|
||||||
"infoDialog_import_comperror_text": "Malheureusement votre navigateur ne supporte pas l'importation. Essayez à nouveau avec un autre navigateur.",
|
"infoDialog_import_comperror_text": "Malheureusement votre navigateur ne supporte pas l'importation. Essayez à nouveau avec un autre navigateur.",
|
||||||
"infoDialog_import_confirm_text": "Êtes-vous sur de vouloir importer \"$1\" ? Cette action ne pourras pas être annulée !",
|
"infoDialog_import_confirm_text": "Êtes-vous sur de vouloir importer \"$1\" ? Cette action ne pourra pas être annulée !",
|
||||||
"infoDialog_import_confirm_title": "Confirmation d'importation",
|
"infoDialog_import_confirm_title": "Confirmation d'importation",
|
||||||
"infoDialog_import_hyperror_text": "Le fichier de configuration \"$1\" ne peut pas être importé. Il n'est pas compatible avec Hyperion 2.0 ou ",
|
"infoDialog_import_hyperror_text": "Le fichier de configuration \"$1\" ne peut pas être importé. Il n'est pas compatible avec Hyperion 2.0 ou supérieur !",
|
||||||
"infoDialog_import_jsonerror_text": "Le fichier de configuration sélectionné \"$1\" n'est pas un fichier json ou est corrompu. Message d'erreur : ($2)",
|
"infoDialog_import_jsonerror_text": "Le fichier de configuration sélectionné \"$1\" n'est pas un fichier .json ou est corrompu. Message d'erreur : ($2)",
|
||||||
"infoDialog_wizrgb_text": "L'ordre des octets RVB est déjà correctement défini.",
|
"infoDialog_wizrgb_text": "L'ordre des octets RVB est déjà correctement défini.",
|
||||||
"infoDialog_writeconf_error_text": "Echec de sauvegarde de votre configuration.",
|
"infoDialog_writeconf_error_text": "Echec de sauvegarde de votre configuration.",
|
||||||
"infoDialog_writeimage_error_text": "Le fichier sélectionné \"$1\" n'est pas une image ou est corrompu ! sélectionnez une autre image.",
|
"infoDialog_writeimage_error_text": "Le fichier sélectionné \"$1\" n'est pas une image ou est corrompu ! Veuillez sélectionner une autre image.",
|
||||||
"info_404": "La page demandée n'est pas disponible !",
|
"info_404": "La page demandée n'est pas disponible !",
|
||||||
"info_conlost_label_autorecon": "Nous nous reconnecterons dès que Hyperion sera disponible.",
|
"info_conlost_label_autorecon": "Nous nous reconnecterons dès que Hyperion sera disponible.",
|
||||||
"info_conlost_label_autorefresh": "Cette page sera automatiquement rafraîchie.",
|
"info_conlost_label_autorefresh": "Cette page sera automatiquement rafraîchie.",
|
||||||
"info_conlost_label_reason": "Raisons possible : ",
|
"info_conlost_label_reason": "Raisons possibles : ",
|
||||||
"info_conlost_label_reason1": "- Mauvaise connexion WLAN",
|
"info_conlost_label_reason1": "- Mauvaise connexion Wi-Fi",
|
||||||
"info_conlost_label_reason2": "- Vous avez effectué une mise à jour",
|
"info_conlost_label_reason2": "- Vous effectuez une mise à jour",
|
||||||
"info_conlost_label_reason3": "- Hyperion ne fonctionne pas",
|
"info_conlost_label_reason3": "- Hyperion n'est pas démarré",
|
||||||
"info_conlost_label_reload": "Arrêt de la reconnection automatique - dépassement de limite, rafraîchissez la page ou cliquez ici.",
|
"info_conlost_label_reload": "Arrêt de la reconnexion automatique - dépassement de limite, rafraîchissez la page ou cliquez ici.",
|
||||||
"info_conlost_label_title": "Connexion au service Hyperion perdue !",
|
"info_conlost_label_title": "Connexion au service Hyperion perdue !",
|
||||||
"info_restart_contus": "Si vous êtes ici pour plus de 20 secondes et vous ne savez pas pourquoi, ouvrez un nouveau sujet dans le forum du support svp.",
|
"info_restart_contus": "Si vous êtes ici depuis plus de 20 secondes et vous ne savez pas pourquoi, ouvrez un nouveau sujet dans le forum du support SVP...",
|
||||||
"info_restart_contusa": "... détaillant les dernières étapes à franchir. Merci !",
|
"info_restart_contusa": "... détaillant les dernières étapes à franchir. Merci !",
|
||||||
"info_restart_rightback": "Hyperion sera de retour rapidement ! ",
|
"info_restart_rightback": "Hyperion sera de retour rapidement !",
|
||||||
"info_restart_title": "Redémarrage...",
|
"info_restart_title": "Redémarrage en cours...",
|
||||||
"main_ledsim_btn_togglelednumber": "Nombre de LED",
|
"main_ledsim_btn_togglelednumber": "Nombre de LED",
|
||||||
"main_ledsim_btn_toggleleds": "Montrer les LEDs",
|
"main_ledsim_btn_toggleleds": "Montrer les LEDs",
|
||||||
"main_ledsim_btn_togglelivevideo": "Vidéo en temps réel",
|
"main_ledsim_btn_togglelivevideo": "Vidéo temps réel",
|
||||||
"main_ledsim_text": "Visualisation en temps réel des coulours des LED et optionnellement, le flux vidéo actuel issue de l'équipement de capture",
|
"main_ledsim_text": "Visualisation en temps réel des couleurs des LED et optionnellement, le flux vidéo actuel issu du périphérique de capture",
|
||||||
"main_ledsim_title": "Visualisation LED",
|
"main_ledsim_title": "Visualisation LED",
|
||||||
"main_menu_about_token": "À propos d'Hyperion",
|
"main_menu_about_token": "À propos d'Hyperion",
|
||||||
"main_menu_colors_conf_token": "Traitement d'image",
|
"main_menu_colors_conf_token": "Traitement d'image",
|
||||||
"main_menu_configuration_token": "Configuration",
|
"main_menu_configuration_token": "Configuration",
|
||||||
"main_menu_dashboard_token": "Dashboard",
|
"main_menu_dashboard_token": "Tableau de bord",
|
||||||
"main_menu_effect_conf_token": "Effets",
|
"main_menu_effect_conf_token": "Effets",
|
||||||
"main_menu_effectsconfigurator_token": "Configurateur d'Effets",
|
"main_menu_effectsconfigurator_token": "Configurateur d'effets",
|
||||||
"main_menu_general_conf_token": "Général",
|
"main_menu_general_conf_token": "Général",
|
||||||
"main_menu_grabber_conf_token": "Capture Matériel",
|
"main_menu_grabber_conf_token": "Capture matérielle",
|
||||||
"main_menu_input_selection_token": "Sélection de l'entrée",
|
"main_menu_input_selection_token": "Sélection de l'entrée",
|
||||||
"main_menu_leds_conf_token": "Matériel LED",
|
"main_menu_leds_conf_token": "Matériel LED",
|
||||||
"main_menu_logging_token": "Journal",
|
"main_menu_logging_token": "Journal",
|
||||||
"main_menu_network_conf_token": "Services Réseaux",
|
"main_menu_network_conf_token": "Services réseaux",
|
||||||
"main_menu_remotecontrol_token": "Contrôle à distance",
|
"main_menu_remotecontrol_token": "Contrôle à distance",
|
||||||
"main_menu_support_token": "Support",
|
"main_menu_support_token": "Support",
|
||||||
"main_menu_system_token": "Système",
|
"main_menu_system_token": "Système",
|
||||||
@ -653,45 +652,45 @@
|
|||||||
"remote_input_priority": "Priorité",
|
"remote_input_priority": "Priorité",
|
||||||
"remote_input_setsource_btn": "Sélectionner une source",
|
"remote_input_setsource_btn": "Sélectionner une source",
|
||||||
"remote_input_sourceactiv_btn": "Source Active",
|
"remote_input_sourceactiv_btn": "Source Active",
|
||||||
"remote_input_status": "Statut/Action",
|
"remote_input_status": "Etat/Action",
|
||||||
"remote_losthint": "Note : Toutes le modification seront perdus après redémarrage.",
|
"remote_losthint": "Note : Toutes les modifications seront perdues après redémarrage.",
|
||||||
"remote_maptype_intro": "Habituellement, la disposition des LED est responsable de la définition de la zone d'image affichée par les LED, vous pouvez la modifier ici.",
|
"remote_maptype_intro": "Habituellement, la disposition des LED est responsable de la définition de la zone d'image affichée par les LED, vous pouvez la modifier ici.",
|
||||||
"remote_maptype_label": "Type de correspondance",
|
"remote_maptype_label": "Type de correspondance",
|
||||||
"remote_maptype_label_multicolor_mean": "Multicolor",
|
"remote_maptype_label_multicolor_mean": "Multicolore",
|
||||||
"remote_maptype_label_unicolor_mean": "Unicolore",
|
"remote_maptype_label_unicolor_mean": "Unicolore",
|
||||||
"remote_optgroup_syseffets": "Effets fournis",
|
"remote_optgroup_syseffets": "Effets fournis",
|
||||||
"remote_optgroup_usreffets": "Effets utilisateurs",
|
"remote_optgroup_usreffets": "Effets utilisateur",
|
||||||
"remote_videoMode_2D": "2D",
|
"remote_videoMode_2D": "2D",
|
||||||
"remote_videoMode_3DSBS": "3DSBS",
|
"remote_videoMode_3DSBS": "3DSBS",
|
||||||
"remote_videoMode_3DTAB": "3DTAB",
|
"remote_videoMode_3DTAB": "3DTAB",
|
||||||
"remote_videoMode_intro": "Basculez entre les différents modes vidéo pour profiter de films 3D ! Tous les périphériques de capture sont pris en charge. $1",
|
"remote_videoMode_intro": "Basculez entre les différents modes vidéo pour profiter de films 3D ! Tous les périphériques de capture sont pris en charge. $1",
|
||||||
"remote_videoMode_label": "Mode vidéo",
|
"remote_videoMode_label": "Mode vidéo",
|
||||||
"support_label_affinstr1": "Cliquez sur le lien associé à votre pays",
|
"support_label_affinstr1": "Cliquez sur le lien associé à votre pays",
|
||||||
"support_label_affinstr2": "Tous ce que vous acheter nous récompense en petite participation par rapport à votre achat total",
|
"support_label_affinstr2": "Peu importe la quantité achetée, cela nous permet de toucher une petite commission en fonction du montant total",
|
||||||
"support_label_affinstr3": "Vous payez TOUJOURS le même prix, il n'y a pas de différences. Essayer ! ",
|
"support_label_affinstr3": "Vous payez TOUJOURS le même prix, il n'y a pas de différences. Essayez ! ",
|
||||||
"support_label_btctext": "Adresse : ",
|
"support_label_btctext": "Adresse : ",
|
||||||
"support_label_donate": "Donnez ou utiliser nos liens affiliés",
|
"support_label_donate": "Faites un don ou utilisez nos liens d'affiliation",
|
||||||
"support_label_donationpp": "Don : ",
|
"support_label_donationpp": "Don : ",
|
||||||
"support_label_fbtext": "Partagez notre page Facebook et recevez une notification lorsque de nouvelles mises à jour sont publiées.",
|
"support_label_fbtext": "Partagez notre page Facebook et recevez une notification lorsque de nouvelles mises à jour sont publiées.",
|
||||||
"support_label_forumtext": "Vitrines, discussions, aide et plus",
|
"support_label_forumtext": "Vitrines, discussions, aide et plus",
|
||||||
"support_label_forumtitle": "Forum",
|
"support_label_forumtitle": "Forum",
|
||||||
"support_label_ggtext": "Ajouter nous à votre cercle Google+ !",
|
"support_label_ggtext": "Ajouter nous à votre cercle Google+ !",
|
||||||
"support_label_ghtext": "Visitez-nous sur Github",
|
"support_label_ghtext": "Rendez-nous visite sur GitHub",
|
||||||
"support_label_igtext": "Visitez notre Instagram pour votre les dernières photos Hyperion ! ",
|
"support_label_igtext": "Visitez notre Instagram pour votre les dernières images d'Hyperion ! ",
|
||||||
"support_label_intro": "Hyperion est un logiciel gratuit à but non lucratif. Une petite équipe y travaille et c'est pourquoi nous avons besoin de votre soutien constant.",
|
"support_label_intro": "Hyperion est un logiciel gratuit à but non lucratif. Une petite équipe y travaille et c'est pourquoi nous avons besoin de votre soutien constant.",
|
||||||
"support_label_spreadtheword": "Partagez",
|
"support_label_spreadtheword": "Faites passer le message",
|
||||||
"support_label_title": "Support d'Hypersion",
|
"support_label_title": "Support d'Hyperion",
|
||||||
"support_label_twtext": "Partagez et suivez nous sur Twitter, soyez informé des dernière mise à jour d'Hyperion",
|
"support_label_twtext": "Partagez et suivez nous sur Twitter, soyez informé des dernières mises à jour d'Hyperion",
|
||||||
"support_label_webpagetext": "Accueil d'Hyperion",
|
"support_label_webpagetext": "Accueil d'Hyperion",
|
||||||
"support_label_webpagetitle": "Page web",
|
"support_label_webpagetitle": "Page web",
|
||||||
"support_label_webrestitle": "Informations et ressources d'aide",
|
"support_label_webrestitle": "Informations et ressources d'aide",
|
||||||
"support_label_wikitext": "La source de A à Z pour à peu près tout à propos d'Hyperion",
|
"support_label_wikitext": "La source de A à Z pour à peu près tout concernant Hyperion",
|
||||||
"support_label_wikititle": "Wiki",
|
"support_label_wikititle": "Wiki",
|
||||||
"support_label_yttext": "Lassez des images ? Découvrez notre chaîne YouTube !",
|
"support_label_yttext": "Lassé des images ? Découvrez notre chaîne YouTube !",
|
||||||
"update_button_changelog": "Log de modification complet",
|
"update_button_changelog": "Changelog complet",
|
||||||
"update_button_install": "Installation",
|
"update_button_install": "Installation",
|
||||||
"update_error_getting_versions": "Nous avons eu des problèmes pour déterminer la dernière version disponible.",
|
"update_error_getting_versions": "Nous avons eu des problèmes pour déterminer la dernière version disponible.",
|
||||||
"update_label_description": "Description : ",
|
"update_label_description": "Description :",
|
||||||
"update_label_intro": "Présentation de toutes les versions d'Hyperion disponibles. De plus, vous pouvez mettre à jour ou rétrograder votre version d'Hyperion à tout moment. Trié du plus récent au plus ancien",
|
"update_label_intro": "Présentation de toutes les versions d'Hyperion disponibles. De plus, vous pouvez mettre à jour ou rétrograder votre version d'Hyperion à tout moment. Trié du plus récent au plus ancien",
|
||||||
"update_label_type": "Type :",
|
"update_label_type": "Type :",
|
||||||
"update_no_updates_for_branch": "Pas de mise à jour pour le canal sélectionné.",
|
"update_no_updates_for_branch": "Pas de mise à jour pour le canal sélectionné.",
|
||||||
@ -700,8 +699,8 @@
|
|||||||
"wiz_cc_btn_switchpic": "Changer d'image",
|
"wiz_cc_btn_switchpic": "Changer d'image",
|
||||||
"wiz_cc_chooseid": "Donner un nom à ce profil de couleurs.",
|
"wiz_cc_chooseid": "Donner un nom à ce profil de couleurs.",
|
||||||
"wiz_cc_intro1": "Cet assistant vous guidera à travers l'étalonnage de vos LED. Si vous utilisez Kodi, les photos et vidéos d'étalonnage peuvent lui être envoyées directement sans autres actions de votre côté. Sinon, vous devez télécharger ces fichiers vous-même et les afficher lorsque l'assistant aura besoin de vous pour ajuster le paramètre.",
|
"wiz_cc_intro1": "Cet assistant vous guidera à travers l'étalonnage de vos LED. Si vous utilisez Kodi, les photos et vidéos d'étalonnage peuvent lui être envoyées directement sans autres actions de votre côté. Sinon, vous devez télécharger ces fichiers vous-même et les afficher lorsque l'assistant aura besoin de vous pour ajuster le paramètre.",
|
||||||
"wiz_cc_kodicon": "Le server web Kodi trouvé, continuer avec support Kodi",
|
"wiz_cc_kodicon": "Serveur web Kodi trouvé, continuer avec support Kodi.",
|
||||||
"wiz_cc_kodidiscon": "Le serveur web Kodi non trouvé, continuer sans support Kodi",
|
"wiz_cc_kodidiscon": "Serveur web Kodi introuvable, continuer sans support Kodi.",
|
||||||
"wiz_cc_kodidisconlink": "Télécharger les images des liens : ",
|
"wiz_cc_kodidisconlink": "Télécharger les images des liens : ",
|
||||||
"wiz_cc_kodimsg_start": "Test validé - Il est temps de continuer !",
|
"wiz_cc_kodimsg_start": "Test validé - Il est temps de continuer !",
|
||||||
"wiz_cc_kodishould": "Kodi devrait montrer cette image : $1",
|
"wiz_cc_kodishould": "Kodi devrait montrer cette image : $1",
|
||||||
@ -709,25 +708,25 @@
|
|||||||
"wiz_cc_lettvshow": "Afficher sur votre TV cette image : $1",
|
"wiz_cc_lettvshow": "Afficher sur votre TV cette image : $1",
|
||||||
"wiz_cc_lettvshowm": "Vérifier avec ces images : $1",
|
"wiz_cc_lettvshowm": "Vérifier avec ces images : $1",
|
||||||
"wiz_cc_link": "Cliquez moi !",
|
"wiz_cc_link": "Cliquez moi !",
|
||||||
"wiz_cc_morethanone": "Vous avez plusieurs profil, sélectionnez le profil que vous souhaitez configurer.",
|
"wiz_cc_morethanone": "Vous avez plusieurs profils, sélectionnez le profil que vous souhaitez configurer.",
|
||||||
"wiz_cc_testintro": "Il est temps de faire un vrai test",
|
"wiz_cc_testintro": "Il est temps de faire un vrai test",
|
||||||
"wiz_cc_testintrok": "Cliquer sur le bouton ci-dessous pour démarrer un test vidéo.",
|
"wiz_cc_testintrok": "Cliquer sur le bouton ci-dessous pour démarrer un test vidéo.",
|
||||||
"wiz_cc_testintrowok": "Consultez le lien suivant pour télécharger des vidéos de test : ",
|
"wiz_cc_testintrowok": "Consultez le lien suivant pour télécharger des vidéos de test : ",
|
||||||
"wiz_cc_title": "Assistant de calibration de couleur",
|
"wiz_cc_title": "Assistant de calibration des couleurs",
|
||||||
"wiz_guideyou": "Le $1 vous guidera à travers les réglages. Cliquez sur le bouton !",
|
"wiz_guideyou": "Le $1 vous guidera à travers les réglages. Cliquez sur le bouton !",
|
||||||
"wiz_hue_blinkblue": "Laissez ID $1 s'allumer en bleu",
|
"wiz_hue_blinkblue": "Laissez ID $1 s'allumer en bleu",
|
||||||
"wiz_hue_clientkey": "Clé Client :",
|
"wiz_hue_clientkey": "Clé Client :",
|
||||||
"wiz_hue_create_user": "Créer un nouvel utilisateur",
|
"wiz_hue_create_user": "Créer un nouvel utilisateur",
|
||||||
"wiz_hue_desc1": "Il recherche automatiquement un Hue Bridge, au cas où il n'en trouverait pas, vous devez fournir l'adresse IP et appuyer sur le bouton actualiser à droite. Maintenant, vous avez besoin d'un ID utilisateur, si vous n'en avez pas, créez-en un nouveau.",
|
"wiz_hue_desc1": "Il recherche automatiquement un Hue Bridge, au cas où il n'en trouverait pas, vous devez fournir l'adresse IP et appuyer sur le bouton actualiser à droite. Maintenant, vous avez besoin d'un ID utilisateur, si vous n'en avez pas, créez-en un nouveau.",
|
||||||
"wiz_hue_desc2": "Choisissez maintenant les lampes à ajouter. La position attribue la lampe à une position spécifique sur votre \"image\". Les lampes désactivées ne seront pas ajoutées. Pour identifier des lampes individuelles, appuyez sur le bouton à droite.",
|
"wiz_hue_desc2": "Choisissez maintenant les lampes à ajouter. La position attribue la lampe à une position spécifique sur votre \"image\". Les lampes désactivées ne seront pas ajoutées. Pour identifier des lampes individuelles, appuyez sur le bouton à droite.",
|
||||||
"wiz_hue_failure_connection": "Le délais à expiré : Appuyez sur le bouton du Bridge dans les 30 secondes.",
|
"wiz_hue_failure_connection": "Le délai a expiré : Appuyez sur le bouton du Bridge dans les 30 secondes.",
|
||||||
"wiz_hue_failure_ip": "Pas de Bridge trouvé, tapez une IP valide",
|
"wiz_hue_failure_ip": "Pas de Bridge trouvé, tapez une IP valide",
|
||||||
"wiz_hue_failure_user": "Utilisateur inconnu, créez un nouvel utilisateur en cliquant sur le bouton si dessous ou saisissez un identifiant valide et cliquez sur le symbole de rechargement",
|
"wiz_hue_failure_user": "Utilisateur inconnu, créez un nouvel utilisateur en cliquant sur le bouton si dessous ou saisissez un identifiant valide et cliquez sur le symbole de rechargement",
|
||||||
"wiz_hue_intro1": "Cet assistant configure Hyperion pour le système Philips Hue. Les fonctionnalités sont la détection automatique de Hue Bridge, la création d'utilisateurs, réglage de chaque lumière à une position spécifique sur votre image ou sa déactivation et le réglage automatique des paramètres Hyperion ! Donc en bref: il vous suffit de quelques clics et vous avez terminé !",
|
"wiz_hue_intro1": "Cet assistant configure Hyperion pour le système Philips Hue. Les fonctionnalités sont la détection automatique de Hue Bridge, la création d'utilisateurs, réglage de chaque lumière à une position spécifique sur votre image ou sa déactivation et le réglage automatique des paramètres Hyperion ! Donc en bref: il vous suffit de quelques clics et vous avez terminé !",
|
||||||
"wiz_hue_ip": "IP Hue Bridge :",
|
"wiz_hue_ip": "IP Hue Bridge :",
|
||||||
"wiz_hue_noids": "Ce pont Hue n'a pas d'ampoules/bandeau, veuillez les coupler avant avec les applications Hue",
|
"wiz_hue_noids": "Ce pont Hue n'a pas d'ampoules/bandeau, veuillez les coupler avant avec les applications Hue",
|
||||||
"wiz_hue_press_link": "Cliquez sur le bouton sur votre Hue Bridge",
|
"wiz_hue_press_link": "Appuyez sur le bouton de votre pont Philips Hue.",
|
||||||
"wiz_hue_searchb": "Rechercher de Bridge...",
|
"wiz_hue_searchb": "Recherche d'un pont Philips Hue...",
|
||||||
"wiz_hue_title": "Assistant de configuration Philips Hue",
|
"wiz_hue_title": "Assistant de configuration Philips Hue",
|
||||||
"wiz_hue_username": "ID utilisateur : ",
|
"wiz_hue_username": "ID utilisateur : ",
|
||||||
"wiz_identify": "Identifié",
|
"wiz_identify": "Identifié",
|
||||||
@ -735,9 +734,9 @@
|
|||||||
"wiz_ids_disabled": "Désactivé",
|
"wiz_ids_disabled": "Désactivé",
|
||||||
"wiz_ids_entire": "Image entière",
|
"wiz_ids_entire": "Image entière",
|
||||||
"wiz_pos": "Position/État",
|
"wiz_pos": "Position/État",
|
||||||
"wiz_rgb_expl": "Le point coloré change de couleur (rouge, vert) toutes les x secondes, en même temps que vos leds passent à cette couleur. Répondez aux questions en bas pour vérifier/corriger votre ordre d'octets.",
|
"wiz_rgb_expl": "Le point coloré change de couleur (rouge, vert) toutes les x secondes, en même temps que vos LEDs passent à cette couleur. Répondez aux questions en bas pour vérifier/corriger votre ordre d'octets.",
|
||||||
"wiz_rgb_intro1": "Cet assistant vous guidera à travers le processus de recherche de l'ordre des couleurs correct pour vos leds. Cliquez sur continuer pour commencer.",
|
"wiz_rgb_intro1": "Cet assistant vous guidera à travers le processus de recherche de l'ordre des couleurs correct pour vos leds. Cliquez sur continuer pour commencer.",
|
||||||
"wiz_rgb_intro2": "Quand avez-vous besoin de cet assistant? Exemple : vous définissez la couleur rouge, mais vous obtenez le vert ou le bleu. Vous pouvez également l'utiliser pour la première configuration.",
|
"wiz_rgb_intro2": "Quand avez-vous besoin de cet assistant? Exemple : vous définissez la couleur rouge, mais vous obtenez du vert ou du bleu. Vous pouvez également l'utiliser pour la première configuration.",
|
||||||
"wiz_rgb_q": "Quelle couleur affiche votre configuration, lorsque le point coloré ci-dessus s'affiche ...",
|
"wiz_rgb_q": "Quelle couleur affiche votre configuration, lorsque le point coloré ci-dessus s'affiche ...",
|
||||||
"wiz_rgb_qgend": "...vert ?",
|
"wiz_rgb_qgend": "...vert ?",
|
||||||
"wiz_rgb_qrend": "...red ?",
|
"wiz_rgb_qrend": "...red ?",
|
||||||
|
@ -107,6 +107,7 @@
|
|||||||
"conf_leds_layout_preview_totalleds": "Totale LEDs: $1",
|
"conf_leds_layout_preview_totalleds": "Totale LEDs: $1",
|
||||||
"conf_leds_layout_ptl": "Punto in alto a sinistra",
|
"conf_leds_layout_ptl": "Punto in alto a sinistra",
|
||||||
"conf_leds_layout_ptlh": "Orizzontale",
|
"conf_leds_layout_ptlh": "Orizzontale",
|
||||||
|
"conf_leds_layout_ptln": "Tripplepoints",
|
||||||
"conf_leds_layout_ptlv": "Verticale",
|
"conf_leds_layout_ptlv": "Verticale",
|
||||||
"conf_leds_layout_ptr": "Punto in alto a destra",
|
"conf_leds_layout_ptr": "Punto in alto a destra",
|
||||||
"conf_leds_layout_textf1": "Questo campo testo mostra di default il layout attualmente caricato e viene sovrascritto se ne generi uno nuovo con le opzioni sopra. Se vuoi puoi fare ulteriori modifiche.",
|
"conf_leds_layout_textf1": "Questo campo testo mostra di default il layout attualmente caricato e viene sovrascritto se ne generi uno nuovo con le opzioni sopra. Se vuoi puoi fare ulteriori modifiche.",
|
||||||
@ -115,7 +116,6 @@
|
|||||||
"conf_leds_optgroup_RPiGPIO": "RPi GPIO",
|
"conf_leds_optgroup_RPiGPIO": "RPi GPIO",
|
||||||
"conf_leds_optgroup_RPiPWM": "RPi PWM",
|
"conf_leds_optgroup_RPiPWM": "RPi PWM",
|
||||||
"conf_leds_optgroup_RPiSPI": "RPi SPI",
|
"conf_leds_optgroup_RPiSPI": "RPi SPI",
|
||||||
"conf_leds_optgroup_debug": "Debug",
|
|
||||||
"conf_leds_optgroup_network": "Rete",
|
"conf_leds_optgroup_network": "Rete",
|
||||||
"conf_leds_optgroup_usb": "USB/Seriale",
|
"conf_leds_optgroup_usb": "USB/Seriale",
|
||||||
"conf_logging_btn_autoscroll": "Auto scrolling",
|
"conf_logging_btn_autoscroll": "Auto scrolling",
|
||||||
@ -163,14 +163,14 @@
|
|||||||
"dashboard_infobox_label_instance": "Istanza:",
|
"dashboard_infobox_label_instance": "Istanza:",
|
||||||
"dashboard_infobox_label_latesthyp": "L'ultima versione di Hyperion:",
|
"dashboard_infobox_label_latesthyp": "L'ultima versione di Hyperion:",
|
||||||
"dashboard_infobox_label_platform": "Piattaforma:",
|
"dashboard_infobox_label_platform": "Piattaforma:",
|
||||||
"dashboard_infobox_label_ports": "Porte (json|proto):",
|
"dashboard_infobox_label_ports": "Porte",
|
||||||
"dashboard_infobox_label_smartacc": "Accesso Smart",
|
"dashboard_infobox_label_smartacc": "Accesso Smart",
|
||||||
"dashboard_infobox_label_statush": "Status Hyperion:",
|
"dashboard_infobox_label_statush": "Status Hyperion:",
|
||||||
"dashboard_infobox_label_title": "Informazioni",
|
"dashboard_infobox_label_title": "Informazioni",
|
||||||
"dashboard_infobox_label_watchedversionbranch": "Versione del branch controllata:",
|
"dashboard_infobox_label_watchedversionbranch": "Versione del branch controllata:",
|
||||||
"dashboard_infobox_message_updatesuccess": "Stai eseguendo l'ultima versione di Hyperion.",
|
"dashboard_infobox_message_updatesuccess": "Stai eseguendo l'ultima versione di Hyperion.",
|
||||||
"dashboard_infobox_message_updatewarning": "è disponibile una nuova versione di Hyperion ($1)",
|
"dashboard_infobox_message_updatewarning": "è disponibile una nuova versione di Hyperion ($1)",
|
||||||
"dashboard_label_intro": "Questa dashboard fornisce una veloce panoramica sullo status di Hyperion e mostra le ultime news dal Blog di Hyperion.",
|
"dashboard_label_intro": "Questa dashboard fornisce una veloce panoramica sullo status di Hyperion.",
|
||||||
"dashboard_message_default_password": "La password per la WebUI è quella di default. Consigliamo caldamente di cambiarla.",
|
"dashboard_message_default_password": "La password per la WebUI è quella di default. Consigliamo caldamente di cambiarla.",
|
||||||
"dashboard_message_default_password_t": "è impostata la password di default WebUI",
|
"dashboard_message_default_password_t": "è impostata la password di default WebUI",
|
||||||
"dashboard_message_do_not_show_again": "Non mostrare più questo messaggio",
|
"dashboard_message_do_not_show_again": "Non mostrare più questo messaggio",
|
||||||
@ -208,7 +208,7 @@
|
|||||||
"edt_conf_bobls_heading_title": "Srtver Boblight",
|
"edt_conf_bobls_heading_title": "Srtver Boblight",
|
||||||
"edt_conf_color_backlightColored_expl": "Aggiungi del colore alla retroilluminazione",
|
"edt_conf_color_backlightColored_expl": "Aggiungi del colore alla retroilluminazione",
|
||||||
"edt_conf_color_backlightColored_title": "Retroilluminazione colorata",
|
"edt_conf_color_backlightColored_title": "Retroilluminazione colorata",
|
||||||
"edt_conf_color_backlightThreshold_expl": "Quantità minima di luminosità (retroilluminazione). Disabilitata durante effetti, colori e lo stato \"Off\"",
|
"edt_conf_color_backlightThreshold_expl": "La quantità minima di luminosità (retroilluminazione). Disabilitata durante effetti, colori e nello stato \"Off\"",
|
||||||
"edt_conf_color_backlightThreshold_title": "Soglia di retroilluminazione",
|
"edt_conf_color_backlightThreshold_title": "Soglia di retroilluminazione",
|
||||||
"edt_conf_color_black_expl": "Il valore calibrato del nero.",
|
"edt_conf_color_black_expl": "Il valore calibrato del nero.",
|
||||||
"edt_conf_color_black_title": "Nero",
|
"edt_conf_color_black_title": "Nero",
|
||||||
@ -250,7 +250,7 @@
|
|||||||
"edt_conf_effp_disable_itemtitle": "Effetto",
|
"edt_conf_effp_disable_itemtitle": "Effetto",
|
||||||
"edt_conf_effp_disable_title": "Effetti Disabilitati",
|
"edt_conf_effp_disable_title": "Effetti Disabilitati",
|
||||||
"edt_conf_effp_heading_title": "Percorsi Effetti",
|
"edt_conf_effp_heading_title": "Percorsi Effetti",
|
||||||
"edt_conf_effp_paths_expl": "Puoi definire cartelle che contengono effetti aggiuntivi. Il configuratore di effetti salva sempre all'interno della prima cartella.",
|
"edt_conf_effp_paths_expl": "Puoi definire altre cartelle che contengono effetti aggiuntivi. Il configuratore di effetti salva sempre all'interno della prima cartella.",
|
||||||
"edt_conf_effp_paths_itemtitle": "Percorso",
|
"edt_conf_effp_paths_itemtitle": "Percorso",
|
||||||
"edt_conf_effp_paths_title": "Percorso Effetti",
|
"edt_conf_effp_paths_title": "Percorso Effetti",
|
||||||
"edt_conf_enum_NO_CHANGE": "Auto",
|
"edt_conf_enum_NO_CHANGE": "Auto",
|
||||||
@ -260,12 +260,14 @@
|
|||||||
"edt_conf_enum_automatic": "Automatico",
|
"edt_conf_enum_automatic": "Automatico",
|
||||||
"edt_conf_enum_bbclassic": "Classico",
|
"edt_conf_enum_bbclassic": "Classico",
|
||||||
"edt_conf_enum_bbdefault": "Default",
|
"edt_conf_enum_bbdefault": "Default",
|
||||||
|
"edt_conf_enum_bbletterbox": "Letterbox",
|
||||||
"edt_conf_enum_bbosd": "OSD",
|
"edt_conf_enum_bbosd": "OSD",
|
||||||
"edt_conf_enum_bgr": "BGR",
|
"edt_conf_enum_bgr": "BGR",
|
||||||
"edt_conf_enum_bottom_up": "Dal basso verso l'alto",
|
"edt_conf_enum_bottom_up": "Dal basso verso l'alto",
|
||||||
"edt_conf_enum_brg": "BRG",
|
"edt_conf_enum_brg": "BRG",
|
||||||
"edt_conf_enum_color": "Colore",
|
"edt_conf_enum_color": "Colore",
|
||||||
"edt_conf_enum_custom": "Custom",
|
"edt_conf_enum_custom": "Custom",
|
||||||
|
"edt_conf_enum_decay": "Decadimento",
|
||||||
"edt_conf_enum_dl_error": "Errore",
|
"edt_conf_enum_dl_error": "Errore",
|
||||||
"edt_conf_enum_dl_informational": "Informativo",
|
"edt_conf_enum_dl_informational": "Informativo",
|
||||||
"edt_conf_enum_dl_nodebug": "No Debug",
|
"edt_conf_enum_dl_nodebug": "No Debug",
|
||||||
@ -314,7 +316,7 @@
|
|||||||
"edt_conf_fge_duration_ms_title": "Durata",
|
"edt_conf_fge_duration_ms_title": "Durata",
|
||||||
"edt_conf_fge_effect_expl": "Se il tipo scelto è \"Effetto\", seleziona un effetto da usare (sono disponibili anche i tuoi effetti).",
|
"edt_conf_fge_effect_expl": "Se il tipo scelto è \"Effetto\", seleziona un effetto da usare (sono disponibili anche i tuoi effetti).",
|
||||||
"edt_conf_fge_effect_title": "Effetto",
|
"edt_conf_fge_effect_title": "Effetto",
|
||||||
"edt_conf_fge_heading_title": "Effetto di Avvio/Colore",
|
"edt_conf_fge_heading_title": "Effetto/Colore di Avvio",
|
||||||
"edt_conf_fge_type_expl": "Scegli tra colore o effetto",
|
"edt_conf_fge_type_expl": "Scegli tra colore o effetto",
|
||||||
"edt_conf_fge_type_title": "Tipo",
|
"edt_conf_fge_type_title": "Tipo",
|
||||||
"edt_conf_fw_flat_expl": "Una destinazione flatbuffer per riga. Contiene IP:PORTA:(Esempio: 127.0.0.1:19401)",
|
"edt_conf_fw_flat_expl": "Una destinazione flatbuffer per riga. Contiene IP:PORTA:(Esempio: 127.0.0.1:19401)",
|
||||||
@ -365,7 +367,15 @@
|
|||||||
"edt_conf_pbs_timeout_title": "Timeout",
|
"edt_conf_pbs_timeout_title": "Timeout",
|
||||||
"edt_conf_smooth_continuousOutput_expl": "Aggiorna i led anche se non c'è alcun cambiamento nell'immagine.",
|
"edt_conf_smooth_continuousOutput_expl": "Aggiorna i led anche se non c'è alcun cambiamento nell'immagine.",
|
||||||
"edt_conf_smooth_continuousOutput_title": "Output continuo",
|
"edt_conf_smooth_continuousOutput_title": "Output continuo",
|
||||||
|
"edt_conf_smooth_decay_expl": "La velocità del decadimento. 1 è lineare, valori maggiori hanno un effetto più forte.",
|
||||||
|
"edt_conf_smooth_decay_title": "Decay-Power",
|
||||||
|
"edt_conf_smooth_dithering_expl": "Migliora la precisione del colore a velocità di output elevate alternando i colori adiacenti.",
|
||||||
|
"edt_conf_smooth_dithering_title": "Dithering",
|
||||||
"edt_conf_smooth_heading_title": "Sfumatura",
|
"edt_conf_smooth_heading_title": "Sfumatura",
|
||||||
|
"edt_conf_smooth_interpolationRate_expl": "Velocità di calcolo dei regolari frame intermedi",
|
||||||
|
"edt_conf_smooth_interpolationRate_title": "Tasso di interpolazione",
|
||||||
|
"edt_conf_smooth_outputRate_expl": "Velocità di uscita al tuo controller LED.",
|
||||||
|
"edt_conf_smooth_outputRate_title": "Velocità di uscita",
|
||||||
"edt_conf_smooth_time_ms_expl": "Quanto a lungo la sfumatura dovrebbe raggiungere le immagini?",
|
"edt_conf_smooth_time_ms_expl": "Quanto a lungo la sfumatura dovrebbe raggiungere le immagini?",
|
||||||
"edt_conf_smooth_time_ms_title": "Durata",
|
"edt_conf_smooth_time_ms_title": "Durata",
|
||||||
"edt_conf_smooth_type_expl": "Tipo di sfumatura.",
|
"edt_conf_smooth_type_expl": "Tipo di sfumatura.",
|
||||||
@ -415,7 +425,7 @@
|
|||||||
"edt_conf_v4l2_standard_title": "Standard video",
|
"edt_conf_v4l2_standard_title": "Standard video",
|
||||||
"edt_conf_webc_crtPath_expl": "Percorso del file del certificato (in formato PEM)",
|
"edt_conf_webc_crtPath_expl": "Percorso del file del certificato (in formato PEM)",
|
||||||
"edt_conf_webc_crtPath_title": "Percorso del certificato",
|
"edt_conf_webc_crtPath_title": "Percorso del certificato",
|
||||||
"edt_conf_webc_docroot_expl": "Percorso root delle interfacce web locali (solo per sviluppatori webui)",
|
"edt_conf_webc_docroot_expl": "Percorso root dell'interfaccia web locali (solo per sviluppatori webui)",
|
||||||
"edt_conf_webc_docroot_title": "Documento Root",
|
"edt_conf_webc_docroot_title": "Documento Root",
|
||||||
"edt_conf_webc_heading_title": "Configurazione Web",
|
"edt_conf_webc_heading_title": "Configurazione Web",
|
||||||
"edt_conf_webc_keyPassPhrase_expl": "Opzionale: La chiave può essere protetta con una password",
|
"edt_conf_webc_keyPassPhrase_expl": "Opzionale: La chiave può essere protetta con una password",
|
||||||
@ -445,18 +455,22 @@
|
|||||||
"edt_dev_spec_brightnessMax_title": "Luminosità massima",
|
"edt_dev_spec_brightnessMax_title": "Luminosità massima",
|
||||||
"edt_dev_spec_brightnessMin_title": "Luminosità minima",
|
"edt_dev_spec_brightnessMin_title": "Luminosità minima",
|
||||||
"edt_dev_spec_brightnessThreshold_title": "Luminosità minima per rilevamento segnale",
|
"edt_dev_spec_brightnessThreshold_title": "Luminosità minima per rilevamento segnale",
|
||||||
|
"edt_dev_spec_chanperfixture_title": "Canali per dispositivo",
|
||||||
"edt_dev_spec_cid_title": "CID",
|
"edt_dev_spec_cid_title": "CID",
|
||||||
"edt_dev_spec_clientKey_title": "Clientkey",
|
"edt_dev_spec_clientKey_title": "Clientkey",
|
||||||
"edt_dev_spec_colorComponent_title": "Componente colore",
|
"edt_dev_spec_colorComponent_title": "Componente colore",
|
||||||
"edt_dev_spec_debugLevel_title": "Livello Debug Connessione Streamer",
|
"edt_dev_spec_debugLevel_title": "Livello Debug",
|
||||||
"edt_dev_spec_debugStreamer_title": "Debug Streamer",
|
"edt_dev_spec_debugStreamer_title": "Debug Streamer",
|
||||||
"edt_dev_spec_delayAfterConnect_title": "Ritardo dopo la connessione",
|
"edt_dev_spec_delayAfterConnect_title": "Ritardo dopo la connessione",
|
||||||
"edt_dev_spec_dithering_title": "Dithering",
|
"edt_dev_spec_dithering_title": "Dithering",
|
||||||
"edt_dev_spec_dmaNumber_title": "Canale DMA",
|
"edt_dev_spec_dmaNumber_title": "Canale DMA",
|
||||||
"edt_dev_spec_gamma_title": "Gamma",
|
"edt_dev_spec_gamma_title": "Gamma",
|
||||||
|
"edt_dev_spec_globalBrightnessControlMaxLevel_title": "Corrente Massima",
|
||||||
|
"edt_dev_spec_globalBrightnessControlThreshold_title": "Soglia di corrente adattiva",
|
||||||
"edt_dev_spec_gpioBcm_title": "Pin GPIO",
|
"edt_dev_spec_gpioBcm_title": "Pin GPIO",
|
||||||
"edt_dev_spec_gpioMap_title": "Mappatura GPIO",
|
"edt_dev_spec_gpioMap_title": "Mappatura GPIO",
|
||||||
"edt_dev_spec_gpioNumber_title": "Numero GPIO",
|
"edt_dev_spec_gpioNumber_title": "Numero GPIO",
|
||||||
|
"edt_dev_spec_groupId_title": "ID Gruppo",
|
||||||
"edt_dev_spec_header_title": "Impostazioni specifiche",
|
"edt_dev_spec_header_title": "Impostazioni specifiche",
|
||||||
"edt_dev_spec_interpolation_title": "Interpolazione",
|
"edt_dev_spec_interpolation_title": "Interpolazione",
|
||||||
"edt_dev_spec_intervall_title": "Intervallo",
|
"edt_dev_spec_intervall_title": "Intervallo",
|
||||||
@ -479,6 +493,7 @@
|
|||||||
"edt_dev_spec_order_left_right_title": "2.",
|
"edt_dev_spec_order_left_right_title": "2.",
|
||||||
"edt_dev_spec_order_top_down_title": "1.",
|
"edt_dev_spec_order_top_down_title": "1.",
|
||||||
"edt_dev_spec_outputPath_title": "Percorso di output",
|
"edt_dev_spec_outputPath_title": "Percorso di output",
|
||||||
|
"edt_dev_spec_panel_start_position": "Pannello d'inizio [0-max panels]",
|
||||||
"edt_dev_spec_panelorganisation_title": "Sequenza numerazione pannelli",
|
"edt_dev_spec_panelorganisation_title": "Sequenza numerazione pannelli",
|
||||||
"edt_dev_spec_pid_title": "PID",
|
"edt_dev_spec_pid_title": "PID",
|
||||||
"edt_dev_spec_port_title": "Porta",
|
"edt_dev_spec_port_title": "Porta",
|
||||||
@ -602,7 +617,7 @@
|
|||||||
"edt_eff_smooth_time_ms": "Durata sfumatura",
|
"edt_eff_smooth_time_ms": "Durata sfumatura",
|
||||||
"edt_eff_smooth_updateFrequency": "Frequenza di aggiornamento sfumatura",
|
"edt_eff_smooth_updateFrequency": "Frequenza di aggiornamento sfumatura",
|
||||||
"edt_eff_snake_header": "Snake",
|
"edt_eff_snake_header": "Snake",
|
||||||
"edt_eff_snake_header_desc": "Cerchi qualcosa da mangiare?",
|
"edt_eff_snake_header_desc": "C'è qualcosa da mangiare?",
|
||||||
"edt_eff_sparks_header": "Scintille",
|
"edt_eff_sparks_header": "Scintille",
|
||||||
"edt_eff_sparks_header_desc": "Scintille brillanti, scegli tra colore statico o casuale. Puoi anche regolare luminosità, saturazione e velocità.",
|
"edt_eff_sparks_header_desc": "Scintille brillanti, scegli tra colore statico o casuale. Puoi anche regolare luminosità, saturazione e velocità.",
|
||||||
"edt_eff_speed": "Velocità",
|
"edt_eff_speed": "Velocità",
|
||||||
@ -726,7 +741,7 @@
|
|||||||
"general_speech_sv": "Svedese",
|
"general_speech_sv": "Svedese",
|
||||||
"general_speech_tr": "Turco",
|
"general_speech_tr": "Turco",
|
||||||
"general_speech_vi": "Vietnamita",
|
"general_speech_vi": "Vietnamita",
|
||||||
"general_speech_zh-CN": "Cinese (semplificanto)",
|
"general_speech_zh-CN": "Cinese (semplificato)",
|
||||||
"general_webui_title": "Hyperion - Configurazione Web",
|
"general_webui_title": "Hyperion - Configurazione Web",
|
||||||
"general_wiki_moreto": "Più informazioni su '$1' sulla nostra Wiki",
|
"general_wiki_moreto": "Più informazioni su '$1' sulla nostra Wiki",
|
||||||
"infoDialog_checklist_title": "Lista!",
|
"infoDialog_checklist_title": "Lista!",
|
||||||
@ -753,7 +768,7 @@
|
|||||||
"info_conlost_label_reload": "Auto-riconnessione interrotta - limite superato, ricarica la pagina o cliccami.",
|
"info_conlost_label_reload": "Auto-riconnessione interrotta - limite superato, ricarica la pagina o cliccami.",
|
||||||
"info_conlost_label_title": "Connessione al servizio Hyperion persa!",
|
"info_conlost_label_title": "Connessione al servizio Hyperion persa!",
|
||||||
"info_restart_contus": "Se sei ancora qui dopo 20 secondi e non hai idea del perché, apri un nuovo topic sul nostro forum di supporto...",
|
"info_restart_contus": "Se sei ancora qui dopo 20 secondi e non hai idea del perché, apri un nuovo topic sul nostro forum di supporto...",
|
||||||
"info_restart_contusa": "...dettagliando gli ultimi passi da eseguire. Ti ringraziamo!",
|
"info_restart_contusa": "...co gli ultimi passi. Ti ringraziamo!",
|
||||||
"info_restart_rightback": "Hyperion ritornerà a breve!",
|
"info_restart_rightback": "Hyperion ritornerà a breve!",
|
||||||
"info_restart_title": "Riavvio...",
|
"info_restart_title": "Riavvio...",
|
||||||
"main_ledsim_btn_togglelednumber": "Numeri LED",
|
"main_ledsim_btn_togglelednumber": "Numeri LED",
|
||||||
@ -806,6 +821,8 @@
|
|||||||
"remote_maptype_label_multicolor_mean": "Multicolore",
|
"remote_maptype_label_multicolor_mean": "Multicolore",
|
||||||
"remote_maptype_label_unicolor_mean": "Monocromatico",
|
"remote_maptype_label_unicolor_mean": "Monocromatico",
|
||||||
"remote_optgroup_syseffets": "Effetti in dotazione",
|
"remote_optgroup_syseffets": "Effetti in dotazione",
|
||||||
|
"remote_optgroup_templates_custom": "Template Utente",
|
||||||
|
"remote_optgroup_templates_system": "Template di Sistema",
|
||||||
"remote_optgroup_usreffets": "Effetti Utente",
|
"remote_optgroup_usreffets": "Effetti Utente",
|
||||||
"remote_videoMode_2D": "2D",
|
"remote_videoMode_2D": "2D",
|
||||||
"remote_videoMode_3DSBS": "3DSBS",
|
"remote_videoMode_3DSBS": "3DSBS",
|
||||||
@ -842,6 +859,9 @@
|
|||||||
"update_label_type": "Tipo:",
|
"update_label_type": "Tipo:",
|
||||||
"update_no_updates_for_branch": "Nessun aggiornamento per la versione del canale selezionata",
|
"update_no_updates_for_branch": "Nessun aggiornamento per la versione del canale selezionata",
|
||||||
"update_versreminder": "La tua versione: $1",
|
"update_versreminder": "La tua versione: $1",
|
||||||
|
"wiz_atmoorb_desc2": "Ora scegli quali sfere aggiungere. La posizione assegna la lampada a una posizione specifica sulla tua 'immagine'. Le lampade disabilitate non verranno aggiunte. Per identificare le singole lampade premere il pulsante a destra.",
|
||||||
|
"wiz_atmoorb_intro1": "Questa procedura guidata configura Hyperion per AtmoOrbs. Le caratteristiche sono il rilevamento automatico AtmoOrb, che imposta ogni luce in una posizione specifica sulla tua immagine o disabilitala e ottimizza automaticamente le impostazioni di Hyperion! Quindi, in breve: tutto ciò di cui hai bisogno sono alcuni clic e il gioco è fatto!",
|
||||||
|
"wiz_atmoorb_title": "AtmoOrb Wizard",
|
||||||
"wiz_cc_adjustgamma": "Gamma: regola i livelli di gamma di ogni canale finché non percepisci la stessa quantità di colore su ogni canale. Suggerimento: Neutro è 1.0! Per esempio, se il tuo Grigio è un po' rossastro significa che bisogna aumentare la gamma del rosso per ridurre la quantità di rosso (più gamma, meno quantità di colore).",
|
"wiz_cc_adjustgamma": "Gamma: regola i livelli di gamma di ogni canale finché non percepisci la stessa quantità di colore su ogni canale. Suggerimento: Neutro è 1.0! Per esempio, se il tuo Grigio è un po' rossastro significa che bisogna aumentare la gamma del rosso per ridurre la quantità di rosso (più gamma, meno quantità di colore).",
|
||||||
"wiz_cc_adjustit": "Regola \"$1\", finché non sei soddisfatto. Avviso: Il più ti allontani dal valore di default più lo spettro dei colori sarà limitato (anche per i colori di mezzo). Il risultato potrebbe variare a seconda della TV / dello spettro dei colori dei LED.",
|
"wiz_cc_adjustit": "Regola \"$1\", finché non sei soddisfatto. Avviso: Il più ti allontani dal valore di default più lo spettro dei colori sarà limitato (anche per i colori di mezzo). Il risultato potrebbe variare a seconda della TV / dello spettro dei colori dei LED.",
|
||||||
"wiz_cc_backlight": "In aggiunta puoi definire una retroilluminazione per sistemare \"colori scorretti\" in aree praticamente buie o per non dover cambiare tra colore e spento durante la visione. In aggiunta puoi difinire se dovrebbe esserci qualche colore o solo bianco. Questo è disabilitato durante gli stati \"Off\", \"Colore\" e \"Effetto\".",
|
"wiz_cc_backlight": "In aggiunta puoi definire una retroilluminazione per sistemare \"colori scorretti\" in aree praticamente buie o per non dover cambiare tra colore e spento durante la visione. In aggiunta puoi difinire se dovrebbe esserci qualche colore o solo bianco. Questo è disabilitato durante gli stati \"Off\", \"Colore\" e \"Effetto\".",
|
||||||
@ -849,12 +869,12 @@
|
|||||||
"wiz_cc_btn_switchpic": "Cambia immagine",
|
"wiz_cc_btn_switchpic": "Cambia immagine",
|
||||||
"wiz_cc_chooseid": "Definisci un nome per questo profilo colore.",
|
"wiz_cc_chooseid": "Definisci un nome per questo profilo colore.",
|
||||||
"wiz_cc_intro1": "Questo assistente ti guiderà attraverso la calibrazione dei tuoi led. Se stai usando Kodi, le immagini e i video di calibrazione possono essere mandati direttamente a Kodi senza altro lavoro da parte tua. Altrimenti devi scaricare questi file e applicarli tu stesso quando l'assistente necessita di regolare le impostazioni.",
|
"wiz_cc_intro1": "Questo assistente ti guiderà attraverso la calibrazione dei tuoi led. Se stai usando Kodi, le immagini e i video di calibrazione possono essere mandati direttamente a Kodi senza altro lavoro da parte tua. Altrimenti devi scaricare questi file e applicarli tu stesso quando l'assistente necessita di regolare le impostazioni.",
|
||||||
"wiz_cc_kodicon": "Webserver Kodi trovato, procedi con il supporto Kodi.",
|
"wiz_cc_kodicon": "Kodi trovato, procedi con il supporto Kodi.",
|
||||||
"wiz_cc_kodidiscon": "Webserver Kodi non trovato, procedi senza il supporto Kodi.",
|
"wiz_cc_kodidiscon": "Kodi non trovato, procedi senza il supporto Kodi.",
|
||||||
"wiz_cc_kodidisconlink": "Link di download delle immagini:",
|
"wiz_cc_kodidisconlink": "Link di download delle immagini:",
|
||||||
"wiz_cc_kodimsg_start": "Il test ha avuto successo - tempo di precedere!",
|
"wiz_cc_kodimsg_start": "Il test ha avuto successo - tempo di precedere!",
|
||||||
"wiz_cc_kodishould": "Kodi dovrebbe mostrare la seguente immagine: $1",
|
"wiz_cc_kodishould": "Kodi dovrebbe mostrare la seguente immagine: $1",
|
||||||
"wiz_cc_kwebs": "Webserver Kodi (IP:Porta)",
|
"wiz_cc_kwebs": "Webserver Kodi (Hostname o IP)",
|
||||||
"wiz_cc_lettvshow": "Consenti alla tua TV di mostrare la seguente immagine: $1",
|
"wiz_cc_lettvshow": "Consenti alla tua TV di mostrare la seguente immagine: $1",
|
||||||
"wiz_cc_lettvshowm": "Controlla questo con le seguenti immagini: $1",
|
"wiz_cc_lettvshowm": "Controlla questo con le seguenti immagini: $1",
|
||||||
"wiz_cc_link": "Cliccami!",
|
"wiz_cc_link": "Cliccami!",
|
||||||
@ -864,6 +884,10 @@
|
|||||||
"wiz_cc_testintrok": "Premi il bottone qui sotto per iniziare un test video.",
|
"wiz_cc_testintrok": "Premi il bottone qui sotto per iniziare un test video.",
|
||||||
"wiz_cc_testintrowok": "Guarda il link di seguito per il download dei video di test",
|
"wiz_cc_testintrowok": "Guarda il link di seguito per il download dei video di test",
|
||||||
"wiz_cc_title": "Assistente calibrazione colore",
|
"wiz_cc_title": "Assistente calibrazione colore",
|
||||||
|
"wiz_cololight_desc2": "Ora scegli quali Cololights dovrebbero essere aggiunti. Per identificare le singole luci, premere il pulsante a destra.",
|
||||||
|
"wiz_cololight_intro1": "Questa procedura guidata configura Hyperion per il sistema Cololight. Le caratteristiche sono il rilevamento automatico di Cololight e la regolazione automatica delle impostazioni di Hyperion! In breve: bastano pochi clic e il gioco è fatto!<br />Nota: in caso di una Strip Cololight, potrebbe essere necessario correggere manualmente il numero e il layout dei LED",
|
||||||
|
"wiz_cololight_noprops": "Impossibile ottenere le proprietà del dispositivo: definire manualmente il numero dei LED",
|
||||||
|
"wiz_cololight_title": "Cololight Wizard",
|
||||||
"wiz_guideyou": "$1 ti guiderà tra le impostazioni. Ti basta premere il bottone!",
|
"wiz_guideyou": "$1 ti guiderà tra le impostazioni. Ti basta premere il bottone!",
|
||||||
"wiz_hue_blinkblue": "ID $1 si illumina di blu",
|
"wiz_hue_blinkblue": "ID $1 si illumina di blu",
|
||||||
"wiz_hue_clientkey": "Clientkey:",
|
"wiz_hue_clientkey": "Clientkey:",
|
||||||
@ -872,14 +896,17 @@
|
|||||||
"wiz_hue_desc2": "Scegli quale lampade devono essere aggiunte. La posizione assegna la lampada a una specifica posizione nella tua \"immagine\". Lampade disabilitate non saranno aggiunte. Per identificare una singola lampada premi il bottone sulla destra.",
|
"wiz_hue_desc2": "Scegli quale lampade devono essere aggiunte. La posizione assegna la lampada a una specifica posizione nella tua \"immagine\". Lampade disabilitate non saranno aggiunte. Per identificare una singola lampada premi il bottone sulla destra.",
|
||||||
"wiz_hue_e_clientkey_needed": "è necessaria un clientkey che corrisponda al nome utente per usare le entertainment API. Inseriscine uno esistente o usa il pulsante sotto per crearne una nuova.",
|
"wiz_hue_e_clientkey_needed": "è necessaria un clientkey che corrisponda al nome utente per usare le entertainment API. Inseriscine uno esistente o usa il pulsante sotto per crearne una nuova.",
|
||||||
"wiz_hue_e_create_user": "Crea un nuovo Utente e clientkey",
|
"wiz_hue_e_create_user": "Crea un nuovo Utente e clientkey",
|
||||||
|
"wiz_hue_e_desc1": "Cerca automaticamente un Bridge Hue, nel caso non riesca a trovarne uno è necessario fornire l'indirizzo IP e premere il pulsante di ricarica a destra. Ora hai bisogno di un ID utente e della chiave client, se non li hai entrambi, creane uno nuovo.",
|
||||||
"wiz_hue_e_desc2": "Scegli la tua area di intrattenimento, che contiene tutte le tue luci per l'uso con Hyperion.",
|
"wiz_hue_e_desc2": "Scegli la tua area di intrattenimento, che contiene tutte le tue luci per l'uso con Hyperion.",
|
||||||
"wiz_hue_e_desc3": "Ora puoi scegliere in quale posizione le rispettive lampade dovrebbero essere \"nell'immagine\". Una preselezione è stata fatta basata sulle posizioni delle luci configurate nell'area di intrattenimento. Questo è solo un consiglio e può essere personalizzato a piacimento. Puoi selezionarli cliccando con il tasto destro per migliorare la selezione.",
|
"wiz_hue_e_desc3": "Ora puoi scegliere in quale posizione le rispettive lampade dovrebbero essere \"nell'immagine\". Una preselezione è stata fatta basata sulle posizioni delle luci configurate nell'area di intrattenimento. Questo è solo un consiglio e può essere personalizzato a piacimento. Puoi selezionarli cliccando con il tasto destro per migliorare la selezione.",
|
||||||
"wiz_hue_e_intro1": "Questi assistenti Configurano Hyperion per il noto Philips Hue Entertainment system. Le funzionalità sono: rilevamento automatico Hue Bridge, creazione user e clientkey, selezione area intrattenimento, assegnazione gruppo di luci a una specifica posizione nella tua immagine, regolazione automatica delle impostazioni di Hyperion! In breve: tutto ciò che ti serve sono un paio di click e sei pronto!",
|
"wiz_hue_e_intro1": "Questi assistenti Configurano Hyperion per il noto Philips Hue Entertainment system. Le funzionalità sono: rilevamento automatico Hue Bridge, creazione user e clientkey, selezione area intrattenimento, assegnazione gruppo di luci a una specifica posizione nella tua immagine, regolazione automatica delle impostazioni di Hyperion! In breve: tutto ciò che ti serve sono un paio di click e sei pronto!",
|
||||||
"wiz_hue_e_noapisupport": "L'Assistente ha disabilitato il supporto alle entertainment API e continuerà in modalità classica.",
|
"wiz_hue_e_noapisupport": "L'Assistente ha disabilitato il supporto alle entertainment API e continuerà in modalità classica.",
|
||||||
"wiz_hue_e_noapisupport_hint": "L'opzione \"<b>Usa Hue Entertainment API</b>\" è stata deselezionata.",
|
"wiz_hue_e_noapisupport_hint": "L'opzione \"<b>Usa Hue Entertainment API</b>\" è stata deselezionata.",
|
||||||
"wiz_hue_e_noegrpids": "Nessun area di intrattenimento definita in questo Hue Bridge",
|
"wiz_hue_e_noegrpids": "Nessun area di intrattenimento definita in questo Hue Bridge",
|
||||||
|
"wiz_hue_e_nogrpids": "Questo Bridge Hue non ha un gruppo definito, per favore creane uno prima con l'app Hue",
|
||||||
"wiz_hue_e_title": "Assistente Philips Hue Entertainment",
|
"wiz_hue_e_title": "Assistente Philips Hue Entertainment",
|
||||||
"wiz_hue_e_use_groupid": "Usa group ID $1",
|
"wiz_hue_e_use_group": "Usa gruppo",
|
||||||
|
"wiz_hue_e_use_groupid": "Usa ID gruppo $1",
|
||||||
"wiz_hue_failure_connection": "Timeout: premi il bottone del bridge entro il periodo di 30 secondi",
|
"wiz_hue_failure_connection": "Timeout: premi il bottone del bridge entro il periodo di 30 secondi",
|
||||||
"wiz_hue_failure_ip": "Nessun Bridge trovato, digita un IP valido",
|
"wiz_hue_failure_ip": "Nessun Bridge trovato, digita un IP valido",
|
||||||
"wiz_hue_failure_user": "Utente non trovato, creane uno nuovo qui sotto o inserisci un id utente valido e premi il simbolo di \"ricarica\".",
|
"wiz_hue_failure_user": "Utente non trovato, creane uno nuovo qui sotto o inserisci un id utente valido e premi il simbolo di \"ricarica\".",
|
||||||
@ -894,6 +921,7 @@
|
|||||||
"wiz_identify_light": "Identifica $1",
|
"wiz_identify_light": "Identifica $1",
|
||||||
"wiz_ids_disabled": "Disattivato",
|
"wiz_ids_disabled": "Disattivato",
|
||||||
"wiz_ids_entire": "Immagine intera",
|
"wiz_ids_entire": "Immagine intera",
|
||||||
|
"wiz_noLights": "Nessun $1 trovato! Per favore connetti le luci alla rete o configurale manualmente",
|
||||||
"wiz_pos": "Posizione/Stato",
|
"wiz_pos": "Posizione/Stato",
|
||||||
"wiz_rgb_expl": "Il puntino colorato cambia colore (rosso, verde) ogni x secondi, nello stesso momento in cui anche i led cambiano colore. Rispondi alle domande qui sotto per controllare/correggere l'ordine dei byte.",
|
"wiz_rgb_expl": "Il puntino colorato cambia colore (rosso, verde) ogni x secondi, nello stesso momento in cui anche i led cambiano colore. Rispondi alle domande qui sotto per controllare/correggere l'ordine dei byte.",
|
||||||
"wiz_rgb_intro1": "L'assistente ti guiderà nel processo di ricerca del corretto ordine dei colori per i tuoi leds. Clicca su continua per iniziare.",
|
"wiz_rgb_intro1": "L'assistente ti guiderà nel processo di ricerca del corretto ordine dei colori per i tuoi leds. Clicca su continua per iniziare.",
|
||||||
|
85
assets/webconfig/i18n/nb.json
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
{
|
||||||
|
"conf_general_impexp_expbtn": "Eksporter",
|
||||||
|
"conf_general_impexp_impbtn": "Importer",
|
||||||
|
"conf_general_label_title": "Generelle innstillinger",
|
||||||
|
"conf_helptable_option": "Valg",
|
||||||
|
"conf_leds_layout_advanced": "Avanserte innstillinger",
|
||||||
|
"conf_leds_layout_cl_bottom": "Bunn",
|
||||||
|
"conf_leds_layout_cl_left": "Venstre",
|
||||||
|
"conf_leds_layout_cl_right": "Høyre",
|
||||||
|
"conf_leds_layout_cl_top": "Topp",
|
||||||
|
"conf_leds_nav_label_ledlayout": "LED-oppsett",
|
||||||
|
"conf_leds_optgroup_network": "Nettverk",
|
||||||
|
"dashboard_alert_message_confedit": "Dine Hyperion konfigureringer er blitt endre. For å bruke de, restart Hyperion",
|
||||||
|
"dashboard_alert_message_confedit_t": "Konfigurering endret",
|
||||||
|
"dashboard_alert_message_confsave_success": "Dine Hyperionkonfigureringer er vellykket endret. Dine endringer er nå aktive.",
|
||||||
|
"dashboard_alert_message_confsave_success_t": "Konfigurasjon lagret",
|
||||||
|
"dashboard_componentbox_label_comp": "Komponent",
|
||||||
|
"dashboard_componentbox_label_status": "Status",
|
||||||
|
"dashboard_componentbox_label_title": "Komponentstatus",
|
||||||
|
"dashboard_infobox_label_currenthyp": "Din Hyperion versjon:",
|
||||||
|
"dashboard_infobox_label_disableh": "Deaktiver forekomst: $1",
|
||||||
|
"dashboard_infobox_label_instance": "Forekomst:",
|
||||||
|
"dashboard_infobox_label_latesthyp": "Siste Hyperion versjon:",
|
||||||
|
"dashboard_infobox_label_platform": "Plattform:",
|
||||||
|
"dashboard_infobox_label_ports": "Porter",
|
||||||
|
"dashboard_infobox_label_smartacc": "Smart Adgang",
|
||||||
|
"dashboard_infobox_label_statush": "Hyperion status:",
|
||||||
|
"dashboard_infobox_label_title": "Informasjon",
|
||||||
|
"dashboard_infobox_message_updatesuccess": "Du kjører siste versjon av Hyperion.",
|
||||||
|
"dashboard_infobox_message_updatewarning": "En nyere versjon av Hyperion er tilgjengelig! ($1)",
|
||||||
|
"dashboard_label_intro": "Dashbordet gir en enkel oversikt over statusen til Hyperion.",
|
||||||
|
"dashboard_newsbox_label_title": "Hyperion-Blogg",
|
||||||
|
"dashboard_newsbox_noconn": "Kan ikke koble Hyperion Serveren for å motta siste inlegg, fungerer internettilkoblingen?",
|
||||||
|
"dashboard_newsbox_readmore": "Les mer",
|
||||||
|
"dashboard_newsbox_visitblog": "Besøk Hyperion-Bloggen",
|
||||||
|
"general_access_advanced": "Avansert",
|
||||||
|
"general_access_default": "Standard",
|
||||||
|
"general_access_expert": "Ekspert",
|
||||||
|
"general_btn_back": "Tilbake",
|
||||||
|
"general_btn_cancel": "Avbryt",
|
||||||
|
"general_btn_continue": "Fortsett",
|
||||||
|
"general_btn_iswitch": "Bytt",
|
||||||
|
"general_btn_next": "Neste",
|
||||||
|
"general_btn_off": "Av",
|
||||||
|
"general_btn_ok": "OK",
|
||||||
|
"general_btn_on": "På",
|
||||||
|
"general_btn_restarthyperion": "Start Hyperion på nytt",
|
||||||
|
"general_btn_save": "Lagre",
|
||||||
|
"general_btn_saveandreload": "Lagre og last inn på nytt",
|
||||||
|
"general_btn_yes": "Ja",
|
||||||
|
"general_col_blue": "blå",
|
||||||
|
"general_col_green": "grønn",
|
||||||
|
"general_col_red": "rød",
|
||||||
|
"general_comp_BLACKBORDER": "Blackbar gjennkjennelse",
|
||||||
|
"general_comp_SMOOTHING": "Utjevning",
|
||||||
|
"general_country_de": "Tyskland",
|
||||||
|
"general_country_es": "Spania",
|
||||||
|
"general_country_fr": "Frankrike",
|
||||||
|
"general_country_it": "Italia",
|
||||||
|
"general_country_nl": "Nederland",
|
||||||
|
"general_country_uk": "Storbritania",
|
||||||
|
"general_country_us": "USA",
|
||||||
|
"general_speech_de": "Tysk",
|
||||||
|
"general_speech_en": "Engelsk",
|
||||||
|
"general_speech_es": "Spansk",
|
||||||
|
"general_speech_it": "Italiensk",
|
||||||
|
"general_webui_title": "Hyperion - Webkonfigurasjon",
|
||||||
|
"main_ledsim_btn_togglelednumber": "Antall LED",
|
||||||
|
"main_ledsim_btn_toggleleds": "Vis LED",
|
||||||
|
"main_ledsim_btn_togglelivevideo": "Direktevideo",
|
||||||
|
"main_ledsim_title": "LED-visualisering",
|
||||||
|
"main_menu_about_token": "Om Hyperion",
|
||||||
|
"main_menu_colors_conf_token": "Bildebehandling",
|
||||||
|
"main_menu_configuration_token": "Konfigureringer",
|
||||||
|
"main_menu_dashboard_token": "Dashbord",
|
||||||
|
"main_menu_effect_conf_token": "Effekter",
|
||||||
|
"main_menu_effectsconfigurator_token": "Effekt konfigurerer",
|
||||||
|
"main_menu_general_conf_token": "Generell",
|
||||||
|
"main_menu_logging_token": "Logg",
|
||||||
|
"main_menu_network_conf_token": "Nettverkstjenester",
|
||||||
|
"main_menu_remotecontrol_token": "Fjern-kontroll",
|
||||||
|
"main_menu_support_token": "Støtte",
|
||||||
|
"main_menu_system_token": "System",
|
||||||
|
"main_menu_update_token": "Oppdater"
|
||||||
|
}
|
@ -116,7 +116,6 @@
|
|||||||
"conf_leds_optgroup_RPiGPIO": "RPi GPIO",
|
"conf_leds_optgroup_RPiGPIO": "RPi GPIO",
|
||||||
"conf_leds_optgroup_RPiPWM": "RPi PWM",
|
"conf_leds_optgroup_RPiPWM": "RPi PWM",
|
||||||
"conf_leds_optgroup_RPiSPI": "RPi SPI",
|
"conf_leds_optgroup_RPiSPI": "RPi SPI",
|
||||||
"conf_leds_optgroup_debug": "Debug",
|
|
||||||
"conf_leds_optgroup_network": "Netwerk",
|
"conf_leds_optgroup_network": "Netwerk",
|
||||||
"conf_leds_optgroup_usb": "USB",
|
"conf_leds_optgroup_usb": "USB",
|
||||||
"conf_logging_btn_autoscroll": "Automatisch scrollen.",
|
"conf_logging_btn_autoscroll": "Automatisch scrollen.",
|
||||||
@ -164,14 +163,14 @@
|
|||||||
"dashboard_infobox_label_instance": "Instantie",
|
"dashboard_infobox_label_instance": "Instantie",
|
||||||
"dashboard_infobox_label_latesthyp": "Laatste Hyperion versie",
|
"dashboard_infobox_label_latesthyp": "Laatste Hyperion versie",
|
||||||
"dashboard_infobox_label_platform": "Platform",
|
"dashboard_infobox_label_platform": "Platform",
|
||||||
"dashboard_infobox_label_ports": "Poorten (flat|proto):",
|
"dashboard_infobox_label_ports": "Poorten",
|
||||||
"dashboard_infobox_label_smartacc": "Slimme toegang",
|
"dashboard_infobox_label_smartacc": "Slimme toegang",
|
||||||
"dashboard_infobox_label_statush": "Hyperion status:",
|
"dashboard_infobox_label_statush": "Hyperion status:",
|
||||||
"dashboard_infobox_label_title": "Informatie",
|
"dashboard_infobox_label_title": "Informatie",
|
||||||
"dashboard_infobox_label_watchedversionbranch": "Bekeken versie branch:",
|
"dashboard_infobox_label_watchedversionbranch": "Bekeken versie branch:",
|
||||||
"dashboard_infobox_message_updatesuccess": "Je draait de laatste versie van Hyperion",
|
"dashboard_infobox_message_updatesuccess": "Je draait de laatste versie van Hyperion",
|
||||||
"dashboard_infobox_message_updatewarning": "Een nieuwe versie van Hyperion is beschikbaar!",
|
"dashboard_infobox_message_updatewarning": "Een nieuwe versie van Hyperion is beschikbaar!",
|
||||||
"dashboard_label_intro": "Het dashboard geeft je een overzicht van de status van Hyperion en toont de laatste updates van de Hyperion blog.",
|
"dashboard_label_intro": "Het dashboard geeft je een overzicht van de status van Hyperion.",
|
||||||
"dashboard_message_default_password": "Het standaard wachtwoord voor de WebUi is ingesteld. We raden je aan dit te veranderen",
|
"dashboard_message_default_password": "Het standaard wachtwoord voor de WebUi is ingesteld. We raden je aan dit te veranderen",
|
||||||
"dashboard_message_default_password_t": "WebUi standaard wachtwoord is ingesteld",
|
"dashboard_message_default_password_t": "WebUi standaard wachtwoord is ingesteld",
|
||||||
"dashboard_message_do_not_show_again": "Laat dit bericht niet meer zien",
|
"dashboard_message_do_not_show_again": "Laat dit bericht niet meer zien",
|
||||||
@ -184,11 +183,11 @@
|
|||||||
"edt_append_degree": "°",
|
"edt_append_degree": "°",
|
||||||
"edt_append_hz": "Hz",
|
"edt_append_hz": "Hz",
|
||||||
"edt_append_leds": "LED's",
|
"edt_append_leds": "LED's",
|
||||||
"edt_append_ms": "Mevrouw",
|
"edt_append_ms": "ms",
|
||||||
"edt_append_ns": "NS",
|
"edt_append_ns": "NS",
|
||||||
"edt_append_percent": "%",
|
"edt_append_percent": "%",
|
||||||
"edt_append_percent_h": "% hori",
|
"edt_append_percent_h": "% hori",
|
||||||
"edt_append_percent_v": "% Groen",
|
"edt_append_percent_v": "% vert",
|
||||||
"edt_append_pixel": "Pixel",
|
"edt_append_pixel": "Pixel",
|
||||||
"edt_append_s": "s",
|
"edt_append_s": "s",
|
||||||
"edt_append_sdegree": "s / graad",
|
"edt_append_sdegree": "s / graad",
|
||||||
@ -367,6 +366,8 @@
|
|||||||
"edt_conf_smooth_continuousOutput_expl": "Update de LEDs zelfs als het beeld niet wijzigt.",
|
"edt_conf_smooth_continuousOutput_expl": "Update de LEDs zelfs als het beeld niet wijzigt.",
|
||||||
"edt_conf_smooth_continuousOutput_title": "Constante output",
|
"edt_conf_smooth_continuousOutput_title": "Constante output",
|
||||||
"edt_conf_smooth_heading_title": "Verzachten",
|
"edt_conf_smooth_heading_title": "Verzachten",
|
||||||
|
"edt_conf_smooth_interpolationRate_title": "Interpolatietempo",
|
||||||
|
"edt_conf_smooth_outputRate_title": "Uitgangstempo",
|
||||||
"edt_conf_smooth_time_ms_expl": "Hoe lang moet de verzachting beeld ontvangen?",
|
"edt_conf_smooth_time_ms_expl": "Hoe lang moet de verzachting beeld ontvangen?",
|
||||||
"edt_conf_smooth_time_ms_title": "Tijd",
|
"edt_conf_smooth_time_ms_title": "Tijd",
|
||||||
"edt_conf_smooth_type_expl": "Type verzachting",
|
"edt_conf_smooth_type_expl": "Type verzachting",
|
||||||
@ -456,6 +457,8 @@
|
|||||||
"edt_dev_spec_dithering_title": "Trilling",
|
"edt_dev_spec_dithering_title": "Trilling",
|
||||||
"edt_dev_spec_dmaNumber_title": "DMA kanaal",
|
"edt_dev_spec_dmaNumber_title": "DMA kanaal",
|
||||||
"edt_dev_spec_gamma_title": "Gamma",
|
"edt_dev_spec_gamma_title": "Gamma",
|
||||||
|
"edt_dev_spec_globalBrightnessControlMaxLevel_title": "Max Huidig Niveau",
|
||||||
|
"edt_dev_spec_globalBrightnessControlThreshold_title": "Aanpasbaar Huidig Limiet",
|
||||||
"edt_dev_spec_gpioBcm_title": "GPIO Pin",
|
"edt_dev_spec_gpioBcm_title": "GPIO Pin",
|
||||||
"edt_dev_spec_gpioMap_title": "GPIO mapping",
|
"edt_dev_spec_gpioMap_title": "GPIO mapping",
|
||||||
"edt_dev_spec_gpioNumber_title": "GPIO nummer",
|
"edt_dev_spec_gpioNumber_title": "GPIO nummer",
|
||||||
@ -708,11 +711,13 @@
|
|||||||
"general_comp_PROTOSERVER": "Protocol Buffers Server",
|
"general_comp_PROTOSERVER": "Protocol Buffers Server",
|
||||||
"general_comp_SMOOTHING": "Vloeiend",
|
"general_comp_SMOOTHING": "Vloeiend",
|
||||||
"general_comp_V4L": "USB Vastleggen",
|
"general_comp_V4L": "USB Vastleggen",
|
||||||
|
"general_country_cn": "China",
|
||||||
"general_country_de": "Duitsland",
|
"general_country_de": "Duitsland",
|
||||||
"general_country_es": "Spanje",
|
"general_country_es": "Spanje",
|
||||||
"general_country_fr": "Frankrijk",
|
"general_country_fr": "Frankrijk",
|
||||||
"general_country_it": "Italië",
|
"general_country_it": "Italië",
|
||||||
"general_country_nl": "Nederland",
|
"general_country_nl": "Nederland",
|
||||||
|
"general_country_ru": "Rusland",
|
||||||
"general_country_uk": "Verenigd Koninkrijk",
|
"general_country_uk": "Verenigd Koninkrijk",
|
||||||
"general_country_us": "Verenigde Staten",
|
"general_country_us": "Verenigde Staten",
|
||||||
"general_speech_cs": "Tsjechisch",
|
"general_speech_cs": "Tsjechisch",
|
||||||
@ -724,9 +729,11 @@
|
|||||||
"general_speech_nl": "Nederlands",
|
"general_speech_nl": "Nederlands",
|
||||||
"general_speech_pl": "Pools",
|
"general_speech_pl": "Pools",
|
||||||
"general_speech_ro": "Romeens",
|
"general_speech_ro": "Romeens",
|
||||||
|
"general_speech_ru": "Russchich",
|
||||||
"general_speech_sv": "Zweeds",
|
"general_speech_sv": "Zweeds",
|
||||||
"general_speech_tr": "Turks",
|
"general_speech_tr": "Turks",
|
||||||
"general_speech_vi": "Vietnamees",
|
"general_speech_vi": "Vietnamees",
|
||||||
|
"general_speech_zh-CN": "Chinees (vereenvoudigd)",
|
||||||
"general_webui_title": "Hyperion - Web Instellingen",
|
"general_webui_title": "Hyperion - Web Instellingen",
|
||||||
"general_wiki_moreto": "Meer informatie over \"$1\" is beschikbaar op onze Wiki",
|
"general_wiki_moreto": "Meer informatie over \"$1\" is beschikbaar op onze Wiki",
|
||||||
"infoDialog_checklist_title": "Checklist!",
|
"infoDialog_checklist_title": "Checklist!",
|
||||||
@ -797,7 +804,7 @@
|
|||||||
"remote_input_origin": "Origineel",
|
"remote_input_origin": "Origineel",
|
||||||
"remote_input_owner": "Type",
|
"remote_input_owner": "Type",
|
||||||
"remote_input_priority": "Prioriteit",
|
"remote_input_priority": "Prioriteit",
|
||||||
"remote_input_setsource_btn": "Selecteerd bron",
|
"remote_input_setsource_btn": "Selecteer bron",
|
||||||
"remote_input_sourceactiv_btn": "Bron actief",
|
"remote_input_sourceactiv_btn": "Bron actief",
|
||||||
"remote_input_status": "Status/Actie",
|
"remote_input_status": "Status/Actie",
|
||||||
"remote_losthint": "Note: Alle wijzigingen zijn verdwenen na een herstart.",
|
"remote_losthint": "Note: Alle wijzigingen zijn verdwenen na een herstart.",
|
||||||
@ -842,6 +849,8 @@
|
|||||||
"update_label_type": "Type:",
|
"update_label_type": "Type:",
|
||||||
"update_no_updates_for_branch": "Geen updates voor geselecteerde versie kanaal",
|
"update_no_updates_for_branch": "Geen updates voor geselecteerde versie kanaal",
|
||||||
"update_versreminder": "Jouw versie: $1",
|
"update_versreminder": "Jouw versie: $1",
|
||||||
|
"wiz_atmoorb_intro1": "Deze wizards configureren Hyperion voor AtmoOrbs. Functies zijn de AtmoOrb autodetectie, elk ligt op een specifieke plek op je afbeelding neerzetten, of uitschakelen en Hyperion instellingen automatisch optimaliseren! Dus in het kort: Alles wat je nodig hebt zijn een paar klikken, en je bent klaar!",
|
||||||
|
"wiz_atmoorb_title": "AtmoOrb Wizard",
|
||||||
"wiz_cc_adjustgamma": "Gamma: Wat je moet doen is, pas elk gamma level aan totdat deze op elk kanaal op dezelfde manier wordt waargenomen. Hint: Neutraal is 1.0! Bijvoorbeeld, als grijs teveel op rood lijkt, verlaag dan de rode gamma (hoe meer gamma, des te minder de kleurintensiteit).",
|
"wiz_cc_adjustgamma": "Gamma: Wat je moet doen is, pas elk gamma level aan totdat deze op elk kanaal op dezelfde manier wordt waargenomen. Hint: Neutraal is 1.0! Bijvoorbeeld, als grijs teveel op rood lijkt, verlaag dan de rode gamma (hoe meer gamma, des te minder de kleurintensiteit).",
|
||||||
"wiz_cc_adjustit": "Pas je \"$1\" aan totdat je hier tevreden mee bent. Let op: Hoe verder je de standaard waardes aanpast, hoe verder het kleurenspectrum wordt beperkt (dit geldt voor alle kleuren). Afhankelijk van de TV/LED zullen kleuren onderling kunnen afwijken.",
|
"wiz_cc_adjustit": "Pas je \"$1\" aan totdat je hier tevreden mee bent. Let op: Hoe verder je de standaard waardes aanpast, hoe verder het kleurenspectrum wordt beperkt (dit geldt voor alle kleuren). Afhankelijk van de TV/LED zullen kleuren onderling kunnen afwijken.",
|
||||||
"wiz_cc_backlight": "Aanvullend kan je achtergrondlicht instellen om zwart echt zwart te maken. Hierin kan je bijvoorbeeld kleur toevoegen of dit gewoon wit laten. Bij status \"Uit\", \"Kleur\" of \"Effect\" is dit uitgeschakeld.",
|
"wiz_cc_backlight": "Aanvullend kan je achtergrondlicht instellen om zwart echt zwart te maken. Hierin kan je bijvoorbeeld kleur toevoegen of dit gewoon wit laten. Bij status \"Uit\", \"Kleur\" of \"Effect\" is dit uitgeschakeld.",
|
||||||
@ -864,6 +873,7 @@
|
|||||||
"wiz_cc_testintrok": "Druk op de onderstaande knop om een test video te starten.",
|
"wiz_cc_testintrok": "Druk op de onderstaande knop om een test video te starten.",
|
||||||
"wiz_cc_testintrowok": "Bekijk de volgende link om test video's te downloaden:",
|
"wiz_cc_testintrowok": "Bekijk de volgende link om test video's te downloaden:",
|
||||||
"wiz_cc_title": "Kleurenkalibratie wizard",
|
"wiz_cc_title": "Kleurenkalibratie wizard",
|
||||||
|
"wiz_cololight_desc2": "Kies nu welke Cololights toegevoegd moeten worden. Om een enkel licht te identificeren, klik de knop rechts.",
|
||||||
"wiz_guideyou": "De $1 zal je door de instellingen leiden. Druk gewoon op de knop!",
|
"wiz_guideyou": "De $1 zal je door de instellingen leiden. Druk gewoon op de knop!",
|
||||||
"wiz_hue_blinkblue": "Laat ID $1 blauw oplichten",
|
"wiz_hue_blinkblue": "Laat ID $1 blauw oplichten",
|
||||||
"wiz_hue_clientkey": "Klantensleutel:",
|
"wiz_hue_clientkey": "Klantensleutel:",
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
"about_build": "Build:",
|
"about_build": "Build:",
|
||||||
"about_builddate": "Data buildu:",
|
"about_builddate": "Data buildu:",
|
||||||
"about_contribute": "Rozwijaj Hyperion razem z nami!",
|
"about_contribute": "Rozwijaj Hyperion razem z nami!",
|
||||||
"about_credits": "Pozdrowienia dla wszystkich programistów!",
|
"about_credits": "Pozdrowienia dla wszystkich programistów! Polska wersja Artur Klimek KAmerOK",
|
||||||
"about_resources": "$1 biblioteki",
|
"about_resources": "$1 biblioteki",
|
||||||
"about_translations": "Tłumaczenia",
|
"about_translations": "Tłumaczenia",
|
||||||
"about_version": "Wersja:",
|
"about_version": "Wersja:",
|
||||||
@ -116,7 +116,6 @@
|
|||||||
"conf_leds_optgroup_RPiGPIO": "RPi GPIO",
|
"conf_leds_optgroup_RPiGPIO": "RPi GPIO",
|
||||||
"conf_leds_optgroup_RPiPWM": "RPi PWM",
|
"conf_leds_optgroup_RPiPWM": "RPi PWM",
|
||||||
"conf_leds_optgroup_RPiSPI": "RPi SPI",
|
"conf_leds_optgroup_RPiSPI": "RPi SPI",
|
||||||
"conf_leds_optgroup_debug": "Debugowanie",
|
|
||||||
"conf_leds_optgroup_network": "Sieć",
|
"conf_leds_optgroup_network": "Sieć",
|
||||||
"conf_leds_optgroup_usb": "USB",
|
"conf_leds_optgroup_usb": "USB",
|
||||||
"conf_logging_btn_autoscroll": "Automatyczne przewijanie",
|
"conf_logging_btn_autoscroll": "Automatyczne przewijanie",
|
||||||
@ -133,7 +132,7 @@
|
|||||||
"conf_network_bobl_intro": "Odbiornik dla Boblight",
|
"conf_network_bobl_intro": "Odbiornik dla Boblight",
|
||||||
"conf_network_createToken_btn": "Utwórz token",
|
"conf_network_createToken_btn": "Utwórz token",
|
||||||
"conf_network_fbs_intro": "Odbiornik Flatbuffers Google. Służy do szybkiej transmisji obrazu.",
|
"conf_network_fbs_intro": "Odbiornik Flatbuffers Google. Służy do szybkiej transmisji obrazu.",
|
||||||
"conf_network_forw_intro": "Przekaż wszystkie dane wejściowe do drugiej instancji Hyperion, która może być sterowana przez inny kontroler led",
|
"conf_network_forw_intro": "Przekieruj wszystkie dane wejściowe do drugiej instancji Hyperion, która może być sterowana przez inny kontroler LED",
|
||||||
"conf_network_json_intro": "Port JSON-RPC wszystkich instancji Hyperion, używany do zdalnego sterowania.",
|
"conf_network_json_intro": "Port JSON-RPC wszystkich instancji Hyperion, używany do zdalnego sterowania.",
|
||||||
"conf_network_net_intro": "Ustawienia związane z siecią, które są stosowane do wszystkich usług sieciowych",
|
"conf_network_net_intro": "Ustawienia związane z siecią, które są stosowane do wszystkich usług sieciowych",
|
||||||
"conf_network_proto_intro": "Port PROTO wszystkich instancji Hyperion, używany do strumieni obrazów (HyperionScreenCap, Kodi Addon, Android Hyperion Grabber, ...)",
|
"conf_network_proto_intro": "Port PROTO wszystkich instancji Hyperion, używany do strumieni obrazów (HyperionScreenCap, Kodi Addon, Android Hyperion Grabber, ...)",
|
||||||
@ -157,21 +156,21 @@
|
|||||||
"dashboard_alert_message_disabled_t": "Instancja sprzętowa LED wyłączona",
|
"dashboard_alert_message_disabled_t": "Instancja sprzętowa LED wyłączona",
|
||||||
"dashboard_componentbox_label_comp": "Komponent",
|
"dashboard_componentbox_label_comp": "Komponent",
|
||||||
"dashboard_componentbox_label_status": "Status",
|
"dashboard_componentbox_label_status": "Status",
|
||||||
"dashboard_componentbox_label_title": "Status komponentów",
|
"dashboard_componentbox_label_title": "Szybki podgląd komponentów",
|
||||||
"dashboard_infobox_label_currenthyp": "Twoja wersja Hyperion:",
|
"dashboard_infobox_label_currenthyp": "Twoja wersja Hyperion:",
|
||||||
"dashboard_infobox_label_disableh": "Wyłącz instancję: $1",
|
"dashboard_infobox_label_disableh": "Wyłącz instancję: $1",
|
||||||
"dashboard_infobox_label_enableh": "Uruchom Hyperion",
|
"dashboard_infobox_label_enableh": "Uruchom instancję: $1",
|
||||||
"dashboard_infobox_label_instance": "Instancja:",
|
"dashboard_infobox_label_instance": "Instancja:",
|
||||||
"dashboard_infobox_label_latesthyp": "Najnowsza wersja Hyperion:",
|
"dashboard_infobox_label_latesthyp": "Najnowsza wersja Hyperion:",
|
||||||
"dashboard_infobox_label_platform": "Platforma:",
|
"dashboard_infobox_label_platform": "Platforma:",
|
||||||
"dashboard_infobox_label_ports": "Porty (flat|proto):",
|
"dashboard_infobox_label_ports": "Porty",
|
||||||
"dashboard_infobox_label_smartacc": "Szybki dostęp",
|
"dashboard_infobox_label_smartacc": "Szybki dostęp",
|
||||||
"dashboard_infobox_label_statush": "Status Hyperion:",
|
"dashboard_infobox_label_statush": "Status Hyperion:",
|
||||||
"dashboard_infobox_label_title": "Informacje",
|
"dashboard_infobox_label_title": "Informacje",
|
||||||
"dashboard_infobox_label_watchedversionbranch": "Obserwowany rodzaj wersji:",
|
"dashboard_infobox_label_watchedversionbranch": "Obserwowany rodzaj wersji:",
|
||||||
"dashboard_infobox_message_updatesuccess": "Posiadasz najnowszą wersję Hyperion",
|
"dashboard_infobox_message_updatesuccess": "Posiadasz najnowszą wersję Hyperion",
|
||||||
"dashboard_infobox_message_updatewarning": "Dostępna jest nowsza wersja Hyperion! ($1)",
|
"dashboard_infobox_message_updatewarning": "Dostępna jest nowsza wersja Hyperion! ($1)",
|
||||||
"dashboard_label_intro": "Ten pulpit nawigacyjny zapewnia szybki przegląd statusu Hyperion i pokazuje najnowsze wiadomości z blogu Hyperion.",
|
"dashboard_label_intro": "Ten pulpit nawigacyjny zapewnia szybki przegląd statusu Hyperion.",
|
||||||
"dashboard_message_default_password": "Domyślne hasło do WebUi jest ustawione. Zdecydowanie zalecamy to zmienić.",
|
"dashboard_message_default_password": "Domyślne hasło do WebUi jest ustawione. Zdecydowanie zalecamy to zmienić.",
|
||||||
"dashboard_message_default_password_t": "WebUi default password is set",
|
"dashboard_message_default_password_t": "WebUi default password is set",
|
||||||
"dashboard_message_do_not_show_again": "Nie pokazuj tej wiadomości ponownie",
|
"dashboard_message_do_not_show_again": "Nie pokazuj tej wiadomości ponownie",
|
||||||
@ -192,11 +191,11 @@
|
|||||||
"edt_append_pixel": "Piksel",
|
"edt_append_pixel": "Piksel",
|
||||||
"edt_append_s": "s",
|
"edt_append_s": "s",
|
||||||
"edt_append_sdegree": "s/stopnień",
|
"edt_append_sdegree": "s/stopnień",
|
||||||
"edt_conf_bb_blurRemoveCnt_expl": "Liczba pikseli, które są usuwane z wykrytej ramki w celu usunięcia rozmycia.",
|
"edt_conf_bb_blurRemoveCnt_expl": "Liczba pikseli, które zostaną usunięte z wykrytej ramki w celu usunięcia rozmycia.",
|
||||||
"edt_conf_bb_blurRemoveCnt_title": "Rozmycie pikseli",
|
"edt_conf_bb_blurRemoveCnt_title": "Rozmycie pikseli",
|
||||||
"edt_conf_bb_borderFrameCnt_expl": "Liczba ramek przed ustawieniem spójnego wykrytego obramowania.",
|
"edt_conf_bb_borderFrameCnt_expl": "Liczba ramek przed ustawieniem spójnego wykrytego obramowania.",
|
||||||
"edt_conf_bb_borderFrameCnt_title": "Ramki graniczne",
|
"edt_conf_bb_borderFrameCnt_title": "Ramki graniczne",
|
||||||
"edt_conf_bb_heading_title": "Usuń czarne pasy",
|
"edt_conf_bb_heading_title": "Usuwanie czarnych pasów",
|
||||||
"edt_conf_bb_maxInconsistentCnt_expl": "Liczba niespójnych ramek, które są ignorowane, zanim nowa granica uzyska szansę na potwierdzenie spójności.",
|
"edt_conf_bb_maxInconsistentCnt_expl": "Liczba niespójnych ramek, które są ignorowane, zanim nowa granica uzyska szansę na potwierdzenie spójności.",
|
||||||
"edt_conf_bb_maxInconsistentCnt_title": "Niespójne ramki",
|
"edt_conf_bb_maxInconsistentCnt_title": "Niespójne ramki",
|
||||||
"edt_conf_bb_mode_expl": "Algorytm przetwarzania. (patrz Wiki)",
|
"edt_conf_bb_mode_expl": "Algorytm przetwarzania. (patrz Wiki)",
|
||||||
@ -211,18 +210,18 @@
|
|||||||
"edt_conf_color_backlightColored_title": "Kolorowe podświetlenie",
|
"edt_conf_color_backlightColored_title": "Kolorowe podświetlenie",
|
||||||
"edt_conf_color_backlightThreshold_expl": "Minimalna jasność (podświetlenie). Wyłączone podczas efektów, kolorów i statusu „Wyłączony”",
|
"edt_conf_color_backlightThreshold_expl": "Minimalna jasność (podświetlenie). Wyłączone podczas efektów, kolorów i statusu „Wyłączony”",
|
||||||
"edt_conf_color_backlightThreshold_title": "Próg podświetlenia",
|
"edt_conf_color_backlightThreshold_title": "Próg podświetlenia",
|
||||||
"edt_conf_color_black_expl": "Skalibrowana wartość czerni.",
|
"edt_conf_color_black_expl": "Skalibrowana wartość koloru czarnego.",
|
||||||
"edt_conf_color_black_title": "Czarny",
|
"edt_conf_color_black_title": "Czarny",
|
||||||
"edt_conf_color_blue_expl": "Skalibrowana wartość niebieskiego",
|
"edt_conf_color_blue_expl": "Skalibrowana wartość koloru niebieskiego",
|
||||||
"edt_conf_color_blue_title": "Niebieski",
|
"edt_conf_color_blue_title": "Niebieski",
|
||||||
"edt_conf_color_brightnessComp_expl": "Kompensuje różnice jasności między czerwonym, zielonym, niebieskim, cyjanowym, purpurowym, żółtym i białym. 100 oznacza pełną kompensację, 0 oznacza brak kompensacji",
|
"edt_conf_color_brightnessComp_expl": "Kompensuje różnice jasności między czerwonym, zielonym, niebieskim, cyjanowym, purpurowym, żółtym i białym. 100 oznacza pełną kompensację, 0 oznacza brak kompensacji",
|
||||||
"edt_conf_color_brightnessComp_title": "Kompensacja jasności",
|
"edt_conf_color_brightnessComp_title": "Kompensacja jasności",
|
||||||
"edt_conf_color_brightness_expl": "Ustaw jasność LEDów",
|
"edt_conf_color_brightness_expl": "Ustaw jasność LEDów",
|
||||||
"edt_conf_color_brightness_title": "Jasność",
|
"edt_conf_color_brightness_title": "Jasność",
|
||||||
"edt_conf_color_channelAdjustment_header_expl": "Utwórz profile kolorów, które można przypisać do określonego komponentu. Dostosuj kolor, gamma, jasność, kompensację i więcej",
|
"edt_conf_color_channelAdjustment_header_expl": "Utwórz profile kolorów, które można przypisać do określonego profilu. Dostosuj kolor, gamma, jasność, kompensację i więcej",
|
||||||
"edt_conf_color_channelAdjustment_header_itemtitle": "Profil",
|
"edt_conf_color_channelAdjustment_header_itemtitle": "Profil",
|
||||||
"edt_conf_color_channelAdjustment_header_title": "Korekta kanału koloru",
|
"edt_conf_color_channelAdjustment_header_title": "Adaptacja koloru",
|
||||||
"edt_conf_color_cyan_expl": "Skalibrowana wartość Cyjanu",
|
"edt_conf_color_cyan_expl": "Skalibrowana wartość koloru cyjanowego",
|
||||||
"edt_conf_color_cyan_title": "Cyjan",
|
"edt_conf_color_cyan_title": "Cyjan",
|
||||||
"edt_conf_color_gammaBlue_expl": "Gamma niebieskiego. 1.0 jest neutralny. Powyżej 1,0 zmniejsza niebieski, mniej niż 1,0 dodaje niebieski.",
|
"edt_conf_color_gammaBlue_expl": "Gamma niebieskiego. 1.0 jest neutralny. Powyżej 1,0 zmniejsza niebieski, mniej niż 1,0 dodaje niebieski.",
|
||||||
"edt_conf_color_gammaBlue_title": "Gamma Niebieski",
|
"edt_conf_color_gammaBlue_title": "Gamma Niebieski",
|
||||||
@ -230,22 +229,22 @@
|
|||||||
"edt_conf_color_gammaGreen_title": "Gamma Zielony",
|
"edt_conf_color_gammaGreen_title": "Gamma Zielony",
|
||||||
"edt_conf_color_gammaRed_expl": "Gamma czerwieni. 1.0 jest neutralny. Powyżej 1,0 zmniejsza kolor czerwony, a poniżej 1,0 dodaje kolor czerwony.",
|
"edt_conf_color_gammaRed_expl": "Gamma czerwieni. 1.0 jest neutralny. Powyżej 1,0 zmniejsza kolor czerwony, a poniżej 1,0 dodaje kolor czerwony.",
|
||||||
"edt_conf_color_gammaRed_title": "Gamma Czerwony",
|
"edt_conf_color_gammaRed_title": "Gamma Czerwony",
|
||||||
"edt_conf_color_green_expl": "Skalibrowana wartość zieleni",
|
"edt_conf_color_green_expl": "Skalibrowana wartość koloru zielonego",
|
||||||
"edt_conf_color_green_title": "Zielony",
|
"edt_conf_color_green_title": "Zielony",
|
||||||
"edt_conf_color_heading_title": "Kalibracja kolorów",
|
"edt_conf_color_heading_title": "Kalibracja kolorów",
|
||||||
"edt_conf_color_id_expl": "Imię użytkownika",
|
"edt_conf_color_id_expl": "Imię użytkownika",
|
||||||
"edt_conf_color_id_title": "Identyfikator Użytkownika",
|
"edt_conf_color_id_title": "Identyfikator Użytkownika",
|
||||||
"edt_conf_color_imageToLedMappingType_expl": "Zastępuje przypisanie obszaru led do układu led, jeśli nie jest ono „kolorowe”",
|
"edt_conf_color_imageToLedMappingType_expl": "Jeśli wybrano inne niż „kolorowy” - miesza wszystkie kolory do jednego koloru by wyświetlić pojedynczy kolor na całym obszarze urządzenia.",
|
||||||
"edt_conf_color_imageToLedMappingType_title": "Przydział obszaru Led",
|
"edt_conf_color_imageToLedMappingType_title": "Ustalenie przydziału koloru",
|
||||||
"edt_conf_color_leds_expl": "Przypisz tę regulację do wszystkich diod LED (*) lub tylko niektórych (0-24).",
|
"edt_conf_color_leds_expl": "Przypisz tę regulację do wszystkich diod LED (*) lub tylko niektórych (0-24).",
|
||||||
"edt_conf_color_leds_title": "Indeks LED",
|
"edt_conf_color_leds_title": "Indeks LED",
|
||||||
"edt_conf_color_magenta_expl": "Skalibrowana wartość Magenty",
|
"edt_conf_color_magenta_expl": "Skalibrowana wartość koloru magenty",
|
||||||
"edt_conf_color_magenta_title": "Magenta",
|
"edt_conf_color_magenta_title": "Magenta",
|
||||||
"edt_conf_color_red_expl": "Skalibrowana wartość czerwieni",
|
"edt_conf_color_red_expl": "Skalibrowana wartość koloru czerwonego",
|
||||||
"edt_conf_color_red_title": "Czerwony",
|
"edt_conf_color_red_title": "Czerwony",
|
||||||
"edt_conf_color_white_expl": "Skalibrowana wartość bieli.",
|
"edt_conf_color_white_expl": "Skalibrowana wartość koloru białego.",
|
||||||
"edt_conf_color_white_title": "Biały",
|
"edt_conf_color_white_title": "Biały",
|
||||||
"edt_conf_color_yellow_expl": "Skalibrowana wartość Żółtego",
|
"edt_conf_color_yellow_expl": "Skalibrowana wartość koloru żółtego",
|
||||||
"edt_conf_color_yellow_title": "Żółty",
|
"edt_conf_color_yellow_title": "Żółty",
|
||||||
"edt_conf_effp_disable_expl": "Dodaj nazwy efektów, które chcesz wyłączyć / ukryć na wszystkich listach efektów.",
|
"edt_conf_effp_disable_expl": "Dodaj nazwy efektów, które chcesz wyłączyć / ukryć na wszystkich listach efektów.",
|
||||||
"edt_conf_effp_disable_itemtitle": "Efekt",
|
"edt_conf_effp_disable_itemtitle": "Efekt",
|
||||||
@ -261,12 +260,14 @@
|
|||||||
"edt_conf_enum_automatic": "Automatyczny",
|
"edt_conf_enum_automatic": "Automatyczny",
|
||||||
"edt_conf_enum_bbclassic": "Klasyczny",
|
"edt_conf_enum_bbclassic": "Klasyczny",
|
||||||
"edt_conf_enum_bbdefault": "Domyślny",
|
"edt_conf_enum_bbdefault": "Domyślny",
|
||||||
|
"edt_conf_enum_bbletterbox": "Letterbox",
|
||||||
"edt_conf_enum_bbosd": "OSD",
|
"edt_conf_enum_bbosd": "OSD",
|
||||||
"edt_conf_enum_bgr": "BGR",
|
"edt_conf_enum_bgr": "BGR",
|
||||||
"edt_conf_enum_bottom_up": "Oddolne",
|
"edt_conf_enum_bottom_up": "Oddolne",
|
||||||
"edt_conf_enum_brg": "BRG",
|
"edt_conf_enum_brg": "BRG",
|
||||||
"edt_conf_enum_color": "Kolor",
|
"edt_conf_enum_color": "Kolor",
|
||||||
"edt_conf_enum_custom": "Dostosuj",
|
"edt_conf_enum_custom": "Odświeżanie",
|
||||||
|
"edt_conf_enum_decay": "Rozmycie",
|
||||||
"edt_conf_enum_dl_error": "Błąd",
|
"edt_conf_enum_dl_error": "Błąd",
|
||||||
"edt_conf_enum_dl_informational": "Informacyjny",
|
"edt_conf_enum_dl_informational": "Informacyjny",
|
||||||
"edt_conf_enum_dl_nodebug": "Bez debugowania",
|
"edt_conf_enum_dl_nodebug": "Bez debugowania",
|
||||||
@ -292,13 +293,13 @@
|
|||||||
"edt_conf_enum_top_down": "Z góry na dół",
|
"edt_conf_enum_top_down": "Z góry na dół",
|
||||||
"edt_conf_enum_transeffect_smooth": "Gładki",
|
"edt_conf_enum_transeffect_smooth": "Gładki",
|
||||||
"edt_conf_enum_transeffect_sudden": "Nagły",
|
"edt_conf_enum_transeffect_sudden": "Nagły",
|
||||||
"edt_conf_enum_unicolor_mean": "Skala odcieni szarości",
|
"edt_conf_enum_unicolor_mean": "Mieszaj kolory do jednego koloru",
|
||||||
"edt_conf_fbs_heading_title": "Server Flatbuffers",
|
"edt_conf_fbs_heading_title": "Server Flatbuffers",
|
||||||
"edt_conf_fbs_timeout_expl": "Jeśli w danym okresie nie zostaną odebrane żadne dane, komponent zostanie (miękko) wyłączony.",
|
"edt_conf_fbs_timeout_expl": "Jeśli w danym okresie nie zostaną odebrane żadne dane, komponent zostanie (miękko) wyłączony.",
|
||||||
"edt_conf_fbs_timeout_title": "Timeout",
|
"edt_conf_fbs_timeout_title": "Timeout",
|
||||||
"edt_conf_fg_display_expl": "Wybierz pulpit, który ma zostać przechwycony (konfiguracja wielu monitorów)",
|
"edt_conf_fg_display_expl": "Wybierz pulpit, który ma zostać przechwycony (konfiguracja wielu monitorów)",
|
||||||
"edt_conf_fg_display_title": "Pulpit",
|
"edt_conf_fg_display_title": "Pulpit",
|
||||||
"edt_conf_fg_frequency_Hz_expl": "Jak często rejestrowane są nowe zdjęcia",
|
"edt_conf_fg_frequency_Hz_expl": "Częstotliwość z jaką odświeżane są próbki obrazu do obliczania kolorów.",
|
||||||
"edt_conf_fg_frequency_Hz_title": "Częstotliwość przechwytywania",
|
"edt_conf_fg_frequency_Hz_title": "Częstotliwość przechwytywania",
|
||||||
"edt_conf_fg_heading_title": "Przechwytywanie widoku systemu (pulpitu)",
|
"edt_conf_fg_heading_title": "Przechwytywanie widoku systemu (pulpitu)",
|
||||||
"edt_conf_fg_height_expl": "Zmniejsz obraz do tej wysokości, ponieważ nieprzetworzony obraz będzie wymagał dużo czasu procesora.",
|
"edt_conf_fg_height_expl": "Zmniejsz obraz do tej wysokości, ponieważ nieprzetworzony obraz będzie wymagał dużo czasu procesora.",
|
||||||
@ -321,7 +322,7 @@
|
|||||||
"edt_conf_fw_flat_expl": "Jeden element flatbuffer na linię. Zawiera adres IP: PORT (przykład: 127.0.0.1:19401)",
|
"edt_conf_fw_flat_expl": "Jeden element flatbuffer na linię. Zawiera adres IP: PORT (przykład: 127.0.0.1:19401)",
|
||||||
"edt_conf_fw_flat_itemtitle": "Źródło flatbuffer",
|
"edt_conf_fw_flat_itemtitle": "Źródło flatbuffer",
|
||||||
"edt_conf_fw_flat_title": "Lista klientów flatbuffer",
|
"edt_conf_fw_flat_title": "Lista klientów flatbuffer",
|
||||||
"edt_conf_fw_heading_title": "Przekazywanie",
|
"edt_conf_fw_heading_title": "Przekierowanie",
|
||||||
"edt_conf_fw_json_expl": "Jeden element Json na linię. Zawiera adres IP: PORT (przykład: 127.0.0.1:19446)",
|
"edt_conf_fw_json_expl": "Jeden element Json na linię. Zawiera adres IP: PORT (przykład: 127.0.0.1:19446)",
|
||||||
"edt_conf_fw_json_itemtitle": "Element Json",
|
"edt_conf_fw_json_itemtitle": "Element Json",
|
||||||
"edt_conf_fw_json_title": "Lista klientów Json",
|
"edt_conf_fw_json_title": "Lista klientów Json",
|
||||||
@ -338,9 +339,9 @@
|
|||||||
"edt_conf_general_port_title": "Port",
|
"edt_conf_general_port_title": "Port",
|
||||||
"edt_conf_general_priority_expl": "Priorytet tego komponentu",
|
"edt_conf_general_priority_expl": "Priorytet tego komponentu",
|
||||||
"edt_conf_general_priority_title": "Kanał priorytetowy",
|
"edt_conf_general_priority_title": "Kanał priorytetowy",
|
||||||
"edt_conf_instC_systemEnable_expl": "Umożliwia przechwytywanie pulpitu dla tego kontrolera LED",
|
"edt_conf_instC_systemEnable_expl": "Umożliwia przechwytywanie pulpitu urządzenia na którym zainstalowany jest Hyperion.",
|
||||||
"edt_conf_instC_systemEnable_title": "Włącz przechwytywanie pulpitu",
|
"edt_conf_instC_systemEnable_title": "Włącz przechwytywanie pulpitu",
|
||||||
"edt_conf_instC_v4lEnable_expl": "Umożliwia przechwytywanie USB dla tego kontrolera LED",
|
"edt_conf_instC_v4lEnable_expl": "Umożliwia przechwytywanie obrazu z graberra USB dla tego kontrolera LED",
|
||||||
"edt_conf_instC_v4lEnable_title": "Włącz przechwytywanie USB",
|
"edt_conf_instC_v4lEnable_title": "Włącz przechwytywanie USB",
|
||||||
"edt_conf_instCapture_heading_title": "Instancja przechwytywania",
|
"edt_conf_instCapture_heading_title": "Instancja przechwytywania",
|
||||||
"edt_conf_js_heading_title": "Server JSON",
|
"edt_conf_js_heading_title": "Server JSON",
|
||||||
@ -366,7 +367,15 @@
|
|||||||
"edt_conf_pbs_timeout_title": "Timeout",
|
"edt_conf_pbs_timeout_title": "Timeout",
|
||||||
"edt_conf_smooth_continuousOutput_expl": "Zaktualizuj diody LED, nawet jeśli na obrazie nie ma żadnych zmian.",
|
"edt_conf_smooth_continuousOutput_expl": "Zaktualizuj diody LED, nawet jeśli na obrazie nie ma żadnych zmian.",
|
||||||
"edt_conf_smooth_continuousOutput_title": "Wysyłaj na wyjście",
|
"edt_conf_smooth_continuousOutput_title": "Wysyłaj na wyjście",
|
||||||
|
"edt_conf_smooth_decay_expl": "Szybkość rozpadu. 1 jest liniowa, większe wartości dają silniejszy efekt.",
|
||||||
|
"edt_conf_smooth_decay_title": "Moc rozmycia",
|
||||||
|
"edt_conf_smooth_dithering_expl": "Popraw dokładność odwzorowania kolorów przy dużych szybkościach wyświetlania, zmieniając kolory na przemian.",
|
||||||
|
"edt_conf_smooth_dithering_title": "Dithering",
|
||||||
"edt_conf_smooth_heading_title": "Wygładzanie",
|
"edt_conf_smooth_heading_title": "Wygładzanie",
|
||||||
|
"edt_conf_smooth_interpolationRate_expl": "Szybkość obliczania wygładzanych ramek pośrednich.",
|
||||||
|
"edt_conf_smooth_interpolationRate_title": "Współczynnik interpolacji",
|
||||||
|
"edt_conf_smooth_outputRate_expl": "Prędkość wyjściowa do twojego kontrolera led.",
|
||||||
|
"edt_conf_smooth_outputRate_title": "Szybkość wyjściowa",
|
||||||
"edt_conf_smooth_time_ms_expl": "Jak długo wygładzanie powinno zbierać zdjęcia?",
|
"edt_conf_smooth_time_ms_expl": "Jak długo wygładzanie powinno zbierać zdjęcia?",
|
||||||
"edt_conf_smooth_time_ms_title": "Czas",
|
"edt_conf_smooth_time_ms_title": "Czas",
|
||||||
"edt_conf_smooth_type_expl": "Rodzaj wygładzania.",
|
"edt_conf_smooth_type_expl": "Rodzaj wygładzania.",
|
||||||
@ -377,19 +386,19 @@
|
|||||||
"edt_conf_smooth_updateFrequency_title": "Częstotliwość aktualizacji",
|
"edt_conf_smooth_updateFrequency_title": "Częstotliwość aktualizacji",
|
||||||
"edt_conf_v4l2_blueSignalThreshold_expl": "Przyciemnia niskie wartości niebieskiego (rozpoznawane jako czarny)",
|
"edt_conf_v4l2_blueSignalThreshold_expl": "Przyciemnia niskie wartości niebieskiego (rozpoznawane jako czarny)",
|
||||||
"edt_conf_v4l2_blueSignalThreshold_title": "Niebieski próg sygnału",
|
"edt_conf_v4l2_blueSignalThreshold_title": "Niebieski próg sygnału",
|
||||||
"edt_conf_v4l2_cecDetection_expl": "Jeśli jest włączone, przechwytywanie USB zostanie tymczasowo wyłączone, gdy zdarzenie gotowości CEC zostanie otrzymane z magistrali HDMI.",
|
"edt_conf_v4l2_cecDetection_expl": "Jeśli jest włączone, przechwytywanie USB zostanie tymczasowo wyłączone, gdy zdarzenie CEC - stanu czuwania zostanie otrzymane z magistrali HDMI.",
|
||||||
"edt_conf_v4l2_cecDetection_title": "Detekcja CEC",
|
"edt_conf_v4l2_cecDetection_title": "Detekcja CEC",
|
||||||
"edt_conf_v4l2_cropBottom_expl": "Liczba pikseli na dole, które są usuwane z obrazu.",
|
"edt_conf_v4l2_cropBottom_expl": "Liczba pikseli na dole które zostaną usunięte z obrazu.",
|
||||||
"edt_conf_v4l2_cropBottom_title": "Kadruj w dół",
|
"edt_conf_v4l2_cropBottom_title": "Kadruj w dół",
|
||||||
"edt_conf_v4l2_cropLeft_expl": "Liczba pikseli po lewej stronie, które zostały usunięte z obrazu.",
|
"edt_conf_v4l2_cropLeft_expl": "Liczba pikseli po lewej stronie, które zostaną usunięte z obrazu.",
|
||||||
"edt_conf_v4l2_cropLeft_title": "Kadruj w lewo",
|
"edt_conf_v4l2_cropLeft_title": "Kadruj w lewo",
|
||||||
"edt_conf_v4l2_cropRight_expl": "Liczba pikseli po prawej stronie, które zostały usunięte z obrazu.",
|
"edt_conf_v4l2_cropRight_expl": "Liczba pikseli po prawej stronie, które zostaną usunięte z obrazu.",
|
||||||
"edt_conf_v4l2_cropRight_title": "Kadruj w prawo",
|
"edt_conf_v4l2_cropRight_title": "Kadruj w prawo",
|
||||||
"edt_conf_v4l2_cropTop_expl": "Liczba pikseli w górnej części, które są usuwane z obrazu.",
|
"edt_conf_v4l2_cropTop_expl": "Liczba pikseli w górnej części, które zostaną usunięte z obrazu.",
|
||||||
"edt_conf_v4l2_cropTop_title": "Kadruj w górę",
|
"edt_conf_v4l2_cropTop_title": "Kadruj w górę",
|
||||||
"edt_conf_v4l2_device_expl": "Ścieżka do interfejsu przechwytywania USB. Ustaw na „auto” dla automatycznego wykrywania. Przykład: '/dev/video0'",
|
"edt_conf_v4l2_device_expl": "Ścieżka do interfejsu przechwytywania USB. Ustaw na „auto” dla automatycznego wykrywania. Przykład: '/dev/video0'",
|
||||||
"edt_conf_v4l2_device_title": "Urządzenie",
|
"edt_conf_v4l2_device_title": "Urządzenie",
|
||||||
"edt_conf_v4l2_framerate_expl": "Obsługiwane klatki na sekundę aktywnego urządzenia",
|
"edt_conf_v4l2_framerate_expl": "Częstotliwość odświeżania obrazu aktywnego urządzenia (kl/s)",
|
||||||
"edt_conf_v4l2_framerate_title": "Klatki na sekundę",
|
"edt_conf_v4l2_framerate_title": "Klatki na sekundę",
|
||||||
"edt_conf_v4l2_greenSignalThreshold_expl": "Przyciemnia niskie wartości zielone (rozpoznawane jako czarne)",
|
"edt_conf_v4l2_greenSignalThreshold_expl": "Przyciemnia niskie wartości zielone (rozpoznawane jako czarne)",
|
||||||
"edt_conf_v4l2_greenSignalThreshold_title": "Próg sygnału zielonego",
|
"edt_conf_v4l2_greenSignalThreshold_title": "Próg sygnału zielonego",
|
||||||
@ -456,6 +465,8 @@
|
|||||||
"edt_dev_spec_dithering_title": "Rozpraszanie",
|
"edt_dev_spec_dithering_title": "Rozpraszanie",
|
||||||
"edt_dev_spec_dmaNumber_title": "Kanał DMA",
|
"edt_dev_spec_dmaNumber_title": "Kanał DMA",
|
||||||
"edt_dev_spec_gamma_title": "Gamma",
|
"edt_dev_spec_gamma_title": "Gamma",
|
||||||
|
"edt_dev_spec_globalBrightnessControlMaxLevel_title": "Maksymalne napięcie",
|
||||||
|
"edt_dev_spec_globalBrightnessControlThreshold_title": "Adaptacyjny próg poboru prądu",
|
||||||
"edt_dev_spec_gpioBcm_title": "Pin GPIO",
|
"edt_dev_spec_gpioBcm_title": "Pin GPIO",
|
||||||
"edt_dev_spec_gpioMap_title": "Mapowanie GPIO",
|
"edt_dev_spec_gpioMap_title": "Mapowanie GPIO",
|
||||||
"edt_dev_spec_gpioNumber_title": "Numer GPIO",
|
"edt_dev_spec_gpioNumber_title": "Numer GPIO",
|
||||||
@ -556,7 +567,7 @@
|
|||||||
"edt_eff_fadeouttime": "Czas wygaszania",
|
"edt_eff_fadeouttime": "Czas wygaszania",
|
||||||
"edt_eff_flag_header": "Flagi",
|
"edt_eff_flag_header": "Flagi",
|
||||||
"edt_eff_flag_header_desc": "Niech twoje diody świecą jasno w kolorach twojego kraju. Możesz wybrać więcej niż jedną flagę, a zmieniają się one w zależności od czasu przerwy.",
|
"edt_eff_flag_header_desc": "Niech twoje diody świecą jasno w kolorach twojego kraju. Możesz wybrać więcej niż jedną flagę, a zmieniają się one w zależności od czasu przerwy.",
|
||||||
"edt_eff_fps": "Klatki na sekundę",
|
"edt_eff_fps": "Odświeżanie",
|
||||||
"edt_eff_frequency": "Częstotliwość",
|
"edt_eff_frequency": "Częstotliwość",
|
||||||
"edt_eff_gif_header": "Gify",
|
"edt_eff_gif_header": "Gify",
|
||||||
"edt_eff_gif_header_desc": "Ten efekt odtwarza pliki .gif, zapewniając prosty efekt jak pętla wideo jako efekt.",
|
"edt_eff_gif_header_desc": "Ten efekt odtwarza pliki .gif, zapewniając prosty efekt jak pętla wideo jako efekt.",
|
||||||
@ -674,7 +685,7 @@
|
|||||||
"effectsconfigurator_label_intro": "Twórz nowe niestandardowe efekty (na podstawie wbudowanych), które możesz dostosować do swoich upodobań. Dostępne są różne opcje, takie jak kolor, prędkość i kierunek, w zależności od wybranego efektu podstawowego.",
|
"effectsconfigurator_label_intro": "Twórz nowe niestandardowe efekty (na podstawie wbudowanych), które możesz dostosować do swoich upodobań. Dostępne są różne opcje, takie jak kolor, prędkość i kierunek, w zależności od wybranego efektu podstawowego.",
|
||||||
"general_access_advanced": "Zaawansowany",
|
"general_access_advanced": "Zaawansowany",
|
||||||
"general_access_default": "Standardowy (Domyślny)",
|
"general_access_default": "Standardowy (Domyślny)",
|
||||||
"general_access_expert": "Ekspert",
|
"general_access_expert": "Ekspercki",
|
||||||
"general_btn_back": "Wstecz",
|
"general_btn_back": "Wstecz",
|
||||||
"general_btn_cancel": "Anuluj",
|
"general_btn_cancel": "Anuluj",
|
||||||
"general_btn_continue": "Kontynuuj",
|
"general_btn_continue": "Kontynuuj",
|
||||||
@ -699,20 +710,22 @@
|
|||||||
"general_col_blue": "niebieski",
|
"general_col_blue": "niebieski",
|
||||||
"general_col_green": "zielony",
|
"general_col_green": "zielony",
|
||||||
"general_col_red": "czerwony",
|
"general_col_red": "czerwony",
|
||||||
"general_comp_BLACKBORDER": "Usuń czarne pasy",
|
"general_comp_BLACKBORDER": "Wykryw. czarnych pasków",
|
||||||
"general_comp_BOBLIGHTSERVER": "Serwer Boblight",
|
"general_comp_BOBLIGHTSERVER": "Serwer Boblight",
|
||||||
"general_comp_FLATBUFSERVER": "Serwer FlatBuffers",
|
"general_comp_FLATBUFSERVER": "Serwer FlatBuffers",
|
||||||
"general_comp_FORWARDER": "Przekazyw. wejścia",
|
"general_comp_FORWARDER": "Przekierowanie",
|
||||||
"general_comp_GRABBER": "Przechwytyw. pulpitu",
|
"general_comp_GRABBER": "Przechwytyw. pulpitu",
|
||||||
"general_comp_LEDDEVICE": "Urządzenie LED",
|
"general_comp_LEDDEVICE": "Urządzenie LED",
|
||||||
"general_comp_PROTOSERVER": "Serwer protokołu buforowania",
|
"general_comp_PROTOSERVER": "Serwer protokołu buforowania",
|
||||||
"general_comp_SMOOTHING": "Wygładzanie animacji",
|
"general_comp_SMOOTHING": "Wygładzanie animacji",
|
||||||
"general_comp_V4L": "Przechwytyw. USB",
|
"general_comp_V4L": "Przechwytyw. USB",
|
||||||
|
"general_country_cn": "Chiny",
|
||||||
"general_country_de": "Niemcy (Germany)",
|
"general_country_de": "Niemcy (Germany)",
|
||||||
"general_country_es": "Hiszpania (Spain)",
|
"general_country_es": "Hiszpania (Spain)",
|
||||||
"general_country_fr": "Francja (France)",
|
"general_country_fr": "Francja (France)",
|
||||||
"general_country_it": "Włochy (Italy)",
|
"general_country_it": "Włochy (Italy)",
|
||||||
"general_country_nl": "Holandia (Netherlands)",
|
"general_country_nl": "Holandia (Netherlands)",
|
||||||
|
"general_country_ru": "Rosja",
|
||||||
"general_country_uk": "Wielka Brytania (United Kingdom)",
|
"general_country_uk": "Wielka Brytania (United Kingdom)",
|
||||||
"general_country_us": "Stany Zjednoczone (United States)",
|
"general_country_us": "Stany Zjednoczone (United States)",
|
||||||
"general_speech_cs": "Czeski (Czech)",
|
"general_speech_cs": "Czeski (Czech)",
|
||||||
@ -721,13 +734,15 @@
|
|||||||
"general_speech_es": "Hiszpański (Spanish)",
|
"general_speech_es": "Hiszpański (Spanish)",
|
||||||
"general_speech_fr": "Francuski (French)",
|
"general_speech_fr": "Francuski (French)",
|
||||||
"general_speech_it": "Włoski (Italian)",
|
"general_speech_it": "Włoski (Italian)",
|
||||||
"general_speech_nl": "Holenderski (Dutch)",
|
"general_speech_nl": "Niderlandzki (Nederlands)",
|
||||||
"general_speech_pl": "Polski (Polish)",
|
"general_speech_pl": "Polski (Artur Klimek)",
|
||||||
"general_speech_ro": "Rumuński (Romanian)",
|
"general_speech_ro": "Rumuński (Romanian)",
|
||||||
|
"general_speech_ru": "Rosyjski (Russian)",
|
||||||
"general_speech_sv": "Szwedzki (Swedish)",
|
"general_speech_sv": "Szwedzki (Swedish)",
|
||||||
"general_speech_tr": "Turecki (Turkish)",
|
"general_speech_tr": "Turecki (Turkish)",
|
||||||
"general_speech_vi": "Wietnamski (Vietnamese)",
|
"general_speech_vi": "Wietnamski (Vietnamese)",
|
||||||
"general_webui_title": "Hyperion - Konfiguracja",
|
"general_speech_zh-CN": "Chiński uproszczony (Chinese simplified)",
|
||||||
|
"general_webui_title": "Hyperion - Panel konfiguracji",
|
||||||
"general_wiki_moreto": "Więcej informacji o \"$1\" dostępne jest na naszej Wikipedii",
|
"general_wiki_moreto": "Więcej informacji o \"$1\" dostępne jest na naszej Wikipedii",
|
||||||
"infoDialog_checklist_title": "Lista kontrolna!",
|
"infoDialog_checklist_title": "Lista kontrolna!",
|
||||||
"infoDialog_effconf_created_text": "Efekt „$1” został utworzony pomyślnie!",
|
"infoDialog_effconf_created_text": "Efekt „$1” został utworzony pomyślnie!",
|
||||||
@ -804,8 +819,10 @@
|
|||||||
"remote_maptype_intro": "Zwykle układ diody jest odpowiedzialny za ustawienie rodzaju obrazu wyświetlanego na diodach, możesz to tutaj zmienić. $1.",
|
"remote_maptype_intro": "Zwykle układ diody jest odpowiedzialny za ustawienie rodzaju obrazu wyświetlanego na diodach, możesz to tutaj zmienić. $1.",
|
||||||
"remote_maptype_label": "Rodzaj mapowania",
|
"remote_maptype_label": "Rodzaj mapowania",
|
||||||
"remote_maptype_label_multicolor_mean": "Kolorowy",
|
"remote_maptype_label_multicolor_mean": "Kolorowy",
|
||||||
"remote_maptype_label_unicolor_mean": "Skala odcieni szarości",
|
"remote_maptype_label_unicolor_mean": "Mieszaj kolory do jednego koloru",
|
||||||
"remote_optgroup_syseffets": "Efekty standardowe",
|
"remote_optgroup_syseffets": "Efekty standardowe",
|
||||||
|
"remote_optgroup_templates_custom": "Szablony użytkownika",
|
||||||
|
"remote_optgroup_templates_system": "Szablony systemowe",
|
||||||
"remote_optgroup_usreffets": "Efekty użytkownika",
|
"remote_optgroup_usreffets": "Efekty użytkownika",
|
||||||
"remote_videoMode_2D": "2D",
|
"remote_videoMode_2D": "2D",
|
||||||
"remote_videoMode_3DSBS": "3DSBS",
|
"remote_videoMode_3DSBS": "3DSBS",
|
||||||
@ -867,6 +884,10 @@
|
|||||||
"wiz_cc_testintrok": "Kliknij przycisk poniżej, aby rozpocząć testowe wideo.",
|
"wiz_cc_testintrok": "Kliknij przycisk poniżej, aby rozpocząć testowe wideo.",
|
||||||
"wiz_cc_testintrowok": "Sprawdź poniższy link, aby pobrać filmy testowe:",
|
"wiz_cc_testintrowok": "Sprawdź poniższy link, aby pobrać filmy testowe:",
|
||||||
"wiz_cc_title": "Kreator kalibracji kolorów",
|
"wiz_cc_title": "Kreator kalibracji kolorów",
|
||||||
|
"wiz_cololight_desc2": "Teraz wybierz, który \"Cololight\" chcesz dodać. Aby zidentyfikować pojedyncze światła, naciśnij przycisk po prawej stronie.",
|
||||||
|
"wiz_cololight_intro1": "Ten kreator konfiguruje Hyperion dla systemu Cololight. Funkcje to automatyczne wykrywanie Cololight i automatyczne dostrajanie ustawień Hyperiona! W skrócie: wystarczy kilka kliknięć i gotowe! <br /> Uwaga: w przypadku Cololight Strip może być konieczne ręczne skorygowanie liczby i układu diod LED.",
|
||||||
|
"wiz_cololight_noprops": "Nie można pobrać konfiguracji urządzenia - ręcznie zdefiniuj liczbę diod LED sprzętu",
|
||||||
|
"wiz_cololight_title": "Kreator Cololight",
|
||||||
"wiz_guideyou": "$1 poprowadzi Cię przez konfigurację. Wystarczy nacisnąć przycisk!",
|
"wiz_guideyou": "$1 poprowadzi Cię przez konfigurację. Wystarczy nacisnąć przycisk!",
|
||||||
"wiz_hue_blinkblue": "ID $1 świeci na niebiesko",
|
"wiz_hue_blinkblue": "ID $1 świeci na niebiesko",
|
||||||
"wiz_hue_clientkey": "Klucz klienta:",
|
"wiz_hue_clientkey": "Klucz klienta:",
|
||||||
@ -900,6 +921,7 @@
|
|||||||
"wiz_identify_light": "Zidentyfikuj 1 $",
|
"wiz_identify_light": "Zidentyfikuj 1 $",
|
||||||
"wiz_ids_disabled": "Dezaktywowane",
|
"wiz_ids_disabled": "Dezaktywowane",
|
||||||
"wiz_ids_entire": "Cały obraz",
|
"wiz_ids_entire": "Cały obraz",
|
||||||
|
"wiz_noLights": "Nie znaleziono 1$! Podłącz światła do sieci lub skonfiguruj je ręcznie.",
|
||||||
"wiz_pos": "Pozycja/Stan",
|
"wiz_pos": "Pozycja/Stan",
|
||||||
"wiz_rgb_expl": "Kolorowa kropka będzie zmieniać kolor (czerwony, zielony) co x sekund, jednocześnie diody LED przełączają się na ten kolor. Odpowiedz na pytania u dołu, aby sprawdzić / poprawić kolejność bajtów.",
|
"wiz_rgb_expl": "Kolorowa kropka będzie zmieniać kolor (czerwony, zielony) co x sekund, jednocześnie diody LED przełączają się na ten kolor. Odpowiedz na pytania u dołu, aby sprawdzić / poprawić kolejność bajtów.",
|
||||||
"wiz_rgb_intro1": "Ten kreator poprowadzi Cię przez proces znajdowania właściwej kolejności kolorów dla diod LED. Kliknij, aby kontynuować.",
|
"wiz_rgb_intro1": "Ten kreator poprowadzi Cię przez proces znajdowania właściwej kolejności kolorów dla diod LED. Kliknij, aby kontynuować.",
|
||||||
|
969
assets/webconfig/i18n/pt-br.json
Normal file
@ -0,0 +1,969 @@
|
|||||||
|
{
|
||||||
|
"InfoDialog_access_text": "Dependendo do nível de configuração, você pode ajustar mais opções ou obter acesso a mais recursos. Recomendado é o nível \"Padrão\".",
|
||||||
|
"InfoDialog_access_title": "Nível de configurações",
|
||||||
|
"InfoDialog_changePassword_success": "Senha salva com sucesso!",
|
||||||
|
"InfoDialog_changePassword_title": "Alterar a senha",
|
||||||
|
"InfoDialog_iswitch_text": "Se você executar o Hyperion mais de uma vez em sua rede local, poderá alternar entre as configurações da web. Selecione a instância do Hyperion abaixo e mude!",
|
||||||
|
"InfoDialog_iswitch_title": "Switcher Hyperion",
|
||||||
|
"InfoDialog_lang_text": "Se não gostar do resultado da detecção automática de idioma, você pode sobrescrevê-lo aqui.",
|
||||||
|
"InfoDialog_lang_title": "Configuração de idioma",
|
||||||
|
"InfoDialog_nowrite_foottext": "O WebUI será desbloqueado automaticamente depois que você resolver o problema!",
|
||||||
|
"InfoDialog_nowrite_text": "O Hyperion não pode gravar em seu arquivo de configuração carregado atualmente. Repare as permissões do arquivo para continuar.",
|
||||||
|
"InfoDialog_nowrite_title": "erro de permissão de gravação!",
|
||||||
|
"about_3rd_party_licenses": "Licenças de terceiros",
|
||||||
|
"about_3rd_party_licenses_error": "Tivemos problemas para coletar informações de licenças de terceiros na web. <br /> Por favor, siga este link para o recurso GitHub.",
|
||||||
|
"about_build": "Build",
|
||||||
|
"about_builddate": "Data da Build",
|
||||||
|
"about_contribute": "Desenvolva ainda mais o Hyperion conosco!",
|
||||||
|
"about_credits": "Créditos a todos esses desenvolvedores!",
|
||||||
|
"about_resources": "$1 bibliotecas",
|
||||||
|
"about_translations": "Traduções",
|
||||||
|
"about_version": "Versão",
|
||||||
|
"conf_colors_blackborder_intro": "Ignore as barras pretas onde quer que estejam. Cada modo usa outro algoritmo de detecção que é ajustado para situações especiais. Aumente o limite se não funcionar para você.",
|
||||||
|
"conf_colors_color_intro": "Crie um ou mais perfis de calibração, ajuste cada cor, brilho, linearização e muito mais.",
|
||||||
|
"conf_colors_smoothing_intro": "A suavização nivela as alterações de cor / brilho para reduzir a distração irritante.",
|
||||||
|
"conf_effect_bgeff_intro": "Defina a cor/efeito de fundo, que é exibida quando o Hyperion esta \"ocioso\". Sempre começa com o canal prioritário 255.",
|
||||||
|
"conf_effect_fgeff_intro": "Defina um efeito ou cor de inicialização, que será mostrado durante a inicialização do Hyperion pelo tempo determinado.",
|
||||||
|
"conf_effect_path_intro": "Carregue efeitos a partir dos caminhos definidos. Adicionalmente, você pode desabilitar efeitos individuais pelo nome, para escondê-los da lista de efeitos.",
|
||||||
|
"conf_general_createInst_btn": "Criar Instância",
|
||||||
|
"conf_general_impexp_expbtn": "Exportar",
|
||||||
|
"conf_general_impexp_impbtn": "Importar",
|
||||||
|
"conf_general_impexp_l1": "Importe uma configuração selecionando abaixo um arquivo de configuração e clicando em \"Importar\".",
|
||||||
|
"conf_general_impexp_l2": "Exporte um arquivo de configuração clicando em \"Exportar\". Seu navegador irá iniciar um download.",
|
||||||
|
"conf_general_impexp_title": "Configurações de Importação/Exportação",
|
||||||
|
"conf_general_inst_actionhead": "Ação",
|
||||||
|
"conf_general_inst_delreq_h": "Excluir instância de hardware de LED",
|
||||||
|
"conf_general_inst_delreq_t": "Tem certeza de que deseja excluir a instância \"$1\"? Todas as configurações serão excluídas também.",
|
||||||
|
"conf_general_inst_desc": "Use múltiplos dispositivos de LED ao mesmo tempo. Cada instância é executada independente uma da outra, o que permite diferentes layouts de LED e configurações de calibração. As instâncias em execução estão disponíveis na barra de ícones superior",
|
||||||
|
"conf_general_inst_name_title": "Nome da nova instância",
|
||||||
|
"conf_general_inst_namehead": "Nome da instância",
|
||||||
|
"conf_general_inst_renreq_t": "Insira um novo nome para sua instância no campo abaixo.",
|
||||||
|
"conf_general_inst_title": "Gerenciamento de instância de hardware LED",
|
||||||
|
"conf_general_intro": "Configurações básicas do Hyperion e da WebUI que não se encaixam em outra categoria.",
|
||||||
|
"conf_general_label_title": "Configurações gerais",
|
||||||
|
"conf_grabber_fg_intro": "A captura da plataforma é a captura do seu sistema local como fonte de entrada em que o Hyperion está instalado.",
|
||||||
|
"conf_grabber_v4l_intro": "Captura USB é um dispositivo (de captura) conectado via USB que é usado para inserir imagens de origem para processamento.",
|
||||||
|
"conf_helptable_expl": "Explicação",
|
||||||
|
"conf_helptable_option": "Opção",
|
||||||
|
"conf_leds_config_error": "Erro na configuração do layout LED / LED",
|
||||||
|
"conf_leds_config_warning": "Verifique sua configuração de layout de LED / LED",
|
||||||
|
"conf_leds_contr_label_contrtype": "Tipo de controlador:",
|
||||||
|
"conf_leds_device_info_log": "Caso seus LEDs não funcionem, verifique aqui se há erros:",
|
||||||
|
"conf_leds_device_intro": "Hyperion suporta vários controladores para transmitir sinal para o seu dispositivo. Selecione o contolador de LED da lista e configure. Nós escolhemos as melhores configurações padrão para cada dispositivo.",
|
||||||
|
"conf_leds_error_hwled_gt_layout": "A contagem de LEDs do hardware ($1) é maior do que os LEDs configurados via layout ($2),<br>$3 {{plural:$3|LED|LEDs}} permanecerá preto se você continuar.",
|
||||||
|
"conf_leds_error_hwled_lt_layout": "A contagem de LEDs do hardware ($1) é menor do que os LEDs configurados por layout ($2).<br>O número de LEDs configurados no layout não deve exceder os LEDs disponíveis",
|
||||||
|
"conf_leds_layout_advanced": "Configurações Avançadas",
|
||||||
|
"conf_leds_layout_blacklist_num_title": "Número de LEDs",
|
||||||
|
"conf_leds_layout_blacklist_rule_title": "Regra da lista negra",
|
||||||
|
"conf_leds_layout_blacklist_rules_title": "Regras da lista negra",
|
||||||
|
"conf_leds_layout_blacklist_start_title": "LED de início",
|
||||||
|
"conf_leds_layout_blacklistleds_title": "LEDs da lista negra",
|
||||||
|
"conf_leds_layout_btn_checklist": "Mostrar checklist",
|
||||||
|
"conf_leds_layout_button_savelay": "Salvar layout",
|
||||||
|
"conf_leds_layout_button_updsim": "Atualizar pre-visualização",
|
||||||
|
"conf_leds_layout_checkp1": "O led preto é sempre o seu primeiro led, o primeiro led é o ponto onde o fio de sinal(dados) começa.",
|
||||||
|
"conf_leds_layout_checkp2": "O layout é sempre em relação a frente da sua TV, nunca da traseira.",
|
||||||
|
"conf_leds_layout_checkp3": "Certifique-se que a direção está certa. Os LEDs cinzas representam os LEDs 2 e 3 para visualizar a direção dos dados.",
|
||||||
|
"conf_leds_layout_checkp4": "Espaço sem LED: Para criar um espaço, primeiro defina a quantidade de leds que estão no Topo / Base / Esquerda / Direita e depois defina o comprimento do espaço para remover a quantidade desejada de leds. Modifique a posição da lacuna até que corresponda.\n",
|
||||||
|
"conf_leds_layout_cl_bottom": "Base",
|
||||||
|
"conf_leds_layout_cl_bottomleft": "Base Esquerda (Canto)",
|
||||||
|
"conf_leds_layout_cl_bottomright": "Base Direita (Canto)",
|
||||||
|
"conf_leds_layout_cl_cornergap": "Espaçamento Canto",
|
||||||
|
"conf_leds_layout_cl_edgegap": "Espaçamento Borda",
|
||||||
|
"conf_leds_layout_cl_gaglength": "Comprimento da lacuna",
|
||||||
|
"conf_leds_layout_cl_gappos": "Posição da lacuna",
|
||||||
|
"conf_leds_layout_cl_hleddepth": "Profundidade de LED horizontal",
|
||||||
|
"conf_leds_layout_cl_inppos": "Posição entrada do sinal",
|
||||||
|
"conf_leds_layout_cl_left": "Esquerda",
|
||||||
|
"conf_leds_layout_cl_leftbottom": "Esquerda 50% - 100% Base",
|
||||||
|
"conf_leds_layout_cl_leftmiddle": "Esquerda 25% - 75% Meio",
|
||||||
|
"conf_leds_layout_cl_lefttop": "Esquerda 0% - 50% Topo",
|
||||||
|
"conf_leds_layout_cl_overlap": "Sobreposição",
|
||||||
|
"conf_leds_layout_cl_reversdir": "Inverter direção",
|
||||||
|
"conf_leds_layout_cl_right": "Direita",
|
||||||
|
"conf_leds_layout_cl_rightbottom": "Direita 50% - 100% Base",
|
||||||
|
"conf_leds_layout_cl_rightmiddle": "Direita 25% - 75% Meio",
|
||||||
|
"conf_leds_layout_cl_righttop": "Direita 0% - 50% Topo",
|
||||||
|
"conf_leds_layout_cl_top": "Topo",
|
||||||
|
"conf_leds_layout_cl_topleft": "Topo Esquerdo (Canto)",
|
||||||
|
"conf_leds_layout_cl_topright": "Topo Direito (Canto)",
|
||||||
|
"conf_leds_layout_cl_vleddepth": "Profundidade de LED vertical",
|
||||||
|
"conf_leds_layout_frame": "Layout Clássico (MOLDURA LED)",
|
||||||
|
"conf_leds_layout_generatedconf": "Configuração de LED gerado / atual",
|
||||||
|
"conf_leds_layout_intro": "Você tambem precisa do layout dos leds, que refere a posição dos leds. O layout clássico que é usado geralmente é a moldura de tv, mas também suportamos a criação de matriz de leds (paredes de leds). A vista desse layout é sempre da FRENTE da tv.",
|
||||||
|
"conf_leds_layout_ma_cabling": "Cabeamento",
|
||||||
|
"conf_leds_layout_ma_horiz": "Horizontal",
|
||||||
|
"conf_leds_layout_ma_optbottomleft": "Base esquerda",
|
||||||
|
"conf_leds_layout_ma_optbottomright": "Base direita",
|
||||||
|
"conf_leds_layout_ma_opthoriz": "Horizontal",
|
||||||
|
"conf_leds_layout_ma_optparallel": "Paralelo",
|
||||||
|
"conf_leds_layout_ma_optsnake": "Cobra",
|
||||||
|
"conf_leds_layout_ma_opttopleft": "Topo Esquerdo",
|
||||||
|
"conf_leds_layout_ma_opttopright": "Topo Direito",
|
||||||
|
"conf_leds_layout_ma_optvert": "Vertical",
|
||||||
|
"conf_leds_layout_ma_order": "Ordem",
|
||||||
|
"conf_leds_layout_ma_position": "Entrada",
|
||||||
|
"conf_leds_layout_ma_vert": "Vertical",
|
||||||
|
"conf_leds_layout_matrix": "Layout matriz (PAREDE DE LED)",
|
||||||
|
"conf_leds_layout_pbl": "Ponto Base Esquerda",
|
||||||
|
"conf_leds_layout_pbr": "Ponto Base Direita",
|
||||||
|
"conf_leds_layout_peview": "Prévia do layout do LED",
|
||||||
|
"conf_leds_layout_preview_l1": "Esse é o seu primeiro LED (entrada/início)",
|
||||||
|
"conf_leds_layout_preview_l2": "Isso mostra a direção do efeito (segundo/terceiro led)",
|
||||||
|
"conf_leds_layout_preview_ledpower": "Máx. consumo de energia: $1 A",
|
||||||
|
"conf_leds_layout_preview_originCL": "Criado de: Layout Clássico (PAREDE DE LED)",
|
||||||
|
"conf_leds_layout_preview_originMA": "Criado de: Layout Matriz (PAREDE DE LED)",
|
||||||
|
"conf_leds_layout_preview_originTEXT": "Criado a partir de: Textfield",
|
||||||
|
"conf_leds_layout_preview_totalleds": "Total de LEDs: $1",
|
||||||
|
"conf_leds_layout_ptl": "Ponto Topo Esquerdo",
|
||||||
|
"conf_leds_layout_ptlh": "Horizontal",
|
||||||
|
"conf_leds_layout_ptln": "Pontos Triplos",
|
||||||
|
"conf_leds_layout_ptlv": "Vertical",
|
||||||
|
"conf_leds_layout_ptr": "Ponto Topo Direito",
|
||||||
|
"conf_leds_layout_textf1": "Este campo de texto mostra por padrão seu layout carregado atual e será sobrescrito se você gerar um novo com as opções acima. Opcional, você pode realizar outras edições.",
|
||||||
|
"conf_leds_nav_label_ledcontroller": "Controlador LED",
|
||||||
|
"conf_leds_nav_label_ledlayout": "Posicionamento LED",
|
||||||
|
"conf_leds_note_layout_overwrite": "Nota: Sobrescrever cria um layout padrão para {{plural:$1| $1 LED | todos os $1 LEDs}} fornecidos pela contagem de LED do hardware",
|
||||||
|
"conf_leds_optgroup_RPiGPIO": "RPi CPIO",
|
||||||
|
"conf_leds_optgroup_RPiPWM": "RPi PWM",
|
||||||
|
"conf_leds_optgroup_RPiSPI": "RPi SPI",
|
||||||
|
"conf_leds_optgroup_network": "Rede",
|
||||||
|
"conf_leds_optgroup_other": "Outro",
|
||||||
|
"conf_leds_optgroup_usb": "USB/Serial",
|
||||||
|
"conf_logging_btn_autoscroll": "Rolagem automática",
|
||||||
|
"conf_logging_btn_pbupload": "Faça upload de um relatório para solicitações de suporte",
|
||||||
|
"conf_logging_contpolicy": "Política de Privacidade do Relatório",
|
||||||
|
"conf_logging_label_intro": "Área para verificar as mensagens de log, você verá mais ou menos informações dependendo do nível de log definido.",
|
||||||
|
"conf_logging_lastreports": "Relatórios anteriores",
|
||||||
|
"conf_logging_logoutput": "Saída de log",
|
||||||
|
"conf_logging_nomessage": "Nenhuma mensagem de log disponível.",
|
||||||
|
"conf_logging_report": "Relatório",
|
||||||
|
"conf_logging_uplfailed": "Falha no envio! Por favor, cheque sua conexão com a internet!",
|
||||||
|
"conf_logging_uploading": "Prepare os dados ...",
|
||||||
|
"conf_logging_uplpolicy": "Ao clicar nesse botão você aceita",
|
||||||
|
"conf_logging_yourlink": "Link para o seu relatório",
|
||||||
|
"conf_network_bobl_intro": "Receptor para Boblight",
|
||||||
|
"conf_network_createToken_btn": "Criar Token",
|
||||||
|
"conf_network_fbs_intro": "Receptor Google Flatbuffers. Usado para transmissão rápida de imagens.",
|
||||||
|
"conf_network_forw_intro": "Encaminhe todas as entradas para uma segunda instância do Hyperion que pode ser conduzida com outro controlador de led",
|
||||||
|
"conf_network_json_intro": "O JSON-RPC-Port de todas as instâncias do Hyperion, usado para controle remoto.",
|
||||||
|
"conf_network_net_intro": "Configurações relacionadas à rede que são aplicadas a todos os serviços de rede.",
|
||||||
|
"conf_network_proto_intro": "A porta PROTO de todas as instâncias do Hyperion, usada para fluxos de imagem (HyperionScreenCap, Kodi Addon, Android Hyperion Grabber, ...)",
|
||||||
|
"conf_network_tok_cidhead": "Descrição",
|
||||||
|
"conf_network_tok_comment_title": "Descrição do Token",
|
||||||
|
"conf_network_tok_desc": "Os tokens concedem a outros aplicativos acesso à API do Hyperion, um aplicativo pode solicitar um token onde você precisa aceitá-lo ou você mesmo pode criá-lo abaixo. Esses tokens são necessários apenas quando a \"Autorização de API\" está ativada nas configurações de rede.",
|
||||||
|
"conf_network_tok_diaMsg": "Aqui está seu novo token, que pode ser usado para conceder a um aplicativo acesso à API do Hyperion. Por razões de segurança, você não pode visualizá-lo novamente, então use / anote.",
|
||||||
|
"conf_network_tok_diaTitle": "Novo Token Criado!",
|
||||||
|
"conf_network_tok_grantMsg": "Um aplicativo solicitou um token para obter acesso à API Hyperion. Você quer conceder acesso? Por favor, verifique as informações fornecidas!",
|
||||||
|
"conf_network_tok_grantT": "Token de solicitações de aplicativos",
|
||||||
|
"conf_network_tok_intro": "Aqui você pode criar e excluir tokens para autenticação de API. Os tokens criados serão exibidos apenas uma vez.",
|
||||||
|
"conf_network_tok_lastuse": "Último uso",
|
||||||
|
"conf_network_tok_title": "Gestão de Token",
|
||||||
|
"conf_webconfig_label_intro": "Definições de configuração da Web. Edite com sabedoria.",
|
||||||
|
"dashboard_active_instance": "Instância selecionada",
|
||||||
|
"dashboard_alert_message_confedit": "Sua configuração do Hyperion foi modificada. Para aplicar, reinicie o Hyperion.",
|
||||||
|
"dashboard_alert_message_confedit_t": "Configuração modificada",
|
||||||
|
"dashboard_alert_message_confsave_success": "Sua configuração do Hyperion foi salva com sucesso. Suas mudanças estão ativas.",
|
||||||
|
"dashboard_alert_message_confsave_success_t": "Configuração salva",
|
||||||
|
"dashboard_alert_message_disabled": "Essa instância está atualmente desabilitada! Para usá-la novamente, habilite-a na dashboard.",
|
||||||
|
"dashboard_alert_message_disabled_t": "Instância de hardware LED desabilitada",
|
||||||
|
"dashboard_componentbox_label_comp": "Componente",
|
||||||
|
"dashboard_componentbox_label_status": "Estado",
|
||||||
|
"dashboard_componentbox_label_title": "Estado dos componentes:",
|
||||||
|
"dashboard_infobox_label_currenthyp": "Sua versão do Hyperion:",
|
||||||
|
"dashboard_infobox_label_disableh": "Desabilitar instância: $1",
|
||||||
|
"dashboard_infobox_label_enableh": "Habilitar instância: $1",
|
||||||
|
"dashboard_infobox_label_instance": "Instância:",
|
||||||
|
"dashboard_infobox_label_latesthyp": "Última versão do Hyperion:",
|
||||||
|
"dashboard_infobox_label_platform": "Plataforma:",
|
||||||
|
"dashboard_infobox_label_ports": "Portas",
|
||||||
|
"dashboard_infobox_label_smartacc": "Acesso inteligente",
|
||||||
|
"dashboard_infobox_label_statush": "Estado do Hyperion:",
|
||||||
|
"dashboard_infobox_label_title": "Informação",
|
||||||
|
"dashboard_infobox_label_watchedversionbranch": "Branch da versão assistida:",
|
||||||
|
"dashboard_infobox_message_updatesuccess": "Você está rodando a versão mais recente do Hyperion.",
|
||||||
|
"dashboard_infobox_message_updatewarning": "Uma nova versão do Hyperion está disponível! ($1)",
|
||||||
|
"dashboard_label_intro": "O dashboard dá uma visão geral sobre o estado do Hyperion.",
|
||||||
|
"dashboard_message_default_password": "A senha padrão para o WebUi está definida. É altamente recomendável mudar isso.",
|
||||||
|
"dashboard_message_default_password_t": "A senha padrão do WebUI está definida",
|
||||||
|
"dashboard_message_do_not_show_again": "Não mostrar esta mensagem novamente",
|
||||||
|
"dashboard_message_global_setting": "As configurações nesta página não dependem de uma instância específica. As alterações serão armazenadas globalmente para todas as instâncias.",
|
||||||
|
"dashboard_message_global_setting_t": "Configuração independente de instância",
|
||||||
|
"dashboard_newsbox_label_title": "Blog do Hyperion",
|
||||||
|
"dashboard_newsbox_noconn": "Não é possível conectar-se ao servidor do Hyperion para pegar os últimos posts. Sua conexão com a internet está funcionando?",
|
||||||
|
"dashboard_newsbox_readmore": "Leia mais",
|
||||||
|
"dashboard_newsbox_visitblog": "Visite o Blog do Hyperion",
|
||||||
|
"edt_append_degree": "°",
|
||||||
|
"edt_append_hz": "hz",
|
||||||
|
"edt_append_leds": "LEDS",
|
||||||
|
"edt_append_ms": "ms",
|
||||||
|
"edt_append_ns": "ns",
|
||||||
|
"edt_append_percent": "%",
|
||||||
|
"edt_append_percent_h": "% hori",
|
||||||
|
"edt_append_percent_v": "% vert",
|
||||||
|
"edt_append_pixel": "Pixel",
|
||||||
|
"edt_append_s": "s",
|
||||||
|
"edt_append_sdegree": "s/grau",
|
||||||
|
"edt_conf_bb_blurRemoveCnt_expl": "Número de pixels que são removidos da borda detectada para eliminar o desfoque.",
|
||||||
|
"edt_conf_bb_blurRemoveCnt_title": "Desfocar Pixel",
|
||||||
|
"edt_conf_bb_borderFrameCnt_expl": "Número de quadros antes que uma borda detectada consistente seja definida.",
|
||||||
|
"edt_conf_bb_borderFrameCnt_title": "Molduras de borda",
|
||||||
|
"edt_conf_bb_heading_title": "Detector Barras Pretas",
|
||||||
|
"edt_conf_bb_maxInconsistentCnt_expl": "Número de quadros inconsistentes que são ignorados antes que uma nova borda tenha a chance de comprovar a consistência.",
|
||||||
|
"edt_conf_bb_maxInconsistentCnt_title": "Frames inconsistentes",
|
||||||
|
"edt_conf_bb_mode_expl": "Algoritmo para processamento. (veja Wiki)",
|
||||||
|
"edt_conf_bb_mode_title": "Modo",
|
||||||
|
"edt_conf_bb_threshold_expl": "Se a detecção não funcionar, aumente o limite para ajustar o preto 'acinzentado'",
|
||||||
|
"edt_conf_bb_threshold_title": "Limite",
|
||||||
|
"edt_conf_bb_unknownFrameCnt_expl": "Número de quadros sem nenhuma detecção antes de a borda ser definida como 0.",
|
||||||
|
"edt_conf_bb_unknownFrameCnt_title": "Quadros desconhecidos",
|
||||||
|
"edt_conf_bge_heading_title": "Efeito / cor de fundo",
|
||||||
|
"edt_conf_bobls_heading_title": "Servidor Boblight",
|
||||||
|
"edt_conf_color_backlightColored_expl": "Adicione um pouco de cor à sua luz de fundo.",
|
||||||
|
"edt_conf_color_backlightColored_title": "Luz de fundo colorida",
|
||||||
|
"edt_conf_color_backlightThreshold_expl": "A quantidade mínima de brilho (luz de fundo). Desativado durante efeitos, cores e no status \"Desligado\"",
|
||||||
|
"edt_conf_color_backlightThreshold_title": "Limite de luz de fundo",
|
||||||
|
"edt_conf_color_black_expl": "O valor de preto calibrado.",
|
||||||
|
"edt_conf_color_black_title": "Preto",
|
||||||
|
"edt_conf_color_blue_expl": "O valor de azul calibrado.",
|
||||||
|
"edt_conf_color_blue_title": "Azul",
|
||||||
|
"edt_conf_color_brightnessComp_expl": "Compensa as diferenças de brilho entre o azul, verde vermelho, amarelo magenta ciano e branco. 100 significa compensação total, 0 sem compensação",
|
||||||
|
"edt_conf_color_brightnessComp_title": "Compensação de brilho",
|
||||||
|
"edt_conf_color_brightness_expl": "definir o brilho geral dos LEDs",
|
||||||
|
"edt_conf_color_brightness_title": "Brilho",
|
||||||
|
"edt_conf_color_channelAdjustment_header_expl": "Crie perfis de cores que podem ser atribuídos a um componente específico. Ajuste a cor, gama, brilho, compensação e muito mais.",
|
||||||
|
"edt_conf_color_channelAdjustment_header_itemtitle": "Perfil",
|
||||||
|
"edt_conf_color_channelAdjustment_header_title": "Ajustes de canal de cor",
|
||||||
|
"edt_conf_color_cyan_expl": "O valor de ciano calibrado.",
|
||||||
|
"edt_conf_color_cyan_title": "Ciano",
|
||||||
|
"edt_conf_color_gammaBlue_expl": "A gama de azul. 1.0 é neutro. Acima de 1.0 ele reduz o azul, abaixo de 1.0 ele adiciona o azul.",
|
||||||
|
"edt_conf_color_gammaBlue_title": "Gama Azul",
|
||||||
|
"edt_conf_color_gammaGreen_expl": "A gama de verde. 1.0 é neutro. Acima de 1.0 ele reduz o verde, abaixo de 1.0 ele adiciona verde.",
|
||||||
|
"edt_conf_color_gammaGreen_title": "Gama Verde",
|
||||||
|
"edt_conf_color_gammaRed_expl": "A gama de vermelho. 1.0 é neutro. Acima de 1,0, reduz o vermelho, abaixo de 1,0, ele adiciona vermelho.",
|
||||||
|
"edt_conf_color_gammaRed_title": "Gama Vermelho",
|
||||||
|
"edt_conf_color_green_expl": "O valor verde calibrado.",
|
||||||
|
"edt_conf_color_green_title": "Verde",
|
||||||
|
"edt_conf_color_heading_title": "Calibração de Cor",
|
||||||
|
"edt_conf_color_id_expl": "Nome dado pelo usuário",
|
||||||
|
"edt_conf_color_id_title": "ID",
|
||||||
|
"edt_conf_color_imageToLedMappingType_expl": "Substitui a atribuição da área de led do seu layout de led se não for \"multicolor\"",
|
||||||
|
"edt_conf_color_imageToLedMappingType_title": "Atribuição de área de led",
|
||||||
|
"edt_conf_color_leds_expl": "Atribua este ajuste a todos os LEDs (*) ou apenas a alguns (0-24).",
|
||||||
|
"edt_conf_color_leds_title": "Índice de LED",
|
||||||
|
"edt_conf_color_magenta_expl": "O valor de magenta calibrado.",
|
||||||
|
"edt_conf_color_magenta_title": "Magenta",
|
||||||
|
"edt_conf_color_red_expl": "O valor de vermelho calibrado.",
|
||||||
|
"edt_conf_color_red_title": "Vermelho",
|
||||||
|
"edt_conf_color_white_expl": "O valor de branco calibrado.",
|
||||||
|
"edt_conf_color_white_title": "Branco",
|
||||||
|
"edt_conf_color_yellow_expl": "O valor de amarelo calibrado.",
|
||||||
|
"edt_conf_color_yellow_title": "Amarelo",
|
||||||
|
"edt_conf_effp_disable_expl": "Adicione nomes de efeitos aqui para desabilitá-los / ocultá-los de todas as listas de efeitos.",
|
||||||
|
"edt_conf_effp_disable_itemtitle": "Efeito",
|
||||||
|
"edt_conf_effp_disable_title": "Efeitos Desativados",
|
||||||
|
"edt_conf_effp_heading_title": "Caminhos do efeito",
|
||||||
|
"edt_conf_effp_paths_expl": "Você pode definir mais pastas que contêm efeitos. O configurador de efeitos sempre salvará dentro da primeira pasta.",
|
||||||
|
"edt_conf_effp_paths_itemtitle": "Caminho",
|
||||||
|
"edt_conf_effp_paths_title": "Caminho (s) do efeito",
|
||||||
|
"edt_conf_enum_NO_CHANGE": "Automático",
|
||||||
|
"edt_conf_enum_NTSC": "NTSC",
|
||||||
|
"edt_conf_enum_PAL": "PAL",
|
||||||
|
"edt_conf_enum_SECAM": "SECAM",
|
||||||
|
"edt_conf_enum_automatic": "Automatico",
|
||||||
|
"edt_conf_enum_bbclassic": "Clássico",
|
||||||
|
"edt_conf_enum_bbdefault": "Padrão",
|
||||||
|
"edt_conf_enum_bbletterbox": "Letterbox",
|
||||||
|
"edt_conf_enum_bbosd": "OSD",
|
||||||
|
"edt_conf_enum_bgr": "BGR",
|
||||||
|
"edt_conf_enum_bottom_up": "Debaixo para cima",
|
||||||
|
"edt_conf_enum_brg": "BRG",
|
||||||
|
"edt_conf_enum_color": "Cor",
|
||||||
|
"edt_conf_enum_custom": "Personalizado",
|
||||||
|
"edt_conf_enum_decay": "Decaimento",
|
||||||
|
"edt_conf_enum_dl_error": "Erro",
|
||||||
|
"edt_conf_enum_dl_informational": "Informativo",
|
||||||
|
"edt_conf_enum_dl_nodebug": "Sem saída de depuração",
|
||||||
|
"edt_conf_enum_dl_statechange": "Mudança de estado",
|
||||||
|
"edt_conf_enum_dl_verbose": "Modo Texto",
|
||||||
|
"edt_conf_enum_dl_verbose1": "Modo de texto 1",
|
||||||
|
"edt_conf_enum_dl_verbose2": "Modo de texto 2",
|
||||||
|
"edt_conf_enum_dl_verbose3": "Moto de texto 3",
|
||||||
|
"edt_conf_enum_effect": "Efeito",
|
||||||
|
"edt_conf_enum_gbr": "GBR",
|
||||||
|
"edt_conf_enum_grb": "GRB",
|
||||||
|
"edt_conf_enum_hsv": "HSV",
|
||||||
|
"edt_conf_enum_left_right": "Da esquerda para a direita",
|
||||||
|
"edt_conf_enum_linear": "Linear",
|
||||||
|
"edt_conf_enum_logdebug": "Debug",
|
||||||
|
"edt_conf_enum_logsilent": "Silêncioso",
|
||||||
|
"edt_conf_enum_logverbose": "Modo Texto",
|
||||||
|
"edt_conf_enum_logwarn": "Aviso",
|
||||||
|
"edt_conf_enum_multicolor_mean": "Multicolorido",
|
||||||
|
"edt_conf_enum_please_select": "Selecione por favor",
|
||||||
|
"edt_conf_enum_rbg": "RBG",
|
||||||
|
"edt_conf_enum_rgb": "RGB",
|
||||||
|
"edt_conf_enum_right_left": "Da direita para a esquerda",
|
||||||
|
"edt_conf_enum_top_down": "De cima para baixo",
|
||||||
|
"edt_conf_enum_transeffect_smooth": "Suavização",
|
||||||
|
"edt_conf_enum_transeffect_sudden": "De repente",
|
||||||
|
"edt_conf_enum_unicolor_mean": "Unicolor",
|
||||||
|
"edt_conf_fbs_heading_title": "Servidor Flatbuffers",
|
||||||
|
"edt_conf_fbs_timeout_expl": "Se nenhum dado for recebido para o período determinado, o componente será desabilitado (soft).",
|
||||||
|
"edt_conf_fbs_timeout_title": "Tempo esgotado",
|
||||||
|
"edt_conf_fg_display_expl": "Selecione qual área de trabalho deve ser capturada (configuração de vários monitores)",
|
||||||
|
"edt_conf_fg_display_title": "Exibição",
|
||||||
|
"edt_conf_fg_frequency_Hz_expl": "Com que rapidez novas fotos são capturadas",
|
||||||
|
"edt_conf_fg_frequency_Hz_title": "Frequência de captura Hz",
|
||||||
|
"edt_conf_fg_heading_title": "Captura de plataforma",
|
||||||
|
"edt_conf_fg_height_expl": "Reduza a imagem a essa altura, pois a imagem bruta precisa de muito tempo de CPU.",
|
||||||
|
"edt_conf_fg_height_title": "Altura",
|
||||||
|
"edt_conf_fg_pixelDecimation_expl": "Reduza o tamanho da imagem (fator) com base no tamanho original. Um fator de 1 significa nenhuma mudança",
|
||||||
|
"edt_conf_fg_pixelDecimation_title": "Decimação de imagem",
|
||||||
|
"edt_conf_fg_type_expl": "Tipo de captura de plataforma, o padrão é 'automático'",
|
||||||
|
"edt_conf_fg_type_title": "Tipo",
|
||||||
|
"edt_conf_fg_width_expl": "Reduza a imagem para essa largura, pois a imagem bruta precisa de muito tempo de CPU.",
|
||||||
|
"edt_conf_fg_width_title": "Largura",
|
||||||
|
"edt_conf_fge_color_expl": "Se o tipo for \"Cor\", defina uma cor de sua escolha aqui.",
|
||||||
|
"edt_conf_fge_color_title": "Cor",
|
||||||
|
"edt_conf_fge_duration_ms_expl": "Duração do efeito / cor durante a inicialização do Hyperion.",
|
||||||
|
"edt_conf_fge_duration_ms_title": "Duração",
|
||||||
|
"edt_conf_fge_effect_expl": "Se o tipo for \"Efeito\", selecione um efeito de sua escolha (incluindo efeitos criados pelo você).",
|
||||||
|
"edt_conf_fge_effect_title": "Efeito",
|
||||||
|
"edt_conf_fge_heading_title": "Efeito / cor de Boot",
|
||||||
|
"edt_conf_fge_type_expl": "Escolha entre uma cor ou efeito.",
|
||||||
|
"edt_conf_fge_type_title": "Tipo",
|
||||||
|
"edt_conf_fw_flat_expl": "Um alvo flatbuffer por linha. Contém IP: PORTA (Exemplo: 127.0.0.1:19401)",
|
||||||
|
"edt_conf_fw_flat_itemtitle": "alvo flatbuffer",
|
||||||
|
"edt_conf_fw_flat_title": "Lista de alvos flatbuffer",
|
||||||
|
"edt_conf_fw_heading_title": "Despachante",
|
||||||
|
"edt_conf_fw_json_expl": "Um alvo json por linha. Contém IP: PORT (Exemplo: 127.0.0.1:19446)",
|
||||||
|
"edt_conf_fw_json_itemtitle": "Alvo Json",
|
||||||
|
"edt_conf_fw_json_title": "Lista de alvos json",
|
||||||
|
"edt_conf_gen_configVersion_title": "Versão de Configuração",
|
||||||
|
"edt_conf_gen_heading_title": "Configurações Gerais",
|
||||||
|
"edt_conf_gen_name_expl": "Um nome definido pelo usuário que é usado para detectar o Hyperion. (Útil com mais de uma instância do Hyperion)",
|
||||||
|
"edt_conf_gen_name_title": "Nome da configuração",
|
||||||
|
"edt_conf_gen_showOptHelp_expl": "Mostre todas as explicações disponíveis em cada seção. Altamente recomendado para iniciantes!",
|
||||||
|
"edt_conf_gen_showOptHelp_title": "Mostrar explicações",
|
||||||
|
"edt_conf_gen_watchedVersionBranch_expl": "Seleciona qual versão do Branch deve ser usada para pesquisar novas versões do Hyperion.",
|
||||||
|
"edt_conf_gen_watchedVersionBranch_title": "Branch da versão assistida",
|
||||||
|
"edt_conf_general_enable_expl": "Se marcado, o componente é habilitado.",
|
||||||
|
"edt_conf_general_enable_title": "Ativar",
|
||||||
|
"edt_conf_general_port_expl": "A porta está em uso.",
|
||||||
|
"edt_conf_general_port_title": "Porta",
|
||||||
|
"edt_conf_general_priority_expl": "A prioridade deste componente",
|
||||||
|
"edt_conf_general_priority_title": "Canal prioritário",
|
||||||
|
"edt_conf_instC_systemEnable_expl": "Ativa a captura da plataforma para esta instância de hardware",
|
||||||
|
"edt_conf_instC_systemEnable_title": "Habilitar captura de plataforma",
|
||||||
|
"edt_conf_instC_v4lEnable_expl": "Ativa a captura USB para esta instância de hardware",
|
||||||
|
"edt_conf_instC_v4lEnable_title": "Ativa captura USB",
|
||||||
|
"edt_conf_instCapture_heading_title": "Captura de Instância",
|
||||||
|
"edt_conf_js_heading_title": "Servidor JSON",
|
||||||
|
"edt_conf_log_heading_title": "Registro",
|
||||||
|
"edt_conf_log_level_expl": "Dependendo do nível de log, você verá menos ou mais mensagens em seu log.",
|
||||||
|
"edt_conf_log_level_title": "Log-Level",
|
||||||
|
"edt_conf_net_apiAuth_expl": "Force todos os aplicativos que usam a API Hyperion para se autenticar no Hyperion (Exceção, consulte \"Autenticação API local\"). Maior segurança, pois você controla o acesso e o revoga a qualquer momento.",
|
||||||
|
"edt_conf_net_apiAuth_title": "Autenticação API",
|
||||||
|
"edt_conf_net_heading_title": "Rede",
|
||||||
|
"edt_conf_net_internetAccessAPI_expl": "Permita o acesso ao Hyperion API / Interface Web da Internet, desative para maior segurança.",
|
||||||
|
"edt_conf_net_internetAccessAPI_title": "Acesso à Internet API",
|
||||||
|
"edt_conf_net_ipWhitelist_expl": "Você pode colocar endereços IP na lista de permissões, em vez de permitir que todas as conexões da Internet se conectem à API / interface da Web do Hyperion.",
|
||||||
|
"edt_conf_net_ipWhitelist_title": "IPs na lista branca",
|
||||||
|
"edt_conf_net_ip_itemtitle": "IP",
|
||||||
|
"edt_conf_net_localAdminAuth_expl": "Quando ativado, o acesso de administração de sua rede local precisa de uma senha.",
|
||||||
|
"edt_conf_net_localAdminAuth_title": "Autenticação de API de administrador local",
|
||||||
|
"edt_conf_net_localApiAuth_expl": "Quando habilitado, as conexões de sua rede doméstica precisam se autenticar no Hyperion com um token.",
|
||||||
|
"edt_conf_net_localApiAuth_title": "Autenticação de API local",
|
||||||
|
"edt_conf_net_restirctedInternetAccessAPI_expl": "Você pode restringir o acesso à API através da Internet a determinados IPs.",
|
||||||
|
"edt_conf_net_restirctedInternetAccessAPI_title": "Restringir aos IPs",
|
||||||
|
"edt_conf_pbs_heading_title": "Servidor de buffers de protocolo",
|
||||||
|
"edt_conf_pbs_timeout_expl": "Se nenhum dado for recebido para o período determinado, o componente será desabilitado (soft).",
|
||||||
|
"edt_conf_pbs_timeout_title": "Tempo Esgotado",
|
||||||
|
"edt_conf_smooth_continuousOutput_expl": "Atualize os LEDs mesmo que não haja alteração na imagem.",
|
||||||
|
"edt_conf_smooth_continuousOutput_title": "Saída contínua",
|
||||||
|
"edt_conf_smooth_decay_expl": "A velocidade da decadência. 1 é linear, valores maiores têm efeito mais forte.",
|
||||||
|
"edt_conf_smooth_decay_title": "Poder de decomposição",
|
||||||
|
"edt_conf_smooth_dithering_expl": "Melhore a precisão das cores em altas velocidades de saída, alternando entre cores adjacentes.",
|
||||||
|
"edt_conf_smooth_dithering_title": "Tremulação",
|
||||||
|
"edt_conf_smooth_heading_title": "Suavização",
|
||||||
|
"edt_conf_smooth_interpolationRate_expl": "Velocidade do cálculo de quadros intermediários suavizados.",
|
||||||
|
"edt_conf_smooth_interpolationRate_title": "Taxa de interpolação",
|
||||||
|
"edt_conf_smooth_outputRate_expl": "A velocidade de saída para o controlador led.",
|
||||||
|
"edt_conf_smooth_outputRate_title": "Taxa de saída",
|
||||||
|
"edt_conf_smooth_time_ms_expl": "Por quanto tempo a suavização deve reunir imagens?",
|
||||||
|
"edt_conf_smooth_time_ms_title": "Tempo",
|
||||||
|
"edt_conf_smooth_type_expl": "Tipo de Suavização.",
|
||||||
|
"edt_conf_smooth_type_title": "Tipo",
|
||||||
|
"edt_conf_smooth_updateDelay_expl": "Atrase a saída caso a luz ambiente seja mais rápida do que a TV.",
|
||||||
|
"edt_conf_smooth_updateDelay_title": "Atraso de atualização",
|
||||||
|
"edt_conf_smooth_updateFrequency_expl": "A velocidade de saída para o controlador led.",
|
||||||
|
"edt_conf_smooth_updateFrequency_title": "Frequência de atualização",
|
||||||
|
"edt_conf_v4l2_blueSignalThreshold_expl": "Escurece os valores de azul baixos (reconhecidos como pretos)",
|
||||||
|
"edt_conf_v4l2_blueSignalThreshold_title": "Limite do sinal azul",
|
||||||
|
"edt_conf_v4l2_cecDetection_expl": "Se ativada, a captura USB será temporariamente desativada quando o evento de espera CEC for recebido do barramento HDMI.",
|
||||||
|
"edt_conf_v4l2_cecDetection_title": "Detecção CEC",
|
||||||
|
"edt_conf_v4l2_cropBottom_expl": "Contagem de pixels na parte inferior que são removidos da imagem.",
|
||||||
|
"edt_conf_v4l2_cropBottom_title": "Cortar base",
|
||||||
|
"edt_conf_v4l2_cropLeft_expl": "Contagem de pixels no lado esquerdo que são removidos da imagem.",
|
||||||
|
"edt_conf_v4l2_cropLeft_title": "Cortar à esquerda",
|
||||||
|
"edt_conf_v4l2_cropRight_expl": "Contagem de pixels no lado direito que são removidos da imagem.",
|
||||||
|
"edt_conf_v4l2_cropRight_title": "Cortar à direita",
|
||||||
|
"edt_conf_v4l2_cropTop_expl": "Contagem de pixels na parte superior que são removidos da imagem.",
|
||||||
|
"edt_conf_v4l2_cropTop_title": "Cortar topo",
|
||||||
|
"edt_conf_v4l2_device_expl": "O caminho para a interface de captura USB. Defina como 'Automático' para detecção automática. Exemplo: '/ dev / video0'",
|
||||||
|
"edt_conf_v4l2_device_title": "Dispositivo",
|
||||||
|
"edt_conf_v4l2_framerate_expl": "Os quadros por segundo suportados do dispositivo ativo",
|
||||||
|
"edt_conf_v4l2_framerate_title": "Quadros por segundo",
|
||||||
|
"edt_conf_v4l2_greenSignalThreshold_expl": "Escurece valores verdes baixos (reconhecidos como pretos)",
|
||||||
|
"edt_conf_v4l2_greenSignalThreshold_title": "Limite do sinal verde",
|
||||||
|
"edt_conf_v4l2_heading_title": "Captura USB",
|
||||||
|
"edt_conf_v4l2_input_expl": "Selecione a entrada de vídeo do seu dispositivo. 'Automático' mantém o valor escolhido pela interface v4l2.",
|
||||||
|
"edt_conf_v4l2_input_title": "Entrada",
|
||||||
|
"edt_conf_v4l2_redSignalThreshold_expl": "Escurece valores baixos de vermelho (reconhecido como preto)",
|
||||||
|
"edt_conf_v4l2_redSignalThreshold_title": "Limite de sinal vermelho",
|
||||||
|
"edt_conf_v4l2_resolution_expl": "Uma lista de resoluções suportadas do dispositivo ativo",
|
||||||
|
"edt_conf_v4l2_resolution_title": "Resolução do dispositivo",
|
||||||
|
"edt_conf_v4l2_sDHOffsetMax_expl": "Área de detecção de sinal horizontal máxima (0.0-1.0)",
|
||||||
|
"edt_conf_v4l2_sDHOffsetMax_title": "HMax de detecção de sinal",
|
||||||
|
"edt_conf_v4l2_sDHOffsetMin_expl": "Área de detecção de sinal horizontal mínima (0.0-1.0)",
|
||||||
|
"edt_conf_v4l2_sDHOffsetMin_title": "HMin de detecção de sinal",
|
||||||
|
"edt_conf_v4l2_sDVOffsetMax_expl": "Signal detection area vertical maximum (0.0-1.0)",
|
||||||
|
"edt_conf_v4l2_sDVOffsetMax_title": "Detecção de Sinal VMax",
|
||||||
|
"edt_conf_v4l2_sDVOffsetMin_expl": "Mínimo vertical da área de detecção de sinal (0.0-1.0)",
|
||||||
|
"edt_conf_v4l2_sDVOffsetMin_title": "VMin de detecção de sinal",
|
||||||
|
"edt_conf_v4l2_signalDetection_expl": "Se ativada, a captura de USB será temporariamente desativada quando nenhum sinal for encontrado. Isso acontecerá quando a imagem cair abaixo do valor limite por um período de 4 segundos.",
|
||||||
|
"edt_conf_v4l2_signalDetection_title": "Detecção de sinal",
|
||||||
|
"edt_conf_v4l2_sizeDecimation_expl": "O fator de dizimação do tamanho. 1 significa sem dizimação (manter o tamanho original)",
|
||||||
|
"edt_conf_v4l2_sizeDecimation_title": "Decimação de tamanho",
|
||||||
|
"edt_conf_v4l2_standard_expl": "Selecione o padrão de vídeo para sua região. 'Automático' mantém o valor escolhido pela interface v4l2.",
|
||||||
|
"edt_conf_v4l2_standard_title": "Padrão de vídeo",
|
||||||
|
"edt_conf_webc_crtPath_expl": "Caminho para o arquivo de certificação (o formato deve ser PEM)",
|
||||||
|
"edt_conf_webc_crtPath_title": "Caminho do certificado",
|
||||||
|
"edt_conf_webc_docroot_expl": "Caminho raiz da interface da web local (apenas para desenvolvedor webui)",
|
||||||
|
"edt_conf_webc_docroot_title": "Raiz do Documento",
|
||||||
|
"edt_conf_webc_heading_title": "Configuração da Web",
|
||||||
|
"edt_conf_webc_keyPassPhrase_expl": "Opcional: a chave pode ser protegida com uma senha",
|
||||||
|
"edt_conf_webc_keyPassPhrase_title": "Senha chave",
|
||||||
|
"edt_conf_webc_keyPath_expl": "Caminho para o arquivo de chave (formato PEM, criptografado com RSA)",
|
||||||
|
"edt_conf_webc_keyPath_title": "Caminho da chave privada",
|
||||||
|
"edt_conf_webc_sslport_expl": "Porta do HTTPS-Webservidor",
|
||||||
|
"edt_conf_webc_sslport_title": "Porta HTTPS",
|
||||||
|
"edt_dev_auth_key_title": "Token de autenticação",
|
||||||
|
"edt_dev_auth_key_title_info": "Token de autenticação necessário para acessar o dispositivo",
|
||||||
|
"edt_dev_enum_sub_min_cool_adjust": "Subtrair branco frio",
|
||||||
|
"edt_dev_enum_sub_min_warm_adjust": "Subtrair o branco quente",
|
||||||
|
"edt_dev_enum_subtract_minimum": "Subtrair mínimo",
|
||||||
|
"edt_dev_enum_white_off": "Branco apagado",
|
||||||
|
"edt_dev_general_colorOrder_title": "Ordem de bytes RGB",
|
||||||
|
"edt_dev_general_colorOrder_title_info": "A ordem de cores do dispositivo",
|
||||||
|
"edt_dev_general_hardwareLedCount_title": "Contagem de LED de hardware",
|
||||||
|
"edt_dev_general_hardwareLedCount_title_info": "O número de LEDs físicos disponíveis para o dispositivo fornecido",
|
||||||
|
"edt_dev_general_heading_title": "Configurações Gerais",
|
||||||
|
"edt_dev_general_name_title": "Nome da configuração",
|
||||||
|
"edt_dev_general_rewriteTime_title": "Tempo de atualização",
|
||||||
|
"edt_dev_spec_FCledToOn_title": "LED Fadecandy ligado",
|
||||||
|
"edt_dev_spec_FCmanualControl_title": "Controle manual do LED fadecandy",
|
||||||
|
"edt_dev_spec_FCsetConfig_title": "Definir configuração de fadecandy",
|
||||||
|
"edt_dev_spec_LBap102Mode_title": "Modo LightBerry APA102",
|
||||||
|
"edt_dev_spec_PBFiFo_title": "Pi-Blaster FiFo",
|
||||||
|
"edt_dev_spec_baudrate_title": "Taxa de transmissão",
|
||||||
|
"edt_dev_spec_blackLightsTimeout_title": "Tempo limite de detecção de sinal em preto",
|
||||||
|
"edt_dev_spec_brightnessFactor_title": "Fator de brilho",
|
||||||
|
"edt_dev_spec_brightnessMax_title": "Brilho máximo",
|
||||||
|
"edt_dev_spec_brightnessMin_title": "Brilho mínimo",
|
||||||
|
"edt_dev_spec_brightnessOverwrite_title": "Sobrescrever brilho",
|
||||||
|
"edt_dev_spec_brightnessThreshold_title": "Signal detection brightness minimum",
|
||||||
|
"edt_dev_spec_brightness_title": "Brilho",
|
||||||
|
"edt_dev_spec_chanperfixture_title": "Canais por luminária",
|
||||||
|
"edt_dev_spec_cid_title": "CID",
|
||||||
|
"edt_dev_spec_clientKey_title": "Chavecliente:",
|
||||||
|
"edt_dev_spec_colorComponent_title": "Componente de cor",
|
||||||
|
"edt_dev_spec_debugLevel_title": "Nível de Depuração",
|
||||||
|
"edt_dev_spec_debugStreamer_title": "Streamer Debug",
|
||||||
|
"edt_dev_spec_delayAfterConnect_title": "Atrasar após conectar",
|
||||||
|
"edt_dev_spec_devices_discovered_none": "Nenhum dispositivo foi descoberto",
|
||||||
|
"edt_dev_spec_devices_discovered_title": "Dispositivos descobertos",
|
||||||
|
"edt_dev_spec_devices_discovered_title_info": "Selecione o seu dispositivo LED descoberto",
|
||||||
|
"edt_dev_spec_devices_discovered_title_info_custom": "Selecione o seu dispositivo LED descoberto ou configure um personalizado",
|
||||||
|
"edt_dev_spec_devices_discovery_inprogress": "Descoberta em andamento",
|
||||||
|
"edt_dev_spec_dithering_title": "Tremulação",
|
||||||
|
"edt_dev_spec_dmaNumber_title": "Canal DMA",
|
||||||
|
"edt_dev_spec_gamma_title": "Gama",
|
||||||
|
"edt_dev_spec_globalBrightnessControlMaxLevel_title": "Nível máximo atual",
|
||||||
|
"edt_dev_spec_globalBrightnessControlThreshold_title": "Limiar de corrente adaptável",
|
||||||
|
"edt_dev_spec_gpioBcm_title": "Pino GPIO",
|
||||||
|
"edt_dev_spec_gpioMap_title": "Mapeamento GPIO",
|
||||||
|
"edt_dev_spec_gpioNumber_title": "Número GPIO",
|
||||||
|
"edt_dev_spec_groupId_title": "ID do Grupo",
|
||||||
|
"edt_dev_spec_header_title": "Configurações Específicas",
|
||||||
|
"edt_dev_spec_interpolation_title": "Interpolação",
|
||||||
|
"edt_dev_spec_intervall_title": "Intervalo",
|
||||||
|
"edt_dev_spec_invert_title": "Inverter sinal",
|
||||||
|
"edt_dev_spec_latchtime_title": "Tempo UIDLatch",
|
||||||
|
"edt_dev_spec_latchtime_title_info": "O tempo de travamento é o período de tempo que um dispositivo requer até que a próxima atualização possa ser processada. Durante esse período, todas as atualizações feitas são ignoradas.",
|
||||||
|
"edt_dev_spec_ledIndex_title": "Índice de LED",
|
||||||
|
"edt_dev_spec_ledType_title": "Tipo de LED",
|
||||||
|
"edt_dev_spec_lightid_itemtitle": "ID",
|
||||||
|
"edt_dev_spec_lightid_title": "ID (s) de luz",
|
||||||
|
"edt_dev_spec_lights_itemtitle": "Luz",
|
||||||
|
"edt_dev_spec_lights_name": "Nome",
|
||||||
|
"edt_dev_spec_lights_title": "Luz(es)",
|
||||||
|
"edt_dev_spec_maxPacket_title": "Pacote máximo",
|
||||||
|
"edt_dev_spec_maximumLedCount_title": "Contagem máxima de LED",
|
||||||
|
"edt_dev_spec_multicastGroup_title": "Grupo multicast",
|
||||||
|
"edt_dev_spec_networkDeviceName_title": "Nome do dispositivo de rede",
|
||||||
|
"edt_dev_spec_networkDevicePort_title": "Porta",
|
||||||
|
"edt_dev_spec_numberOfLeds_title": "Número de LEDs",
|
||||||
|
"edt_dev_spec_orbIds_title": "ID(s) Orb",
|
||||||
|
"edt_dev_spec_order_left_right_title": "2.",
|
||||||
|
"edt_dev_spec_order_top_down_title": "1.",
|
||||||
|
"edt_dev_spec_outputPath_title": "Caminho de saída",
|
||||||
|
"edt_dev_spec_panel_start_position": "Painel inicial [0-max panels]",
|
||||||
|
"edt_dev_spec_panelorganisation_title": "Seqüência de numeração do painel",
|
||||||
|
"edt_dev_spec_pid_title": "PID",
|
||||||
|
"edt_dev_spec_port_title": "Porta",
|
||||||
|
"edt_dev_spec_printTimeStamp_title": "Adicionar carimbo de data / hora",
|
||||||
|
"edt_dev_spec_pwmChannel_title": "Canal PWM",
|
||||||
|
"edt_dev_spec_restoreOriginalState_title": "Restaurar o estado das luzes",
|
||||||
|
"edt_dev_spec_restoreOriginalState_title_info": "Restaura o estado original do dispositivo quando o dispositivo é desativado",
|
||||||
|
"edt_dev_spec_serial_title": "Número Serial",
|
||||||
|
"edt_dev_spec_spipath_title": "Dispositivo SPI",
|
||||||
|
"edt_dev_spec_sslHSTimeoutMax_title": "Tempo limite máximo do aperto de mão do Streamer",
|
||||||
|
"edt_dev_spec_sslHSTimeoutMin_title": "Tempo limite mínimo de handshake do Streamer",
|
||||||
|
"edt_dev_spec_sslReadTimeout_title": "Tempo limite de leitura do streamer",
|
||||||
|
"edt_dev_spec_switchOffOnBlack_title": "Desligue no preto",
|
||||||
|
"edt_dev_spec_switchOffOnbelowMinBrightness_title": "Desligar, abaixo do mínimo",
|
||||||
|
"edt_dev_spec_syncOverwrite_title": "Desactivar a sincronização",
|
||||||
|
"edt_dev_spec_targetIpHost_title": "Nome do host / endereço IP de destino",
|
||||||
|
"edt_dev_spec_targetIpHost_title_info": "O nome de host ou endereço IP do dispositivo",
|
||||||
|
"edt_dev_spec_targetIp_title": "Endereço IP de destino",
|
||||||
|
"edt_dev_spec_transeffect_title": "Efeito de transição",
|
||||||
|
"edt_dev_spec_transistionTimeExtra_title": "Tempo extra escuridão",
|
||||||
|
"edt_dev_spec_transistionTime_title": "Período de transição",
|
||||||
|
"edt_dev_spec_uid_title": "UID",
|
||||||
|
"edt_dev_spec_universe_title": "Universal",
|
||||||
|
"edt_dev_spec_useEntertainmentAPI_title": "Usar api Entretenimento HUE",
|
||||||
|
"edt_dev_spec_useOrbSmoothing_title": "Usar suavização Orb",
|
||||||
|
"edt_dev_spec_useRgbwProtocol_title": "Use protocolo RGBW",
|
||||||
|
"edt_dev_spec_username_title": "Nome de usuário",
|
||||||
|
"edt_dev_spec_verbose_title": "Registrar todos os comandos Hue",
|
||||||
|
"edt_dev_spec_vid_title": "VID",
|
||||||
|
"edt_dev_spec_whiteLedAlgor_title": "Algoritmo de LED branco",
|
||||||
|
"edt_dev_spec_whitepoint_title": "Ponto branco",
|
||||||
|
"edt_eff_alarmcolor": "Cor do Alarme",
|
||||||
|
"edt_eff_backgroundColor": "Cor de fundo",
|
||||||
|
"edt_eff_basecolorchange": "Mudança de cor base",
|
||||||
|
"edt_eff_basecolorchangerate": "Taxa de mudança da Cor Base",
|
||||||
|
"edt_eff_basecolorrangeleft": "Cor base faixa esquerda",
|
||||||
|
"edt_eff_basecolorrangeright": "Cor base faixa direita",
|
||||||
|
"edt_eff_blobcount": "Contagem de bolhas",
|
||||||
|
"edt_eff_brightness": "Brilho",
|
||||||
|
"edt_eff_candle_header": "Vela",
|
||||||
|
"edt_eff_candle_header_desc": "Velas cintilantes",
|
||||||
|
"edt_eff_centerx": "Centro do eixo X",
|
||||||
|
"edt_eff_centery": "Centro do Eixo Y",
|
||||||
|
"edt_eff_collision_header": "colisão de cores",
|
||||||
|
"edt_eff_collision_header_desc": "Dois projéteis coloridos são enviados de posições aleatórias e colidem um com o outro",
|
||||||
|
"edt_eff_color": "Cor",
|
||||||
|
"edt_eff_colorHour": "Cor hora",
|
||||||
|
"edt_eff_colorMarker": "Cor do marcador",
|
||||||
|
"edt_eff_colorMinute": "Cor minuto",
|
||||||
|
"edt_eff_colorSecond": "Cor segundo",
|
||||||
|
"edt_eff_colorcount": "Comprimento de cor",
|
||||||
|
"edt_eff_colorend": "Cor Final",
|
||||||
|
"edt_eff_colorendtime": "Hora de segurar a cor inicial",
|
||||||
|
"edt_eff_colorevel": "Nível de Cor",
|
||||||
|
"edt_eff_colorone": "Cor primária",
|
||||||
|
"edt_eff_colorrandom": "Cor aleatória",
|
||||||
|
"edt_eff_colorshift": "Mudança de cor",
|
||||||
|
"edt_eff_colorstart": "Início de cor",
|
||||||
|
"edt_eff_colorstarttime": "Hora de manter a cor final",
|
||||||
|
"edt_eff_colortwo": "Cor secundária",
|
||||||
|
"edt_eff_count": "Contagem",
|
||||||
|
"edt_eff_countries": "Países",
|
||||||
|
"edt_eff_customColor": "Cor customizada",
|
||||||
|
"edt_eff_enableSecondSwirl": "Segundo Redemoinho",
|
||||||
|
"edt_eff_enableshutdown": "Desligamento real",
|
||||||
|
"edt_eff_enum_all": "Todos",
|
||||||
|
"edt_eff_enum_all-together": "Todos juntos",
|
||||||
|
"edt_eff_enum_list": "Lista de LED",
|
||||||
|
"edt_eff_explodeRadius": "Alcance de Detonação ",
|
||||||
|
"edt_eff_fade_header": "Esmaecer",
|
||||||
|
"edt_eff_fade_header_desc": "Esmaece entre as cores",
|
||||||
|
"edt_eff_fadefactor": "Fator de esmaecer",
|
||||||
|
"edt_eff_fadeintime": "Fade in time",
|
||||||
|
"edt_eff_fadeouttime": "Fade out time",
|
||||||
|
"edt_eff_flag_header": "Bandeiras",
|
||||||
|
"edt_eff_flag_header_desc": "Deixe seus LEDs brilharem com as cores do seu país. Você pode selecionar mais de um sinalizador e eles serão alterados com base no intervalo de tempo.",
|
||||||
|
"edt_eff_fps": "Quadros por segundo",
|
||||||
|
"edt_eff_frequency": "Frequência",
|
||||||
|
"edt_eff_gif_header": "GIF's",
|
||||||
|
"edt_eff_gif_header_desc": "Este efeito reproduz arquivos .gif, fornece um vídeo simples como um loop como efeito.",
|
||||||
|
"edt_eff_height": "Altura",
|
||||||
|
"edt_eff_huechange": "Mudança de cor",
|
||||||
|
"edt_eff_image": "Arquivo de imagem",
|
||||||
|
"edt_eff_interval": "intervalo",
|
||||||
|
"edt_eff_knightrider_header": "Knight Rider",
|
||||||
|
"edt_eff_knightrider_header_desc": "K.I.T.T está de volta! O scanner frontal do conhecido carro, desta vez não apenas em vermelho.",
|
||||||
|
"edt_eff_ledlist": "Lista de Leds",
|
||||||
|
"edt_eff_ledtest_header": "Teste de Led",
|
||||||
|
"edt_eff_ledtest_header_desc": "Saída rotativa: Vermelho, Verde, Azul, Branco, Preto",
|
||||||
|
"edt_eff_length": "Comprimento",
|
||||||
|
"edt_eff_lightclock_header": "Relogio de luz",
|
||||||
|
"edt_eff_lightclock_header_desc": "Um verdadeiro relógioem forma de luz! Ajuste as cores de horas, minutos, segundos. Um marcador opcional de 3/6/9/12 horas também está disponível. Caso o relógio esteja errado, você precisa verificar o relógio do seu sistema.",
|
||||||
|
"edt_eff_maintain_end_color": "Manter cor final",
|
||||||
|
"edt_eff_margin": "Margem",
|
||||||
|
"edt_eff_markerDepth": "Profundidade do marcador",
|
||||||
|
"edt_eff_markerEnable": "Mostrar Marcador",
|
||||||
|
"edt_eff_markerWidth": "Largura do marcador",
|
||||||
|
"edt_eff_max_len": "Comprimento máximo",
|
||||||
|
"edt_eff_min_len": "Comprimento mínimo",
|
||||||
|
"edt_eff_moodblobs_header": "Bolhas de Humor",
|
||||||
|
"edt_eff_moodblobs_header_desc": "Relaxe à noite com bolhas que se movem lentamente e mudam de cor.",
|
||||||
|
"edt_eff_offset": "Desvio",
|
||||||
|
"edt_eff_pacman_header": "Pac-Man",
|
||||||
|
"edt_eff_pacman_header_desc": "Pequeno com fome e amarelo. Quem vai sobreviver?",
|
||||||
|
"edt_eff_plasma_header": "Plasma",
|
||||||
|
"edt_eff_plasma_header_desc": "Distorção de cor em diferentes direções",
|
||||||
|
"edt_eff_police_header": "Polícia",
|
||||||
|
"edt_eff_police_header_desc": "Luzes como um carro de polícia em ação",
|
||||||
|
"edt_eff_postcolor": "Cor da postagem",
|
||||||
|
"edt_eff_rainbowmood_header": "Modo Arco-íris",
|
||||||
|
"edt_eff_rainbowmood_header_desc": "Todos os LEDs humor do arco-íris",
|
||||||
|
"edt_eff_randomCenter": "Centro aleatório",
|
||||||
|
"edt_eff_random_header": "Aleatório",
|
||||||
|
"edt_eff_random_header_desc": "Pixel Ponto, ponto, ponto ...",
|
||||||
|
"edt_eff_repeat": "Repetir",
|
||||||
|
"edt_eff_repeatcount": "Contagem de Repetição",
|
||||||
|
"edt_eff_reverseRandomTime": "Inverte a cada",
|
||||||
|
"edt_eff_reversedirection": "Reverter direção",
|
||||||
|
"edt_eff_rotationtime": "Tempo de rotação",
|
||||||
|
"edt_eff_saturation": "Saturação",
|
||||||
|
"edt_eff_showseconds": "Mostrar segundos",
|
||||||
|
"edt_eff_sleeptime": "Tempo de descanso",
|
||||||
|
"edt_eff_smooth_custom": "Habilitar suavização",
|
||||||
|
"edt_eff_smooth_time_ms": "Tempo de suavização",
|
||||||
|
"edt_eff_smooth_updateFrequency": "Freqüência de atualização de suavização",
|
||||||
|
"edt_eff_snake_header": "Cobra",
|
||||||
|
"edt_eff_snake_header_desc": "Onde tem algo para comer?",
|
||||||
|
"edt_eff_sparks_header": "Faíscas",
|
||||||
|
"edt_eff_sparks_header_desc": "Star-Sparking, escolha entre uma cor estática ou aleatória. Você também pode ajustar o brilho, a saturação e a velocidade.",
|
||||||
|
"edt_eff_speed": "Velocidade",
|
||||||
|
"edt_eff_swirl_header": "Redemoinho de cor",
|
||||||
|
"edt_eff_swirl_header_desc": "Um redemoinho com cores personalizadas. As cores são distribuídas uniformemente em 360 °, e as mudanças entre as cores serão calculadas. Além disso, você pode adicionar um segundo redemoinho no topo, esteja ciente de que precisa de transparência parcial! Dica: A repetição da mesma cor resulta em uma área de cor \"mais alta\" e uma área de mudança de cor reduzida.",
|
||||||
|
"edt_eff_systemshutdown_header": "Desligamento do sistema",
|
||||||
|
"edt_eff_systemshutdown_header_desc": "Uma curta animação com provavelmente um desligamento real do sistema",
|
||||||
|
"edt_eff_traces_header": "Traços de cor",
|
||||||
|
"edt_eff_traces_header_desc": "Requer redesenho",
|
||||||
|
"edt_eff_trails_header": "Estrelas cadentes",
|
||||||
|
"edt_eff_trails_header_desc": "Estrelas coloridas que caem de cima para baixo",
|
||||||
|
"edt_eff_waves_header": "Ondas",
|
||||||
|
"edt_eff_waves_header_desc": "Ondas de cor! Escolha suas cores, tempo de rotação, direção reversa e muito mais.",
|
||||||
|
"edt_eff_whichleds": "Quais LEDs",
|
||||||
|
"edt_eff_whitelevel": "Nível de Branco",
|
||||||
|
"edt_eff_x-mas_header": "Natal",
|
||||||
|
"edt_eff_x-mas_header_desc": "Toque de natal",
|
||||||
|
"edt_msg_button_add_row_title": "Adicionar $1",
|
||||||
|
"edt_msg_button_collapse": "Colapsar",
|
||||||
|
"edt_msg_button_delete_all": "Todos",
|
||||||
|
"edt_msg_button_delete_all_title": "Deletar Tudo",
|
||||||
|
"edt_msg_button_delete_last": "Último $1",
|
||||||
|
"edt_msg_button_delete_last_title": "Deletar Último $1",
|
||||||
|
"edt_msg_button_delete_row_title": "Deletar $1",
|
||||||
|
"edt_msg_button_delete_row_title_short": "Deletar",
|
||||||
|
"edt_msg_button_expand": "Expandir",
|
||||||
|
"edt_msg_button_move_down_title": "Mover para baixo",
|
||||||
|
"edt_msg_button_move_up_title": "Mover para cima",
|
||||||
|
"edt_msg_error_additionalItems": "Nenhum item adicional permitido nesta matriz",
|
||||||
|
"edt_msg_error_additional_properties": "Nenhuma propriedade adicional permitida, mas a propriedade $1 está definida",
|
||||||
|
"edt_msg_error_anyOf": "O valor deve ser validado em pelo menos um dos esquemas fornecidos",
|
||||||
|
"edt_msg_error_dependency": "Deve ter propriedade $1",
|
||||||
|
"edt_msg_error_disallow": "O valor não deve ser do tipo $1",
|
||||||
|
"edt_msg_error_disallow_union": "O valor não deve ser um dos tipos não permitidos fornecidos",
|
||||||
|
"edt_msg_error_enum": "O valor deve ser um dos valores enumerados",
|
||||||
|
"edt_msg_error_maxItems": "O valor deve ter no máximo $1 itens",
|
||||||
|
"edt_msg_error_maxLength": "O valor deve ter no máximo $1 caracteres",
|
||||||
|
"edt_msg_error_maxProperties": "O objeto deve ter no máximo $1 propriedades",
|
||||||
|
"edt_msg_error_maximum_excl": "O valor deve ser inferior a $1",
|
||||||
|
"edt_msg_error_maximum_incl": "O valor deve ser no máximo $1",
|
||||||
|
"edt_msg_error_minItems": "O valor deve ter pelo menos $1 itens",
|
||||||
|
"edt_msg_error_minLength": "O valor deve ter pelo menos $1 caracteres",
|
||||||
|
"edt_msg_error_minProperties": "O objeto deve ter pelo menos $1 propriedades",
|
||||||
|
"edt_msg_error_minimum_excl": "O valor deve ser maior que $1",
|
||||||
|
"edt_msg_error_minimum_incl": "O valor deve ser pelo menos $1",
|
||||||
|
"edt_msg_error_multipleOf": "O valor deve ser um múltiplo de $1",
|
||||||
|
"edt_msg_error_not": "O valor não deve ser validado no esquema fornecido",
|
||||||
|
"edt_msg_error_notempty": "Valor requerido",
|
||||||
|
"edt_msg_error_notset": "A propriedade deve ser definida",
|
||||||
|
"edt_msg_error_oneOf": "O valor deve ser validado em relação a exatamente um dos esquemas fornecidos. Atualmente é validado em $1 dos esquemas.",
|
||||||
|
"edt_msg_error_pattern": "O valor deve corresponder ao padrão",
|
||||||
|
"edt_msg_error_required": "O objeto está sem a propriedade necessária '$1'",
|
||||||
|
"edt_msg_error_type": "O valor deve ser do tipo $1",
|
||||||
|
"edt_msg_error_type_union": "O valor deve ser um dos tipos fornecidos",
|
||||||
|
"edt_msg_error_uniqueItems": "A matriz deve ter itens exclusivos",
|
||||||
|
"effectsconfigurator_button_conttest": "Teste Contínuo",
|
||||||
|
"effectsconfigurator_button_deleffect": "Deletar Efeito",
|
||||||
|
"effectsconfigurator_button_editeffect": "Carregar Efgeito",
|
||||||
|
"effectsconfigurator_button_saveeffect": "Salvar Efeito",
|
||||||
|
"effectsconfigurator_button_starttest": "Iniciar Teste",
|
||||||
|
"effectsconfigurator_button_stoptest": "Parar Teste",
|
||||||
|
"effectsconfigurator_editdeleff": "Deletar/Carregar Efeito",
|
||||||
|
"effectsconfigurator_label_chooseeff": "Escolha Modelo",
|
||||||
|
"effectsconfigurator_label_effectname": "Nome do Efeito",
|
||||||
|
"effectsconfigurator_label_intro": "Crie novos efeitos a partir dos efeitos básicos ajustados ao seu gosto. Dependendo do efeito, existem opções como cor, velocidade, direção e muito mais disponíveis.",
|
||||||
|
"general_access_advanced": "Avançado",
|
||||||
|
"general_access_default": "Padrão",
|
||||||
|
"general_access_expert": "Especialista",
|
||||||
|
"general_btn_back": "Voltar",
|
||||||
|
"general_btn_cancel": "Cancelar",
|
||||||
|
"general_btn_continue": "Continuar",
|
||||||
|
"general_btn_delete": "Deletar",
|
||||||
|
"general_btn_denyAccess": "Negar Acesso",
|
||||||
|
"general_btn_grantAccess": "Permitir acesso",
|
||||||
|
"general_btn_iswitch": "Trocar",
|
||||||
|
"general_btn_next": "Próximo",
|
||||||
|
"general_btn_off": "Desligado",
|
||||||
|
"general_btn_ok": "Ok",
|
||||||
|
"general_btn_on": "Ligado",
|
||||||
|
"general_btn_overwrite": "Sobrescrever",
|
||||||
|
"general_btn_rename": "Renomear",
|
||||||
|
"general_btn_restarthyperion": "Reiniciar Hyperion",
|
||||||
|
"general_btn_save": "Salvar",
|
||||||
|
"general_btn_saveandreload": "Salvar e recarregar",
|
||||||
|
"general_btn_saverestart": "Salvar e reiniciar",
|
||||||
|
"general_btn_start": "Iniciar",
|
||||||
|
"general_btn_stop": "Parar",
|
||||||
|
"general_btn_yes": "Sim",
|
||||||
|
"general_button_savesettings": "Salvar configurações",
|
||||||
|
"general_chars_needed": "mais caracteres necessários",
|
||||||
|
"general_col_blue": "azul",
|
||||||
|
"general_col_green": "verde",
|
||||||
|
"general_col_red": "vermelho",
|
||||||
|
"general_comp_BLACKBORDER": "Detecção de bordas",
|
||||||
|
"general_comp_BOBLIGHTSERVER": "Servidor Boblight",
|
||||||
|
"general_comp_FLATBUFSERVER": "Servidor Flatbuffers",
|
||||||
|
"general_comp_FORWARDER": "Encaminhador",
|
||||||
|
"general_comp_GRABBER": "Plataforma de Captura",
|
||||||
|
"general_comp_LEDDEVICE": "Dispositivo LED",
|
||||||
|
"general_comp_PROTOSERVER": "Protocolo do Servidor de Buffer",
|
||||||
|
"general_comp_SMOOTHING": "Suavização",
|
||||||
|
"general_comp_V4L": "Captura USB",
|
||||||
|
"general_country_cn": "China",
|
||||||
|
"general_country_de": "Alemanha",
|
||||||
|
"general_country_es": "Espanha",
|
||||||
|
"general_country_fr": "França",
|
||||||
|
"general_country_it": "Itália",
|
||||||
|
"general_country_nl": "Holanda",
|
||||||
|
"general_country_ru": "Rússia",
|
||||||
|
"general_country_uk": "Reino Unido",
|
||||||
|
"general_country_us": "Estados Unidos",
|
||||||
|
"general_speech_cs": "Tcheco",
|
||||||
|
"general_speech_de": "Alemanha",
|
||||||
|
"general_speech_en": "Inglês",
|
||||||
|
"general_speech_es": "Espanhol",
|
||||||
|
"general_speech_fr": "Francês",
|
||||||
|
"general_speech_it": "Italiano",
|
||||||
|
"general_speech_nl": "Holandês",
|
||||||
|
"general_speech_pl": "Polonês",
|
||||||
|
"general_speech_ro": "Romeno",
|
||||||
|
"general_speech_ru": "Russo",
|
||||||
|
"general_speech_sv": "Sueco",
|
||||||
|
"general_speech_tr": "Turco",
|
||||||
|
"general_speech_vi": "Vietnamita",
|
||||||
|
"general_speech_zh-CN": "Chinês (simplificado)",
|
||||||
|
"general_webui_title": "Hyperion - Configuração Web",
|
||||||
|
"general_wiki_moreto": "Mais informações para \"$1\" na nossa Wiki",
|
||||||
|
"infoDialog_checklist_title": "Checklist!",
|
||||||
|
"infoDialog_effconf_created_text": "O efeito \"$1\" foi criado com sucesso!",
|
||||||
|
"infoDialog_effconf_deleted_text": "O efeito \"$1\" foi excluído com sucesso!",
|
||||||
|
"infoDialog_general_error_title": "Erro",
|
||||||
|
"infoDialog_general_success_title": "Sucesso",
|
||||||
|
"infoDialog_general_warning_title": "Aviso",
|
||||||
|
"infoDialog_import_comperror_text": "Triste! Seu navegador não suporta importação. Por favor, tente novamente com outro navegador.",
|
||||||
|
"infoDialog_import_confirm_text": "Tem certeza de que deseja importar \"$1\"? Este processo não pode ser revertido!",
|
||||||
|
"infoDialog_import_confirm_title": "Confirmar importação",
|
||||||
|
"infoDialog_import_hyperror_text": "O arquivo de configuração selecionado \"$1\" não pode ser importado. Não é compatível com Hyperion 2.0 e superior!",
|
||||||
|
"infoDialog_import_jsonerror_text": "O arquivo de configuração selecionado \"$1\" não é um arquivo .json ou está corrompido. Mensagem de erro: ($2)",
|
||||||
|
"infoDialog_wizrgb_text": "Sua ordem de bytes RGB já está bem ajustada.",
|
||||||
|
"infoDialog_writeconf_error_text": "Falha ao salvar sua configuração.",
|
||||||
|
"infoDialog_writeimage_error_text": "O arquivo selecionado \"$1\" não é um arquivo de imagem ou está corrompido! Selecione outro arquivo de imagem.",
|
||||||
|
"info_404": "A página que você solicitou não está disponível!",
|
||||||
|
"info_conlost_label_autorecon": "Nós nos reconectamos novamente após o Hyperion estar disponível.",
|
||||||
|
"info_conlost_label_autorefresh": "Esta página será atualizada automaticamente.",
|
||||||
|
"info_conlost_label_reason": "Razões possíveis:",
|
||||||
|
"info_conlost_label_reason1": "- Conexão WLAN ruim",
|
||||||
|
"info_conlost_label_reason2": "- Você realizou uma atualização",
|
||||||
|
"info_conlost_label_reason3": "- Hyperion não está aberto",
|
||||||
|
"info_conlost_label_reload": "Reconexão automática interrompida - limite excedido, atualize a página ou clique aqui.",
|
||||||
|
"info_conlost_label_title": "Conexão perdida com o serviço Hyperion!",
|
||||||
|
"info_restart_contus": "Se você ainda está por aqui depois de 20 segundos e não tem ideia do porque, abra um novo tópico em nosso fórum de suporte...",
|
||||||
|
"info_restart_contusa": "... com seus últimos passos. Obrigado!",
|
||||||
|
"info_restart_rightback": "Hyperion estará de volta logo!",
|
||||||
|
"info_restart_title": "Reiniciando atualmente ...",
|
||||||
|
"main_ledsim_btn_togglelednumber": "Números dos LEDs",
|
||||||
|
"main_ledsim_btn_toggleleds": "Mostrar LEDs",
|
||||||
|
"main_ledsim_btn_togglelivevideo": "Video em tempo real",
|
||||||
|
"main_ledsim_text": "Visualização em tempo real das cores dos LEDs e, opcionalmente, stream de vídeo do dispositivo de captura.",
|
||||||
|
"main_ledsim_title": "Visualização LED",
|
||||||
|
"main_menu_about_token": "Sobre o Hyperion",
|
||||||
|
"main_menu_colors_conf_token": "Processamento de Imagem",
|
||||||
|
"main_menu_configuration_token": "Configuração",
|
||||||
|
"main_menu_dashboard_token": "Dashboard",
|
||||||
|
"main_menu_effect_conf_token": "Efeitos",
|
||||||
|
"main_menu_effectsconfigurator_token": "Configurador de efeitos",
|
||||||
|
"main_menu_general_conf_token": "Geral",
|
||||||
|
"main_menu_grabber_conf_token": "Hardware de Captura",
|
||||||
|
"main_menu_input_selection_token": "Seleção de",
|
||||||
|
"main_menu_leds_conf_token": "Hardware LED",
|
||||||
|
"main_menu_logging_token": "Log",
|
||||||
|
"main_menu_network_conf_token": "Serviços de Rede",
|
||||||
|
"main_menu_remotecontrol_token": "Controle Remoto",
|
||||||
|
"main_menu_support_token": "Suporte",
|
||||||
|
"main_menu_system_token": "Sistema",
|
||||||
|
"main_menu_update_token": "Atualizar",
|
||||||
|
"main_menu_webconfig_token": "Configuração web",
|
||||||
|
"remote_adjustment_intro": "Modificar cor",
|
||||||
|
"remote_adjustment_label": "Ajuste de cor",
|
||||||
|
"remote_color_button_reset": "Resetar Cor/Efeito",
|
||||||
|
"remote_color_intro": "Defina um efeito ou cor. Também são listados os efeitos criados por você mesmo (se disponíveis). $1",
|
||||||
|
"remote_color_label": "Cores/Efeitos",
|
||||||
|
"remote_color_label_color": "Cor:",
|
||||||
|
"remote_components_intro": "Habilite e desabilite os componentes do Hyperion durante o tempo de execução. $1",
|
||||||
|
"remote_components_label": "Controle de componentes",
|
||||||
|
"remote_effects_label_effects": "Efeito:",
|
||||||
|
"remote_effects_label_picture": "Foto:",
|
||||||
|
"remote_input_clearall": "Limpar todos os efeitos / cores",
|
||||||
|
"remote_input_duration": "Duração:",
|
||||||
|
"remote_input_intro": "O Hyperion usa um sistema de prioridade para selecionar uma fonte. Tudo que você define tem uma prioridade (Efeito / Cor / Captura de plataforma / Captura USB e fontes de rede). Por padrão, o Hyperion seleciona as fontes de acordo com a prioridade (o número mais baixo reflete a fonte ativa atual). Agora você tem a oportunidade de selecionar as fontes por conta própria. $1",
|
||||||
|
"remote_input_ip": "IP:",
|
||||||
|
"remote_input_label": "Seleção de Fonte",
|
||||||
|
"remote_input_label_autoselect": "Seleção Automática",
|
||||||
|
"remote_input_origin": "Origem",
|
||||||
|
"remote_input_owner": "Tipo",
|
||||||
|
"remote_input_priority": "Prioridade",
|
||||||
|
"remote_input_setsource_btn": "Selecione a fonte",
|
||||||
|
"remote_input_sourceactiv_btn": "Fonte ativa",
|
||||||
|
"remote_input_status": "Estado/Ação",
|
||||||
|
"remote_losthint": "Nota: Todas as configurações são redefinidas ao resetar.",
|
||||||
|
"remote_maptype_intro": "Normalmente, o layout de led define qual LED cobre uma área específica da imagem, você pode alterá-lo aqui: $1.",
|
||||||
|
"remote_maptype_label": "Tipo de mapeamento",
|
||||||
|
"remote_maptype_label_multicolor_mean": "Multicolorido",
|
||||||
|
"remote_maptype_label_unicolor_mean": "Unicolorido",
|
||||||
|
"remote_optgroup_syseffets": "Effeitos do Sistema",
|
||||||
|
"remote_optgroup_templates_custom": "Modelos do usuário",
|
||||||
|
"remote_optgroup_templates_system": "Modelos do sistema",
|
||||||
|
"remote_optgroup_usreffets": "Effeitos do Usuário",
|
||||||
|
"remote_videoMode_2D": "2D",
|
||||||
|
"remote_videoMode_3DSBS": "3DSBS",
|
||||||
|
"remote_videoMode_3DTAB": "3DTAB",
|
||||||
|
"remote_videoMode_intro": "Alterne entre os diferentes modos de vídeo para desfrutar de filmes 3D! São suportados todos os dispositivos de captura. $1",
|
||||||
|
"remote_videoMode_label": "Modo vídeo",
|
||||||
|
"support_label_affinstr1": "Clique no link apropriado de seu país",
|
||||||
|
"support_label_affinstr2": "Tudo o que você compra (não importa o que), nós recebemos uma pequena taxa com base no seu faturamento",
|
||||||
|
"support_label_affinstr3": "Você SEMPRE paga o mesmo preço, não há absolutamente nenhuma diferença. Experimente!",
|
||||||
|
"support_label_btctext": "Endereço:",
|
||||||
|
"support_label_donate": "Doe ou use nossos links de afiliados",
|
||||||
|
"support_label_donationpp": "Doação:",
|
||||||
|
"support_label_fbtext": "Compartilhe nossa página do Hyperion no Facebook e receba um aviso quando novas atualizações forem lançadas",
|
||||||
|
"support_label_forumtext": "Demonstrações, discussões, ajuda e muito mais",
|
||||||
|
"support_label_forumtitle": "Fórum",
|
||||||
|
"support_label_ggtext": "Circule-nos no Google +!",
|
||||||
|
"support_label_ghtext": "Visite-nos no GitHub",
|
||||||
|
"support_label_igtext": "Visite-nos no Instagram para ver as últimas fotos do Hyperion!",
|
||||||
|
"support_label_intro": "Hyperion é um software gratuito sem fins lucrativos. Uma pequena equipe está trabalhando nisso e é por isso que precisamos do seu apoio constante.",
|
||||||
|
"support_label_spreadtheword": "Divulgue",
|
||||||
|
"support_label_title": "Ajude Hyperion",
|
||||||
|
"support_label_twtext": "Compartilhe e siga no Twitter, esteja sempre atualizado com as últimas postagens sobre o desenvolvimento do Hyperion",
|
||||||
|
"support_label_webpagetext": "Site do Hyperion",
|
||||||
|
"support_label_webpagetitle": "Site",
|
||||||
|
"support_label_webrestitle": "Recursos de informação e ajuda",
|
||||||
|
"support_label_wikitext": "A fonte de A a Z para quase tudo relacionado ao Hyperion",
|
||||||
|
"support_label_wikititle": "Documentação",
|
||||||
|
"support_label_yttext": "Entediado das fotos? Confira nosso canal no YouTube!",
|
||||||
|
"update_button_changelog": "Log de mudanças completo",
|
||||||
|
"update_button_install": "Instalar",
|
||||||
|
"update_error_getting_versions": "Tivemos problemas para determinar a versão mais recente disponível.",
|
||||||
|
"update_label_description": "Descrição:",
|
||||||
|
"update_label_intro": "Visão geral sobre todas as versões disponíveis do Hyperion. Além disso, você pode atualizar ou fazer downgrade de sua versão do Hyperion sempre que quiser. Ordenado do mais recente ao mais antigo",
|
||||||
|
"update_label_type": "Tipo:",
|
||||||
|
"update_no_updates_for_branch": "Nenhuma atualização para o canal da versão selecionada.",
|
||||||
|
"update_versreminder": "Sua versão: $1",
|
||||||
|
"wiz_atmoorb_desc2": "Agora escolha quais Orbs devem ser adicionados. A posição atribui a lâmpada a uma posição específica na sua \"imagem\". Lâmpadas desativadas não serão adicionadas. Para identificar lâmpadas individuais, pressione o botão à direita.",
|
||||||
|
"wiz_atmoorb_intro1": "Este assistente configura o Hyperion para AtmoOrbs. Os recursos são a detecção automática AtmoOrb, definindo cada luz para uma posição específica em sua imagem ou desativá-lo e otimizar as configurações do Hyperion automaticamente! Resumindo: você só precisa de alguns cliques e pronto!",
|
||||||
|
"wiz_atmoorb_title": "Assistente AtmoOrb",
|
||||||
|
"wiz_cc_adjustgamma": "Gama: O que você precisa fazer é ajustar os níveis de gama de cada canal até ter a mesma quantidade percebida de cada canal. Dica: Neutro é 1.0! Por exemplo, se o seu cinza for um pouco avermelhado, isso significa que você deve aumentar o gama do vermelho para reduzir a quantidade de vermelho (quanto mais gama, menor a quantidade de cor).",
|
||||||
|
"wiz_cc_adjustit": "Ajuste seu \"$1\", até que esteja tudo bem com ele. Atenção: quanto mais você se afasta do valor padrão, o espectro de cores será limitado (também para todas as cores intermediárias). Dependendo do espectro de cores da TV / LED, os resultados podem variar.",
|
||||||
|
"wiz_cc_backlight": "Além disso, você pode definir uma luz de fundo para separar as \"cores ruins\" em áreas quase escuras ou se você não gostar de alternar entre cores e desligadas durante a exibição. Além disso, você pode definir se deve haver alguma cor ou apenas branco. Isso é desativado durante o estado \"Desligado\", \"Cor\" e \"Efeito\".",
|
||||||
|
"wiz_cc_btn_stop": "Parar o vídeo",
|
||||||
|
"wiz_cc_btn_switchpic": "Mudar de imagem",
|
||||||
|
"wiz_cc_chooseid": "Defina um nome para este perfil de cor.",
|
||||||
|
"wiz_cc_intro1": "Este assistente irá guiá-lo através da calibração do led. Se você estiver usando o Kodi, as fotos e vídeos de calibração podem ser enviados diretamente para ele. Pré-requisito: você precisa habilitar \"Permitir controle remoto de aplicativos em outros sistemas\" no Kodi. <br /> Como alternativa, você pode fazer o download desses arquivos por conta própria e exibi-los quando o assistente solicitar que você ajuste a configuração.",
|
||||||
|
"wiz_cc_kodicon": "Kodi encontrado, prossiga com o suporte Kodi.",
|
||||||
|
"wiz_cc_kodidiscon": "Kodi não encontrado, prossiga sem o suporte Kodi (verifique se o controle remoto por outros sistemas está ativado).",
|
||||||
|
"wiz_cc_kodidisconlink": "Baixar fotos do link:",
|
||||||
|
"wiz_cc_kodimsg_start": "Sucesso do teste - hora de continuar!",
|
||||||
|
"wiz_cc_kodishould": "Kodi deve mostrar a seguinte imagem: $1",
|
||||||
|
"wiz_cc_kwebs": "Servidor da web Kodi (nome do host ou IP)",
|
||||||
|
"wiz_cc_lettvshow": "Deixe sua TV mostrar a seguinte imagem: $1",
|
||||||
|
"wiz_cc_lettvshowm": "Verifique isso com as seguintes fotos: $1",
|
||||||
|
"wiz_cc_link": "Clique aqui!",
|
||||||
|
"wiz_cc_morethanone": "Você tem mais de um perfil, escolha o perfil que deseja calibrar.",
|
||||||
|
"wiz_cc_summary": "Uma conclusão de suas configurações. Durante a reprodução do vídeo, você pode alterar ou testar os valores novamente. Quando terminar, clique em salvar.",
|
||||||
|
"wiz_cc_testintro": "É hora de um teste real!",
|
||||||
|
"wiz_cc_testintrok": "Pressione o botão abaixo para iniciar um vídeo de teste.",
|
||||||
|
"wiz_cc_testintrowok": "Confira o seguinte link para baixar vídeos de teste:",
|
||||||
|
"wiz_cc_title": "Assistente de calibração de cores",
|
||||||
|
"wiz_cololight_desc2": "Agora escolha quais Cololights devem ser adicionados. Para identificar luzes individuais, pressione o botão à direita.",
|
||||||
|
"wiz_cololight_intro1": "Este assistente configura o Hyperion para o sistema Cololight. Os recursos são a detecção automática Cololight e ajuste as configurações do Hyperion automaticamente! Resumindo: Tudo o que você precisa é de alguns cliques e pronto! <br /> Nota: No caso do Cololight Strip, pode ser necessário corrigir manualmente a contagem e o layout dos LEDs.",
|
||||||
|
"wiz_cololight_noprops": "Não é possível obter propriedades do dispositivo - Definir contagem de LED de hardware manualmente",
|
||||||
|
"wiz_cololight_title": "Assistente Cololight",
|
||||||
|
"wiz_guideyou": "O $1 irá guiá-lo através das configurações. Basta apertar o botão!",
|
||||||
|
"wiz_hue_blinkblue": "Deixe ID $1 acender em azul",
|
||||||
|
"wiz_hue_clientkey": "Chave do Cliente:",
|
||||||
|
"wiz_hue_create_user": "Criar novo Usuário",
|
||||||
|
"wiz_hue_desc1": "Ele procura automaticamente por um Hue-Bridge, caso não encontre um, você precisa fornecer o endereço IP e apertar o botão recarregar à direita. Agora você precisa de um ID de usuário, se você não tiver um, crie um novo.",
|
||||||
|
"wiz_hue_desc2": "Agora escolha quais lâmpadas devem ser adicionadas. A posição atribui a lâmpada a uma posição específica na sua \"imagem\". Lâmpadas desativadas não serão adicionadas. Para identificar lâmpadas individuais, pressione o botão à direita.",
|
||||||
|
"wiz_hue_e_clientkey_needed": "Uma chave de cliente que corresponda ao nome de usuário é necessária para usar a API de entretenimento. Insira um existente ou use o botão abaixo para criar um novo.",
|
||||||
|
"wiz_hue_e_create_user": "Criar novo usuário e chave de cliente",
|
||||||
|
"wiz_hue_e_desc1": "Ele procura automaticamente por uma hue bridge, caso não encontre uma, você precisa fornecer o endereço IP e apertar o botão recarregar à direita. Agora você precisa de um ID de usuário e a chave do cliente, se você não tiver os dois, crie um novo.",
|
||||||
|
"wiz_hue_e_desc2": "Agora escolha o seu grupo de entretenimento, que tem todas as suas luzes dentro para usar com o Hyperion.",
|
||||||
|
"wiz_hue_e_desc3": "Agora você pode escolher em que posição a respectiva lâmpada deve estar \"na imagem\". Uma pré-seleção da posição foi feita com base nas posições configuradas das luzes no grupo de entretenimento. Esta é apenas uma recomendação e pode ser personalizada conforme desejado. Você pode, portanto, destacá-los brevemente clicando com o botão direito para melhorar a seleção.",
|
||||||
|
"wiz_hue_e_intro1": "Este assistente configura o Hyperion para o conhecido sistema Philips Hue Entertainment. Os recursos são: detecção automática do Hue Bridge, criação de chaves do usuário e do cliente, seleção do grupo de entretenimento, configuração das luzes do grupo em uma posição específica na imagem e otimização das configurações do Hyperion automaticamente! Resumindo: você só precisa de alguns cliques e pronto!",
|
||||||
|
"wiz_hue_e_noapisupport": "O assistente desativou o suporte à API de entretenimento e continuará no modo clássico.",
|
||||||
|
"wiz_hue_e_noapisupport_hint": "A opção \"<b> Usar Hue Entertainment API </b>\" foi desmarcada.",
|
||||||
|
"wiz_hue_e_noegrpids": "Nenhum grupo de entretenimento definido nesta ponte Hue.",
|
||||||
|
"wiz_hue_e_nogrpids": "Esta ponte Hue não tem grupos definidos, crie pelo menos um antes com os Aplicativos Hue.",
|
||||||
|
"wiz_hue_e_title": "Assistente de Entretenimento Philips Hue",
|
||||||
|
"wiz_hue_e_use_group": "Use o grupo",
|
||||||
|
"wiz_hue_e_use_groupid": "Use o ID de grupo $1",
|
||||||
|
"wiz_hue_failure_connection": "Tempo limite: Por favor, pressione o botão bridge dentro do período de 30 segundos",
|
||||||
|
"wiz_hue_failure_ip": "Nenhuma ponte encontrada, digite um endereço IP válido",
|
||||||
|
"wiz_hue_failure_user": "Usuário não encontrado, crie um novo com o botão abaixo ou insira um ID de usuário válido e pressione o símbolo \"recarregar\".",
|
||||||
|
"wiz_hue_intro1": "Este assistente configura o Hyperion para o conhecido sistema Philips Hue. Os recursos são a detecção automática do Hue Bridge, a criação do usuário, defina cada luz HUE para uma posição específica em sua imagem ou desative-a e ajuste as configurações do Hyperion automaticamente! Resumindo: você só precisa de alguns cliques e pronto!",
|
||||||
|
"wiz_hue_ip": "Hue Bridge IP:",
|
||||||
|
"wiz_hue_noids": "Este Hue Bridge não tem lâmpadas / listras, por favor, emparelhe-os antes com os Aplicativos Hue",
|
||||||
|
"wiz_hue_press_link": "Pressione o botão de link na Hue Bridge.",
|
||||||
|
"wiz_hue_searchb": "Procurando Bridge...",
|
||||||
|
"wiz_hue_title": "Assistente Philips Hue",
|
||||||
|
"wiz_hue_username": "ID de Usuário:",
|
||||||
|
"wiz_identify": "Identificar",
|
||||||
|
"wiz_identify_light": "identificar $1",
|
||||||
|
"wiz_ids_disabled": "Desativado",
|
||||||
|
"wiz_ids_entire": "Foto Inteira",
|
||||||
|
"wiz_noLights": "Nenhum $1 encontrado! Conecte as luzes à rede ou configure-as manualmente.",
|
||||||
|
"wiz_pos": "Posição/Estado",
|
||||||
|
"wiz_rgb_expl": "O ponto colorido muda a cada x segundos de cor (vermelho, verde), ao mesmo tempo que seus LEDs mudam de cor também. Responda às perguntas na parte inferior para verificar / corrigir a ordem dos bytes.",
|
||||||
|
"wiz_rgb_intro1": "Este assistente irá guiá-lo através do processo de localização da ordem correta de cores para seus leds. Clique em continuar para começar.",
|
||||||
|
"wiz_rgb_intro2": "Quando você precisa deste assistente? Exemplo: você define a cor vermelha, mas obtém verde ou azul. Você também pode usá-lo para a primeira configuração.",
|
||||||
|
"wiz_rgb_q": "Qual cor seus LEDs mostram, quando o ponto de cor acima mostra ...",
|
||||||
|
"wiz_rgb_qgend": "...verde?",
|
||||||
|
"wiz_rgb_qrend": "...vermelho?",
|
||||||
|
"wiz_rgb_switchevery": "Mudar de cor a cada ...",
|
||||||
|
"wiz_rgb_title": "Assistente de ordem de bytes RGB",
|
||||||
|
"wiz_wizavail": "Assistente disponível",
|
||||||
|
"wiz_yeelight_desc2": "Agora escolha quais lâmpadas devem ser adicionadas. A posição atribui a lâmpada a uma posição específica na sua \"imagem\". Lâmpadas desativadas não serão adicionadas. Para identificar lâmpadas individuais, pressione o botão à direita.",
|
||||||
|
"wiz_yeelight_intro1": "Este assistente configura o Hyperion para o sistema Yeelight. Os recursos são a detecção automática dos Yeelighs, definindo cada luz em uma posição específica na imagem ou desabilitá-la e ajustar as configurações do Hyperion automaticamente! Resumindo: você só precisa de alguns cliques e pronto!",
|
||||||
|
"wiz_yeelight_title": "Assistente Yeelight",
|
||||||
|
"wiz_yeelight_unsupported": "Não suportado"
|
||||||
|
}
|
76
assets/webconfig/i18n/pt.json
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
{
|
||||||
|
"dashboard_alert_message_confedit_t": "Configuração modificada",
|
||||||
|
"dashboard_alert_message_confsave_success_t": "Configuração gravada",
|
||||||
|
"dashboard_componentbox_label_comp": "Componente",
|
||||||
|
"dashboard_componentbox_label_status": "Estado",
|
||||||
|
"dashboard_componentbox_label_title": "Estado dos componentes",
|
||||||
|
"dashboard_infobox_label_currenthyp": "A tua versão do Hyperion:",
|
||||||
|
"dashboard_infobox_label_disableh": "Desabilitar instância: $1",
|
||||||
|
"dashboard_infobox_label_enableh": "Habilitar instância: $1",
|
||||||
|
"dashboard_infobox_label_instance": "Instância",
|
||||||
|
"dashboard_infobox_label_latesthyp": "Última versão do Hyperion:",
|
||||||
|
"dashboard_infobox_label_platform": "Plataforma:",
|
||||||
|
"dashboard_infobox_label_ports": "Portos",
|
||||||
|
"dashboard_infobox_label_smartacc": "Acesso Inteligente",
|
||||||
|
"dashboard_infobox_label_statush": "Hyperion estado:",
|
||||||
|
"dashboard_infobox_label_title": "Informação",
|
||||||
|
"dashboard_infobox_message_updatesuccess": "Está a executar última versão do Hyperion.",
|
||||||
|
"dashboard_infobox_message_updatewarning": "Uma versão mais recente do Hyperion está disponível! ($1)",
|
||||||
|
"dashboard_label_intro": "O painel fornece uma visão geral rápida sobre o estado do Hyperion.",
|
||||||
|
"dashboard_newsbox_label_title": "Hyperion-Blog",
|
||||||
|
"dashboard_newsbox_noconn": "Não é possível conectar ao servidor Hyperion para recuperar os últimos posts, a sua conexão à Internet funciona?",
|
||||||
|
"dashboard_newsbox_readmore": "Ler mais",
|
||||||
|
"dashboard_newsbox_visitblog": "Visite o Hyperion-Blog",
|
||||||
|
"general_access_advanced": "Avançado",
|
||||||
|
"general_access_default": "Por omissão",
|
||||||
|
"general_access_expert": "Especialista",
|
||||||
|
"general_btn_back": "Voltar",
|
||||||
|
"general_btn_cancel": "Cancelar",
|
||||||
|
"general_btn_continue": "Continuar",
|
||||||
|
"general_btn_iswitch": "Interruptor",
|
||||||
|
"general_btn_next": "Seguinte",
|
||||||
|
"general_btn_off": "Desligar",
|
||||||
|
"general_btn_ok": "OK",
|
||||||
|
"general_btn_on": "Ligar",
|
||||||
|
"general_btn_restarthyperion": "Reiniciar o Hyperion",
|
||||||
|
"general_btn_save": "Garvar",
|
||||||
|
"general_btn_saveandreload": "Gravar e recarregar",
|
||||||
|
"general_btn_yes": "Sim",
|
||||||
|
"general_button_savesettings": "Gravar configurações",
|
||||||
|
"general_col_blue": "azul",
|
||||||
|
"general_col_green": "verde",
|
||||||
|
"general_col_red": "vermelho",
|
||||||
|
"general_comp_BLACKBORDER": "Detecção de barras",
|
||||||
|
"general_comp_BOBLIGHTSERVER": "Boblight Server",
|
||||||
|
"general_comp_FLATBUFSERVER": "Servidor Flatbuffers",
|
||||||
|
"general_comp_FORWARDER": "Forwarder",
|
||||||
|
"general_comp_GRABBER": "Plataforma de Captura",
|
||||||
|
"general_comp_LEDDEVICE": "Dispositivo LED",
|
||||||
|
"general_comp_PROTOSERVER": "Servidor de buffers de protocolo",
|
||||||
|
"general_comp_SMOOTHING": "Smoothing",
|
||||||
|
"general_comp_V4L": "Captura USB",
|
||||||
|
"general_country_de": "Alemanha",
|
||||||
|
"general_country_es": "Espanha",
|
||||||
|
"general_country_fr": "França",
|
||||||
|
"general_country_it": "Itália",
|
||||||
|
"general_country_nl": "Holanda",
|
||||||
|
"general_country_uk": "Reino Unido",
|
||||||
|
"general_country_us": "Estados Unidos da América",
|
||||||
|
"general_speech_cs": "Tcheco",
|
||||||
|
"general_speech_de": "Alemão",
|
||||||
|
"general_speech_en": "Inglês",
|
||||||
|
"general_speech_es": "Espanhol",
|
||||||
|
"general_speech_it": "Italiano",
|
||||||
|
"general_webui_title": "Hyperion - Configuração Web",
|
||||||
|
"general_wiki_moreto": "Mais informação a \"$1\" na nossa Wiki",
|
||||||
|
"main_menu_colors_conf_token": "Processamento de imagem",
|
||||||
|
"main_menu_configuration_token": "Configuração",
|
||||||
|
"main_menu_dashboard_token": "Painel",
|
||||||
|
"main_menu_effect_conf_token": "Efeitos",
|
||||||
|
"main_menu_general_conf_token": "Geral",
|
||||||
|
"main_menu_grabber_conf_token": "Hardware de captura",
|
||||||
|
"main_menu_leds_conf_token": "LED Hardware",
|
||||||
|
"main_menu_network_conf_token": "Serviços de rede",
|
||||||
|
"main_menu_remotecontrol_token": "Controlo remoto",
|
||||||
|
"main_menu_support_token": "Suporte"
|
||||||
|
}
|
@ -26,6 +26,7 @@
|
|||||||
"dashboard_alert_message_confsave_success": "Configurația ta Hyperion a fost salvată cu succes. Modificările sunt active acum.",
|
"dashboard_alert_message_confsave_success": "Configurația ta Hyperion a fost salvată cu succes. Modificările sunt active acum.",
|
||||||
"dashboard_componentbox_label_title": "Stare componente",
|
"dashboard_componentbox_label_title": "Stare componente",
|
||||||
"dashboard_infobox_label_currenthyp": "Versiunea ta Hyperion:",
|
"dashboard_infobox_label_currenthyp": "Versiunea ta Hyperion:",
|
||||||
|
"dashboard_infobox_label_disableh": "Dezactivare Hyperion",
|
||||||
"dashboard_infobox_label_enableh": "Activare Instans: $1",
|
"dashboard_infobox_label_enableh": "Activare Instans: $1",
|
||||||
"dashboard_infobox_label_instance": "Instanță:",
|
"dashboard_infobox_label_instance": "Instanță:",
|
||||||
"dashboard_infobox_label_latesthyp": "Cea mai nouă versiune Hyperion:",
|
"dashboard_infobox_label_latesthyp": "Cea mai nouă versiune Hyperion:",
|
||||||
|
@ -56,7 +56,8 @@
|
|||||||
"dashboard_infobox_label_instance": "Пример:",
|
"dashboard_infobox_label_instance": "Пример:",
|
||||||
"dashboard_infobox_label_latesthyp": "Последняя версия Hyperion:",
|
"dashboard_infobox_label_latesthyp": "Последняя версия Hyperion:",
|
||||||
"dashboard_infobox_label_platform": "Платформа:",
|
"dashboard_infobox_label_platform": "Платформа:",
|
||||||
"dashboard_infobox_label_ports": "Порты (flat|proto):",
|
"dashboard_infobox_label_ports": "Порты",
|
||||||
|
"dashboard_infobox_label_ports_flat_proto": "Flatbuffer | Protobuffer:",
|
||||||
"dashboard_infobox_label_statush": "Статус Hyperion:",
|
"dashboard_infobox_label_statush": "Статус Hyperion:",
|
||||||
"dashboard_infobox_label_title": "Информация",
|
"dashboard_infobox_label_title": "Информация",
|
||||||
"dashboard_infobox_message_updatesuccess": "Вы используете актуальную версию Hyperion.",
|
"dashboard_infobox_message_updatesuccess": "Вы используете актуальную версию Hyperion.",
|
||||||
@ -229,4 +230,4 @@
|
|||||||
"wiz_hue_username": "Пользователь ID:",
|
"wiz_hue_username": "Пользователь ID:",
|
||||||
"wiz_rgb_qgend": "...зеленый?",
|
"wiz_rgb_qgend": "...зеленый?",
|
||||||
"wiz_rgb_qrend": "...красный?"
|
"wiz_rgb_qrend": "...красный?"
|
||||||
}
|
}
|
||||||
|
@ -116,7 +116,6 @@
|
|||||||
"conf_leds_optgroup_RPiGPIO": "RPi GPIO",
|
"conf_leds_optgroup_RPiGPIO": "RPi GPIO",
|
||||||
"conf_leds_optgroup_RPiPWM": "RPi PWM",
|
"conf_leds_optgroup_RPiPWM": "RPi PWM",
|
||||||
"conf_leds_optgroup_RPiSPI": "RPi SPI",
|
"conf_leds_optgroup_RPiSPI": "RPi SPI",
|
||||||
"conf_leds_optgroup_debug": "Debug",
|
|
||||||
"conf_leds_optgroup_network": "Nätverk",
|
"conf_leds_optgroup_network": "Nätverk",
|
||||||
"conf_leds_optgroup_usb": "USB",
|
"conf_leds_optgroup_usb": "USB",
|
||||||
"conf_logging_btn_autoscroll": "Autorullning",
|
"conf_logging_btn_autoscroll": "Autorullning",
|
||||||
@ -164,14 +163,14 @@
|
|||||||
"dashboard_infobox_label_instance": "Instans:",
|
"dashboard_infobox_label_instance": "Instans:",
|
||||||
"dashboard_infobox_label_latesthyp": "Senaste Hyperion-versionen:",
|
"dashboard_infobox_label_latesthyp": "Senaste Hyperion-versionen:",
|
||||||
"dashboard_infobox_label_platform": "Plattform",
|
"dashboard_infobox_label_platform": "Plattform",
|
||||||
"dashboard_infobox_label_ports": "Portar (flat|proto):",
|
"dashboard_infobox_label_ports": "Portar",
|
||||||
"dashboard_infobox_label_smartacc": "Smart Åtkomst",
|
"dashboard_infobox_label_smartacc": "Smart Åtkomst",
|
||||||
"dashboard_infobox_label_statush": "Hyperion-status:",
|
"dashboard_infobox_label_statush": "Hyperion-status:",
|
||||||
"dashboard_infobox_label_title": "Information",
|
"dashboard_infobox_label_title": "Information",
|
||||||
"dashboard_infobox_label_watchedversionbranch": "Sedd grenversion",
|
"dashboard_infobox_label_watchedversionbranch": "Sedd grenversion",
|
||||||
"dashboard_infobox_message_updatesuccess": "Du använder den senaste versionen av Hyperion.",
|
"dashboard_infobox_message_updatesuccess": "Du använder den senaste versionen av Hyperion.",
|
||||||
"dashboard_infobox_message_updatewarning": "En nyare version av Hyperion finns tillgänglig! ($1)",
|
"dashboard_infobox_message_updatewarning": "En nyare version av Hyperion finns tillgänglig! ($1)",
|
||||||
"dashboard_label_intro": "Denna sida ger dig en snabb överblick över din Hyperion-installation och visar dig de senaste nyheterna från Hyperion-bloggen.",
|
"dashboard_label_intro": "Denna sida ger dig en snabb överblick över din Hyperion-installation.",
|
||||||
"dashboard_message_default_password": "Standardlösenordet för webbanvändargränssnittet är inställt. Vi rekommenderar starkt att ändra detta.",
|
"dashboard_message_default_password": "Standardlösenordet för webbanvändargränssnittet är inställt. Vi rekommenderar starkt att ändra detta.",
|
||||||
"dashboard_message_default_password_t": "Webbanvändargränssnittets standardlösenord är inställt",
|
"dashboard_message_default_password_t": "Webbanvändargränssnittets standardlösenord är inställt",
|
||||||
"dashboard_message_do_not_show_again": "Visa inte detta meddelande igen",
|
"dashboard_message_do_not_show_again": "Visa inte detta meddelande igen",
|
||||||
@ -261,12 +260,14 @@
|
|||||||
"edt_conf_enum_automatic": "Automatisk",
|
"edt_conf_enum_automatic": "Automatisk",
|
||||||
"edt_conf_enum_bbclassic": "Klassisk",
|
"edt_conf_enum_bbclassic": "Klassisk",
|
||||||
"edt_conf_enum_bbdefault": "Standard",
|
"edt_conf_enum_bbdefault": "Standard",
|
||||||
|
"edt_conf_enum_bbletterbox": "Letterbox",
|
||||||
"edt_conf_enum_bbosd": "OSD",
|
"edt_conf_enum_bbosd": "OSD",
|
||||||
"edt_conf_enum_bgr": "BGR",
|
"edt_conf_enum_bgr": "BGR",
|
||||||
"edt_conf_enum_bottom_up": "Botten upp",
|
"edt_conf_enum_bottom_up": "Botten upp",
|
||||||
"edt_conf_enum_brg": "BRG",
|
"edt_conf_enum_brg": "BRG",
|
||||||
"edt_conf_enum_color": "Färg",
|
"edt_conf_enum_color": "Färg",
|
||||||
"edt_conf_enum_custom": "Anpassad",
|
"edt_conf_enum_custom": "Anpassad",
|
||||||
|
"edt_conf_enum_decay": "Förfall",
|
||||||
"edt_conf_enum_dl_error": "Fel",
|
"edt_conf_enum_dl_error": "Fel",
|
||||||
"edt_conf_enum_dl_informational": "Informativ",
|
"edt_conf_enum_dl_informational": "Informativ",
|
||||||
"edt_conf_enum_dl_nodebug": "Ingen felsökning",
|
"edt_conf_enum_dl_nodebug": "Ingen felsökning",
|
||||||
@ -366,7 +367,15 @@
|
|||||||
"edt_conf_pbs_timeout_title": "Timeout",
|
"edt_conf_pbs_timeout_title": "Timeout",
|
||||||
"edt_conf_smooth_continuousOutput_expl": "Uppdatera lysdioderna även om det inte är någon förändring i bilden.",
|
"edt_conf_smooth_continuousOutput_expl": "Uppdatera lysdioderna även om det inte är någon förändring i bilden.",
|
||||||
"edt_conf_smooth_continuousOutput_title": "Kontinuerlig utgång",
|
"edt_conf_smooth_continuousOutput_title": "Kontinuerlig utgång",
|
||||||
|
"edt_conf_smooth_decay_expl": "Förfallets hastighet. 1 är linjär, större värden har starkare effekt.",
|
||||||
|
"edt_conf_smooth_decay_title": "Förfall-kraft",
|
||||||
|
"edt_conf_smooth_dithering_expl": "Förbättra färgnoggrannheten vid höga utskriftshastigheter genom att växla mellan intilliggande färger.",
|
||||||
|
"edt_conf_smooth_dithering_title": "Dithering",
|
||||||
"edt_conf_smooth_heading_title": "Utjämning",
|
"edt_conf_smooth_heading_title": "Utjämning",
|
||||||
|
"edt_conf_smooth_interpolationRate_expl": "Hastighet för beräkning av släta mellanramar.",
|
||||||
|
"edt_conf_smooth_interpolationRate_title": "Interpoleringshastighet",
|
||||||
|
"edt_conf_smooth_outputRate_expl": "Utgångshastigheten till din LED-styrenhet.",
|
||||||
|
"edt_conf_smooth_outputRate_title": "Utgångsfrekvens",
|
||||||
"edt_conf_smooth_time_ms_expl": "Hur länge ska utjämningen samla bilder?",
|
"edt_conf_smooth_time_ms_expl": "Hur länge ska utjämningen samla bilder?",
|
||||||
"edt_conf_smooth_time_ms_title": "Tid",
|
"edt_conf_smooth_time_ms_title": "Tid",
|
||||||
"edt_conf_smooth_type_expl": "Typ av utjämning.",
|
"edt_conf_smooth_type_expl": "Typ av utjämning.",
|
||||||
@ -456,6 +465,8 @@
|
|||||||
"edt_dev_spec_dithering_title": "Ditrering",
|
"edt_dev_spec_dithering_title": "Ditrering",
|
||||||
"edt_dev_spec_dmaNumber_title": "DMA-kanal",
|
"edt_dev_spec_dmaNumber_title": "DMA-kanal",
|
||||||
"edt_dev_spec_gamma_title": "Gamma",
|
"edt_dev_spec_gamma_title": "Gamma",
|
||||||
|
"edt_dev_spec_globalBrightnessControlMaxLevel_title": "Max strömnivå",
|
||||||
|
"edt_dev_spec_globalBrightnessControlThreshold_title": "Adaptiv strömtröskel",
|
||||||
"edt_dev_spec_gpioBcm_title": "GPIO-stift",
|
"edt_dev_spec_gpioBcm_title": "GPIO-stift",
|
||||||
"edt_dev_spec_gpioMap_title": "GPIO-kartläggning",
|
"edt_dev_spec_gpioMap_title": "GPIO-kartläggning",
|
||||||
"edt_dev_spec_gpioNumber_title": "GPIO-nummer",
|
"edt_dev_spec_gpioNumber_title": "GPIO-nummer",
|
||||||
@ -708,11 +719,13 @@
|
|||||||
"general_comp_PROTOSERVER": "Protokoll bufferserver",
|
"general_comp_PROTOSERVER": "Protokoll bufferserver",
|
||||||
"general_comp_SMOOTHING": "Utjämning",
|
"general_comp_SMOOTHING": "Utjämning",
|
||||||
"general_comp_V4L": "USB-fångst",
|
"general_comp_V4L": "USB-fångst",
|
||||||
|
"general_country_cn": "Kina",
|
||||||
"general_country_de": "Tyskland",
|
"general_country_de": "Tyskland",
|
||||||
"general_country_es": "Spanien",
|
"general_country_es": "Spanien",
|
||||||
"general_country_fr": "Frankrike",
|
"general_country_fr": "Frankrike",
|
||||||
"general_country_it": "Italien",
|
"general_country_it": "Italien",
|
||||||
"general_country_nl": "Nederländerna",
|
"general_country_nl": "Nederländerna",
|
||||||
|
"general_country_ru": "Ryssland",
|
||||||
"general_country_uk": "Storbritannien",
|
"general_country_uk": "Storbritannien",
|
||||||
"general_country_us": "USA",
|
"general_country_us": "USA",
|
||||||
"general_speech_cs": "Tjeckiska",
|
"general_speech_cs": "Tjeckiska",
|
||||||
@ -724,9 +737,11 @@
|
|||||||
"general_speech_nl": "Holländska",
|
"general_speech_nl": "Holländska",
|
||||||
"general_speech_pl": "Polska",
|
"general_speech_pl": "Polska",
|
||||||
"general_speech_ro": "Rumänska",
|
"general_speech_ro": "Rumänska",
|
||||||
|
"general_speech_ru": "Ryska",
|
||||||
"general_speech_sv": "Svenska",
|
"general_speech_sv": "Svenska",
|
||||||
"general_speech_tr": "Turkiska",
|
"general_speech_tr": "Turkiska",
|
||||||
"general_speech_vi": "Vietnamesiska",
|
"general_speech_vi": "Vietnamesiska",
|
||||||
|
"general_speech_zh-CN": "Kinesiska (förenklad)",
|
||||||
"general_webui_title": "Hyperion - Webbkonfiguration",
|
"general_webui_title": "Hyperion - Webbkonfiguration",
|
||||||
"general_wiki_moreto": "Mer information om \"$1\" finns i vår",
|
"general_wiki_moreto": "Mer information om \"$1\" finns i vår",
|
||||||
"infoDialog_checklist_title": "Checklista!",
|
"infoDialog_checklist_title": "Checklista!",
|
||||||
@ -867,6 +882,10 @@
|
|||||||
"wiz_cc_testintrok": "Klicka på knappen nedan för att starta en testvideo.",
|
"wiz_cc_testintrok": "Klicka på knappen nedan för att starta en testvideo.",
|
||||||
"wiz_cc_testintrowok": "Kolla in följande länk för att ladda ner testvideor:",
|
"wiz_cc_testintrowok": "Kolla in följande länk för att ladda ner testvideor:",
|
||||||
"wiz_cc_title": "Färgkalibreringsguiden",
|
"wiz_cc_title": "Färgkalibreringsguiden",
|
||||||
|
"wiz_cololight_desc2": "Välj nu vilka Cololights som ska läggas till. För att identifiera enstaka lampor, tryck på knappen till höger.",
|
||||||
|
"wiz_cololight_intro1": "Den här guiden konfigurerar Hyperion för Cololight-systemet. Funktionerna är den automatiska detekteringen av Cololight och justerar Hyperion-inställningarna automatiskt! Kort sagt: Allt du behöver är några klick och du är klar! <br /> Obs! I fallet med Cololight Strip kan du behöva korrigera antal LEDs och layout manuellt.",
|
||||||
|
"wiz_cololight_noprops": "Det går inte att få enhetsegenskaper - Definiera antal LED-lampor manuellt",
|
||||||
|
"wiz_cololight_title": "Cololight Guide",
|
||||||
"wiz_guideyou": "$1 guidar dig genom inställningarna. Tryck bara på knappen!",
|
"wiz_guideyou": "$1 guidar dig genom inställningarna. Tryck bara på knappen!",
|
||||||
"wiz_hue_blinkblue": "Låt ID $1 lysa blått",
|
"wiz_hue_blinkblue": "Låt ID $1 lysa blått",
|
||||||
"wiz_hue_clientkey": "Klientnyckel:",
|
"wiz_hue_clientkey": "Klientnyckel:",
|
||||||
@ -900,6 +919,7 @@
|
|||||||
"wiz_identify_light": "Identifiera $1",
|
"wiz_identify_light": "Identifiera $1",
|
||||||
"wiz_ids_disabled": "Inaktiverad",
|
"wiz_ids_disabled": "Inaktiverad",
|
||||||
"wiz_ids_entire": "Hela bilden",
|
"wiz_ids_entire": "Hela bilden",
|
||||||
|
"wiz_noLights": "Ingen $1 hittades! Vänligen anslut lamporna till nätverket eller konfigurera dem manuellt.",
|
||||||
"wiz_pos": "Position/läge",
|
"wiz_pos": "Position/läge",
|
||||||
"wiz_rgb_expl": "Den färgade punkten kommer att ändra färg (röd, grön) varje x sekund, samtidigt som dina lysdioder byter till den färgen. Svara på frågorna längst ner för att kontrollera/korrigera din byte-order.",
|
"wiz_rgb_expl": "Den färgade punkten kommer att ändra färg (röd, grön) varje x sekund, samtidigt som dina lysdioder byter till den färgen. Svara på frågorna längst ner för att kontrollera/korrigera din byte-order.",
|
||||||
"wiz_rgb_intro1": "Den här guiden leder dig genom processen för att hitta rätt färgordning för dina lysdioder. Klicka på Fortsätt för att börja.",
|
"wiz_rgb_intro1": "Den här guiden leder dig genom processen för att hitta rätt färgordning för dina lysdioder. Klicka på Fortsätt för att börja.",
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
"about_resources": "$1 kitaplıkları",
|
"about_resources": "$1 kitaplıkları",
|
||||||
"about_translations": "Çeviriler",
|
"about_translations": "Çeviriler",
|
||||||
"about_version": "Versiyon",
|
"about_version": "Versiyon",
|
||||||
|
"conf_colors_smoothing_intro": "Yumuşatma renk/parlaklık değişimlerini rahatsız edici ve dikkat dağıtıcı etkileri azaltmak için düzleştirir. ",
|
||||||
"conf_effect_fgeff_intro": "Hyperion başlatılırken gösterilicek görüntülenecek efekt veya rengi seçiniz",
|
"conf_effect_fgeff_intro": "Hyperion başlatılırken gösterilicek görüntülenecek efekt veya rengi seçiniz",
|
||||||
"conf_effect_path_intro": "Efektleri belirlenmiş yollardan yükle.Ek olarak efektleri tüm efektler listesinden tek tek etkisiz hale getirebilirsiniz",
|
"conf_effect_path_intro": "Efektleri belirlenmiş yollardan yükle.Ek olarak efektleri tüm efektler listesinden tek tek etkisiz hale getirebilirsiniz",
|
||||||
"conf_general_impexp_expbtn": "Dışa Aktar",
|
"conf_general_impexp_expbtn": "Dışa Aktar",
|
||||||
@ -18,6 +19,7 @@
|
|||||||
"conf_general_impexp_title": "Konfigürasyonu İçe/Dışa Aktar",
|
"conf_general_impexp_title": "Konfigürasyonu İçe/Dışa Aktar",
|
||||||
"conf_general_intro": "Hyperion ve WebUI hakkında, diğer kategorilere girmeyen temel ayarlar.",
|
"conf_general_intro": "Hyperion ve WebUI hakkında, diğer kategorilere girmeyen temel ayarlar.",
|
||||||
"conf_general_label_title": "Genel ayarlar",
|
"conf_general_label_title": "Genel ayarlar",
|
||||||
|
"conf_grabber_v4l_intro": "USB yakalama cihazı USB aracılığıyla kaynak görüntülerinin işlenmek üzere sisteme girmesini sağlayan bir cihazdır.",
|
||||||
"conf_helptable_expl": "Açıklama",
|
"conf_helptable_expl": "Açıklama",
|
||||||
"conf_helptable_option": "Seçenek",
|
"conf_helptable_option": "Seçenek",
|
||||||
"conf_leds_contr_label_contrtype": "Kontrolör tipi:",
|
"conf_leds_contr_label_contrtype": "Kontrolör tipi:",
|
||||||
@ -42,6 +44,7 @@
|
|||||||
"conf_leds_layout_cl_leftbottom": "Sol 50% - 100% Alt",
|
"conf_leds_layout_cl_leftbottom": "Sol 50% - 100% Alt",
|
||||||
"conf_leds_layout_cl_leftmiddle": "Sol 25% - 75% Orta",
|
"conf_leds_layout_cl_leftmiddle": "Sol 25% - 75% Orta",
|
||||||
"conf_leds_layout_cl_lefttop": "Sol 0% - 50% Üst",
|
"conf_leds_layout_cl_lefttop": "Sol 0% - 50% Üst",
|
||||||
|
"conf_leds_layout_cl_overlap": "Üst üste gelme",
|
||||||
"conf_leds_layout_cl_reversdir": "Ters yön",
|
"conf_leds_layout_cl_reversdir": "Ters yön",
|
||||||
"conf_leds_layout_cl_right": "Sağ",
|
"conf_leds_layout_cl_right": "Sağ",
|
||||||
"conf_leds_layout_cl_rightbottom": "Sağ 50% - 100% Alt",
|
"conf_leds_layout_cl_rightbottom": "Sağ 50% - 100% Alt",
|
||||||
@ -68,6 +71,8 @@
|
|||||||
"conf_leds_layout_ma_vert": "Dikey",
|
"conf_leds_layout_ma_vert": "Dikey",
|
||||||
"conf_leds_layout_matrix": "Martis Yerleşimi (LED Duvar)",
|
"conf_leds_layout_matrix": "Martis Yerleşimi (LED Duvar)",
|
||||||
"conf_leds_layout_peview": "LED Yerleşim Önizlemesi",
|
"conf_leds_layout_peview": "LED Yerleşim Önizlemesi",
|
||||||
|
"conf_leds_layout_preview_l1": "Bu sizin ilk LED' iniz (Giriş pozisyonu)",
|
||||||
|
"conf_leds_layout_preview_l2": "Bu veri yönünü gösterir. (ikinci/üçüncü led)",
|
||||||
"conf_leds_layout_preview_ledpower": "Maksimum güç tüketimi: $1 A",
|
"conf_leds_layout_preview_ledpower": "Maksimum güç tüketimi: $1 A",
|
||||||
"conf_leds_layout_preview_originCL": "Üretilidiği kaynak: Klasik Yerleşim(LED Çerçeve)",
|
"conf_leds_layout_preview_originCL": "Üretilidiği kaynak: Klasik Yerleşim(LED Çerçeve)",
|
||||||
"conf_leds_layout_preview_originMA": "Üretildiği kaynak: Matris Yerleşimi(LED Duvar)",
|
"conf_leds_layout_preview_originMA": "Üretildiği kaynak: Matris Yerleşimi(LED Duvar)",
|
||||||
@ -78,7 +83,6 @@
|
|||||||
"conf_leds_optgroup_RPiGPIO": "RPi GPIO",
|
"conf_leds_optgroup_RPiGPIO": "RPi GPIO",
|
||||||
"conf_leds_optgroup_RPiPWM": "RPi PWM",
|
"conf_leds_optgroup_RPiPWM": "RPi PWM",
|
||||||
"conf_leds_optgroup_RPiSPI": "RPi SPI",
|
"conf_leds_optgroup_RPiSPI": "RPi SPI",
|
||||||
"conf_leds_optgroup_debug": "Hata Ayıklama",
|
|
||||||
"conf_leds_optgroup_network": "Ağ",
|
"conf_leds_optgroup_network": "Ağ",
|
||||||
"conf_leds_optgroup_usb": "USB/Serial",
|
"conf_leds_optgroup_usb": "USB/Serial",
|
||||||
"conf_logging_btn_autoscroll": "Otomatik kaydırma",
|
"conf_logging_btn_autoscroll": "Otomatik kaydırma",
|
||||||
@ -91,14 +95,16 @@
|
|||||||
"conf_logging_yourlink": "Rapor linkiniz",
|
"conf_logging_yourlink": "Rapor linkiniz",
|
||||||
"conf_network_bobl_intro": "Boblight Alıcısı",
|
"conf_network_bobl_intro": "Boblight Alıcısı",
|
||||||
"conf_network_fbs_intro": "Google Flatbuffers Alıcısı. Hızlı görüntü gönderimi için kullanılır.",
|
"conf_network_fbs_intro": "Google Flatbuffers Alıcısı. Hızlı görüntü gönderimi için kullanılır.",
|
||||||
|
"conf_network_json_intro": "Tüm Hyperion örneklerinin JSON-RPC Portu, uzaktan kontrol için kullanılır.",
|
||||||
"conf_network_tok_cidhead": "Açıklama",
|
"conf_network_tok_cidhead": "Açıklama",
|
||||||
"conf_network_tok_lastuse": "Son kullanım",
|
"conf_network_tok_lastuse": "Son kullanım",
|
||||||
|
"conf_webconfig_label_intro": "Web konfigürasyon ayarları. Değiştirirken dikkatli olun.",
|
||||||
"dashboard_alert_message_confedit": "Hyperion konfigürasyonunuz değiştirildi. Değişiklikleri uygulamak için Hyperion'u yeniden başlatın.",
|
"dashboard_alert_message_confedit": "Hyperion konfigürasyonunuz değiştirildi. Değişiklikleri uygulamak için Hyperion'u yeniden başlatın.",
|
||||||
"dashboard_alert_message_confedit_t": "Konfigürasyon değiştirildi",
|
"dashboard_alert_message_confedit_t": "Konfigürasyon değiştirildi",
|
||||||
"dashboard_alert_message_confsave_success": "Hyperion konfigürasyonunuz başarıyla kaydedildi.Değişiklikleriniz şu anda aktif.",
|
"dashboard_alert_message_confsave_success": "Hyperion konfigürasyonunuz başarıyla kaydedildi.Değişiklikleriniz şu anda aktif.",
|
||||||
"dashboard_alert_message_confsave_success_t": "Konfigürasyon kaydedildi",
|
"dashboard_alert_message_confsave_success_t": "Konfigürasyon kaydedildi",
|
||||||
"dashboard_alert_message_disabled": "Bu olay şu anda deaktive edilmiştir! Tekrardan kullanmak için, gösterge panelinden aktive ediniz.",
|
"dashboard_alert_message_disabled": "Bu olay şu anda deaktive edilmiştir! Tekrardan kullanmak için, gösterge panelinden aktive ediniz.",
|
||||||
"dashboard_alert_message_disabled_t": "ED donanım olayı deaktive edildi",
|
"dashboard_alert_message_disabled_t": "LED donanım olayı deaktive edildi",
|
||||||
"dashboard_componentbox_label_comp": "Komponent",
|
"dashboard_componentbox_label_comp": "Komponent",
|
||||||
"dashboard_componentbox_label_status": "Durum",
|
"dashboard_componentbox_label_status": "Durum",
|
||||||
"dashboard_componentbox_label_title": "Komponent durumu",
|
"dashboard_componentbox_label_title": "Komponent durumu",
|
||||||
@ -107,13 +113,13 @@
|
|||||||
"dashboard_infobox_label_instance": "Olay",
|
"dashboard_infobox_label_instance": "Olay",
|
||||||
"dashboard_infobox_label_latesthyp": "En güncel Hyperion versiyonu:",
|
"dashboard_infobox_label_latesthyp": "En güncel Hyperion versiyonu:",
|
||||||
"dashboard_infobox_label_platform": "Plaform:",
|
"dashboard_infobox_label_platform": "Plaform:",
|
||||||
"dashboard_infobox_label_ports": "Portlar (flat|proto):",
|
"dashboard_infobox_label_ports": "Portlar",
|
||||||
"dashboard_infobox_label_smartacc": "Akıllı Erişim",
|
"dashboard_infobox_label_smartacc": "Akıllı Erişim",
|
||||||
"dashboard_infobox_label_statush": "Hyperion durumu:",
|
"dashboard_infobox_label_statush": "Hyperion durumu:",
|
||||||
"dashboard_infobox_label_title": "Bilgi",
|
"dashboard_infobox_label_title": "Bilgi",
|
||||||
"dashboard_infobox_message_updatesuccess": "Hyperion'un en güncel versiyonuna sahipsiniz.",
|
"dashboard_infobox_message_updatesuccess": "Hyperion'un en güncel versiyonuna sahipsiniz.",
|
||||||
"dashboard_infobox_message_updatewarning": "Hyperion'un güncel bir versiyonu mevcut! ($1)",
|
"dashboard_infobox_message_updatewarning": "Hyperion'un güncel bir versiyonu mevcut! ($1)",
|
||||||
"dashboard_label_intro": "Gösterge paneli, Hyperion'un genel durumu ve Hyperion Blog'dan son gelişmeler hakkında bilgiler içerir",
|
"dashboard_label_intro": "Gösterge paneli, Hyperion'un genel durumu hakkında bilgiler içerir.",
|
||||||
"dashboard_newsbox_label_title": "Hyperion-Blog",
|
"dashboard_newsbox_label_title": "Hyperion-Blog",
|
||||||
"dashboard_newsbox_noconn": "Son gelişmeleri almak için Hyperion Suncusu'na bağlanılamıyor, internet bağlantınız çalışıyor mu?",
|
"dashboard_newsbox_noconn": "Son gelişmeleri almak için Hyperion Suncusu'na bağlanılamıyor, internet bağlantınız çalışıyor mu?",
|
||||||
"dashboard_newsbox_readmore": "Daha fazla oku",
|
"dashboard_newsbox_readmore": "Daha fazla oku",
|
||||||
@ -422,6 +428,7 @@
|
|||||||
"infoDialog_effconf_created_text": " \"$1\" efekti başarıyla yaratıldı!",
|
"infoDialog_effconf_created_text": " \"$1\" efekti başarıyla yaratıldı!",
|
||||||
"infoDialog_effconf_deleted_text": " \"$1\" efekti başarıyla silindi!",
|
"infoDialog_effconf_deleted_text": " \"$1\" efekti başarıyla silindi!",
|
||||||
"infoDialog_general_error_title": "Hata",
|
"infoDialog_general_error_title": "Hata",
|
||||||
|
"infoDialog_general_success_title": "Başarı",
|
||||||
"infoDialog_general_warning_title": "Uyarı",
|
"infoDialog_general_warning_title": "Uyarı",
|
||||||
"infoDialog_import_comperror_text": "Üzücü! Tarayıcınız içe aktarmayı desteklemiyor. Lütfen başka bir tarayıcı ile tekrar deneyin.",
|
"infoDialog_import_comperror_text": "Üzücü! Tarayıcınız içe aktarmayı desteklemiyor. Lütfen başka bir tarayıcı ile tekrar deneyin.",
|
||||||
"infoDialog_import_confirm_text": "\"$1\"u içe aktarmak istediğinize emin misiniz? Bu işlem geri alınamaz!",
|
"infoDialog_import_confirm_text": "\"$1\"u içe aktarmak istediğinize emin misiniz? Bu işlem geri alınamaz!",
|
||||||
@ -467,6 +474,7 @@
|
|||||||
"remote_adjustment_label": "Renk ayarlama",
|
"remote_adjustment_label": "Renk ayarlama",
|
||||||
"remote_color_label": "Renkler/Efektler",
|
"remote_color_label": "Renkler/Efektler",
|
||||||
"remote_color_label_color": "Renk:",
|
"remote_color_label_color": "Renk:",
|
||||||
|
"remote_components_intro": "Çalışma zamanı sırasında Hyperion parçalarını etkinleştirin ya da devre dışı bırakın. $1",
|
||||||
"remote_components_label": "Komponent kontrol",
|
"remote_components_label": "Komponent kontrol",
|
||||||
"remote_effects_label_effects": "Efekt:",
|
"remote_effects_label_effects": "Efekt:",
|
||||||
"remote_effects_label_picture": "Resim:",
|
"remote_effects_label_picture": "Resim:",
|
||||||
@ -478,9 +486,12 @@
|
|||||||
"remote_input_owner": "Tip",
|
"remote_input_owner": "Tip",
|
||||||
"remote_input_priority": "Öncelik",
|
"remote_input_priority": "Öncelik",
|
||||||
"remote_input_setsource_btn": "Kaynak Seç",
|
"remote_input_setsource_btn": "Kaynak Seç",
|
||||||
|
"remote_input_status": "Durum/Aksiyon",
|
||||||
"remote_losthint": "Not : Tüm değişiklikler yeniden başlatmadan sonra kaybolacaktır.",
|
"remote_losthint": "Not : Tüm değişiklikler yeniden başlatmadan sonra kaybolacaktır.",
|
||||||
|
"remote_maptype_label": "Haritalama tipi",
|
||||||
"remote_maptype_label_multicolor_mean": "Çok renkli",
|
"remote_maptype_label_multicolor_mean": "Çok renkli",
|
||||||
"remote_maptype_label_unicolor_mean": "Tek renkli",
|
"remote_maptype_label_unicolor_mean": "Tek renkli",
|
||||||
|
"remote_optgroup_syseffets": "Sağlanan efektler",
|
||||||
"remote_optgroup_usreffets": "Kullanıcı efektleri",
|
"remote_optgroup_usreffets": "Kullanıcı efektleri",
|
||||||
"remote_videoMode_2D": "2D",
|
"remote_videoMode_2D": "2D",
|
||||||
"remote_videoMode_3DSBS": "3DSBS",
|
"remote_videoMode_3DSBS": "3DSBS",
|
||||||
@ -489,17 +500,20 @@
|
|||||||
"support_label_affinstr1": "Ülkenize uygun linki tıklayın",
|
"support_label_affinstr1": "Ülkenize uygun linki tıklayın",
|
||||||
"support_label_affinstr2": "Satın aldığınız her şey (ne olduğu önemli değil), ödediğiniz toplam ücret üzerinden bize küçük bir katkı sağlar.",
|
"support_label_affinstr2": "Satın aldığınız her şey (ne olduğu önemli değil), ödediğiniz toplam ücret üzerinden bize küçük bir katkı sağlar.",
|
||||||
"support_label_btctext": "Adres:",
|
"support_label_btctext": "Adres:",
|
||||||
|
"support_label_donate": "Bağış yapın ya da bağlı şirket linklerini kullanın.",
|
||||||
"support_label_donationpp": "Bağış:",
|
"support_label_donationpp": "Bağış:",
|
||||||
"support_label_forumtitle": "Forum",
|
"support_label_forumtitle": "Forum",
|
||||||
"support_label_ghtext": "Bizi Github'da ziyaret edin",
|
"support_label_ghtext": "Bizi Github'da ziyaret edin",
|
||||||
"support_label_igtext": "En güncel Hyperion resimlerini görmek için bizi Instagram`da ziyaret edin!",
|
"support_label_igtext": "En güncel Hyperion resimlerini görmek için bizi Instagram`da ziyaret edin!",
|
||||||
"support_label_spreadtheword": "Duymayan kalmasın",
|
"support_label_spreadtheword": "Duymayan kalmasın",
|
||||||
|
"support_label_title": "Hyperion' u destekleyin",
|
||||||
"support_label_webpagetext": "Hyperion Ana Sayfası",
|
"support_label_webpagetext": "Hyperion Ana Sayfası",
|
||||||
"support_label_webpagetitle": "Web sayfası",
|
"support_label_webpagetitle": "Web sayfası",
|
||||||
"support_label_webrestitle": "Bilgi ve yardım kaynakları",
|
"support_label_webrestitle": "Bilgi ve yardım kaynakları",
|
||||||
"support_label_wikitext": "Hyperion ile ilgili A'dan Z'ye her şey",
|
"support_label_wikitext": "Hyperion ile ilgili A'dan Z'ye her şey",
|
||||||
"support_label_wikititle": "Wiki",
|
"support_label_wikititle": "Wiki",
|
||||||
"support_label_yttext": "Resimlerden sıkıldınız mı? Youtube kanalımızı ziyaret edin!",
|
"support_label_yttext": "Resimlerden sıkıldınız mı? Youtube kanalımızı ziyaret edin!",
|
||||||
|
"update_button_changelog": "Tam değişim listesi.",
|
||||||
"update_button_install": "Yükle",
|
"update_button_install": "Yükle",
|
||||||
"update_error_getting_versions": "En güncel versiyonu belirlerken bir hata ile karşılaştık.",
|
"update_error_getting_versions": "En güncel versiyonu belirlerken bir hata ile karşılaştık.",
|
||||||
"update_label_description": "Açıklama:",
|
"update_label_description": "Açıklama:",
|
||||||
|
@ -99,7 +99,6 @@
|
|||||||
"conf_leds_optgroup_RPiGPIO": "GPIO RPi",
|
"conf_leds_optgroup_RPiGPIO": "GPIO RPi",
|
||||||
"conf_leds_optgroup_RPiPWM": "RPi PWM",
|
"conf_leds_optgroup_RPiPWM": "RPi PWM",
|
||||||
"conf_leds_optgroup_RPiSPI": "SPI RPI",
|
"conf_leds_optgroup_RPiSPI": "SPI RPI",
|
||||||
"conf_leds_optgroup_debug": "Gỡ lỗi",
|
|
||||||
"conf_leds_optgroup_network": "Mạng",
|
"conf_leds_optgroup_network": "Mạng",
|
||||||
"conf_leds_optgroup_usb": "USB",
|
"conf_leds_optgroup_usb": "USB",
|
||||||
"conf_logging_btn_autoscroll": "Tự động di chuyển",
|
"conf_logging_btn_autoscroll": "Tự động di chuyển",
|
||||||
@ -140,18 +139,19 @@
|
|||||||
"dashboard_componentbox_label_status": "Trạng thái",
|
"dashboard_componentbox_label_status": "Trạng thái",
|
||||||
"dashboard_componentbox_label_title": "Tình trạng linh kiện",
|
"dashboard_componentbox_label_title": "Tình trạng linh kiện",
|
||||||
"dashboard_infobox_label_currenthyp": "Phiên bản Ambilight của bạn:",
|
"dashboard_infobox_label_currenthyp": "Phiên bản Ambilight của bạn:",
|
||||||
|
"dashboard_infobox_label_disableh": "Vô hiệu hóa",
|
||||||
"dashboard_infobox_label_enableh": "Kích hoạt",
|
"dashboard_infobox_label_enableh": "Kích hoạt",
|
||||||
"dashboard_infobox_label_instance": "Ví dụ:",
|
"dashboard_infobox_label_instance": "Ví dụ:",
|
||||||
"dashboard_infobox_label_latesthyp": "Phiên bản Ambilight mới nhất:",
|
"dashboard_infobox_label_latesthyp": "Phiên bản Ambilight mới nhất:",
|
||||||
"dashboard_infobox_label_platform": "Nền tảng:",
|
"dashboard_infobox_label_platform": "Nền tảng:",
|
||||||
"dashboard_infobox_label_ports": "Cổng (flat | proto):",
|
"dashboard_infobox_label_ports": "Cổng",
|
||||||
"dashboard_infobox_label_smartacc": "Truy cập thông minh",
|
"dashboard_infobox_label_smartacc": "Truy cập thông minh",
|
||||||
"dashboard_infobox_label_statush": "Trạng thái:",
|
"dashboard_infobox_label_statush": "Trạng thái:",
|
||||||
"dashboard_infobox_label_title": "Thông tin",
|
"dashboard_infobox_label_title": "Thông tin",
|
||||||
"dashboard_infobox_label_watchedversionbranch": "Chi nhánh phiên bản đã xem:",
|
"dashboard_infobox_label_watchedversionbranch": "Chi nhánh phiên bản đã xem:",
|
||||||
"dashboard_infobox_message_updatesuccess": "Bạn đang chạy phiên bản mới nhất.",
|
"dashboard_infobox_message_updatesuccess": "Bạn đang chạy phiên bản mới nhất.",
|
||||||
"dashboard_infobox_message_updatewarning": "Phiên bản mới hơn của Ambilight đã có sẵn! ($ 1)",
|
"dashboard_infobox_message_updatewarning": "Phiên bản mới hơn của Ambilight đã có sẵn! ($ 1)",
|
||||||
"dashboard_label_intro": "Bảng điều khiển này cung cấp cho bạn tổng quan nhanh về cài đặt Ambiight của bạn và hiển thị cho bạn những tin tức mới nhất từ chúng tôi.",
|
"dashboard_label_intro": "Bảng điều khiển này cung cấp cho bạn tổng quan nhanh về cài đặt Ambilight của.",
|
||||||
"dashboard_message_default_password": "Mật khẩu mặc định cho WebUi được đặt. Chúng tôi khuyên bạn nên thay đổi điều này.",
|
"dashboard_message_default_password": "Mật khẩu mặc định cho WebUi được đặt. Chúng tôi khuyên bạn nên thay đổi điều này.",
|
||||||
"dashboard_message_default_password_t": "Mật khẩu mặc định của WebUi được đặt",
|
"dashboard_message_default_password_t": "Mật khẩu mặc định của WebUi được đặt",
|
||||||
"dashboard_message_global_setting": "Các cài đặt trên trang này không phụ thuộc vào một trường hợp cụ thể. Thay đổi sẽ được lưu trữ trên toàn cầu cho tất cả các trường hợp.",
|
"dashboard_message_global_setting": "Các cài đặt trên trang này không phụ thuộc vào một trường hợp cụ thể. Thay đổi sẽ được lưu trữ trên toàn cầu cho tất cả các trường hợp.",
|
||||||
|
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 23 KiB |
BIN
assets/webconfig/img/hyperion/logo_negativ.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
assets/webconfig/img/hyperion/logo_positiv.png
Normal file
After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 16 KiB |
@ -44,12 +44,13 @@
|
|||||||
<script src="js/lib/jsoneditor.js"></script>
|
<script src="js/lib/jsoneditor.js"></script>
|
||||||
|
|
||||||
<!--Language Support -->
|
<!--Language Support -->
|
||||||
<script src="js/lib/jquery.i18n.js"></script>
|
<script src="js/lib/jquery.i18n/jquery.i18n.js"></script>
|
||||||
<script src="js/lib/jquery.i18n.messagestore.js"></script>
|
<script src="js/lib/jquery.i18n/jquery.i18n.messagestore.js"></script>
|
||||||
<script src="js/lib/jquery.i18n.fallbacks.js"></script>
|
<script src="js/lib/jquery.i18n/jquery.i18n.fallbacks.js"></script>
|
||||||
<script src="js/lib/jquery.i18n.parser.js"></script>
|
<script src="js/lib/jquery.i18n/jquery.i18n.parser.js"></script>
|
||||||
<script src="js/lib/jquery.i18n.emitter.js"></script>
|
<script src="js/lib/jquery.i18n/jquery.i18n.emitter.js"></script>
|
||||||
<script src="js/lib/jquery.i18n.language.js"></script>
|
<script src="js/lib/jquery.i18n/jquery.i18n.language.js"></script>
|
||||||
|
<script src="js/lib/jquery.i18n/CLDRPluralRuleParser.js"></script>
|
||||||
|
|
||||||
<!-- Bootstrap Core CSS -->
|
<!-- Bootstrap Core CSS -->
|
||||||
<link href="css/bootstrap.min.css" rel="stylesheet">
|
<link href="css/bootstrap.min.css" rel="stylesheet">
|
||||||
@ -72,6 +73,9 @@
|
|||||||
<!-- Custom Fonts -->
|
<!-- Custom Fonts -->
|
||||||
<link href="css/font-awesome.min.css" rel="stylesheet" type="text/css">
|
<link href="css/font-awesome.min.css" rel="stylesheet" type="text/css">
|
||||||
|
|
||||||
|
<!-- Material Design Icons - https://github.com/Templarian/MaterialDesign-Webfont -->
|
||||||
|
<link href="css/materialdesignicons.min.css" media="all" rel="stylesheet" type="text/css">
|
||||||
|
|
||||||
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
||||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||||
<!--[if lt IE 9]>
|
<!--[if lt IE 9]>
|
||||||
@ -83,7 +87,7 @@
|
|||||||
<body>
|
<body>
|
||||||
<noscript>
|
<noscript>
|
||||||
<div style="color:red;margin: 40px 0;text-align:center">
|
<div style="color:red;margin: 40px 0;text-align:center">
|
||||||
<img src="img/hyperion/hyperionlogo.png" alt="Redefine ambient light!">
|
<img src="img/hyperion/logo_positiv.png" alt="Redefine ambient light!">
|
||||||
<h3>Hyperion Web Configuration requires Javascript. Please enable Javascript in your browser for this page in order to use it!</h3>
|
<h3>Hyperion Web Configuration requires Javascript. Please enable Javascript in your browser for this page in order to use it!</h3>
|
||||||
</div>
|
</div>
|
||||||
<style type="text/css"> #loading_overlay, #wrapper{ display: none } </style>
|
<style type="text/css"> #loading_overlay, #wrapper{ display: none } </style>
|
||||||
@ -93,7 +97,7 @@
|
|||||||
<div id="wrapper">
|
<div id="wrapper">
|
||||||
|
|
||||||
<!-- Navigation -->
|
<!-- Navigation -->
|
||||||
<nav class="navbar navbar-default navbar-static-top" role="navigation" style="margin-bottom: 0">
|
<nav class="navbar navbar-default navbar-static-top" role="navigation" style="margin-bottom: 0; min-height: 65px">
|
||||||
<div class="navbar-header">
|
<div class="navbar-header">
|
||||||
<button type="button" class="navbar-toggle closed" aria-controls="navbar">
|
<button type="button" class="navbar-toggle closed" aria-controls="navbar">
|
||||||
<span class="sr-only">Toggle navigation</span>
|
<span class="sr-only">Toggle navigation</span>
|
||||||
@ -101,7 +105,7 @@
|
|||||||
<span class="icon-bar middle-bar"></span>
|
<span class="icon-bar middle-bar"></span>
|
||||||
<span class="icon-bar bottom-bar"></span>
|
<span class="icon-bar bottom-bar"></span>
|
||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="https://www.hyperion-project.org?pk_campaign=WebUI&pk_kwd=mainlogo" target="_blank"><img src="img/hyperion/hyperionlogo.png" alt="Redefine ambient light!" height="55"></a>
|
<a class="navbar-brand" href="https://www.hyperion-project.org" target="_blank"><img id="navbar_brand_logo" src="img/hyperion/logo_positiv.png" alt="Redefine ambient light!" height="60"></a>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<!-- /.navbar-header -->
|
<!-- /.navbar-header -->
|
||||||
@ -121,21 +125,6 @@
|
|||||||
<i id="btn_darkmode_icon" class="fa fa-moon-o"></i>
|
<i id="btn_darkmode_icon" class="fa fa-moon-o"></i>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<!-- instance switcher -->
|
|
||||||
<li class="dropdown" id="btn_hypinstanceswitch" style="display:none">
|
|
||||||
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
|
|
||||||
<i class="fa fa-exchange fa-fw"></i> <i class="fa fa-caret-down"></i>
|
|
||||||
</a>
|
|
||||||
<ul id="hyp_inst_listing" class="dropdown-menu dropdown-alerts">
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<!--
|
|
||||||
<li class="dropdown" id="btn_instanceswitch" style="display:none">
|
|
||||||
<a>
|
|
||||||
<i class="fa fa-exchange fa-fw"></i>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
-->
|
|
||||||
<li class="dropdown" id="btn_open_ledsim">
|
<li class="dropdown" id="btn_open_ledsim">
|
||||||
<a>
|
<a>
|
||||||
<i class="fa fa-television fa-fw"></i>
|
<i class="fa fa-television fa-fw"></i>
|
||||||
@ -216,17 +205,17 @@
|
|||||||
<div class="sidebar-nav navbar-collapse">
|
<div class="sidebar-nav navbar-collapse">
|
||||||
<ul class="nav" id="side-menu">
|
<ul class="nav" id="side-menu">
|
||||||
<li> <a class="inactive mnava" href="#dashboard"><i class="fa fa-dashboard fa-fw"></i><span data-i18n="main_menu_dashboard_token">Dashboard</span></a> </li>
|
<li> <a class="inactive mnava" href="#dashboard"><i class="fa fa-dashboard fa-fw"></i><span data-i18n="main_menu_dashboard_token">Dashboard</span></a> </li>
|
||||||
|
<li> <a class="inactive mnava" href="#conf_general"><i class="fa fa-wrench fa-fw"></i><span data-i18n="main_menu_general_conf_token">General</span></a> </li>
|
||||||
<li>
|
<li>
|
||||||
<a class="inactive"><i class="fa fa-cog fa-fw"></i><span data-i18n="main_menu_configuration_token">Configuration</span><span class="fa arrow"></span></a>
|
<a class="inactive"><i class="fa fa-cog fa-fw"></i><span data-i18n="main_menu_configuration_token">Configuration</span><span class="fa arrow"></span></a>
|
||||||
<ul class="nav nav-second-level">
|
<ul class="nav nav-second-level">
|
||||||
<li> <a class="inactive mnava" href="#conf_general"><i class="fa fa-wrench fa-fw"></i><span data-i18n="main_menu_general_conf_token">General</span></a> </li>
|
<li> <a class="inactive mnava" href="#conf_leds"><i class="mdi mdi-lightbulb-on fa-fw"></i><span data-i18n="main_menu_leds_conf_token">LED Hardware</span></a> </li>
|
||||||
<li> <a class="inactive mnava" href="#conf_leds"><i class="fa fa-lightbulb-o fa-fw"></i><span data-i18n="main_menu_leds_conf_token">LED Hardware</span></a> </li>
|
|
||||||
<li> <a class="inactive mnava" href="#conf_grabber"><i class="fa fa-camera fa-fw"></i><span data-i18n="main_menu_grabber_conf_token">Capturing Hardware</span></a> </li>
|
|
||||||
<li> <a class="inactive mnava" href="#conf_effect"><i class="fa fa-spinner fa-fw"></i><span data-i18n="main_menu_effect_conf_token">Effects</span></a> </li>
|
<li> <a class="inactive mnava" href="#conf_effect"><i class="fa fa-spinner fa-fw"></i><span data-i18n="main_menu_effect_conf_token">Effects</span></a> </li>
|
||||||
<li> <a class="inactive mnava" href="#conf_colors"><i class="fa fa-photo fa-fw"></i><span data-i18n="main_menu_colors_conf_token">Image Processing</span></a> </li>
|
<li> <a class="inactive mnava" href="#conf_colors"><i class="fa fa-photo fa-fw"></i><span data-i18n="main_menu_colors_conf_token">Image Processing</span></a> </li>
|
||||||
<li> <a class="inactive mnava" href="#conf_network"><i class="fa fa-sitemap fa-fw"></i><span data-i18n="main_menu_network_conf_token">Network</span></a> </li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
<li> <a class="inactive mnava" href="#conf_grabber"><i class="fa fa-camera fa-fw"></i><span data-i18n="main_menu_grabber_conf_token">Capturing Hardware</span></a> </li>
|
||||||
|
<li> <a class="inactive mnava" href="#conf_network"><i class="fa fa-sitemap fa-fw"></i><span data-i18n="main_menu_network_conf_token">Network</span></a> </li>
|
||||||
<li> <a class="inactive mnava" href="#remote"><i class="fa fa-wifi fa-fw"></i><span data-i18n="main_menu_remotecontrol_token">Remote Control</span></a> </li>
|
<li> <a class="inactive mnava" href="#remote"><i class="fa fa-wifi fa-fw"></i><span data-i18n="main_menu_remotecontrol_token">Remote Control</span></a> </li>
|
||||||
<li> <a class="inactive mnava" href="#effects_configurator"><i class="fa fa-cogs fa-fw"></i><span data-i18n="main_menu_effectsconfigurator_token">Effects Configurator</span></a> </li>
|
<li> <a class="inactive mnava" href="#effects_configurator"><i class="fa fa-cogs fa-fw"></i><span data-i18n="main_menu_effectsconfigurator_token">Effects Configurator</span></a> </li>
|
||||||
<li> <a class="inactive mnava" href="#support"><i class="fa fa-info fa-fw"></i><span data-i18n="main_menu_support_token">Support</span></a> </li>
|
<li> <a class="inactive mnava" href="#support"><i class="fa fa-info fa-fw"></i><span data-i18n="main_menu_support_token">Support</span></a> </li>
|
||||||
@ -234,7 +223,7 @@
|
|||||||
<a class="inactive"><i class="fa fa-industry fa-fw"></i><span data-i18n="main_menu_system_token">System</span><span class="fa arrow"></span></a>
|
<a class="inactive"><i class="fa fa-industry fa-fw"></i><span data-i18n="main_menu_system_token">System</span><span class="fa arrow"></span></a>
|
||||||
<ul class="nav nav-second-level">
|
<ul class="nav nav-second-level">
|
||||||
<li> <a class="inactive mnava" href="#conf_webconfig" id="load_webconfig"><i class="fa fa-wrench fa-fw"></i><span data-i18n="main_menu_webconfig_token">Webconfiguration</span></a> </li>
|
<li> <a class="inactive mnava" href="#conf_webconfig" id="load_webconfig"><i class="fa fa-wrench fa-fw"></i><span data-i18n="main_menu_webconfig_token">Webconfiguration</span></a> </li>
|
||||||
<li> <a class="inactive mnava" href="#conf_logging"><i class="fa fa-reorder fa-fw"></i><span data-i18n="main_menu_logging_token">Log</span></a> </li>
|
<li> <a class="inactive mnava" id="MenuItemLogging" href="#conf_logging"><i class="fa fa-reorder fa-fw"></i><span data-i18n="main_menu_logging_token">Log</span></a> </li>
|
||||||
<li> <a class="inactive mnava" href="#update"><i class="fa fa-download fa-fw"></i><span data-i18n="main_menu_update_token">Update</span></a> </li>
|
<li> <a class="inactive mnava" href="#update"><i class="fa fa-download fa-fw"></i><span data-i18n="main_menu_update_token">Update</span></a> </li>
|
||||||
<li> <a class="inactive mnava" href="#about"><i class="fa fa-info-circle fa-fw"></i><span data-i18n="main_menu_about_token">About</span></a> </li>
|
<li> <a class="inactive mnava" href="#about"><i class="fa fa-info-circle fa-fw"></i><span data-i18n="main_menu_about_token">About</span></a> </li>
|
||||||
</ul>
|
</ul>
|
||||||
@ -248,17 +237,6 @@
|
|||||||
|
|
||||||
<!-- Page Content -->
|
<!-- Page Content -->
|
||||||
<div id="page-wrapper" style="padding-top:10px; overflow: hidden;">
|
<div id="page-wrapper" style="padding-top:10px; overflow: hidden;">
|
||||||
<div id="dashboard_active_instance" style="display:none;padding:0 10px;margin:0">
|
|
||||||
<div class="bs-callout bs-callout-success">
|
|
||||||
<h4 id="dashboard_active_instance_friendly_name"></h4>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="hyperion_global_setting_notify" style="display:none;padding:0 10px;margin:0">
|
|
||||||
<div class="bs-callout bs-callout-warning">
|
|
||||||
<h4 data-i18n="dashboard_message_global_setting_t"></h4>
|
|
||||||
<span data-i18n="dashboard_message_global_setting"></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="hyperion_disabled_notify" style="display:none;padding:0 10px;margin:0">
|
<div id="hyperion_disabled_notify" style="display:none;padding:0 10px;margin:0">
|
||||||
<div class="bs-callout bs-callout-danger">
|
<div class="bs-callout bs-callout-danger">
|
||||||
<h4 data-i18n="dashboard_alert_message_disabled_t"></h4>
|
<h4 data-i18n="dashboard_alert_message_disabled_t"></h4>
|
||||||
@ -306,7 +284,7 @@
|
|||||||
<div id="wiz_header" class="modal-header"></div>
|
<div id="wiz_header" class="modal-header"></div>
|
||||||
<div id="wizp1">
|
<div id="wizp1">
|
||||||
<div class="modal-body" style="text-align:center">
|
<div class="modal-body" style="text-align:center">
|
||||||
<img src="img/hyperion/hyperionlogo.png" alt="Redefine ambient light!" style="margin-bottom:15px">
|
<img id="wizard_logo" src="img/hyperion/logo_positiv.png" alt="Redefine ambient light!" style="margin-bottom:15px">
|
||||||
<div id="wizp1_body" ></div>
|
<div id="wizp1_body" ></div>
|
||||||
</div>
|
</div>
|
||||||
<div id="wizp1_footer" class="modal-footer" style="text-align:center"></div>
|
<div id="wizp1_footer" class="modal-footer" style="text-align:center"></div>
|
||||||
@ -314,7 +292,7 @@
|
|||||||
<div id="wizp2" style="display:none">
|
<div id="wizp2" style="display:none">
|
||||||
<center>
|
<center>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<img src="img/hyperion/hyperionlogo.png" alt="Redefine ambient light!" style="margin-bottom:15px">
|
<img id="wizard_logo" src="img/hyperion/logo_positiv.png" alt="Redefine ambient light!" style="margin-bottom:15px">
|
||||||
<div id="wizp2_body"></div>
|
<div id="wizp2_body"></div>
|
||||||
</div>
|
</div>
|
||||||
</center>
|
</center>
|
||||||
@ -323,7 +301,7 @@
|
|||||||
<div id="wizp3" style="display:none">
|
<div id="wizp3" style="display:none">
|
||||||
<center>
|
<center>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<img src="img/hyperion/hyperionlogo.png" alt="Redefine ambient light!" style="margin-bottom:15px">
|
<img id="wizard_logo" src="img/hyperion/logo_positiv.png" alt="Redefine ambient light!" style="margin-bottom:15px">
|
||||||
<div id="wizp3_body"></div>
|
<div id="wizp3_body"></div>
|
||||||
</div>
|
</div>
|
||||||
</center>
|
</center>
|
||||||
|
179
assets/webconfig/js/content_colors.js
Normal file → Executable file
@ -1,84 +1,105 @@
|
|||||||
$(document).ready( function() {
|
$(document).ready(function () {
|
||||||
performTranslation();
|
performTranslation();
|
||||||
var editor_color = null;
|
|
||||||
var editor_smoothing = null;
|
|
||||||
var editor_blackborder = null;
|
|
||||||
|
|
||||||
if(window.showOptHelp)
|
|
||||||
{
|
|
||||||
//color
|
|
||||||
$('#conf_cont').append(createRow('conf_cont_color'));
|
|
||||||
$('#conf_cont_color').append(createOptPanel('fa-photo', $.i18n("edt_conf_color_heading_title"), 'editor_container_color', 'btn_submit_color'));
|
|
||||||
$('#conf_cont_color').append(createHelpTable(window.schema.color.properties, $.i18n("edt_conf_color_heading_title")));
|
|
||||||
|
|
||||||
//smoothing
|
|
||||||
$('#conf_cont').append(createRow('conf_cont_smoothing'));
|
|
||||||
$('#conf_cont_smoothing').append(createOptPanel('fa-photo', $.i18n("edt_conf_smooth_heading_title"), 'editor_container_smoothing', 'btn_submit_smoothing'));
|
|
||||||
$('#conf_cont_smoothing').append(createHelpTable(window.schema.smoothing.properties, $.i18n("edt_conf_smooth_heading_title")));
|
|
||||||
|
|
||||||
//blackborder
|
|
||||||
$('#conf_cont').append(createRow('conf_cont_blackborder'));
|
|
||||||
$('#conf_cont_blackborder').append(createOptPanel('fa-photo', $.i18n("edt_conf_bb_heading_title"), 'editor_container_blackborder', 'btn_submit_blackborder'));
|
|
||||||
$('#conf_cont_blackborder').append(createHelpTable(window.schema.blackborderdetector.properties, $.i18n("edt_conf_bb_heading_title")));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$('#conf_cont').addClass('row');
|
|
||||||
$('#conf_cont').append(createOptPanel('fa-photo', $.i18n("edt_conf_color_heading_title"), 'editor_container_color', 'btn_submit_color'));
|
|
||||||
$('#conf_cont').append(createOptPanel('fa-photo', $.i18n("edt_conf_smooth_heading_title"), 'editor_container_smoothing', 'btn_submit_smoothing'));
|
|
||||||
$('#conf_cont').append(createOptPanel('fa-photo', $.i18n("edt_conf_bb_heading_title"), 'editor_container_blackborder', 'btn_submit_blackborder'));
|
|
||||||
}
|
|
||||||
|
|
||||||
//color
|
|
||||||
editor_color = createJsonEditor('editor_container_color', {
|
|
||||||
color : window.schema.color
|
|
||||||
}, true, true);
|
|
||||||
|
|
||||||
editor_color.on('change',function() {
|
// update instance listing
|
||||||
editor_color.validate().length || window.readOnlyMode ? $('#btn_submit_color').attr('disabled', true) : $('#btn_submit_color').attr('disabled', false);
|
updateHyperionInstanceListing();
|
||||||
});
|
|
||||||
|
|
||||||
$('#btn_submit_color').off().on('click',function() {
|
|
||||||
requestWriteConfig(editor_color.getValue());
|
|
||||||
});
|
|
||||||
|
|
||||||
//smoothing
|
|
||||||
editor_smoothing = createJsonEditor('editor_container_smoothing', {
|
|
||||||
smoothing : window.schema.smoothing
|
|
||||||
}, true, true);
|
|
||||||
|
|
||||||
editor_smoothing.on('change',function() {
|
var editor_color = null;
|
||||||
editor_smoothing.validate().length || window.readOnlyMode ? $('#btn_submit_smoothing').attr('disabled', true) : $('#btn_submit_smoothing').attr('disabled', false);
|
var editor_smoothing = null;
|
||||||
|
var editor_blackborder = null;
|
||||||
});
|
|
||||||
|
|
||||||
$('#btn_submit_smoothing').off().on('click',function() {
|
|
||||||
requestWriteConfig(editor_smoothing.getValue());
|
|
||||||
});
|
|
||||||
|
|
||||||
//blackborder
|
if (window.showOptHelp) {
|
||||||
editor_blackborder = createJsonEditor('editor_container_blackborder', {
|
//color
|
||||||
blackborderdetector: window.schema.blackborderdetector
|
$('#conf_cont').append(createRow('conf_cont_color'));
|
||||||
}, true, true);
|
$('#conf_cont_color').append(createOptPanel('fa-photo', $.i18n("edt_conf_color_heading_title"), 'editor_container_color', 'btn_submit_color'));
|
||||||
|
$('#conf_cont_color').append(createHelpTable(window.schema.color.properties, $.i18n("edt_conf_color_heading_title")));
|
||||||
|
|
||||||
editor_blackborder.on('change',function() {
|
//smoothing
|
||||||
editor_blackborder.validate().length || window.readOnlyMode ? $('#btn_submit_blackborder').attr('disabled', true) : $('#btn_submit_blackborder').attr('disabled', false);
|
$('#conf_cont').append(createRow('conf_cont_smoothing'));
|
||||||
});
|
$('#conf_cont_smoothing').append(createOptPanel('fa-photo', $.i18n("edt_conf_smooth_heading_title"), 'editor_container_smoothing', 'btn_submit_smoothing'));
|
||||||
|
$('#conf_cont_smoothing').append(createHelpTable(window.schema.smoothing.properties, $.i18n("edt_conf_smooth_heading_title"), "smoothingHelpPanelId"));
|
||||||
$('#btn_submit_blackborder').off().on('click',function() {
|
|
||||||
requestWriteConfig(editor_blackborder.getValue());
|
//blackborder
|
||||||
});
|
$('#conf_cont').append(createRow('conf_cont_blackborder'));
|
||||||
|
$('#conf_cont_blackborder').append(createOptPanel('fa-photo', $.i18n("edt_conf_bb_heading_title"), 'editor_container_blackborder', 'btn_submit_blackborder'));
|
||||||
//wiki links
|
$('#conf_cont_blackborder').append(createHelpTable(window.schema.blackborderdetector.properties, $.i18n("edt_conf_bb_heading_title"), "blackborderHelpPanelId"))
|
||||||
$('#editor_container_blackborder').append(buildWL("user/moretopics/bbmode","edt_conf_bb_mode_title",true));
|
}
|
||||||
|
else {
|
||||||
//create introduction
|
$('#conf_cont').addClass('row');
|
||||||
if(window.showOptHelp)
|
$('#conf_cont').append(createOptPanel('fa-photo', $.i18n("edt_conf_color_heading_title"), 'editor_container_color', 'btn_submit_color'));
|
||||||
{
|
$('#conf_cont').append(createOptPanel('fa-photo', $.i18n("edt_conf_smooth_heading_title"), 'editor_container_smoothing', 'btn_submit_smoothing'));
|
||||||
createHint("intro", $.i18n('conf_colors_color_intro'), "editor_container_color");
|
$('#conf_cont').append(createOptPanel('fa-photo', $.i18n("edt_conf_bb_heading_title"), 'editor_container_blackborder', 'btn_submit_blackborder'));
|
||||||
createHint("intro", $.i18n('conf_colors_smoothing_intro'), "editor_container_smoothing");
|
}
|
||||||
createHint("intro", $.i18n('conf_colors_blackborder_intro'), "editor_container_blackborder");
|
|
||||||
}
|
//color
|
||||||
|
editor_color = createJsonEditor('editor_container_color', {
|
||||||
removeOverlay();
|
color: window.schema.color
|
||||||
|
}, true, true);
|
||||||
|
|
||||||
|
editor_color.on('change', function () {
|
||||||
|
editor_color.validate().length || window.readOnlyMode ? $('#btn_submit_color').attr('disabled', true) : $('#btn_submit_color').attr('disabled', false);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#btn_submit_color').off().on('click', function () {
|
||||||
|
requestWriteConfig(editor_color.getValue());
|
||||||
|
});
|
||||||
|
|
||||||
|
//smoothing
|
||||||
|
editor_smoothing = createJsonEditor('editor_container_smoothing', {
|
||||||
|
smoothing: window.schema.smoothing
|
||||||
|
}, true, true);
|
||||||
|
|
||||||
|
editor_smoothing.on('change', function () {
|
||||||
|
var smoothingEnable = editor_smoothing.getEditor("root.smoothing.enable").getValue();
|
||||||
|
if (smoothingEnable) {
|
||||||
|
showInputOptionsForKey(editor_smoothing, "smoothing", "enable", true);
|
||||||
|
$('#smoothingHelpPanelId').show();
|
||||||
|
} else {
|
||||||
|
showInputOptionsForKey(editor_smoothing, "smoothing", "enable", false);
|
||||||
|
$('#smoothingHelpPanelId').hide();
|
||||||
|
}
|
||||||
|
editor_smoothing.validate().length || window.readOnlyMode ? $('#btn_submit_smoothing').attr('disabled', true) : $('#btn_submit_smoothing').attr('disabled', false);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#btn_submit_smoothing').off().on('click', function () {
|
||||||
|
requestWriteConfig(editor_smoothing.getValue());
|
||||||
|
});
|
||||||
|
|
||||||
|
//blackborder
|
||||||
|
editor_blackborder = createJsonEditor('editor_container_blackborder', {
|
||||||
|
blackborderdetector: window.schema.blackborderdetector
|
||||||
|
}, true, true);
|
||||||
|
|
||||||
|
editor_blackborder.on('change', function () {
|
||||||
|
var blackborderEnable = editor_blackborder.getEditor("root.blackborderdetector.enable").getValue();
|
||||||
|
if (blackborderEnable) {
|
||||||
|
showInputOptionsForKey(editor_blackborder, "blackborderdetector", "enable", true);
|
||||||
|
$('#blackborderHelpPanelId').show();
|
||||||
|
$('#blackborderWikiLinkId').show();
|
||||||
|
|
||||||
|
} else {
|
||||||
|
showInputOptionsForKey(editor_blackborder, "blackborderdetector", "enable", false);
|
||||||
|
$('#blackborderHelpPanelId').hide();
|
||||||
|
$('#blackborderWikiLinkId').hide();
|
||||||
|
}
|
||||||
|
editor_blackborder.validate().length || window.readOnlyMode ? $('#btn_submit_blackborder').attr('disabled', true) : $('#btn_submit_blackborder').attr('disabled', false);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#btn_submit_blackborder').off().on('click', function () {
|
||||||
|
requestWriteConfig(editor_blackborder.getValue());
|
||||||
|
});
|
||||||
|
|
||||||
|
//wiki links
|
||||||
|
var wikiElement = $(buildWL("user/advanced/Advanced.html#blackbar-detection", "edt_conf_bb_mode_title", true));
|
||||||
|
wikiElement.attr('id', 'blackborderWikiLinkId');
|
||||||
|
$('#editor_container_blackborder').append(wikiElement);
|
||||||
|
|
||||||
|
//create introduction
|
||||||
|
if (window.showOptHelp) {
|
||||||
|
createHint("intro", $.i18n('conf_colors_color_intro'), "editor_container_color");
|
||||||
|
createHint("intro", $.i18n('conf_colors_smoothing_intro'), "editor_container_smoothing");
|
||||||
|
createHint("intro", $.i18n('conf_colors_blackborder_intro'), "editor_container_blackborder");
|
||||||
|
}
|
||||||
|
|
||||||
|
removeOverlay();
|
||||||
});
|
});
|
||||||
|
@ -1,106 +1,127 @@
|
|||||||
$(document).ready( function() {
|
$(document).ready(function () {
|
||||||
performTranslation();
|
performTranslation();
|
||||||
|
|
||||||
// function newsCont(t,e,l)
|
function updateComponents() {
|
||||||
// {
|
$("div[class*='currentInstance']").remove();
|
||||||
// var h = '<div style="padding-left:9px;border-left:6px solid #0088cc;">';
|
|
||||||
// h += '<h4 style="font-weight:bold;font-size:17px">'+t+'</h4>';
|
|
||||||
// h += e;
|
|
||||||
// h += '<a href="'+l+'" class="" target="_blank"><i class="fa fa-fw fa-newspaper-o"></i>'+$.i18n('dashboard_newsbox_readmore')+'</a>';
|
|
||||||
// h += '</div><hr/>';
|
|
||||||
// $('#dash_news').append(h);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// function createNews(d)
|
var instances_html = '<div class="col-md-6 col-xxl-4 currentInstance-"><div class="panel panel-default">';
|
||||||
// {
|
instances_html += '<div class="panel-heading panel-instance">';
|
||||||
// for(var i = 0; i<d.length; i++)
|
instances_html += '<div class="dropdown">';
|
||||||
// {
|
instances_html += '<a id="active_instance_dropdown" class="dropdown-toggle" data-toggle="dropdown" href="#" style="text-decoration:none;display:flex;align-items:center;">';
|
||||||
// if(i > 5)
|
instances_html += '<div id="active_instance_friendly_name"></div>';
|
||||||
// break;
|
instances_html += '<div id="btn_hypinstanceswitch" style="white-space:nowrap;"><span class="mdi mdi-lightbulb-group mdi-24px" style="margin-right:0;margin-left:5px;"></span><span class="mdi mdi-menu-down mdi-24px"></span></div>';
|
||||||
//
|
instances_html += '</a><ul id="hyp_inst_listing" class="dropdown-menu dropdown-alerts" style="cursor:pointer;"></ul>'
|
||||||
// var title = d[i].title.rendered;
|
instances_html += '</div></div>';
|
||||||
// var excerpt = d[i].excerpt.rendered;
|
|
||||||
// var link = d[i].link+'?pk_campaign=WebUI&pk_kwd=news_'+d[i].slug;
|
|
||||||
//
|
|
||||||
// newsCont(title,excerpt,link);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// function getNews()
|
|
||||||
// {
|
|
||||||
// var h = '<span style="color:red;font-weight:bold">'+$.i18n('dashboard_newsbox_noconn')+'</span>';
|
|
||||||
// $.ajax({
|
|
||||||
// url: 'https://hyperion-project.org/wp-json/wp/v2/posts?_embed',
|
|
||||||
// dataType: 'json',
|
|
||||||
// type: 'GET',
|
|
||||||
// timeout: 2000
|
|
||||||
// })
|
|
||||||
// .done( function( data, textStatus, jqXHR ) {
|
|
||||||
// if(jqXHR.status == 200)
|
|
||||||
// createNews(data);
|
|
||||||
// else
|
|
||||||
// $('#dash_news').html(h);
|
|
||||||
// })
|
|
||||||
// .fail( function( jqXHR, textStatus ) {
|
|
||||||
// $('#dash_news').html(h);
|
|
||||||
// });
|
|
||||||
// }
|
|
||||||
|
|
||||||
// getNews();
|
instances_html += '<div class="panel-body">';
|
||||||
|
instances_html += '<table class="table borderless">';
|
||||||
|
instances_html += '<thead><tr><th style="vertical-align:middle"><i class="mdi mdi-lightbulb-on fa-fw"></i>';
|
||||||
|
instances_html += '<span>' + $.i18n('dashboard_componentbox_label_status') + '</span></th>';
|
||||||
|
|
||||||
function updateComponents()
|
var components = window.comps;
|
||||||
{
|
var hyperion_enabled = true;
|
||||||
var components = window.comps;
|
components.forEach(function (obj) {
|
||||||
var components_html = "";
|
if (obj.name == "ALL") {
|
||||||
for (var idx=0; idx<components.length;idx++)
|
hyperion_enabled = obj.enabled;
|
||||||
{
|
}
|
||||||
if(components[idx].name != "ALL")
|
});
|
||||||
components_html += '<tr><td>'+$.i18n('general_comp_'+components[idx].name)+'</td><td><i class="fa fa-circle component-'+(components[idx].enabled?"on":"off")+'"></i></td></tr>';
|
|
||||||
}
|
|
||||||
$("#tab_components").html(components_html);
|
|
||||||
|
|
||||||
//info
|
var instBtn = '<span style="display:block; margin:3px"><input id="instanceButton"'
|
||||||
var hyperion_enabled = true;
|
+ (hyperion_enabled ? "checked" : "") + ' type="checkbox" data-toggle="toggle" data-size="small" data-onstyle="success" data-on="'
|
||||||
|
+ $.i18n('general_btn_on') + '" data-off="'
|
||||||
|
+ $.i18n('general_btn_off') + '"></span>';
|
||||||
|
|
||||||
components.forEach( function(obj) {
|
instances_html += '<th style="width:1px;text-align:right">' + instBtn + '</th></tr></thead></table>';
|
||||||
if (obj.name == "ALL")
|
|
||||||
{
|
|
||||||
hyperion_enabled = obj.enabled
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
var instancename = window.currentHyperionInstanceName;
|
instances_html += '<table class="table borderless">';
|
||||||
|
instances_html += '<thead><tr><th colspan="3">';
|
||||||
|
instances_html += '<i class="fa fa-info-circle fa-fw"></i>';
|
||||||
|
instances_html += '<span>' + $.i18n('dashboard_infobox_label_title') + '</span>';
|
||||||
|
instances_html += '</th></tr></thead>';
|
||||||
|
instances_html += '<tbody><tr><td></td>';
|
||||||
|
instances_html += '<td>' + $.i18n('conf_leds_contr_label_contrtype') + '</td>';
|
||||||
|
instances_html += '<td style="text-align:right">' + window.serverConfig.device.type + '</td>';
|
||||||
|
instances_html += '</tr><tr></tbody></table>';
|
||||||
|
|
||||||
$('#dash_statush').html(hyperion_enabled ? '<span style="color:green">'+$.i18n('general_btn_on')+'</span>' : '<span style="color:red">'+$.i18n('general_btn_off')+'</span>');
|
instances_html += '<table class="table first_cell_borderless">';
|
||||||
$('#btn_hsc').html(hyperion_enabled ? '<button class="btn btn-sm btn-danger" onClick="requestSetComponentState(\'ALL\',false)">'+$.i18n('dashboard_infobox_label_disableh', instancename)+'</button>' : '<button class="btn btn-sm btn-success" onClick="requestSetComponentState(\'ALL\',true)">'+$.i18n('dashboard_infobox_label_enableh', instancename)+'</button>');
|
instances_html += '<thead><tr><th colspan="3">';
|
||||||
}
|
instances_html += '<i class="fa fa-eye fa-fw"></i>';
|
||||||
|
instances_html += '<span>' + $.i18n('dashboard_componentbox_label_title') + '</span>';
|
||||||
|
instances_html += '</th></tr></thead>';
|
||||||
|
|
||||||
// add more info
|
var tab_components = "";
|
||||||
$('#dash_leddevice').html(window.serverConfig.device.type);
|
for (var idx = 0; idx < components.length; idx++) {
|
||||||
$('#dash_currv').html(window.currentVersion);
|
if (components[idx].name != "ALL") {
|
||||||
$('#dash_instance').html(window.currentHyperionInstanceName);
|
var comp_enabled = components[idx].enabled ? "checked" : "";
|
||||||
$('#dash_ports').html(window.serverConfig.flatbufServer.port+' | '+window.serverConfig.protoServer.port);
|
const general_comp = "general_comp_" + components[idx].name;
|
||||||
$('#dash_watchedversionbranch').html(window.serverConfig.general.watchedVersionBranch);
|
var componentBtn = '<input ' +
|
||||||
|
'id="' + general_comp + '" ' + comp_enabled +
|
||||||
|
' type="checkbox" ' +
|
||||||
|
'data-toggle="toggle" ' +
|
||||||
|
'data-size="mini" ' +
|
||||||
|
'data-onstyle="success" ' +
|
||||||
|
'data-on="' + $.i18n('general_btn_on') + '" ' +
|
||||||
|
'data-off="' + $.i18n('general_btn_off') + '">';
|
||||||
|
|
||||||
getReleases(function(callback){
|
tab_components += '<tr><td></td><td>' + $.i18n('general_comp_' + components[idx].name) + '</td><td style="text-align:right">' + componentBtn + '</td></tr>';
|
||||||
if(callback)
|
}
|
||||||
{
|
}
|
||||||
$('#dash_latev').html(window.latestVersion.tag_name);
|
|
||||||
|
|
||||||
if (semverLite.gt(window.latestVersion.tag_name, window.currentVersion))
|
instances_html += '<tbody>' + tab_components + '</tbody></table>';
|
||||||
$('#versioninforesult').html('<div class="bs-callout bs-callout-warning" style="margin:0px"><a target="_blank" href="' + window.latestVersion.html_url + '">'+$.i18n('dashboard_infobox_message_updatewarning', window.latestVersion.tag_name) + '</a></div>');
|
instances_html += '</div></div></div>';
|
||||||
else
|
|
||||||
$('#versioninforesult').html('<div class="bs-callout bs-callout-success" style="margin:0px">'+$.i18n('dashboard_infobox_message_updatesuccess')+'</div>');
|
|
||||||
|
|
||||||
}
|
$('.instances').prepend(instances_html);
|
||||||
});
|
updateUiOnInstance(window.currentHyperionInstance);
|
||||||
|
updateHyperionInstanceListing();
|
||||||
|
|
||||||
//interval update
|
$('#instanceButton').bootstrapToggle();
|
||||||
updateComponents();
|
$('#instanceButton').change(e => {
|
||||||
$(window.hyperion).on("components-updated",updateComponents);
|
requestSetComponentState('ALL', e.currentTarget.checked);
|
||||||
|
});
|
||||||
|
|
||||||
if(window.showOptHelp)
|
for (var idx = 0; idx < components.length; idx++) {
|
||||||
createHintH("intro", $.i18n('dashboard_label_intro'), "dash_intro");
|
if (components[idx].name != "ALL") {
|
||||||
|
$("#general_comp_" + components[idx].name).bootstrapToggle();
|
||||||
|
$("#general_comp_" + components[idx].name).bootstrapToggle(hyperion_enabled ? "enable" : "disable")
|
||||||
|
$("#general_comp_" + components[idx].name).change(e => {
|
||||||
|
requestSetComponentState(e.currentTarget.id.split('_')[2], e.currentTarget.checked);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
removeOverlay();
|
// add more info
|
||||||
|
var fbPort = window.serverConfig.flatbufServer.enable ? window.serverConfig.flatbufServer.port : $.i18n('general_disabled');
|
||||||
|
$('#dash_fbPort').html(fbPort);
|
||||||
|
var pbPort = window.serverConfig.protoServer.enable ? window.serverConfig.protoServer.port : $.i18n('general_disabled');
|
||||||
|
$('#dash_pbPort').html(pbPort);
|
||||||
|
|
||||||
|
var jsonPort = window.serverConfig.jsonServer.port;
|
||||||
|
$('#dash_jsonPort').html(jsonPort);
|
||||||
|
var wsPorts = window.serverConfig.webConfig.port + ' | ' + window.serverConfig.webConfig.sslPort
|
||||||
|
$('#dash_wsPorts').html(wsPorts);
|
||||||
|
|
||||||
|
$('#dash_currv').html(window.currentVersion);
|
||||||
|
$('#dash_watchedversionbranch').html(window.serverConfig.general.watchedVersionBranch);
|
||||||
|
|
||||||
|
getReleases(function (callback) {
|
||||||
|
if (callback) {
|
||||||
|
$('#dash_latev').html(window.latestVersion.tag_name);
|
||||||
|
|
||||||
|
if (semverLite.gt(window.latestVersion.tag_name, window.currentVersion))
|
||||||
|
$('#versioninforesult').html('<div class="bs-callout bs-callout-warning" style="margin:0px"><a target="_blank" href="' + window.latestVersion.html_url + '">' + $.i18n('dashboard_infobox_message_updatewarning', window.latestVersion.tag_name) + '</a></div>');
|
||||||
|
else
|
||||||
|
$('#versioninforesult').html('<div class="bs-callout bs-callout-info" style="margin:0px">' + $.i18n('dashboard_infobox_message_updatesuccess') + '</div>');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
//interval update
|
||||||
|
updateComponents();
|
||||||
|
$(window.hyperion).on("components-updated", updateComponents);
|
||||||
|
|
||||||
|
if (window.showOptHelp)
|
||||||
|
createHintH("intro", $.i18n('dashboard_label_intro'), "dash_intro");
|
||||||
|
|
||||||
|
removeOverlay();
|
||||||
});
|
});
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
$(document).ready( function() {
|
$(document).ready( function() {
|
||||||
performTranslation();
|
performTranslation();
|
||||||
|
|
||||||
|
// update instance listing
|
||||||
|
updateHyperionInstanceListing();
|
||||||
|
|
||||||
var oldEffects = [];
|
var oldEffects = [];
|
||||||
var effects_editor = null;
|
var effects_editor = null;
|
||||||
var confFgEff = window.serverConfig.foregroundEffect.effect;
|
var confFgEff = window.serverConfig.foregroundEffect.effect;
|
||||||
@ -12,12 +16,12 @@ $(document).ready( function() {
|
|||||||
//foreground effect
|
//foreground effect
|
||||||
$('#conf_cont').append(createRow('conf_cont_fge'));
|
$('#conf_cont').append(createRow('conf_cont_fge'));
|
||||||
$('#conf_cont_fge').append(createOptPanel('fa-spinner', $.i18n("edt_conf_fge_heading_title"), 'editor_container_foregroundEffect', 'btn_submit_foregroundEffect'));
|
$('#conf_cont_fge').append(createOptPanel('fa-spinner', $.i18n("edt_conf_fge_heading_title"), 'editor_container_foregroundEffect', 'btn_submit_foregroundEffect'));
|
||||||
$('#conf_cont_fge').append(createHelpTable(window.schema.foregroundEffect.properties, $.i18n("edt_conf_fge_heading_title")));
|
$('#conf_cont_fge').append(createHelpTable(window.schema.foregroundEffect.properties, $.i18n("edt_conf_fge_heading_title"), "foregroundEffectHelpPanelId"));
|
||||||
|
|
||||||
//background effect
|
//background effect
|
||||||
$('#conf_cont').append(createRow('conf_cont_bge'));
|
$('#conf_cont').append(createRow('conf_cont_bge'));
|
||||||
$('#conf_cont_bge').append(createOptPanel('fa-spinner', $.i18n("edt_conf_bge_heading_title"), 'editor_container_backgroundEffect', 'btn_submit_backgroundEffect'));
|
$('#conf_cont_bge').append(createOptPanel('fa-spinner', $.i18n("edt_conf_bge_heading_title"), 'editor_container_backgroundEffect', 'btn_submit_backgroundEffect'));
|
||||||
$('#conf_cont_bge').append(createHelpTable(window.schema.backgroundEffect.properties, $.i18n("edt_conf_bge_heading_title")));
|
$('#conf_cont_bge').append(createHelpTable(window.schema.backgroundEffect.properties, $.i18n("edt_conf_bge_heading_title"), "backgroundEffectHelpPanelId"));
|
||||||
|
|
||||||
//effect path
|
//effect path
|
||||||
if(storedAccess != 'default')
|
if(storedAccess != 'default')
|
||||||
@ -64,11 +68,31 @@ $(document).ready( function() {
|
|||||||
updateEffectlist();
|
updateEffectlist();
|
||||||
});
|
});
|
||||||
|
|
||||||
foregroundEffect_editor.on('change',function() {
|
foregroundEffect_editor.on('change', function () {
|
||||||
|
var foregroundEffectEnable = foregroundEffect_editor.getEditor("root.foregroundEffect.enable").getValue();
|
||||||
|
if (foregroundEffectEnable) {
|
||||||
|
showInputOptionsForKey(foregroundEffect_editor, "foregroundEffect", "enable", true);
|
||||||
|
$('#foregroundEffectHelpPanelId').show();
|
||||||
|
|
||||||
|
} else {
|
||||||
|
showInputOptionsForKey(foregroundEffect_editor, "foregroundEffect", "enable", false);
|
||||||
|
$('#foregroundEffectHelpPanelId').hide();
|
||||||
|
}
|
||||||
|
|
||||||
foregroundEffect_editor.validate().length || window.readOnlyMode ? $('#btn_submit_foregroundEffect').attr('disabled', true) : $('#btn_submit_foregroundEffect').attr('disabled', false);
|
foregroundEffect_editor.validate().length || window.readOnlyMode ? $('#btn_submit_foregroundEffect').attr('disabled', true) : $('#btn_submit_foregroundEffect').attr('disabled', false);
|
||||||
});
|
});
|
||||||
|
|
||||||
backgroundEffect_editor.on('change',function() {
|
backgroundEffect_editor.on('change', function () {
|
||||||
|
var backgroundEffectEnable = backgroundEffect_editor.getEditor("root.backgroundEffect.enable").getValue();
|
||||||
|
if (backgroundEffectEnable) {
|
||||||
|
showInputOptionsForKey(backgroundEffect_editor, "backgroundEffect", "enable", true);
|
||||||
|
$('#backgroundEffectHelpPanelId').show();
|
||||||
|
|
||||||
|
} else {
|
||||||
|
showInputOptionsForKey(backgroundEffect_editor, "backgroundEffect", "enable", false);
|
||||||
|
$('#backgroundEffectHelpPanelId').hide();
|
||||||
|
}
|
||||||
|
|
||||||
backgroundEffect_editor.validate().length || window.readOnlyMode ? $('#btn_submit_backgroundEffect').attr('disabled', true) : $('#btn_submit_backgroundEffect').attr('disabled', false);
|
backgroundEffect_editor.validate().length || window.readOnlyMode ? $('#btn_submit_backgroundEffect').attr('disabled', true) : $('#btn_submit_backgroundEffect').attr('disabled', false);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
performTranslation();
|
performTranslation();
|
||||||
|
|
||||||
|
// update instance listing
|
||||||
|
updateHyperionInstanceListing();
|
||||||
|
|
||||||
var oldDelList = [];
|
var oldDelList = [];
|
||||||
var effectName = "";
|
var effectName = "";
|
||||||
var imageData = "";
|
var imageData = "";
|
||||||
@ -92,7 +96,7 @@ $(document).ready(function () {
|
|||||||
|
|
||||||
var desc = $.i18n(effects[idx].schemaContent.title + '_desc');
|
var desc = $.i18n(effects[idx].schemaContent.title + '_desc');
|
||||||
if (desc === effects[idx].schemaContent.title + '_desc') {
|
if (desc === effects[idx].schemaContent.title + '_desc') {
|
||||||
desc = ""
|
desc = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
$("#eff_desc").html(createEffHint($.i18n(effects[idx].schemaContent.title), desc));
|
$("#eff_desc").html(createEffHint($.i18n(effects[idx].schemaContent.title), desc));
|
||||||
|
@ -5,7 +5,7 @@ $(document).ready( function() {
|
|||||||
var confName;
|
var confName;
|
||||||
var conf_editor = null;
|
var conf_editor = null;
|
||||||
|
|
||||||
$('#conf_cont').append(createOptPanel('fa-wrench', $.i18n("edt_conf_gen_heading_title"), 'editor_container', 'btn_submit'));
|
$('#conf_cont').append(createOptPanel('fa-wrench', $.i18n("edt_conf_gen_heading_title"), 'editor_container', 'btn_submit', 'panel-system'));
|
||||||
if(window.showOptHelp)
|
if(window.showOptHelp)
|
||||||
{
|
{
|
||||||
$('#conf_cont').append(createHelpTable(window.schema.general.properties, $.i18n("edt_conf_gen_heading_title")));
|
$('#conf_cont').append(createHelpTable(window.schema.general.properties, $.i18n("edt_conf_gen_heading_title")));
|
||||||
@ -28,12 +28,12 @@ $(document).ready( function() {
|
|||||||
// Instance handling
|
// Instance handling
|
||||||
function handleInstanceRename(e)
|
function handleInstanceRename(e)
|
||||||
{
|
{
|
||||||
|
|
||||||
conf_editor.on('change',function() {
|
conf_editor.on('change',function() {
|
||||||
window.readOnlyMode ? $('#btn_cl_save').attr('disabled', true) : $('#btn_submit').attr('disabled', false);
|
window.readOnlyMode ? $('#btn_cl_save').attr('disabled', true) : $('#btn_submit').attr('disabled', false);
|
||||||
window.readOnlyMode ? $('#btn_ma_save').attr('disabled', true) : $('#btn_submit').attr('disabled', false);
|
window.readOnlyMode ? $('#btn_ma_save').attr('disabled', true) : $('#btn_submit').attr('disabled', false);
|
||||||
});
|
});
|
||||||
|
|
||||||
var inst = e.currentTarget.id.split("_")[1];
|
var inst = e.currentTarget.id.split("_")[1];
|
||||||
showInfoDialog('renInst', $.i18n('conf_general_inst_renreq_t'), getInstanceNameByIndex(inst));
|
showInfoDialog('renInst', $.i18n('conf_general_inst_renreq_t'), getInstanceNameByIndex(inst));
|
||||||
|
|
||||||
@ -46,13 +46,6 @@ $(document).ready( function() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleInstanceStartStop(e)
|
|
||||||
{
|
|
||||||
var inst = e.currentTarget.id.split("_")[1];
|
|
||||||
var start = (e.currentTarget.className == "btn btn-danger")
|
|
||||||
requestInstanceStartStop(inst, start)
|
|
||||||
}
|
|
||||||
|
|
||||||
function handleInstanceDelete(e)
|
function handleInstanceDelete(e)
|
||||||
{
|
{
|
||||||
var inst = e.currentTarget.id.split("_")[1];
|
var inst = e.currentTarget.id.split("_")[1];
|
||||||
@ -68,22 +61,25 @@ $(document).ready( function() {
|
|||||||
$('.itbody').html("");
|
$('.itbody').html("");
|
||||||
for(var key in inst)
|
for(var key in inst)
|
||||||
{
|
{
|
||||||
var startBtnColor = inst[key].running ? "success" : "danger";
|
var enable_style = inst[key].running ? "checked" : "";
|
||||||
var startBtnIcon = inst[key].running ? "stop" : "play";
|
var renameBtn = '<button id="instren_'+inst[key].instance+'" type="button" class="btn btn-primary"><i class="mdi mdi-lead-pencil""></i></button>';
|
||||||
var startBtnText = inst[key].running ? $.i18n('general_btn_stop') : $.i18n('general_btn_start');
|
|
||||||
var renameBtn = '<button id="instren_'+inst[key].instance+'" type="button" class="btn btn-primary"><i class="fa fa-fw fa-pencil"></i>'+$.i18n('general_btn_rename')+'</button>';
|
|
||||||
var startBtn = ""
|
var startBtn = ""
|
||||||
var delBtn = "";
|
var delBtn = "";
|
||||||
if(inst[key].instance > 0)
|
if(inst[key].instance > 0)
|
||||||
{
|
{
|
||||||
delBtn = '<button id="instdel_'+inst[key].instance+'" type="button" class="btn btn-warning"><i class="fa fa-fw fa-remove"></i>'+$.i18n('general_btn_delete')+'</button>';
|
delBtn = '<button id="instdel_'+inst[key].instance+'" type="button" class="btn btn-danger"><i class="mdi mdi-delete-forever""></i></button>';
|
||||||
startBtn = '<button id="inst_'+inst[key].instance+'" type="button" class="btn btn-'+startBtnColor+'"><i class="fa fa-fw fa-'+startBtnIcon+'"></i>'+startBtnText+'</button>';
|
startBtn = '<input id="inst_'+inst[key].instance+'"'+enable_style+' type="checkbox" data-toggle="toggle" data-onstyle="success font-weight-bold" data-on="'+$.i18n('general_btn_on')+'" data-offstyle="default font-weight-bold" data-off="'+$.i18n('general_btn_off')+'">';
|
||||||
|
|
||||||
}
|
}
|
||||||
$('.itbody').append(createTableRow([inst[key].friendly_name, renameBtn, startBtn, delBtn], false, true));
|
$('.itbody').append(createTableRow([inst[key].friendly_name, startBtn, renameBtn, delBtn], false, true));
|
||||||
$('#instren_'+inst[key].instance).off().on('click', handleInstanceRename);
|
$('#instren_'+inst[key].instance).off().on('click', handleInstanceRename);
|
||||||
$('#inst_'+inst[key].instance).off().on('click', handleInstanceStartStop);
|
|
||||||
|
$('#inst_'+inst[key].instance).bootstrapToggle();
|
||||||
|
$('#inst_'+inst[key].instance).change(e => {
|
||||||
|
requestInstanceStartStop(e.currentTarget.id.split('_').pop(), e.currentTarget.checked);
|
||||||
|
});
|
||||||
$('#instdel_'+inst[key].instance).off().on('click', handleInstanceDelete);
|
$('#instdel_'+inst[key].instance).off().on('click', handleInstanceDelete);
|
||||||
|
|
||||||
window.readOnlyMode ? $('#instren_'+inst[key].instance).attr('disabled', true) : $('#btn_submit').attr('disabled', false);
|
window.readOnlyMode ? $('#instren_'+inst[key].instance).attr('disabled', true) : $('#btn_submit').attr('disabled', false);
|
||||||
window.readOnlyMode ? $('#inst_'+inst[key].instance).attr('disabled', true) : $('#btn_submit').attr('disabled', false);
|
window.readOnlyMode ? $('#inst_'+inst[key].instance).attr('disabled', true) : $('#btn_submit').attr('disabled', false);
|
||||||
window.readOnlyMode ? $('#instdel_'+inst[key].instance).attr('disabled', true) : $('#btn_submit').attr('disabled', false);
|
window.readOnlyMode ? $('#instdel_'+inst[key].instance).attr('disabled', true) : $('#btn_submit').attr('disabled', false);
|
||||||
|
578
assets/webconfig/js/content_index.js
Normal file → Executable file
@ -1,354 +1,362 @@
|
|||||||
var instNameInit = false
|
var instNameInit = false
|
||||||
|
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
|
var darkModeOverwrite = getStorage("darkModeOverwrite", true);
|
||||||
|
|
||||||
var darkModeOverwrite = getStorage("darkModeOverwrite", true);
|
if (darkModeOverwrite == "false" || darkModeOverwrite == null) {
|
||||||
|
if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
||||||
|
handleDarkMode();
|
||||||
|
}
|
||||||
|
|
||||||
if(darkModeOverwrite == "false" || darkModeOverwrite == null)
|
if (window.matchMedia && window.matchMedia('(prefers-color-scheme: light)').matches) {
|
||||||
{
|
setStorage("darkMode", "off", false);
|
||||||
if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
}
|
||||||
handleDarkMode();
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (window.matchMedia && window.matchMedia('(prefers-color-scheme: light)').matches) {
|
|
||||||
setStorage("darkMode", "off", false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(getStorage("darkMode", false) == "on")
|
|
||||||
{
|
|
||||||
handleDarkMode();
|
|
||||||
}
|
|
||||||
|
|
||||||
loadContentTo("#container_connection_lost", "connection_lost");
|
if (getStorage("darkMode", false) == "on") {
|
||||||
loadContentTo("#container_restart", "restart");
|
handleDarkMode();
|
||||||
initWebSocket();
|
}
|
||||||
|
|
||||||
$(window.hyperion).on("cmd-serverinfo", function (event) {
|
loadContentTo("#container_connection_lost", "connection_lost");
|
||||||
window.serverInfo = event.response.info;
|
loadContentTo("#container_restart", "restart");
|
||||||
|
initWebSocket();
|
||||||
window.readOnlyMode = window.sysInfo.hyperion.readOnlyMode;
|
|
||||||
|
|
||||||
// comps
|
|
||||||
window.comps = event.response.info.components
|
|
||||||
|
|
||||||
$(window.hyperion).trigger("ready");
|
$(window.hyperion).on("cmd-serverinfo", function (event) {
|
||||||
|
window.serverInfo = event.response.info;
|
||||||
|
|
||||||
window.comps.forEach(function (obj) {
|
// comps
|
||||||
if (obj.name == "ALL") {
|
window.comps = event.response.info.components
|
||||||
if (obj.enabled)
|
|
||||||
$("#hyperion_disabled_notify").fadeOut("fast");
|
|
||||||
else
|
|
||||||
$("#hyperion_disabled_notify").fadeIn("fast");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// determine button visibility
|
$(window.hyperion).trigger("ready");
|
||||||
var running = window.serverInfo.instance.filter(entry => entry.running);
|
|
||||||
if (running.length > 1)
|
|
||||||
$('#btn_hypinstanceswitch').toggle(true)
|
|
||||||
else
|
|
||||||
$('#btn_hypinstanceswitch').toggle(false)
|
|
||||||
// update listing at button
|
|
||||||
updateHyperionInstanceListing()
|
|
||||||
if (!instNameInit) {
|
|
||||||
window.currentHyperionInstanceName = getInstanceNameByIndex(0);
|
|
||||||
instNameInit = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
updateSessions();
|
window.comps.forEach(function (obj) {
|
||||||
}); // end cmd-serverinfo
|
if (obj.name == "ALL") {
|
||||||
|
if (obj.enabled)
|
||||||
|
$("#hyperion_disabled_notify").fadeOut("fast");
|
||||||
|
else
|
||||||
|
$("#hyperion_disabled_notify").fadeIn("fast");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// Update language selection
|
// determine button visibility
|
||||||
$("#language-select").on('changed.bs.select',function (e, clickedIndex, isSelected, previousValue){
|
var running = window.serverInfo.instance.filter(entry => entry.running);
|
||||||
var newLang = availLang[clickedIndex-1];
|
if (running.length > 1)
|
||||||
if (newLang !== storedLang)
|
$('#btn_hypinstanceswitch').toggle(true)
|
||||||
{
|
else
|
||||||
setStorage("langcode", newLang);
|
$('#btn_hypinstanceswitch').toggle(false)
|
||||||
reload();
|
// update listing at button
|
||||||
}
|
updateHyperionInstanceListing()
|
||||||
});
|
if (!instNameInit) {
|
||||||
|
window.currentHyperionInstanceName = getInstanceNameByIndex(0);
|
||||||
|
instNameInit = true;
|
||||||
|
}
|
||||||
|
|
||||||
$("#language-select").selectpicker(
|
updateSessions();
|
||||||
{
|
}); // end cmd-serverinfo
|
||||||
container: 'body'
|
|
||||||
});
|
|
||||||
|
|
||||||
$(".bootstrap-select").click(function () {
|
// Update language selection
|
||||||
$(this).addClass("open");
|
$("#language-select").on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) {
|
||||||
});
|
var newLang = availLang[clickedIndex - 1];
|
||||||
|
if (newLang !== storedLang) {
|
||||||
|
setStorage("langcode", newLang);
|
||||||
|
reload();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
$(document).click(function(){
|
$("#language-select").selectpicker(
|
||||||
$(".bootstrap-select").removeClass("open");
|
{
|
||||||
});
|
container: 'body'
|
||||||
|
});
|
||||||
|
|
||||||
$(".bootstrap-select").click(function(e){
|
$(".bootstrap-select").click(function () {
|
||||||
e.stopPropagation();
|
$(this).addClass("open");
|
||||||
});
|
});
|
||||||
|
|
||||||
//End language selection
|
|
||||||
|
|
||||||
$(window.hyperion).on("cmd-sessions-update", function (event) {
|
|
||||||
window.serverInfo.sessions = event.response.data;
|
|
||||||
updateSessions();
|
|
||||||
});
|
|
||||||
|
|
||||||
$(window.hyperion).on("cmd-authorize-tokenRequest cmd-authorize-getPendingTokenRequests", function (event) {
|
$(document).click(function () {
|
||||||
var val = event.response.info;
|
$(".bootstrap-select").removeClass("open");
|
||||||
if (Array.isArray(event.response.info)) {
|
});
|
||||||
if (event.response.info.length == 0) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
val = event.response.info[0]
|
|
||||||
if (val.comment == '')
|
|
||||||
$('#modal_dialog').modal('hide');
|
|
||||||
}
|
|
||||||
|
|
||||||
showInfoDialog("grantToken", $.i18n('conf_network_tok_grantT'), $.i18n('conf_network_tok_grantMsg') + '<br><span style="font-weight:bold">App: ' + val.comment + '</span><br><span style="font-weight:bold">Code: ' + val.id + '</span>')
|
$(".bootstrap-select").click(function (e) {
|
||||||
$("#tok_grant_acc").off().on('click', function () {
|
e.stopPropagation();
|
||||||
tokenList.push(val)
|
});
|
||||||
// forward event, in case we need to rebuild the list now
|
|
||||||
$(window.hyperion).trigger({ type: "build-token-list" });
|
|
||||||
requestHandleTokenRequest(val.id, true)
|
|
||||||
});
|
|
||||||
$("#tok_deny_acc").off().on('click', function () {
|
|
||||||
requestHandleTokenRequest(val.id, false)
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
$(window.hyperion).one("cmd-authorize-getTokenList", function (event) {
|
//End language selection
|
||||||
tokenList = event.response.info;
|
|
||||||
requestServerInfo();
|
|
||||||
});
|
|
||||||
|
|
||||||
$(window.hyperion).on("cmd-sysinfo", function (event) {
|
$(window.hyperion).on("cmd-sessions-update", function (event) {
|
||||||
requestServerInfo();
|
window.serverInfo.sessions = event.response.data;
|
||||||
window.sysInfo = event.response.info;
|
updateSessions();
|
||||||
|
});
|
||||||
|
|
||||||
window.currentVersion = window.sysInfo.hyperion.version;
|
$(window.hyperion).on("cmd-authorize-tokenRequest cmd-authorize-getPendingTokenRequests", function (event) {
|
||||||
window.currentChannel = window.sysInfo.hyperion.channel;
|
var val = event.response.info;
|
||||||
});
|
if (Array.isArray(event.response.info)) {
|
||||||
|
if (event.response.info.length == 0) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
val = event.response.info[0]
|
||||||
|
if (val.comment == '')
|
||||||
|
$('#modal_dialog').modal('hide');
|
||||||
|
}
|
||||||
|
|
||||||
$(window.hyperion).one("cmd-config-getschema", function (event) {
|
showInfoDialog("grantToken", $.i18n('conf_network_tok_grantT'), $.i18n('conf_network_tok_grantMsg') + '<br><span style="font-weight:bold">App: ' + val.comment + '</span><br><span style="font-weight:bold">Code: ' + val.id + '</span>')
|
||||||
window.serverSchema = event.response.info;
|
$("#tok_grant_acc").off().on('click', function () {
|
||||||
requestServerConfig();
|
tokenList.push(val)
|
||||||
|
// forward event, in case we need to rebuild the list now
|
||||||
|
$(window.hyperion).trigger({ type: "build-token-list" });
|
||||||
|
requestHandleTokenRequest(val.id, true)
|
||||||
|
});
|
||||||
|
$("#tok_deny_acc").off().on('click', function () {
|
||||||
|
requestHandleTokenRequest(val.id, false)
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
$(window.hyperion).one("cmd-authorize-getTokenList", function (event) {
|
||||||
|
tokenList = event.response.info;
|
||||||
|
requestServerInfo();
|
||||||
|
});
|
||||||
|
|
||||||
|
$(window.hyperion).on("cmd-sysinfo", function (event) {
|
||||||
|
requestServerInfo();
|
||||||
|
window.sysInfo = event.response.info;
|
||||||
|
|
||||||
|
window.currentVersion = window.sysInfo.hyperion.version;
|
||||||
|
window.currentChannel = window.sysInfo.hyperion.channel;
|
||||||
|
window.readOnlyMode = window.sysInfo.hyperion.readOnlyMode;
|
||||||
|
});
|
||||||
|
|
||||||
|
$(window.hyperion).one("cmd-config-getschema", function (event) {
|
||||||
|
window.serverSchema = event.response.info;
|
||||||
|
requestServerConfig();
|
||||||
requestTokenInfo();
|
requestTokenInfo();
|
||||||
requestGetPendingTokenRequests();
|
requestGetPendingTokenRequests();
|
||||||
|
|
||||||
window.schema = window.serverSchema.properties;
|
window.schema = window.serverSchema.properties;
|
||||||
});
|
});
|
||||||
|
|
||||||
$(window.hyperion).on("cmd-config-getconfig", function (event) {
|
$(window.hyperion).on("cmd-config-getconfig", function (event) {
|
||||||
window.serverConfig = event.response.info;
|
window.serverConfig = event.response.info;
|
||||||
requestSysInfo();
|
requestSysInfo();
|
||||||
|
|
||||||
window.showOptHelp = window.serverConfig.general.showOptHelp;
|
window.showOptHelp = window.serverConfig.general.showOptHelp;
|
||||||
});
|
});
|
||||||
|
|
||||||
$(window.hyperion).on("cmd-config-setconfig", function (event) {
|
$(window.hyperion).on("cmd-config-setconfig", function (event) {
|
||||||
if (event.response.success === true) {
|
if (event.response.success === true) {
|
||||||
showNotification('success', $.i18n('dashboard_alert_message_confsave_success'), $.i18n('dashboard_alert_message_confsave_success_t'))
|
showNotification('success', $.i18n('dashboard_alert_message_confsave_success'), $.i18n('dashboard_alert_message_confsave_success_t'))
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
$(window.hyperion).on("cmd-authorize-login", function (event) {
|
$(window.hyperion).on("cmd-authorize-login", function (event) {
|
||||||
$("#main-nav").removeAttr('style')
|
$("#main-nav").removeAttr('style')
|
||||||
$("#top-navbar").removeAttr('style')
|
$("#top-navbar").removeAttr('style')
|
||||||
|
|
||||||
if (window.defaultPasswordIsSet === true && getStorage("suppressDefaultPwWarning") !== "true" )
|
if (window.defaultPasswordIsSet === true && getStorage("suppressDefaultPwWarning") !== "true") {
|
||||||
{
|
var supprPwWarnCheckbox = '<div class="text-right">' + $.i18n('dashboard_message_do_not_show_again')
|
||||||
var supprPwWarnCheckbox = '<div class="text-right">'+$.i18n('dashboard_message_do_not_show_again')
|
+ ' <input id="chk_suppressDefaultPw" type="checkbox" onChange="suppressDefaultPwWarning()"> </div>'
|
||||||
+ ' <input id="chk_suppressDefaultPw" type="checkbox" onChange="suppressDefaultPwWarning()"> </div>'
|
showNotification('warning', $.i18n('dashboard_message_default_password'), $.i18n('dashboard_message_default_password_t'), '<a style="cursor:pointer" onClick="changePassword()">'
|
||||||
showNotification('warning', $.i18n('dashboard_message_default_password'), $.i18n('dashboard_message_default_password_t'), '<a style="cursor:pointer" onClick="changePassword()">'
|
+ $.i18n('InfoDialog_changePassword_title') + '</a>' + supprPwWarnCheckbox)
|
||||||
+ $.i18n('InfoDialog_changePassword_title') + '</a>' + supprPwWarnCheckbox)
|
}
|
||||||
}
|
else
|
||||||
else
|
//if logged on and pw != default show option to lock ui
|
||||||
//if logged on and pw != default show option to lock ui
|
$("#btn_lock_ui").removeAttr('style')
|
||||||
$("#btn_lock_ui").removeAttr('style')
|
|
||||||
|
|
||||||
|
if (event.response.hasOwnProperty('info'))
|
||||||
|
setStorage("loginToken", event.response.info.token, true);
|
||||||
|
|
||||||
if (event.response.hasOwnProperty('info'))
|
requestServerConfigSchema();
|
||||||
setStorage("loginToken", event.response.info.token, true);
|
});
|
||||||
|
|
||||||
requestServerConfigSchema();
|
$(window.hyperion).on("cmd-authorize-newPassword", function (event) {
|
||||||
});
|
if (event.response.success === true) {
|
||||||
|
showInfoDialog("success", $.i18n('InfoDialog_changePassword_success'));
|
||||||
|
// not necessarily true, but better than nothing
|
||||||
|
window.defaultPasswordIsSet = false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
$(window.hyperion).on("cmd-authorize-newPassword", function (event) {
|
$(window.hyperion).on("cmd-authorize-newPasswordRequired", function (event) {
|
||||||
if (event.response.success === true) {
|
var loginToken = getStorage("loginToken", true)
|
||||||
showInfoDialog("success", $.i18n('InfoDialog_changePassword_success'));
|
|
||||||
// not necessarily true, but better than nothing
|
|
||||||
window.defaultPasswordIsSet = false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
$(window.hyperion).on("cmd-authorize-newPasswordRequired", function (event) {
|
if (event.response.info.newPasswordRequired == true) {
|
||||||
var loginToken = getStorage("loginToken", true)
|
window.defaultPasswordIsSet = true;
|
||||||
|
|
||||||
if (event.response.info.newPasswordRequired == true) {
|
if (loginToken)
|
||||||
window.defaultPasswordIsSet = true;
|
requestTokenAuthorization(loginToken)
|
||||||
|
else
|
||||||
|
requestAuthorization('hyperion');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$("#main-nav").attr('style', 'display:none')
|
||||||
|
$("#top-navbar").attr('style', 'display:none')
|
||||||
|
|
||||||
if (loginToken)
|
if (loginToken)
|
||||||
requestTokenAuthorization(loginToken)
|
requestTokenAuthorization(loginToken)
|
||||||
else
|
else
|
||||||
requestAuthorization('hyperion');
|
loadContentTo("#page-content", "login")
|
||||||
}
|
}
|
||||||
else {
|
});
|
||||||
$("#main-nav").attr('style', 'display:none')
|
|
||||||
$("#top-navbar").attr('style', 'display:none')
|
|
||||||
|
|
||||||
if (loginToken)
|
$(window.hyperion).on("cmd-authorize-adminRequired", function (event) {
|
||||||
requestTokenAuthorization(loginToken)
|
//Check if a admin login is required.
|
||||||
else
|
//If yes: check if default pw is set. If no: go ahead to get server config and render page
|
||||||
loadContentTo("#page-content", "login")
|
if (event.response.info.adminRequired === true)
|
||||||
}
|
requestRequiresDefaultPasswortChange();
|
||||||
});
|
else
|
||||||
|
requestServerConfigSchema();
|
||||||
|
});
|
||||||
|
|
||||||
$(window.hyperion).on("cmd-authorize-adminRequired", function (event) {
|
$(window.hyperion).on("error", function (event) {
|
||||||
//Check if a admin login is required.
|
//If we are getting an error "No Authorization" back with a set loginToken we will forward to new Login (Token is expired.
|
||||||
//If yes: check if default pw is set. If no: go ahead to get server config and render page
|
//e.g.: hyperiond was started new in the meantime)
|
||||||
if (event.response.info.adminRequired === true)
|
if (event.reason == "No Authorization" && getStorage("loginToken", true)) {
|
||||||
requestRequiresDefaultPasswortChange();
|
removeStorage("loginToken", true);
|
||||||
else
|
requestRequiresAdminAuth();
|
||||||
requestServerConfigSchema();
|
}
|
||||||
});
|
else {
|
||||||
|
showInfoDialog("error", "Error", event.reason);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
$(window.hyperion).on("error", function (event) {
|
$(window.hyperion).on("open", function (event) {
|
||||||
//If we are getting an error "No Authorization" back with a set loginToken we will forward to new Login (Token is expired.
|
requestRequiresAdminAuth();
|
||||||
//e.g.: hyperiond was started new in the meantime)
|
});
|
||||||
if (event.reason == "No Authorization" && getStorage("loginToken", true)) {
|
|
||||||
removeStorage("loginToken", true);
|
|
||||||
requestRequiresAdminAuth();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
showInfoDialog("error", "Error", event.reason);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
$(window.hyperion).on("open", function (event) {
|
$(window.hyperion).one("ready", function (event) {
|
||||||
requestRequiresAdminAuth();
|
loadContent();
|
||||||
});
|
});
|
||||||
|
|
||||||
$(window.hyperion).one("ready", function (event) {
|
$(window.hyperion).on("cmd-adjustment-update", function (event) {
|
||||||
loadContent();
|
window.serverInfo.adjustment = event.response.data
|
||||||
});
|
});
|
||||||
|
|
||||||
$(window.hyperion).on("cmd-adjustment-update", function (event) {
|
$(window.hyperion).on("cmd-videomode-update", function (event) {
|
||||||
window.serverInfo.adjustment = event.response.data
|
window.serverInfo.videomode = event.response.data.videomode
|
||||||
});
|
});
|
||||||
|
|
||||||
$(window.hyperion).on("cmd-videomode-update", function (event) {
|
$(window.hyperion).on("cmd-components-update", function (event) {
|
||||||
window.serverInfo.videomode = event.response.data.videomode
|
let obj = event.response.data
|
||||||
});
|
|
||||||
|
|
||||||
$(window.hyperion).on("cmd-components-update", function (event) {
|
// notfication in index
|
||||||
let obj = event.response.data
|
if (obj.name == "ALL") {
|
||||||
|
if (obj.enabled)
|
||||||
|
$("#hyperion_disabled_notify").fadeOut("fast");
|
||||||
|
else
|
||||||
|
$("#hyperion_disabled_notify").fadeIn("fast");
|
||||||
|
}
|
||||||
|
|
||||||
// notfication in index
|
window.comps.forEach((entry, index) => {
|
||||||
if (obj.name == "ALL") {
|
if (entry.name === obj.name) {
|
||||||
if (obj.enabled)
|
window.comps[index] = obj;
|
||||||
$("#hyperion_disabled_notify").fadeOut("fast");
|
}
|
||||||
else
|
});
|
||||||
$("#hyperion_disabled_notify").fadeIn("fast");
|
// notify the update
|
||||||
}
|
$(window.hyperion).trigger("components-updated", event.response.data);
|
||||||
|
});
|
||||||
|
|
||||||
window.comps.forEach((entry, index) => {
|
$(window.hyperion).on("cmd-instance-update", function (event) {
|
||||||
if (entry.name === obj.name) {
|
window.serverInfo.instance = event.response.data
|
||||||
window.comps[index] = obj;
|
var avail = event.response.data;
|
||||||
}
|
// notify the update
|
||||||
});
|
$(window.hyperion).trigger("instance-updated");
|
||||||
// notify the update
|
|
||||||
$(window.hyperion).trigger("components-updated", event.response.data);
|
|
||||||
});
|
|
||||||
|
|
||||||
$(window.hyperion).on("cmd-instance-update", function (event) {
|
// if our current instance is no longer available we are at instance 0 again.
|
||||||
window.serverInfo.instance = event.response.data
|
var isInData = false;
|
||||||
var avail = event.response.data;
|
for (var key in avail) {
|
||||||
// notify the update
|
if (avail[key].instance == currentHyperionInstance && avail[key].running) {
|
||||||
$(window.hyperion).trigger("instance-updated");
|
isInData = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// if our current instance is no longer available we are at instance 0 again.
|
if (!isInData) {
|
||||||
var isInData = false;
|
//Delete Storage information about the last used but now stopped instance
|
||||||
for (var key in avail) {
|
if (getStorage('lastSelectedInstance', false))
|
||||||
if (avail[key].instance == currentHyperionInstance && avail[key].running) {
|
removeStorage('lastSelectedInstance', false)
|
||||||
isInData = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isInData) {
|
currentHyperionInstance = 0;
|
||||||
//Delete Storage information about the last used but now stopped instance
|
currentHyperionInstanceName = getInstanceNameByIndex(0);
|
||||||
if (getStorage('lastSelectedInstance', false))
|
requestServerConfig();
|
||||||
removeStorage('lastSelectedInstance', false)
|
setTimeout(requestServerInfo, 100)
|
||||||
|
setTimeout(requestTokenInfo, 200)
|
||||||
|
setTimeout(loadContent, 300, undefined, true)
|
||||||
|
}
|
||||||
|
|
||||||
currentHyperionInstance = 0;
|
// determine button visibility
|
||||||
currentHyperionInstanceName = getInstanceNameByIndex(0);
|
var running = serverInfo.instance.filter(entry => entry.running);
|
||||||
requestServerConfig();
|
if (running.length > 1)
|
||||||
setTimeout(requestServerInfo, 100)
|
$('#btn_hypinstanceswitch').toggle(true)
|
||||||
setTimeout(requestTokenInfo, 200)
|
else
|
||||||
setTimeout(loadContent, 300, undefined, true)
|
$('#btn_hypinstanceswitch').toggle(false)
|
||||||
}
|
|
||||||
|
|
||||||
// determine button visibility
|
// update listing for button
|
||||||
var running = serverInfo.instance.filter(entry => entry.running);
|
updateHyperionInstanceListing()
|
||||||
if (running.length > 1)
|
});
|
||||||
$('#btn_hypinstanceswitch').toggle(true)
|
|
||||||
else
|
|
||||||
$('#btn_hypinstanceswitch').toggle(false)
|
|
||||||
|
|
||||||
// update listing for button
|
$(window.hyperion).on("cmd-instance-switchTo", function (event) {
|
||||||
updateHyperionInstanceListing()
|
requestServerConfig();
|
||||||
});
|
setTimeout(requestServerInfo, 200)
|
||||||
|
setTimeout(requestTokenInfo, 400)
|
||||||
|
setTimeout(loadContent, 400, undefined, true)
|
||||||
|
});
|
||||||
|
|
||||||
$(window.hyperion).on("cmd-instance-switchTo", function (event) {
|
$(window.hyperion).on("cmd-effects-update", function (event) {
|
||||||
requestServerConfig();
|
window.serverInfo.effects = event.response.data.effects
|
||||||
setTimeout(requestServerInfo, 200)
|
});
|
||||||
setTimeout(requestTokenInfo, 400)
|
|
||||||
setTimeout(loadContent, 400, undefined, true)
|
|
||||||
});
|
|
||||||
|
|
||||||
$(window.hyperion).on("cmd-effects-update", function (event) {
|
$(".mnava").bind('click.menu', function (e) {
|
||||||
window.serverInfo.effects = event.response.data.effects
|
loadContent(e);
|
||||||
});
|
window.scrollTo(0, 0);
|
||||||
|
});
|
||||||
$(".mnava").bind('click.menu', function (e) {
|
|
||||||
loadContent(e);
|
|
||||||
window.scrollTo(0, 0);
|
|
||||||
});
|
|
||||||
|
|
||||||
|
$(window).scroll(function(){
|
||||||
|
if ($(window).scrollTop() > 65)
|
||||||
|
$("#navbar_brand_logo").css("display", "none");
|
||||||
|
else
|
||||||
|
$("#navbar_brand_logo").css("display", "");
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
function suppressDefaultPwWarning(){
|
function suppressDefaultPwWarning() {
|
||||||
|
if (document.getElementById('chk_suppressDefaultPw').checked)
|
||||||
if (document.getElementById('chk_suppressDefaultPw').checked)
|
setStorage("suppressDefaultPwWarning", "true");
|
||||||
setStorage("suppressDefaultPwWarning", "true");
|
else
|
||||||
else
|
setStorage("suppressDefaultPwWarning", "false");
|
||||||
setStorage("suppressDefaultPwWarning", "false");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$(function () {
|
$(function () {
|
||||||
var sidebar = $('#side-menu'); // cache sidebar to a variable for performance
|
var sidebar = $('#side-menu'); // cache sidebar to a variable for performance
|
||||||
sidebar.delegate('a.inactive', 'click', function () {
|
sidebar.delegate('a.inactive', 'click', function () {
|
||||||
sidebar.find('.active').toggleClass('active inactive');
|
sidebar.find('.active').toggleClass('active inactive');
|
||||||
$(this).toggleClass('active inactive');
|
$(this).toggleClass('active inactive');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// hotfix body padding when bs modals overlap
|
// hotfix body padding when bs modals overlap
|
||||||
$(document.body).on('hide.bs.modal,hidden.bs.modal', function () {
|
$(document.body).on('hide.bs.modal,hidden.bs.modal', function () {
|
||||||
$('body').css('padding-right', '0');
|
$('body').css('padding-right', '0');
|
||||||
});
|
});
|
||||||
|
|
||||||
//Dark Mode
|
//Dark Mode
|
||||||
$("#btn_darkmode").off().on("click",function(e){
|
$("#btn_darkmode").off().on("click", function (e) {
|
||||||
|
if (getStorage("darkMode", false) != "on") {
|
||||||
if(getStorage("darkMode", false) != "on")
|
handleDarkMode();
|
||||||
{
|
setStorage("darkModeOverwrite", true, true);
|
||||||
handleDarkMode();
|
}
|
||||||
setStorage("darkModeOverwrite", true, true);
|
else {
|
||||||
}
|
setStorage("darkMode", "off", false);
|
||||||
else {
|
setStorage("darkModeOverwrite", true, true);
|
||||||
setStorage("darkMode", "off", false);
|
location.reload();
|
||||||
setStorage("darkModeOverwrite", true, true);
|
}
|
||||||
location.reload();
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Menuitem toggle;
|
||||||
|
function SwitchToMenuItem(target) {
|
||||||
|
document.getElementById(target).click(); // Get <a href menu item;
|
||||||
|
let sidebar = $('#side-menu'); // Get sidebar menu;
|
||||||
|
sidebar.find('.active').toggleClass('inactive'); // find all active classes and set inactive;
|
||||||
|
sidebar.find('.in').removeClass("in"); // Find all collapsed menu items and close it by remove "in" class;
|
||||||
|
$('#' + target).removeClass('inactive'); // Remove inactive state by classname;
|
||||||
|
$('#' + target).addClass('active'); // Add active state by classname;
|
||||||
|
let cl_object = $('#' + target).closest('ul'); // Find closest ul sidemenu header;
|
||||||
|
cl_object.addClass('in'); // add class "in" to expand header in sidebar menu;
|
||||||
|
};
|
||||||
|
|
||||||
|
2026
assets/webconfig/js/content_leds.js
Normal file → Executable file
@ -1,224 +1,184 @@
|
|||||||
var conf_editor = null;
|
var conf_editor = null;
|
||||||
var createdCont = false;
|
var createdCont = false;
|
||||||
|
var isScroll = true;
|
||||||
|
|
||||||
performTranslation();
|
performTranslation();
|
||||||
|
requestLoggingStop();
|
||||||
requestLoggingStart();
|
requestLoggingStart();
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function () {
|
||||||
var messages;
|
|
||||||
var loguplmess = "";
|
|
||||||
var reportUrl = 'https://report.hyperion-project.org/#';
|
|
||||||
|
|
||||||
$('#conf_cont').append(createOptPanel('fa-reorder', $.i18n("edt_conf_log_heading_title"), 'editor_container', 'btn_submit'));
|
$('#conf_cont').append(createOptPanel('fa-reorder', $.i18n("edt_conf_log_heading_title"), 'editor_container', 'btn_submit'));
|
||||||
if(window.showOptHelp)
|
if (window.showOptHelp) {
|
||||||
{
|
$('#conf_cont').append(createHelpTable(window.schema.logger.properties, $.i18n("edt_conf_log_heading_title")));
|
||||||
$('#conf_cont').append(createHelpTable(window.schema.logger.properties, $.i18n("edt_conf_log_heading_title")));
|
createHintH("intro", $.i18n('conf_logging_label_intro'), "log_head");
|
||||||
createHintH("intro", $.i18n('conf_logging_label_intro'), "log_head");
|
}
|
||||||
}
|
|
||||||
$("#log_upl_pol").append('<span style="color:grey;font-size:80%">'+$.i18n("conf_logging_uplpolicy")+' '+buildWL("user/support#report_privacy_policy",$.i18n("conf_logging_contpolicy")));
|
|
||||||
|
|
||||||
conf_editor = createJsonEditor('editor_container', {
|
conf_editor = createJsonEditor('editor_container', {
|
||||||
logger : window.schema.logger
|
logger: window.schema.logger
|
||||||
}, true, true);
|
}, true, true);
|
||||||
|
|
||||||
conf_editor.on('change',function() {
|
conf_editor.on('change', function () {
|
||||||
conf_editor.validate().length || window.readOnlyMode ? $('#btn_submit').attr('disabled', true) : $('#btn_submit').attr('disabled', false);
|
conf_editor.validate().length || window.readOnlyMode ? $('#btn_submit').attr('disabled', true) : $('#btn_submit').attr('disabled', false);
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#btn_submit').off().on('click',function() {
|
$('#btn_submit').off().on('click', function () {
|
||||||
requestWriteConfig(conf_editor.getValue());
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#btn_logupload').off().on('click',function() {
|
var displayedLogLevel = conf_editor.getEditor("root.logger.level").getValue();
|
||||||
uploadLog();
|
var newLogLevel = {logger:{}};
|
||||||
$(this).attr("disabled", true);
|
newLogLevel.logger.level = displayedLogLevel;
|
||||||
$('#upl_link').html($.i18n('conf_logging_uploading'))
|
|
||||||
});
|
|
||||||
|
|
||||||
//show prev uploads
|
requestWriteConfig(newLogLevel);
|
||||||
var ent;
|
});
|
||||||
|
|
||||||
if(getStorage("prev_reports"))
|
function infoSummary() {
|
||||||
{
|
var info = "";
|
||||||
ent = JSON.parse(getStorage("prev_reports"));
|
|
||||||
$('#prev_reports').append('<h4 style="margin-top:30px">'+$.i18n('conf_logging_lastreports')+'</h4>');
|
|
||||||
for(var i = 0; i<ent.length; i++)
|
|
||||||
{
|
|
||||||
$('#prev_reports').append('<p><a href="'+reportUrl+ent[i].id+'" target="_blank">'+ent[i].title+'('+ent[i].time+')</a></p>');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
ent = [];
|
|
||||||
|
|
||||||
function updateLastReports(id,time,title)
|
info += 'Hyperion System Summary Report (' + window.serverConfig.general.name + '), Reported instance: ' + window.currentHyperionInstanceName + '\n';
|
||||||
{
|
|
||||||
if(ent.length > 4)
|
|
||||||
ent.pop();
|
|
||||||
ent.unshift({"id": id ,"time": time,"title": title})
|
|
||||||
setStorage("prev_reports",JSON.stringify(ent));
|
|
||||||
}
|
|
||||||
|
|
||||||
function uploadLog()
|
info += "\n< ----- System information -------------------- >\n";
|
||||||
{
|
info += getSystemInfo() + '\n';
|
||||||
var log = "";
|
|
||||||
var config = JSON.stringify(window.serverConfig, null).replace(/"/g, '\\"');
|
|
||||||
var prios = window.serverInfo.priorities;
|
|
||||||
var comps = window.serverInfo.components;
|
|
||||||
var sys = window.sysInfo.system;
|
|
||||||
var shy = window.sysInfo.hyperion;
|
|
||||||
var info;
|
|
||||||
|
|
||||||
//create log
|
info += "\n< ----- Configured Instances ------------------ >\n";
|
||||||
log = (messages ? loguplmess : "Log was empty!");
|
var instances = window.serverInfo.instance;
|
||||||
|
for (var i = 0; i < instances.length; i++) {
|
||||||
|
info += instances[i].instance + ': ' + instances[i].friendly_name + ' Running: ' + instances[i].running + '\n';
|
||||||
|
}
|
||||||
|
|
||||||
//create general info
|
info += "\n< ----- This instance's priorities ------------ >\n";
|
||||||
info = "### GENERAL ### \n";
|
var prios = window.serverInfo.priorities;
|
||||||
info += 'Build: '+shy.build+'\n';
|
for (var i = 0; i < prios.length; i++) {
|
||||||
info += 'Build time: '+shy.time+'\n';
|
info += prios[i].priority + ': ';
|
||||||
info += 'Version: '+shy.version+'\n';
|
if (prios[i].visible) {
|
||||||
info += 'UI Lang: '+storedLang+' (BrowserL: '+navigator.language+')\n';
|
info += ' VISIBLE!';
|
||||||
info += 'UI Access: '+storedAccess+'\n';
|
}
|
||||||
info += 'Log lvl: '+window.serverConfig.logger.level+'\n';
|
else {
|
||||||
info += 'Avail Capt: '+window.serverInfo.grabbers.available+'\n';
|
info += ' ';
|
||||||
info += 'Database: '+(shy.readOnlyMode ? "ready-only" : "read/write")+'\n';
|
}
|
||||||
info += '\n';
|
info += ' (' + prios[i].componentId + ') Owner: ' + prios[i].owner + '\n';
|
||||||
|
}
|
||||||
|
info += 'priorities_autoselect: ' + window.serverInfo.priorities_autoselect + '\n';
|
||||||
|
|
||||||
info += 'Distribution: '+sys.prettyName+'\n';
|
info += "\n< ----- This instance components' status ------->\n";
|
||||||
info += 'Architecture: '+sys.architecture+'\n';
|
var comps = window.serverInfo.components;
|
||||||
|
for (var i = 0; i < comps.length; i++) {
|
||||||
|
info += comps[i].name + ' - ' + comps[i].enabled + '\n';
|
||||||
|
}
|
||||||
|
|
||||||
if (sys.cpuModelName)
|
info += "\n< ----- This instance's configuration --------- >\n";
|
||||||
info += 'CPU Model: ' + sys.cpuModelName + '\n';
|
info += JSON.stringify(window.serverConfig) + '\n';
|
||||||
if (sys.cpuModelType)
|
|
||||||
info += 'CPU Type: ' + sys.cpuModelType + '\n';
|
|
||||||
if (sys.cpuRevision)
|
|
||||||
info += 'CPU Revision: ' + sys.cpuRevision + '\n';
|
|
||||||
if (sys.cpuHardware)
|
|
||||||
info += 'CPU Hardware: ' + sys.cpuHardware + '\n';
|
|
||||||
|
|
||||||
info += 'Kernel: ' + sys.kernelType+' ('+sys.kernelVersion+' (WS: '+sys.wordSize+'))' + '\n';
|
info += "\n< ----- Current Log --------------------------- >\n";
|
||||||
info += 'Qt Version: ' + sys.qtVersion + '\n';
|
var logMsgs = document.getElementById("logmessages").textContent;
|
||||||
info += 'Python Version: ' + sys.pyVersion + '\n';
|
if (logMsgs.length !== 0) {
|
||||||
info += 'Browser/OS: ' + navigator.userAgent + '\n\n';
|
info += logMsgs;
|
||||||
|
} else {
|
||||||
|
info += "Log is empty!";
|
||||||
|
}
|
||||||
|
|
||||||
//create prios
|
return info;
|
||||||
info += "### PRIORITIES ### \n";
|
}
|
||||||
for(var i = 0; i<prios.length; i++)
|
|
||||||
{
|
|
||||||
info += prios[i].priority;
|
|
||||||
if(prios[i].visible)
|
|
||||||
info += ' VISIBLE!';
|
|
||||||
else
|
|
||||||
info += ' ';
|
|
||||||
info += ' ('+prios[i].component+') Owner: '+prios[i].owner+'\n';
|
|
||||||
}
|
|
||||||
info += '\npriorities_autoselect: '+window.serverInfo.priorities_autoselect+'\n\n';
|
|
||||||
|
|
||||||
//create comps
|
function createLogContainer() {
|
||||||
info += '### COMPONENTS ### \n';
|
|
||||||
for(var i = 0; i<comps.length; i++)
|
|
||||||
{
|
|
||||||
info += comps[i].enabled+' - '+comps[i].name+'\n';
|
|
||||||
}
|
|
||||||
|
|
||||||
//escape data
|
const isScrollEnableStyle = (isScroll ? "checked" : "");
|
||||||
info = JSON.stringify(info);
|
|
||||||
log = JSON.stringify(log);
|
|
||||||
config = JSON.stringify(config);
|
|
||||||
var title = 'Hyperion '+window.currentVersion+' Report ('+window.serverConfig.general.name+' ('+window.serverInfo.ledDevices.active+'))';
|
|
||||||
|
|
||||||
$.ajax({
|
$('#log_content').html('<pre><div id="logmessages" style="overflow:scroll;max-height:400px"></div></pre>');
|
||||||
url: 'https://api.hyperion-project.org/report.php',
|
$('#log_footer').append('<label class="checkbox-inline">'
|
||||||
crossDomain: true,
|
+ '<input id = "btn_scroll"' + isScrollEnableStyle + ' type = "checkbox"'
|
||||||
contentType: 'application/json',
|
+ 'data-toggle="toggle" data-onstyle="success" data-on="' + $.i18n('general_btn_on') + '" data-off="' + $.i18n('general_btn_off') + '">'
|
||||||
type: 'POST',
|
+ $.i18n('conf_logging_btn_autoscroll') + '</label>'
|
||||||
timeout: 7000,
|
);
|
||||||
data: '{"title":"'+title+'","info":'+info+',"log":'+log+',"config":'+config+'}'
|
|
||||||
})
|
|
||||||
.done( function( data, textStatus, jqXHR ) {
|
|
||||||
reportUrl += data.id;
|
|
||||||
if(textStatus == "success")
|
|
||||||
{
|
|
||||||
$('#upl_link').html($.i18n('conf_logging_yourlink')+': <a href="'+reportUrl+'" target="_blank">'+reportUrl+'</a>');
|
|
||||||
$("html, body").animate({ scrollTop: 9999 }, "fast");
|
|
||||||
updateLastReports(data.id,data.time,title);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$('#btn_logupload').attr("disabled", false);
|
|
||||||
$('#upl_link').html('<span style="color:red">'+$.i18n('conf_logging_uplfailed')+'<span>');
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.fail( function( jqXHR, textStatus ) {
|
|
||||||
console.log(jqXHR,textStatus);
|
|
||||||
$('#btn_logupload').attr("disabled", false);
|
|
||||||
$('#upl_link').html('<span style="color:red">'+$.i18n('conf_logging_uplfailed')+'<span>');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!window.loggingHandlerInstalled)
|
$(`#btn_scroll`).bootstrapToggle();
|
||||||
{
|
$(`#btn_scroll`).change(e => {
|
||||||
window.loggingHandlerInstalled = true;
|
if (e.currentTarget.checked) {
|
||||||
$(window.hyperion).on("cmd-logging-update",function(event){
|
//Scroll to end of log
|
||||||
|
isScroll = true;
|
||||||
|
if ($("#logmessages").length > 0) {
|
||||||
|
$('#logmessages')[0].scrollTop = $('#logmessages')[0].scrollHeight;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
isScroll = false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
if ($("#logmessages").length == 0 && window.loggingStreamActive)
|
$('#log_footer').append('<button class="btn btn-primary pull-right" id="btn_clipboard"><i class="fa fa-fw fa-clipboard"></i>Copy Log to Clipboard</button>');
|
||||||
{
|
|
||||||
requestLoggingStop();
|
|
||||||
window.loggingStreamActive = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
messages = (event.response.result.messages);
|
$('#btn_clipboard').off().on('click', function () {
|
||||||
if(messages.length != 0 && !createdCont)
|
const temp = document.createElement('textarea');
|
||||||
{
|
temp.textContent = infoSummary();
|
||||||
$('#log_content').html('\
|
document.body.append(temp);
|
||||||
<pre><div id="logmessages" style="overflow:scroll;max-height:400px"></div></pre>\
|
temp.select();
|
||||||
<button class="btn btn-danger" id="btn_autoscroll"><i class="fa fa-long-arrow-down fa-fw"></i>'+$.i18n('conf_logging_btn_autoscroll')+'</button>\
|
document.execCommand("copy");
|
||||||
<button class="btn btn-primary" id="btn_clipboard"><i class="fa fa-clipboard fa-fw"></i>Copy Log to Clipboard</button>');
|
temp.remove();
|
||||||
createdCont = true;
|
});
|
||||||
|
}
|
||||||
|
|
||||||
$('#btn_autoscroll').off().on('click',function() {
|
function updateLogOutput(messages) {
|
||||||
toggleClass('#btn_autoscroll', "btn-success", "btn-danger");
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#btn_clipboard').off().on('click',function() {
|
if (messages.length != 0) {
|
||||||
const temp = document.createElement('textarea');
|
|
||||||
temp.textContent = document.getElementById("logmessages").textContent;
|
|
||||||
document.body.append(temp);
|
|
||||||
temp.select();
|
|
||||||
document.execCommand("copy");
|
|
||||||
temp.remove();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
for(var idx = 0; idx < messages.length; idx++)
|
for (var idx = 0; idx < messages.length; idx++) {
|
||||||
{
|
var app_name = messages[idx].appName;
|
||||||
var app_name = messages[idx].appName;
|
var logger_name = messages[idx].loggerName;
|
||||||
var logger_name = messages[idx].loggerName;
|
var function_ = messages[idx].function;
|
||||||
var function_ = messages[idx].function;
|
var line = messages[idx].line;
|
||||||
var line = messages[idx].line;
|
var file_name = messages[idx].fileName;
|
||||||
var file_name = messages[idx].fileName;
|
var msg = messages[idx].message;
|
||||||
var msg = messages[idx].message;
|
var level_string = messages[idx].levelString;
|
||||||
var level_string = messages[idx].levelString;
|
var utime = messages[idx].utime;
|
||||||
var utime = messages[idx].utime;
|
|
||||||
|
|
||||||
var debug = "";
|
var debug = "";
|
||||||
if(level_string == "DEBUG") {
|
if (level_string == "DEBUG") {
|
||||||
debug = "("+file_name+":"+line+":"+function_+"()) ";
|
debug = "(" + file_name + ":" + line + ":" + function_ + "()) ";
|
||||||
}
|
}
|
||||||
|
|
||||||
var date = new Date(parseInt(utime));
|
var date = new Date(parseInt(utime));
|
||||||
|
var newLogLine = date.toISOString() + " [" + app_name + " " + logger_name + "] (" + level_string + ") " + debug + msg;
|
||||||
|
|
||||||
$("#logmessages").append("\n <code>"+date.toISOString()+" ["+app_name+" "+logger_name+"] ("+level_string+") "+debug+msg+"</code>");
|
$("#logmessages").append("<code>" + newLogLine + "</code>\n");
|
||||||
loguplmess += "["+app_name+" "+logger_name+"] ("+level_string+") "+debug+msg+"\n";
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if($("#btn_autoscroll").hasClass('btn-success'))
|
if (isScroll && $("#logmessages").length > 0) {
|
||||||
{
|
$('#logmessages').stop().animate({
|
||||||
$('#logmessages').stop().animate({
|
scrollTop: $('#logmessages')[0].scrollHeight
|
||||||
scrollTop: $('#logmessages')[0].scrollHeight
|
}, 800);
|
||||||
}, 800);
|
}
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
}
|
|
||||||
|
|
||||||
removeOverlay();
|
if (!window.loggingHandlerInstalled) {
|
||||||
|
window.loggingHandlerInstalled = true;
|
||||||
|
|
||||||
|
$(window.hyperion).on("cmd-logging-update", function (event) {
|
||||||
|
|
||||||
|
var messages = (event.response.result.messages);
|
||||||
|
|
||||||
|
if (messages.length != 0) {
|
||||||
|
if (!createdCont) {
|
||||||
|
createLogContainer();
|
||||||
|
createdCont = true;
|
||||||
|
}
|
||||||
|
updateLogOutput(messages)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
$(window.hyperion).on("cmd-settings-update", function (event) {
|
||||||
|
|
||||||
|
var obj = event.response.data
|
||||||
|
if (obj.logger) {
|
||||||
|
Object.getOwnPropertyNames(obj).forEach(function (val, idx, array) {
|
||||||
|
window.serverConfig[val] = obj[val];
|
||||||
|
});
|
||||||
|
|
||||||
|
var currentlogLevel = window.serverConfig.logger.level;
|
||||||
|
conf_editor.getEditor("root.logger.level").setValue(currentlogLevel);
|
||||||
|
location.reload();
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
removeOverlay();
|
||||||
});
|
});
|
||||||
|
@ -12,35 +12,35 @@ $(document).ready( function() {
|
|||||||
{
|
{
|
||||||
//network
|
//network
|
||||||
$('#conf_cont').append(createRow('conf_cont_net'))
|
$('#conf_cont').append(createRow('conf_cont_net'))
|
||||||
$('#conf_cont_net').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_net_heading_title"), 'editor_container_net', 'btn_submit_net'));
|
$('#conf_cont_net').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_net_heading_title"), 'editor_container_net', 'btn_submit_net', 'panel-system'));
|
||||||
$('#conf_cont_net').append(createHelpTable(window.schema.network.properties, $.i18n("edt_conf_net_heading_title")));
|
$('#conf_cont_net').append(createHelpTable(window.schema.network.properties, $.i18n("edt_conf_net_heading_title")));
|
||||||
|
|
||||||
//jsonserver
|
//jsonserver
|
||||||
$('#conf_cont').append(createRow('conf_cont_json'))
|
$('#conf_cont').append(createRow('conf_cont_json'))
|
||||||
$('#conf_cont_json').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_js_heading_title"), 'editor_container_jsonserver', 'btn_submit_jsonserver'));
|
$('#conf_cont_json').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_js_heading_title"), 'editor_container_jsonserver', 'btn_submit_jsonserver', 'panel-system'));
|
||||||
$('#conf_cont_json').append(createHelpTable(window.schema.jsonServer.properties, $.i18n("edt_conf_js_heading_title")));
|
$('#conf_cont_json').append(createHelpTable(window.schema.jsonServer.properties, $.i18n("edt_conf_js_heading_title")));
|
||||||
|
|
||||||
//flatbufserver
|
//flatbufserver
|
||||||
$('#conf_cont').append(createRow('conf_cont_flatbuf'))
|
$('#conf_cont').append(createRow('conf_cont_flatbuf'))
|
||||||
$('#conf_cont_flatbuf').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_fbs_heading_title"), 'editor_container_fbserver', 'btn_submit_fbserver'));
|
$('#conf_cont_flatbuf').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_fbs_heading_title"), 'editor_container_fbserver', 'btn_submit_fbserver', 'panel-system'));
|
||||||
$('#conf_cont_flatbuf').append(createHelpTable(window.schema.flatbufServer.properties, $.i18n("edt_conf_fbs_heading_title")));
|
$('#conf_cont_flatbuf').append(createHelpTable(window.schema.flatbufServer.properties, $.i18n("edt_conf_fbs_heading_title"),"flatbufServerHelpPanelId"));
|
||||||
|
|
||||||
//protoserver
|
//protoserver
|
||||||
$('#conf_cont').append(createRow('conf_cont_proto'))
|
$('#conf_cont').append(createRow('conf_cont_proto'))
|
||||||
$('#conf_cont_proto').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_pbs_heading_title"), 'editor_container_protoserver', 'btn_submit_protoserver'));
|
$('#conf_cont_proto').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_pbs_heading_title"), 'editor_container_protoserver', 'btn_submit_protoserver', 'panel-system'));
|
||||||
$('#conf_cont_proto').append(createHelpTable(window.schema.protoServer.properties, $.i18n("edt_conf_pbs_heading_title")));
|
$('#conf_cont_proto').append(createHelpTable(window.schema.protoServer.properties, $.i18n("edt_conf_pbs_heading_title"),"protoServerHelpPanelId"));
|
||||||
|
|
||||||
//boblight
|
//boblight
|
||||||
$('#conf_cont').append(createRow('conf_cont_bobl'))
|
$('#conf_cont').append(createRow('conf_cont_bobl'))
|
||||||
$('#conf_cont_bobl').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_bobls_heading_title"), 'editor_container_boblightserver', 'btn_submit_boblightserver'));
|
$('#conf_cont_bobl').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_bobls_heading_title"), 'editor_container_boblightserver', 'btn_submit_boblightserver', 'panel-system'));
|
||||||
$('#conf_cont_bobl').append(createHelpTable(window.schema.boblightServer.properties, $.i18n("edt_conf_bobls_heading_title")));
|
$('#conf_cont_bobl').append(createHelpTable(window.schema.boblightServer.properties, $.i18n("edt_conf_bobls_heading_title"), "boblightServerHelpPanelId"));
|
||||||
|
|
||||||
//forwarder
|
//forwarder
|
||||||
if(storedAccess != 'default')
|
if(storedAccess != 'default')
|
||||||
{
|
{
|
||||||
$('#conf_cont').append(createRow('conf_cont_fw'))
|
$('#conf_cont').append(createRow('conf_cont_fw'))
|
||||||
$('#conf_cont_fw').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_fw_heading_title"), 'editor_container_forwarder', 'btn_submit_forwarder'));
|
$('#conf_cont_fw').append(createOptPanel('fa-sitemap', $.i18n("edt_conf_fw_heading_title"), 'editor_container_forwarder', 'btn_submit_forwarder', 'panel-system'));
|
||||||
$('#conf_cont_fw').append(createHelpTable(window.schema.forwarder.properties, $.i18n("edt_conf_fw_heading_title")));
|
$('#conf_cont_fw').append(createHelpTable(window.schema.forwarder.properties, $.i18n("edt_conf_fw_heading_title"),"forwarderHelpPanelId"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -87,7 +87,15 @@ $(document).ready( function() {
|
|||||||
flatbufServer : window.schema.flatbufServer
|
flatbufServer : window.schema.flatbufServer
|
||||||
}, true, true);
|
}, true, true);
|
||||||
|
|
||||||
conf_editor_fbs.on('change',function() {
|
conf_editor_fbs.on('change', function () {
|
||||||
|
var flatbufServerEnable = conf_editor_fbs.getEditor("root.flatbufServer.enable").getValue();
|
||||||
|
if (flatbufServerEnable) {
|
||||||
|
showInputOptionsForKey(conf_editor_fbs, "flatbufServer", "enable", true);
|
||||||
|
$('#flatbufServerHelpPanelId').show();
|
||||||
|
} else {
|
||||||
|
showInputOptionsForKey(conf_editor_fbs, "flatbufServer", "enable", false);
|
||||||
|
$('#flatbufServerHelpPanelId').hide();
|
||||||
|
}
|
||||||
conf_editor_fbs.validate().length || window.readOnlyMode ? $('#btn_submit_fbserver').attr('disabled', true) : $('#btn_submit_fbserver').attr('disabled', false);
|
conf_editor_fbs.validate().length || window.readOnlyMode ? $('#btn_submit_fbserver').attr('disabled', true) : $('#btn_submit_fbserver').attr('disabled', false);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -100,7 +108,15 @@ $(document).ready( function() {
|
|||||||
protoServer : window.schema.protoServer
|
protoServer : window.schema.protoServer
|
||||||
}, true, true);
|
}, true, true);
|
||||||
|
|
||||||
conf_editor_proto.on('change',function() {
|
conf_editor_proto.on('change', function () {
|
||||||
|
var protoServerEnable = conf_editor_proto.getEditor("root.protoServer.enable").getValue();
|
||||||
|
if (protoServerEnable) {
|
||||||
|
showInputOptionsForKey(conf_editor_proto, "protoServer", "enable", true);
|
||||||
|
$('#protoServerHelpPanelId').show();
|
||||||
|
} else {
|
||||||
|
showInputOptionsForKey(conf_editor_proto, "protoServer", "enable", false);
|
||||||
|
$('#protoServerHelpPanelId').hide();
|
||||||
|
}
|
||||||
conf_editor_proto.validate().length || window.readOnlyMode ? $('#btn_submit_protoserver').attr('disabled', true) : $('#btn_submit_protoserver').attr('disabled', false);
|
conf_editor_proto.validate().length || window.readOnlyMode ? $('#btn_submit_protoserver').attr('disabled', true) : $('#btn_submit_protoserver').attr('disabled', false);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -113,11 +129,19 @@ $(document).ready( function() {
|
|||||||
boblightServer : window.schema.boblightServer
|
boblightServer : window.schema.boblightServer
|
||||||
}, true, true);
|
}, true, true);
|
||||||
|
|
||||||
conf_editor_bobl.on('change',function() {
|
conf_editor_bobl.on('change', function () {
|
||||||
|
var boblightServerEnable = conf_editor_bobl.getEditor("root.boblightServer.enable").getValue();
|
||||||
|
if (boblightServerEnable) {
|
||||||
|
showInputOptionsForKey(conf_editor_bobl, "boblightServer", "enable", true);
|
||||||
|
$('#boblightServerHelpPanelId').show();
|
||||||
|
} else {
|
||||||
|
showInputOptionsForKey(conf_editor_bobl, "boblightServer", "enable", false);
|
||||||
|
$('#boblightServerHelpPanelId').hide();
|
||||||
|
}
|
||||||
conf_editor_bobl.validate().length || window.readOnlyMode ? $('#btn_submit_boblightserver').attr('disabled', true) : $('#btn_submit_boblightserver').attr('disabled', false);
|
conf_editor_bobl.validate().length || window.readOnlyMode ? $('#btn_submit_boblightserver').attr('disabled', true) : $('#btn_submit_boblightserver').attr('disabled', false);
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#btn_submit_boblightserver').off().on('click',function() {
|
$('#btn_submit_boblightserver').off().on('click', function () {
|
||||||
requestWriteConfig(conf_editor_bobl.getValue());
|
requestWriteConfig(conf_editor_bobl.getValue());
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -128,7 +152,15 @@ $(document).ready( function() {
|
|||||||
forwarder : window.schema.forwarder
|
forwarder : window.schema.forwarder
|
||||||
}, true, true);
|
}, true, true);
|
||||||
|
|
||||||
conf_editor_forw.on('change',function() {
|
conf_editor_forw.on('change', function () {
|
||||||
|
var forwarderEnable = conf_editor_forw.getEditor("root.forwarder.enable").getValue();
|
||||||
|
if (forwarderEnable) {
|
||||||
|
showInputOptionsForKey(conf_editor_forw, "forwarder", "enable", true);
|
||||||
|
$('#forwarderHelpPanelId').show();
|
||||||
|
} else {
|
||||||
|
showInputOptionsForKey(conf_editor_forw, "forwarder", "enable", false);
|
||||||
|
$('#forwarderHelpPanelId').hide();
|
||||||
|
}
|
||||||
conf_editor_forw.validate().length || window.readOnlyMode ? $('#btn_submit_forwarder').attr('disabled', true) : $('#btn_submit_forwarder').attr('disabled', false);
|
conf_editor_forw.validate().length || window.readOnlyMode ? $('#btn_submit_forwarder').attr('disabled', true) : $('#btn_submit_forwarder').attr('disabled', false);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -213,6 +245,6 @@ $(document).ready( function() {
|
|||||||
})
|
})
|
||||||
|
|
||||||
checkApiTokenState(window.serverConfig.network.apiAuth);
|
checkApiTokenState(window.serverConfig.network.apiAuth);
|
||||||
|
|
||||||
removeOverlay();
|
removeOverlay();
|
||||||
});
|
});
|
||||||
|
@ -1,13 +1,16 @@
|
|||||||
$(document).ready(function() {
|
$(document).ready(function () {
|
||||||
performTranslation();
|
performTranslation();
|
||||||
|
|
||||||
|
// update instance listing
|
||||||
|
updateHyperionInstanceListing();
|
||||||
|
|
||||||
var oldEffects = [];
|
var oldEffects = [];
|
||||||
var cpcolor = '#B500FF';
|
var cpcolor = '#B500FF';
|
||||||
var mappingList = window.serverSchema.properties.color.properties.imageToLedMappingType.enum;
|
var mappingList = window.serverSchema.properties.color.properties.imageToLedMappingType.enum;
|
||||||
var duration = 0;
|
var duration = 0;
|
||||||
var rgb = {r:255,g:0,b:0};
|
var rgb = { r: 255, g: 0, b: 0 };
|
||||||
var lastImgData = "";
|
var lastImgData = "";
|
||||||
var lastFileName= "";
|
var lastFileName = "";
|
||||||
|
|
||||||
//create html
|
//create html
|
||||||
createTable('ssthead', 'sstbody', 'sstcont');
|
createTable('ssthead', 'sstbody', 'sstcont');
|
||||||
@ -16,8 +19,7 @@ $(document).ready(function() {
|
|||||||
|
|
||||||
|
|
||||||
//create introduction
|
//create introduction
|
||||||
if(window.showOptHelp)
|
if (window.showOptHelp) {
|
||||||
{
|
|
||||||
createHint("intro", $.i18n('remote_color_intro', $.i18n('remote_losthint')), "color_intro");
|
createHint("intro", $.i18n('remote_color_intro', $.i18n('remote_losthint')), "color_intro");
|
||||||
createHint("intro", $.i18n('remote_input_intro', $.i18n('remote_losthint')), "sstcont");
|
createHint("intro", $.i18n('remote_input_intro', $.i18n('remote_losthint')), "sstcont");
|
||||||
createHint("intro", $.i18n('remote_adjustment_intro', $.i18n('remote_losthint')), "adjust_content");
|
createHint("intro", $.i18n('remote_adjustment_intro', $.i18n('remote_losthint')), "adjust_content");
|
||||||
@ -30,83 +32,73 @@ $(document).ready(function() {
|
|||||||
var sColor = sortProperties(window.serverSchema.properties.color.properties.channelAdjustment.items.properties);
|
var sColor = sortProperties(window.serverSchema.properties.color.properties.channelAdjustment.items.properties);
|
||||||
var values = window.serverInfo.adjustment[0];
|
var values = window.serverInfo.adjustment[0];
|
||||||
|
|
||||||
for(var key in sColor)
|
for (var key in sColor) {
|
||||||
{
|
if (sColor[key].key != "id" && sColor[key].key != "leds") {
|
||||||
if(sColor[key].key != "id" && sColor[key].key != "leds")
|
var title = '<label for="cr_' + sColor[key].key + '">' + $.i18n(sColor[key].title) + '</label>';
|
||||||
{
|
|
||||||
var title = '<label for="cr_'+sColor[key].key+'">'+$.i18n(sColor[key].title)+'</label>';
|
|
||||||
var property;
|
var property;
|
||||||
var value = values[sColor[key].key];
|
var value = values[sColor[key].key];
|
||||||
|
|
||||||
if(sColor[key].type == "array")
|
if (sColor[key].type == "array") {
|
||||||
{
|
property = '<div id="cr_' + sColor[key].key + '" class="input-group colorpicker-component" ><input type="text" class="form-control" /><span class="input-group-addon"><i></i></span></div>';
|
||||||
property = '<div id="cr_'+sColor[key].key+'" class="input-group colorpicker-component" ><input type="text" class="form-control" /><span class="input-group-addon"><i></i></span></div>';
|
|
||||||
$('.crtbody').append(createTableRow([title, property], false, true));
|
$('.crtbody').append(createTableRow([title, property], false, true));
|
||||||
createCP('cr_'+sColor[key].key, value, function(rgb,hex,e){
|
createCP('cr_' + sColor[key].key, value, function (rgb, hex, e) {
|
||||||
requestAdjustment(e.target.id.substr(e.target.id.indexOf("_") + 1), '['+rgb.r+','+rgb.g+','+rgb.b+']');
|
requestAdjustment(e.target.id.substr(e.target.id.indexOf("_") + 1), '[' + rgb.r + ',' + rgb.g + ',' + rgb.b + ']');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else if(sColor[key].type == "boolean")
|
else if (sColor[key].type == "boolean") {
|
||||||
{
|
property = '<div class="checkbox"><input id="cr_' + sColor[key].key + '" type="checkbox" value="' + value + '"/><label></label></div>';
|
||||||
property = '<div class="checkbox"><input id="cr_'+sColor[key].key+'" type="checkbox" value="'+value+'"/><label></label></div>';
|
|
||||||
$('.crtbody').append(createTableRow([title, property], false, true));
|
$('.crtbody').append(createTableRow([title, property], false, true));
|
||||||
|
|
||||||
$('#cr_'+sColor[key].key).off().on('change', function(e){
|
$('#cr_' + sColor[key].key).off().on('change', function (e) {
|
||||||
requestAdjustment(e.target.id.substr(e.target.id.indexOf("_") + 1), e.currentTarget.checked);
|
requestAdjustment(e.target.id.substr(e.target.id.indexOf("_") + 1), e.currentTarget.checked);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
if (sColor[key].key == "brightness" || sColor[key].key == "brightnessCompensation" || sColor[key].key == "backlightThreshold")
|
||||||
if(sColor[key].key == "brightness" || sColor[key].key == "brightnessCompensation" || sColor[key].key == "backlightThreshold")
|
property = '<div class="input-group"><input id="cr_' + sColor[key].key + '" type="number" class="form-control" min="0" max="100" step="10" value="' + value + '"/><span class="input-group-addon">' + $.i18n("edt_append_percent") + '</span></div>';
|
||||||
property = '<div class="input-group"><input id="cr_'+sColor[key].key+'" type="number" class="form-control" min="0" max="100" step="10" value="'+value+'"/><span class="input-group-addon">'+$.i18n("edt_append_percent")+'</span></div>';
|
|
||||||
else
|
else
|
||||||
property = '<input id="cr_'+sColor[key].key+'" type="number" class="form-control" min="0.1" max="4.0" step="0.1" value="'+value+'"/>';
|
property = '<input id="cr_' + sColor[key].key + '" type="number" class="form-control" min="0.1" max="4.0" step="0.1" value="' + value + '"/>';
|
||||||
|
|
||||||
$('.crtbody').append(createTableRow([title, property], false, true));
|
$('.crtbody').append(createTableRow([title, property], false, true));
|
||||||
$('#cr_'+sColor[key].key).off().on('change', function(e){
|
$('#cr_' + sColor[key].key).off().on('change', function (e) {
|
||||||
valValue(this.id,this.value,this.min,this.max);
|
valValue(this.id, this.value, this.min, this.max);
|
||||||
requestAdjustment(e.target.id.substr(e.target.id.indexOf("_") + 1), e.currentTarget.value);
|
requestAdjustment(e.target.id.substr(e.target.id.indexOf("_") + 1), e.currentTarget.value);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function sendEffect()
|
function sendEffect() {
|
||||||
{
|
|
||||||
var efx = $("#effect_select").val();
|
var efx = $("#effect_select").val();
|
||||||
if(efx != "__none__")
|
if (efx != "__none__") {
|
||||||
{
|
|
||||||
requestPriorityClear();
|
requestPriorityClear();
|
||||||
$(window.hyperion).one("cmd-clear", function(event) {
|
$(window.hyperion).one("cmd-clear", function (event) {
|
||||||
setTimeout(function() {requestPlayEffect(efx,duration)}, 100);
|
setTimeout(function () { requestPlayEffect(efx, duration) }, 100);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function sendColor()
|
function sendColor() {
|
||||||
{
|
requestSetColor(rgb.r, rgb.g, rgb.b, duration);
|
||||||
requestSetColor(rgb.r, rgb.g, rgb.b,duration);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateInputSelect()
|
function updateInputSelect() {
|
||||||
{
|
|
||||||
$('.sstbody').html("");
|
$('.sstbody').html("");
|
||||||
var prios = window.serverInfo.priorities;
|
var prios = window.serverInfo.priorities;
|
||||||
var clearAll = false;
|
var clearAll = false;
|
||||||
|
|
||||||
for(var i = 0; i < prios.length; i++)
|
for (var i = 0; i < prios.length; i++) {
|
||||||
{
|
var origin = prios[i].origin ? prios[i].origin : "System";
|
||||||
var origin = prios[i].origin ? prios[i].origin : "System";
|
|
||||||
origin = origin.split("@");
|
origin = origin.split("@");
|
||||||
var ip = origin[1];
|
var ip = origin[1];
|
||||||
origin = origin[0];
|
origin = origin[0];
|
||||||
|
|
||||||
var owner = prios[i].owner;
|
var owner = prios[i].owner;
|
||||||
var active = prios[i].active;
|
var active = prios[i].active;
|
||||||
var visible = prios[i].visible;
|
var visible = prios[i].visible;
|
||||||
var priority = prios[i].priority;
|
var priority = prios[i].priority;
|
||||||
var compId = prios[i].componentId;
|
var compId = prios[i].componentId;
|
||||||
var duration = prios[i].duration_ms/1000;
|
var duration = prios[i].duration_ms / 1000;
|
||||||
var value = "0,0,0";
|
var value = "0,0,0";
|
||||||
var btn_type = "default";
|
var btn_type = "default";
|
||||||
var btn_text = $.i18n('remote_input_setsource_btn');
|
var btn_text = $.i18n('remote_input_setsource_btn');
|
||||||
@ -115,40 +107,38 @@ $(document).ready(function() {
|
|||||||
if (active)
|
if (active)
|
||||||
btn_type = "primary";
|
btn_type = "primary";
|
||||||
|
|
||||||
if(priority > 254)
|
if (priority > 254)
|
||||||
continue;
|
continue;
|
||||||
if(priority < 254 && (compId == "EFFECT" || compId == "COLOR" || compId == "IMAGE") )
|
if (priority < 254 && (compId == "EFFECT" || compId == "COLOR" || compId == "IMAGE"))
|
||||||
clearAll = true;
|
clearAll = true;
|
||||||
|
|
||||||
if (visible)
|
if (visible) {
|
||||||
{
|
|
||||||
btn_state = "disabled";
|
btn_state = "disabled";
|
||||||
btn_type = "success";
|
btn_type = "success";
|
||||||
btn_text = $.i18n('remote_input_sourceactiv_btn');
|
btn_text = $.i18n('remote_input_sourceactiv_btn');
|
||||||
}
|
}
|
||||||
|
|
||||||
if(ip)
|
if (ip)
|
||||||
origin += '<br/><span style="font-size:80%; color:grey;">'+$.i18n('remote_input_ip')+' '+ip+'</span>';
|
origin += '<br/><span style="font-size:80%; color:grey;">' + $.i18n('remote_input_ip') + ' ' + ip + '</span>';
|
||||||
|
|
||||||
if("value" in prios[i])
|
if ("value" in prios[i])
|
||||||
value = prios[i].value.RGB;
|
value = prios[i].value.RGB;
|
||||||
|
|
||||||
switch (compId)
|
switch (compId) {
|
||||||
{
|
|
||||||
case "EFFECT":
|
case "EFFECT":
|
||||||
owner = $.i18n('remote_effects_label_effects')+' '+owner;
|
owner = $.i18n('remote_effects_label_effects') + ' ' + owner;
|
||||||
break;
|
break;
|
||||||
case "COLOR":
|
case "COLOR":
|
||||||
owner = $.i18n('remote_color_label_color')+' '+'<div style="width:18px; height:18px; border-radius:20px; margin-bottom:-4px; border:1px grey solid; background-color: rgb('+value+'); display:inline-block" title="RGB: ('+value+')"></div>';
|
owner = $.i18n('remote_color_label_color') + ' ' + '<div style="width:18px; height:18px; border-radius:20px; margin-bottom:-4px; border:1px grey solid; background-color: rgb(' + value + '); display:inline-block" title="RGB: (' + value + ')"></div>';
|
||||||
break;
|
break;
|
||||||
case "IMAGE":
|
case "IMAGE":
|
||||||
owner = $.i18n('remote_effects_label_picture')+' '+owner;
|
owner = $.i18n('remote_effects_label_picture') + ' ' + owner;
|
||||||
break;
|
break;
|
||||||
case "GRABBER":
|
case "GRABBER":
|
||||||
owner = $.i18n('general_comp_GRABBER')+': ('+owner+')';
|
owner = $.i18n('general_comp_GRABBER') + ': (' + owner + ')';
|
||||||
break;
|
break;
|
||||||
case "V4L":
|
case "V4L":
|
||||||
owner = $.i18n('general_comp_V4L')+': ('+owner+')';
|
owner = $.i18n('general_comp_V4L') + ': (' + owner + ')';
|
||||||
break;
|
break;
|
||||||
case "BOBLIGHTSERVER":
|
case "BOBLIGHTSERVER":
|
||||||
owner = $.i18n('general_comp_BOBLIGHTSERVER');
|
owner = $.i18n('general_comp_BOBLIGHTSERVER');
|
||||||
@ -161,126 +151,112 @@ $(document).ready(function() {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(duration && compId != "GRABBER" && compId != "FLATBUFSERVER" && compId != "PROTOSERVER")
|
if (duration && compId != "GRABBER" && compId != "FLATBUFSERVER" && compId != "PROTOSERVER")
|
||||||
owner += '<br/><span style="font-size:80%; color:grey;">'+$.i18n('remote_input_duration')+' '+duration.toFixed(0)+$.i18n('edt_append_s')+'</span>';
|
owner += '<br/><span style="font-size:80%; color:grey;">' + $.i18n('remote_input_duration') + ' ' + duration.toFixed(0) + $.i18n('edt_append_s') + '</span>';
|
||||||
|
|
||||||
var btn = '<button id="srcBtn'+i+'" type="button" '+btn_state+' class="btn btn-'+btn_type+' btn_input_selection" onclick="requestSetSource('+priority+');">'+btn_text+'</button>';
|
var btn = '<button id="srcBtn' + i + '" type="button" ' + btn_state + ' class="btn btn-' + btn_type + ' btn_input_selection" onclick="requestSetSource(' + priority + ');">' + btn_text + '</button>';
|
||||||
|
|
||||||
if((compId == "EFFECT" || compId == "COLOR" || compId == "IMAGE") && priority < 254)
|
if ((compId == "EFFECT" || compId == "COLOR" || compId == "IMAGE") && priority < 254)
|
||||||
btn += '<button type="button" class="btn btn-sm btn-danger" style="margin-left:10px;" onclick="requestPriorityClear('+priority+');"><i class="fa fa-close"></button>';
|
btn += '<button type="button" class="btn btn-sm btn-danger" style="margin-left:10px;" onclick="requestPriorityClear(' + priority + ');"><i class="fa fa-close"></button>';
|
||||||
|
|
||||||
if(btn_type != 'default')
|
if (btn_type != 'default')
|
||||||
$('.sstbody').append(createTableRow([origin, owner, priority, btn], false, true));
|
$('.sstbody').append(createTableRow([origin, owner, priority, btn], false, true));
|
||||||
}
|
}
|
||||||
var btn_auto_color = (window.serverInfo.priorities_autoselect? "btn-success" : "btn-danger");
|
var btn_auto_color = (window.serverInfo.priorities_autoselect ? "btn-success" : "btn-danger");
|
||||||
var btn_auto_state = (window.serverInfo.priorities_autoselect? "disabled" : "enabled");
|
var btn_auto_state = (window.serverInfo.priorities_autoselect ? "disabled" : "enabled");
|
||||||
var btn_auto_text = (window.serverInfo.priorities_autoselect? $.i18n('general_btn_on') : $.i18n('general_btn_off'));
|
var btn_auto_text = (window.serverInfo.priorities_autoselect ? $.i18n('general_btn_on') : $.i18n('general_btn_off'));
|
||||||
var btn_call_state = (clearAll? "enabled" : "disabled");
|
var btn_call_state = (clearAll ? "enabled" : "disabled");
|
||||||
$('#auto_btn').html('<button id="srcBtn'+i+'" type="button" '+btn_auto_state+' class="btn '+btn_auto_color+'" style="margin-right:5px;display:inline-block;" onclick="requestSetSource(\'auto\');">'+$.i18n('remote_input_label_autoselect')+' ('+btn_auto_text+')</button>');
|
$('#auto_btn').html('<button id="srcBtn' + i + '" type="button" ' + btn_auto_state + ' class="btn ' + btn_auto_color + '" style="margin-right:5px;display:inline-block;" onclick="requestSetSource(\'auto\');">' + $.i18n('remote_input_label_autoselect') + ' (' + btn_auto_text + ')</button>');
|
||||||
$('#auto_btn').append('<button type="button" '+btn_call_state+' class="btn btn-danger" style="display:inline-block;" onclick="requestClearAll();">'+$.i18n('remote_input_clearall')+'</button>');
|
$('#auto_btn').append('<button type="button" ' + btn_call_state + ' class="btn btn-danger" style="display:inline-block;" onclick="requestClearAll();">' + $.i18n('remote_input_clearall') + '</button>');
|
||||||
|
|
||||||
var max_width=100;
|
var max_width = 100;
|
||||||
$('.btn_input_selection').each(function() {
|
$('.btn_input_selection').each(function () {
|
||||||
if ($(this).innerWidth() > max_width)
|
if ($(this).innerWidth() > max_width)
|
||||||
max_width = $(this).innerWidth();
|
max_width = $(this).innerWidth();
|
||||||
});
|
});
|
||||||
$('.btn_input_selection').css("min-width",max_width+"px");
|
$('.btn_input_selection').css("min-width", max_width + "px");
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateLedMapping()
|
function updateLedMapping() {
|
||||||
{
|
|
||||||
var mapping = window.serverInfo.imageToLedMappingType;
|
var mapping = window.serverInfo.imageToLedMappingType;
|
||||||
|
|
||||||
$('#mappingsbutton').html("");
|
$('#mappingsbutton').html("");
|
||||||
for(var ix = 0; ix < mappingList.length; ix++)
|
for (var ix = 0; ix < mappingList.length; ix++) {
|
||||||
{
|
if (mapping == mappingList[ix])
|
||||||
if(mapping == mappingList[ix])
|
|
||||||
var btn_style = 'btn-success';
|
var btn_style = 'btn-success';
|
||||||
else
|
else
|
||||||
var btn_style = 'btn-primary';
|
var btn_style = 'btn-primary';
|
||||||
|
|
||||||
$('#mappingsbutton').append('<button type="button" id="lmBtn_'+mappingList[ix]+'" class="btn '+btn_style+'" style="margin:3px;min-width:200px" onclick="requestMappingType(\''+mappingList[ix]+'\');">'+$.i18n('remote_maptype_label_'+mappingList[ix])+'</button><br/>');
|
$('#mappingsbutton').append('<button type="button" id="lmBtn_' + mappingList[ix] + '" class="btn ' + btn_style + '" style="margin:3px;min-width:200px" onclick="requestMappingType(\'' + mappingList[ix] + '\');">' + $.i18n('remote_maptype_label_' + mappingList[ix]) + '</button><br/>');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function initComponents()
|
function initComponents() {
|
||||||
{
|
|
||||||
var components = window.comps;
|
var components = window.comps;
|
||||||
var hyperionEnabled = true;
|
var hyperionEnabled = true;
|
||||||
components.forEach( function(obj) {
|
components.forEach(function (obj) {
|
||||||
if (obj.name == "ALL")
|
if (obj.name == "ALL") {
|
||||||
{
|
|
||||||
hyperionEnabled = obj.enabled;
|
hyperionEnabled = obj.enabled;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
for (const comp of components)
|
for (const comp of components) {
|
||||||
{
|
if (comp.name === "ALL")
|
||||||
if(comp.name === "ALL")
|
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
const enable_style = (comp.enabled? "checked" : "");
|
const enable_style = (comp.enabled ? "checked" : "");
|
||||||
const comp_btn_id = "comp_btn_"+comp.name;
|
const comp_btn_id = "comp_btn_" + comp.name;
|
||||||
|
|
||||||
if ($("#"+comp_btn_id).length === 0)
|
if ($("#" + comp_btn_id).length === 0) {
|
||||||
{
|
var d = '<span style="display:block;margin:3px">'
|
||||||
var d='<span style="display:block;margin:3px">'
|
+ '<label class="checkbox-inline">'
|
||||||
+'<input id="'+comp_btn_id+'"'+enable_style+' type="checkbox"'
|
+ '<input id = "' + comp_btn_id + '"' + enable_style + ' type = "checkbox"'
|
||||||
+'data-toggle="toggle" data-onstyle="success" data-on="'+$.i18n('general_btn_on')+'" data-off="'+$.i18n('general_btn_off')+'">'
|
+ 'data-toggle="toggle" data-onstyle="success" data-on="' + $.i18n('general_btn_on') + '" data-off="' + $.i18n('general_btn_off') + '">'
|
||||||
+' <label>'+$.i18n('general_comp_'+comp.name)+'</label>'
|
+ $.i18n('general_comp_' + comp.name) + '</label > '
|
||||||
+'</span>';
|
+ '</span>';
|
||||||
|
|
||||||
$('#componentsbutton').append(d);
|
$('#componentsbutton').append(d);
|
||||||
$(`#${comp_btn_id}`).bootstrapToggle();
|
$(`#${comp_btn_id}`).bootstrapToggle();
|
||||||
$(`#${comp_btn_id}`).bootstrapToggle((hyperionEnabled ? "enable" : "disable"));
|
$(`#${comp_btn_id}`).bootstrapToggle((hyperionEnabled ? "enable" : "disable"));
|
||||||
$(`#${comp_btn_id}`).change(e => {
|
$(`#${comp_btn_id}`).change(e => {
|
||||||
requestSetComponentState(e.currentTarget.id.split('_').pop(), e.currentTarget.checked);
|
requestSetComponentState(e.currentTarget.id.split('_').pop(), e.currentTarget.checked);
|
||||||
//console.log(e.currentTarget.checked)
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateComponent( component )
|
function updateComponent(component) {
|
||||||
{
|
if (component.name == "ALL") {
|
||||||
if (component.name == "ALL")
|
|
||||||
{
|
|
||||||
var components = window.comps;
|
var components = window.comps;
|
||||||
var hyperionEnabled = component.enabled;
|
var hyperionEnabled = component.enabled;
|
||||||
for (const comp of components)
|
for (const comp of components) {
|
||||||
{
|
|
||||||
|
|
||||||
if(comp.name === "ALL")
|
if (comp.name === "ALL")
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
const comp_btn_id = "comp_btn_"+comp.name;
|
const comp_btn_id = "comp_btn_" + comp.name;
|
||||||
|
|
||||||
if ( !hyperionEnabled )
|
if (!hyperionEnabled) {
|
||||||
{
|
|
||||||
$(`#${comp_btn_id}`).bootstrapToggle('off');
|
$(`#${comp_btn_id}`).bootstrapToggle('off');
|
||||||
$(`#${comp_btn_id}`).bootstrapToggle("disable");
|
$(`#${comp_btn_id}`).bootstrapToggle("disable");
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
|
||||||
$(`#${comp_btn_id}`).bootstrapToggle("enable");
|
$(`#${comp_btn_id}`).bootstrapToggle("enable");
|
||||||
if ( comp.enabled !== $(`#${comp_btn_id}`).prop("checked") )
|
if (comp.enabled !== $(`#${comp_btn_id}`).prop("checked")) {
|
||||||
{
|
|
||||||
$(`#${comp_btn_id}`).bootstrapToggle().prop('checked', comp.enabled).change();
|
$(`#${comp_btn_id}`).bootstrapToggle().prop('checked', comp.enabled).change();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
const comp_btn_id = "comp_btn_" + component.name;
|
||||||
const comp_btn_id = "comp_btn_"+component.name;
|
|
||||||
|
|
||||||
//console.log ("updateComponent: ", component.name, "Current Checked: ", $(`#${comp_btn_id}`).prop("checked"), "New Checked: ", component.enabled, );
|
//console.log ("updateComponent: ", component.name, "Current Checked: ", $(`#${comp_btn_id}`).prop("checked"), "New Checked: ", component.enabled, );
|
||||||
|
|
||||||
// In case Buttons were disabled before, status may be different to component status
|
// In case Buttons were disabled before, status may be different to component status
|
||||||
if ( component.enabled != $(`#${comp_btn_id}`).prop("checked") )
|
if (component.enabled != $(`#${comp_btn_id}`).prop("checked")) {
|
||||||
{
|
|
||||||
// console.log ("Update status to Checked = ", component.enabled);
|
// console.log ("Update status to Checked = ", component.enabled);
|
||||||
if ( component.enabled )
|
if (component.enabled)
|
||||||
$(`#${comp_btn_id}`).bootstrapToggle("on");
|
$(`#${comp_btn_id}`).bootstrapToggle("on");
|
||||||
else
|
else
|
||||||
$(`#${comp_btn_id}`).bootstrapToggle("off");
|
$(`#${comp_btn_id}`).bootstrapToggle("off");
|
||||||
@ -288,21 +264,19 @@ $(document).ready(function() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateEffectlist()
|
function updateEffectlist() {
|
||||||
{
|
|
||||||
var newEffects = window.serverInfo.effects;
|
var newEffects = window.serverInfo.effects;
|
||||||
if (newEffects.length != oldEffects.length)
|
if (newEffects.length != oldEffects.length) {
|
||||||
{
|
|
||||||
$('#effect_select').html('<option value="__none__"></option>');
|
$('#effect_select').html('<option value="__none__"></option>');
|
||||||
var usrEffArr = [];
|
var usrEffArr = [];
|
||||||
var sysEffArr = [];
|
var sysEffArr = [];
|
||||||
|
|
||||||
for(var i = 0; i < newEffects.length; i++) {
|
for (var i = 0; i < newEffects.length; i++) {
|
||||||
var effectName = newEffects[i].name;
|
var effectName = newEffects[i].name;
|
||||||
if(!/^\:/.test(newEffects[i].file)){
|
if (!/^\:/.test(newEffects[i].file)) {
|
||||||
usrEffArr.push(effectName);
|
usrEffArr.push(effectName);
|
||||||
}
|
}
|
||||||
else{
|
else {
|
||||||
sysEffArr.push(effectName);
|
sysEffArr.push(effectName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -312,74 +286,70 @@ $(document).ready(function() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateVideoMode()
|
function updateVideoMode() {
|
||||||
{
|
var videoModes = ["2D", "3DSBS", "3DTAB"];
|
||||||
var videoModes = ["2D","3DSBS","3DTAB"];
|
|
||||||
var currVideoMode = window.serverInfo.videomode;
|
var currVideoMode = window.serverInfo.videomode;
|
||||||
|
|
||||||
$('#videomodebtns').html("");
|
$('#videomodebtns').html("");
|
||||||
for(var ix = 0; ix < videoModes.length; ix++)
|
for (var ix = 0; ix < videoModes.length; ix++) {
|
||||||
{
|
if (currVideoMode == videoModes[ix])
|
||||||
if(currVideoMode == videoModes[ix])
|
|
||||||
var btn_style = 'btn-success';
|
var btn_style = 'btn-success';
|
||||||
else
|
else
|
||||||
var btn_style = 'btn-primary';
|
var btn_style = 'btn-primary';
|
||||||
$('#videomodebtns').append('<button type="button" id="vModeBtn_'+videoModes[ix]+'" class="btn '+btn_style+'" style="margin:3px;min-width:200px" onclick="requestVideoMode(\''+videoModes[ix]+'\');">'+$.i18n('remote_videoMode_'+videoModes[ix])+'</button><br/>');
|
$('#videomodebtns').append('<button type="button" id="vModeBtn_' + videoModes[ix] + '" class="btn ' + btn_style + '" style="margin:3px;min-width:200px" onclick="requestVideoMode(\'' + videoModes[ix] + '\');">' + $.i18n('remote_videoMode_' + videoModes[ix]) + '</button><br/>');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// colorpicker and effect
|
// colorpicker and effect
|
||||||
if (getStorage('rmcpcolor') != null)
|
if (getStorage('rmcpcolor') != null) {
|
||||||
{
|
|
||||||
cpcolor = getStorage('rmcpcolor');
|
cpcolor = getStorage('rmcpcolor');
|
||||||
rgb = hexToRgb(cpcolor);
|
rgb = hexToRgb(cpcolor);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (getStorage('rmduration') != null)
|
if (getStorage('rmduration') != null) {
|
||||||
{
|
|
||||||
$("#remote_duration").val(getStorage('rmduration'));
|
$("#remote_duration").val(getStorage('rmduration'));
|
||||||
duration = getStorage('rmduration');
|
duration = getStorage('rmduration');
|
||||||
}
|
}
|
||||||
|
|
||||||
createCP('cp2', cpcolor, function(rgbT,hex){
|
createCP('cp2', cpcolor, function (rgbT, hex) {
|
||||||
rgb = rgbT;
|
rgb = rgbT;
|
||||||
sendColor();
|
sendColor();
|
||||||
setStorage('rmcpcolor', hex);
|
setStorage('rmcpcolor', hex);
|
||||||
updateInputSelect();
|
updateInputSelect();
|
||||||
});
|
});
|
||||||
|
|
||||||
$("#reset_color").off().on("click", function(){
|
$("#reset_color").off().on("click", function () {
|
||||||
requestPriorityClear();
|
requestPriorityClear();
|
||||||
lastImgData = "";
|
lastImgData = "";
|
||||||
$("#effect_select").val("__none__");
|
$("#effect_select").val("__none__");
|
||||||
$("#remote_input_img").val("");
|
$("#remote_input_img").val("");
|
||||||
});
|
});
|
||||||
|
|
||||||
$("#remote_duration").off().on("change", function(){
|
$("#remote_duration").off().on("change", function () {
|
||||||
duration = valValue(this.id,this.value,this.min,this.max);
|
duration = valValue(this.id, this.value, this.min, this.max);
|
||||||
setStorage('rmduration', duration);
|
setStorage('rmduration', duration);
|
||||||
});
|
});
|
||||||
|
|
||||||
$("#effect_select").off().on("change", function(event) {
|
$("#effect_select").off().on("change", function (event) {
|
||||||
sendEffect();
|
sendEffect();
|
||||||
});
|
});
|
||||||
|
|
||||||
$("#remote_input_reseff, #remote_input_rescol").off().on("click", function(){
|
$("#remote_input_reseff, #remote_input_rescol").off().on("click", function () {
|
||||||
if(this.id == "remote_input_rescol")
|
if (this.id == "remote_input_rescol")
|
||||||
sendColor();
|
sendColor();
|
||||||
else
|
else
|
||||||
sendEffect();
|
sendEffect();
|
||||||
});
|
});
|
||||||
|
|
||||||
$("#remote_input_repimg").off().on("click", function(){
|
$("#remote_input_repimg").off().on("click", function () {
|
||||||
if(lastImgData != "")
|
if (lastImgData != "")
|
||||||
requestSetImage(lastImgData, duration, lastFileName);
|
requestSetImage(lastImgData, duration, lastFileName);
|
||||||
});
|
});
|
||||||
|
|
||||||
$("#remote_input_img").change(function(){
|
$("#remote_input_img").change(function () {
|
||||||
readImg(this, function(src,fileName){
|
readImg(this, function (src, fileName) {
|
||||||
lastFileName = fileName;
|
lastFileName = fileName;
|
||||||
if(src.includes(","))
|
if (src.includes(","))
|
||||||
lastImgData = src.split(",")[1];
|
lastImgData = src.split(",")[1];
|
||||||
else
|
else
|
||||||
lastImgData = src;
|
lastImgData = src;
|
||||||
@ -397,27 +367,27 @@ $(document).ready(function() {
|
|||||||
|
|
||||||
// interval updates
|
// interval updates
|
||||||
|
|
||||||
$(window.hyperion).on('components-updated', function(e, comp){
|
$(window.hyperion).on('components-updated', function (e, comp) {
|
||||||
//console.log ("components-updated", e, comp);
|
//console.log ("components-updated", e, comp);
|
||||||
updateComponent (comp);
|
updateComponent(comp);
|
||||||
});
|
});
|
||||||
|
|
||||||
$(window.hyperion).on("cmd-priorities-update", function(event){
|
$(window.hyperion).on("cmd-priorities-update", function (event) {
|
||||||
window.serverInfo.priorities = event.response.data.priorities;
|
window.serverInfo.priorities = event.response.data.priorities;
|
||||||
window.serverInfo.priorities_autoselect = event.response.data.priorities_autoselect;
|
window.serverInfo.priorities_autoselect = event.response.data.priorities_autoselect;
|
||||||
updateInputSelect();
|
updateInputSelect();
|
||||||
});
|
});
|
||||||
$(window.hyperion).on("cmd-imageToLedMapping-update", function(event){
|
$(window.hyperion).on("cmd-imageToLedMapping-update", function (event) {
|
||||||
window.serverInfo.imageToLedMappingType = event.response.data.imageToLedMappingType;
|
window.serverInfo.imageToLedMappingType = event.response.data.imageToLedMappingType;
|
||||||
updateLedMapping();
|
updateLedMapping();
|
||||||
});
|
});
|
||||||
|
|
||||||
$(window.hyperion).on("cmd-videomode-update", function(event){
|
$(window.hyperion).on("cmd-videomode-update", function (event) {
|
||||||
window.serverInfo.videomode = event.response.data.videomode;
|
window.serverInfo.videomode = event.response.data.videomode;
|
||||||
updateVideoMode();
|
updateVideoMode();
|
||||||
});
|
});
|
||||||
|
|
||||||
$(window.hyperion).on("cmd-effects-update", function(event){
|
$(window.hyperion).on("cmd-effects-update", function (event) {
|
||||||
window.serverInfo.effects = event.response.data.effects;
|
window.serverInfo.effects = event.response.data.effects;
|
||||||
updateEffectlist();
|
updateEffectlist();
|
||||||
});
|
});
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
var conf_editor = null;
|
var conf_editor = null;
|
||||||
|
|
||||||
$('#conf_cont').append(createOptPanel('fa-wrench', $.i18n("edt_conf_webc_heading_title"), 'editor_container', 'btn_submit'));
|
$('#conf_cont').append(createOptPanel('fa-wrench', $.i18n("edt_conf_webc_heading_title"), 'editor_container', 'btn_submit', 'panel-system'));
|
||||||
if(window.showOptHelp)
|
if(window.showOptHelp)
|
||||||
{
|
{
|
||||||
$('#conf_cont').append(createHelpTable(window.schema.webConfig.properties, $.i18n("edt_conf_webc_heading_title")));
|
$('#conf_cont').append(createHelpTable(window.schema.webConfig.properties, $.i18n("edt_conf_webc_heading_title")));
|
||||||
|
607
assets/webconfig/js/lib/jquery.i18n/CLDRPluralRuleParser.js
Normal file
@ -0,0 +1,607 @@
|
|||||||
|
/**
|
||||||
|
* cldrpluralparser.js
|
||||||
|
* A parser engine for CLDR plural rules.
|
||||||
|
*
|
||||||
|
* Copyright 2012-2014 Santhosh Thottingal and other contributors
|
||||||
|
* Released under the MIT license
|
||||||
|
* http://opensource.org/licenses/MIT
|
||||||
|
*
|
||||||
|
* @source https://github.com/santhoshtr/CLDRPluralRuleParser
|
||||||
|
* @author Santhosh Thottingal <santhosh.thottingal@gmail.com>
|
||||||
|
* @author Timo Tijhof
|
||||||
|
* @author Amir Aharoni
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Evaluates a plural rule in CLDR syntax for a number
|
||||||
|
* @param {string} rule
|
||||||
|
* @param {integer} number
|
||||||
|
* @return {boolean} true if evaluation passed, false if evaluation failed.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// UMD returnExports https://github.com/umdjs/umd/blob/master/returnExports.js
|
||||||
|
(function(root, factory) {
|
||||||
|
if (typeof define === 'function' && define.amd) {
|
||||||
|
// AMD. Register as an anonymous module.
|
||||||
|
define(factory);
|
||||||
|
} else if (typeof exports === 'object') {
|
||||||
|
// Node. Does not work with strict CommonJS, but
|
||||||
|
// only CommonJS-like environments that support module.exports,
|
||||||
|
// like Node.
|
||||||
|
module.exports = factory();
|
||||||
|
} else {
|
||||||
|
// Browser globals (root is window)
|
||||||
|
root.pluralRuleParser = factory();
|
||||||
|
}
|
||||||
|
}(this, function() {
|
||||||
|
|
||||||
|
function pluralRuleParser(rule, number) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
/*
|
||||||
|
Syntax: see http://unicode.org/reports/tr35/#Language_Plural_Rules
|
||||||
|
-----------------------------------------------------------------
|
||||||
|
condition = and_condition ('or' and_condition)*
|
||||||
|
('@integer' samples)?
|
||||||
|
('@decimal' samples)?
|
||||||
|
and_condition = relation ('and' relation)*
|
||||||
|
relation = is_relation | in_relation | within_relation
|
||||||
|
is_relation = expr 'is' ('not')? value
|
||||||
|
in_relation = expr (('not')? 'in' | '=' | '!=') range_list
|
||||||
|
within_relation = expr ('not')? 'within' range_list
|
||||||
|
expr = operand (('mod' | '%') value)?
|
||||||
|
operand = 'n' | 'i' | 'f' | 't' | 'v' | 'w'
|
||||||
|
range_list = (range | value) (',' range_list)*
|
||||||
|
value = digit+
|
||||||
|
digit = 0|1|2|3|4|5|6|7|8|9
|
||||||
|
range = value'..'value
|
||||||
|
samples = sampleRange (',' sampleRange)* (',' ('…'|'...'))?
|
||||||
|
sampleRange = decimalValue '~' decimalValue
|
||||||
|
decimalValue = value ('.' value)?
|
||||||
|
*/
|
||||||
|
|
||||||
|
// We don't evaluate the samples section of the rule. Ignore it.
|
||||||
|
rule = rule.split('@')[0].replace(/^\s*/, '').replace(/\s*$/, '');
|
||||||
|
|
||||||
|
if (!rule.length) {
|
||||||
|
// Empty rule or 'other' rule.
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Indicates the current position in the rule as we parse through it.
|
||||||
|
// Shared among all parsing functions below.
|
||||||
|
var pos = 0,
|
||||||
|
operand,
|
||||||
|
expression,
|
||||||
|
relation,
|
||||||
|
result,
|
||||||
|
whitespace = makeRegexParser(/^\s+/),
|
||||||
|
value = makeRegexParser(/^\d+/),
|
||||||
|
_n_ = makeStringParser('n'),
|
||||||
|
_i_ = makeStringParser('i'),
|
||||||
|
_f_ = makeStringParser('f'),
|
||||||
|
_t_ = makeStringParser('t'),
|
||||||
|
_v_ = makeStringParser('v'),
|
||||||
|
_w_ = makeStringParser('w'),
|
||||||
|
_is_ = makeStringParser('is'),
|
||||||
|
_isnot_ = makeStringParser('is not'),
|
||||||
|
_isnot_sign_ = makeStringParser('!='),
|
||||||
|
_equal_ = makeStringParser('='),
|
||||||
|
_mod_ = makeStringParser('mod'),
|
||||||
|
_percent_ = makeStringParser('%'),
|
||||||
|
_not_ = makeStringParser('not'),
|
||||||
|
_in_ = makeStringParser('in'),
|
||||||
|
_within_ = makeStringParser('within'),
|
||||||
|
_range_ = makeStringParser('..'),
|
||||||
|
_comma_ = makeStringParser(','),
|
||||||
|
_or_ = makeStringParser('or'),
|
||||||
|
_and_ = makeStringParser('and');
|
||||||
|
|
||||||
|
function debug() {
|
||||||
|
// console.log.apply(console, arguments);
|
||||||
|
}
|
||||||
|
|
||||||
|
debug('pluralRuleParser', rule, number);
|
||||||
|
|
||||||
|
// Try parsers until one works, if none work return null
|
||||||
|
function choice(parserSyntax) {
|
||||||
|
return function() {
|
||||||
|
var i, result;
|
||||||
|
|
||||||
|
for (i = 0; i < parserSyntax.length; i++) {
|
||||||
|
result = parserSyntax[i]();
|
||||||
|
|
||||||
|
if (result !== null) {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// Try several parserSyntax-es in a row.
|
||||||
|
// All must succeed; otherwise, return null.
|
||||||
|
// This is the only eager one.
|
||||||
|
function sequence(parserSyntax) {
|
||||||
|
var i, parserRes,
|
||||||
|
originalPos = pos,
|
||||||
|
result = [];
|
||||||
|
|
||||||
|
for (i = 0; i < parserSyntax.length; i++) {
|
||||||
|
parserRes = parserSyntax[i]();
|
||||||
|
|
||||||
|
if (parserRes === null) {
|
||||||
|
pos = originalPos;
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
result.push(parserRes);
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Run the same parser over and over until it fails.
|
||||||
|
// Must succeed a minimum of n times; otherwise, return null.
|
||||||
|
function nOrMore(n, p) {
|
||||||
|
return function() {
|
||||||
|
var originalPos = pos,
|
||||||
|
result = [],
|
||||||
|
parsed = p();
|
||||||
|
|
||||||
|
while (parsed !== null) {
|
||||||
|
result.push(parsed);
|
||||||
|
parsed = p();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (result.length < n) {
|
||||||
|
pos = originalPos;
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// Helpers - just make parserSyntax out of simpler JS builtin types
|
||||||
|
function makeStringParser(s) {
|
||||||
|
var len = s.length;
|
||||||
|
|
||||||
|
return function() {
|
||||||
|
var result = null;
|
||||||
|
|
||||||
|
if (rule.substr(pos, len) === s) {
|
||||||
|
result = s;
|
||||||
|
pos += len;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function makeRegexParser(regex) {
|
||||||
|
return function() {
|
||||||
|
var matches = rule.substr(pos).match(regex);
|
||||||
|
|
||||||
|
if (matches === null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
pos += matches[0].length;
|
||||||
|
|
||||||
|
return matches[0];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Integer digits of n.
|
||||||
|
*/
|
||||||
|
function i() {
|
||||||
|
var result = _i_();
|
||||||
|
|
||||||
|
if (result === null) {
|
||||||
|
debug(' -- failed i', parseInt(number, 10));
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = parseInt(number, 10);
|
||||||
|
debug(' -- passed i ', result);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Absolute value of the source number (integer and decimals).
|
||||||
|
*/
|
||||||
|
function n() {
|
||||||
|
var result = _n_();
|
||||||
|
|
||||||
|
if (result === null) {
|
||||||
|
debug(' -- failed n ', number);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = parseFloat(number, 10);
|
||||||
|
debug(' -- passed n ', result);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Visible fractional digits in n, with trailing zeros.
|
||||||
|
*/
|
||||||
|
function f() {
|
||||||
|
var result = _f_();
|
||||||
|
|
||||||
|
if (result === null) {
|
||||||
|
debug(' -- failed f ', number);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = (number + '.').split('.')[1] || 0;
|
||||||
|
debug(' -- passed f ', result);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Visible fractional digits in n, without trailing zeros.
|
||||||
|
*/
|
||||||
|
function t() {
|
||||||
|
var result = _t_();
|
||||||
|
|
||||||
|
if (result === null) {
|
||||||
|
debug(' -- failed t ', number);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = (number + '.').split('.')[1].replace(/0$/, '') || 0;
|
||||||
|
debug(' -- passed t ', result);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Number of visible fraction digits in n, with trailing zeros.
|
||||||
|
*/
|
||||||
|
function v() {
|
||||||
|
var result = _v_();
|
||||||
|
|
||||||
|
if (result === null) {
|
||||||
|
debug(' -- failed v ', number);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = (number + '.').split('.')[1].length || 0;
|
||||||
|
debug(' -- passed v ', result);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Number of visible fraction digits in n, without trailing zeros.
|
||||||
|
*/
|
||||||
|
function w() {
|
||||||
|
var result = _w_();
|
||||||
|
|
||||||
|
if (result === null) {
|
||||||
|
debug(' -- failed w ', number);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = (number + '.').split('.')[1].replace(/0$/, '').length || 0;
|
||||||
|
debug(' -- passed w ', result);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// operand = 'n' | 'i' | 'f' | 't' | 'v' | 'w'
|
||||||
|
operand = choice([n, i, f, t, v, w]);
|
||||||
|
|
||||||
|
// expr = operand (('mod' | '%') value)?
|
||||||
|
expression = choice([mod, operand]);
|
||||||
|
|
||||||
|
function mod() {
|
||||||
|
var result = sequence(
|
||||||
|
[operand, whitespace, choice([_mod_, _percent_]), whitespace, value]
|
||||||
|
);
|
||||||
|
|
||||||
|
if (result === null) {
|
||||||
|
debug(' -- failed mod');
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
debug(' -- passed ' + parseInt(result[0], 10) + ' ' + result[2] + ' ' + parseInt(result[4], 10));
|
||||||
|
|
||||||
|
return parseFloat(result[0]) % parseInt(result[4], 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
function not() {
|
||||||
|
var result = sequence([whitespace, _not_]);
|
||||||
|
|
||||||
|
if (result === null) {
|
||||||
|
debug(' -- failed not');
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
// is_relation = expr 'is' ('not')? value
|
||||||
|
function is() {
|
||||||
|
var result = sequence([expression, whitespace, choice([_is_]), whitespace, value]);
|
||||||
|
|
||||||
|
if (result !== null) {
|
||||||
|
debug(' -- passed is : ' + result[0] + ' == ' + parseInt(result[4], 10));
|
||||||
|
|
||||||
|
return result[0] === parseInt(result[4], 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
debug(' -- failed is');
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// is_relation = expr 'is' ('not')? value
|
||||||
|
function isnot() {
|
||||||
|
var result = sequence(
|
||||||
|
[expression, whitespace, choice([_isnot_, _isnot_sign_]), whitespace, value]
|
||||||
|
);
|
||||||
|
|
||||||
|
if (result !== null) {
|
||||||
|
debug(' -- passed isnot: ' + result[0] + ' != ' + parseInt(result[4], 10));
|
||||||
|
|
||||||
|
return result[0] !== parseInt(result[4], 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
debug(' -- failed isnot');
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function not_in() {
|
||||||
|
var i, range_list,
|
||||||
|
result = sequence([expression, whitespace, _isnot_sign_, whitespace, rangeList]);
|
||||||
|
|
||||||
|
if (result !== null) {
|
||||||
|
debug(' -- passed not_in: ' + result[0] + ' != ' + result[4]);
|
||||||
|
range_list = result[4];
|
||||||
|
|
||||||
|
for (i = 0; i < range_list.length; i++) {
|
||||||
|
if (parseInt(range_list[i], 10) === parseInt(result[0], 10)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
debug(' -- failed not_in');
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// range_list = (range | value) (',' range_list)*
|
||||||
|
function rangeList() {
|
||||||
|
var result = sequence([choice([range, value]), nOrMore(0, rangeTail)]),
|
||||||
|
resultList = [];
|
||||||
|
|
||||||
|
if (result !== null) {
|
||||||
|
resultList = resultList.concat(result[0]);
|
||||||
|
|
||||||
|
if (result[1][0]) {
|
||||||
|
resultList = resultList.concat(result[1][0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return resultList;
|
||||||
|
}
|
||||||
|
|
||||||
|
debug(' -- failed rangeList');
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function rangeTail() {
|
||||||
|
// ',' range_list
|
||||||
|
var result = sequence([_comma_, rangeList]);
|
||||||
|
|
||||||
|
if (result !== null) {
|
||||||
|
return result[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
debug(' -- failed rangeTail');
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// range = value'..'value
|
||||||
|
function range() {
|
||||||
|
var i, array, left, right,
|
||||||
|
result = sequence([value, _range_, value]);
|
||||||
|
|
||||||
|
if (result !== null) {
|
||||||
|
debug(' -- passed range');
|
||||||
|
|
||||||
|
array = [];
|
||||||
|
left = parseInt(result[0], 10);
|
||||||
|
right = parseInt(result[2], 10);
|
||||||
|
|
||||||
|
for (i = left; i <= right; i++) {
|
||||||
|
array.push(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
return array;
|
||||||
|
}
|
||||||
|
|
||||||
|
debug(' -- failed range');
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _in() {
|
||||||
|
var result, range_list, i;
|
||||||
|
|
||||||
|
// in_relation = expr ('not')? 'in' range_list
|
||||||
|
result = sequence(
|
||||||
|
[expression, nOrMore(0, not), whitespace, choice([_in_, _equal_]), whitespace, rangeList]
|
||||||
|
);
|
||||||
|
|
||||||
|
if (result !== null) {
|
||||||
|
debug(' -- passed _in:' + result);
|
||||||
|
|
||||||
|
range_list = result[5];
|
||||||
|
|
||||||
|
for (i = 0; i < range_list.length; i++) {
|
||||||
|
if (parseInt(range_list[i], 10) === parseFloat(result[0])) {
|
||||||
|
return (result[1][0] !== 'not');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return (result[1][0] === 'not');
|
||||||
|
}
|
||||||
|
|
||||||
|
debug(' -- failed _in ');
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The difference between "in" and "within" is that
|
||||||
|
* "in" only includes integers in the specified range,
|
||||||
|
* while "within" includes all values.
|
||||||
|
*/
|
||||||
|
function within() {
|
||||||
|
var range_list, result;
|
||||||
|
|
||||||
|
// within_relation = expr ('not')? 'within' range_list
|
||||||
|
result = sequence(
|
||||||
|
[expression, nOrMore(0, not), whitespace, _within_, whitespace, rangeList]
|
||||||
|
);
|
||||||
|
|
||||||
|
if (result !== null) {
|
||||||
|
debug(' -- passed within');
|
||||||
|
|
||||||
|
range_list = result[5];
|
||||||
|
|
||||||
|
if ((result[0] >= parseInt(range_list[0], 10)) &&
|
||||||
|
(result[0] < parseInt(range_list[range_list.length - 1], 10))) {
|
||||||
|
|
||||||
|
return (result[1][0] !== 'not');
|
||||||
|
}
|
||||||
|
|
||||||
|
return (result[1][0] === 'not');
|
||||||
|
}
|
||||||
|
|
||||||
|
debug(' -- failed within ');
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// relation = is_relation | in_relation | within_relation
|
||||||
|
relation = choice([is, not_in, isnot, _in, within]);
|
||||||
|
|
||||||
|
// and_condition = relation ('and' relation)*
|
||||||
|
function and() {
|
||||||
|
var i,
|
||||||
|
result = sequence([relation, nOrMore(0, andTail)]);
|
||||||
|
|
||||||
|
if (result) {
|
||||||
|
if (!result[0]) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < result[1].length; i++) {
|
||||||
|
if (!result[1][i]) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
debug(' -- failed and');
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ('and' relation)*
|
||||||
|
function andTail() {
|
||||||
|
var result = sequence([whitespace, _and_, whitespace, relation]);
|
||||||
|
|
||||||
|
if (result !== null) {
|
||||||
|
debug(' -- passed andTail' + result);
|
||||||
|
|
||||||
|
return result[3];
|
||||||
|
}
|
||||||
|
|
||||||
|
debug(' -- failed andTail');
|
||||||
|
|
||||||
|
return null;
|
||||||
|
|
||||||
|
}
|
||||||
|
// ('or' and_condition)*
|
||||||
|
function orTail() {
|
||||||
|
var result = sequence([whitespace, _or_, whitespace, and]);
|
||||||
|
|
||||||
|
if (result !== null) {
|
||||||
|
debug(' -- passed orTail: ' + result[3]);
|
||||||
|
|
||||||
|
return result[3];
|
||||||
|
}
|
||||||
|
|
||||||
|
debug(' -- failed orTail');
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// condition = and_condition ('or' and_condition)*
|
||||||
|
function condition() {
|
||||||
|
var i,
|
||||||
|
result = sequence([and, nOrMore(0, orTail)]);
|
||||||
|
|
||||||
|
if (result) {
|
||||||
|
for (i = 0; i < result[1].length; i++) {
|
||||||
|
if (result[1][i]) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = condition();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* For success, the pos must have gotten to the end of the rule
|
||||||
|
* and returned a non-null.
|
||||||
|
* n.b. This is part of language infrastructure,
|
||||||
|
* so we do not throw an internationalizable message.
|
||||||
|
*/
|
||||||
|
if (result === null) {
|
||||||
|
throw new Error('Parse error at position ' + pos.toString() + ' for rule: ' + rule);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pos !== rule.length) {
|
||||||
|
debug('Warning: Rule not parsed completely. Parser stopped at ' + rule.substr(0, pos) + ' for rule: ' + rule);
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
return pluralRuleParser;
|
||||||
|
|
||||||
|
}));
|
@ -1,4 +1,4 @@
|
|||||||
/**
|
/*!
|
||||||
* jQuery Internationalization library
|
* jQuery Internationalization library
|
||||||
*
|
*
|
||||||
* Copyright (C) 2011-2013 Santhosh Thottingal, Neil Kandalgaonkar
|
* Copyright (C) 2011-2013 Santhosh Thottingal, Neil Kandalgaonkar
|
||||||
@ -17,7 +17,7 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var MessageParserEmitter = function () {
|
var MessageParserEmitter = function () {
|
||||||
this.language = $.i18n.languages[String.locale] || $.i18n.languages['default'];
|
this.language = $.i18n.languages[ String.locale ] || $.i18n.languages[ 'default' ];
|
||||||
};
|
};
|
||||||
|
|
||||||
MessageParserEmitter.prototype = {
|
MessageParserEmitter.prototype = {
|
||||||
@ -38,36 +38,36 @@
|
|||||||
messageParserEmitter = this;
|
messageParserEmitter = this;
|
||||||
|
|
||||||
switch ( typeof node ) {
|
switch ( typeof node ) {
|
||||||
case 'string':
|
case 'string':
|
||||||
case 'number':
|
case 'number':
|
||||||
ret = node;
|
ret = node;
|
||||||
break;
|
break;
|
||||||
case 'object':
|
case 'object':
|
||||||
// node is an array of nodes
|
// node is an array of nodes
|
||||||
subnodes = $.map( node.slice( 1 ), function ( n ) {
|
subnodes = $.map( node.slice( 1 ), function ( n ) {
|
||||||
return messageParserEmitter.emit( n, replacements );
|
return messageParserEmitter.emit( n, replacements );
|
||||||
} );
|
} );
|
||||||
|
|
||||||
operation = node[0].toLowerCase();
|
operation = node[ 0 ].toLowerCase();
|
||||||
|
|
||||||
if ( typeof messageParserEmitter[operation] === 'function' ) {
|
if ( typeof messageParserEmitter[ operation ] === 'function' ) {
|
||||||
ret = messageParserEmitter[operation]( subnodes, replacements );
|
ret = messageParserEmitter[ operation ]( subnodes, replacements );
|
||||||
} else {
|
} else {
|
||||||
throw new Error( 'unknown operation "' + operation + '"' );
|
throw new Error( 'unknown operation "' + operation + '"' );
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case 'undefined':
|
case 'undefined':
|
||||||
// Parsing the empty string (as an entire expression, or as a
|
// Parsing the empty string (as an entire expression, or as a
|
||||||
// paramExpression in a template) results in undefined
|
// paramExpression in a template) results in undefined
|
||||||
// Perhaps a more clever parser can detect this, and return the
|
// Perhaps a more clever parser can detect this, and return the
|
||||||
// empty string? Or is that useful information?
|
// empty string? Or is that useful information?
|
||||||
// The logical thing is probably to return the empty string here
|
// The logical thing is probably to return the empty string here
|
||||||
// when we encounter undefined.
|
// when we encounter undefined.
|
||||||
ret = '';
|
ret = '';
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw new Error( 'unexpected type in AST: ' + typeof node );
|
throw new Error( 'unexpected type in AST: ' + typeof node );
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
@ -80,7 +80,7 @@
|
|||||||
* in our children and pass them upwards
|
* in our children and pass them upwards
|
||||||
*
|
*
|
||||||
* @param {Array} nodes Mixed, some single nodes, some arrays of nodes.
|
* @param {Array} nodes Mixed, some single nodes, some arrays of nodes.
|
||||||
* @return String
|
* @return {string}
|
||||||
*/
|
*/
|
||||||
concat: function ( nodes ) {
|
concat: function ( nodes ) {
|
||||||
var result = '';
|
var result = '';
|
||||||
@ -106,11 +106,11 @@
|
|||||||
* @return {string} replacement
|
* @return {string} replacement
|
||||||
*/
|
*/
|
||||||
replace: function ( nodes, replacements ) {
|
replace: function ( nodes, replacements ) {
|
||||||
var index = parseInt( nodes[0], 10 );
|
var index = parseInt( nodes[ 0 ], 10 );
|
||||||
|
|
||||||
if ( index < replacements.length ) {
|
if ( index < replacements.length ) {
|
||||||
// replacement is not a string, don't touch!
|
// replacement is not a string, don't touch!
|
||||||
return replacements[index];
|
return replacements[ index ];
|
||||||
} else {
|
} else {
|
||||||
// index not found, fallback to displaying variable
|
// index not found, fallback to displaying variable
|
||||||
return '$' + ( index + 1 );
|
return '$' + ( index + 1 );
|
||||||
@ -124,11 +124,11 @@
|
|||||||
* convertNumber.
|
* convertNumber.
|
||||||
*
|
*
|
||||||
* @param {Array} nodes List [ {String|Number}, {String}, {String} ... ]
|
* @param {Array} nodes List [ {String|Number}, {String}, {String} ... ]
|
||||||
* @return {String} selected pluralized form according to current
|
* @return {string} selected pluralized form according to current
|
||||||
* language.
|
* language.
|
||||||
*/
|
*/
|
||||||
plural: function ( nodes ) {
|
plural: function ( nodes ) {
|
||||||
var count = parseFloat( this.language.convertNumber( nodes[0], 10 ) ),
|
var count = parseFloat( this.language.convertNumber( nodes[ 0 ], 10 ) ),
|
||||||
forms = nodes.slice( 1 );
|
forms = nodes.slice( 1 );
|
||||||
|
|
||||||
return forms.length ? this.language.convertPlural( count, forms ) : '';
|
return forms.length ? this.language.convertPlural( count, forms ) : '';
|
||||||
@ -139,10 +139,10 @@
|
|||||||
* {{gender:gender|masculine|feminine|neutral}}.
|
* {{gender:gender|masculine|feminine|neutral}}.
|
||||||
*
|
*
|
||||||
* @param {Array} nodes List [ {String}, {String}, {String} , {String} ]
|
* @param {Array} nodes List [ {String}, {String}, {String} , {String} ]
|
||||||
* @return {String} selected gender form according to current language
|
* @return {string} selected gender form according to current language
|
||||||
*/
|
*/
|
||||||
gender: function ( nodes ) {
|
gender: function ( nodes ) {
|
||||||
var gender = nodes[0],
|
var gender = nodes[ 0 ],
|
||||||
forms = nodes.slice( 1 );
|
forms = nodes.slice( 1 );
|
||||||
|
|
||||||
return this.language.gender( gender, forms );
|
return this.language.gender( gender, forms );
|
||||||
@ -153,12 +153,12 @@
|
|||||||
* putting {{grammar:form|word}} in a message
|
* putting {{grammar:form|word}} in a message
|
||||||
*
|
*
|
||||||
* @param {Array} nodes List [{Grammar case eg: genitive}, {String word}]
|
* @param {Array} nodes List [{Grammar case eg: genitive}, {String word}]
|
||||||
* @return {String} selected grammatical form according to current
|
* @return {string} selected grammatical form according to current
|
||||||
* language.
|
* language.
|
||||||
*/
|
*/
|
||||||
grammar: function ( nodes ) {
|
grammar: function ( nodes ) {
|
||||||
var form = nodes[0],
|
var form = nodes[ 0 ],
|
||||||
word = nodes[1];
|
word = nodes[ 1 ];
|
||||||
|
|
||||||
return word && form && this.language.convertGrammar( word, form );
|
return word && form && this.language.convertGrammar( word, form );
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
/**
|
/*!
|
||||||
* jQuery Internationalization library
|
* jQuery Internationalization library
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 Santhosh Thottingal
|
* Copyright (C) 2012 Santhosh Thottingal
|
||||||
@ -11,7 +11,7 @@
|
|||||||
* @licence GNU General Public Licence 2.0 or later
|
* @licence GNU General Public Licence 2.0 or later
|
||||||
* @licence MIT License
|
* @licence MIT License
|
||||||
*/
|
*/
|
||||||
( function ( $, undefined ) {
|
( function ( $ ) {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
$.i18n = $.i18n || {};
|
$.i18n = $.i18n || {};
|
||||||
@ -45,7 +45,6 @@
|
|||||||
'crh-cyrl': [ 'ru' ],
|
'crh-cyrl': [ 'ru' ],
|
||||||
csb: [ 'pl' ],
|
csb: [ 'pl' ],
|
||||||
cv: [ 'ru' ],
|
cv: [ 'ru' ],
|
||||||
'de-DE': [ 'de' ],
|
|
||||||
'de-at': [ 'de' ],
|
'de-at': [ 'de' ],
|
||||||
'de-ch': [ 'de' ],
|
'de-ch': [ 'de' ],
|
||||||
'de-formal': [ 'de' ],
|
'de-formal': [ 'de' ],
|
@ -1,4 +1,4 @@
|
|||||||
/**
|
/*!
|
||||||
* jQuery Internationalization library
|
* jQuery Internationalization library
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 Santhosh Thottingal
|
* Copyright (C) 2012 Santhosh Thottingal
|
||||||
@ -16,7 +16,7 @@
|
|||||||
( function ( $ ) {
|
( function ( $ ) {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var nav, I18N,
|
var I18N,
|
||||||
slice = Array.prototype.slice;
|
slice = Array.prototype.slice;
|
||||||
/**
|
/**
|
||||||
* @constructor
|
* @constructor
|
||||||
@ -30,61 +30,52 @@
|
|||||||
this.locale = this.options.locale;
|
this.locale = this.options.locale;
|
||||||
this.messageStore = this.options.messageStore;
|
this.messageStore = this.options.messageStore;
|
||||||
this.languages = {};
|
this.languages = {};
|
||||||
|
|
||||||
this.init();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
I18N.prototype = {
|
I18N.prototype = {
|
||||||
/**
|
/**
|
||||||
* Initialize by loading locales and setting up
|
* Localize a given messageKey to a locale.
|
||||||
* String.prototype.toLocaleString and String.locale.
|
* @param {string} messageKey
|
||||||
|
* @return {string} Localized message
|
||||||
*/
|
*/
|
||||||
init: function () {
|
localize: function ( messageKey ) {
|
||||||
var i18n = this;
|
var localeParts, localePartIndex, locale, fallbackIndex,
|
||||||
|
tryingLocale, message;
|
||||||
|
|
||||||
// Set locale of String environment
|
locale = this.locale;
|
||||||
String.locale = i18n.locale;
|
fallbackIndex = 0;
|
||||||
|
|
||||||
// Override String.localeString method
|
while ( locale ) {
|
||||||
String.prototype.toLocaleString = function () {
|
// Iterate through locales starting at most-specific until
|
||||||
var localeParts, localePartIndex, value, locale, fallbackIndex,
|
// localization is found. As in fi-Latn-FI, fi-Latn and fi.
|
||||||
tryingLocale, message;
|
localeParts = locale.split( '-' );
|
||||||
|
localePartIndex = localeParts.length;
|
||||||
|
|
||||||
value = this.valueOf();
|
do {
|
||||||
locale = i18n.locale;
|
tryingLocale = localeParts.slice( 0, localePartIndex ).join( '-' );
|
||||||
fallbackIndex = 0;
|
message = this.messageStore.get( tryingLocale, messageKey );
|
||||||
|
|
||||||
while ( locale ) {
|
if ( message ) {
|
||||||
// Iterate through locales starting at most-specific until
|
return message;
|
||||||
// localization is found. As in fi-Latn-FI, fi-Latn and fi.
|
|
||||||
localeParts = locale.split( '-' );
|
|
||||||
localePartIndex = localeParts.length;
|
|
||||||
|
|
||||||
do {
|
|
||||||
tryingLocale = localeParts.slice( 0, localePartIndex ).join( '-' );
|
|
||||||
message = i18n.messageStore.get( tryingLocale, value );
|
|
||||||
|
|
||||||
if ( message ) {
|
|
||||||
return message;
|
|
||||||
}
|
|
||||||
|
|
||||||
localePartIndex--;
|
|
||||||
} while ( localePartIndex );
|
|
||||||
|
|
||||||
if ( locale === 'en' ) {
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
locale = ( $.i18n.fallbacks[i18n.locale] && $.i18n.fallbacks[i18n.locale][fallbackIndex] ) ||
|
localePartIndex--;
|
||||||
i18n.options.fallbackLocale;
|
} while ( localePartIndex );
|
||||||
$.i18n.log( 'Trying fallback locale for ' + i18n.locale + ': ' + locale );
|
|
||||||
|
|
||||||
fallbackIndex++;
|
if ( locale === this.options.fallbackLocale ) {
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// key not found
|
locale = ( $.i18n.fallbacks[ this.locale ] &&
|
||||||
return '';
|
$.i18n.fallbacks[ this.locale ][ fallbackIndex ] ) ||
|
||||||
};
|
this.options.fallbackLocale;
|
||||||
|
$.i18n.log( 'Trying fallback locale for ' + this.locale + ': ' + locale + ' (' + messageKey + ')' );
|
||||||
|
|
||||||
|
fallbackIndex++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// key not found
|
||||||
|
return '';
|
||||||
},
|
},
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -132,26 +123,28 @@
|
|||||||
* If the data argument is null/undefined/false,
|
* If the data argument is null/undefined/false,
|
||||||
* all cached messages for the i18n instance will get reset.
|
* all cached messages for the i18n instance will get reset.
|
||||||
*
|
*
|
||||||
* @param {String|Object} source
|
* @param {string|Object} source
|
||||||
* @param {String} locale Language tag
|
* @param {string} locale Language tag
|
||||||
* @returns {jQuery.Promise}
|
* @return {jQuery.Promise}
|
||||||
*/
|
*/
|
||||||
load: function ( source, locale ) {
|
load: function ( source, locale ) {
|
||||||
var fallbackLocales, locIndex, fallbackLocale, sourceMap = {};
|
var fallbackLocales, locIndex, fallbackLocale, sourceMap = {};
|
||||||
if ( !source && !locale ) {
|
if ( !source && !locale ) {
|
||||||
source = 'i18n';
|
source = 'i18n/' + $.i18n().locale + '.json';
|
||||||
locale = $.i18n().locale;
|
locale = $.i18n().locale;
|
||||||
}
|
}
|
||||||
if ( typeof source === 'string' &&
|
if ( typeof source === 'string' &&
|
||||||
source.split( '.' ).pop() !== 'json'
|
// source extension should be json, but can have query params after that.
|
||||||
|
source.split( '?' )[ 0 ].split( '.' ).pop() !== 'json'
|
||||||
) {
|
) {
|
||||||
// Load specified locale then check for fallbacks when directory is specified in load()
|
// Load specified locale then check for fallbacks when directory is
|
||||||
sourceMap[locale] = source + '/' + locale + '.json';
|
// specified in load()
|
||||||
fallbackLocales = ( $.i18n.fallbacks[locale] || [] )
|
sourceMap[ locale ] = source + '/' + locale + '.json';
|
||||||
|
fallbackLocales = ( $.i18n.fallbacks[ locale ] || [] )
|
||||||
.concat( this.options.fallbackLocale );
|
.concat( this.options.fallbackLocale );
|
||||||
for ( locIndex in fallbackLocales ) {
|
for ( locIndex = 0; locIndex < fallbackLocales.length; locIndex++ ) {
|
||||||
fallbackLocale = fallbackLocales[locIndex];
|
fallbackLocale = fallbackLocales[ locIndex ];
|
||||||
sourceMap[fallbackLocale] = source + '/' + fallbackLocale + '.json';
|
sourceMap[ fallbackLocale ] = source + '/' + fallbackLocale + '.json';
|
||||||
}
|
}
|
||||||
return this.load( sourceMap );
|
return this.load( sourceMap );
|
||||||
} else {
|
} else {
|
||||||
@ -168,11 +161,11 @@
|
|||||||
* @return {string}
|
* @return {string}
|
||||||
*/
|
*/
|
||||||
parse: function ( key, parameters ) {
|
parse: function ( key, parameters ) {
|
||||||
var message = key.toLocaleString();
|
var message = this.localize( key );
|
||||||
// FIXME: This changes the state of the I18N object,
|
// FIXME: This changes the state of the I18N object,
|
||||||
// should probably not change the 'this.parser' but just
|
// should probably not change the 'this.parser' but just
|
||||||
// pass it to the parser.
|
// pass it to the parser.
|
||||||
this.parser.language = $.i18n.languages[$.i18n().locale] || $.i18n.languages['default'];
|
this.parser.language = $.i18n.languages[ $.i18n().locale ] || $.i18n.languages[ 'default' ];
|
||||||
if ( message === '' ) {
|
if ( message === '' ) {
|
||||||
message = key;
|
message = key;
|
||||||
}
|
}
|
||||||
@ -202,7 +195,7 @@
|
|||||||
// NOTE: It should only change language for this one call.
|
// NOTE: It should only change language for this one call.
|
||||||
// Then cache instances of I18N somewhere.
|
// Then cache instances of I18N somewhere.
|
||||||
if ( options && options.locale && i18n && i18n.locale !== options.locale ) {
|
if ( options && options.locale && i18n && i18n.locale !== options.locale ) {
|
||||||
String.locale = i18n.locale = options.locale;
|
i18n.locale = options.locale;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !i18n ) {
|
if ( !i18n ) {
|
||||||
@ -231,28 +224,38 @@
|
|||||||
i18n = new I18N();
|
i18n = new I18N();
|
||||||
$.data( document, 'i18n', i18n );
|
$.data( document, 'i18n', i18n );
|
||||||
}
|
}
|
||||||
String.locale = i18n.locale;
|
|
||||||
return this.each( function () {
|
return this.each( function () {
|
||||||
var $this = $( this ),
|
var $this = $( this ),
|
||||||
messageKey = $this.data( 'i18n' );
|
messageKey = $this.data( 'i18n' ),
|
||||||
|
lBracket, rBracket, type, key;
|
||||||
|
|
||||||
if ( messageKey ) {
|
if ( messageKey ) {
|
||||||
$this.text( i18n.parse( messageKey ) );
|
lBracket = messageKey.indexOf( '[' );
|
||||||
|
rBracket = messageKey.indexOf( ']' );
|
||||||
|
if ( lBracket !== -1 && rBracket !== -1 && lBracket < rBracket ) {
|
||||||
|
type = messageKey.slice( lBracket + 1, rBracket );
|
||||||
|
key = messageKey.slice( rBracket + 1 );
|
||||||
|
if ( type === 'html' ) {
|
||||||
|
$this.html( i18n.parse( key ) );
|
||||||
|
} else {
|
||||||
|
$this.attr( type, i18n.parse( key ) );
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$this.text( i18n.parse( messageKey ) );
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$this.find( '[data-i18n]' ).i18n();
|
$this.find( '[data-i18n]' ).i18n();
|
||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
};
|
};
|
||||||
|
|
||||||
String.locale = String.locale || $( 'html' ).attr( 'lang' );
|
function getDefaultLocale() {
|
||||||
|
var locale = $( 'html' ).attr( 'lang' );
|
||||||
if ( !String.locale ) {
|
if ( !locale ) {
|
||||||
if ( typeof window.navigator !== 'undefined' ) {
|
locale = navigator.language || navigator.userLanguage || '';
|
||||||
nav = window.navigator;
|
|
||||||
String.locale = nav.language || nav.userLanguage || '';
|
|
||||||
} else {
|
|
||||||
String.locale = '';
|
|
||||||
}
|
}
|
||||||
|
return locale;
|
||||||
}
|
}
|
||||||
|
|
||||||
$.i18n.languages = {};
|
$.i18n.languages = {};
|
||||||
@ -262,7 +265,7 @@
|
|||||||
parse: function ( message, parameters ) {
|
parse: function ( message, parameters ) {
|
||||||
return message.replace( /\$(\d+)/g, function ( str, match ) {
|
return message.replace( /\$(\d+)/g, function ( str, match ) {
|
||||||
var index = parseInt( match, 10 ) - 1;
|
var index = parseInt( match, 10 ) - 1;
|
||||||
return parameters[index] !== undefined ? parameters[index] : '$' + match;
|
return parameters[ index ] !== undefined ? parameters[ index ] : '$' + match;
|
||||||
} );
|
} );
|
||||||
},
|
},
|
||||||
emitter: {}
|
emitter: {}
|
||||||
@ -276,7 +279,7 @@
|
|||||||
};
|
};
|
||||||
/* Static members */
|
/* Static members */
|
||||||
I18N.defaults = {
|
I18N.defaults = {
|
||||||
locale: String.locale,
|
locale: getDefaultLocale(),
|
||||||
fallbackLocale: 'en',
|
fallbackLocale: 'en',
|
||||||
parser: $.i18n.parser,
|
parser: $.i18n.parser,
|
||||||
messageStore: $.i18n.messageStore
|
messageStore: $.i18n.messageStore
|
@ -1,7 +1,8 @@
|
|||||||
/*global pluralRuleParser */
|
/* global pluralRuleParser */
|
||||||
( function ( $ ) {
|
( function ( $ ) {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
// jscs:disable
|
||||||
var language = {
|
var language = {
|
||||||
// CLDR plural rules generated using
|
// CLDR plural rules generated using
|
||||||
// libs/CLDRPluralRuleParser/tools/PluralXML2JSON.html
|
// libs/CLDRPluralRuleParser/tools/PluralXML2JSON.html
|
||||||
@ -19,6 +20,16 @@
|
|||||||
few: 'n % 100 = 3..10',
|
few: 'n % 100 = 3..10',
|
||||||
many: 'n % 100 = 11..99'
|
many: 'n % 100 = 11..99'
|
||||||
},
|
},
|
||||||
|
ars: {
|
||||||
|
zero: 'n = 0',
|
||||||
|
one: 'n = 1',
|
||||||
|
two: 'n = 2',
|
||||||
|
few: 'n % 100 = 3..10',
|
||||||
|
many: 'n % 100 = 11..99'
|
||||||
|
},
|
||||||
|
as: {
|
||||||
|
one: 'i = 0 or n = 1'
|
||||||
|
},
|
||||||
be: {
|
be: {
|
||||||
one: 'n % 10 = 1 and n % 100 != 11',
|
one: 'n % 10 = 1 and n % 100 != 11',
|
||||||
few: 'n % 10 = 2..4 and n % 100 != 12..14',
|
few: 'n % 10 = 2..4 and n % 100 != 12..14',
|
||||||
@ -55,6 +66,11 @@
|
|||||||
da: {
|
da: {
|
||||||
one: 'n = 1 or t != 0 and i = 0,1'
|
one: 'n = 1 or t != 0 and i = 0,1'
|
||||||
},
|
},
|
||||||
|
dsb: {
|
||||||
|
one: 'v = 0 and i % 100 = 1 or f % 100 = 1',
|
||||||
|
two: 'v = 0 and i % 100 = 2 or f % 100 = 2',
|
||||||
|
few: 'v = 0 and i % 100 = 3..4 or f % 100 = 3..4'
|
||||||
|
},
|
||||||
fa: {
|
fa: {
|
||||||
one: 'i = 0 or n = 1'
|
one: 'i = 0 or n = 1'
|
||||||
},
|
},
|
||||||
@ -62,7 +78,7 @@
|
|||||||
one: 'i = 0,1'
|
one: 'i = 0,1'
|
||||||
},
|
},
|
||||||
fil: {
|
fil: {
|
||||||
one: 'i = 0..1 and v = 0'
|
one: 'v = 0 and i = 1,2,3 or v = 0 and i % 10 != 4,6,9 or v != 0 and f % 10 != 4,6,9'
|
||||||
},
|
},
|
||||||
fr: {
|
fr: {
|
||||||
one: 'i = 0,1'
|
one: 'i = 0,1'
|
||||||
@ -85,9 +101,10 @@
|
|||||||
one: 'n = 0..1'
|
one: 'n = 0..1'
|
||||||
},
|
},
|
||||||
gv: {
|
gv: {
|
||||||
one: 'n % 10 = 1',
|
one: 'v = 0 and i % 10 = 1',
|
||||||
two: 'n % 10 = 2',
|
two: 'v = 0 and i % 10 = 2',
|
||||||
few: 'n % 100 = 0,20,40,60'
|
few: 'v = 0 and i % 100 = 0,20,40,60,80',
|
||||||
|
many: 'v != 0'
|
||||||
},
|
},
|
||||||
he: {
|
he: {
|
||||||
one: 'i = 1 and v = 0',
|
one: 'i = 1 and v = 0',
|
||||||
@ -101,6 +118,11 @@
|
|||||||
one: 'v = 0 and i % 10 = 1 and i % 100 != 11 or f % 10 = 1 and f % 100 != 11',
|
one: 'v = 0 and i % 10 = 1 and i % 100 != 11 or f % 10 = 1 and f % 100 != 11',
|
||||||
few: 'v = 0 and i % 10 = 2..4 and i % 100 != 12..14 or f % 10 = 2..4 and f % 100 != 12..14'
|
few: 'v = 0 and i % 10 = 2..4 and i % 100 != 12..14 or f % 10 = 2..4 and f % 100 != 12..14'
|
||||||
},
|
},
|
||||||
|
hsb: {
|
||||||
|
one: 'v = 0 and i % 100 = 1 or f % 100 = 1',
|
||||||
|
two: 'v = 0 and i % 100 = 2 or f % 100 = 2',
|
||||||
|
few: 'v = 0 and i % 100 = 3..4 or f % 100 = 3..4'
|
||||||
|
},
|
||||||
hy: {
|
hy: {
|
||||||
one: 'i = 0,1'
|
one: 'i = 0,1'
|
||||||
},
|
},
|
||||||
@ -175,20 +197,20 @@
|
|||||||
few: 'v = 0 and i % 10 = 2..4 and i % 100 != 12..14',
|
few: 'v = 0 and i % 10 = 2..4 and i % 100 != 12..14',
|
||||||
many: 'v = 0 and i != 1 and i % 10 = 0..1 or v = 0 and i % 10 = 5..9 or v = 0 and i % 100 = 12..14'
|
many: 'v = 0 and i != 1 and i % 10 = 0..1 or v = 0 and i % 10 = 5..9 or v = 0 and i % 100 = 12..14'
|
||||||
},
|
},
|
||||||
|
prg: {
|
||||||
|
zero: 'n % 10 = 0 or n % 100 = 11..19 or v = 2 and f % 100 = 11..19',
|
||||||
|
one: 'n % 10 = 1 and n % 100 != 11 or v = 2 and f % 10 = 1 and f % 100 != 11 or v != 2 and f % 10 = 1'
|
||||||
|
},
|
||||||
pt: {
|
pt: {
|
||||||
one: 'i = 1 and v = 0 or i = 0 and t = 1'
|
one: 'i = 0..1'
|
||||||
},
|
},
|
||||||
// jscs:disable requireCamelCaseOrUpperCaseIdentifiers
|
|
||||||
pt_PT: {
|
|
||||||
one: 'n = 1 and v = 0'
|
|
||||||
},
|
|
||||||
// jscs:enable requireCamelCaseOrUpperCaseIdentifiers
|
|
||||||
ro: {
|
ro: {
|
||||||
one: 'i = 1 and v = 0',
|
one: 'i = 1 and v = 0',
|
||||||
few: 'v != 0 or n = 0 or n != 1 and n % 100 = 1..19'
|
few: 'v != 0 or n = 0 or n != 1 and n % 100 = 1..19'
|
||||||
},
|
},
|
||||||
ru: {
|
ru: {
|
||||||
one: 'v = 0 and i % 10 = 1 and i % 100 != 11',
|
one: 'v = 0 and i % 10 = 1 and i % 100 != 11',
|
||||||
|
few: 'v = 0 and i % 10 = 2..4 and i % 100 != 12..14',
|
||||||
many: 'v = 0 and i % 10 = 0 or v = 0 and i % 10 = 5..9 or v = 0 and i % 100 = 11..14'
|
many: 'v = 0 and i % 10 = 0 or v = 0 and i % 10 = 5..9 or v = 0 and i % 100 = 11..14'
|
||||||
},
|
},
|
||||||
se: {
|
se: {
|
||||||
@ -244,7 +266,7 @@
|
|||||||
one: 'n = 0..1'
|
one: 'n = 0..1'
|
||||||
},
|
},
|
||||||
tl: {
|
tl: {
|
||||||
one: 'i = 0..1 and v = 0'
|
one: 'v = 0 and i = 1,2,3 or v = 0 and i % 10 != 4,6,9 or v != 0 and f % 10 != 4,6,9'
|
||||||
},
|
},
|
||||||
tzm: {
|
tzm: {
|
||||||
one: 'n = 0..1 or n = 11..99'
|
one: 'n = 0..1 or n = 11..99'
|
||||||
@ -261,21 +283,22 @@
|
|||||||
one: 'i = 0 or n = 1'
|
one: 'i = 0 or n = 1'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
// jscs:enable
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Plural form transformations, needed for some languages.
|
* Plural form transformations, needed for some languages.
|
||||||
*
|
*
|
||||||
* @param count
|
* @param {integer} count
|
||||||
* integer Non-localized quantifier
|
* Non-localized quantifier
|
||||||
* @param forms
|
* @param {Array} forms
|
||||||
* array List of plural forms
|
* List of plural forms
|
||||||
* @return string Correct form for quantifier in this language
|
* @return {string} Correct form for quantifier in this language
|
||||||
*/
|
*/
|
||||||
convertPlural: function ( count, forms ) {
|
convertPlural: function ( count, forms ) {
|
||||||
var pluralRules,
|
var pluralRules,
|
||||||
pluralFormIndex,
|
pluralFormIndex,
|
||||||
index,
|
index,
|
||||||
explicitPluralPattern = new RegExp( '\\d+=', 'i' ),
|
explicitPluralPattern = /\d+=/i,
|
||||||
formCount,
|
formCount,
|
||||||
form;
|
form;
|
||||||
|
|
||||||
@ -285,13 +308,13 @@
|
|||||||
|
|
||||||
// Handle for Explicit 0= & 1= values
|
// Handle for Explicit 0= & 1= values
|
||||||
for ( index = 0; index < forms.length; index++ ) {
|
for ( index = 0; index < forms.length; index++ ) {
|
||||||
form = forms[index];
|
form = forms[ index ];
|
||||||
if ( explicitPluralPattern.test( form ) ) {
|
if ( explicitPluralPattern.test( form ) ) {
|
||||||
formCount = parseInt( form.substring( 0, form.indexOf( '=' ) ), 10 );
|
formCount = parseInt( form.slice( 0, form.indexOf( '=' ) ), 10 );
|
||||||
if ( formCount === count ) {
|
if ( formCount === count ) {
|
||||||
return ( form.substr( form.indexOf( '=' ) + 1 ) );
|
return ( form.slice( form.indexOf( '=' ) + 1 ) );
|
||||||
}
|
}
|
||||||
forms[index] = undefined;
|
forms[ index ] = undefined;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -301,25 +324,25 @@
|
|||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
|
|
||||||
pluralRules = this.pluralRules[$.i18n().locale];
|
pluralRules = this.pluralRules[ $.i18n().locale ];
|
||||||
|
|
||||||
if ( !pluralRules ) {
|
if ( !pluralRules ) {
|
||||||
// default fallback.
|
// default fallback.
|
||||||
return ( count === 1 ) ? forms[0] : forms[1];
|
return ( count === 1 ) ? forms[ 0 ] : forms[ 1 ];
|
||||||
}
|
}
|
||||||
|
|
||||||
pluralFormIndex = this.getPluralForm( count, pluralRules );
|
pluralFormIndex = this.getPluralForm( count, pluralRules );
|
||||||
pluralFormIndex = Math.min( pluralFormIndex, forms.length - 1 );
|
pluralFormIndex = Math.min( pluralFormIndex, forms.length - 1 );
|
||||||
|
|
||||||
return forms[pluralFormIndex];
|
return forms[ pluralFormIndex ];
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* For the number, get the plural for index
|
* For the number, get the plural for index
|
||||||
*
|
*
|
||||||
* @param number
|
* @param {integer} number
|
||||||
* @param pluralRules
|
* @param {Object} pluralRules
|
||||||
* @return plural form index
|
* @return {integer} plural form index
|
||||||
*/
|
*/
|
||||||
getPluralForm: function ( number, pluralRules ) {
|
getPluralForm: function ( number, pluralRules ) {
|
||||||
var i,
|
var i,
|
||||||
@ -327,8 +350,8 @@
|
|||||||
pluralFormIndex = 0;
|
pluralFormIndex = 0;
|
||||||
|
|
||||||
for ( i = 0; i < pluralForms.length; i++ ) {
|
for ( i = 0; i < pluralForms.length; i++ ) {
|
||||||
if ( pluralRules[pluralForms[i]] ) {
|
if ( pluralRules[ pluralForms[ i ] ] ) {
|
||||||
if ( pluralRuleParser( pluralRules[pluralForms[i]], number ) ) {
|
if ( pluralRuleParser( pluralRules[ pluralForms[ i ] ], number ) ) {
|
||||||
return pluralFormIndex;
|
return pluralFormIndex;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -344,6 +367,7 @@
|
|||||||
*
|
*
|
||||||
* @param {number} num Value to be converted
|
* @param {number} num Value to be converted
|
||||||
* @param {boolean} integer Convert the return value to an integer
|
* @param {boolean} integer Convert the return value to an integer
|
||||||
|
* @return {string} The number converted into a String.
|
||||||
*/
|
*/
|
||||||
convertNumber: function ( num, integer ) {
|
convertNumber: function ( num, integer ) {
|
||||||
var tmp, item, i,
|
var tmp, item, i,
|
||||||
@ -360,28 +384,28 @@
|
|||||||
|
|
||||||
// Check if the restore to Latin number flag is set:
|
// Check if the restore to Latin number flag is set:
|
||||||
if ( integer ) {
|
if ( integer ) {
|
||||||
if ( parseFloat( num ) === num ) {
|
if ( parseFloat( num, 10 ) === num ) {
|
||||||
return num;
|
return num;
|
||||||
}
|
}
|
||||||
|
|
||||||
tmp = [];
|
tmp = [];
|
||||||
|
|
||||||
for ( item in transformTable ) {
|
for ( item in transformTable ) {
|
||||||
tmp[transformTable[item]] = item;
|
tmp[ transformTable[ item ] ] = item;
|
||||||
}
|
}
|
||||||
|
|
||||||
transformTable = tmp;
|
transformTable = tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
for ( i = 0; i < numberString.length; i++ ) {
|
for ( i = 0; i < numberString.length; i++ ) {
|
||||||
if ( transformTable[numberString[i]] ) {
|
if ( transformTable[ numberString[ i ] ] ) {
|
||||||
convertedNumber += transformTable[numberString[i]];
|
convertedNumber += transformTable[ numberString[ i ] ];
|
||||||
} else {
|
} else {
|
||||||
convertedNumber += numberString[i];
|
convertedNumber += numberString[ i ];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return integer ? parseFloat( convertedNumber ) : convertedNumber;
|
return integer ? parseFloat( convertedNumber, 10 ) : convertedNumber;
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -390,11 +414,12 @@
|
|||||||
* Override this method for languages that need special grammar rules
|
* Override this method for languages that need special grammar rules
|
||||||
* applied dynamically.
|
* applied dynamically.
|
||||||
*
|
*
|
||||||
* @param word {String}
|
* @param {string} word
|
||||||
* @param form {String}
|
* @param {string} form
|
||||||
* @return {String}
|
* @return {string}
|
||||||
*/
|
*/
|
||||||
convertGrammar: function ( word, form ) { /*jshint unused: false */
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
convertGrammar: function ( word, form ) {
|
||||||
return word;
|
return word;
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -405,12 +430,12 @@
|
|||||||
*
|
*
|
||||||
* These details may be overriden per language.
|
* These details may be overriden per language.
|
||||||
*
|
*
|
||||||
* @param gender
|
* @param {string} gender
|
||||||
* string male, female, or anything else for neutral.
|
* male, female, or anything else for neutral.
|
||||||
* @param forms
|
* @param {Array} forms
|
||||||
* array List of gender forms
|
* List of gender forms
|
||||||
*
|
*
|
||||||
* @return string
|
* @return {string}
|
||||||
*/
|
*/
|
||||||
gender: function ( gender, forms ) {
|
gender: function ( gender, forms ) {
|
||||||
if ( !forms || forms.length === 0 ) {
|
if ( !forms || forms.length === 0 ) {
|
||||||
@ -418,25 +443,26 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
while ( forms.length < 2 ) {
|
while ( forms.length < 2 ) {
|
||||||
forms.push( forms[forms.length - 1] );
|
forms.push( forms[ forms.length - 1 ] );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( gender === 'male' ) {
|
if ( gender === 'male' ) {
|
||||||
return forms[0];
|
return forms[ 0 ];
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( gender === 'female' ) {
|
if ( gender === 'female' ) {
|
||||||
return forms[1];
|
return forms[ 1 ];
|
||||||
}
|
}
|
||||||
|
|
||||||
return ( forms.length === 3 ) ? forms[2] : forms[0];
|
return ( forms.length === 3 ) ? forms[ 2 ] : forms[ 0 ];
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the digit transform table for the given language
|
* Get the digit transform table for the given language
|
||||||
* See http://cldr.unicode.org/translation/numbering-systems
|
* See http://cldr.unicode.org/translation/numbering-systems
|
||||||
* @param language
|
*
|
||||||
* @returns {Array|boolean} List of digits in the passed language or false
|
* @param {string} language
|
||||||
|
* @return {Array|boolean} List of digits in the passed language or false
|
||||||
* representation, or boolean false if there is no information.
|
* representation, or boolean false if there is no information.
|
||||||
*/
|
*/
|
||||||
digitTransformTable: function ( language ) {
|
digitTransformTable: function ( language ) {
|
||||||
@ -448,6 +474,7 @@
|
|||||||
lo: '໐໑໒໓໔໕໖໗໘໙',
|
lo: '໐໑໒໓໔໕໖໗໘໙',
|
||||||
or: '୦୧୨୩୪୫୬୭୮୯',
|
or: '୦୧୨୩୪୫୬୭୮୯',
|
||||||
kh: '០១២៣៤៥៦៧៨៩',
|
kh: '០១២៣៤៥៦៧៨៩',
|
||||||
|
nqo: '߀߁߂߃߄߅߆߇߈߉', // Note that the digits go right to left
|
||||||
pa: '੦੧੨੩੪੫੬੭੮੯',
|
pa: '੦੧੨੩੪੫੬੭੮੯',
|
||||||
gu: '૦૧૨૩૪૫૬૭૮૯',
|
gu: '૦૧૨૩૪૫૬૭૮૯',
|
||||||
hi: '०१२३४५६७८९',
|
hi: '०१२३४५६७८९',
|
||||||
@ -458,15 +485,15 @@
|
|||||||
bo: '༠༡༢༣༤༥༦༧༨༩' // FIXME use iso 639 codes
|
bo: '༠༡༢༣༤༥༦༧༨༩' // FIXME use iso 639 codes
|
||||||
};
|
};
|
||||||
|
|
||||||
if ( !tables[language] ) {
|
if ( !tables[ language ] ) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return tables[language].split( '' );
|
return tables[ language ].split( '' );
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
$.extend( $.i18n.languages, {
|
$.extend( $.i18n.languages, {
|
||||||
'default': language
|
default: language
|
||||||
} );
|
} );
|
||||||
}( jQuery ) );
|
}( jQuery ) );
|
@ -1,4 +1,4 @@
|
|||||||
/**
|
/*!
|
||||||
* jQuery Internationalization library - Message Store
|
* jQuery Internationalization library - Message Store
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 Santhosh Thottingal
|
* Copyright (C) 2012 Santhosh Thottingal
|
||||||
@ -12,7 +12,7 @@
|
|||||||
* @licence MIT License
|
* @licence MIT License
|
||||||
*/
|
*/
|
||||||
|
|
||||||
( function ( $, window, undefined ) {
|
( function ( $ ) {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var MessageStore = function () {
|
var MessageStore = function () {
|
||||||
@ -20,6 +20,20 @@
|
|||||||
this.sources = {};
|
this.sources = {};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function jsonMessageLoader( url ) {
|
||||||
|
var deferred = $.Deferred();
|
||||||
|
|
||||||
|
$.getJSON( url )
|
||||||
|
.done( deferred.resolve )
|
||||||
|
.fail( function ( jqxhr, settings, exception ) {
|
||||||
|
$.i18n.log( 'Error in loading messages from ' + url + ' Exception: ' + exception );
|
||||||
|
// Ignore 404 exception, because we are handling fallabacks explicitly
|
||||||
|
deferred.resolve();
|
||||||
|
} );
|
||||||
|
|
||||||
|
return deferred.promise();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* See https://github.com/wikimedia/jquery.i18n/wiki/Specification#wiki-Message_File_Loading
|
* See https://github.com/wikimedia/jquery.i18n/wiki/Specification#wiki-Message_File_Loading
|
||||||
*/
|
*/
|
||||||
@ -41,25 +55,22 @@
|
|||||||
* null/undefined/false,
|
* null/undefined/false,
|
||||||
* all cached messages for the i18n instance will get reset.
|
* all cached messages for the i18n instance will get reset.
|
||||||
*
|
*
|
||||||
* @param {String|Object} source
|
* @param {string|Object} source
|
||||||
* @param {String} locale Language tag
|
* @param {string} locale Language tag
|
||||||
* @return {jQuery.Promise}
|
* @return {jQuery.Promise}
|
||||||
*/
|
*/
|
||||||
load: function ( source, locale ) {
|
load: function ( source, locale ) {
|
||||||
var key = null,
|
var key = null,
|
||||||
deferred = null,
|
|
||||||
deferreds = [],
|
deferreds = [],
|
||||||
messageStore = this;
|
messageStore = this;
|
||||||
|
|
||||||
if ( typeof source === 'string' ) {
|
if ( typeof source === 'string' ) {
|
||||||
// This is a URL to the messages file.
|
// This is a URL to the messages file.
|
||||||
$.i18n.log( 'Loading messages from: ' + source );
|
$.i18n.log( 'Loading messages from: ' + source );
|
||||||
deferred = jsonMessageLoader( source )
|
return jsonMessageLoader( source )
|
||||||
.done( function ( localization ) {
|
.then( function ( localization ) {
|
||||||
messageStore.set( locale, localization );
|
return messageStore.load( localization, locale );
|
||||||
} );
|
} );
|
||||||
|
|
||||||
return deferred.promise();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( locale ) {
|
if ( locale ) {
|
||||||
@ -74,7 +85,7 @@
|
|||||||
locale = key;
|
locale = key;
|
||||||
// No {locale} given, assume data is a group of languages,
|
// No {locale} given, assume data is a group of languages,
|
||||||
// call this function again for each language.
|
// call this function again for each language.
|
||||||
deferreds.push( messageStore.load( source[key], locale ) );
|
deferreds.push( messageStore.load( source[ key ], locale ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $.when.apply( $, deferreds );
|
return $.when.apply( $, deferreds );
|
||||||
@ -85,41 +96,28 @@
|
|||||||
/**
|
/**
|
||||||
* Set messages to the given locale.
|
* Set messages to the given locale.
|
||||||
* If locale exists, add messages to the locale.
|
* If locale exists, add messages to the locale.
|
||||||
* @param locale
|
*
|
||||||
* @param messages
|
* @param {string} locale
|
||||||
|
* @param {Object} messages
|
||||||
*/
|
*/
|
||||||
set: function ( locale, messages ) {
|
set: function ( locale, messages ) {
|
||||||
if ( !this.messages[locale] ) {
|
if ( !this.messages[ locale ] ) {
|
||||||
this.messages[locale] = messages;
|
this.messages[ locale ] = messages;
|
||||||
} else {
|
} else {
|
||||||
this.messages[locale] = $.extend( this.messages[locale], messages );
|
this.messages[ locale ] = $.extend( this.messages[ locale ], messages );
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param locale
|
* @param {string} locale
|
||||||
* @param messageKey
|
* @param {string} messageKey
|
||||||
* @returns {Boolean}
|
* @return {boolean}
|
||||||
*/
|
*/
|
||||||
get: function ( locale, messageKey ) {
|
get: function ( locale, messageKey ) {
|
||||||
return this.messages[locale] && this.messages[locale][messageKey];
|
return this.messages[ locale ] && this.messages[ locale ][ messageKey ];
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
function jsonMessageLoader( url ) {
|
|
||||||
var deferred = $.Deferred();
|
|
||||||
|
|
||||||
$.getJSON( url )
|
|
||||||
.done( deferred.resolve )
|
|
||||||
.fail( function ( jqxhr, settings, exception ) {
|
|
||||||
$.i18n.log( 'Error in loading messages from ' + url + ' Exception: ' + exception );
|
|
||||||
// Ignore 404 exception, because we are handling fallabacks explicitly
|
|
||||||
deferred.resolve();
|
|
||||||
} );
|
|
||||||
|
|
||||||
return deferred.promise();
|
|
||||||
}
|
|
||||||
|
|
||||||
$.extend( $.i18n.messageStore, new MessageStore() );
|
$.extend( $.i18n.messageStore, new MessageStore() );
|
||||||
}( jQuery, window ) );
|
}( jQuery ) );
|
@ -1,4 +1,4 @@
|
|||||||
/**
|
/*!
|
||||||
* jQuery Internationalization library
|
* jQuery Internationalization library
|
||||||
*
|
*
|
||||||
* Copyright (C) 2011-2013 Santhosh Thottingal, Neil Kandalgaonkar
|
* Copyright (C) 2011-2013 Santhosh Thottingal, Neil Kandalgaonkar
|
||||||
@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
var MessageParser = function ( options ) {
|
var MessageParser = function ( options ) {
|
||||||
this.options = $.extend( {}, $.i18n.parser.defaults, options );
|
this.options = $.extend( {}, $.i18n.parser.defaults, options );
|
||||||
this.language = $.i18n.languages[String.locale] || $.i18n.languages['default'];
|
this.language = $.i18n.languages[ String.locale ] || $.i18n.languages[ 'default' ];
|
||||||
this.emitter = $.i18n.parser.emitter;
|
this.emitter = $.i18n.parser.emitter;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -30,7 +30,7 @@
|
|||||||
return message.replace( /\$(\d+)/g, function ( str, match ) {
|
return message.replace( /\$(\d+)/g, function ( str, match ) {
|
||||||
var index = parseInt( match, 10 ) - 1;
|
var index = parseInt( match, 10 ) - 1;
|
||||||
|
|
||||||
return parameters[index] !== undefined ? parameters[index] : '$' + match;
|
return parameters[ index ] !== undefined ? parameters[ index ] : '$' + match;
|
||||||
} );
|
} );
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -39,8 +39,8 @@
|
|||||||
return this.simpleParse( message, replacements );
|
return this.simpleParse( message, replacements );
|
||||||
}
|
}
|
||||||
|
|
||||||
this.emitter.language = $.i18n.languages[$.i18n().locale] ||
|
this.emitter.language = $.i18n.languages[ $.i18n().locale ] ||
|
||||||
$.i18n.languages['default'];
|
$.i18n.languages[ 'default' ];
|
||||||
|
|
||||||
return this.emitter.emit( this.ast( message ), replacements );
|
return this.emitter.emit( this.ast( message ), replacements );
|
||||||
},
|
},
|
||||||
@ -58,7 +58,7 @@
|
|||||||
var i, result;
|
var i, result;
|
||||||
|
|
||||||
for ( i = 0; i < parserSyntax.length; i++ ) {
|
for ( i = 0; i < parserSyntax.length; i++ ) {
|
||||||
result = parserSyntax[i]();
|
result = parserSyntax[ i ]();
|
||||||
|
|
||||||
if ( result !== null ) {
|
if ( result !== null ) {
|
||||||
return result;
|
return result;
|
||||||
@ -78,7 +78,7 @@
|
|||||||
result = [];
|
result = [];
|
||||||
|
|
||||||
for ( i = 0; i < parserSyntax.length; i++ ) {
|
for ( i = 0; i < parserSyntax.length; i++ ) {
|
||||||
res = parserSyntax[i]();
|
res = parserSyntax[ i ]();
|
||||||
|
|
||||||
if ( res === null ) {
|
if ( res === null ) {
|
||||||
pos = originalPos;
|
pos = originalPos;
|
||||||
@ -123,7 +123,7 @@
|
|||||||
return function () {
|
return function () {
|
||||||
var result = null;
|
var result = null;
|
||||||
|
|
||||||
if ( message.substr( pos, len ) === s ) {
|
if ( message.slice( pos, pos + len ) === s ) {
|
||||||
result = s;
|
result = s;
|
||||||
pos += len;
|
pos += len;
|
||||||
}
|
}
|
||||||
@ -134,15 +134,15 @@
|
|||||||
|
|
||||||
function makeRegexParser( regex ) {
|
function makeRegexParser( regex ) {
|
||||||
return function () {
|
return function () {
|
||||||
var matches = message.substr( pos ).match( regex );
|
var matches = message.slice( pos ).match( regex );
|
||||||
|
|
||||||
if ( matches === null ) {
|
if ( matches === null ) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
pos += matches[0].length;
|
pos += matches[ 0 ].length;
|
||||||
|
|
||||||
return matches[0];
|
return matches[ 0 ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -152,9 +152,9 @@
|
|||||||
anyCharacter = makeRegexParser( /^./ );
|
anyCharacter = makeRegexParser( /^./ );
|
||||||
dollar = makeStringParser( '$' );
|
dollar = makeStringParser( '$' );
|
||||||
digits = makeRegexParser( /^\d+/ );
|
digits = makeRegexParser( /^\d+/ );
|
||||||
regularLiteral = makeRegexParser( /^[^{}\[\]$\\]/ );
|
regularLiteral = makeRegexParser( /^[^{}[\]$\\]/ );
|
||||||
regularLiteralWithoutBar = makeRegexParser( /^[^{}\[\]$\\|]/ );
|
regularLiteralWithoutBar = makeRegexParser( /^[^{}[\]$\\|]/ );
|
||||||
regularLiteralWithoutSpace = makeRegexParser( /^[^{}\[\]$\s]/ );
|
regularLiteralWithoutSpace = makeRegexParser( /^[^{}[\]$\s]/ );
|
||||||
|
|
||||||
// There is a general pattern:
|
// There is a general pattern:
|
||||||
// parse a thing;
|
// parse a thing;
|
||||||
@ -189,7 +189,7 @@
|
|||||||
function escapedLiteral() {
|
function escapedLiteral() {
|
||||||
var result = sequence( [ backslash, anyCharacter ] );
|
var result = sequence( [ backslash, anyCharacter ] );
|
||||||
|
|
||||||
return result === null ? null : result[1];
|
return result === null ? null : result[ 1 ];
|
||||||
}
|
}
|
||||||
|
|
||||||
choice( [ escapedLiteral, regularLiteralWithoutSpace ] );
|
choice( [ escapedLiteral, regularLiteralWithoutSpace ] );
|
||||||
@ -203,13 +203,13 @@
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return [ 'REPLACE', parseInt( result[1], 10 ) - 1 ];
|
return [ 'REPLACE', parseInt( result[ 1 ], 10 ) - 1 ];
|
||||||
}
|
}
|
||||||
|
|
||||||
templateName = transform(
|
templateName = transform(
|
||||||
// see $wgLegalTitleChars
|
// see $wgLegalTitleChars
|
||||||
// not allowing : due to the need to catch "PLURAL:$1"
|
// not allowing : due to the need to catch "PLURAL:$1"
|
||||||
makeRegexParser( /^[ !"$&'()*,.\/0-9;=?@A-Z\^_`a-z~\x80-\xFF+\-]+/ ),
|
makeRegexParser( /^[ !"$&'()*,./0-9;=?@A-Z^_`a-z~\x80-\xFF+-]+/ ),
|
||||||
|
|
||||||
function ( result ) {
|
function ( result ) {
|
||||||
return result.toString();
|
return result.toString();
|
||||||
@ -224,23 +224,23 @@
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
expr = result[1];
|
expr = result[ 1 ];
|
||||||
|
|
||||||
// use a "CONCAT" operator if there are multiple nodes,
|
// use a "CONCAT" operator if there are multiple nodes,
|
||||||
// otherwise return the first node, raw.
|
// otherwise return the first node, raw.
|
||||||
return expr.length > 1 ? [ 'CONCAT' ].concat( expr ) : expr[0];
|
return expr.length > 1 ? [ 'CONCAT' ].concat( expr ) : expr[ 0 ];
|
||||||
}
|
}
|
||||||
|
|
||||||
function templateWithReplacement() {
|
function templateWithReplacement() {
|
||||||
var result = sequence( [ templateName, colon, replacement ] );
|
var result = sequence( [ templateName, colon, replacement ] );
|
||||||
|
|
||||||
return result === null ? null : [ result[0], result[2] ];
|
return result === null ? null : [ result[ 0 ], result[ 2 ] ];
|
||||||
}
|
}
|
||||||
|
|
||||||
function templateWithOutReplacement() {
|
function templateWithOutReplacement() {
|
||||||
var result = sequence( [ templateName, colon, paramExpression ] );
|
var result = sequence( [ templateName, colon, paramExpression ] );
|
||||||
|
|
||||||
return result === null ? null : [ result[0], result[2] ];
|
return result === null ? null : [ result[ 0 ], result[ 2 ] ];
|
||||||
}
|
}
|
||||||
|
|
||||||
templateContents = choice( [
|
templateContents = choice( [
|
||||||
@ -254,7 +254,7 @@
|
|||||||
nOrMore( 0, templateParam )
|
nOrMore( 0, templateParam )
|
||||||
] );
|
] );
|
||||||
|
|
||||||
return res === null ? null : res[0].concat( res[1] );
|
return res === null ? null : res[ 0 ].concat( res[ 1 ] );
|
||||||
},
|
},
|
||||||
function () {
|
function () {
|
||||||
var res = sequence( [ templateName, nOrMore( 0, templateParam ) ] );
|
var res = sequence( [ templateName, nOrMore( 0, templateParam ) ] );
|
||||||
@ -263,7 +263,7 @@
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return [ res[0] ].concat( res[1] );
|
return [ res[ 0 ] ].concat( res[ 1 ] );
|
||||||
}
|
}
|
||||||
] );
|
] );
|
||||||
|
|
||||||
@ -273,7 +273,7 @@
|
|||||||
function template() {
|
function template() {
|
||||||
var result = sequence( [ openTemplate, templateContents, closeTemplate ] );
|
var result = sequence( [ openTemplate, templateContents, closeTemplate ] );
|
||||||
|
|
||||||
return result === null ? null : result[1];
|
return result === null ? null : result[ 1 ];
|
||||||
}
|
}
|
||||||
|
|
||||||
expression = choice( [ template, replacement, literal ] );
|
expression = choice( [ template, replacement, literal ] );
|
||||||
@ -294,7 +294,8 @@
|
|||||||
/*
|
/*
|
||||||
* For success, the pos must have gotten to the end of the input
|
* For success, the pos must have gotten to the end of the input
|
||||||
* and returned a non-null.
|
* and returned a non-null.
|
||||||
* n.b. This is part of language infrastructure, so we do not throw an internationalizable message.
|
* n.b. This is part of language infrastructure, so we do not throw an
|
||||||
|
* internationalizable message.
|
||||||
*/
|
*/
|
||||||
if ( result === null || pos !== message.length ) {
|
if ( result === null || pos !== message.length ) {
|
||||||
throw new Error( 'Parse error at position ' + pos.toString() + ' in input: ' + message );
|
throw new Error( 'Parse error at position ' + pos.toString() + ' in input: ' + message );
|
22
assets/webconfig/js/lib/jquery.i18n/languages/bs.js
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
/**
|
||||||
|
* Bosnian (bosanski) language functions
|
||||||
|
*/
|
||||||
|
( function ( $ ) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
$.i18n.languages.bs = $.extend( {}, $.i18n.languages[ 'default' ], {
|
||||||
|
convertGrammar: function ( word, form ) {
|
||||||
|
switch ( form ) {
|
||||||
|
case 'instrumental': // instrumental
|
||||||
|
word = 's ' + word;
|
||||||
|
break;
|
||||||
|
case 'lokativ': // locative
|
||||||
|
word = 'o ' + word;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return word;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
|
||||||
|
}( jQuery ) );
|
22
assets/webconfig/js/lib/jquery.i18n/languages/dsb.js
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
/**
|
||||||
|
* Lower Sorbian (Dolnoserbski) language functions
|
||||||
|
*/
|
||||||
|
( function ( $ ) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
$.i18n.languages.dsb = $.extend( {}, $.i18n.languages[ 'default' ], {
|
||||||
|
convertGrammar: function ( word, form ) {
|
||||||
|
switch ( form ) {
|
||||||
|
case 'instrumental': // instrumental
|
||||||
|
word = 'z ' + word;
|
||||||
|
break;
|
||||||
|
case 'lokatiw': // lokatiw
|
||||||
|
word = 'wo ' + word;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return word;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
|
||||||
|
}( jQuery ) );
|
49
assets/webconfig/js/lib/jquery.i18n/languages/fi.js
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
/**
|
||||||
|
* Finnish (Suomi) language functions
|
||||||
|
*
|
||||||
|
* @author Santhosh Thottingal
|
||||||
|
*/
|
||||||
|
|
||||||
|
( function ( $ ) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
$.i18n.languages.fi = $.extend( {}, $.i18n.languages[ 'default' ], {
|
||||||
|
convertGrammar: function ( word, form ) {
|
||||||
|
// vowel harmony flag
|
||||||
|
var aou = word.match( /[aou][^äöy]*$/i ),
|
||||||
|
origWord = word;
|
||||||
|
if ( word.match( /wiki$/i ) ) {
|
||||||
|
aou = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// append i after final consonant
|
||||||
|
if ( word.match( /[bcdfghjklmnpqrstvwxz]$/i ) ) {
|
||||||
|
word += 'i';
|
||||||
|
}
|
||||||
|
|
||||||
|
switch ( form ) {
|
||||||
|
case 'genitive':
|
||||||
|
word += 'n';
|
||||||
|
break;
|
||||||
|
case 'elative':
|
||||||
|
word += ( aou ? 'sta' : 'stä' );
|
||||||
|
break;
|
||||||
|
case 'partitive':
|
||||||
|
word += ( aou ? 'a' : 'ä' );
|
||||||
|
break;
|
||||||
|
case 'illative':
|
||||||
|
// Double the last letter and add 'n'
|
||||||
|
word += word.slice( -1 ) + 'n';
|
||||||
|
break;
|
||||||
|
case 'inessive':
|
||||||
|
word += ( aou ? 'ssa' : 'ssä' );
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
word = origWord;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return word;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
}( jQuery ) );
|
38
assets/webconfig/js/lib/jquery.i18n/languages/ga.js
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
/**
|
||||||
|
* Irish (Gaeilge) language functions
|
||||||
|
*/
|
||||||
|
( function ( $ ) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
$.i18n.languages.ga = $.extend( {}, $.i18n.languages[ 'default' ], {
|
||||||
|
convertGrammar: function ( word, form ) {
|
||||||
|
if ( form === 'ainmlae' ) {
|
||||||
|
switch ( word ) {
|
||||||
|
case 'an Domhnach':
|
||||||
|
word = 'Dé Domhnaigh';
|
||||||
|
break;
|
||||||
|
case 'an Luan':
|
||||||
|
word = 'Dé Luain';
|
||||||
|
break;
|
||||||
|
case 'an Mháirt':
|
||||||
|
word = 'Dé Mháirt';
|
||||||
|
break;
|
||||||
|
case 'an Chéadaoin':
|
||||||
|
word = 'Dé Chéadaoin';
|
||||||
|
break;
|
||||||
|
case 'an Déardaoin':
|
||||||
|
word = 'Déardaoin';
|
||||||
|
break;
|
||||||
|
case 'an Aoine':
|
||||||
|
word = 'Dé hAoine';
|
||||||
|
break;
|
||||||
|
case 'an Satharn':
|
||||||
|
word = 'Dé Sathairn';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return word;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
}( jQuery ) );
|
31
assets/webconfig/js/lib/jquery.i18n/languages/he.js
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
/**
|
||||||
|
* Hebrew (עברית) language functions
|
||||||
|
*/
|
||||||
|
( function ( $ ) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
$.i18n.languages.he = $.extend( {}, $.i18n.languages[ 'default' ], {
|
||||||
|
convertGrammar: function ( word, form ) {
|
||||||
|
switch ( form ) {
|
||||||
|
case 'prefixed':
|
||||||
|
case 'תחילית': // the same word in Hebrew
|
||||||
|
// Duplicate prefixed "Waw", but only if it's not already double
|
||||||
|
if ( word.slice( 0, 1 ) === 'ו' && word.slice( 0, 2 ) !== 'וו' ) {
|
||||||
|
word = 'ו' + word;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remove the "He" if prefixed
|
||||||
|
if ( word.slice( 0, 1 ) === 'ה' ) {
|
||||||
|
word = word.slice( 1 );
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add a hyphen (maqaf) before numbers and non-Hebrew letters
|
||||||
|
if ( word.slice( 0, 1 ) < 'א' || word.slice( 0, 1 ) > 'ת' ) {
|
||||||
|
word = '־' + word;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return word;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
}( jQuery ) );
|
21
assets/webconfig/js/lib/jquery.i18n/languages/hsb.js
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
/**
|
||||||
|
* Upper Sorbian (Hornjoserbsce) language functions
|
||||||
|
*/
|
||||||
|
( function ( $ ) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
$.i18n.languages.hsb = $.extend( {}, $.i18n.languages[ 'default' ], {
|
||||||
|
convertGrammar: function ( word, form ) {
|
||||||
|
switch ( form ) {
|
||||||
|
case 'instrumental': // instrumental
|
||||||
|
word = 'z ' + word;
|
||||||
|
break;
|
||||||
|
case 'lokatiw': // lokatiw
|
||||||
|
word = 'wo ' + word;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return word;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
}( jQuery ) );
|
26
assets/webconfig/js/lib/jquery.i18n/languages/hu.js
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
/**
|
||||||
|
* Hungarian language functions
|
||||||
|
*
|
||||||
|
* @author Santhosh Thottingal
|
||||||
|
*/
|
||||||
|
( function ( $ ) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
$.i18n.languages.hu = $.extend( {}, $.i18n.languages[ 'default' ], {
|
||||||
|
convertGrammar: function ( word, form ) {
|
||||||
|
switch ( form ) {
|
||||||
|
case 'rol':
|
||||||
|
word += 'ról';
|
||||||
|
break;
|
||||||
|
case 'ba':
|
||||||
|
word += 'ba';
|
||||||
|
break;
|
||||||
|
case 'k':
|
||||||
|
word += 'k';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return word;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
}( jQuery ) );
|
25
assets/webconfig/js/lib/jquery.i18n/languages/hy.js
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
/**
|
||||||
|
* Armenian (Հայերեն) language functions
|
||||||
|
*/
|
||||||
|
|
||||||
|
( function ( $ ) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
$.i18n.languages.hy = $.extend( {}, $.i18n.languages[ 'default' ], {
|
||||||
|
convertGrammar: function ( word, form ) {
|
||||||
|
if ( form === 'genitive' ) { // սեռական հոլով
|
||||||
|
if ( word.slice( -1 ) === 'ա' ) {
|
||||||
|
word = word.slice( 0, -1 ) + 'այի';
|
||||||
|
} else if ( word.slice( -1 ) === 'ո' ) {
|
||||||
|
word = word.slice( 0, -1 ) + 'ոյի';
|
||||||
|
} else if ( word.slice( -4 ) === 'գիրք' ) {
|
||||||
|
word = word.slice( 0, -4 ) + 'գրքի';
|
||||||
|
} else {
|
||||||
|
word = word + 'ի';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return word;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
}( jQuery ) );
|
54
assets/webconfig/js/lib/jquery.i18n/languages/la.js
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
/**
|
||||||
|
* Latin (lingua Latina) language functions
|
||||||
|
*
|
||||||
|
* @author Santhosh Thottingal
|
||||||
|
*/
|
||||||
|
|
||||||
|
( function ( $ ) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
$.i18n.languages.la = $.extend( {}, $.i18n.languages[ 'default' ], {
|
||||||
|
convertGrammar: function ( word, form ) {
|
||||||
|
switch ( form ) {
|
||||||
|
case 'genitive':
|
||||||
|
// only a few declensions, and even for those mostly the singular only
|
||||||
|
word = word.replace( /u[ms]$/i, 'i' ); // 2nd declension singular
|
||||||
|
word = word.replace( /ommunia$/i, 'ommunium' ); // 3rd declension neuter plural (partly)
|
||||||
|
word = word.replace( /a$/i, 'ae' ); // 1st declension singular
|
||||||
|
word = word.replace( /libri$/i, 'librorum' ); // 2nd declension plural (partly)
|
||||||
|
word = word.replace( /nuntii$/i, 'nuntiorum' ); // 2nd declension plural (partly)
|
||||||
|
word = word.replace( /tio$/i, 'tionis' ); // 3rd declension singular (partly)
|
||||||
|
word = word.replace( /ns$/i, 'ntis' );
|
||||||
|
word = word.replace( /as$/i, 'atis' );
|
||||||
|
word = word.replace( /es$/i, 'ei' ); // 5th declension singular
|
||||||
|
break;
|
||||||
|
case 'accusative':
|
||||||
|
// only a few declensions, and even for those mostly the singular only
|
||||||
|
word = word.replace( /u[ms]$/i, 'um' ); // 2nd declension singular
|
||||||
|
word = word.replace( /ommunia$/i, 'am' ); // 3rd declension neuter plural (partly)
|
||||||
|
word = word.replace( /a$/i, 'ommunia' ); // 1st declension singular
|
||||||
|
word = word.replace( /libri$/i, 'libros' ); // 2nd declension plural (partly)
|
||||||
|
word = word.replace( /nuntii$/i, 'nuntios' );// 2nd declension plural (partly)
|
||||||
|
word = word.replace( /tio$/i, 'tionem' ); // 3rd declension singular (partly)
|
||||||
|
word = word.replace( /ns$/i, 'ntem' );
|
||||||
|
word = word.replace( /as$/i, 'atem' );
|
||||||
|
word = word.replace( /es$/i, 'em' ); // 5th declension singular
|
||||||
|
break;
|
||||||
|
case 'ablative':
|
||||||
|
// only a few declensions, and even for those mostly the singular only
|
||||||
|
word = word.replace( /u[ms]$/i, 'o' ); // 2nd declension singular
|
||||||
|
word = word.replace( /ommunia$/i, 'ommunibus' ); // 3rd declension neuter plural (partly)
|
||||||
|
word = word.replace( /a$/i, 'a' ); // 1st declension singular
|
||||||
|
word = word.replace( /libri$/i, 'libris' ); // 2nd declension plural (partly)
|
||||||
|
word = word.replace( /nuntii$/i, 'nuntiis' ); // 2nd declension plural (partly)
|
||||||
|
word = word.replace( /tio$/i, 'tione' ); // 3rd declension singular (partly)
|
||||||
|
word = word.replace( /ns$/i, 'nte' );
|
||||||
|
word = word.replace( /as$/i, 'ate' );
|
||||||
|
word = word.replace( /es$/i, 'e' ); // 5th declension singular
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return word;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
}( jQuery ) );
|
98
assets/webconfig/js/lib/jquery.i18n/languages/ml.js
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
/**
|
||||||
|
* Malayalam language functions
|
||||||
|
*
|
||||||
|
* @author Santhosh Thottingal
|
||||||
|
*/
|
||||||
|
|
||||||
|
( function ( $ ) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
$.i18n.languages.ml = $.extend( {}, $.i18n.languages[ 'default' ], {
|
||||||
|
convertGrammar: function ( word, form ) {
|
||||||
|
form = form.toLowerCase();
|
||||||
|
switch ( form ) {
|
||||||
|
case 'ഉദ്ദേശിക':
|
||||||
|
case 'dative':
|
||||||
|
if ( word.slice( -1 ) === 'ു' ||
|
||||||
|
word.slice( -1 ) === 'ൂ' ||
|
||||||
|
word.slice( -1 ) === 'ൗ' ||
|
||||||
|
word.slice( -1 ) === 'ൌ'
|
||||||
|
) {
|
||||||
|
word += 'വിന്';
|
||||||
|
} else if ( word.slice( -1 ) === 'ം' ) {
|
||||||
|
word = word.slice( 0, -1 ) + 'ത്തിന്';
|
||||||
|
} else if ( word.slice( -1 ) === 'ൻ' ) {
|
||||||
|
// Atomic chillu n. അവൻ -> അവന്
|
||||||
|
word = word.slice( 0, -1 ) + 'ന്';
|
||||||
|
} else if ( word.slice( -3 ) === 'ന്\u200d' ) {
|
||||||
|
// chillu n. അവൻ -> അവന്
|
||||||
|
word = word.slice( 0, -1 );
|
||||||
|
} else if ( word.slice( -1 ) === 'ൾ' || word.slice( -3 ) === 'ള്\u200d' ) {
|
||||||
|
word += 'ക്ക്';
|
||||||
|
} else if ( word.slice( -1 ) === 'ർ' || word.slice( -3 ) === 'ര്\u200d' ) {
|
||||||
|
word += 'ക്ക്';
|
||||||
|
} else if ( word.slice( -1 ) === 'ൽ' ) {
|
||||||
|
// Atomic chillu ൽ , ഫയൽ -> ഫയലിന്
|
||||||
|
word = word.slice( 0, -1 ) + 'ലിന്';
|
||||||
|
} else if ( word.slice( -3 ) === 'ല്\u200d' ) {
|
||||||
|
// chillu ല്\u200d , ഫയല്\u200d -> ഫയലിന്
|
||||||
|
word = word.slice( 0, -2 ) + 'ിന്';
|
||||||
|
} else if ( word.slice( -2 ) === 'ു്' ) {
|
||||||
|
word = word.slice( 0, -2 ) + 'ിന്';
|
||||||
|
} else if ( word.slice( -1 ) === '്' ) {
|
||||||
|
word = word.slice( 0, -1 ) + 'ിന്';
|
||||||
|
} else {
|
||||||
|
// കാവ്യ -> കാവ്യയ്ക്ക്, ഹരി -> ഹരിയ്ക്ക്, മല -> മലയ്ക്ക്
|
||||||
|
word += 'യ്ക്ക്';
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 'സംബന്ധിക':
|
||||||
|
case 'genitive':
|
||||||
|
if ( word.slice( -1 ) === 'ം' ) {
|
||||||
|
word = word.slice( 0, -1 ) + 'ത്തിന്റെ';
|
||||||
|
} else if ( word.slice( -2 ) === 'ു്' ) {
|
||||||
|
word = word.slice( 0, -2 ) + 'ിന്റെ';
|
||||||
|
} else if ( word.slice( -1 ) === '്' ) {
|
||||||
|
word = word.slice( 0, -1 ) + 'ിന്റെ';
|
||||||
|
} else if ( word.slice( -1 ) === 'ു' ||
|
||||||
|
word.slice( -1 ) === 'ൂ' ||
|
||||||
|
word.slice( -1 ) === 'ൗ' ||
|
||||||
|
word.slice( -1 ) === 'ൌ'
|
||||||
|
) {
|
||||||
|
word += 'വിന്റെ';
|
||||||
|
} else if ( word.slice( -1 ) === 'ൻ' ) {
|
||||||
|
// Atomic chillu n. അവൻ -> അവന്റെ
|
||||||
|
word = word.slice( 0, -1 ) + 'ന്റെ';
|
||||||
|
} else if ( word.slice( -3 ) === 'ന്\u200d' ) {
|
||||||
|
// chillu n. അവൻ -> അവന്റെ
|
||||||
|
word = word.slice( 0, -1 ) + 'റെ';
|
||||||
|
} else if ( word.slice( -3 ) === 'ള്\u200d' ) {
|
||||||
|
// chillu n. അവൾ -> അവളുടെ
|
||||||
|
word = word.slice( 0, -2 ) + 'ുടെ';
|
||||||
|
} else if ( word.slice( -1 ) === 'ൾ' ) {
|
||||||
|
// Atomic chillu n. അവള്\u200d -> അവളുടെ
|
||||||
|
word = word.slice( 0, -1 ) + 'ളുടെ';
|
||||||
|
} else if ( word.slice( -1 ) === 'ൽ' ) {
|
||||||
|
// Atomic l. മുയല്\u200d -> മുയലിന്റെ
|
||||||
|
word = word.slice( 0, -1 ) + 'ലിന്റെ';
|
||||||
|
} else if ( word.slice( -3 ) === 'ല്\u200d' ) {
|
||||||
|
// chillu l. മുയല്\u200d -> അവളുടെ
|
||||||
|
word = word.slice( 0, -2 ) + 'ിന്റെ';
|
||||||
|
} else if ( word.slice( -3 ) === 'ര്\u200d' ) {
|
||||||
|
// chillu r. അവര്\u200d -> അവരുടെ
|
||||||
|
word = word.slice( 0, -2 ) + 'ുടെ';
|
||||||
|
} else if ( word.slice( -1 ) === 'ർ' ) {
|
||||||
|
// Atomic chillu r. അവർ -> അവരുടെ
|
||||||
|
word = word.slice( 0, -1 ) + 'രുടെ';
|
||||||
|
} else {
|
||||||
|
word += 'യുടെ';
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return word;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
}( jQuery ) );
|
75
assets/webconfig/js/lib/jquery.i18n/languages/os.js
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
/**
|
||||||
|
* Ossetian (Ирон) language functions
|
||||||
|
*
|
||||||
|
* @author Santhosh Thottingal
|
||||||
|
*/
|
||||||
|
|
||||||
|
( function ( $ ) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
$.i18n.languages.os = $.extend( {}, $.i18n.languages[ 'default' ], {
|
||||||
|
convertGrammar: function ( word, form ) {
|
||||||
|
var endAllative, jot, hyphen, ending;
|
||||||
|
|
||||||
|
// Ending for allative case
|
||||||
|
endAllative = 'мæ';
|
||||||
|
// Variable for 'j' beetwen vowels
|
||||||
|
jot = '';
|
||||||
|
// Variable for "-" for not Ossetic words
|
||||||
|
hyphen = '';
|
||||||
|
// Variable for ending
|
||||||
|
ending = '';
|
||||||
|
|
||||||
|
if ( word.match( /тæ$/i ) ) {
|
||||||
|
// Checking if the $word is in plural form
|
||||||
|
word = word.slice( 0, -1 );
|
||||||
|
endAllative = 'æм';
|
||||||
|
} else if ( word.match( /[аæеёиоыэюя]$/i ) ) {
|
||||||
|
// Works if word is in singular form.
|
||||||
|
// Checking if word ends on one of the vowels: е, ё, и, о, ы, э, ю,
|
||||||
|
// я.
|
||||||
|
jot = 'й';
|
||||||
|
} else if ( word.match( /у$/i ) ) {
|
||||||
|
// Checking if word ends on 'у'. 'У' can be either consonant 'W' or
|
||||||
|
// vowel 'U' in cyrillic Ossetic.
|
||||||
|
// Examples: {{grammar:genitive|аунеу}} = аунеуы,
|
||||||
|
// {{grammar:genitive|лæппу}} = лæппуйы.
|
||||||
|
if ( !word.slice( -2, -1 ).match( /[аæеёиоыэюя]$/i ) ) {
|
||||||
|
jot = 'й';
|
||||||
|
}
|
||||||
|
} else if ( !word.match( /[бвгджзйклмнопрстфхцчшщьъ]$/i ) ) {
|
||||||
|
hyphen = '-';
|
||||||
|
}
|
||||||
|
|
||||||
|
switch ( form ) {
|
||||||
|
case 'genitive':
|
||||||
|
ending = hyphen + jot + 'ы';
|
||||||
|
break;
|
||||||
|
case 'dative':
|
||||||
|
ending = hyphen + jot + 'æн';
|
||||||
|
break;
|
||||||
|
case 'allative':
|
||||||
|
ending = hyphen + endAllative;
|
||||||
|
break;
|
||||||
|
case 'ablative':
|
||||||
|
if ( jot === 'й' ) {
|
||||||
|
ending = hyphen + jot + 'æ';
|
||||||
|
} else {
|
||||||
|
ending = hyphen + jot + 'æй';
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'superessive':
|
||||||
|
ending = hyphen + jot + 'ыл';
|
||||||
|
break;
|
||||||
|
case 'equative':
|
||||||
|
ending = hyphen + jot + 'ау';
|
||||||
|
break;
|
||||||
|
case 'comitative':
|
||||||
|
ending = hyphen + 'имæ';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return word + ending;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
}( jQuery ) );
|
29
assets/webconfig/js/lib/jquery.i18n/languages/ru.js
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
/**
|
||||||
|
* Russian (Русский) language functions
|
||||||
|
*/
|
||||||
|
|
||||||
|
( function ( $ ) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
$.i18n.languages.ru = $.extend( {}, $.i18n.languages[ 'default' ], {
|
||||||
|
convertGrammar: function ( word, form ) {
|
||||||
|
if ( form === 'genitive' ) { // родительный падеж
|
||||||
|
if ( word.slice( -1 ) === 'ь' ) {
|
||||||
|
word = word.slice( 0, -1 ) + 'я';
|
||||||
|
} else if ( word.slice( -2 ) === 'ия' ) {
|
||||||
|
word = word.slice( 0, -2 ) + 'ии';
|
||||||
|
} else if ( word.slice( -2 ) === 'ка' ) {
|
||||||
|
word = word.slice( 0, -2 ) + 'ки';
|
||||||
|
} else if ( word.slice( -2 ) === 'ти' ) {
|
||||||
|
word = word.slice( 0, -2 ) + 'тей';
|
||||||
|
} else if ( word.slice( -2 ) === 'ды' ) {
|
||||||
|
word = word.slice( 0, -2 ) + 'дов';
|
||||||
|
} else if ( word.slice( -3 ) === 'ник' ) {
|
||||||
|
word = word.slice( 0, -3 ) + 'ника';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return word;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
}( jQuery ) );
|
26
assets/webconfig/js/lib/jquery.i18n/languages/sl.js
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
/**
|
||||||
|
* Slovenian (Slovenščina) language functions
|
||||||
|
*/
|
||||||
|
|
||||||
|
( function ( $ ) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
$.i18n.languages.sl = $.extend( {}, $.i18n.languages[ 'default' ], {
|
||||||
|
convertGrammar: function ( word, form ) {
|
||||||
|
switch ( form ) {
|
||||||
|
// locative
|
||||||
|
case 'mestnik':
|
||||||
|
word = 'o ' + word;
|
||||||
|
|
||||||
|
break;
|
||||||
|
// instrumental
|
||||||
|
case 'orodnik':
|
||||||
|
word = 'z ' + word;
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return word;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
}( jQuery ) );
|
39
assets/webconfig/js/lib/jquery.i18n/languages/uk.js
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
/**
|
||||||
|
* Ukrainian (Українська) language functions
|
||||||
|
*/
|
||||||
|
|
||||||
|
( function ( $ ) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
$.i18n.languages.uk = $.extend( {}, $.i18n.languages[ 'default' ], {
|
||||||
|
convertGrammar: function ( word, form ) {
|
||||||
|
switch ( form ) {
|
||||||
|
case 'genitive': // родовий відмінок
|
||||||
|
if ( word.slice( -1 ) === 'ь' ) {
|
||||||
|
word = word.slice( 0, -1 ) + 'я';
|
||||||
|
} else if ( word.slice( -2 ) === 'ія' ) {
|
||||||
|
word = word.slice( 0, -2 ) + 'ії';
|
||||||
|
} else if ( word.slice( -2 ) === 'ка' ) {
|
||||||
|
word = word.slice( 0, -2 ) + 'ки';
|
||||||
|
} else if ( word.slice( -2 ) === 'ти' ) {
|
||||||
|
word = word.slice( 0, -2 ) + 'тей';
|
||||||
|
} else if ( word.slice( -2 ) === 'ды' ) {
|
||||||
|
word = word.slice( 0, -2 ) + 'дов';
|
||||||
|
} else if ( word.slice( -3 ) === 'ник' ) {
|
||||||
|
word = word.slice( 0, -3 ) + 'ника';
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 'accusative': // знахідний відмінок
|
||||||
|
if ( word.slice( -2 ) === 'ія' ) {
|
||||||
|
word = word.slice( 0, -2 ) + 'ію';
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return word;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
|
||||||
|
}( jQuery ) );
|
@ -1,8 +1,9 @@
|
|||||||
var storedAccess;
|
var storedAccess;
|
||||||
var storedLang;
|
var storedLang;
|
||||||
var availLang = ['cs','de','en','es','fr','it','nl','pl','ro','sv','vi','ru','tr','zh-CN'];
|
var availLang = ['cs', 'de', 'en', 'es', 'fr', 'it', 'nl', 'nb', 'pl', 'pt', 'ro', 'sv', 'vi', 'ru', 'tr', 'zh-CN'];
|
||||||
var availLangText = ['Čeština', 'Deutsch', 'English', 'Español', 'Français', 'Italiano', 'Nederlands', 'Polski', 'Română', 'Svenska', 'Tiếng Việt', 'русский', 'Türkçe', '汉语'];
|
var availLangText = ['Čeština', 'Deutsch', 'English', 'Español', 'Français', 'Italiano', 'Nederlands', 'Norsk Bokmål', 'Polski', 'Português', 'Română', 'Svenska', 'Tiếng Việt', 'русский', 'Türkçe', '汉语'];
|
||||||
var availAccess = ['default','advanced','expert'];
|
var availAccess = ['default', 'advanced', 'expert'];
|
||||||
|
|
||||||
//$.i18n.debug = true;
|
//$.i18n.debug = true;
|
||||||
|
|
||||||
//Change Password
|
//Change Password
|
||||||
|
135
assets/webconfig/js/ui_utils.js
Normal file → Executable file
@ -183,25 +183,22 @@ function initLanguageSelection() {
|
|||||||
langText = availLangText[langIdx];
|
langText = availLangText[langIdx];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$('#language-select').prop('title', langText);
|
$('#language-select').prop('title', langText);
|
||||||
$("#language-select").val(langIdx);
|
$("#language-select").val(langIdx);
|
||||||
$("#language-select").selectpicker("refresh");
|
$("#language-select").selectpicker("refresh");
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateUiOnInstance(inst) {
|
function updateUiOnInstance(inst) {
|
||||||
if (inst != 0) {
|
$("#active_instance_friendly_name").text(window.serverInfo.instance[inst].friendly_name);
|
||||||
var currentURL = $(location).attr("href");
|
if (window.serverInfo.instance.filter(entry => entry.running).length > 1) {
|
||||||
if (currentURL.indexOf('#conf_network') != -1 || currentURL.indexOf('#update') != -1 || currentURL.indexOf('#conf_webconfig') != -1 || currentURL.indexOf('#conf_grabber') != -1 || currentURL.indexOf('#conf_logging') != -1)
|
$('#btn_hypinstanceswitch').toggle(true);
|
||||||
$("#hyperion_global_setting_notify").fadeIn("fast");
|
$('#active_instance_dropdown').prop('disabled', false);
|
||||||
else
|
$('#active_instance_dropdown').css('cursor', 'pointer');
|
||||||
$("#hyperion_global_setting_notify").attr("style", "display:none");
|
} else {
|
||||||
|
$('#btn_hypinstanceswitch').toggle(false);
|
||||||
$("#dashboard_active_instance_friendly_name").html($.i18n('dashboard_active_instance') + ': ' + window.serverInfo.instance[inst].friendly_name);
|
$('#active_instance_dropdown').prop('disabled', true);
|
||||||
$("#dashboard_active_instance").removeAttr("style");
|
$("#active_instance_dropdown").css('cursor', 'default');
|
||||||
}
|
|
||||||
else {
|
|
||||||
$("#hyperion_global_setting_notify").fadeOut("fast");
|
|
||||||
$("#dashboard_active_instance").attr("style", "display:none");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -259,17 +256,17 @@ function showInfoDialog(type, header, message) {
|
|||||||
$('#id_footer').html('<button type="button" class="btn btn-danger" data-dismiss="modal">' + $.i18n('general_btn_ok') + '</button>');
|
$('#id_footer').html('<button type="button" class="btn btn-danger" data-dismiss="modal">' + $.i18n('general_btn_ok') + '</button>');
|
||||||
}
|
}
|
||||||
else if (type == "select") {
|
else if (type == "select") {
|
||||||
$('#id_body').html('<img style="margin-bottom:20px" src="img/hyperion/hyperionlogo.png" alt="Redefine ambient light!">');
|
$('#id_body').html('<img style="margin-bottom:20px" id="id_logo" src="img/hyperion/logo_positiv.png" alt="Redefine ambient light!">');
|
||||||
$('#id_footer').html('<button type="button" id="id_btn_saveset" class="btn btn-primary" data-dismiss="modal"><i class="fa fa-fw fa-save"></i>' + $.i18n('general_btn_saveandreload') + '</button>');
|
$('#id_footer').html('<button type="button" id="id_btn_saveset" class="btn btn-primary" data-dismiss="modal"><i class="fa fa-fw fa-save"></i>' + $.i18n('general_btn_saveandreload') + '</button>');
|
||||||
$('#id_footer').append('<button type="button" class="btn btn-danger" data-dismiss="modal"><i class="fa fa-fw fa-close"></i>' + $.i18n('general_btn_cancel') + '</button>');
|
$('#id_footer').append('<button type="button" class="btn btn-danger" data-dismiss="modal"><i class="fa fa-fw fa-close"></i>' + $.i18n('general_btn_cancel') + '</button>');
|
||||||
}
|
}
|
||||||
else if (type == "iswitch") {
|
else if (type == "iswitch") {
|
||||||
$('#id_body').html('<img style="margin-bottom:20px" src="img/hyperion/hyperionlogo.png" alt="Redefine ambient light!">');
|
$('#id_body').html('<img style="margin-bottom:20px" id="id_logo" src="img/hyperion/logo_positiv.png" alt="Redefine ambient light!">');
|
||||||
$('#id_footer').html('<button type="button" id="id_btn_saveset" class="btn btn-primary" data-dismiss="modal"><i class="fa fa-fw fa-exchange"></i>' + $.i18n('general_btn_iswitch') + '</button>');
|
$('#id_footer').html('<button type="button" id="id_btn_saveset" class="btn btn-primary" data-dismiss="modal"><i class="fa fa-fw fa-exchange"></i>' + $.i18n('general_btn_iswitch') + '</button>');
|
||||||
$('#id_footer').append('<button type="button" class="btn btn-danger" data-dismiss="modal"><i class="fa fa-fw fa-close"></i>' + $.i18n('general_btn_cancel') + '</button>');
|
$('#id_footer').append('<button type="button" class="btn btn-danger" data-dismiss="modal"><i class="fa fa-fw fa-close"></i>' + $.i18n('general_btn_cancel') + '</button>');
|
||||||
}
|
}
|
||||||
else if (type == "uilock") {
|
else if (type == "uilock") {
|
||||||
$('#id_body').html('<img src="img/hyperion/hyperionlogo.png" alt="Redefine ambient light!">');
|
$('#id_body').html('<img id="id_logo" src="img/hyperion/logo_positiv.png" alt="Redefine ambient light!">');
|
||||||
$('#id_footer').html('<b>' + $.i18n('InfoDialog_nowrite_foottext') + '</b>');
|
$('#id_footer').html('<b>' + $.i18n('InfoDialog_nowrite_foottext') + '</b>');
|
||||||
}
|
}
|
||||||
else if (type == "import") {
|
else if (type == "import") {
|
||||||
@ -293,22 +290,22 @@ function showInfoDialog(type, header, message) {
|
|||||||
$('#id_body_rename').html('<i style="margin-bottom:20px" class="fa fa-key modal-icon-edit"><br>');
|
$('#id_body_rename').html('<i style="margin-bottom:20px" class="fa fa-key modal-icon-edit"><br>');
|
||||||
$('#id_body_rename').append('<h4>' + header + '</h4>');
|
$('#id_body_rename').append('<h4>' + header + '</h4>');
|
||||||
$('#id_body_rename').append('<input class="form-control" id="oldPw" placeholder="Old" type="text"> <br />');
|
$('#id_body_rename').append('<input class="form-control" id="oldPw" placeholder="Old" type="text"> <br />');
|
||||||
$('#id_body_rename').append('<input class="form-control" id="newPw" placeholder="New" type="text">');
|
$('#id_body_rename').append('<input class="form-control" id="newPw" placeholder="New" type="password">');
|
||||||
$('#id_footer_rename').html('<button type="button" id="id_btn_ok" class="btn btn-success" data-dismiss-modal="#modal_dialog_rename" disabled><i class="fa fa-fw fa-save"></i>' + $.i18n('general_btn_ok') + '</button>');
|
$('#id_footer_rename').html('<button type="button" id="id_btn_ok" class="btn btn-success" data-dismiss-modal="#modal_dialog_rename" disabled><i class="fa fa-fw fa-save"></i>' + $.i18n('general_btn_ok') + '</button>');
|
||||||
$('#id_footer_rename').append('<button type="button" class="btn btn-danger" data-dismiss="modal"><i class="fa fa-fw fa-close"></i>' + $.i18n('general_btn_cancel') + '</button>');
|
$('#id_footer_rename').append('<button type="button" class="btn btn-danger" data-dismiss="modal"><i class="fa fa-fw fa-close"></i>' + $.i18n('general_btn_cancel') + '</button>');
|
||||||
}
|
}
|
||||||
else if (type == "checklist") {
|
else if (type == "checklist") {
|
||||||
$('#id_body').html('<img style="margin-bottom:20px" src="img/hyperion/hyperionlogo.png" alt="Redefine ambient light!">');
|
$('#id_body').html('<img style="margin-bottom:20px" id="id_logo" src="img/hyperion/logo_positiv.png" alt="Redefine ambient light!">');
|
||||||
$('#id_body').append('<h4 style="font-weight:bold;text-transform:uppercase;">' + $.i18n('infoDialog_checklist_title') + '</h4>');
|
$('#id_body').append('<h4 style="font-weight:bold;text-transform:uppercase;">' + $.i18n('infoDialog_checklist_title') + '</h4>');
|
||||||
$('#id_body').append(header);
|
$('#id_body').append(header);
|
||||||
$('#id_footer').html('<button type="button" class="btn btn-primary" data-dismiss="modal">' + $.i18n('general_btn_ok') + '</button>');
|
$('#id_footer').html('<button type="button" class="btn btn-primary" data-dismiss="modal">' + $.i18n('general_btn_ok') + '</button>');
|
||||||
}
|
}
|
||||||
else if (type == "newToken") {
|
else if (type == "newToken") {
|
||||||
$('#id_body').html('<img style="margin-bottom:20px" src="img/hyperion/hyperionlogo.png" alt="Redefine ambient light!">');
|
$('#id_body').html('<img style="margin-bottom:20px" id="id_logo" src="img/hyperion/logo_positiv.png" alt="Redefine ambient light!">');
|
||||||
$('#id_footer').html('<button type="button" class="btn btn-primary" data-dismiss="modal">' + $.i18n('general_btn_ok') + '</button>');
|
$('#id_footer').html('<button type="button" class="btn btn-primary" data-dismiss="modal">' + $.i18n('general_btn_ok') + '</button>');
|
||||||
}
|
}
|
||||||
else if (type == "grantToken") {
|
else if (type == "grantToken") {
|
||||||
$('#id_body').html('<img style="margin-bottom:20px" src="img/hyperion/hyperionlogo.png" alt="Redefine ambient light!">');
|
$('#id_body').html('<img style="margin-bottom:20px" id="id_logo" src="img/hyperion/logo_positiv.png" alt="Redefine ambient light!">');
|
||||||
$('#id_footer').html('<button type="button" class="btn btn-primary" data-dismiss="modal" id="tok_grant_acc">' + $.i18n('general_btn_grantAccess') + '</button>');
|
$('#id_footer').html('<button type="button" class="btn btn-primary" data-dismiss="modal" id="tok_grant_acc">' + $.i18n('general_btn_grantAccess') + '</button>');
|
||||||
$('#id_footer').append('<button type="button" class="btn btn-danger" data-dismiss="modal" id="tok_deny_acc">' + $.i18n('general_btn_denyAccess') + '</button>');
|
$('#id_footer').append('<button type="button" class="btn btn-danger" data-dismiss="modal" id="tok_deny_acc">' + $.i18n('general_btn_denyAccess') + '</button>');
|
||||||
}
|
}
|
||||||
@ -321,6 +318,9 @@ function showInfoDialog(type, header, message) {
|
|||||||
if (type == "select" || type == "iswitch")
|
if (type == "select" || type == "iswitch")
|
||||||
$('#id_body').append('<select id="id_select" class="form-control" style="margin-top:10px;width:auto;"></select>');
|
$('#id_body').append('<select id="id_select" class="form-control" style="margin-top:10px;width:auto;"></select>');
|
||||||
|
|
||||||
|
if (getStorage("darkMode", false) == "on")
|
||||||
|
$('#id_logo').attr("src", 'img/hyperion/logo_negativ.png');
|
||||||
|
|
||||||
$(type == "renInst" || type == "changePassword" ? "#modal_dialog_rename" : "#modal_dialog").modal({
|
$(type == "renInst" || type == "changePassword" ? "#modal_dialog_rename" : "#modal_dialog").modal({
|
||||||
backdrop: "static",
|
backdrop: "static",
|
||||||
keyboard: false,
|
keyboard: false,
|
||||||
@ -329,7 +329,7 @@ function showInfoDialog(type, header, message) {
|
|||||||
|
|
||||||
$(document).on('click', '[data-dismiss-modal]', function () {
|
$(document).on('click', '[data-dismiss-modal]', function () {
|
||||||
var target = $(this).attr('data-dismiss-modal');
|
var target = $(this).attr('data-dismiss-modal');
|
||||||
$.find(target).modal.hide();
|
$(target).modal('hide'); // lgtm [js/xss-through-dom]
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -807,14 +807,14 @@ function createRow(id) {
|
|||||||
return el;
|
return el;
|
||||||
}
|
}
|
||||||
|
|
||||||
function createOptPanel(phicon, phead, bodyid, footerid) {
|
function createOptPanel(phicon, phead, bodyid, footerid, css) {
|
||||||
phead = '<i class="fa ' + phicon + ' fa-fw"></i>' + phead;
|
phead = '<i class="fa ' + phicon + ' fa-fw"></i>' + phead;
|
||||||
var pfooter = document.createElement('button');
|
var pfooter = document.createElement('button');
|
||||||
pfooter.className = "btn btn-primary";
|
pfooter.className = "btn btn-primary";
|
||||||
pfooter.setAttribute("id", footerid);
|
pfooter.setAttribute("id", footerid);
|
||||||
pfooter.innerHTML = '<i class="fa fa-fw fa-save"></i>' + $.i18n('general_button_savesettings');
|
pfooter.innerHTML = '<i class="fa fa-fw fa-save"></i>' + $.i18n('general_button_savesettings');
|
||||||
|
|
||||||
return createPanel(phead, "", pfooter, "panel-default", bodyid);
|
return createPanel(phead, "", pfooter, "panel-default", bodyid, css);
|
||||||
}
|
}
|
||||||
|
|
||||||
function compareTwoValues(key1, key2, order = 'asc') {
|
function compareTwoValues(key1, key2, order = 'asc') {
|
||||||
@ -871,7 +871,7 @@ function sortProperties(list) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function createHelpTable(list, phead) {
|
function createHelpTable(list, phead, panelId) {
|
||||||
var table = document.createElement('table');
|
var table = document.createElement('table');
|
||||||
var thead = document.createElement('thead');
|
var thead = document.createElement('thead');
|
||||||
var tbody = document.createElement('tbody');
|
var tbody = document.createElement('tbody');
|
||||||
@ -910,10 +910,10 @@ function createHelpTable(list, phead) {
|
|||||||
table.appendChild(thead);
|
table.appendChild(thead);
|
||||||
table.appendChild(tbody);
|
table.appendChild(tbody);
|
||||||
|
|
||||||
return createPanel(phead, table);
|
return createPanel(phead, table, undefined, undefined, undefined, undefined, panelId);
|
||||||
}
|
}
|
||||||
|
|
||||||
function createPanel(head, body, footer, type, bodyid) {
|
function createPanel(head, body, footer, type, bodyid, css, panelId) {
|
||||||
var cont = document.createElement('div');
|
var cont = document.createElement('div');
|
||||||
var p = document.createElement('div');
|
var p = document.createElement('div');
|
||||||
var phead = document.createElement('div');
|
var phead = document.createElement('div');
|
||||||
@ -926,7 +926,11 @@ function createPanel(head, body, footer, type, bodyid) {
|
|||||||
type = 'panel-default';
|
type = 'panel-default';
|
||||||
|
|
||||||
p.className = 'panel ' + type;
|
p.className = 'panel ' + type;
|
||||||
phead.className = 'panel-heading';
|
if (typeof panelId != 'undefined') {
|
||||||
|
p.setAttribute("id", panelId);
|
||||||
|
}
|
||||||
|
|
||||||
|
phead.className = 'panel-heading ' + css;
|
||||||
pbody.className = 'panel-body';
|
pbody.className = 'panel-body';
|
||||||
pfooter.className = 'panel-footer';
|
pfooter.className = 'panel-footer';
|
||||||
|
|
||||||
@ -1069,6 +1073,43 @@ function getReleases(callback) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getSystemInfo() {
|
||||||
|
var sys = window.sysInfo.system;
|
||||||
|
var shy = window.sysInfo.hyperion;
|
||||||
|
|
||||||
|
var info = "Hyperion Server: \n";
|
||||||
|
info += '- Build: ' + shy.build + '\n';
|
||||||
|
info += '- Build time: ' + shy.time + '\n';
|
||||||
|
info += '- Git Remote: ' + shy.gitremote + '\n';
|
||||||
|
info += '- Version: ' + shy.version + '\n';
|
||||||
|
info += '- UI Lang: ' + storedLang + ' (BrowserLang: ' + navigator.language + ')\n';
|
||||||
|
info += '- UI Access: ' + storedAccess + '\n';
|
||||||
|
//info += '- Log lvl: ' + window.serverConfig.logger.level + '\n';
|
||||||
|
info += '- Avail Capt: ' + window.serverInfo.grabbers.available + '\n';
|
||||||
|
info += '- Database: ' + (shy.readOnlyMode ? "ready-only" : "read/write") + '\n';
|
||||||
|
|
||||||
|
info += '\n';
|
||||||
|
|
||||||
|
info += 'Hyperion Server OS: \n';
|
||||||
|
info += '- Distribution: ' + sys.prettyName + '\n';
|
||||||
|
info += '- Architecture: ' + sys.architecture + '\n';
|
||||||
|
|
||||||
|
if (sys.cpuModelName)
|
||||||
|
info += '- CPU Model: ' + sys.cpuModelName + '\n';
|
||||||
|
if (sys.cpuModelType)
|
||||||
|
info += '- CPU Type: ' + sys.cpuModelType + '\n';
|
||||||
|
if (sys.cpuRevision)
|
||||||
|
info += '- CPU Revision: ' + sys.cpuRevision + '\n';
|
||||||
|
if (sys.cpuHardware)
|
||||||
|
info += '- CPU Hardware: ' + sys.cpuHardware + '\n';
|
||||||
|
|
||||||
|
info += '- Kernel: ' + sys.kernelType + ' (' + sys.kernelVersion + ' (WS: ' + sys.wordSize + '))\n';
|
||||||
|
info += '- Qt Version: ' + sys.qtVersion + '\n';
|
||||||
|
info += '- Python Version: ' + sys.pyVersion + '\n';
|
||||||
|
info += '- Browser: ' + navigator.userAgent;
|
||||||
|
return info;
|
||||||
|
}
|
||||||
|
|
||||||
function handleDarkMode() {
|
function handleDarkMode() {
|
||||||
$("<link/>", {
|
$("<link/>", {
|
||||||
rel: "stylesheet",
|
rel: "stylesheet",
|
||||||
@ -1078,5 +1119,43 @@ function handleDarkMode() {
|
|||||||
|
|
||||||
setStorage("darkMode", "on", false);
|
setStorage("darkMode", "on", false);
|
||||||
$('#btn_darkmode_icon').removeClass('fa fa-moon-o');
|
$('#btn_darkmode_icon').removeClass('fa fa-moon-o');
|
||||||
$('#btn_darkmode_icon').addClass('fa fa-sun-o');
|
$('#btn_darkmode_icon').addClass('mdi mdi-white-balance-sunny');
|
||||||
|
$('#navbar_brand_logo').attr("src", 'img/hyperion/logo_negativ.png');
|
||||||
|
}
|
||||||
|
|
||||||
|
function isAccessLevelCompliant(accessLevel) {
|
||||||
|
var isOK = true;
|
||||||
|
if (accessLevel) {
|
||||||
|
if (accessLevel === 'system') {
|
||||||
|
isOK = false;
|
||||||
|
}
|
||||||
|
else if (accessLevel === 'advanced' && storedAccess === 'default') {
|
||||||
|
isOK = false;
|
||||||
|
}
|
||||||
|
else if (accessLevel === 'expert' && storedAccess !== 'expert') {
|
||||||
|
isOK = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return isOK
|
||||||
|
}
|
||||||
|
|
||||||
|
function showInputOptions(path, elements, state) {
|
||||||
|
for (var i = 0; i < elements.length; i++) {
|
||||||
|
$('[data-schemapath="' + path + '.' + elements[i] + '"]').toggle(state);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function showInputOptionsForKey(editor, item, showForKey, state) {
|
||||||
|
var elements = [];
|
||||||
|
for (var key in editor.schema.properties[item].properties) {
|
||||||
|
if (showForKey !== key) {
|
||||||
|
var accessLevel = editor.schema.properties[item].properties[key].access;
|
||||||
|
|
||||||
|
//Always disable all elements, but only enable elements, if access level compliant
|
||||||
|
if (!state || isAccessLevelCompliant(accessLevel)) {
|
||||||
|
elements.push(key);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
showInputOptions("root." + item, elements, state);
|
||||||
}
|
}
|
||||||
|
456
assets/webconfig/js/wizard.js
Normal file → Executable file
@ -53,6 +53,9 @@ function startWizardRGB() {
|
|||||||
$('#wizp2_body').append('<table class="table borderless" style="width:200px"><tbody><tr><td class="ltd"><label>' + $.i18n('wiz_rgb_qrend') + '</label></td><td class="itd"><select id="wiz_r_select" class="form-control wselect"></select></td></tr><tr><td class="ltd"><label>' + $.i18n('wiz_rgb_qgend') + '</label></td><td class="itd"><select id="wiz_g_select" class="form-control wselect"></select></td></tr></tbody></table>');
|
$('#wizp2_body').append('<table class="table borderless" style="width:200px"><tbody><tr><td class="ltd"><label>' + $.i18n('wiz_rgb_qrend') + '</label></td><td class="itd"><select id="wiz_r_select" class="form-control wselect"></select></td></tr><tr><td class="ltd"><label>' + $.i18n('wiz_rgb_qgend') + '</label></td><td class="itd"><select id="wiz_g_select" class="form-control wselect"></select></td></tr></tbody></table>');
|
||||||
$('#wizp2_footer').html('<button type="button" class="btn btn-primary" id="btn_wiz_save"><i class="fa fa-fw fa-save"></i>' + $.i18n('general_btn_save') + '</button><button type="button" class="btn btn-primary" id="btn_wiz_checkok" style="display:none" data-dismiss="modal"><i class="fa fa-fw fa-check"></i>' + $.i18n('general_btn_ok') + '</button><button type="button" class="btn btn-danger" id="btn_wiz_abort"><i class="fa fa-fw fa-close"></i>' + $.i18n('general_btn_cancel') + '</button>');
|
$('#wizp2_footer').html('<button type="button" class="btn btn-primary" id="btn_wiz_save"><i class="fa fa-fw fa-save"></i>' + $.i18n('general_btn_save') + '</button><button type="button" class="btn btn-primary" id="btn_wiz_checkok" style="display:none" data-dismiss="modal"><i class="fa fa-fw fa-check"></i>' + $.i18n('general_btn_ok') + '</button><button type="button" class="btn btn-danger" id="btn_wiz_abort"><i class="fa fa-fw fa-close"></i>' + $.i18n('general_btn_cancel') + '</button>');
|
||||||
|
|
||||||
|
if (getStorage("darkMode", false) == "on")
|
||||||
|
$('#wizard_logo').attr("src", 'img/hyperion/logo_negativ.png');
|
||||||
|
|
||||||
//open modal
|
//open modal
|
||||||
$("#wizard_modal").modal({
|
$("#wizard_modal").modal({
|
||||||
backdrop: "static",
|
backdrop: "static",
|
||||||
@ -424,11 +427,14 @@ function startWizardCC() {
|
|||||||
}
|
}
|
||||||
//create html
|
//create html
|
||||||
$('#wiz_header').html('<i class="fa fa-magic fa-fw"></i>' + $.i18n('wiz_cc_title'));
|
$('#wiz_header').html('<i class="fa fa-magic fa-fw"></i>' + $.i18n('wiz_cc_title'));
|
||||||
$('#wizp1_body').html('<h4 style="font-weight:bold;text-transform:uppercase;">' + $.i18n('wiz_cc_title') + '</h4><p>' + $.i18n('wiz_cc_intro1') + '</p><label>' + $.i18n('wiz_cc_kwebs') + '</label><input class="form-control" style="width:170px;margin:auto" id="wiz_cc_kodiip" type="text" placeholder="' + kodiAddress + '" value="' + kodiAddress + '" /><span id="kodi_status"></span><span id="multi_cali"></span>');
|
$('#wizp1_body').html('<h4 style="font-weight:bold;text-transform:uppercase;">' + $.i18n('wiz_cc_title') + '</h4><p>' + $.i18n('wiz_cc_intro1') + '</p><label>' + $.i18n('wiz_cc_kwebs') + '</label><input class="form-control" style="width:170px;margin:auto" id="wiz_cc_kodiip" type="text" placeholder="' + kodiAddress + '" value="' + kodiAddress + '" /><span id="kodi_status"></span><span id="multi_cali"></span>');
|
||||||
$('#wizp1_footer').html('<button type="button" class="btn btn-primary" id="btn_wiz_cont" disabled="disabled"><i class="fa fa-fw fa-check"></i>' + $.i18n('general_btn_continue') + '</button><button type="button" class="btn btn-danger" data-dismiss="modal"><i class="fa fa-fw fa-close"></i>' + $.i18n('general_btn_cancel') + '</button>');
|
$('#wizp1_footer').html('<button type="button" class="btn btn-primary" id="btn_wiz_cont" disabled="disabled"><i class="fa fa-fw fa-check"></i>' + $.i18n('general_btn_continue') + '</button><button type="button" class="btn btn-danger" data-dismiss="modal"><i class="fa fa-fw fa-close"></i>' + $.i18n('general_btn_cancel') + '</button>');
|
||||||
$('#wizp2_body').html('<div id="wiz_cc_desc" style="font-weight:bold"></div><div id="editor_container_wiz"></div>');
|
$('#wizp2_body').html('<div id="wiz_cc_desc" style="font-weight:bold"></div><div id="editor_container_wiz"></div>');
|
||||||
$('#wizp2_footer').html('<button type="button" class="btn btn-primary" id="btn_wiz_back"><i class="fa fa-fw fa-chevron-left"></i>' + $.i18n('general_btn_back') + '</button><button type="button" class="btn btn-primary" id="btn_wiz_next">' + $.i18n('general_btn_next') + '<i style="margin-left:4px;"class="fa fa-fw fa-chevron-right"></i></button><button type="button" class="btn btn-warning" id="btn_wiz_save" style="display:none"><i class="fa fa-fw fa-save"></i>' + $.i18n('general_btn_save') + '</button><button type="button" class="btn btn-danger" id="btn_wiz_abort"><i class="fa fa-fw fa-close"></i>' + $.i18n('general_btn_cancel') + '</button>');
|
$('#wizp2_footer').html('<button type="button" class="btn btn-primary" id="btn_wiz_back"><i class="fa fa-fw fa-chevron-left"></i>' + $.i18n('general_btn_back') + '</button><button type="button" class="btn btn-primary" id="btn_wiz_next">' + $.i18n('general_btn_next') + '<i style="margin-left:4px;"class="fa fa-fw fa-chevron-right"></i></button><button type="button" class="btn btn-warning" id="btn_wiz_save" style="display:none"><i class="fa fa-fw fa-save"></i>' + $.i18n('general_btn_save') + '</button><button type="button" class="btn btn-danger" id="btn_wiz_abort"><i class="fa fa-fw fa-close"></i>' + $.i18n('general_btn_cancel') + '</button>');
|
||||||
|
|
||||||
|
if (getStorage("darkMode", false) == "on")
|
||||||
|
$('#wizard_logo').attr("src", 'img/hyperion/logo_negativ.png');
|
||||||
|
|
||||||
//open modal
|
//open modal
|
||||||
$("#wizard_modal").modal({
|
$("#wizard_modal").modal({
|
||||||
backdrop: "static",
|
backdrop: "static",
|
||||||
@ -437,10 +443,9 @@ function startWizardCC() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
$('#wiz_cc_kodiip').off().on('change', function () {
|
$('#wiz_cc_kodiip').off().on('change', function () {
|
||||||
|
|
||||||
kodiAddress = $(this).val().trim();
|
kodiAddress = $(this).val().trim();
|
||||||
$('#wizp1_body').find("kodiAddress").val(kodiAddress);
|
$('#wizp1_body').find("kodiAddress").val(kodiAddress);
|
||||||
|
|
||||||
$('#kodi_status').html('');
|
$('#kodi_status').html('');
|
||||||
|
|
||||||
// Remove Kodi's default Web-Socket port (9090) from display and ensure Kodi's default REST-API port (8080) is mapped to web-socket port to ease migration
|
// Remove Kodi's default Web-Socket port (9090) from display and ensure Kodi's default REST-API port (8080) is mapped to web-socket port to ease migration
|
||||||
@ -670,6 +675,9 @@ function startWizardPhilipsHue(e) {
|
|||||||
$('#wizp2_footer').html('<button type="button" class="btn btn-primary" id="btn_wiz_save" style="display:none"><i class="fa fa-fw fa-save"></i>' + $.i18n('general_btn_save') + '</button><button type="button" class="btn btn-danger" id="btn_wiz_abort"><i class="fa fa-fw fa-close"></i>' + $.i18n('general_btn_cancel') + '</button>');
|
$('#wizp2_footer').html('<button type="button" class="btn btn-primary" id="btn_wiz_save" style="display:none"><i class="fa fa-fw fa-save"></i>' + $.i18n('general_btn_save') + '</button><button type="button" class="btn btn-danger" id="btn_wiz_abort"><i class="fa fa-fw fa-close"></i>' + $.i18n('general_btn_cancel') + '</button>');
|
||||||
$('#wizp3_body').html('<span>' + $.i18n('wiz_hue_press_link') + '</span> <br /><br /><center><span id="connectionTime"></span><br /><i class="fa fa-cog fa-spin" style="font-size:100px"></i></center>');
|
$('#wizp3_body').html('<span>' + $.i18n('wiz_hue_press_link') + '</span> <br /><br /><center><span id="connectionTime"></span><br /><i class="fa fa-cog fa-spin" style="font-size:100px"></i></center>');
|
||||||
|
|
||||||
|
if (getStorage("darkMode", false) == "on")
|
||||||
|
$('#wizard_logo').attr("src", 'img/hyperion/logo_negativ.png');
|
||||||
|
|
||||||
//open modal
|
//open modal
|
||||||
$("#wizard_modal").modal({
|
$("#wizard_modal").modal({
|
||||||
backdrop: "static",
|
backdrop: "static",
|
||||||
@ -788,8 +796,6 @@ async function discover_hue_bridges() {
|
|||||||
const r = res.info;
|
const r = res.info;
|
||||||
|
|
||||||
// Process devices returned by discovery
|
// Process devices returned by discovery
|
||||||
console.log(r);
|
|
||||||
|
|
||||||
if (r.devices.length == 0)
|
if (r.devices.length == 0)
|
||||||
$('#wiz_hue_ipstate').html($.i18n('wiz_hue_failure_ip'));
|
$('#wiz_hue_ipstate').html($.i18n('wiz_hue_failure_ip'));
|
||||||
else {
|
else {
|
||||||
@ -832,11 +838,11 @@ async function identify_hue_device(hostAddress, username, id) {
|
|||||||
$('#btn_wiz_save').attr('disabled', true);
|
$('#btn_wiz_save').attr('disabled', true);
|
||||||
|
|
||||||
let params = { host: hostAddress, user: username, lightId: id };
|
let params = { host: hostAddress, user: username, lightId: id };
|
||||||
const res = await requestLedDeviceIdentification('philipshue', params);
|
await requestLedDeviceIdentification('philipshue', params);
|
||||||
|
|
||||||
if (!window.readOnlyMode) {
|
if (!window.readOnlyMode) {
|
||||||
$('#btn_wiz_save').attr('disabled', false);
|
$('#btn_wiz_save').attr('disabled', false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function getHueIPs() {
|
function getHueIPs() {
|
||||||
@ -1187,7 +1193,6 @@ function get_hue_lights() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
(cC == 0 || window.readOnlyMode) ? $('#btn_wiz_save').attr("disabled", true) : $('#btn_wiz_save').attr("disabled", false);
|
(cC == 0 || window.readOnlyMode) ? $('#btn_wiz_save').attr("disabled", true) : $('#btn_wiz_save').attr("disabled", false);
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
$('.hue_sel_watch').trigger('change');
|
$('.hue_sel_watch').trigger('change');
|
||||||
@ -1208,108 +1213,6 @@ function abortConnection(UserInterval) {
|
|||||||
$("#wiz_hue_usrstate").html($.i18n('wiz_hue_failure_connection'));
|
$("#wiz_hue_usrstate").html($.i18n('wiz_hue_failure_connection'));
|
||||||
}
|
}
|
||||||
|
|
||||||
//****************************
|
|
||||||
// Wizard WLED
|
|
||||||
//****************************
|
|
||||||
var lights = null;
|
|
||||||
function startWizardWLED(e) {
|
|
||||||
//create html
|
|
||||||
|
|
||||||
var wled_title = 'wiz_wled_title';
|
|
||||||
var wled_intro1 = 'wiz_wled_intro1';
|
|
||||||
|
|
||||||
$('#wiz_header').html('<i class="fa fa-magic fa-fw"></i>' + $.i18n(wled_title));
|
|
||||||
$('#wizp1_body').html('<h4 style="font-weight:bold;text-transform:uppercase;">' + $.i18n(wled_title) + '</h4><p>' + $.i18n(wled_intro1) + '</p>');
|
|
||||||
$('#wizp1_footer').html('<button type="button" class="btn btn-primary" id="btn_wiz_cont"><i class="fa fa-fw fa-check"></i>' + $.i18n('general_btn_continue') + '</button><button type="button" class="btn btn-danger" data-dismiss="modal"><i class="fa fa-fw fa-close"></i>' + $.i18n('general_btn_cancel') + '</button>');
|
|
||||||
|
|
||||||
/*$('#wizp2_body').html('<div id="wh_topcontainer"></div>');
|
|
||||||
|
|
||||||
$('#wh_topcontainer').append('<div class="form-group" id="usrcont" style="display:none"></div>');
|
|
||||||
|
|
||||||
$('#wizp2_body').append('<div id="hue_ids_t" style="display:none"><p style="font-weight:bold" id="hue_id_headline">'+$.i18n('wiz_wled_desc2')+'</p></div>');
|
|
||||||
|
|
||||||
createTable("lidsh", "lidsb", "hue_ids_t");
|
|
||||||
$('.lidsh').append(createTableRow([$.i18n('edt_dev_spec_lights_title'),$.i18n('wiz_pos'),$.i18n('wiz_identify')], true));
|
|
||||||
$('#wizp2_footer').html('<button type="button" class="btn btn-primary" id="btn_wiz_save" style="display:none"><i class="fa fa-fw fa-save"></i>'+$.i18n('general_btn_save')+'</button><button type="button" class="btn btn-danger" id="btn_wiz_abort"><i class="fa fa-fw fa-close"></i>'+$.i18n('general_btn_cancel')+'</button>');
|
|
||||||
*/
|
|
||||||
//open modal
|
|
||||||
$("#wizard_modal").modal({
|
|
||||||
backdrop: "static",
|
|
||||||
keyboard: false,
|
|
||||||
show: true
|
|
||||||
});
|
|
||||||
|
|
||||||
//listen for continue
|
|
||||||
$('#btn_wiz_cont').off().on('click', function () {
|
|
||||||
/* For testing only
|
|
||||||
|
|
||||||
discover_wled();
|
|
||||||
|
|
||||||
var hostAddress = conf_editor.getEditor("root.specificOptions.host").getValue();
|
|
||||||
if(hostAddress != "")
|
|
||||||
{
|
|
||||||
getProperties_wled(hostAddress,"info");
|
|
||||||
identify_wled(hostAddress)
|
|
||||||
}
|
|
||||||
|
|
||||||
For testing only */
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
async function discover_wled() {
|
|
||||||
const res = await requestLedDeviceDiscovery('wled');
|
|
||||||
|
|
||||||
// TODO: error case unhandled
|
|
||||||
// res can be: false (timeout) or res.error (not found)
|
|
||||||
if (res && !res.error) {
|
|
||||||
const r = res.info
|
|
||||||
|
|
||||||
// Process devices returned by discovery
|
|
||||||
console.log(r);
|
|
||||||
|
|
||||||
if (r.devices.length == 0)
|
|
||||||
$('#wiz_hue_ipstate').html($.i18n('wiz_hue_failure_ip'));
|
|
||||||
else {
|
|
||||||
for (const device of r.devices) {
|
|
||||||
console.log("Device:", device);
|
|
||||||
|
|
||||||
var ip = device.hostname + ":" + device.port;
|
|
||||||
console.log("Host:", ip);
|
|
||||||
|
|
||||||
//wledIPs.push({internalipaddress : ip});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async function getProperties_wled(hostAddress, resourceFilter) {
|
|
||||||
let params = { host: hostAddress, filter: resourceFilter };
|
|
||||||
|
|
||||||
const res = await requestLedDeviceProperties('wled', params);
|
|
||||||
|
|
||||||
// TODO: error case unhandled
|
|
||||||
// res can be: false (timeout) or res.error (not found)
|
|
||||||
if (res && !res.error) {
|
|
||||||
const r = res.info
|
|
||||||
|
|
||||||
// Process properties returned
|
|
||||||
console.log(r);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async function identify_wled(hostAddress) {
|
|
||||||
|
|
||||||
// Take care that new record cannot be save during background process
|
|
||||||
$('#btn_wiz_save').attr('disabled', true);
|
|
||||||
|
|
||||||
let params = { host: hostAddress };
|
|
||||||
const res = await requestLedDeviceIdentification('wled', params);
|
|
||||||
|
|
||||||
if (!window.readOnlyMode) {
|
|
||||||
$('#btn_wiz_save').attr('disabled', false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//****************************
|
//****************************
|
||||||
// Wizard Yeelight
|
// Wizard Yeelight
|
||||||
//****************************
|
//****************************
|
||||||
@ -1339,6 +1242,9 @@ function startWizardYeelight(e) {
|
|||||||
+ $.i18n('general_btn_save') + '</button><buttowindow.serverConfig.device = d;n type="button" class="btn btn-danger" id="btn_wiz_abort"><i class="fa fa-fw fa-close"></i>'
|
+ $.i18n('general_btn_save') + '</button><buttowindow.serverConfig.device = d;n type="button" class="btn btn-danger" id="btn_wiz_abort"><i class="fa fa-fw fa-close"></i>'
|
||||||
+ $.i18n('general_btn_cancel') + '</button>');
|
+ $.i18n('general_btn_cancel') + '</button>');
|
||||||
|
|
||||||
|
if (getStorage("darkMode", false) == "on")
|
||||||
|
$('#wizard_logo').attr("src", 'img/hyperion/logo_negativ.png');
|
||||||
|
|
||||||
//open modal
|
//open modal
|
||||||
$("#wizard_modal").modal({ backdrop: "static", keyboard: false, show: true });
|
$("#wizard_modal").modal({ backdrop: "static", keyboard: false, show: true });
|
||||||
|
|
||||||
@ -1438,8 +1344,17 @@ async function discover_yeelight_lights() {
|
|||||||
var light = {};
|
var light = {};
|
||||||
light.host = device.hostname;
|
light.host = device.hostname;
|
||||||
light.port = device.port;
|
light.port = device.port;
|
||||||
light.name = device.other.name;
|
|
||||||
light.model = device.other.model;
|
if (device.txt) {
|
||||||
|
light.name = device.name;
|
||||||
|
light.model = device.txt.md;
|
||||||
|
//Yeelight does not provide correct API port with mDNS response, use default one
|
||||||
|
light.port = 55443;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
light.name = device.other.name;
|
||||||
|
light.model = device.other.model;
|
||||||
|
}
|
||||||
lights.push(light);
|
lights.push(light);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1469,7 +1384,8 @@ async function discover_yeelight_lights() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function assign_yeelight_lights() {
|
function assign_yeelight_lights() {
|
||||||
var models = ['color', 'color1', 'color2', 'color4', 'stripe', 'strip1'];
|
// Model mappings, see https://www.home-assistant.io/integrations/yeelight/
|
||||||
|
var models = ['color', 'color1', 'YLDP02YL', 'YLDP02YL', 'color2', 'YLDP06YL', 'color4', 'YLDP13YL', 'stripe', 'YLDD04YL', 'strip1', 'YLDD01YL', 'YLDD02YL'];
|
||||||
|
|
||||||
// If records are left for configuration
|
// If records are left for configuration
|
||||||
if (Object.keys(lights).length > 0) {
|
if (Object.keys(lights).length > 0) {
|
||||||
@ -1534,7 +1450,7 @@ function assign_yeelight_lights() {
|
|||||||
$('.yee_sel_watch').trigger('change');
|
$('.yee_sel_watch').trigger('change');
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
var noLightsTxt = '<p style="font-weight:bold;color:red;">' + $.i18n('wiz_noLights','Yeelights') + '</p>';
|
var noLightsTxt = '<p style="font-weight:bold;color:red;">' + $.i18n('wiz_noLights', 'Yeelights') + '</p>';
|
||||||
$('#wizp2_body').append(noLightsTxt);
|
$('#wizp2_body').append(noLightsTxt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1555,15 +1471,14 @@ async function getProperties_yeelight(hostname, port) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function identify_yeelight_device(hostname, port) {
|
async function identify_yeelight_device(hostname, port) {
|
||||||
|
|
||||||
// Take care that new record cannot be save during background process
|
// Take care that new record cannot be save during background process
|
||||||
$('#btn_wiz_save').attr('disabled', true);
|
$('#btn_wiz_save').attr('disabled', true);
|
||||||
|
|
||||||
let params = { hostname: hostname, port: port };
|
let params = { hostname: hostname, port: port };
|
||||||
const res = await requestLedDeviceIdentification("yeelight", params);
|
await requestLedDeviceIdentification("yeelight", params);
|
||||||
|
|
||||||
if (!window.readOnlyMode) {
|
if (!window.readOnlyMode) {
|
||||||
$('#btn_wiz_save').attr('disabled', false);
|
$('#btn_wiz_save').attr('disabled', false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1596,6 +1511,9 @@ function startWizardAtmoOrb(e) {
|
|||||||
+ $.i18n('general_btn_save') + '</button><buttowindow.serverConfig.device = d;n type="button" class="btn btn-danger" id="btn_wiz_abort"><i class="fa fa-fw fa-close"></i>'
|
+ $.i18n('general_btn_save') + '</button><buttowindow.serverConfig.device = d;n type="button" class="btn btn-danger" id="btn_wiz_abort"><i class="fa fa-fw fa-close"></i>'
|
||||||
+ $.i18n('general_btn_cancel') + '</button>');
|
+ $.i18n('general_btn_cancel') + '</button>');
|
||||||
|
|
||||||
|
if (getStorage("darkMode", false) == "on")
|
||||||
|
$('#wizard_logo').attr("src", 'img/hyperion/logo_negativ.png');
|
||||||
|
|
||||||
//open modal
|
//open modal
|
||||||
$("#wizard_modal").modal({ backdrop: "static", keyboard: false, show: true });
|
$("#wizard_modal").modal({ backdrop: "static", keyboard: false, show: true });
|
||||||
|
|
||||||
@ -1675,14 +1593,12 @@ async function discover_atmoorb_lights(multiCastGroup, multiCastPort) {
|
|||||||
var light = {};
|
var light = {};
|
||||||
|
|
||||||
var params = {};
|
var params = {};
|
||||||
if (multiCastGroup !== "")
|
if (multiCastGroup !== "") {
|
||||||
{
|
|
||||||
params.multiCastGroup = multiCastGroup;
|
params.multiCastGroup = multiCastGroup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (multiCastPort !== 0)
|
if (multiCastPort !== 0) {
|
||||||
{
|
params.multiCastPort = multiCastPort;
|
||||||
params.multiCastPort = multiCastPort;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get discovered lights
|
// Get discovered lights
|
||||||
@ -1692,7 +1608,7 @@ async function discover_atmoorb_lights(multiCastGroup, multiCastPort) {
|
|||||||
// res can be: false (timeout) or res.error (not found)
|
// res can be: false (timeout) or res.error (not found)
|
||||||
if (res && !res.error) {
|
if (res && !res.error) {
|
||||||
const r = res.info;
|
const r = res.info;
|
||||||
|
|
||||||
// Process devices returned by discovery
|
// Process devices returned by discovery
|
||||||
for (const device of r.devices) {
|
for (const device of r.devices) {
|
||||||
if (device.id !== "") {
|
if (device.id !== "") {
|
||||||
@ -1774,7 +1690,7 @@ function assign_atmoorb_lights() {
|
|||||||
|
|
||||||
$('.lidsb').append(createTableRow([orbId + lightAnnotation, '<select id="orb_' + lightid + '" ' + enabled + ' class="orb_sel_watch form-control">'
|
$('.lidsb').append(createTableRow([orbId + lightAnnotation, '<select id="orb_' + lightid + '" ' + enabled + ' class="orb_sel_watch form-control">'
|
||||||
+ options
|
+ options
|
||||||
+ '</select>', '<button class="btn btn-sm btn-primary" ' + enabled + ' onClick=identify_atmoorb_device(' + orbId + ')>'
|
+ '</select>', '<button class="btn btn-sm btn-primary" ' + enabled + ' onClick=identify_atmoorb_device("' + orbId + '")>'
|
||||||
+ $.i18n('wiz_identify_light', orbId) + '</button>']));
|
+ $.i18n('wiz_identify_light', orbId) + '</button>']));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1793,303 +1709,19 @@ function assign_atmoorb_lights() {
|
|||||||
$('.orb_sel_watch').trigger('change');
|
$('.orb_sel_watch').trigger('change');
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
var noLightsTxt = '<p style="font-weight:bold;color:red;">' + $.i18n('wiz_noLights','AtmoOrbs') + '</p>';
|
var noLightsTxt = '<p style="font-weight:bold;color:red;">' + $.i18n('wiz_noLights', 'AtmoOrbs') + '</p>';
|
||||||
$('#wizp2_body').append(noLightsTxt);
|
$('#wizp2_body').append(noLightsTxt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function identify_atmoorb_device(orbId) {
|
async function identify_atmoorb_device(orbId) {
|
||||||
|
|
||||||
// Take care that new record cannot be save during background process
|
// Take care that new record cannot be save during background process
|
||||||
$('#btn_wiz_save').attr('disabled', true);
|
$('#btn_wiz_save').attr('disabled', true);
|
||||||
|
|
||||||
let params = { id: orbId };
|
let params = { id: orbId };
|
||||||
const res = await requestLedDeviceIdentification("atmoorb", params);
|
await requestLedDeviceIdentification("atmoorb", params);
|
||||||
|
|
||||||
if (!window.readOnlyMode) {
|
if (!window.readOnlyMode) {
|
||||||
$('#btn_wiz_save').attr('disabled', false);
|
$('#btn_wiz_save').attr('disabled', false);
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//****************************
|
|
||||||
// Wizard/Routines Nanoleaf
|
|
||||||
//****************************
|
|
||||||
async function discover_nanoleaf() {
|
|
||||||
const res = await requestLedDeviceDiscovery('nanoleaf');
|
|
||||||
|
|
||||||
// TODO: error case unhandled
|
|
||||||
// res can be: false (timeout) or res.error (not found)
|
|
||||||
if (res && !res.error) {
|
|
||||||
const r = res.info
|
|
||||||
|
|
||||||
// Process devices returned by discovery
|
|
||||||
console.log(r);
|
|
||||||
|
|
||||||
if (r.devices.length == 0)
|
|
||||||
$('#wiz_hue_ipstate').html($.i18n('wiz_hue_failure_ip'));
|
|
||||||
else {
|
|
||||||
for (const device of r.devices) {
|
|
||||||
console.log("Device:", device);
|
|
||||||
|
|
||||||
var ip = device.hostname + ":" + device.port;
|
|
||||||
console.log("Host:", ip);
|
|
||||||
|
|
||||||
//nanoleafIPs.push({internalipaddress : ip});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async function getProperties_nanoleaf(hostAddress, authToken, resourceFilter) {
|
|
||||||
let params = { host: hostAddress, token: authToken, filter: resourceFilter };
|
|
||||||
|
|
||||||
const res = await requestLedDeviceProperties('nanoleaf', params);
|
|
||||||
|
|
||||||
// TODO: error case unhandled
|
|
||||||
// res can be: false (timeout) or res.error (not found)
|
|
||||||
if (res && !res.error) {
|
|
||||||
const r = res.info
|
|
||||||
|
|
||||||
// Process properties returned
|
|
||||||
console.log(r);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async function identify_nanoleaf(hostAddress, authToken) {
|
|
||||||
|
|
||||||
// Take care that new record cannot be save during background process
|
|
||||||
$('#btn_wiz_save').attr('disabled', true);
|
|
||||||
|
|
||||||
let params = { host: hostAddress, token: authToken };
|
|
||||||
const res = await requestLedDeviceIdentification('nanoleaf', params);
|
|
||||||
|
|
||||||
if (!window.readOnlyMode) {
|
|
||||||
$('#btn_wiz_save').attr('disabled', false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//****************************
|
|
||||||
// Wizard Cololight
|
|
||||||
//****************************
|
|
||||||
var lights = null;
|
|
||||||
var selectedLightId = null;
|
|
||||||
|
|
||||||
function startWizardCololight(e) {
|
|
||||||
//create html
|
|
||||||
|
|
||||||
var cololight_title = 'wiz_cololight_title';
|
|
||||||
var cololight_intro1 = 'wiz_cololight_intro1';
|
|
||||||
|
|
||||||
$('#wiz_header').html('<i class="fa fa-magic fa-fw"></i>' + $.i18n(cololight_title));
|
|
||||||
$('#wizp1_body').html('<h4 style="font-weight:bold;text-transform:uppercase;">' + $.i18n(cololight_title) + '</h4><p>' + $.i18n(cololight_intro1) + '</p>');
|
|
||||||
$('#wizp1_footer').html('<button type="button" class="btn btn-primary" id="btn_wiz_cont"><i class="fa fa-fw fa-check"></i>' + $.i18n('general_btn_continue') + '</button><button type="button" class="btn btn-danger" data-dismiss="modal"><i class="fa fa-fw fa-close"></i>' + $.i18n('general_btn_cancel') + '</button>');
|
|
||||||
|
|
||||||
$('#wizp2_body').html('<div id="wh_topcontainer"></div>');
|
|
||||||
|
|
||||||
$('#wh_topcontainer').append('<div class="form-group" id="usrcont" style="display:none"></div>');
|
|
||||||
|
|
||||||
$('#wizp2_body').append('<div id="colo_ids_t" style="display:none"><p style="font-weight:bold" id="colo_id_headline">' + $.i18n('wiz_cololight_desc2') + '</p></div>');
|
|
||||||
|
|
||||||
createTable("lidsh", "lidsb", "colo_ids_t");
|
|
||||||
$('.lidsh').append(createTableRow([$.i18n('edt_dev_spec_lights_title'), $.i18n('wiz_identify')], true));
|
|
||||||
$('#wizp2_footer').html('<button type="button" class="btn btn-primary" id="btn_wiz_save" style="display:none"><i class="fa fa-fw fa-save"></i>'
|
|
||||||
+ $.i18n('general_btn_save') + '</button><buttowindow.serverConfig.device = d;n type="button" class="btn btn-danger" id="btn_wiz_abort"><i class="fa fa-fw fa-close"></i>'
|
|
||||||
+ $.i18n('general_btn_cancel') + '</button>');
|
|
||||||
|
|
||||||
//open modal
|
|
||||||
$("#wizard_modal").modal({
|
|
||||||
backdrop: "static",
|
|
||||||
keyboard: false,
|
|
||||||
show: true
|
|
||||||
});
|
|
||||||
|
|
||||||
//listen for continue
|
|
||||||
$('#btn_wiz_cont').off().on('click', function () {
|
|
||||||
beginWizardCololight();
|
|
||||||
$('#wizp1').toggle(false);
|
|
||||||
$('#wizp2').toggle(true);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function beginWizardCololight() {
|
|
||||||
lights = [];
|
|
||||||
|
|
||||||
discover_cololights();
|
|
||||||
|
|
||||||
$('#btn_wiz_save').off().on("click", function () {
|
|
||||||
//LED device config
|
|
||||||
//Start with a clean configuration
|
|
||||||
var d = {};
|
|
||||||
|
|
||||||
d.type = 'cololight';
|
|
||||||
|
|
||||||
//Cololight does not resolve into stable hostnames (as devices named the same), therefore use IP
|
|
||||||
if (!lights[selectedLightId].ip) {
|
|
||||||
d.host = lights[selectedLightId].host;
|
|
||||||
} else {
|
|
||||||
d.host = lights[selectedLightId].ip;
|
|
||||||
}
|
|
||||||
|
|
||||||
var coloLightProperties = lights[selectedLightId].props.properties;
|
|
||||||
if (Object.keys(coloLightProperties).length === 0) {
|
|
||||||
alert($.i18n('wiz_cololight_noprops'));
|
|
||||||
d.hardwareLedCount = 1;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
d.hardwareLedCount = coloLightProperties.ledCount;
|
|
||||||
}
|
|
||||||
|
|
||||||
d.colorOrder = conf_editor.getEditor("root.generalOptions.colorOrder").getValue();
|
|
||||||
d.latchTime = parseInt(conf_editor.getEditor("root.specificOptions.latchTime").getValue());;
|
|
||||||
|
|
||||||
window.serverConfig.device = d;
|
|
||||||
|
|
||||||
//LED layout - have initial layout prepared matching the LED-count
|
|
||||||
|
|
||||||
var coloLightLedConfig = [];
|
|
||||||
|
|
||||||
if (coloLightProperties.modelType === "Strip") {
|
|
||||||
coloLightLedConfig = createClassicLedLayoutSimple(d.hardwareLedCount / 2, d.hardwareLedCount / 4, d.hardwareLedCount / 4, 0, d.hardwareLedCount / 4 * 3, false);
|
|
||||||
} else {
|
|
||||||
coloLightLedConfig = createClassicLedLayoutSimple(0, 0, 0, d.hardwareLedCount, 0, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
window.serverConfig.leds = coloLightLedConfig;
|
|
||||||
|
|
||||||
//smoothing off
|
|
||||||
window.serverConfig.smoothing.enable = false;
|
|
||||||
|
|
||||||
requestWriteConfig(window.serverConfig, true);
|
|
||||||
|
|
||||||
resetWizard();
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#btn_wiz_abort').off().on('click', resetWizard);
|
|
||||||
}
|
|
||||||
|
|
||||||
async function discover_cololights() {
|
|
||||||
const res = await requestLedDeviceDiscovery('cololight');
|
|
||||||
|
|
||||||
if (res && !res.error) {
|
|
||||||
const r = res.info;
|
|
||||||
|
|
||||||
// Process devices returned by discovery
|
|
||||||
for (const device of r.devices) {
|
|
||||||
if (device.ip !== "") {
|
|
||||||
if (getIpInLights(device.ip).length === 0) {
|
|
||||||
var light = {};
|
|
||||||
light.ip = device.ip;
|
|
||||||
light.host = device.hostname;
|
|
||||||
light.name = device.name;
|
|
||||||
light.type = device.type;
|
|
||||||
lights.push(light);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
assign_cololight_lights();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function assign_cololight_lights() {
|
|
||||||
// If records are left for configuration
|
|
||||||
if (Object.keys(lights).length > 0) {
|
|
||||||
$('#wh_topcontainer').toggle(false);
|
|
||||||
$('#colo_ids_t, #btn_wiz_save').toggle(true);
|
|
||||||
|
|
||||||
$('.lidsb').html("");
|
|
||||||
|
|
||||||
var options = "";
|
|
||||||
|
|
||||||
for (var lightid in lights) {
|
|
||||||
lights[lightid].id = lightid;
|
|
||||||
|
|
||||||
var lightHostname = lights[lightid].host;
|
|
||||||
var lightIP = lights[lightid].ip;
|
|
||||||
|
|
||||||
var val = lightHostname + " (" + lightIP + ")";
|
|
||||||
options += '<option value="' + lightid + '">' + val + '</option>';
|
|
||||||
}
|
|
||||||
|
|
||||||
var enabled = 'enabled';
|
|
||||||
|
|
||||||
$('.lidsb').append(createTableRow(['<select id="colo_select_id" ' + enabled + ' class="colo_sel_watch form-control">'
|
|
||||||
+ options
|
|
||||||
+ '</select>', '<button id="wiz_identify_btn" class="btn btn-sm btn-primary">'
|
|
||||||
+ $.i18n('wiz_identify') + '</button>']));
|
|
||||||
|
|
||||||
$('.colo_sel_watch').bind("change", function () {
|
|
||||||
selectedLightId = $('#colo_select_id').val();
|
|
||||||
var lightIP = lights[selectedLightId].ip;
|
|
||||||
|
|
||||||
$('#wiz_identify_btn').unbind().bind('click', function (event) { identify_cololight_device(lightIP); });
|
|
||||||
|
|
||||||
if (!lights[selectedLightId].props) {
|
|
||||||
getProperties_cololight(lightIP);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
$('.colo_sel_watch').trigger('change');
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
var noLightsTxt = '<p style="font-weight:bold;color:red;">' + $.i18n('wiz_noLights','Cololights') + '</p>';
|
|
||||||
$('#wizp2_body').append(noLightsTxt);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async function getProperties_cololight(ip) {
|
|
||||||
let params = { host: ip };
|
|
||||||
|
|
||||||
const res = await requestLedDeviceProperties('cololight', params);
|
|
||||||
|
|
||||||
if (res && !res.error) {
|
|
||||||
var coloLightProperties = res.info;
|
|
||||||
|
|
||||||
//Store properties along light with given IP-address
|
|
||||||
var id = getIpInLights(ip)[0].id;
|
|
||||||
lights[id].props = coloLightProperties;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async function identify_cololight_device(hostAddress) {
|
|
||||||
|
|
||||||
// Take care that new record cannot be save during background process
|
|
||||||
$('#btn_wiz_save').attr('disabled', true);
|
|
||||||
|
|
||||||
let params = { host: hostAddress };
|
|
||||||
const res = await requestLedDeviceIdentification('cololight', params);
|
|
||||||
|
|
||||||
if (!window.readOnlyMode) {
|
|
||||||
$('#btn_wiz_save').attr('disabled', false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//****************************
|
|
||||||
// Wizard/Routines RS232-Devices
|
|
||||||
//****************************
|
|
||||||
async function discover_providerRs232(rs232Type) {
|
|
||||||
const res = await requestLedDeviceDiscovery(rs232Type);
|
|
||||||
|
|
||||||
// TODO: error case unhandled
|
|
||||||
// res can be: false (timeout) or res.error (not found)
|
|
||||||
if (res && !res.error) {
|
|
||||||
const r = res.info
|
|
||||||
|
|
||||||
// Process serialPorts returned by discover
|
|
||||||
console.log(r);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//****************************
|
|
||||||
// Wizard/Routines HID (USB)-Devices
|
|
||||||
//****************************
|
|
||||||
async function discover_providerHid(hidType) {
|
|
||||||
const res = await requestLedDeviceDiscovery(hidType);
|
|
||||||
|
|
||||||
// TODO: error case unhandled
|
|
||||||
// res can be: false (timeout) or res.error (not found)
|
|
||||||
if (res && !res.error) {
|
|
||||||
const r = res.info
|
|
||||||
|
|
||||||
// Process HID returned by discover
|
|
||||||
console.log(r);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 30 KiB |
@ -141,8 +141,8 @@ echo "---> or if already used by another service try: ${NET_IP}:8091"
|
|||||||
$REBOOTMESSAGE
|
$REBOOTMESSAGE
|
||||||
echo "-----------------------------------------------------------------------------"
|
echo "-----------------------------------------------------------------------------"
|
||||||
echo "Webpage: www.hyperion-project.org"
|
echo "Webpage: www.hyperion-project.org"
|
||||||
echo "Wiki: wiki.hyperion-project.org"
|
echo "Forum: www.hyperion-project.org"
|
||||||
echo "Forum: forum.hyperion-project.org"
|
echo "Documenation: docs.hyperion-project.org"
|
||||||
echo "-----------------------------------------------------------------------------"
|
echo "-----------------------------------------------------------------------------"
|
||||||
|
|
||||||
|
|
||||||
|
BIN
cmake/nsis/header.bmp
Normal file
After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 151 KiB |
Before Width: | Height: | Size: 86 KiB |
Before Width: | Height: | Size: 87 KiB After Width: | Height: | Size: 199 KiB |
BIN
cmake/nsis/logo.bmp
Normal file
After Width: | Height: | Size: 201 KiB |
@ -34,7 +34,10 @@ endif()
|
|||||||
SET ( CPACK_PACKAGE_NAME "Hyperion" )
|
SET ( CPACK_PACKAGE_NAME "Hyperion" )
|
||||||
SET ( CPACK_PACKAGE_DESCRIPTION_SUMMARY "Hyperion is an open source ambient light implementation" )
|
SET ( CPACK_PACKAGE_DESCRIPTION_SUMMARY "Hyperion is an open source ambient light implementation" )
|
||||||
SET ( CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README.md" )
|
SET ( CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README.md" )
|
||||||
SET ( CPACK_PACKAGE_FILE_NAME "Hyperion-${HYPERION_VERSION}-${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}")
|
|
||||||
|
# Replease "+", as cmake/rpm has an issue if "+" occurs in CPACK_PACKAGE_VERSION
|
||||||
|
string(REPLACE "+" "." HYPERION_PACKAGE_VERSION ${HYPERION_VERSION})
|
||||||
|
SET ( CPACK_PACKAGE_FILE_NAME "Hyperion-${HYPERION_PACKAGE_VERSION}-${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}")
|
||||||
|
|
||||||
SET ( CPACK_PACKAGE_CONTACT "packages@hyperion-project.org")
|
SET ( CPACK_PACKAGE_CONTACT "packages@hyperion-project.org")
|
||||||
SET ( CPACK_PACKAGE_VENDOR "hyperion-project")
|
SET ( CPACK_PACKAGE_VENDOR "hyperion-project")
|
||||||
@ -87,8 +90,8 @@ if(WIN32)
|
|||||||
STRING(REGEX REPLACE "\\\\" "\\\\\\\\" CPACK_PACKAGE_ICON ${CPACK_PACKAGE_ICON})
|
STRING(REGEX REPLACE "\\\\" "\\\\\\\\" CPACK_PACKAGE_ICON ${CPACK_PACKAGE_ICON})
|
||||||
endif()
|
endif()
|
||||||
file(TO_NATIVE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/nsis/installer.ico" NSIS_HYP_ICO)
|
file(TO_NATIVE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/nsis/installer.ico" NSIS_HYP_ICO)
|
||||||
file(TO_NATIVE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/nsis/hyperion-logo.bmp" NSIS_HYP_LOGO_HORI)
|
file(TO_NATIVE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/nsis/header.bmp" NSIS_HYP_LOGO_HORI)
|
||||||
file(TO_NATIVE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/nsis/hyperion-logo-vert.bmp" NSIS_HYP_LOGO_VERT)
|
file(TO_NATIVE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/nsis/logo.bmp" NSIS_HYP_LOGO_VERT)
|
||||||
STRING(REGEX REPLACE "\\\\" "\\\\\\\\" NSIS_HYP_ICO "${NSIS_HYP_ICO}")
|
STRING(REGEX REPLACE "\\\\" "\\\\\\\\" NSIS_HYP_ICO "${NSIS_HYP_ICO}")
|
||||||
STRING(REGEX REPLACE "\\\\" "\\\\\\\\" NSIS_HYP_LOGO_VERT "${NSIS_HYP_LOGO_VERT}")
|
STRING(REGEX REPLACE "\\\\" "\\\\\\\\" NSIS_HYP_LOGO_VERT "${NSIS_HYP_LOGO_VERT}")
|
||||||
STRING(REGEX REPLACE "\\\\" "\\\\\\\\" NSIS_HYP_LOGO_HORI "${NSIS_HYP_LOGO_HORI}")
|
STRING(REGEX REPLACE "\\\\" "\\\\\\\\" NSIS_HYP_LOGO_HORI "${NSIS_HYP_LOGO_HORI}")
|
||||||
|
@ -131,8 +131,8 @@ echo "---> or if already used by another service try: ${NET_IP}:8091"
|
|||||||
$REBOOTMESSAGE
|
$REBOOTMESSAGE
|
||||||
echo "-----------------------------------------------------------------------------"
|
echo "-----------------------------------------------------------------------------"
|
||||||
echo "Webpage: www.hyperion-project.org"
|
echo "Webpage: www.hyperion-project.org"
|
||||||
echo "Wiki: wiki.hyperion-project.org"
|
echo "Forum: www.hyperion-project.org"
|
||||||
echo "Forum: forum.hyperion-project.org"
|
echo "Documenation: docs.hyperion-project.org"
|
||||||
echo "-----------------------------------------------------------------------------"
|
echo "-----------------------------------------------------------------------------"
|
||||||
|
|
||||||
|
|
||||||
|
BIN
doc/logo.png
Normal file
After Width: | Height: | Size: 21 KiB |
@ -4,6 +4,7 @@
|
|||||||
#include <hyperion/Hyperion.h>
|
#include <hyperion/Hyperion.h>
|
||||||
#include <utils/settings.h>
|
#include <utils/settings.h>
|
||||||
#include <effectengine/Effect.h>
|
#include <effectengine/Effect.h>
|
||||||
|
#include <hyperion/PriorityMuxer.h>
|
||||||
|
|
||||||
///
|
///
|
||||||
/// @brief Handle the background Effect settings, reacts on runtime to settings changes
|
/// @brief Handle the background Effect settings, reacts on runtime to settings changes
|
||||||
@ -14,11 +15,19 @@ class BGEffectHandler : public QObject
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
BGEffectHandler(Hyperion* hyperion)
|
BGEffectHandler(Hyperion* hyperion)
|
||||||
: QObject(hyperion)
|
: QObject(hyperion)
|
||||||
, _hyperion(hyperion)
|
, _hyperion(hyperion)
|
||||||
|
, _prioMuxer(_hyperion->getMuxerInstance())
|
||||||
|
, _isBgEffectConfigured(false)
|
||||||
{
|
{
|
||||||
// listen for config changes
|
// listen for config changes
|
||||||
connect(_hyperion, &Hyperion::settingsChanged, this, &BGEffectHandler::handleSettingsUpdate);
|
connect(_hyperion, &Hyperion::settingsChanged,
|
||||||
|
[=](settings::type type, const QJsonDocument& config) { this->handleSettingsUpdate(type, config); }
|
||||||
|
);
|
||||||
|
|
||||||
|
connect(_prioMuxer, &PriorityMuxer::prioritiesChanged,
|
||||||
|
[=]() { this->handlePriorityUpdate(); }
|
||||||
|
);
|
||||||
|
|
||||||
// initialization
|
// initialization
|
||||||
handleSettingsUpdate(settings::BGEFFECT, _hyperion->getSetting(settings::BGEFFECT));
|
handleSettingsUpdate(settings::BGEFFECT, _hyperion->getSetting(settings::BGEFFECT));
|
||||||
@ -34,14 +43,18 @@ private slots:
|
|||||||
{
|
{
|
||||||
if(type == settings::BGEFFECT)
|
if(type == settings::BGEFFECT)
|
||||||
{
|
{
|
||||||
const QJsonObject& BGEffectConfig = config.object();
|
_isBgEffectConfigured = false;
|
||||||
|
_bgEffectConfig = config;
|
||||||
|
|
||||||
|
const QJsonObject& BGEffectConfig = _bgEffectConfig.object();
|
||||||
#define BGCONFIG_ARRAY bgColorConfig.toArray()
|
#define BGCONFIG_ARRAY bgColorConfig.toArray()
|
||||||
// clear background priority
|
// clear background priority
|
||||||
_hyperion->clear(PriorityMuxer::BG_PRIORITY);
|
_hyperion->clear(PriorityMuxer::BG_PRIORITY);
|
||||||
// initial background effect/color
|
// initial background effect/color
|
||||||
if (BGEffectConfig["enable"].toBool(true))
|
if (BGEffectConfig["enable"].toBool(true))
|
||||||
{
|
{
|
||||||
|
_isBgEffectConfigured = true;
|
||||||
|
|
||||||
const QString bgTypeConfig = BGEffectConfig["type"].toString("effect");
|
const QString bgTypeConfig = BGEffectConfig["type"].toString("effect");
|
||||||
const QString bgEffectConfig = BGEffectConfig["effect"].toString("Warm mood blobs");
|
const QString bgEffectConfig = BGEffectConfig["effect"].toString("Warm mood blobs");
|
||||||
const QJsonValue bgColorConfig = BGEffectConfig["color"];
|
const QJsonValue bgColorConfig = BGEffectConfig["color"];
|
||||||
@ -63,12 +76,33 @@ private slots:
|
|||||||
Info(Logger::getInstance("HYPERION"),"Initial background effect '%s' %s", QSTRING_CSTR(bgEffectConfig), ((result == 0) ? "started" : "failed"));
|
Info(Logger::getInstance("HYPERION"),"Initial background effect '%s' %s", QSTRING_CSTR(bgEffectConfig), ((result == 0) ? "started" : "failed"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef BGCONFIG_ARRAY
|
#undef BGCONFIG_ARRAY
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
///
|
||||||
|
/// @brief Handle priority updates.
|
||||||
|
/// In case the background effect is not current priority, stop BG-effect to save resources; otherwise start effect again.
|
||||||
|
///
|
||||||
|
void handlePriorityUpdate()
|
||||||
|
{
|
||||||
|
if (_prioMuxer->getCurrentPriority() != PriorityMuxer::BG_PRIORITY && _prioMuxer->hasPriority(PriorityMuxer::BG_PRIORITY))
|
||||||
|
{
|
||||||
|
Debug(Logger::getInstance("HYPERION"),"Stop background (color-) effect as it moved out of scope");
|
||||||
|
_hyperion->clear(PriorityMuxer::BG_PRIORITY);
|
||||||
|
}
|
||||||
|
else if (_prioMuxer->getCurrentPriority() == PriorityMuxer::LOWEST_PRIORITY && _isBgEffectConfigured)
|
||||||
|
{
|
||||||
|
emit handleSettingsUpdate (settings::BGEFFECT, _bgEffectConfig);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/// Hyperion instance pointer
|
/// Hyperion instance pointer
|
||||||
Hyperion* _hyperion;
|
Hyperion* _hyperion;
|
||||||
|
/// priority muxer instance
|
||||||
|
PriorityMuxer* _prioMuxer;
|
||||||
|
|
||||||
|
QJsonDocument _bgEffectConfig;
|
||||||
|
bool _isBgEffectConfigured;
|
||||||
};
|
};
|
||||||
|
@ -3,9 +3,14 @@
|
|||||||
#include <utils/Logger.h>
|
#include <utils/Logger.h>
|
||||||
#include <utils/settings.h>
|
#include <utils/settings.h>
|
||||||
|
|
||||||
|
#include <utils/version.hpp>
|
||||||
|
using namespace semver;
|
||||||
|
|
||||||
// qt includes
|
// qt includes
|
||||||
#include <QJsonObject>
|
#include <QJsonObject>
|
||||||
|
|
||||||
|
const int GLOABL_INSTANCE_ID = 255;
|
||||||
|
|
||||||
class Hyperion;
|
class Hyperion;
|
||||||
class SettingsTable;
|
class SettingsTable;
|
||||||
|
|
||||||
@ -61,12 +66,17 @@ private:
|
|||||||
bool handleConfigUpgrade(QJsonObject& config);
|
bool handleConfigUpgrade(QJsonObject& config);
|
||||||
|
|
||||||
|
|
||||||
/// Hyperion instance
|
bool resolveConfigVersion(QJsonObject& config);
|
||||||
Hyperion* _hyperion;
|
|
||||||
|
|
||||||
/// Logger instance
|
/// Logger instance
|
||||||
Logger* _log;
|
Logger* _log;
|
||||||
|
|
||||||
|
/// Hyperion instance
|
||||||
|
Hyperion* _hyperion;
|
||||||
|
|
||||||
|
/// Instance number
|
||||||
|
quint8 _instance;
|
||||||
|
|
||||||
/// instance of database table interface
|
/// instance of database table interface
|
||||||
SettingsTable* _sTable;
|
SettingsTable* _sTable;
|
||||||
|
|
||||||
@ -76,5 +86,8 @@ private:
|
|||||||
/// the current configuration of this instance
|
/// the current configuration of this instance
|
||||||
QJsonObject _qconfig;
|
QJsonObject _qconfig;
|
||||||
|
|
||||||
|
semver::version _configVersion;
|
||||||
|
semver::version _previousVersion;
|
||||||
|
|
||||||
bool _readonlyMode;
|
bool _readonlyMode;
|
||||||
};
|
};
|
||||||
|
@ -300,10 +300,21 @@ protected:
|
|||||||
/// even if the device is not in enabled state (allowing to have a defined state during device power-off).
|
/// even if the device is not in enabled state (allowing to have a defined state during device power-off).
|
||||||
/// @note: latch-time is considered between each write
|
/// @note: latch-time is considered between each write
|
||||||
///
|
///
|
||||||
/// @param[in] numberOfWrites Write Black given number of times
|
/// @param[in] numberOfWrites Write Black a given number of times
|
||||||
/// @return Zero on success else negative
|
/// @return Zero on success else negative
|
||||||
///
|
///
|
||||||
virtual int writeBlack(int numberOfBlack=1);
|
virtual int writeBlack(int numberOfWrites = 1);
|
||||||
|
|
||||||
|
///
|
||||||
|
/// @brief Writes a color to the output stream,
|
||||||
|
/// even if the device is not in enabled state (allowing to have a defined state during device power-off).
|
||||||
|
/// @note: latch-time is considered between each write
|
||||||
|
///
|
||||||
|
/// @param[in] color to be written
|
||||||
|
/// @param[in] numberOfWrites Write the color a given number of times
|
||||||
|
/// @return Zero on success else negative
|
||||||
|
///
|
||||||
|
virtual int writeColor(const ColorRgb& color, int numberOfWrites = 1);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// @brief Power-/turn on the LED-device.
|
/// @brief Power-/turn on the LED-device.
|
||||||
@ -431,7 +442,7 @@ protected slots:
|
|||||||
///
|
///
|
||||||
/// @param[in] errorMsg The error message to be logged
|
/// @param[in] errorMsg The error message to be logged
|
||||||
///
|
///
|
||||||
virtual void setInError( const QString& errorMsg);
|
virtual void setInError( const QString& errorMsg);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|