removed dashboard bundle as it has moved to https://github.com/openhab/openhab-webui (#586)
Signed-off-by: Kai Kreuzer <kai@openhab.org>
@ -502,12 +502,6 @@
|
|||||||
<version>${project.version}</version>
|
<version>${project.version}</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>org.openhab.core.bundles</groupId>
|
|
||||||
<artifactId>org.openhab.core.ui.dashboard</artifactId>
|
|
||||||
<version>${project.version}</version>
|
|
||||||
<scope>compile</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.openhab.core.bundles</groupId>
|
<groupId>org.openhab.core.bundles</groupId>
|
||||||
<artifactId>org.openhab.core.ui.icon</artifactId>
|
<artifactId>org.openhab.core.ui.icon</artifactId>
|
||||||
|
@ -1,42 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<classpath>
|
|
||||||
<classpathentry kind="src" output="target/classes" path="src/main/java">
|
|
||||||
<attributes>
|
|
||||||
<attribute name="optional" value="true"/>
|
|
||||||
<attribute name="maven.pomderived" value="true"/>
|
|
||||||
</attributes>
|
|
||||||
</classpathentry>
|
|
||||||
<classpathentry excluding="**" kind="src" output="target/classes" path="templates">
|
|
||||||
<attributes>
|
|
||||||
<attribute name="maven.pomderived" value="true"/>
|
|
||||||
</attributes>
|
|
||||||
</classpathentry>
|
|
||||||
<classpathentry excluding="**" kind="src" output="target/classes" path="web">
|
|
||||||
<attributes>
|
|
||||||
<attribute name="maven.pomderived" value="true"/>
|
|
||||||
</attributes>
|
|
||||||
</classpathentry>
|
|
||||||
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
|
|
||||||
<attributes>
|
|
||||||
<attribute name="optional" value="true"/>
|
|
||||||
<attribute name="maven.pomderived" value="true"/>
|
|
||||||
<attribute name="test" value="true"/>
|
|
||||||
</attributes>
|
|
||||||
</classpathentry>
|
|
||||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
|
|
||||||
<attributes>
|
|
||||||
<attribute name="maven.pomderived" value="true"/>
|
|
||||||
</attributes>
|
|
||||||
</classpathentry>
|
|
||||||
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
|
|
||||||
<attributes>
|
|
||||||
<attribute name="maven.pomderived" value="true"/>
|
|
||||||
</attributes>
|
|
||||||
</classpathentry>
|
|
||||||
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
|
|
||||||
<attributes>
|
|
||||||
<attribute name="maven.pomderived" value="true"/>
|
|
||||||
</attributes>
|
|
||||||
</classpathentry>
|
|
||||||
<classpathentry kind="output" path="target/classes"/>
|
|
||||||
</classpath>
|
|
@ -1,23 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<projectDescription>
|
|
||||||
<name>org.openhab.core.ui.dashboard</name>
|
|
||||||
<comment></comment>
|
|
||||||
<projects>
|
|
||||||
</projects>
|
|
||||||
<buildSpec>
|
|
||||||
<buildCommand>
|
|
||||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
|
||||||
<arguments>
|
|
||||||
</arguments>
|
|
||||||
</buildCommand>
|
|
||||||
<buildCommand>
|
|
||||||
<name>org.eclipse.m2e.core.maven2Builder</name>
|
|
||||||
<arguments>
|
|
||||||
</arguments>
|
|
||||||
</buildCommand>
|
|
||||||
</buildSpec>
|
|
||||||
<natures>
|
|
||||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
|
||||||
<nature>org.eclipse.m2e.core.maven2Nature</nature>
|
|
||||||
</natures>
|
|
||||||
</projectDescription>
|
|
@ -1,7 +0,0 @@
|
|||||||
eclipse.preferences.version=1
|
|
||||||
encoding//src/main/java=UTF-8
|
|
||||||
encoding//src/main/resources=UTF-8
|
|
||||||
encoding/<project>=UTF-8
|
|
||||||
encoding/ESH-INF=UTF-8
|
|
||||||
encoding/templates=UTF-8
|
|
||||||
encoding/web=UTF-8
|
|
@ -1,4 +0,0 @@
|
|||||||
activeProfiles=
|
|
||||||
eclipse.preferences.version=1
|
|
||||||
resolveWorkspaceProjects=true
|
|
||||||
version=1
|
|
@ -1,13 +0,0 @@
|
|||||||
This content is produced and maintained by the openHAB project.
|
|
||||||
|
|
||||||
* Project home: https://www.openhab.org
|
|
||||||
|
|
||||||
== Declared Project Licenses
|
|
||||||
|
|
||||||
This program and the accompanying materials are made available under the terms
|
|
||||||
of the Eclipse Public License 2.0 which is available at
|
|
||||||
https://www.eclipse.org/legal/epl-2.0/.
|
|
||||||
|
|
||||||
== Source Code
|
|
||||||
|
|
||||||
https://github.com/openhab/openhab-core
|
|
@ -1,48 +0,0 @@
|
|||||||
# Dashboard
|
|
||||||
|
|
||||||
The openHAB dashboard is a landing page for the user where all openHAB UIs can be found.
|
|
||||||
The Dashboard also supports links to external services.
|
|
||||||
Links can be added to the dashboard by editing the `$OPENHAB_CONF/services/dashboard.cfg` configuration file.
|
|
||||||
|
|
||||||
## Link Configuration
|
|
||||||
|
|
||||||
| Parameter Name | Type | Description |
|
|
||||||
|-------------------------------|---------|-----------------------------------------------|
|
|
||||||
| `<unique-name>.link-name` | String | Name which is shown in the openHAB dashboard. |
|
|
||||||
| `<unique-name>.link-url` | String | URL to external service. |
|
|
||||||
| `<unique-name>.link-imageurl` | String | URL to image which is shown in the dashboard. |
|
|
||||||
|
|
||||||
Where `<unique-name>` is link unique identifier (see examples).
|
|
||||||
|
|
||||||
Link-url support following special words:
|
|
||||||
|
|
||||||
| Special word | Replaced to |
|
|
||||||
|-----------------------------|-------------------------------------------|
|
|
||||||
| {HOST} | host name including possible port number |
|
|
||||||
| {HOSTNAME} | host name |
|
|
||||||
|
|
||||||
|
|
||||||
### Image
|
|
||||||
|
|
||||||
A png image of 350px width and 200-250px height are recommended.
|
|
||||||
|
|
||||||
The `imageurl` property can either be a direct HTTP link or data URIs according to [RFC2397](https://tools.ietf.org/html/rfc2397). If data URIs are used, browser should support them as well. All five major browsers (Chrome, Firefox, IE, Opera and Safari) support data URIs. See e.g. [https://www.base64-image.de](https://www.base64-image.de) to convert images to base64 coded data.
|
|
||||||
|
|
||||||
## Example Configuration File
|
|
||||||
|
|
||||||
```
|
|
||||||
frontail.link-name=openHAB Log Viewer
|
|
||||||
frontail.link-url=http://<server-adddress>:9001
|
|
||||||
frontail.link-imageurl=../static/image.png
|
|
||||||
|
|
||||||
nodered.link-name=Node-RED
|
|
||||||
nodered.link-url=http://<server-adddress>:1880
|
|
||||||
nodered.link-imageurl=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXwAAACfCAIAAA...QmCC
|
|
||||||
|
|
||||||
nodered.link-name=Node-RED
|
|
||||||
nodered.link-url=http://{HOSTNAME}:1880
|
|
||||||
nodered.link-imageurl=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXwAAACfCAIAAA...QmCC
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
Note: **nodered** image data URL is not valid (it's shorten for the sake of clarity).
|
|
@ -1,53 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
|
|
||||||
<parent>
|
|
||||||
<groupId>org.openhab.core.bundles</groupId>
|
|
||||||
<artifactId>org.openhab.core.reactor.bundles</artifactId>
|
|
||||||
<version>2.5.0-SNAPSHOT</version>
|
|
||||||
</parent>
|
|
||||||
|
|
||||||
<artifactId>org.openhab.core.ui.dashboard</artifactId>
|
|
||||||
|
|
||||||
<name>openHAB Core :: Bundles :: Dashboard UI</name>
|
|
||||||
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.openhab.core.bundles</groupId>
|
|
||||||
<artifactId>org.openhab.core.boot</artifactId>
|
|
||||||
<version>${project.version}</version>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
|
|
||||||
<build>
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.codehaus.mojo</groupId>
|
|
||||||
<artifactId>build-helper-maven-plugin</artifactId>
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<phase>generate-resources</phase>
|
|
||||||
<goals>
|
|
||||||
<goal>add-resource</goal>
|
|
||||||
</goals>
|
|
||||||
<configuration>
|
|
||||||
<resources>
|
|
||||||
<resource>
|
|
||||||
<directory>templates</directory>
|
|
||||||
<targetPath>templates</targetPath>
|
|
||||||
</resource>
|
|
||||||
<resource>
|
|
||||||
<directory>web</directory>
|
|
||||||
<targetPath>web</targetPath>
|
|
||||||
</resource>
|
|
||||||
</resources>
|
|
||||||
</configuration>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
|
|
||||||
</project>
|
|
@ -1,23 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright (c) 2010-2019 Contributors to the openHAB project
|
|
||||||
*
|
|
||||||
* See the NOTICE file(s) distributed with this work for additional
|
|
||||||
* information.
|
|
||||||
*
|
|
||||||
* This program and the accompanying materials are made available under the
|
|
||||||
* terms of the Eclipse Public License 2.0 which is available at
|
|
||||||
* http://www.eclipse.org/legal/epl-2.0
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: EPL-2.0
|
|
||||||
*/
|
|
||||||
package org.openhab.ui.dashboard;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This is a marker interface to declare that the dashboard is up and ready to be used.
|
|
||||||
*
|
|
||||||
* @author Kai Kreuzer - Initial contribution
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public interface DashboardReady {
|
|
||||||
|
|
||||||
}
|
|
@ -1,54 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright (c) 2010-2019 Contributors to the openHAB project
|
|
||||||
*
|
|
||||||
* See the NOTICE file(s) distributed with this work for additional
|
|
||||||
* information.
|
|
||||||
*
|
|
||||||
* This program and the accompanying materials are made available under the
|
|
||||||
* terms of the Eclipse Public License 2.0 which is available at
|
|
||||||
* http://www.eclipse.org/legal/epl-2.0
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: EPL-2.0
|
|
||||||
*/
|
|
||||||
package org.openhab.ui.dashboard;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A dashboard tile must be registered as a service in order to appear on the openHAB dashboard.
|
|
||||||
* Note that it is currently not possible to provide a background image - this needs to be
|
|
||||||
* available within the dashboard bundle itself at the moment.
|
|
||||||
*
|
|
||||||
* @author Kai Kreuzer
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public interface DashboardTile {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The name that should appear on the tile
|
|
||||||
*
|
|
||||||
* @return name of the tile
|
|
||||||
*/
|
|
||||||
String getName();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The url to point to (if it is a local UI, it should be a relative path starting with "../")
|
|
||||||
*
|
|
||||||
* @return the url
|
|
||||||
*/
|
|
||||||
String getUrl();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The url to point to for the dashboard tile.
|
|
||||||
* (if it is a local UI, it should be a relative path starting with "../")
|
|
||||||
*
|
|
||||||
* @return the tile url
|
|
||||||
*/
|
|
||||||
String getImageUrl();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* An HTML5 overlay icon to use for the tile, e.g. "html5", "android" or "apple".
|
|
||||||
*
|
|
||||||
* @return the overlay to use
|
|
||||||
*/
|
|
||||||
String getOverlay();
|
|
||||||
|
|
||||||
}
|
|
@ -1,264 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright (c) 2010-2019 Contributors to the openHAB project
|
|
||||||
*
|
|
||||||
* See the NOTICE file(s) distributed with this work for additional
|
|
||||||
* information.
|
|
||||||
*
|
|
||||||
* This program and the accompanying materials are made available under the
|
|
||||||
* terms of the Eclipse Public License 2.0 which is available at
|
|
||||||
* http://www.eclipse.org/legal/epl-2.0
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: EPL-2.0
|
|
||||||
*/
|
|
||||||
package org.openhab.ui.dashboard.internal;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.net.URL;
|
|
||||||
import java.util.Hashtable;
|
|
||||||
import java.util.Locale;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.concurrent.CopyOnWriteArraySet;
|
|
||||||
|
|
||||||
import javax.servlet.ServletException;
|
|
||||||
import javax.servlet.http.HttpServlet;
|
|
||||||
|
|
||||||
import org.apache.commons.io.IOUtils;
|
|
||||||
import org.eclipse.smarthome.core.i18n.LocaleProvider;
|
|
||||||
import org.eclipse.smarthome.core.i18n.TranslationProvider;
|
|
||||||
import org.eclipse.smarthome.core.net.HttpServiceUtil;
|
|
||||||
import org.eclipse.smarthome.core.net.NetworkAddressService;
|
|
||||||
import org.openhab.ui.dashboard.DashboardReady;
|
|
||||||
import org.openhab.ui.dashboard.DashboardTile;
|
|
||||||
import org.osgi.framework.BundleContext;
|
|
||||||
import org.osgi.service.cm.ConfigurationAdmin;
|
|
||||||
import org.osgi.service.component.ComponentContext;
|
|
||||||
import org.osgi.service.component.ComponentException;
|
|
||||||
import org.osgi.service.component.annotations.Activate;
|
|
||||||
import org.osgi.service.component.annotations.Component;
|
|
||||||
import org.osgi.service.component.annotations.Deactivate;
|
|
||||||
import org.osgi.service.component.annotations.Reference;
|
|
||||||
import org.osgi.service.component.annotations.ReferenceCardinality;
|
|
||||||
import org.osgi.service.component.annotations.ReferencePolicy;
|
|
||||||
import org.osgi.service.http.HttpService;
|
|
||||||
import org.osgi.service.http.NamespaceException;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This component registers the dashboard resources.
|
|
||||||
*
|
|
||||||
* @author Kai Kreuzer - Initial contribution
|
|
||||||
* @author Laurent Garnier - internationalization
|
|
||||||
* @author Hilbrand Bouwkamp - internationalization
|
|
||||||
*/
|
|
||||||
@Component(service = { DashboardService.class, DashboardReady.class }, immediate = true, name = "org.openhab.dashboard")
|
|
||||||
public class DashboardService implements DashboardReady {
|
|
||||||
|
|
||||||
public static final String DASHBOARD_ALIAS = "/start";
|
|
||||||
|
|
||||||
/** the name of the servlet to be used in the URL */
|
|
||||||
public static final String SERVLET_NAME = "index";
|
|
||||||
|
|
||||||
private static final Logger logger = LoggerFactory.getLogger(DashboardService.class);
|
|
||||||
|
|
||||||
protected HttpService httpService;
|
|
||||||
protected ConfigurationAdmin configurationAdmin;
|
|
||||||
protected NetworkAddressService networkAddressService;
|
|
||||||
protected TranslationProvider i18nProvider;
|
|
||||||
protected LocaleProvider localeProvider;
|
|
||||||
|
|
||||||
protected Set<DashboardTile> tiles = new CopyOnWriteArraySet<>();
|
|
||||||
|
|
||||||
private BundleContext bundleContext;
|
|
||||||
|
|
||||||
private final static String LINK_NAME = "link-name";
|
|
||||||
private final static String LINK_URL = "link-url";
|
|
||||||
private final static String LINK_IMAGEURL = "link-imageurl";
|
|
||||||
|
|
||||||
@Activate
|
|
||||||
protected void activate(ComponentContext componentContext, Map<String, Object> properties) {
|
|
||||||
try {
|
|
||||||
bundleContext = componentContext.getBundleContext();
|
|
||||||
Hashtable<String, String> props = new Hashtable<>();
|
|
||||||
httpService.registerServlet(DASHBOARD_ALIAS + "/" + SERVLET_NAME, createServlet(), props,
|
|
||||||
httpService.createDefaultHttpContext());
|
|
||||||
httpService.registerResources(DASHBOARD_ALIAS, "web", null);
|
|
||||||
|
|
||||||
if (HttpServiceUtil.getHttpServicePort(bundleContext) > 0) {
|
|
||||||
logger.info("Started Dashboard at http://{}:{}", networkAddressService.getPrimaryIpv4HostAddress(),
|
|
||||||
HttpServiceUtil.getHttpServicePort(bundleContext));
|
|
||||||
}
|
|
||||||
if (HttpServiceUtil.getHttpServicePortSecure(bundleContext) > 0) {
|
|
||||||
logger.info("Started Dashboard at https://{}:{}", networkAddressService.getPrimaryIpv4HostAddress(),
|
|
||||||
HttpServiceUtil.getHttpServicePortSecure(bundleContext));
|
|
||||||
}
|
|
||||||
} catch (NamespaceException | ServletException e) {
|
|
||||||
logger.error("Error during Dashboard startup: {}", e.getMessage());
|
|
||||||
}
|
|
||||||
|
|
||||||
addTilesForExternalServices(properties);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Deactivate
|
|
||||||
protected void deactivate(ComponentContext componentContext) {
|
|
||||||
httpService.unregister(DASHBOARD_ALIAS + "/" + SERVLET_NAME);
|
|
||||||
httpService.unregister(DASHBOARD_ALIAS);
|
|
||||||
logger.info("Stopped Dashboard");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Reference
|
|
||||||
protected void setConfigurationAdmin(ConfigurationAdmin configurationAdmin) {
|
|
||||||
this.configurationAdmin = configurationAdmin;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void unsetConfigurationAdmin(ConfigurationAdmin configurationAdmin) {
|
|
||||||
this.configurationAdmin = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Reference
|
|
||||||
protected void setHttpService(HttpService httpService) {
|
|
||||||
this.httpService = httpService;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void unsetHttpService(HttpService httpService) {
|
|
||||||
this.httpService = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Reference
|
|
||||||
protected void setNetworkAddressService(NetworkAddressService networkAddressService) {
|
|
||||||
this.networkAddressService = networkAddressService;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void unsetNetworkAddressService(NetworkAddressService networkAddressService) {
|
|
||||||
this.networkAddressService = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Reference
|
|
||||||
protected void setLocaleProvider(final LocaleProvider localeProvider) {
|
|
||||||
this.localeProvider = localeProvider;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void unsetLocaleProvider(final LocaleProvider localeProvider) {
|
|
||||||
this.localeProvider = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Reference
|
|
||||||
public void setTranslationProvider(TranslationProvider i18nProvider) {
|
|
||||||
this.i18nProvider = i18nProvider;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void unsetTranslationProvider(TranslationProvider i18nProvider) {
|
|
||||||
this.i18nProvider = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Reference(cardinality = ReferenceCardinality.MULTIPLE, policy = ReferencePolicy.DYNAMIC)
|
|
||||||
protected void addDashboardTile(DashboardTile tile) {
|
|
||||||
tiles.add(tile);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void removeDashboardTile(DashboardTile tile) {
|
|
||||||
tiles.remove(tile);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected HttpServlet createServlet() {
|
|
||||||
String indexTemplate;
|
|
||||||
String entryTemplate;
|
|
||||||
String warnTemplate;
|
|
||||||
String setupTemplate;
|
|
||||||
|
|
||||||
URL index = bundleContext.getBundle().getEntry("templates/index.html");
|
|
||||||
if (index != null) {
|
|
||||||
try {
|
|
||||||
indexTemplate = IOUtils.toString(index.openStream());
|
|
||||||
} catch (IOException e) {
|
|
||||||
throw new ComponentException(e);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
throw new ComponentException("Cannot find index.html - failed to initialize Dashboard servlet");
|
|
||||||
}
|
|
||||||
|
|
||||||
URL entry = bundleContext.getBundle().getEntry("templates/entry.html");
|
|
||||||
if (entry != null) {
|
|
||||||
try {
|
|
||||||
entryTemplate = IOUtils.toString(entry.openStream());
|
|
||||||
} catch (IOException e) {
|
|
||||||
throw new ComponentException(e);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
throw new ComponentException("Cannot find entry.html - failed to initialize Dashboard servlet");
|
|
||||||
}
|
|
||||||
|
|
||||||
URL warn = bundleContext.getBundle().getEntry("templates/warn.html");
|
|
||||||
if (warn != null) {
|
|
||||||
try {
|
|
||||||
warnTemplate = IOUtils.toString(warn.openStream());
|
|
||||||
} catch (IOException e) {
|
|
||||||
throw new ComponentException(e);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
throw new RuntimeException("Cannot find warn.html - failed to initialize Dashboard servlet");
|
|
||||||
}
|
|
||||||
|
|
||||||
URL setup = bundleContext.getBundle().getEntry("templates/setup.html");
|
|
||||||
if (setup != null) {
|
|
||||||
try {
|
|
||||||
setupTemplate = IOUtils.toString(setup.openStream());
|
|
||||||
} catch (IOException e) {
|
|
||||||
throw new ComponentException(e);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
throw new ComponentException("Cannot find setup.html - failed to initialize Dashboard servlet");
|
|
||||||
}
|
|
||||||
|
|
||||||
return new DashboardServlet(configurationAdmin, indexTemplate, entryTemplate, warnTemplate, setupTemplate,
|
|
||||||
tiles, this::getLocalizedText);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void addTilesForExternalServices(Map<String, Object> properties) {
|
|
||||||
for (String key : properties.keySet()) {
|
|
||||||
if (key.endsWith(LINK_NAME)) {
|
|
||||||
if (key.length() > LINK_NAME.length()) {
|
|
||||||
// get prefix from link name
|
|
||||||
String linkname = key.substring(0, key.length() - LINK_NAME.length());
|
|
||||||
|
|
||||||
String name = (String) properties.get(linkname + LINK_NAME);
|
|
||||||
String url = (String) properties.get(linkname + LINK_URL);
|
|
||||||
String imageUrl = (String) properties.get(linkname + LINK_IMAGEURL);
|
|
||||||
|
|
||||||
DashboardTile newTile = new ExternalServiceTile.DashboardTileBuilder().withName(name).withUrl(url)
|
|
||||||
.withImageUrl(imageUrl).build();
|
|
||||||
|
|
||||||
if (name != null && url != null && !name.isEmpty() && !url.isEmpty()) {
|
|
||||||
addDashboardTile(newTile);
|
|
||||||
logger.debug("Tile added to Dashboard: {}", newTile);
|
|
||||||
} else {
|
|
||||||
logger.warn("Ignore invalid tile '{}': {}", linkname, newTile);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the localized text for the given key. When the key is 'locale' it returns the locale. If no locale or
|
|
||||||
* fall-back would be present it returns the key.
|
|
||||||
*
|
|
||||||
* @param key key to get locale from
|
|
||||||
* @return localized text for the key
|
|
||||||
*/
|
|
||||||
private String getLocalizedText(String key) {
|
|
||||||
Locale useLocale = localeProvider.getLocale() == null ? Locale.ENGLISH : localeProvider.getLocale();
|
|
||||||
|
|
||||||
if ("locale".equals(key)) {
|
|
||||||
// The return value for "locale" key is an ISO 639-1 language code
|
|
||||||
// In case there is no translation for the used locale provided with the dashboard, "en" is returned
|
|
||||||
return bundleContext.getBundle()
|
|
||||||
.getEntry("ESH-INF/i18n/dashboard_" + useLocale.getLanguage() + ".properties") != null
|
|
||||||
? useLocale.getLanguage()
|
|
||||||
: "en";
|
|
||||||
} else {
|
|
||||||
return i18nProvider.getText(bundleContext.getBundle(), key, key, useLocale);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,230 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright (c) 2010-2019 Contributors to the openHAB project
|
|
||||||
*
|
|
||||||
* See the NOTICE file(s) distributed with this work for additional
|
|
||||||
* information.
|
|
||||||
*
|
|
||||||
* This program and the accompanying materials are made available under the
|
|
||||||
* terms of the Eclipse Public License 2.0 which is available at
|
|
||||||
* http://www.eclipse.org/legal/epl-2.0
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: EPL-2.0
|
|
||||||
*/
|
|
||||||
package org.openhab.ui.dashboard.internal;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.Dictionary;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Hashtable;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.function.Function;
|
|
||||||
import java.util.regex.Matcher;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
import javax.servlet.ServletException;
|
|
||||||
import javax.servlet.http.HttpServlet;
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
|
|
||||||
import org.openhab.core.OpenHAB;
|
|
||||||
import org.openhab.ui.dashboard.DashboardTile;
|
|
||||||
import org.osgi.service.cm.Configuration;
|
|
||||||
import org.osgi.service.cm.ConfigurationAdmin;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This servlet constructs the main HTML page for the dashboard, listing all DashboardTiles
|
|
||||||
* that are registered as a service.
|
|
||||||
*
|
|
||||||
* @author Kai Kreuzer
|
|
||||||
* @author Laurent Garnier - internationalization
|
|
||||||
* @author Hilbrand Bouwkamp - internationalization
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public class DashboardServlet extends HttpServlet {
|
|
||||||
|
|
||||||
private static final long serialVersionUID = -5154582000538034381L;
|
|
||||||
|
|
||||||
private static final Pattern MESSAGE_KEY_PATTERN = Pattern.compile("\\$\\{([^\\}]+)\\}");
|
|
||||||
|
|
||||||
private final Logger logger = LoggerFactory.getLogger(DashboardServlet.class);
|
|
||||||
|
|
||||||
private ConfigurationAdmin configurationAdmin;
|
|
||||||
|
|
||||||
private String indexTemplate;
|
|
||||||
|
|
||||||
private String entryTemplate;
|
|
||||||
|
|
||||||
private String warnTemplate;
|
|
||||||
|
|
||||||
private String setupTemplate;
|
|
||||||
|
|
||||||
private Set<DashboardTile> tiles;
|
|
||||||
|
|
||||||
private Function<String, String> localizeFunction;
|
|
||||||
|
|
||||||
public DashboardServlet(ConfigurationAdmin configurationAdmin, String indexTemplate, String entryTemplate,
|
|
||||||
String warnTemplate, String setupTemplate, Set<DashboardTile> tiles,
|
|
||||||
Function<String, String> localizeFunction) {
|
|
||||||
this.configurationAdmin = configurationAdmin;
|
|
||||||
this.indexTemplate = indexTemplate;
|
|
||||||
this.entryTemplate = entryTemplate;
|
|
||||||
this.warnTemplate = warnTemplate;
|
|
||||||
this.setupTemplate = setupTemplate;
|
|
||||||
this.tiles = tiles;
|
|
||||||
this.localizeFunction = localizeFunction;
|
|
||||||
isExposed(null);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
|
|
||||||
if (isSetup()) {
|
|
||||||
serveDashboard(req, resp);
|
|
||||||
} else {
|
|
||||||
serveSetup(req, resp);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void serveDashboard(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
|
|
||||||
StringBuilder entries = new StringBuilder();
|
|
||||||
for (DashboardTile tile : tiles) {
|
|
||||||
Map<String, String> entryMap = new HashMap<>();
|
|
||||||
entryMap.put("name", tile.getName());
|
|
||||||
String overlay = tile.getOverlay() == null ? "none" : tile.getOverlay();
|
|
||||||
|
|
||||||
entryMap.put("url", tile.getUrl());
|
|
||||||
entryMap.put("overlay", overlay);
|
|
||||||
entryMap.put("icon", tile.getImageUrl());
|
|
||||||
entries.append(replaceKeysFromMap(entryTemplate, entryMap));
|
|
||||||
}
|
|
||||||
if (tiles.isEmpty()) {
|
|
||||||
if ("minimal".equals(getPackage())) {
|
|
||||||
entries.append(" ");
|
|
||||||
entries.append("${entry.no-ui-installed}");
|
|
||||||
} else {
|
|
||||||
entries.append(
|
|
||||||
" <div class=\"spinner spinner--steps\"><img src=\"img/spinner.svg\"></div> ");
|
|
||||||
entries.append("${entry.install-running}");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Map<String, String> replaceMap = new HashMap<>();
|
|
||||||
replaceMap.put("version", OpenHAB.getVersion() + " " + OpenHAB.buildString());
|
|
||||||
replaceMap.put("entries", entries.toString());
|
|
||||||
replaceMap.put("warn", isExposed(req) ? warnTemplate : "");
|
|
||||||
// Set the messages in the session
|
|
||||||
resp.setContentType("text/html;charset=UTF-8");
|
|
||||||
resp.getWriter().append(replaceKeysWithLocaleFunction(replaceKeysFromMap(indexTemplate, replaceMap)));
|
|
||||||
resp.getWriter().close();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void serveSetup(HttpServletRequest req, HttpServletResponse resp) throws IOException {
|
|
||||||
if (req.getParameter("type") != null) {
|
|
||||||
setPackage(req.getParameter("type"));
|
|
||||||
resp.sendRedirect(req.getRequestURI());
|
|
||||||
} else {
|
|
||||||
Map<String, String> replaceMap = new HashMap<>();
|
|
||||||
replaceMap.put("version", OpenHAB.getVersion() + " " + OpenHAB.buildString());
|
|
||||||
resp.setContentType("text/html;charset=UTF-8");
|
|
||||||
resp.getWriter().append(replaceKeysWithLocaleFunction(replaceKeysFromMap(setupTemplate, replaceMap)));
|
|
||||||
resp.getWriter().close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void setPackage(String parameter) {
|
|
||||||
try {
|
|
||||||
Configuration cfg = configurationAdmin.getConfiguration(OpenHAB.ADDONS_SERVICE_PID, null);
|
|
||||||
Dictionary<String, Object> props = cfg.getProperties();
|
|
||||||
if (props == null) {
|
|
||||||
props = new Hashtable<>();
|
|
||||||
}
|
|
||||||
props.put(OpenHAB.CFG_PACKAGE, parameter);
|
|
||||||
cfg.setBundleLocation(null);
|
|
||||||
cfg.update(props);
|
|
||||||
} catch (IOException e) {
|
|
||||||
logger.error("Error while accessing the configuration admin: {}", e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean isExposed(HttpServletRequest req) {
|
|
||||||
if (req != null) {
|
|
||||||
if ("ihavelearnedmylesson".equals(req.getParameter("warn"))) {
|
|
||||||
setExposed(false);
|
|
||||||
} else if ("activate".equals(req.getParameter("warn"))) {
|
|
||||||
setExposed(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
Configuration cfg = configurationAdmin.getConfiguration("org.openhab.dashboard");
|
|
||||||
if (cfg != null && cfg.getProperties() != null && cfg.getProperties().get("exposed") != null) {
|
|
||||||
if (cfg.getProperties().get("nowarning") == null) {
|
|
||||||
boolean value = cfg.getProperties().get("exposed").toString().equals(Boolean.TRUE.toString());
|
|
||||||
if (value) {
|
|
||||||
logger.error(
|
|
||||||
"WARNING - YOUR HOME IS EXPOSED! It is accessible from the Internet without authentication - please take immediate action!");
|
|
||||||
}
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (IOException e) {
|
|
||||||
logger.error("Error while accessing the configuration admin: {}", e.getMessage());
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void setExposed(boolean value) {
|
|
||||||
try {
|
|
||||||
Configuration cfg = configurationAdmin.getConfiguration("org.openhab.dashboard");
|
|
||||||
Dictionary<String, Object> props = cfg.getProperties();
|
|
||||||
if (props == null) {
|
|
||||||
props = new Hashtable<>();
|
|
||||||
}
|
|
||||||
props.put("exposed", value);
|
|
||||||
cfg.update(props);
|
|
||||||
} catch (IOException e) {
|
|
||||||
logger.error("Error while accessing the configuration admin: {}", e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean isSetup() {
|
|
||||||
return getPackage() != null;
|
|
||||||
}
|
|
||||||
|
|
||||||
private String getPackage() {
|
|
||||||
try {
|
|
||||||
Configuration cfg = configurationAdmin.getConfiguration(OpenHAB.ADDONS_SERVICE_PID, null);
|
|
||||||
if (cfg != null && cfg.getProperties() != null && cfg.getProperties().get(OpenHAB.CFG_PACKAGE) != null) {
|
|
||||||
return cfg.getProperties().get(OpenHAB.CFG_PACKAGE).toString();
|
|
||||||
}
|
|
||||||
} catch (IOException e) {
|
|
||||||
logger.error("Error while accessing the configuration admin: {}", e.getMessage());
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
private String replaceKeysWithLocaleFunction(String template) {
|
|
||||||
return replaceKeysWithFunction(template, (key) -> localizeFunction.apply(key));
|
|
||||||
}
|
|
||||||
|
|
||||||
private String replaceKeysFromMap(String template, Map<String, String> map) {
|
|
||||||
return replaceKeysWithFunction(template,
|
|
||||||
(key) -> Matcher.quoteReplacement(map.getOrDefault(key, "${" + key + '}')));
|
|
||||||
}
|
|
||||||
|
|
||||||
private String replaceKeysWithFunction(String template, Function<String, String> getMessage) {
|
|
||||||
Matcher m = MESSAGE_KEY_PATTERN.matcher(template);
|
|
||||||
StringBuffer sb = new StringBuffer();
|
|
||||||
|
|
||||||
while (m.find()) {
|
|
||||||
try {
|
|
||||||
String key = m.group(1);
|
|
||||||
m.appendReplacement(sb, getMessage.apply(key));
|
|
||||||
} catch (Exception e) {
|
|
||||||
logger.debug("Error occurred during template filling, cause ", e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
m.appendTail(sb);
|
|
||||||
return sb.toString();
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,98 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright (c) 2010-2019 Contributors to the openHAB project
|
|
||||||
*
|
|
||||||
* See the NOTICE file(s) distributed with this work for additional
|
|
||||||
* information.
|
|
||||||
*
|
|
||||||
* This program and the accompanying materials are made available under the
|
|
||||||
* terms of the Eclipse Public License 2.0 which is available at
|
|
||||||
* http://www.eclipse.org/legal/epl-2.0
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: EPL-2.0
|
|
||||||
*/
|
|
||||||
package org.openhab.ui.dashboard.internal;
|
|
||||||
|
|
||||||
import org.openhab.ui.dashboard.DashboardTile;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The dashboard tile for external services.
|
|
||||||
*
|
|
||||||
* @author Pauli Anttila - Initial contribution
|
|
||||||
*/
|
|
||||||
public class ExternalServiceTile implements DashboardTile {
|
|
||||||
private String name;
|
|
||||||
private String url;
|
|
||||||
private String overlay;
|
|
||||||
private String imageUrl;
|
|
||||||
|
|
||||||
private ExternalServiceTile(DashboardTileBuilder builder) {
|
|
||||||
this.name = builder.name;
|
|
||||||
this.url = builder.url;
|
|
||||||
this.overlay = builder.overlay;
|
|
||||||
this.imageUrl = builder.imageUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getName() {
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getUrl() {
|
|
||||||
return url;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getOverlay() {
|
|
||||||
return overlay;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getImageUrl() {
|
|
||||||
return imageUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
final int MAXLEN = 100;
|
|
||||||
|
|
||||||
String limitedImageUrl = imageUrl;
|
|
||||||
if (limitedImageUrl != null && limitedImageUrl.length() > MAXLEN) {
|
|
||||||
limitedImageUrl = imageUrl.substring(0, MAXLEN) + "...";
|
|
||||||
}
|
|
||||||
|
|
||||||
return "[name=" + name + ", url=" + url + ", overlay=" + overlay + ", imageUrl=" + limitedImageUrl + "]";
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class DashboardTileBuilder {
|
|
||||||
|
|
||||||
private String name;
|
|
||||||
private String url;
|
|
||||||
private String overlay;
|
|
||||||
private String imageUrl;
|
|
||||||
|
|
||||||
public DashboardTileBuilder withName(String name) {
|
|
||||||
this.name = name;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DashboardTileBuilder withUrl(String url) {
|
|
||||||
this.url = url;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DashboardTileBuilder withOverlay(String overlay) {
|
|
||||||
this.overlay = overlay;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DashboardTileBuilder withImageUrl(String imageUrl) {
|
|
||||||
this.imageUrl = imageUrl;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ExternalServiceTile build() {
|
|
||||||
return new ExternalServiceTile(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,28 +0,0 @@
|
|||||||
index.welcome = Welcome to openHAB 2
|
|
||||||
index.location-info = If you allow your browser to access your location, openHAB will use it for weather and astro information.
|
|
||||||
index.your-location = Your location:
|
|
||||||
|
|
||||||
setup.subtitle = Setup
|
|
||||||
setup.welcome = Welcome to openHAB 2 - Initial Setup
|
|
||||||
setup.intro = openHAB comes with many different add-ons. To allow an easy start, there are four pre-defined packages available that are a good starting point.
|
|
||||||
setup.check-doc = Check out the online documentation for a <a href="https://www.openhab.org/docs/configuration/packages.html" target="_blank">detailed description of those packages</a>.
|
|
||||||
setup.choose-package = Please choose a package:
|
|
||||||
setup.package-standard-overlay = Standard
|
|
||||||
setup.package-standard-footer = Recommended setup
|
|
||||||
setup.package-simple-overlay = Simple
|
|
||||||
setup.package-simple-footer = Purely UI
|
|
||||||
setup.package-expert-overlay = Expert
|
|
||||||
setup.package-expert-footer = Best for 1.x users
|
|
||||||
setup.package-demo-overlay = Demo
|
|
||||||
setup.package-demo-footer = Sample setup
|
|
||||||
setup.skip-package = Skip the package selection...
|
|
||||||
|
|
||||||
common.getting-started = Getting started? Please refer to the <a href="https://www.openhab.org/docs/" target="_blank">online documentation</a>.
|
|
||||||
|
|
||||||
entry.no-ui-installed = No user interfaces installed.
|
|
||||||
entry.install-running = Please stand by while UIs are being installed. This can take several minutes.
|
|
||||||
|
|
||||||
warn.exposed = <p><b>WARNING - YOUR HOME IS EXPOSED!</b></p> \
|
|
||||||
<p>It seems that you have configured your network in a way that you can remotely access your openHAB server. Unfortunately, it is not just you - almost <b>everybody on the Internet can access it!</b></p> \
|
|
||||||
<p>If this wasn't your plan, please act immediately. Stop the port forwarding of your router or make sure that you have a secure authentication mechanism in place, e.g. by using NGINX as a reverse proxy inbetween.</p> \
|
|
||||||
<p>If you have read and understood this message and you have taken appropriate actions, please <a href="?warn=ihavelearnedmylesson" style="color: #DDDDDD">click here</a> to make this message disappear again.</p>
|
|
@ -1,6 +0,0 @@
|
|||||||
#X-Generator: crowdin.com
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
|||||||
#X-Generator: crowdin.com
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
|||||||
#X-Generator: crowdin.com
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
|||||||
#X-Generator: crowdin.com
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
|||||||
#X-Generator: crowdin.com
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
|||||||
#X-Generator: crowdin.com
|
|
||||||
index.welcome=V\u00edtejte v openHAB 2
|
|
||||||
index.location-info=Pokud povol\u00edte ve Va\u0161em prohl\u00ed\u017ee\u010di p\u0159\u00edstup k poloze, openHAB ji pou\u017eije pro astro informace a informace o po\u010das\u00ed.
|
|
||||||
index.your-location=Va\u0161e poloha\:
|
|
||||||
|
|
||||||
setup.subtitle=Konfigurace
|
|
||||||
setup.welcome=V\u00edtejte v openHAB 2 - Po\u010d\u00e1te\u010dn\u00ed konfigurace
|
|
||||||
setup.intro=openHAB p\u0159ich\u00e1z\u00ed s mnoha r\u016fzn\u00fdmi dopl\u0148ky. Pro snadn\u00fd za\u010d\u00e1tek jsou p\u0159ipraven\u00e9 \u010dty\u0159i bal\u00ed\u010dky, kter\u00e9 budou dobr\u00fdm startovn\u00edm bodem.
|
|
||||||
setup.check-doc=Pod\u00edvejte se na online dokumentaci na <a href\="https\://www.openhab.org/docs/configuration/packages.html" target\="_blank">podrobn\u00fd popis t\u011bchto bal\u00ed\u010dk\u016f</a>.
|
|
||||||
setup.choose-package=Pros\u00edm, vyberte bal\u00ed\u010dek\:
|
|
||||||
setup.package-standard-overlay=Standard
|
|
||||||
setup.package-standard-footer=Doporu\u010den\u00e1 varianta
|
|
||||||
setup.package-simple-overlay=Z\u00e1kladn\u00ed
|
|
||||||
setup.package-simple-footer=Jen u\u017eiv. prost\u0159.
|
|
||||||
setup.package-expert-overlay=Pro experty
|
|
||||||
setup.package-expert-footer=Pro u\u017eiv. verze 1.x
|
|
||||||
setup.package-demo-overlay=Demo
|
|
||||||
setup.package-demo-footer=Uk\u00e1zkov\u00e1 instalace
|
|
||||||
setup.skip-package=P\u0159esko\u010dit v\u00fdb\u011br bal\u00ed\u010dku...
|
|
||||||
|
|
||||||
common.getting-started=Za\u010d\u00edn\u00e1te? Pod\u00edvejte se na <a href\="https\://www.openhab.org/docs/" target\="_blank">online dokumentaci</a>.
|
|
||||||
|
|
||||||
entry.no-ui-installed=\u017d\u00e1dn\u00e9 u\u017eivatelsk\u00e9 rozhran\u00ed nen\u00ed nainstalovan\u00e9.
|
|
||||||
entry.install-running=Pros\u00edm po\u010dkejte, ne\u017e se nainstaluj\u00ed u\u017eivatelsk\u00e1 rozhran\u00ed. M\u016f\u017ee to p\u00e1r minut trvat.
|
|
||||||
|
|
||||||
warn.exposed=<p><b>UPOZORN\u011aN\u00cd - V\u00c1\u0160 DOMOV JE OTEV\u0158EN INTERNETU\!</b></p> \n<p>zd\u00e1 se, \u017ee jste nakonfigurovali s\u00ed\u0165 zp\u016fsobem, \u017ee lze vzd\u00e1len\u011b p\u0159istupovat k Va\u0161emu serveru openHAB. Bohu\u017eel nejen Vy - <b>t\u00e9m\u011b\u0159 v\u0161ichni na internetu k n\u011bmu mohou m\u00edt p\u0159\u00edstup\!</b></p> \n<p>Pokud to nebyl v\u00e1\u0161 \u00famysl, jednejte okam\u017eit\u011b. Zastavte p\u0159esm\u011brov\u00e1n\u00ed port\u016f na Va\u0161em routeru a nebo se ujist\u011bte, \u017ee pou\u017e\u00edv\u00e1te bezpe\u010dn\u00fd ov\u011b\u0159ovac\u00ed mechanismus, nap\u0159\u00edklad pomoc\u00ed NGINX jako reverzn\u00ed proxy.</p> \n<p>Pokud jste si p\u0159e\u010detli a pochopili tuto zpr\u00e1vu a p\u0159ijali jste p\u0159\u00edslu\u0161n\u00e1 opat\u0159en\u00ed, <a href\="?warn\=ihavelearnedmylesson" style\="color\: \#DDDDDD">klikn\u011bte zde</a>, aby tato zpr\u00e1va zmizela.</p>
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
|||||||
#X-Generator: crowdin.com
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
|||||||
#X-Generator: crowdin.com
|
|
||||||
index.welcome=Willkommen bei openHAB 2
|
|
||||||
index.location-info=Wenn Sie \u00fcber Ihren Browser Zugriff auf Ihren Standort gew\u00e4hren wird openHAB diesen f\u00fcr Wetter- und Astronomische-Daten verwenden.
|
|
||||||
index.your-location=Ihr Standort\:
|
|
||||||
|
|
||||||
setup.subtitle=Einrichten
|
|
||||||
setup.welcome=Willkommen bei openHAB 2 - Erstmalige Einrichtung
|
|
||||||
setup.intro=openHAB stellt viele verschiedene Add-ons bereit. Um einen leichten Einstieg zu erm\u00f6glichen werden folgende vordefinierte Pakete als Ausgangspunkt angeboten.
|
|
||||||
setup.check-doc=Bitte besuchen Sie die Online-Dokumentation, um eine <a href\="https\://www.openhab.org/docs/configuration/packages.html" target\="_blank">detaillierte Beschreibung dieser Pakete</a> zu erhalten.
|
|
||||||
setup.choose-package=Bitte w\u00e4hlen Sie ein Paket\:
|
|
||||||
setup.package-standard-overlay=Standard
|
|
||||||
setup.package-standard-footer=Empfohlenes Paket
|
|
||||||
setup.package-simple-overlay=Simple
|
|
||||||
setup.package-simple-footer=Rein Grafisch
|
|
||||||
setup.package-expert-overlay=Experte
|
|
||||||
setup.package-expert-footer=Empfohlen f\u00fcr 1.x Benutzer
|
|
||||||
setup.package-demo-overlay=Demo
|
|
||||||
setup.package-demo-footer=Beispiel-Einrichtung
|
|
||||||
setup.skip-package=Paketauswahl \u00fcberspringen...
|
|
||||||
|
|
||||||
common.getting-started=Erste Schritte? Bitte besuchen Sie die <a href\="https\://www.openhab.org/docs/" target\="_blank">Online-Dokumentation</a>.
|
|
||||||
|
|
||||||
entry.no-ui-installed=Es sind keine Benutzeroberfl\u00e4chen installiert.
|
|
||||||
entry.install-running=Bitte warten Sie, w\u00e4hrend die Benutzeroberfl\u00e4chen eingerichtet werden. Dies kann einige Minuten dauern.
|
|
||||||
|
|
||||||
warn.exposed=<p><b>ACHTUNG - IHR SYSTEM IST OFFEN ZUG\u00c4NGLICH\!</b></p>\n<p>Es scheint, dass Sie Ihr Netzwerk so konfiguriert haben, dass Sie auf den openHAB-Server aus der Ferne zugreifen k\u00f6nnen. Leider gilt dies nicht nur f\u00fcr Sie - fast <b>jeder kann aus dem Internet darauf zugreifen\!</b></p>\n<p>Wenn dies nicht gew\u00fcnscht ist, sollten Sie sofort handeln. Entfernen Sie eingerichtete Port-Weiterleitungen Ihres Routers oder stellen Sie sicher, dass Sie ein sicheres Authentifizierungsverfahren nutzen. Sie k\u00f6nnen z.B. mit Hilfe von NGINX einen Reverse-Proxy einrichten.</p>\n<p>Nachdem Sie entsprechende Ma\u00dfnahmen ergriffen haben, <a href\="?warn\=ihavelearnedmylesson" style\="color\: \#DDDDDD">klicken Sie hier</a> um diese Meldung auszublenden.</p>
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
|||||||
#X-Generator: crowdin.com
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
|||||||
#X-Generator: crowdin.com
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
|||||||
#X-Generator: crowdin.com
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
|||||||
#X-Generator: crowdin.com
|
|
||||||
index.welcome=Bienvenue dans openHAB 2
|
|
||||||
index.location-info=Si vous autorisez votre navigateur \u00e0 acc\u00e9der \u00e0 votre position, openHAB l'utilisera par exemple pour les donn\u00e9es m\u00e9t\u00e9o locales.
|
|
||||||
index.your-location=Votre position\:
|
|
||||||
|
|
||||||
setup.subtitle=Configuration
|
|
||||||
setup.welcome=Bienvenue dans openHAB 2 - Configuration initiale
|
|
||||||
setup.intro=openHAB est fourni avec de nombreuses extensions. Pour permettre un d\u00e9marrage facile, quatre paquets d'extensions pr\u00e9-d\u00e9finis sont disponibles et constituent un bon point de d\u00e9part.
|
|
||||||
setup.check-doc=Consulter la documentation en ligne pour une <a href\="https\://www.openhab.org/docs/configuration/packages.html" target\="_blank">description d\u00e9taill\u00e9e de ces paquets</a>.
|
|
||||||
setup.choose-package=Merci de choisir un paquet\:
|
|
||||||
setup.package-standard-overlay=Standard
|
|
||||||
setup.package-standard-footer=Configuration recommand\u00e9e
|
|
||||||
setup.package-simple-overlay=Simple
|
|
||||||
setup.package-simple-footer=Purement UI
|
|
||||||
setup.package-expert-overlay=Expert
|
|
||||||
setup.package-expert-footer=Pour les utilisateurs 1.x
|
|
||||||
setup.package-demo-overlay=D\u00e9mo
|
|
||||||
setup.package-demo-footer=Configuration de d\u00e9mo
|
|
||||||
setup.skip-package=Sauter l'\u00e9tape de s\u00e9lection d'un paquet...
|
|
||||||
|
|
||||||
common.getting-started=D\u00e9marrage ? Merci de vous r\u00e9f\u00e9rer \u00e0 la <a href\="https\://www.openhab.org/docs/" target\="_blank">documentation en ligne</a>.
|
|
||||||
|
|
||||||
entry.no-ui-installed=Aucune interface utilisateur install\u00e9e.
|
|
||||||
entry.install-running=Merci de patienter pendant l'installation. Cela peut prendre plusieurs minutes.
|
|
||||||
|
|
||||||
warn.exposed=<p><b>ATTENTION - VOTRE MAISON EST EXPOS\u00c9E\!</b></p>\n<p>Il semble que vous ayez configur\u00e9 votre r\u00e9seau de mani\u00e8re \u00e0 pouvoir acc\u00e9der \u00e0 distance \u00e0 votre serveur openHAB. Malheureusement, ce n'est pas seulement vous mais pratiquement <b>tout le monde sur Internet qui peut y acc\u00e9der \!</b></p>\n<p>Si ce n'\u00e9tait pas votre objectif, veuillez agir imm\u00e9diatement. Arr\u00eatez le renvoi de port de votre routeur ou assurez-vous que vous disposez d'un m\u00e9canisme d'authentification s\u00e9curis\u00e9, par exemple en utilisant NGINX comme reverse proxy entre Internet et votre serveur openHAB.</p>\n<p>Si vous avez lu et compris ce message et que vous avez pris les mesures appropri\u00e9es, merci de <a href\="?warn\=ihavelearnedmylesson" style\="color\: \#DDDDDD">cliquez ici</a> pour faire dispara\u00eetre ce message.</p>
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
|||||||
#X-Generator: crowdin.com
|
|
||||||
index.welcome=\u05d1\u05e8\u05d5\u05db\u05d9\u05dd \u05d4\u05d1\u05d0\u05d9\u05dd \u05dc openHAB 2
|
|
||||||
index.location-info=\u05d0\u05dd \u05ea\u05d0\u05e4\u05e9\u05e8 \u05dc\u05d3\u05e4\u05d3\u05e4\u05df \u05d2\u05d9\u05e9\u05d4 \u05dc\u05de\u05d9\u05e7\u05d5\u05dd \u05e9\u05dc\u05da, openHAB \u05d9\u05e9\u05ea\u05de\u05e9 \u05d1\u05de\u05d9\u05d3\u05e2 \u05d6\u05d4 \u05dc\u05e0\u05ea\u05d5\u05e0\u05d9 \u05de\u05d6\u05d2 \u05d4\u05d0\u05d5\u05d5\u05d9\u05e8 \u05d5\u05de\u05d9\u05d3\u05e2 \u05d0\u05e1\u05d8\u05e8\u05d5\u05e0\u05d5\u05de\u05d9.
|
|
||||||
index.your-location=\u05d4\u05de\u05d9\u05e7\u05d5\u05dd \u05e9\u05dc\u05da\:
|
|
||||||
|
|
||||||
setup.subtitle=\u05d4\u05ea\u05e7\u05e0\u05d4
|
|
||||||
setup.welcome=\u05d1\u05e8\u05d5\u05da \u05d4\u05d1\u05d0 \u05dc openHAB 2 - \u05d4\u05d2\u05d3\u05e8\u05d4 \u05e8\u05d0\u05e9\u05d5\u05e0\u05d9\u05ea
|
|
||||||
setup.intro=openHAB \u05de\u05d2\u05d9\u05e2 \u05e2\u05dd \u05ea\u05d5\u05e1\u05e4\u05d9\u05dd \u05e8\u05d1\u05d9\u05dd \u05d5\u05e9\u05d5\u05e0\u05d9\u05dd. \u05db\u05d3\u05d9 \u05dc\u05d0\u05e4\u05e9\u05e8 \u05d4\u05ea\u05d7\u05dc\u05d4 \u05e7\u05dc\u05d4, \u05e7\u05d9\u05d9\u05de\u05d5\u05ea \u05d0\u05e8\u05d1\u05e2 \u05d7\u05d1\u05d9\u05dc\u05d5\u05ea \u05de\u05d5\u05d2\u05d3\u05e8\u05d5\u05ea \u05de\u05e8\u05d0\u05e9 \u05d4\u05e0\u05d5\u05ea\u05e0\u05d5\u05ea \u05e0\u05e7\u05d5\u05d3\u05ea \u05d4\u05ea\u05d7\u05dc\u05d4 \u05d8\u05d5\u05d1\u05d4.
|
|
||||||
setup.check-doc=\u05d1\u05d3\u05d5\u05e7 \u05d1\u05ea\u05d9\u05e2\u05d5\u05d3 \u05d4\u05de\u05e7\u05d5\u05d5\u05df <a href\="https\://www.openhab.org/docs/configuration/packages.html" target\="_blank"> \u05ea\u05d9\u05d0\u05d5\u05e8 \u05de\u05e4\u05d5\u05e8\u05d8 \u05e9\u05dc \u05d7\u05d1\u05d9\u05dc\u05d5\u05ea \u05d0\u05dc\u05d5<a/>.
|
|
||||||
setup.choose-package=\u05d1\u05d7\u05d9\u05e8\u05ea \u05d7\u05d1\u05d9\u05dc\u05d4\:
|
|
||||||
setup.package-standard-overlay=\u05e8\u05d2\u05d9\u05dc
|
|
||||||
setup.package-standard-footer=\u05d4\u05ea\u05e7\u05e0\u05d4 \u05de\u05d5\u05de\u05dc\u05e6\u05ea
|
|
||||||
setup.package-simple-overlay=\u05e4\u05e9\u05d5\u05d8
|
|
||||||
setup.package-simple-footer=\u05de\u05de\u05e9\u05e7 \u05de\u05e9\u05ea\u05de\u05e9 \u05d1\u05dc\u05d1\u05d3
|
|
||||||
setup.package-expert-overlay=\u05de\u05d5\u05de\u05d7\u05d4 (\u05db\u05dc \u05d4\u05d0\u05e4\u05e9\u05e8\u05d5\u05d9\u05d5\u05ea)
|
|
||||||
setup.package-expert-footer=\u05d4\u05d8\u05d5\u05d1 \u05d1\u05d9\u05d5\u05ea\u05e8 \u05e2\u05d1\u05d5\u05e8 \u05de\u05e9\u05ea\u05de\u05e9\u05d9\u05dd \u05d1\u05d2\u05d9\u05e8\u05e1\u05d0\u05d5\u05ea 1
|
|
||||||
setup.package-demo-overlay=\u05d4\u05d3\u05d2\u05de\u05d4
|
|
||||||
setup.package-demo-footer=\u05d4\u05ea\u05e7\u05e0\u05d4 \u05dc\u05d3\u05d5\u05d2\u05de\u05d0
|
|
||||||
setup.skip-package=\u05d3\u05dc\u05d2 \u05e2\u05dc \u05d1\u05d7\u05d9\u05e8\u05ea \u05d7\u05d1\u05d9\u05dc\u05d4...
|
|
||||||
|
|
||||||
common.getting-started=\u05de\u05ea\u05d7\u05d9\u05dc\u05d9\u05dd? \u05e0\u05d0 \u05dc\u05e4\u05e0\u05d5\u05ea \u05dc <a href\="https\://www.openhab.org/docs/" target\="_blank"> \u05ea\u05d9\u05e2\u05d5\u05d3 \u05de\u05e7\u05d5\u05d5\u05df </a>.
|
|
||||||
|
|
||||||
entry.no-ui-installed=\u05dc\u05d0 \u05d4\u05d5\u05ea\u05e7\u05df \u05de\u05de\u05e9\u05e7 \u05de\u05e9\u05ea\u05de\u05e9.
|
|
||||||
entry.install-running=\u05d0\u05e0\u05d0 \u05d4\u05de\u05ea\u05df \u05d1\u05d6\u05de\u05df \u05e9\u05de\u05de\u05e9\u05e7\u05d9 \u05d4\u05de\u05e9\u05ea\u05de\u05e9 \u05de\u05d5\u05ea\u05e7\u05e0\u05d9\u05dd. \u05ea\u05d4\u05dc\u05d9\u05da \u05d6\u05d4 \u05e2\u05dc\u05d5\u05dc \u05dc\u05e7\u05d7\u05ea \u05de\u05e1\u05e4\u05e8 \u05d3\u05e7\u05d5\u05ea.
|
|
||||||
|
|
||||||
warn.exposed=<p><b> \u05d0\u05d6\u05d4\u05e8\u05d4 - \u05d1\u05d9\u05ea\u05da \u05d7\u05e9\u05d5\u05e3</b></p> \n<p>\u05e0\u05e8\u05d0\u05d4 \u05e9\u05d4\u05d2\u05d3\u05e8\u05ea \u05d0\u05ea \u05d4\u05e8\u05e9\u05ea \u05e9\u05dc\u05da \u05d1\u05d0\u05d5\u05e4\u05df \u05e9\u05de\u05d0\u05e4\u05e9\u05e8 \u05d2\u05d9\u05e9\u05d4 \u05de\u05e8\u05d7\u05d5\u05e7 \u05dc\u05e9\u05e8\u05ea openHAB. \u05dc\u05e6\u05e2\u05e8\u05e0\u05d5 \u05d4\u05d2\u05d9\u05e9\u05d4 \u05e0\u05d9\u05ea\u05e0\u05ea \u05dc\u05d0 \u05e8\u05e7 \u05dc\u05da - <b> \u05d4\u05d2\u05d9\u05e9\u05d4 \u05dc\u05e8\u05e9\u05ea \u05e9\u05dc\u05da \u05e0\u05e4\u05ea\u05d7\u05d4 \u05db\u05de\u05e2\u05d8 \u05dc\u05db\u05d5\u05dc\u05dd \u05d1\u05e8\u05e9\u05ea\!</b></p\n<p>\u05d0\u05dd \u05d6\u05d5 \u05dc\u05d0 \u05d4\u05d9\u05d9\u05ea\u05d4 \u05db\u05d5\u05d5\u05e0\u05ea\u05da, \u05d0\u05e0\u05d0 \u05e4\u05e2\u05dc \u05de\u05d9\u05d3. \u05d7\u05e1\u05d5\u05dd \u05d0\u05ea \u05d4\u05d2\u05d9\u05e9\u05d4 \u05d4\u05e4\u05ea\u05d5\u05d7\u05d4 \u05d1\u05e8\u05d0\u05d5\u05d8\u05e8 \u05d0\u05d5 \u05d5\u05d5\u05d3\u05d0 \u05e9\u05d9\u05e9 \u05dc\u05da \u05de\u05e0\u05d2\u05e0\u05d5\u05df \u05d0\u05d1\u05d8\u05d7\u05d4 \u05de\u05d0\u05d5\u05de\u05ea \u05d1\u05de\u05e7\u05d5\u05dd, \u05dc\u05de\u05e9\u05dc \u05e2"\u05d9 \u05e9\u05d9\u05de\u05d5\u05e9 \u05d1 NGINX \u05db reverse proxy \u05db\u05d4\u05e4\u05e8\u05d3\u05d4 \u05d1\u05d0\u05de\u05e6\u05e2.</p>\n <p>\u05d0\u05dd \u05e7\u05e8\u05d0\u05ea \u05d5\u05d4\u05d1\u05e0\u05ea \u05d0\u05ea \u05d4\u05d4\u05d5\u05d3\u05e2\u05d5\u05ea \u05d4\u05e0"\u05dc \u05d5\u05d1\u05d9\u05e6\u05e2\u05ea \u05d0\u05ea \u05d4\u05e4\u05e2\u05d5\u05dc\u05d5\u05ea \u05d4\u05de\u05d5\u05de\u05dc\u05e6\u05d5\u05ea, \u05d0\u05e0\u05d0 \u05dc\u05d7\u05e5 \u05db\u05d0\u05df <a href\="?warn\=ihavelearnedmylesson" style\="color\: \#DDDDDD"> </a> \u05db\u05d3\u05d9 \u05dc\u05d4\u05e2\u05dc\u05d9\u05dd \u05d0\u05ea \u05d4\u05d4\u05d5\u05d3\u05e2\u05d4 \u05d4\u05d6\u05d0\u05ea \u05e9\u05d5\u05d1.</p>
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
|||||||
#X-Generator: crowdin.com
|
|
||||||
index.welcome=\u00dcdv\u00f6z\u00f6llek az openHAB 2-ben
|
|
||||||
index.location-info=Ha enged\u00e9lyezed a b\u00f6ng\u00e9sz\u0151dnek a helymeghat\u00e1roz\u00e1st, akkor az openHAB fel tudja haszn\u00e1lni id\u0151j\u00e1r\u00e1s \u00e9s csillag\u00e1szati c\u00e9lokra
|
|
||||||
index.your-location=Tart\u00f3zkod\u00e1si helyed\:
|
|
||||||
|
|
||||||
setup.subtitle=Be\u00e1ll\u00edt\u00e1s
|
|
||||||
setup.welcome=openHAB 2 - Els\u0151 be\u00e1ll\u00edt\u00e1s
|
|
||||||
setup.intro=openHAB sok, k\u00fcl\u00f6nf\u00e9le modullal \u00e9rkezik. N\u00e9gy el\u0151redefini\u00e1lt csomag \u00e1ll rendelkez\u00e9sedre, j\u00f3 kezd\u00e9s ezek k\u00f6z\u00fcl v\u00e1lasztani.
|
|
||||||
setup.check-doc=Online dokument\u00e1ci\u00f3 a <a href\="https\://www.openhab.org/docs/configuration/packages.html" target\="_blank">a csomagok r\u00e9szletes le\u00edr\u00e1s\u00e1hoz</a>.
|
|
||||||
setup.choose-package=V\u00e1lassz egy csomagot\:
|
|
||||||
setup.package-standard-overlay=Norm\u00e1l
|
|
||||||
setup.package-standard-footer=Aj\u00e1nlott be\u00e1ll\u00edt\u00e1s
|
|
||||||
setup.package-simple-overlay=Egyszer\u0171
|
|
||||||
setup.package-simple-footer=Egyszer\u0171 felhaszn\u00e1l\u00f3i fel\u00fclet
|
|
||||||
setup.package-expert-overlay=Halad\u00f3
|
|
||||||
setup.package-expert-footer=A legjobb 1.x felhaszn\u00e1l\u00f3knak
|
|
||||||
setup.package-demo-overlay=Dem\u00f3
|
|
||||||
setup.package-demo-footer=Minta be\u00e1ll\u00edt\u00e1s
|
|
||||||
setup.skip-package=Csomagkiv\u00e1laszt\u00e1s megtart\u00e1sa...
|
|
||||||
|
|
||||||
common.getting-started=Most kezded? K\u00e9rlek n\u00e9zd meg az <a href\="https\://www.openhab.org/docs/" target\="_blank">online dokument\u00e1ci\u00f3t</a>.
|
|
||||||
|
|
||||||
entry.no-ui-installed=Nincs felhaszn\u00e1l\u00f3i fel\u00fclet telep\u00edtve.
|
|
||||||
entry.install-running=K\u00e9rlek v\u00e1rd meg, m\u00edg a felhaszn\u00e1l\u00f3 fel\u00fclet telep\u00edt\u00e9sre ker\u00fcl. Ez n\u00e9h\u00e1ny perc...
|
|
||||||
|
|
||||||
warn.exposed=<p><b>FIGYELEM - A H\u00c1ZAD L\u00c1THAT\u00d3 AZ INTERNETEN\!</b></p> \n<p>Te \u00fagy \u00e1ll\u00edtottad be a h\u00e1l\u00f3zatodat, hogy t\u00e1volr\u00f3l el\u00e9rhet\u0151 legyen az openHAB szervered, de <b>nem csak Te l\u00e1thatod, b\u00e1rki m\u00e1s is\!</b></p> \n<p>Ha nem ez volt a c\u00e9lod, akkor azonnal cselekedj\! \u00c1ll\u00edtsd le a port-forwarding -ot a router-edben \u00e9s ellen\u0151rizd a t\u0171zfal be\u00e1ll\u00edt\u00e1saidat\!</p> \n<p>Ha ez volt a c\u00e9lod, \u00e9s ez nem hiba, akkor <a href\="?warn\=ihavelearnedmylesson" style\="color\: \#DDDDDD">kattints ide</a> \u00e9s az \u00fczenet elt\u0171nik.</p>
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
|||||||
#X-Generator: crowdin.com
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
|||||||
#X-Generator: crowdin.com
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
|||||||
#X-Generator: crowdin.com
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
|||||||
#X-Generator: crowdin.com
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
|||||||
#X-Generator: crowdin.com
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
|||||||
#X-Generator: crowdin.com
|
|
||||||
index.welcome=Welkom bij openHAB 2
|
|
||||||
index.location-info=Als u uw browser toegang geeft tot uw locatie, zal openHAB deze gebruiken voor weer- en astro-informatie.
|
|
||||||
index.your-location=Uw locatie\:
|
|
||||||
|
|
||||||
setup.subtitle=Set-up
|
|
||||||
setup.welcome=Welkom bij openHAB 2 - Initi\u00eble configuratie
|
|
||||||
setup.intro=openHAB komt met meerdere add-ons. Om een gemakkelijke start mogelijk te maken, zijn er vier vooraf gedefinieerde pakketten beschikbaar die een goed beginpunt zijn.
|
|
||||||
setup.check-doc=Bekijk de online documentatie voor een <a href\="https\://www.openhab.org/docs/configuration/packages.html" target\="_blank"> gedetailleerde beschrijving van die pakketten (engels)</a>.
|
|
||||||
setup.choose-package=Kies een pakket\:
|
|
||||||
setup.package-standard-overlay=Standaard
|
|
||||||
setup.package-standard-footer=Aanbevolen configuratie
|
|
||||||
setup.package-simple-overlay=Eenvoudig
|
|
||||||
setup.package-simple-footer=Enkel UI
|
|
||||||
setup.package-expert-overlay=Expert
|
|
||||||
setup.package-expert-footer=Het beste voor 1.x gebruikers
|
|
||||||
setup.package-demo-overlay=Demo
|
|
||||||
setup.package-demo-footer=Voorbeeld configuratie
|
|
||||||
setup.skip-package=Sla de pakket selectie over...
|
|
||||||
|
|
||||||
common.getting-started=Net gestart? Raadpleeg de <a href\="https\://www.openhab.org/docs/" target\="_blank"> online documentatie (engels)</a>.
|
|
||||||
|
|
||||||
entry.no-ui-installed=Geen gebruikersinterfaces ge\u00efnstalleerd.
|
|
||||||
entry.install-running=Even geduld alstublieft terwijl de UI's worden ge\u00efnstalleerd. Dit kan enkele minuten duren.
|
|
||||||
|
|
||||||
warn.exposed=<p><b>WAARSCHUWING - UW HUIS IS TOEGANKELIJK VANAF HET INTERNET\!</b></p>\n<p>Het lijkt erop dat u uw netwerk heeft geconfigureerd op een manier die het mogelijk maakt op afstand op uw openHAB server te komen. Helaas heeft niet alleen u toegang - bijna <b> iedereen op het internet heeft toegang\!</b></p>\n<p>Als dit niet uw bedoeling was, dient u meteen te handelen. Stop port forwarding van uw router naar de openHAB server of zorg ervoor dat u een beveiligingsmechanisme heeft, bijvoorbeeld door gebruik te maken van NGINX als een omgekeerde proxy.</p>\n<p>Als u dit bericht gelezen en begrepen heeft en u passende maatregelen genomen heeft, <a href\="?warn\=ihavelearnedmylesson" style\="color\: \#DDDDDD">klik hier</a> om dit bericht te laten verdwijnen.</p>
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
|||||||
#X-Generator: crowdin.com
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
|||||||
#X-Generator: crowdin.com
|
|
||||||
index.welcome=Witaj w openHAB 2
|
|
||||||
index.location-info=Je\u015bli zezwolisz na dost\u0119p do lokalizacji w przegl\u0105darce, openHAB u\u017cyje jej w celu pozyskania informacji o lokalnej pogodzie i porze dnia.
|
|
||||||
index.your-location=Twoja lokalizacja\:
|
|
||||||
|
|
||||||
setup.subtitle=Konfiguracja
|
|
||||||
setup.welcome=Witaj w openHAB 2 - ustawienia pocz\u0105tkowe
|
|
||||||
setup.intro=openHAB jest wyposa\u017cony w wiele r\u00f3\u017cnych dodatk\u00f3w. Aby umo\u017cliwi\u0107 \u0142atwy start, przygotowali\u015bmy cztery wst\u0119pnie zdefiniowane pakiety.
|
|
||||||
setup.choose-package=Wybierz pakiet\:
|
|
||||||
setup.package-standard-overlay=Standardowy
|
|
||||||
setup.package-standard-footer=Zalecana konfiguracja
|
|
||||||
setup.package-simple-overlay=Prosty
|
|
||||||
setup.package-simple-footer=Czysty interfejs u\u017cytkownika
|
|
||||||
setup.package-expert-overlay=Ekspert
|
|
||||||
setup.package-expert-footer=Najlepszy dla u\u017cytkownik\u00f3w 1.x
|
|
||||||
setup.package-demo-overlay=Demo
|
|
||||||
setup.package-demo-footer=Przyk\u0142adowa konfiguracja
|
|
||||||
setup.skip-package=Pomi\u0144 wyb\u00f3r pakietu...
|
|
||||||
|
|
||||||
|
|
||||||
entry.no-ui-installed=Brak zainstalowanych interfejs\u00f3w u\u017cytkownika.
|
|
||||||
entry.install-running=Poczekaj - instalujemy interfejsy u\u017cytkownika. Mo\u017ce to potrwa\u0107 kilka minut.
|
|
||||||
|
|
||||||
warn.exposed=<p><b>Ostrze\u017cenie - Tw\u00f3j dom jest NARA\u017bONY\!</b></p>\n<p>Wydaje si\u0119, \u017ce skonfigurowano sie\u0107 tak, \u017ce mo\u017cliwy jest zdalny dost\u0119p do serwera openHAB. Niestety, nie tylko dla Ciebie - prawie <b>wszyscy w Internecie mog\u0105 uzyska\u0107 do niego dost\u0119p\!</b></p>\n<p>Je\u015bli nie mia\u0142e\u015b takiego zamiaru, musisz dzia\u0142a\u0107 natychmiast. Zatrzymaj przekierowania port\u00f3w routera lub upewnij si\u0119, \u017ce masz mechanizm bezpiecznego uwierzytelniania, np. za pomoc\u0105 NGINX jako "reverse proxy".</p> <p>Je\u015bli przeczyta\u0142e\u015b i zrozumia\u0142e\u015b ten komunikat, a tak\u017ce podj\u0105\u0142e\u015b odpowiednie kroki, prosz\u0119 <a href\="?warn\=ihavelearnedmylesson" style\="color\: \#DDDDDD"> kliknij tutaj</a></p>
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
|||||||
#X-Generator: crowdin.com
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
|||||||
#X-Generator: crowdin.com
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
|||||||
#X-Generator: crowdin.com
|
|
||||||
index.welcome=\u0414\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u0432 openHAB 2
|
|
||||||
index.location-info=\u0415\u0441\u043b\u0438 \u0432\u044b \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u0435 \u0432\u0430\u0448\u0435\u043c\u0443 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0443 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0432\u0430\u0448\u0435\u043c\u0443 \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044e, openHAB \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0434\u043b\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043f\u043e\u0433\u043e\u0434\u0435 \u0438 \u0430\u0441\u0442\u0440\u043e\u043d\u043e\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.
|
|
||||||
index.your-location=\u0412\u0430\u0448\u0435 \u043c\u0435\u0441\u0442\u043e\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435\:
|
|
||||||
|
|
||||||
setup.subtitle=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438
|
|
||||||
setup.welcome=\u0414\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u0432 openHAB 2 - \u041d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438
|
|
||||||
setup.intro=\u0421 openHAB \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0439. \u0414\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u043b\u0435\u0433\u043a\u043e\u0433\u043e \u0441\u0442\u0430\u0440\u0442\u0430, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0447\u0435\u0442\u044b\u0440\u0435 \u043f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0445\u043e\u0440\u043e\u0448\u0435\u0439 \u043e\u0442\u043f\u0440\u0430\u0432\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u043e\u0439.
|
|
||||||
setup.check-doc=\u041e\u0437\u043d\u0430\u043a\u043e\u043c\u044c\u0442\u0435\u0441\u044c \u0441 \u043e\u043d\u043b\u0430\u0439\u043d \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f <a href\="https\://www.openhab.org/docs/configuration/packages.html" target\="_blank"> \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0433\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u044d\u0442\u0438\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432</a>.
|
|
||||||
setup.choose-package=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043f\u0430\u043a\u0435\u0442\:
|
|
||||||
setup.package-standard-overlay=\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439
|
|
||||||
setup.package-standard-footer=\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u044b\u0439
|
|
||||||
setup.package-simple-overlay=\u041f\u0440\u043e\u0441\u0442\u043e\u0439
|
|
||||||
setup.package-simple-footer=\u0422\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441
|
|
||||||
setup.package-expert-overlay=\u042d\u043a\u0441\u043f\u0435\u0440\u0442
|
|
||||||
setup.package-expert-footer=\u0414\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 v1.x
|
|
||||||
setup.package-demo-overlay=\u0414\u0435\u043c\u043e
|
|
||||||
setup.package-demo-footer=\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438
|
|
||||||
setup.skip-package=\u041f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432\u044b\u0431\u043e\u0440 \u043f\u0430\u043a\u0435\u0442\u043e\u0432...
|
|
||||||
|
|
||||||
common.getting-started=\u041d\u0430\u0447\u0438\u043d\u0430\u0435\u043c? \u0422\u043e\u0433\u0434\u0430 \u043a <a href\="https\://www.openhab.org/docs/" target\="_blank"> \u043e\u043d\u043b\u0430\u0439\u043d \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438</a>.
|
|
||||||
|
|
||||||
entry.no-ui-installed=\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b.
|
|
||||||
entry.install-running=\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u0434\u043e\u0436\u0434\u0438\u0442\u0435. \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043d\u044f\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043d\u0443\u0442.
|
|
||||||
|
|
||||||
warn.exposed=<p><b>\u041f\u0420\u0415\u0414\u0423\u041f\u0420\u0415\u0416\u0414\u0415\u041d\u0418\u0415 - \u0412\u0410\u0428 \u0414\u041e\u041c \u041f\u041e\u0414\u0412\u0415\u0420\u0413\u0410\u0415\u0422\u0421\u042f \u041e\u041f\u0410\u0421\u041d\u041e\u0421\u0422\u0418\!</b></p> \n<p>\u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0432\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u0441\u0432\u043e\u044e \u0441\u0435\u0442\u044c \u0442\u0430\u043a, \u0447\u0442\u043e \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0432\u0430\u0448\u0435\u043c\u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u0443 openHAB. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u044d\u0442\u043e \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u044b - \u043f\u043e\u0447\u0442\u0438 <b>\u043b\u044e\u0431\u043e\u0439 \u0432 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u0441\u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a \u043d\u0435\u043c\u0443 \u0434\u043e\u0441\u0442\u0443\u043f\!</b></p> \n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u044d\u0442\u043e \u043d\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043b\u0438, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0439\u0442\u0435 \u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e. \u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u043f\u0435\u0440\u0435\u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u044e \u043f\u043e\u0440\u0442\u043e\u0432 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440\u0430 \u0438\u043b\u0438 \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0441\u043f\u043e\u0441\u043e\u0431 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0439 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 NGINX \u043a\u0430\u043a \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u043a\u0441\u0438 \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438.</p> \n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043b\u0438 \u0438 \u043f\u043e\u043d\u044f\u043b\u0438 \u044d\u0442\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0438 \u0432\u044b \u043f\u0440\u0435\u0434\u043f\u0440\u0438\u043d\u044f\u043b\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 <a href\="?warn\=ihavelearnedmylesson" style\="color\: \#DDDDDD">\u043d\u0430\u0436\u043c\u0438\u0442\u0435 \u0437\u0434\u0435\u0441\u044c</a> \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043a\u0440\u044b\u0442\u044c \u044d\u0442\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435</p>
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
|||||||
#X-Generator: crowdin.com
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
|||||||
#X-Generator: crowdin.com
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
|||||||
#X-Generator: crowdin.com
|
|
||||||
index.welcome=Maligayang pagdating sa openHAB 2
|
|
||||||
index.location-info=Kung papayagan mo na ang iyong browser ay makaakses sa iyong lokasyon, Ito ay maaaring magamit ng openHAB para sa impormasyon ng panahon at ng astro.
|
|
||||||
index.your-location=Ang iyong lokasyon\:
|
|
||||||
|
|
||||||
setup.subtitle=Magsetup
|
|
||||||
setup.welcome=Maligayang pagdating sa openHAB2- Pangunahing Pagsetup
|
|
||||||
setup.intro=ang openHAB ay mayroong iba't ibang add-ons. Upang pahintulutan ang madaliang pagsisimula, mayroong apat na pre-defined packages na magagamit bilang isang magandang panimula.
|
|
||||||
setup.choose-package=Pakiusap pumili ng package\:
|
|
||||||
setup.package-standard-overlay=Pamantayan
|
|
||||||
setup.package-standard-footer=Inirekokomendang pagsesetup
|
|
||||||
setup.package-simple-overlay=Simple
|
|
||||||
setup.package-simple-footer=Lubos na UI
|
|
||||||
setup.package-expert-overlay=Dalubhasa
|
|
||||||
setup.package-expert-footer=Pinakamabuti pra sa 1.x na mga tagagamit
|
|
||||||
setup.package-demo-overlay=Demo
|
|
||||||
setup.package-demo-footer=Halimbawa ng pagsetup
|
|
||||||
setup.skip-package=Laktawan ang seleksyon ng package...
|
|
||||||
|
|
||||||
|
|
||||||
entry.no-ui-installed=Walang nakalagay na mga interfaces ng tagagamit.
|
|
||||||
entry.install-running=Pakiusap manatili lang habang ang UIs ay inilalagay, Ito ay aabot ng ilang minuto.
|
|
||||||
|
|
||||||
warn.exposed=<p><b>BABALA - ANG BAHAY MO AY NAKALANTAD\!</b></p><p>Muka yatang naisa ayos mo ang iyong network sa paraan na bahagya mong maaakses ang iyong openHAB server. Sa kasamaang palad, hindi lang ikaw - halos<b>lahat ng nasa internet ay makakaakses nito.</b></p><p>Kung hindi ito ang plano mo, pakiusap umaksyon ka agad. Ihinto ang port forwarding ng iyong router o kaya siguradurin mong na mayroon kang ligtas na pagpapatunay na mekanismo na nakalagay, e.g. sa paggamit ng NGINX bilang kabaliktaran na proxy sa gitna.</p><p>Kung nabasa mo na at naunawaan ang mensaheng ito at gumawa ng na aangkop na hakbang, pakiusap<a href\="?warn\=ihavelearnedmylesson" style\="color\: \#DDDDDD">pindutin ito</a>upang mawala ang mensahe ulit.</p>
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
|||||||
#X-Generator: crowdin.com
|
|
||||||
index.welcome=openHAB 2 uygulamas\u0131na ho\u015fgeldiniz
|
|
||||||
index.location-info=Taray\u0131c\u0131n\u0131z\u0131n konumunuza eri\u015fmesine izin verirseniz openHAB bu bilgiyi hava ve g\u00f6kbilim verileri i\u00e7in kullan\u0131r.
|
|
||||||
index.your-location=Konumunuz\:
|
|
||||||
|
|
||||||
setup.subtitle=Kurulum
|
|
||||||
setup.welcome=openHAB 2\u2019ye ho\u015fgeldiniz - ba\u015flang\u0131\u00e7 kurulumu
|
|
||||||
setup.intro=openHAB bir\u00e7ok farkl\u0131 eklenti ile gelir. Kolay bir ba\u015flang\u0131\u00e7 i\u00e7in d\u00f6rt adet \u00f6nceden tan\u0131mlanm\u0131\u015f paketleri vard\u0131r. Bu paketler iyi bir se\u00e7enektir.
|
|
||||||
setup.check-doc=Bu paketlerin <a href\="http\://docs.openhab.org/configuration/packages.html" target\="_blank">ayr\u0131nt\u0131l\u0131 a\u00e7\u0131klamalar\u0131</a> i\u00e7in \u00e7evrimi\u00e7i belgelere g\u00f6z at\u0131n.
|
|
||||||
setup.choose-package=L\u00fctfen bir paket se\u00e7iniz\:
|
|
||||||
setup.package-standard-overlay=Standart
|
|
||||||
setup.package-standard-footer=\u00d6nerilen kurulum
|
|
||||||
setup.package-simple-overlay=Basit
|
|
||||||
setup.package-simple-footer=S\u0131rf kullan\u0131c\u0131 aray\u00fcz\u00fc
|
|
||||||
setup.package-expert-overlay=Uzman
|
|
||||||
setup.package-expert-footer=1.x kullan\u0131c\u0131lar\u0131 i\u00e7in en iyi se\u00e7enek
|
|
||||||
setup.package-demo-overlay=\u00d6rnek
|
|
||||||
setup.package-demo-footer=\u00d6rnek kurulum
|
|
||||||
setup.skip-package=Paket se\u00e7imini atla...
|
|
||||||
|
|
||||||
common.getting-started=Yenimi ba\u015fl\u0131yorsunuz? L\u00fctfen <a href\="http\://docs.openhab.org/" target\="_blank">\u00e7evrimi\u00e7i belgelere</a> g\u00f6z at\u0131n\u0131z.
|
|
||||||
|
|
||||||
entry.no-ui-installed=Hi\u00e7bir kullan\u0131c\u0131 aray\u00fcz\u00fc y\u00fckl\u00fc de\u011fil.
|
|
||||||
entry.install-running=Aray\u00fczler y\u00fckleniyor, l\u00fctfen biraz bekleyin. Bu i\u015flem birka\u00e7 dakika s\u00fcrebilir.
|
|
||||||
|
|
||||||
warn.exposed=<p><b>Uyar\u0131 - eviniz riske maruz\!</b></p> <p>A\u011f\u0131n\u0131z openHAB sunucunuza uzaktan eri\u015febilece\u011finiz bir \u015fekilde yap\u0131land\u0131r\u0131lm\u0131\u015f gibi g\u00f6r\u00fcn\u00fcyor. Ne yaz\u0131k ki, sunucunuza s\u0131rf siz de\u011fil, neredeyse <b>internetteki her ki\u015fi eri\u015febilir\!</b></p>Bunu bilin\u00e7li olarak se\u00e7mediyseniz hemen harekete ge\u00e7in. Port y\u00f6nlendirmesini durdurun veya g\u00fcvenli kimlik do\u011frulama mekanizmas\u0131 kurun. \u00d6rne\u011fin NGINX ile bir ters proxy kulland\u0131\u011f\u0131n\u0131za emin olun.</p> <p>Bu iletiyi okuyup, anlay\u0131p gerekli \u00f6nlemleri ald\u0131ysan\u0131z, bu iletiyi bir daha g\u00f6stermemek i\u00e7in l\u00fctfen <a href\="?warn\=ihavelearnedmylesson" style\="color\: \#DDDDDD">buraya t\u0131klay\u0131n</a>.</p>
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
|||||||
#X-Generator: crowdin.com
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
|||||||
#X-Generator: crowdin.com
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
|||||||
#X-Generator: crowdin.com
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
|||||||
<div class="link-wrapper col-md-3 col-sm-6 col-xs-6">
|
|
||||||
<a class="link" style="text-decoration: none;" href="${url}">
|
|
||||||
<div class="body" style="background-image: url('${icon}')">
|
|
||||||
<div class="overlay icon-${overlay}"></div>
|
|
||||||
</div>
|
|
||||||
<div class="footer">
|
|
||||||
<p>${name}</p>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
@ -1,63 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="${locale}">
|
|
||||||
<head>
|
|
||||||
|
|
||||||
<meta charset="utf-8" />
|
|
||||||
<meta http-equiv="refresh" content="10">
|
|
||||||
<meta name="viewport"
|
|
||||||
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
|
||||||
<title>openHAB</title>
|
|
||||||
<link type="text/css" href="fonts/icomoon.css" rel="stylesheet" media="all">
|
|
||||||
<link type="text/css" href="css/bootstrap.min.css" rel="stylesheet"></link>
|
|
||||||
<link type="text/css" href="css/main.css" rel="stylesheet"></link>
|
|
||||||
<link rel="icon" href="favicon.ico" type="image/vnd.microsoft.icon"><link>
|
|
||||||
|
|
||||||
<script type="text/javascript" src="js/jquery.min.js"></script>
|
|
||||||
<script type="text/javascript" src="js/geolocation.js"></script>
|
|
||||||
<script type="text/javascript">
|
|
||||||
$(document).ready(function() {
|
|
||||||
$('a.link').each(function(index) {
|
|
||||||
var href = $(this)
|
|
||||||
.attr('href')
|
|
||||||
.replace(/{HOST}/g, window.location.host)
|
|
||||||
.replace(/{HOSTNAME}/g, window.location.hostname);
|
|
||||||
$(this).attr('href', href);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<header>
|
|
||||||
<div class="container">
|
|
||||||
<img src="img/openhab-logo.png" />
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
<section class="container">
|
|
||||||
<h1>${index.welcome}</h1>
|
|
||||||
<div class="line">
|
|
||||||
<div class="decorator"></div>
|
|
||||||
<hr />
|
|
||||||
</div>
|
|
||||||
${warn}
|
|
||||||
<div class="links row">
|
|
||||||
${entries}
|
|
||||||
</div>
|
|
||||||
<div class="line">
|
|
||||||
<div class="geolocation">
|
|
||||||
<div class="decorator"></div>
|
|
||||||
<hr />
|
|
||||||
<p>${index.location-info}</p>
|
|
||||||
<p><span>${index.your-location} </span><span id="geolocation"></span></p>
|
|
||||||
</div>
|
|
||||||
<div class="decorator"></div>
|
|
||||||
<hr />
|
|
||||||
</div>
|
|
||||||
${common.getting-started}
|
|
||||||
</section>
|
|
||||||
<footer>
|
|
||||||
<p>openHAB ${version}</p>
|
|
||||||
</footer>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,93 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="${locale}">
|
|
||||||
<head>
|
|
||||||
|
|
||||||
<meta charset="utf-8" />
|
|
||||||
<meta name="viewport"
|
|
||||||
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
|
||||||
<title>openHAB - ${setup.subtitle}</title>
|
|
||||||
<link type="text/css" href="fonts/icomoon.css" rel="stylesheet" media="all">
|
|
||||||
<link type="text/css" href="css/bootstrap.min.css" rel="stylesheet"></link>
|
|
||||||
<link type="text/css" href="css/main.css" rel="stylesheet"></link>
|
|
||||||
<link rel="icon" href="favicon.ico" type="image/vnd.microsoft.icon"><link>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<header>
|
|
||||||
<div class="container">
|
|
||||||
<img src="img/openhab-logo.png" />
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
<section class="container">
|
|
||||||
<h1>${setup.welcome}</h1>
|
|
||||||
<div class="line">
|
|
||||||
<div class="decorator"></div>
|
|
||||||
<div>
|
|
||||||
<p><br/>${setup.intro}
|
|
||||||
<br/>${setup.check-doc}</p>
|
|
||||||
<hr />
|
|
||||||
<p><b>${setup.choose-package}</b></p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="links row">
|
|
||||||
<div class="link-wrapper col-md-3 col-sm-6 col-xs-6">
|
|
||||||
<div class="link" onclick="location.href = 'index?type=simple'">
|
|
||||||
<div class="body" style="background-image: url('img/simple.jpg')">
|
|
||||||
<div class="overlay">
|
|
||||||
${setup.package-simple-overlay}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="footer">
|
|
||||||
<p>${setup.package-simple-footer}</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="link-wrapper col-md-3 col-sm-6 col-xs-6">
|
|
||||||
<div class="link" onclick="location.href = 'index?type=standard'">
|
|
||||||
<div class="body" style="background-image: url('img/standard.jpg')">
|
|
||||||
<div class="overlay">
|
|
||||||
${setup.package-standard-overlay}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="footer">
|
|
||||||
<p>${setup.package-standard-footer}</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="link-wrapper col-md-3 col-sm-6 col-xs-6">
|
|
||||||
<div class="link" onclick="location.href = 'index?type=expert'">
|
|
||||||
<div class="body" style="background-image: url('img/expert.jpg')">
|
|
||||||
<div class="overlay">
|
|
||||||
${setup.package-expert-overlay}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="footer">
|
|
||||||
<p>${setup.package-expert-footer}</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="link-wrapper col-md-3 col-sm-6 col-xs-6">
|
|
||||||
<div class="link" onclick="location.href = 'index?type=demo'">
|
|
||||||
<div class="body" style="background-image: url('img/demo.jpg')">
|
|
||||||
<div class="overlay">
|
|
||||||
${setup.package-demo-overlay}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="footer">
|
|
||||||
<p>${setup.package-demo-footer}</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<a href="#" onclick="location.href = 'index?type=minimal'">${setup.skip-package}</a>.
|
|
||||||
<div class="line">
|
|
||||||
<div class="decorator"></div>
|
|
||||||
<hr />
|
|
||||||
</div>
|
|
||||||
${common.getting-started}
|
|
||||||
</section>
|
|
||||||
<footer>
|
|
||||||
<p>openHAB ${version}</p>
|
|
||||||
</footer>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,13 +0,0 @@
|
|||||||
<div class="links row">
|
|
||||||
<div class="link-wrapper col-md-12 col-sm-12 col-xs-12">
|
|
||||||
<div class="body" style="background-color: #FF0000; padding: 20px">
|
|
||||||
<div class="overlay" style="font-size: 150%; color: #FFFFFF">
|
|
||||||
${warn.exposed}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="line">
|
|
||||||
<div class="decorator"></div>
|
|
||||||
<hr />
|
|
||||||
</div>
|
|
@ -1,112 +0,0 @@
|
|||||||
body {
|
|
||||||
background-color: #F9F9F9;
|
|
||||||
}
|
|
||||||
|
|
||||||
body, h1, h2, h3 {
|
|
||||||
font-family: "Roboto", Helvetica, Arial, sans-serif;
|
|
||||||
font-weight: 300;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.line {
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
.line .decorator {
|
|
||||||
position: absolute;
|
|
||||||
left: 0px;
|
|
||||||
width: 50px;
|
|
||||||
border-top: 1px solid #F60;
|
|
||||||
}
|
|
||||||
|
|
||||||
header {
|
|
||||||
background: #F60;
|
|
||||||
height: 80px;
|
|
||||||
line-height: 80px;
|
|
||||||
text-align: center;
|
|
||||||
position: fixed;
|
|
||||||
top: 0;
|
|
||||||
width: 100%;
|
|
||||||
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.15);
|
|
||||||
z-index: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
header .container {
|
|
||||||
position: relative;
|
|
||||||
padding: 0 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
header img {
|
|
||||||
position: absolute;
|
|
||||||
left: 10px;
|
|
||||||
top: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 768px) {
|
|
||||||
header h3 {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
section {
|
|
||||||
margin-top: 90px;
|
|
||||||
margin-bottom: 70px;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.link {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.link {
|
|
||||||
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.15);
|
|
||||||
margin-bottom: 20px;
|
|
||||||
text-align: center;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.link .body {
|
|
||||||
position:relative;
|
|
||||||
height: 150px;
|
|
||||||
background-color: white;
|
|
||||||
background-size: cover;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
}
|
|
||||||
|
|
||||||
.link .body .overlay {
|
|
||||||
position: relative;
|
|
||||||
top: 0px;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
background: linear-gradient(to bottom, rgba(0,0,0,0.65) 0%,rgba(0,0,0,0) 100%);
|
|
||||||
opacity: 1;
|
|
||||||
font-size: 50px;
|
|
||||||
color: white;
|
|
||||||
line-height: 150px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.link .body .overlay:hover {
|
|
||||||
background: linear-gradient(135deg, rgba(255,102,0,1) 0%,rgba(255,102,0,0.5) 50%,rgba(30,87,153,0) 100%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.link .footer {
|
|
||||||
height: 50px;
|
|
||||||
background-color: #F60;
|
|
||||||
color: white;
|
|
||||||
line-height: 50px;
|
|
||||||
text-transform: uppercase;
|
|
||||||
}
|
|
||||||
|
|
||||||
footer {
|
|
||||||
background: #333;
|
|
||||||
color: #fff;
|
|
||||||
height: 50px;
|
|
||||||
line-height: 50px;
|
|
||||||
text-align: center;
|
|
||||||
position: fixed;
|
|
||||||
bottom: 0;
|
|
||||||
width: 100%;
|
|
||||||
box-shadow: 0 -2px 4px 0 rgba(0, 0, 0, 0.15);
|
|
||||||
}
|
|
Before Width: | Height: | Size: 31 KiB |
@ -1,55 +0,0 @@
|
|||||||
@font-face {
|
|
||||||
font-family: 'icomoon';
|
|
||||||
src:url('icomoon.eot?-sxozs7');
|
|
||||||
src:url('icomoon.eot?#iefix-sxozs7') format('embedded-opentype'),
|
|
||||||
url('icomoon.woff?-sxozs7') format('woff'),
|
|
||||||
url('icomoon.ttf?-sxozs7') format('truetype'),
|
|
||||||
url('icomoon.svg?-sxozs7#icomoon') format('svg');
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
[class^="icon-"], [class*=" icon-"] {
|
|
||||||
font-family: 'icomoon';
|
|
||||||
speak: none;
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: normal;
|
|
||||||
font-variant: normal;
|
|
||||||
text-transform: none;
|
|
||||||
line-height: 1;
|
|
||||||
|
|
||||||
/* Better Font Rendering =========== */
|
|
||||||
-webkit-font-smoothing: antialiased;
|
|
||||||
-moz-osx-font-smoothing: grayscale;
|
|
||||||
}
|
|
||||||
|
|
||||||
.icon-apple:before {
|
|
||||||
content: "\e796";
|
|
||||||
}
|
|
||||||
.icon-android:before {
|
|
||||||
content: "\e798";
|
|
||||||
}
|
|
||||||
.icon-html5:before {
|
|
||||||
content: "\e7ba";
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes anim-rotate {
|
|
||||||
0% {
|
|
||||||
transform: rotate(0);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
transform: rotate(360deg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.spinner {
|
|
||||||
display: inline-block;
|
|
||||||
line-height: 1;
|
|
||||||
animation: anim-rotate 2s infinite linear;
|
|
||||||
color: #333;
|
|
||||||
text-shadow: 0 0 .25em rgba(255,255,255, .3);
|
|
||||||
}
|
|
||||||
|
|
||||||
.spinner--steps {
|
|
||||||
animation: anim-rotate 1s infinite steps(12);
|
|
||||||
}
|
|
@ -1,13 +0,0 @@
|
|||||||
<?xml version="1.0" standalone="no"?>
|
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<metadata>Generated by IcoMoon</metadata>
|
|
||||||
<defs>
|
|
||||||
<font id="icomoon" horiz-adv-x="512">
|
|
||||||
<font-face units-per-em="512" ascent="480" descent="-32" />
|
|
||||||
<missing-glyph horiz-adv-x="512" />
|
|
||||||
<glyph unicode=" " d="" horiz-adv-x="256" />
|
|
||||||
<glyph unicode="" d="M395.749 207.954c-0.647 64.841 52.879 95.938 55.271 97.483-30.076 44.010-76.925 50.039-93.621 50.736-39.871 4.037-77.798-23.474-98.033-23.474-20.184 0-51.409 22.877-84.476 22.276-43.458-0.646-83.529-25.269-105.906-64.19-45.152-78.349-11.563-194.42 32.445-257.963 21.504-31.102 47.146-66.038 80.813-64.79 32.421 1.294 44.681 20.979 83.878 20.979s50.214-20.979 84.525-20.335c34.887 0.648 56.991 31.699 78.346 62.898 24.695 36.084 34.863 71.019 35.462 72.813-0.774 0.353-68.030 26.118-68.704 103.567zM331.281 398.239c17.869 21.679 29.93 51.756 26.64 81.761-25.739-1.048-56.939-17.145-75.405-38.775-16.571-19.188-31.074-49.813-27.187-79.218 28.733-2.242 58.064 14.602 75.952 36.232z" />
|
|
||||||
<glyph unicode="" d="M432 320c-17.6 0-32-14.4-32-32v-128c0-17.6 14.4-32 32-32s32 14.4 32 32v128c0 17.6-14.4 32-32 32zM48 320c-17.6 0-32-14.4-32-32v-128c0-17.6 14.4-32 32-32s32 14.4 32 32v128c0 17.6-14.401 32-32 32zM96 112c0-26.51 21.49-48 48-48h16v-64c0-17.6 14.4-32 32-32s32 14.4 32 32v64h32v-64c0-17.6 14.401-32 32-32s32 14.4 32 32v64h16c26.51 0 48 21.49 48 48v176h-288v-176zM299.299 435.253l20.252 38.903c1.016 1.951 0.25 4.379-1.701 5.395s-4.379 0.25-5.395-1.701l-20.559-39.493c-16.099 6.224-33.597 9.643-51.896 9.643-18.298 0-35.796-3.419-51.898-9.643l-20.558 39.492c-1.016 1.951-3.443 2.717-5.395 1.701s-2.717-3.443-1.701-5.395l20.25-38.904c-45.315-20.509-78.12-63.792-83.81-115.252h286.22c-5.688 51.462-38.493 94.744-83.809 115.254zM176 344.8c-12.813 0-23.2 10.387-23.2 23.2s10.387 23.2 23.2 23.2 23.2-10.387 23.2-23.2c-0.001-12.813-10.387-23.2-23.2-23.2zM304 344.8c-12.813 0-23.201 10.387-23.201 23.2s10.389 23.2 23.201 23.2 23.199-10.387 23.199-23.2c0-12.813-10.386-23.2-23.199-23.2z" />
|
|
||||||
<glyph unicode="" d="M30.269 480l41.072-460.815 184.378-51.185 184.862 51.262 41.15 460.738h-451.462zM392.315 329.286h-216.27l5.151-57.875h205.984l-15.521-173.505-115.922-32.127-115.786 32.127-7.915 88.756h56.747l4.024-45.116 62.931-16.958 0.139 0.039 62.967 16.996 6.535 73.275h-195.87l-15.247 170.9h283.107l-5.054-56.512z" />
|
|
||||||
</font></defs></svg>
|
|
Before Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 93 KiB |
Before Width: | Height: | Size: 41 KiB |
Before Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 41 KiB |
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 23 KiB |
@ -1,17 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!-- Generated by IcoMoon.io -->
|
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
||||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
|
|
||||||
<path fill="#000000" d="M8 4.736c-0.515 0-0.933-0.418-0.933-0.933v-2.798c0-0.515 0.418-0.933 0.933-0.933s0.933 0.418 0.933 0.933v2.798c0 0.515-0.418 0.933-0.933 0.933z"></path>
|
|
||||||
<path fill="#000000" d="M8 15.577c-0.322 0-0.583-0.261-0.583-0.583v-2.798c0-0.322 0.261-0.583 0.583-0.583s0.583 0.261 0.583 0.583v2.798c0 0.322-0.261 0.583-0.583 0.583z"></path>
|
|
||||||
<path fill="#000000" d="M5.902 5.24c-0.302 0-0.596-0.157-0.758-0.437l-1.399-2.423c-0.241-0.418-0.098-0.953 0.32-1.194s0.953-0.098 1.194 0.32l1.399 2.423c0.241 0.418 0.098 0.953-0.32 1.194-0.138 0.079-0.288 0.117-0.436 0.117z"></path>
|
|
||||||
<path fill="#000000" d="M11.498 14.582c-0.181 0-0.358-0.094-0.455-0.262l-1.399-2.423c-0.145-0.251-0.059-0.572 0.192-0.717s0.572-0.059 0.717 0.192l1.399 2.423c0.145 0.251 0.059 0.572-0.192 0.717-0.083 0.048-0.173 0.070-0.262 0.070z"></path>
|
|
||||||
<path fill="#000000" d="M4.365 6.718c-0.138 0-0.279-0.035-0.407-0.109l-2.423-1.399c-0.39-0.225-0.524-0.724-0.299-1.115s0.724-0.524 1.115-0.299l2.423 1.399c0.39 0.225 0.524 0.724 0.299 1.115-0.151 0.262-0.425 0.408-0.707 0.408z"></path>
|
|
||||||
<path fill="#000000" d="M14.057 11.964c-0.079 0-0.159-0.020-0.233-0.063l-2.423-1.399c-0.223-0.129-0.299-0.414-0.171-0.637s0.414-0.299 0.637-0.171l2.423 1.399c0.223 0.129 0.299 0.414 0.171 0.637-0.086 0.15-0.243 0.233-0.404 0.233z"></path>
|
|
||||||
<path fill="#000000" d="M3.803 8.758h-2.798c-0.418 0-0.758-0.339-0.758-0.758s0.339-0.758 0.758-0.758h2.798c0.419 0 0.758 0.339 0.758 0.758s-0.339 0.758-0.758 0.758z"></path>
|
|
||||||
<path fill="#000000" d="M14.995 8.466c-0 0 0 0 0 0h-2.798c-0.258-0-0.466-0.209-0.466-0.466s0.209-0.466 0.466-0.466c0 0 0 0 0 0h2.798c0.258 0 0.466 0.209 0.466 0.466s-0.209 0.466-0.466 0.466z"></path>
|
|
||||||
<path fill="#000000" d="M1.943 12.197c-0.242 0-0.477-0.125-0.606-0.35-0.193-0.335-0.079-0.762 0.256-0.955l2.423-1.399c0.335-0.193 0.762-0.079 0.955 0.256s0.079 0.762-0.256 0.955l-2.423 1.399c-0.11 0.064-0.23 0.094-0.349 0.094z"></path>
|
|
||||||
<path fill="#000000" d="M11.635 6.368c-0.161 0-0.318-0.084-0.404-0.233-0.129-0.223-0.052-0.508 0.171-0.637l2.423-1.399c0.223-0.129 0.508-0.052 0.637 0.171s0.052 0.508-0.171 0.637l-2.423 1.399c-0.073 0.042-0.154 0.063-0.233 0.063z"></path>
|
|
||||||
<path fill="#000000" d="M4.502 14.699c-0.109 0-0.219-0.028-0.32-0.086-0.307-0.177-0.412-0.569-0.235-0.876l1.399-2.423c0.177-0.307 0.569-0.412 0.876-0.235s0.412 0.569 0.235 0.876l-1.399 2.423c-0.119 0.206-0.334 0.321-0.556 0.321z"></path>
|
|
||||||
<path fill="#000000" d="M10.098 4.832c-0.079 0-0.159-0.020-0.233-0.063-0.223-0.129-0.299-0.414-0.171-0.637l1.399-2.423c0.129-0.223 0.414-0.299 0.637-0.171s0.299 0.414 0.171 0.637l-1.399 2.423c-0.086 0.15-0.243 0.233-0.404 0.233z"></path>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 34 KiB |
@ -1,51 +0,0 @@
|
|||||||
(function(window, $) {
|
|
||||||
$(function() {
|
|
||||||
function success(position) {
|
|
||||||
var latitude = position.coords.latitude
|
|
||||||
var longitude = position.coords.longitude
|
|
||||||
|
|
||||||
output.html(latitude + '°N, ' + longitude + '°E')
|
|
||||||
|
|
||||||
send({
|
|
||||||
location : latitude + ',' + longitude
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function error() {
|
|
||||||
$('.geolocation').hide()
|
|
||||||
}
|
|
||||||
|
|
||||||
$('.geolocation').hide()
|
|
||||||
|
|
||||||
if (!navigator.geolocation || !navigator.geolocation.getCurrentPosition) {
|
|
||||||
return
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
var output = $('#geolocation')
|
|
||||||
|
|
||||||
$.getJSON(window.location.origin + '/rest/services/org.eclipse.smarthome.core.i18nprovider/config', function(response) {
|
|
||||||
window.language = response;
|
|
||||||
|
|
||||||
if (!response.location) {
|
|
||||||
$('.geolocation').show()
|
|
||||||
output.html("<div class=\"spinner spinner--steps\"><img src=\"img/spinner.svg\"></div>")
|
|
||||||
navigator.geolocation.getCurrentPosition(success, error)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
function send(configuration) {
|
|
||||||
$.ajax({
|
|
||||||
url : window.location.origin + '/rest/services/org.eclipse.smarthome.core.i18nprovider/config',
|
|
||||||
data : JSON.stringify(configuration),
|
|
||||||
type : 'PUT',
|
|
||||||
dataType : 'json',
|
|
||||||
contentType : 'application/json'
|
|
||||||
}).done(function(response) {
|
|
||||||
console.log('configuration send: ' + response);
|
|
||||||
}).fail(function(xhr, status, errorThrown) {
|
|
||||||
console.log('Request failed. Returned status of ' + status)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})(window, $)
|
|
@ -102,7 +102,6 @@
|
|||||||
<module>org.openhab.core.test.magic</module>
|
<module>org.openhab.core.test.magic</module>
|
||||||
<module>org.openhab.core.ui</module>
|
<module>org.openhab.core.ui</module>
|
||||||
<module>org.openhab.core.ui.icon</module>
|
<module>org.openhab.core.ui.icon</module>
|
||||||
<module>org.openhab.core.ui.dashboard</module>
|
|
||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
<profiles>
|
<profiles>
|
||||||
|
@ -543,7 +543,6 @@
|
|||||||
<bundle start-level="30">mvn:org.openhab.core.bundles/org.openhab.ui.start/${project.version}</bundle> -->
|
<bundle start-level="30">mvn:org.openhab.core.bundles/org.openhab.ui.start/${project.version}</bundle> -->
|
||||||
<bundle start-level="90">mvn:org.openhab.core.bundles/org.openhab.core.boot/${project.version}</bundle>
|
<bundle start-level="90">mvn:org.openhab.core.bundles/org.openhab.core.boot/${project.version}</bundle>
|
||||||
<bundle>mvn:org.openhab.core.bundles/org.openhab.core.karaf/${project.version}</bundle>
|
<bundle>mvn:org.openhab.core.bundles/org.openhab.core.karaf/${project.version}</bundle>
|
||||||
<bundle>mvn:org.openhab.core.bundles/org.openhab.core.ui.dashboard/${project.version}</bundle>
|
|
||||||
<config name="org.eclipse.smarthome.audio">
|
<config name="org.eclipse.smarthome.audio">
|
||||||
defaultSink = enhancedjavasound
|
defaultSink = enhancedjavasound
|
||||||
</config>
|
</config>
|
||||||
|
@ -436,11 +436,6 @@
|
|||||||
<transitive>false</transitive>
|
<transitive>false</transitive>
|
||||||
<source>true</source>
|
<source>true</source>
|
||||||
</artifact>
|
</artifact>
|
||||||
<artifact>
|
|
||||||
<id>org.openhab.core.bundles:org.openhab.core.ui.dashboard:${project.version}</id>
|
|
||||||
<transitive>false</transitive>
|
|
||||||
<source>true</source>
|
|
||||||
</artifact>
|
|
||||||
<artifact>
|
<artifact>
|
||||||
<id>org.openhab.core.bundles:org.openhab.core.ui.icon:${project.version}</id>
|
<id>org.openhab.core.bundles:org.openhab.core.ui.icon:${project.version}</id>
|
||||||
<transitive>false</transitive>
|
<transitive>false</transitive>
|
||||||
|