mirror of
https://github.com/home-assistant/frontend.git
synced 2025-08-31 20:10:27 +00:00
Compare commits
2 Commits
attributes
...
quick-bar-
Author | SHA1 | Date | |
---|---|---|---|
![]() |
0527fac2ce | ||
![]() |
75e5d66966 |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -23,8 +23,6 @@ dist
|
|||||||
# vscode
|
# vscode
|
||||||
.vscode/*
|
.vscode/*
|
||||||
!.vscode/extensions.json
|
!.vscode/extensions.json
|
||||||
!.vscode/launch.json
|
|
||||||
!.vscode/tasks.json
|
|
||||||
|
|
||||||
# Cast dev settings
|
# Cast dev settings
|
||||||
src/cast/dev_const.ts
|
src/cast/dev_const.ts
|
||||||
|
44
.vscode/launch.json
vendored
44
.vscode/launch.json
vendored
@@ -1,44 +0,0 @@
|
|||||||
{
|
|
||||||
// https://github.com/microsoft/vscode-js-debug/blob/master/OPTIONS.md
|
|
||||||
"configurations": [
|
|
||||||
{
|
|
||||||
"name": "Debug Frontend",
|
|
||||||
"request": "launch",
|
|
||||||
"type": "pwa-chrome",
|
|
||||||
"url": "http://localhost:8123/",
|
|
||||||
"webRoot": "${workspaceFolder}/hass_frontend",
|
|
||||||
"disableNetworkCache": true,
|
|
||||||
"preLaunchTask": "Develop Frontend",
|
|
||||||
"outFiles": [
|
|
||||||
"${workspaceFolder}/hass_frontend/frontend_latest/*.js"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Debug Gallery",
|
|
||||||
"request": "launch",
|
|
||||||
"type": "pwa-chrome",
|
|
||||||
"url": "http://localhost:8100/",
|
|
||||||
"webRoot": "${workspaceFolder}/gallery/dist",
|
|
||||||
"disableNetworkCache": true,
|
|
||||||
"preLaunchTask": "Develop Gallery"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Debug Demo",
|
|
||||||
"request": "launch",
|
|
||||||
"type": "pwa-chrome",
|
|
||||||
"url": "http://localhost:8090/",
|
|
||||||
"webRoot": "${workspaceFolder}/demo/dist",
|
|
||||||
"disableNetworkCache": true,
|
|
||||||
"preLaunchTask": "Develop Demo"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Debug Cast",
|
|
||||||
"request": "launch",
|
|
||||||
"type": "pwa-chrome",
|
|
||||||
"url": "http://localhost:8080/",
|
|
||||||
"webRoot": "${workspaceFolder}/cast/dist",
|
|
||||||
"disableNetworkCache": true,
|
|
||||||
"preLaunchTask": "Develop Cast"
|
|
||||||
},
|
|
||||||
]
|
|
||||||
}
|
|
137
.vscode/tasks.json
vendored
137
.vscode/tasks.json
vendored
@@ -1,137 +0,0 @@
|
|||||||
{
|
|
||||||
"version": "2.0.0",
|
|
||||||
"tasks": [
|
|
||||||
{
|
|
||||||
"label": "Develop Frontend",
|
|
||||||
"type": "gulp",
|
|
||||||
"task": "develop-app",
|
|
||||||
// Sync changes here to other tasks until issue resolved
|
|
||||||
// https://github.com/Microsoft/vscode/issues/61497
|
|
||||||
"problemMatcher": {
|
|
||||||
"owner": "ha-build",
|
|
||||||
"source": "ha-build",
|
|
||||||
"fileLocation": "absolute",
|
|
||||||
"severity": "error",
|
|
||||||
"pattern": [
|
|
||||||
{
|
|
||||||
"regexp": "(SyntaxError): (.+): (.+) \\((\\d+):(\\d+)\\)",
|
|
||||||
"severity": 1,
|
|
||||||
"file": 2,
|
|
||||||
"message": 3,
|
|
||||||
"line": 4,
|
|
||||||
"column": 5
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"background": {
|
|
||||||
"activeOnStart": true,
|
|
||||||
"beginsPattern": "Changes detected. Starting compilation",
|
|
||||||
"endsPattern": "Build done @"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"isBackground": true,
|
|
||||||
"group": {
|
|
||||||
"kind": "build",
|
|
||||||
"isDefault": true
|
|
||||||
},
|
|
||||||
"runOptions": {
|
|
||||||
"instanceLimit": 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "Develop Gallery",
|
|
||||||
"type": "gulp",
|
|
||||||
"task": "develop-gallery",
|
|
||||||
"problemMatcher": {
|
|
||||||
"owner": "ha-build",
|
|
||||||
"source": "ha-build",
|
|
||||||
"fileLocation": "absolute",
|
|
||||||
"severity": "error",
|
|
||||||
"pattern": [
|
|
||||||
{
|
|
||||||
"regexp": "(SyntaxError): (.+): (.+) \\((\\d+):(\\d+)\\)",
|
|
||||||
"severity": 1,
|
|
||||||
"file": 2,
|
|
||||||
"message": 3,
|
|
||||||
"line": 4,
|
|
||||||
"column": 5
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"background": {
|
|
||||||
"activeOnStart": true,
|
|
||||||
"beginsPattern": "Changes detected. Starting compilation",
|
|
||||||
"endsPattern": "Build done @"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"isBackground": true,
|
|
||||||
"group": "build",
|
|
||||||
"runOptions": {
|
|
||||||
"instanceLimit": 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "Develop Demo",
|
|
||||||
"type": "gulp",
|
|
||||||
"task": "develop-demo",
|
|
||||||
"problemMatcher": {
|
|
||||||
"owner": "ha-build",
|
|
||||||
"source": "ha-build",
|
|
||||||
"fileLocation": "absolute",
|
|
||||||
"severity": "error",
|
|
||||||
"pattern": [
|
|
||||||
{
|
|
||||||
"regexp": "(SyntaxError): (.+): (.+) \\((\\d+):(\\d+)\\)",
|
|
||||||
"severity": 1,
|
|
||||||
"file": 2,
|
|
||||||
"message": 3,
|
|
||||||
"line": 4,
|
|
||||||
"column": 5
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"background": {
|
|
||||||
"activeOnStart": true,
|
|
||||||
"beginsPattern": "Changes detected. Starting compilation",
|
|
||||||
"endsPattern": "Build done @"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"isBackground": true,
|
|
||||||
"group": "build",
|
|
||||||
"runOptions": {
|
|
||||||
"instanceLimit": 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "Develop Cast",
|
|
||||||
"type": "gulp",
|
|
||||||
"task": "develop-cast",
|
|
||||||
"problemMatcher": {
|
|
||||||
"owner": "ha-build",
|
|
||||||
"source": "ha-build",
|
|
||||||
"fileLocation": "absolute",
|
|
||||||
"severity": "error",
|
|
||||||
"pattern": [
|
|
||||||
{
|
|
||||||
"regexp": "(SyntaxError): (.+): (.+) \\((\\d+):(\\d+)\\)",
|
|
||||||
"severity": 1,
|
|
||||||
"file": 2,
|
|
||||||
"message": 3,
|
|
||||||
"line": 4,
|
|
||||||
"column": 5
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"background": {
|
|
||||||
"activeOnStart": true,
|
|
||||||
"beginsPattern": "Changes detected. Starting compilation",
|
|
||||||
"endsPattern": "Build done @"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"isBackground": true,
|
|
||||||
"group": "build",
|
|
||||||
"runOptions": {
|
|
||||||
"instanceLimit": 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
]
|
|
||||||
}
|
|
@@ -18,14 +18,6 @@ const bothBuilds = (createConfigFunc, params) => [
|
|||||||
createConfigFunc({ ...params, latestBuild: false }),
|
createConfigFunc({ ...params, latestBuild: false }),
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
|
||||||
* @param {{
|
|
||||||
* compiler: import("webpack").Compiler,
|
|
||||||
* contentBase: string,
|
|
||||||
* port: number,
|
|
||||||
* listenHost?: string
|
|
||||||
* }}
|
|
||||||
*/
|
|
||||||
const runDevServer = ({
|
const runDevServer = ({
|
||||||
compiler,
|
compiler,
|
||||||
contentBase,
|
contentBase,
|
||||||
@@ -41,10 +33,7 @@ const runDevServer = ({
|
|||||||
throw err;
|
throw err;
|
||||||
}
|
}
|
||||||
// Server listening
|
// Server listening
|
||||||
log(
|
log("[webpack-dev-server]", `http://localhost:${port}`);
|
||||||
"[webpack-dev-server]",
|
|
||||||
`Project is running at http://localhost:${port}`
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const handler = (done) => (err, stats) => {
|
const handler = (done) => (err, stats) => {
|
||||||
@@ -56,12 +45,12 @@ const handler = (done) => (err, stats) => {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stats.hasErrors() || stats.hasWarnings()) {
|
|
||||||
console.log(stats.toString("minimal"));
|
|
||||||
}
|
|
||||||
|
|
||||||
log(`Build done @ ${new Date().toLocaleTimeString()}`);
|
log(`Build done @ ${new Date().toLocaleTimeString()}`);
|
||||||
|
|
||||||
|
if (stats.hasErrors() || stats.hasWarnings()) {
|
||||||
|
log.warn(stats.toString("minimal"));
|
||||||
|
}
|
||||||
|
|
||||||
if (done) {
|
if (done) {
|
||||||
done();
|
done();
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
const path = require("path");
|
var path = require("path");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
polymer_dir: path.resolve(__dirname, ".."),
|
polymer_dir: path.resolve(__dirname, ".."),
|
||||||
|
@@ -4,21 +4,6 @@ const TerserPlugin = require("terser-webpack-plugin");
|
|||||||
const ManifestPlugin = require("webpack-manifest-plugin");
|
const ManifestPlugin = require("webpack-manifest-plugin");
|
||||||
const paths = require("./paths.js");
|
const paths = require("./paths.js");
|
||||||
const bundle = require("./bundle");
|
const bundle = require("./bundle");
|
||||||
const log = require("fancy-log");
|
|
||||||
|
|
||||||
class LogStartCompilePlugin {
|
|
||||||
ignoredFirst = false;
|
|
||||||
|
|
||||||
apply(compiler) {
|
|
||||||
compiler.hooks.beforeCompile.tap("LogStartCompilePlugin", () => {
|
|
||||||
if (!this.ignoredFirst) {
|
|
||||||
this.ignoredFirst = true;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
log("Changes detected. Starting compilation");
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const createWebpackConfig = ({
|
const createWebpackConfig = ({
|
||||||
entry,
|
entry,
|
||||||
@@ -119,8 +104,7 @@ const createWebpackConfig = ({
|
|||||||
),
|
),
|
||||||
path.resolve(paths.polymer_dir, "src/resources/EventTarget-ponyfill.js")
|
path.resolve(paths.polymer_dir, "src/resources/EventTarget-ponyfill.js")
|
||||||
),
|
),
|
||||||
!isProdBuild && new LogStartCompilePlugin(),
|
],
|
||||||
].filter(Boolean),
|
|
||||||
resolve: {
|
resolve: {
|
||||||
extensions: [".ts", ".js", ".json"],
|
extensions: [".ts", ".js", ".json"],
|
||||||
},
|
},
|
||||||
|
@@ -42,7 +42,7 @@ export const fuzzySequentialMatch = (filter: string, ...words: string[]) => {
|
|||||||
|
|
||||||
export interface ScorableTextItem {
|
export interface ScorableTextItem {
|
||||||
score?: number;
|
score?: number;
|
||||||
text: string;
|
filterText: string;
|
||||||
altText?: string;
|
altText?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,8 +55,8 @@ export const fuzzyFilterSort: FuzzyFilterSort = (filter, items) => {
|
|||||||
return items
|
return items
|
||||||
.map((item) => {
|
.map((item) => {
|
||||||
item.score = item.altText
|
item.score = item.altText
|
||||||
? fuzzySequentialMatch(filter, item.text, item.altText)
|
? fuzzySequentialMatch(filter, item.filterText, item.altText)
|
||||||
: fuzzySequentialMatch(filter, item.text);
|
: fuzzySequentialMatch(filter, item.filterText);
|
||||||
return item;
|
return item;
|
||||||
})
|
})
|
||||||
.filter((item) => item.score !== undefined && item.score > 0)
|
.filter((item) => item.score !== undefined && item.score > 0)
|
||||||
|
@@ -1,4 +1,3 @@
|
|||||||
import "@material/mwc-icon-button/mwc-icon-button";
|
|
||||||
import { mdiClose, mdiMenuDown, mdiMenuUp } from "@mdi/js";
|
import { mdiClose, mdiMenuDown, mdiMenuUp } from "@mdi/js";
|
||||||
import "@polymer/paper-input/paper-input";
|
import "@polymer/paper-input/paper-input";
|
||||||
import "@polymer/paper-item/paper-item";
|
import "@polymer/paper-item/paper-item";
|
||||||
@@ -15,14 +14,13 @@ import {
|
|||||||
query,
|
query,
|
||||||
TemplateResult,
|
TemplateResult,
|
||||||
} from "lit-element";
|
} from "lit-element";
|
||||||
import memoizeOne from "memoize-one";
|
|
||||||
import { fireEvent } from "../../common/dom/fire_event";
|
import { fireEvent } from "../../common/dom/fire_event";
|
||||||
import { computeDomain } from "../../common/entity/compute_domain";
|
|
||||||
import { PolymerChangedEvent } from "../../polymer-types";
|
import { PolymerChangedEvent } from "../../polymer-types";
|
||||||
import { HomeAssistant } from "../../types";
|
import { HomeAssistant } from "../../types";
|
||||||
import { formatAttributeName } from "../../util/hass-attributes-util";
|
|
||||||
import "../ha-svg-icon";
|
import "../ha-svg-icon";
|
||||||
import "./state-badge";
|
import "./state-badge";
|
||||||
|
import { formatAttributeName } from "../../util/hass-attributes-util";
|
||||||
|
import "@material/mwc-icon-button/mwc-icon-button";
|
||||||
|
|
||||||
export type HaEntityPickerEntityFilterFunc = (entityId: HassEntity) => boolean;
|
export type HaEntityPickerEntityFilterFunc = (entityId: HassEntity) => boolean;
|
||||||
|
|
||||||
@@ -43,41 +41,6 @@ const rowRenderer = (root: HTMLElement, _owner, model: { item: string }) => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
const SELECTABLE_ATTRIBUTES: { [key: string]: string[] } = {
|
|
||||||
light: ["brightness"],
|
|
||||||
climate: [
|
|
||||||
"current_temperature",
|
|
||||||
"fan_mode",
|
|
||||||
"preset_mode",
|
|
||||||
"swing_mode",
|
|
||||||
"temperature",
|
|
||||||
"current_hundity",
|
|
||||||
"humidity",
|
|
||||||
"hvac_action",
|
|
||||||
],
|
|
||||||
fan: ["speed"],
|
|
||||||
air_quality: [
|
|
||||||
"nitrogen_oxide",
|
|
||||||
"particulate_matter_10",
|
|
||||||
"particulate_matter_2_5",
|
|
||||||
],
|
|
||||||
cover: ["current_position", "current_tilt_position"],
|
|
||||||
device_tracker: ["battery"],
|
|
||||||
humidifier: ["humidty"],
|
|
||||||
media_player: ["media_title"],
|
|
||||||
vacuum: ["battery_level", "status"],
|
|
||||||
water_heater: ["current_temperature", "temperature", "operation_mode"],
|
|
||||||
weather: [
|
|
||||||
"temperature",
|
|
||||||
"humidity",
|
|
||||||
"ozone",
|
|
||||||
"pressure",
|
|
||||||
"wind_bearing",
|
|
||||||
"wind_speed",
|
|
||||||
"visibility",
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
@customElement("ha-entity-attribute-picker")
|
@customElement("ha-entity-attribute-picker")
|
||||||
class HaEntityAttributePicker extends LitElement {
|
class HaEntityAttributePicker extends LitElement {
|
||||||
@property({ attribute: false }) public hass!: HomeAssistant;
|
@property({ attribute: false }) public hass!: HomeAssistant;
|
||||||
@@ -105,8 +68,9 @@ class HaEntityAttributePicker extends LitElement {
|
|||||||
|
|
||||||
protected updated(changedProps: PropertyValues) {
|
protected updated(changedProps: PropertyValues) {
|
||||||
if (changedProps.has("_opened") && this._opened) {
|
if (changedProps.has("_opened") && this._opened) {
|
||||||
(this._comboBox as any).items = this.entityId
|
const state = this.entityId ? this.hass.states[this.entityId] : undefined;
|
||||||
? this._selectableAttributes(this.entityId)
|
(this._comboBox as any).items = state
|
||||||
|
? Object.keys(state.attributes)
|
||||||
: [];
|
: [];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -121,6 +85,7 @@ class HaEntityAttributePicker extends LitElement {
|
|||||||
.value=${this._value}
|
.value=${this._value}
|
||||||
.allowCustomValue=${this.allowCustomValue}
|
.allowCustomValue=${this.allowCustomValue}
|
||||||
.renderer=${rowRenderer}
|
.renderer=${rowRenderer}
|
||||||
|
attr-for-value="bind-value"
|
||||||
@opened-changed=${this._openedChanged}
|
@opened-changed=${this._openedChanged}
|
||||||
@value-changed=${this._valueChanged}
|
@value-changed=${this._valueChanged}
|
||||||
>
|
>
|
||||||
@@ -172,17 +137,6 @@ class HaEntityAttributePicker extends LitElement {
|
|||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
private _selectableAttributes = memoizeOne((entity: string) => {
|
|
||||||
const stateObj = this.hass.states[entity];
|
|
||||||
if (!stateObj) {
|
|
||||||
return [];
|
|
||||||
}
|
|
||||||
|
|
||||||
return Object.keys(stateObj.attributes).filter((attr) =>
|
|
||||||
SELECTABLE_ATTRIBUTES[computeDomain(entity)].includes(attr)
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
private _clearValue(ev: Event) {
|
private _clearValue(ev: Event) {
|
||||||
ev.stopPropagation();
|
ev.stopPropagation();
|
||||||
this._setValue("");
|
this._setValue("");
|
||||||
|
@@ -45,30 +45,43 @@ import { navigate } from "../../common/navigate";
|
|||||||
import { configSections } from "../../panels/config/ha-panel-config";
|
import { configSections } from "../../panels/config/ha-panel-config";
|
||||||
import { PageNavigation } from "../../layouts/hass-tabs-subpage";
|
import { PageNavigation } from "../../layouts/hass-tabs-subpage";
|
||||||
import { canShowPage } from "../../common/config/can_show_page";
|
import { canShowPage } from "../../common/config/can_show_page";
|
||||||
import { getPanelIcon, getPanelNameTranslationKey } from "../../data/panel";
|
import { getPanelNameTranslationKey } from "../../data/panel";
|
||||||
|
|
||||||
const DEFAULT_NAVIGATION_ICON = "hass:arrow-right-circle";
|
|
||||||
const DEFAULT_SERVER_ICON = "hass:server";
|
const DEFAULT_SERVER_ICON = "hass:server";
|
||||||
|
|
||||||
interface QuickBarItem extends ScorableTextItem {
|
interface QuickBarItem extends ScorableTextItem {
|
||||||
|
primaryText: string;
|
||||||
icon?: string;
|
icon?: string;
|
||||||
iconPath?: string;
|
iconPath?: string;
|
||||||
action(data?: any): void;
|
action(data?: any): void;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface QuickBarNavigationItem extends QuickBarItem {
|
export interface CommandItem extends QuickBarItem {
|
||||||
|
categoryKey: "reload" | "navigation" | "server_control";
|
||||||
|
categoryText: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
const isCommandItem = (
|
||||||
|
item: QuickBarItem | CommandItem
|
||||||
|
): item is CommandItem => {
|
||||||
|
return (item as CommandItem).categoryKey !== undefined;
|
||||||
|
};
|
||||||
|
|
||||||
|
interface QuickBarNavigationItem extends CommandItem {
|
||||||
path: string;
|
path: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface NavigationInfo extends PageNavigation {
|
type NavigationInfo = PageNavigation & Pick<QuickBarItem, "primaryText">;
|
||||||
text: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
type BaseNavigationCommand = Pick<
|
||||||
|
QuickBarNavigationItem,
|
||||||
|
"primaryText" | "path"
|
||||||
|
>;
|
||||||
@customElement("ha-quick-bar")
|
@customElement("ha-quick-bar")
|
||||||
export class QuickBar extends LitElement {
|
export class QuickBar extends LitElement {
|
||||||
@property({ attribute: false }) public hass!: HomeAssistant;
|
@property({ attribute: false }) public hass!: HomeAssistant;
|
||||||
|
|
||||||
@internalProperty() private _commandItems?: QuickBarItem[];
|
@internalProperty() private _commandItems?: CommandItem[];
|
||||||
|
|
||||||
@internalProperty() private _entityItems?: QuickBarItem[];
|
@internalProperty() private _entityItems?: QuickBarItem[];
|
||||||
|
|
||||||
@@ -82,6 +95,8 @@ export class QuickBar extends LitElement {
|
|||||||
|
|
||||||
@internalProperty() private _commandMode = false;
|
@internalProperty() private _commandMode = false;
|
||||||
|
|
||||||
|
@internalProperty() private _commandType?: CommandItem["categoryKey"];
|
||||||
|
|
||||||
@internalProperty() private _done = false;
|
@internalProperty() private _done = false;
|
||||||
|
|
||||||
@query("search-input", false) private _filterInputField?: HTMLElement;
|
@query("search-input", false) private _filterInputField?: HTMLElement;
|
||||||
@@ -90,6 +105,10 @@ export class QuickBar extends LitElement {
|
|||||||
|
|
||||||
public async showDialog(params: QuickBarParams) {
|
public async showDialog(params: QuickBarParams) {
|
||||||
this._commandMode = params.commandMode || this._toggleIfAlreadyOpened();
|
this._commandMode = params.commandMode || this._toggleIfAlreadyOpened();
|
||||||
|
this._commandType = params.commandType;
|
||||||
|
this._search = this._commandType
|
||||||
|
? `${this._getCommandCategoryLabel(this._commandType).toLowerCase()} `
|
||||||
|
: "";
|
||||||
this._initializeItemsIfNeeded();
|
this._initializeItemsIfNeeded();
|
||||||
this._opened = true;
|
this._opened = true;
|
||||||
}
|
}
|
||||||
@@ -201,6 +220,12 @@ export class QuickBar extends LitElement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private _renderItem(item: QuickBarItem, index?: number) {
|
private _renderItem(item: QuickBarItem, index?: number) {
|
||||||
|
return isCommandItem(item)
|
||||||
|
? this._renderCommandItem(item, index)
|
||||||
|
: this._renderEntityItem(item, index);
|
||||||
|
}
|
||||||
|
|
||||||
|
private _renderEntityItem(item: QuickBarItem, index?: number) {
|
||||||
return html`
|
return html`
|
||||||
<mwc-list-item
|
<mwc-list-item
|
||||||
.twoline=${Boolean(item.altText)}
|
.twoline=${Boolean(item.altText)}
|
||||||
@@ -214,7 +239,30 @@ export class QuickBar extends LitElement {
|
|||||||
slot="graphic"
|
slot="graphic"
|
||||||
></ha-svg-icon>`
|
></ha-svg-icon>`
|
||||||
: html`<ha-icon .icon=${item.icon} slot="graphic"></ha-icon>`}
|
: html`<ha-icon .icon=${item.icon} slot="graphic"></ha-icon>`}
|
||||||
${item.text}
|
<span>${item.primaryText}</span>
|
||||||
|
${item.altText
|
||||||
|
? html`
|
||||||
|
<span slot="secondary" class="item-text secondary"
|
||||||
|
>${item.altText}</span
|
||||||
|
>
|
||||||
|
`
|
||||||
|
: null}
|
||||||
|
</mwc-list-item>
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
|
||||||
|
private _renderCommandItem(item: CommandItem, index?: number) {
|
||||||
|
return html`
|
||||||
|
<mwc-list-item
|
||||||
|
.twoline=${Boolean(item.altText)}
|
||||||
|
.item=${item}
|
||||||
|
index=${ifDefined(index)}
|
||||||
|
>
|
||||||
|
<span class="command-category ${item.categoryKey}"
|
||||||
|
>${item.categoryText}
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span>${item.primaryText}</span>
|
||||||
${item.altText
|
${item.altText
|
||||||
? html`
|
? html`
|
||||||
<span slot="secondary" class="item-text secondary"
|
<span slot="secondary" class="item-text secondary"
|
||||||
@@ -313,92 +361,107 @@ export class QuickBar extends LitElement {
|
|||||||
|
|
||||||
private _generateEntityItems(): QuickBarItem[] {
|
private _generateEntityItems(): QuickBarItem[] {
|
||||||
return Object.keys(this.hass.states)
|
return Object.keys(this.hass.states)
|
||||||
.map((entityId) => ({
|
.map((entityId) => {
|
||||||
text: computeStateName(this.hass.states[entityId]),
|
const primaryText = computeStateName(this.hass.states[entityId]);
|
||||||
altText: entityId,
|
return {
|
||||||
icon: domainIcon(computeDomain(entityId), this.hass.states[entityId]),
|
primaryText,
|
||||||
action: () => fireEvent(this, "hass-more-info", { entityId }),
|
filterText: primaryText,
|
||||||
}))
|
altText: entityId,
|
||||||
.sort((a, b) => compare(a.text.toLowerCase(), b.text.toLowerCase()));
|
icon: domainIcon(computeDomain(entityId), this.hass.states[entityId]),
|
||||||
|
action: () => fireEvent(this, "hass-more-info", { entityId }),
|
||||||
|
};
|
||||||
|
})
|
||||||
|
.sort((a, b) =>
|
||||||
|
compare(a.primaryText.toLowerCase(), b.primaryText.toLowerCase())
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private _generateCommandItems(): QuickBarItem[] {
|
private _generateCommandItems(): CommandItem[] {
|
||||||
return [
|
return [
|
||||||
...this._generateReloadCommands(),
|
...this._generateReloadCommands(),
|
||||||
...this._generateServerControlCommands(),
|
...this._generateServerControlCommands(),
|
||||||
...this._generateNavigationCommands(),
|
...this._generateNavigationCommands(),
|
||||||
].sort((a, b) => compare(a.text.toLowerCase(), b.text.toLowerCase()));
|
].sort((a, b) =>
|
||||||
|
compare(a.filterText.toLowerCase(), b.filterText.toLowerCase())
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private _generateReloadCommands(): QuickBarItem[] {
|
private _generateReloadCommands(): CommandItem[] {
|
||||||
const reloadableDomains = componentsWithService(this.hass, "reload").sort();
|
const reloadableDomains = componentsWithService(this.hass, "reload").sort();
|
||||||
|
|
||||||
return reloadableDomains.map((domain) => ({
|
return reloadableDomains.map((domain) => {
|
||||||
text:
|
const categoryKey = "reload";
|
||||||
|
const categoryText = this._getCommandCategoryLabel(categoryKey);
|
||||||
|
const primaryText =
|
||||||
this.hass.localize(`ui.dialogs.quick-bar.commands.reload.${domain}`) ||
|
this.hass.localize(`ui.dialogs.quick-bar.commands.reload.${domain}`) ||
|
||||||
this.hass.localize(
|
this.hass.localize(
|
||||||
"ui.dialogs.quick-bar.commands.reload.reload",
|
"ui.dialogs.quick-bar.commands.reload.reload",
|
||||||
"domain",
|
"domain",
|
||||||
domainToName(this.hass.localize, domain)
|
domainToName(this.hass.localize, domain)
|
||||||
),
|
);
|
||||||
icon: domainIcon(domain),
|
|
||||||
action: () => this.hass.callService(domain, "reload"),
|
return {
|
||||||
}));
|
primaryText,
|
||||||
|
filterText: `${categoryText} ${primaryText}`,
|
||||||
|
icon: domainIcon(domain),
|
||||||
|
action: () => this.hass.callService(domain, "reload"),
|
||||||
|
categoryKey,
|
||||||
|
categoryText,
|
||||||
|
};
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private _generateServerControlCommands(): QuickBarItem[] {
|
private _generateServerControlCommands(): CommandItem[] {
|
||||||
const serverActions = ["restart", "stop"];
|
const serverActions = ["restart", "stop"];
|
||||||
|
|
||||||
return serverActions.map((action) =>
|
return serverActions.map((action) => {
|
||||||
this._generateConfirmationCommand(
|
const categoryKey = "server_control";
|
||||||
|
const categoryText = this._getCommandCategoryLabel(categoryKey);
|
||||||
|
const primaryText = this.hass.localize(
|
||||||
|
"ui.dialogs.quick-bar.commands.server_control.perform_action",
|
||||||
|
"action",
|
||||||
|
this.hass.localize(
|
||||||
|
`ui.dialogs.quick-bar.commands.server_control.${action}`
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
return this._generateConfirmationCommand(
|
||||||
{
|
{
|
||||||
text: this.hass.localize(
|
primaryText,
|
||||||
"ui.dialogs.quick-bar.commands.server_control.perform_action",
|
filterText: `${categoryText} ${primaryText}`,
|
||||||
"action",
|
categoryKey,
|
||||||
this.hass.localize(
|
categoryText,
|
||||||
`ui.dialogs.quick-bar.commands.server_control.${action}`
|
|
||||||
)
|
|
||||||
),
|
|
||||||
icon: DEFAULT_SERVER_ICON,
|
icon: DEFAULT_SERVER_ICON,
|
||||||
action: () => this.hass.callService("homeassistant", action),
|
action: () => this.hass.callService("homeassistant", action),
|
||||||
},
|
},
|
||||||
this.hass.localize("ui.dialogs.generic.ok")
|
this.hass.localize("ui.dialogs.generic.ok")
|
||||||
)
|
);
|
||||||
);
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private _generateNavigationCommands(): QuickBarItem[] {
|
private _generateNavigationCommands(): CommandItem[] {
|
||||||
const panelItems = this._generateNavigationPanelCommands();
|
const panelItems = this._generateNavigationPanelCommands();
|
||||||
const sectionItems = this._generateNavigationConfigSectionCommands();
|
const sectionItems = this._generateNavigationConfigSectionCommands();
|
||||||
|
|
||||||
return this._withNavigationActions([...panelItems, ...sectionItems]);
|
return this._finalizeNavigationCommands([...panelItems, ...sectionItems]);
|
||||||
}
|
}
|
||||||
|
|
||||||
private _generateNavigationPanelCommands(): Omit<
|
private _generateNavigationPanelCommands(): BaseNavigationCommand[] {
|
||||||
QuickBarNavigationItem,
|
|
||||||
"action"
|
|
||||||
>[] {
|
|
||||||
return Object.keys(this.hass.panels).map((panelKey) => {
|
return Object.keys(this.hass.panels).map((panelKey) => {
|
||||||
const panel = this.hass.panels[panelKey];
|
const panel = this.hass.panels[panelKey];
|
||||||
const translationKey = getPanelNameTranslationKey(panel);
|
const translationKey = getPanelNameTranslationKey(panel);
|
||||||
|
|
||||||
const text = this.hass.localize(
|
const primaryText =
|
||||||
"ui.dialogs.quick-bar.commands.navigation.navigate_to",
|
this.hass.localize(translationKey) || panel.title || panel.url_path;
|
||||||
"panel",
|
|
||||||
this.hass.localize(translationKey) || panel.title || panel.url_path
|
|
||||||
);
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
text,
|
primaryText,
|
||||||
icon: getPanelIcon(panel) || DEFAULT_NAVIGATION_ICON,
|
|
||||||
path: `/${panel.url_path}`,
|
path: `/${panel.url_path}`,
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private _generateNavigationConfigSectionCommands(): Partial<
|
private _generateNavigationConfigSectionCommands(): BaseNavigationCommand[] {
|
||||||
QuickBarNavigationItem
|
|
||||||
>[] {
|
|
||||||
const items: NavigationInfo[] = [];
|
const items: NavigationInfo[] = [];
|
||||||
|
|
||||||
for (const sectionKey of Object.keys(configSections)) {
|
for (const sectionKey of Object.keys(configSections)) {
|
||||||
@@ -422,28 +485,20 @@ export class QuickBar extends LitElement {
|
|||||||
page: PageNavigation
|
page: PageNavigation
|
||||||
): NavigationInfo | undefined {
|
): NavigationInfo | undefined {
|
||||||
if (page.component) {
|
if (page.component) {
|
||||||
const shortCaption = this.hass.localize(
|
const caption = this.hass.localize(
|
||||||
`ui.dialogs.quick-bar.commands.navigation.${page.component}`
|
`ui.dialogs.quick-bar.commands.navigation.${page.component}`
|
||||||
);
|
);
|
||||||
|
|
||||||
if (page.translationKey) {
|
return { ...page, primaryText: caption };
|
||||||
const caption = this.hass.localize(
|
|
||||||
"ui.dialogs.quick-bar.commands.navigation.navigate_to_config",
|
|
||||||
"panel",
|
|
||||||
shortCaption
|
|
||||||
);
|
|
||||||
|
|
||||||
return { ...page, text: caption };
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
private _generateConfirmationCommand(
|
private _generateConfirmationCommand(
|
||||||
item: QuickBarItem,
|
item: CommandItem,
|
||||||
confirmText: ConfirmationDialogParams["confirmText"]
|
confirmText: ConfirmationDialogParams["confirmText"]
|
||||||
): QuickBarItem {
|
): CommandItem {
|
||||||
return {
|
return {
|
||||||
...item,
|
...item,
|
||||||
action: () =>
|
action: () =>
|
||||||
@@ -454,13 +509,21 @@ export class QuickBar extends LitElement {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
private _withNavigationActions(items) {
|
private _finalizeNavigationCommands(
|
||||||
return items.map(({ text, icon, iconPath, path }) => ({
|
items: BaseNavigationCommand[]
|
||||||
text,
|
): CommandItem[] {
|
||||||
icon,
|
return items.map((item) => {
|
||||||
iconPath,
|
const categoryKey = "navigation";
|
||||||
action: () => navigate(this, path),
|
const categoryText = this._getCommandCategoryLabel(categoryKey);
|
||||||
}));
|
|
||||||
|
return {
|
||||||
|
...item,
|
||||||
|
categoryKey,
|
||||||
|
categoryText,
|
||||||
|
filterText: `${categoryText} ${item.primaryText}`,
|
||||||
|
action: () => navigate(this, item.path),
|
||||||
|
};
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private _toggleIfAlreadyOpened() {
|
private _toggleIfAlreadyOpened() {
|
||||||
@@ -479,6 +542,10 @@ export class QuickBar extends LitElement {
|
|||||||
fuzzyFilterSort<QuickBarItem>(filter.trimLeft(), items)
|
fuzzyFilterSort<QuickBarItem>(filter.trimLeft(), items)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
private _getCommandCategoryLabel = (
|
||||||
|
categoryKey: CommandItem["categoryKey"]
|
||||||
|
) => this.hass.localize(`ui.dialogs.quick-bar.commands.types.${categoryKey}`);
|
||||||
|
|
||||||
static get styles() {
|
static get styles() {
|
||||||
return [
|
return [
|
||||||
haStyleDialog,
|
haStyleDialog,
|
||||||
@@ -512,6 +579,27 @@ export class QuickBar extends LitElement {
|
|||||||
color: var(--primary-text-color);
|
color: var(--primary-text-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
span.command-category {
|
||||||
|
font-weight: bold;
|
||||||
|
padding: 3px;
|
||||||
|
display: inline-flex;
|
||||||
|
border-radius: 6px;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.command-category.reload {
|
||||||
|
background: pink;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.command-category.navigation {
|
||||||
|
background: lightblue;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.command-category.server_control {
|
||||||
|
background: orange;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
.uni-virtualizer-host {
|
.uni-virtualizer-host {
|
||||||
display: block;
|
display: block;
|
||||||
position: relative;
|
position: relative;
|
||||||
@@ -526,7 +614,6 @@ export class QuickBar extends LitElement {
|
|||||||
|
|
||||||
mwc-list-item {
|
mwc-list-item {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
text-transform: capitalize;
|
|
||||||
}
|
}
|
||||||
`,
|
`,
|
||||||
];
|
];
|
||||||
|
@@ -1,8 +1,10 @@
|
|||||||
import { fireEvent } from "../../common/dom/fire_event";
|
import { fireEvent } from "../../common/dom/fire_event";
|
||||||
|
import { CommandItem } from "./ha-quick-bar";
|
||||||
|
|
||||||
export interface QuickBarParams {
|
export interface QuickBarParams {
|
||||||
entityFilter?: string;
|
entityFilter?: string;
|
||||||
commandMode?: boolean;
|
commandMode?: boolean;
|
||||||
|
commandType?: CommandItem["categoryKey"];
|
||||||
}
|
}
|
||||||
|
|
||||||
export const loadQuickBar = () =>
|
export const loadQuickBar = () =>
|
||||||
|
@@ -115,7 +115,6 @@ export class HuiEntityCardEditor extends LitElement
|
|||||||
</div>
|
</div>
|
||||||
<div class="side-by-side">
|
<div class="side-by-side">
|
||||||
<ha-entity-attribute-picker
|
<ha-entity-attribute-picker
|
||||||
allow-custom-value
|
|
||||||
.hass=${this.hass}
|
.hass=${this.hass}
|
||||||
.entityId=${this._entity}
|
.entityId=${this._entity}
|
||||||
.label="${this.hass.localize(
|
.label="${this.hass.localize(
|
||||||
|
@@ -7,6 +7,7 @@ import {
|
|||||||
} from "../dialogs/quick-bar/show-dialog-quick-bar";
|
} from "../dialogs/quick-bar/show-dialog-quick-bar";
|
||||||
import { HomeAssistant } from "../types";
|
import { HomeAssistant } from "../types";
|
||||||
import { storeState } from "../util/ha-pref-storage";
|
import { storeState } from "../util/ha-pref-storage";
|
||||||
|
import { CommandItem } from "../dialogs/quick-bar/ha-quick-bar";
|
||||||
|
|
||||||
declare global {
|
declare global {
|
||||||
interface HASSDomEvents {
|
interface HASSDomEvents {
|
||||||
@@ -32,15 +33,22 @@ export default <T extends Constructor<HassElement>>(superClass: T) =>
|
|||||||
tinykeys(window, {
|
tinykeys(window, {
|
||||||
e: (ev) => this._showQuickBar(ev),
|
e: (ev) => this._showQuickBar(ev),
|
||||||
c: (ev) => this._showQuickBar(ev, true),
|
c: (ev) => this._showQuickBar(ev, true),
|
||||||
|
g: (ev) => this._showQuickBar(ev, true, "navigation"),
|
||||||
|
r: (ev) => this._showQuickBar(ev, true, "reload"),
|
||||||
|
s: (ev) => this._showQuickBar(ev, true, "server_control"),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private _showQuickBar(e: KeyboardEvent, commandMode = false) {
|
private _showQuickBar(
|
||||||
|
e: KeyboardEvent,
|
||||||
|
commandMode = false,
|
||||||
|
commandType?: CommandItem["categoryKey"]
|
||||||
|
) {
|
||||||
if (!this._canShowQuickBar(e)) {
|
if (!this._canShowQuickBar(e)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
showQuickBar(this, { commandMode });
|
showQuickBar(this, { commandMode, commandType });
|
||||||
}
|
}
|
||||||
|
|
||||||
private _canShowQuickBar(e: KeyboardEvent) {
|
private _canShowQuickBar(e: KeyboardEvent) {
|
||||||
|
@@ -288,7 +288,6 @@
|
|||||||
"overflow_menu": "Overflow menu",
|
"overflow_menu": "Overflow menu",
|
||||||
"successfully_saved": "Successfully saved",
|
"successfully_saved": "Successfully saved",
|
||||||
"successfully_deleted": "Successfully deleted",
|
"successfully_deleted": "Successfully deleted",
|
||||||
|
|
||||||
"error_required": "Required",
|
"error_required": "Required",
|
||||||
"copied": "Copied"
|
"copied": "Copied"
|
||||||
},
|
},
|
||||||
@@ -496,13 +495,16 @@
|
|||||||
"rpi_gpio": "[%key:ui::panel::config::server_control::section::reloading::rpi_gpio%]"
|
"rpi_gpio": "[%key:ui::panel::config::server_control::section::reloading::rpi_gpio%]"
|
||||||
},
|
},
|
||||||
"server_control": {
|
"server_control": {
|
||||||
"perform_action": "{action} Server",
|
"perform_action": "{action} server",
|
||||||
"restart": "[%key:ui::panel::config::server_control::section::server_management::restart%]",
|
"restart": "[%key:ui::panel::config::server_control::section::server_management::restart%]",
|
||||||
"stop": "[%key:ui::panel::config::server_control::section::server_management::stop%]"
|
"stop": "[%key:ui::panel::config::server_control::section::server_management::stop%]"
|
||||||
},
|
},
|
||||||
|
"types": {
|
||||||
|
"reload": "Reload",
|
||||||
|
"navigation": "Go to",
|
||||||
|
"server_control": "Server"
|
||||||
|
},
|
||||||
"navigation": {
|
"navigation": {
|
||||||
"navigate_to": "Navigate to {panel}",
|
|
||||||
"navigate_to_config": "Navigate to {panel} configuration",
|
|
||||||
"logs": "[%key:ui::panel::config::logs::caption%]",
|
"logs": "[%key:ui::panel::config::logs::caption%]",
|
||||||
"automation": "[%key:ui::panel::config::automation::caption%]",
|
"automation": "[%key:ui::panel::config::automation::caption%]",
|
||||||
"script": "[%key:ui::panel::config::script::caption%]",
|
"script": "[%key:ui::panel::config::script::caption%]",
|
||||||
@@ -1026,36 +1028,36 @@
|
|||||||
"heading": "YAML configuration reloading",
|
"heading": "YAML configuration reloading",
|
||||||
"introduction": "Some parts of Home Assistant can reload without requiring a restart. Hitting reload will unload their current YAML configuration and load the new one.",
|
"introduction": "Some parts of Home Assistant can reload without requiring a restart. Hitting reload will unload their current YAML configuration and load the new one.",
|
||||||
"reload": "Reload {domain}",
|
"reload": "Reload {domain}",
|
||||||
"core": "Reload location & customizations",
|
"core": "Location & customizations",
|
||||||
"group": "Reload groups, group entities, and notify services",
|
"group": "Groups, group entities, and notify services",
|
||||||
"automation": "Reload automations",
|
"automation": "Automations",
|
||||||
"script": "Reload scripts",
|
"script": "Scripts",
|
||||||
"scene": "Reload scenes",
|
"scene": "Scenes",
|
||||||
"person": "Reload people",
|
"person": "People",
|
||||||
"zone": "Reload zones",
|
"zone": "Zones",
|
||||||
"input_boolean": "Reload input booleans",
|
"input_boolean": "Input booleans",
|
||||||
"input_text": "Reload input texts",
|
"input_text": "Input texts",
|
||||||
"input_number": "Reload input numbers",
|
"input_number": "Input numbers",
|
||||||
"input_datetime": "Reload input date times",
|
"input_datetime": "Input date times",
|
||||||
"input_select": "Reload input selects",
|
"input_select": "Input selects",
|
||||||
"template": "Reload template entities",
|
"template": "Template entities",
|
||||||
"universal": "Reload universal media player entities",
|
"universal": "Universal media player entities",
|
||||||
"rest": "Reload rest entities and notify services",
|
"rest": "Rest entities and notify services",
|
||||||
"command_line": "Reload command line entities",
|
"command_line": "Command line entities",
|
||||||
"filter": "Reload filter entities",
|
"filter": "Filter entities",
|
||||||
"statistics": "Reload statistics entities",
|
"statistics": "Statistics entities",
|
||||||
"generic": "Reload generic IP camera entities",
|
"generic": "Generic IP camera entities",
|
||||||
"generic_thermostat": "Reload generic thermostat entities",
|
"generic_thermostat": "Generic thermostat entities",
|
||||||
"homekit": "Reload HomeKit",
|
"homekit": "HomeKit",
|
||||||
"min_max": "Reload min/max entities",
|
"min_max": "Min/max entities",
|
||||||
"history_stats": "Reload history stats entities",
|
"history_stats": "History stats entities",
|
||||||
"trend": "Reload trend entities",
|
"trend": "Trend entities",
|
||||||
"ping": "Reload ping binary sensor entities",
|
"ping": "Ping binary sensor entities",
|
||||||
"filesize": "Reload file size entities",
|
"filesize": "File size entities",
|
||||||
"telegram": "Reload telegram notify services",
|
"telegram": "Telegram notify services",
|
||||||
"smtp": "Reload SMTP notify services",
|
"smtp": "SMTP notify services",
|
||||||
"mqtt": "Reload manually configured MQTT entities",
|
"mqtt": "Manually configured MQTT entities",
|
||||||
"rpi_gpio": "Reload Raspberry Pi GPIO entities"
|
"rpi_gpio": "Raspberry Pi GPIO entities"
|
||||||
},
|
},
|
||||||
"server_management": {
|
"server_management": {
|
||||||
"heading": "Server management",
|
"heading": "Server management",
|
||||||
|
@@ -805,9 +805,7 @@
|
|||||||
"more_info_control": {
|
"more_info_control": {
|
||||||
"controls": "Controls",
|
"controls": "Controls",
|
||||||
"cover": {
|
"cover": {
|
||||||
"close_cover": "Tanca la coberta",
|
|
||||||
"close_tile_cover": "Inclinació de la coberta tancada",
|
"close_tile_cover": "Inclinació de la coberta tancada",
|
||||||
"open_cover": "Obre la coberta",
|
|
||||||
"open_tilt_cover": "Inclinació de la coberta oberta",
|
"open_tilt_cover": "Inclinació de la coberta oberta",
|
||||||
"stop_cover": "Atura el moviment de la coberta"
|
"stop_cover": "Atura el moviment de la coberta"
|
||||||
},
|
},
|
||||||
@@ -1743,8 +1741,6 @@
|
|||||||
"info": {
|
"info": {
|
||||||
"built_using": "Creat utilitzant",
|
"built_using": "Creat utilitzant",
|
||||||
"caption": "Informació",
|
"caption": "Informació",
|
||||||
"copy_github": "Per GitHub",
|
|
||||||
"copy_raw": "Text en brut",
|
|
||||||
"custom_uis": "Interfícies d'usuari personalitzades:",
|
"custom_uis": "Interfícies d'usuari personalitzades:",
|
||||||
"description": "Consulta informació de la teva instal·lació de Home Assistant",
|
"description": "Consulta informació de la teva instal·lació de Home Assistant",
|
||||||
"developed_by": "Desenvolupat per un munt de gent fantàstica.",
|
"developed_by": "Desenvolupat per un munt de gent fantàstica.",
|
||||||
|
@@ -805,9 +805,7 @@
|
|||||||
"more_info_control": {
|
"more_info_control": {
|
||||||
"controls": "Ovládací prvky",
|
"controls": "Ovládací prvky",
|
||||||
"cover": {
|
"cover": {
|
||||||
"close_cover": "Zavřít",
|
|
||||||
"close_tile_cover": "Snížit náklon",
|
"close_tile_cover": "Snížit náklon",
|
||||||
"open_cover": "Otevřít",
|
|
||||||
"open_tilt_cover": "Zvýšit náklon",
|
"open_tilt_cover": "Zvýšit náklon",
|
||||||
"stop_cover": "Zastavit pohyb"
|
"stop_cover": "Zastavit pohyb"
|
||||||
},
|
},
|
||||||
@@ -892,7 +890,7 @@
|
|||||||
"scene": "Scény",
|
"scene": "Scény",
|
||||||
"script": "Skripty",
|
"script": "Skripty",
|
||||||
"server_control": "Ovládání serveru",
|
"server_control": "Ovládání serveru",
|
||||||
"tags": "Štítky",
|
"tags": "Značky",
|
||||||
"users": "Uživatelé",
|
"users": "Uživatelé",
|
||||||
"zone": "Zóny"
|
"zone": "Zóny"
|
||||||
},
|
},
|
||||||
@@ -1298,7 +1296,7 @@
|
|||||||
"sunset": "Západ slunce"
|
"sunset": "Západ slunce"
|
||||||
},
|
},
|
||||||
"tag": {
|
"tag": {
|
||||||
"label": "Štítek"
|
"label": "Značka"
|
||||||
},
|
},
|
||||||
"template": {
|
"template": {
|
||||||
"label": "Šablona",
|
"label": "Šablona",
|
||||||
@@ -1743,8 +1741,6 @@
|
|||||||
"info": {
|
"info": {
|
||||||
"built_using": "Sestaveno pomocí",
|
"built_using": "Sestaveno pomocí",
|
||||||
"caption": "Informace",
|
"caption": "Informace",
|
||||||
"copy_github": "Pro GitHub",
|
|
||||||
"copy_raw": "Nezpracovaný text",
|
|
||||||
"custom_uis": "Vlastní uživatelská rozhraní:",
|
"custom_uis": "Vlastní uživatelská rozhraní:",
|
||||||
"description": "Informace o instalaci Home Assistant",
|
"description": "Informace o instalaci Home Assistant",
|
||||||
"developed_by": "Vyvinuto partou úžasných lidí.",
|
"developed_by": "Vyvinuto partou úžasných lidí.",
|
||||||
@@ -2285,13 +2281,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tags": {
|
||||||
"add_tag": "Přidat štítek",
|
"add_tag": "Přidat značku",
|
||||||
"automation_title": "Štítek {name} je naskenován",
|
"automation_title": "Značka {name} je naskenována",
|
||||||
"caption": "Štítky",
|
"caption": "Značky",
|
||||||
"confirm_remove": "Opravdu chcete odebrat štítek {tag}?",
|
"confirm_remove": "Opravdu chcete odebrat značku {tag}?",
|
||||||
"confirm_remove_title": "Odebrat štítek?",
|
"confirm_remove_title": "Odebrat značku?",
|
||||||
"create_automation": "Vytvořit automatizaci se štítkem",
|
"create_automation": "Vytvořit automatizaci se značkou",
|
||||||
"description": "Správa štítků",
|
"description": "Správa značek",
|
||||||
"detail": {
|
"detail": {
|
||||||
"companion_apps": "doprovodné aplikace",
|
"companion_apps": "doprovodné aplikace",
|
||||||
"create": "Vytvořit",
|
"create": "Vytvořit",
|
||||||
@@ -2299,20 +2295,20 @@
|
|||||||
"delete": "Smazat",
|
"delete": "Smazat",
|
||||||
"description": "Popis",
|
"description": "Popis",
|
||||||
"name": "Název",
|
"name": "Název",
|
||||||
"new_tag": "Nový štítek",
|
"new_tag": "Nová značka",
|
||||||
"tag_id": "ID štítku",
|
"tag_id": "ID značky",
|
||||||
"tag_id_placeholder": "Automaticky vygenerováno, pokud zůstane prázdné",
|
"tag_id_placeholder": "Automaticky vygenerováno, pokud zůstane prázdné",
|
||||||
"update": "Aktualizovat",
|
"update": "Aktualizovat",
|
||||||
"usage": "Štítek může po naskenování spustit automatizaci. Můžete použít NFC tagy, QR kódy nebo jakýkoli jiný druh štítku. Použijte naše {companion_link} k zapsání tohoto štítku na programovatelný NFC tag nebo vytvořte QR kód níže."
|
"usage": "Značka může po naskenování spustit automatizaci. Můžete použít NFC značky, QR kódy nebo jakýkoli jiný druh značky. Použijte naše {companion_link} k zapsání této značky na programovatelnou NFC značku nebo vytvořte QR kód níže."
|
||||||
},
|
},
|
||||||
"edit": "Upravit",
|
"edit": "Upravit",
|
||||||
"headers": {
|
"headers": {
|
||||||
"last_scanned": "Naposledy naskenováno",
|
"last_scanned": "Naposledy naskenováno",
|
||||||
"name": "Název"
|
"name": "Název"
|
||||||
},
|
},
|
||||||
"learn_more": "Další informace o štítcích",
|
"learn_more": "Další informace o značkách",
|
||||||
"never_scanned": "Nikdy neskenováno",
|
"never_scanned": "Nikdy naskenováno",
|
||||||
"no_tags": "Žádné štítky",
|
"no_tags": "Žádné značky",
|
||||||
"write": "Zapsat"
|
"write": "Zapsat"
|
||||||
},
|
},
|
||||||
"users": {
|
"users": {
|
||||||
|
@@ -804,10 +804,6 @@
|
|||||||
},
|
},
|
||||||
"more_info_control": {
|
"more_info_control": {
|
||||||
"controls": "Steuerelemente",
|
"controls": "Steuerelemente",
|
||||||
"cover": {
|
|
||||||
"close_cover": "Abdeckung schließen",
|
|
||||||
"open_cover": "Abdeckung öffnen"
|
|
||||||
},
|
|
||||||
"details": "Details",
|
"details": "Details",
|
||||||
"dismiss": "Dialog ausblenden",
|
"dismiss": "Dialog ausblenden",
|
||||||
"edit": "Entität bearbeiten",
|
"edit": "Entität bearbeiten",
|
||||||
@@ -871,27 +867,6 @@
|
|||||||
},
|
},
|
||||||
"quick-bar": {
|
"quick-bar": {
|
||||||
"commands": {
|
"commands": {
|
||||||
"navigation": {
|
|
||||||
"areas": "Bereiche",
|
|
||||||
"automation": "Automatisierungen",
|
|
||||||
"core": "Allgemein",
|
|
||||||
"customize": "Anpassungen",
|
|
||||||
"devices": "Geräte",
|
|
||||||
"entities": "Entitäten",
|
|
||||||
"helpers": "Helfer",
|
|
||||||
"info": "Info",
|
|
||||||
"integrations": "Integrationen",
|
|
||||||
"logs": "Logs",
|
|
||||||
"navigate_to": "Navigiere zu {panel}",
|
|
||||||
"navigate_to_config": "Navigiere zur {panel} Konfiguration",
|
|
||||||
"person": "Personen",
|
|
||||||
"scene": "Szenen",
|
|
||||||
"script": "Skripte",
|
|
||||||
"server_control": "Serversteuerung",
|
|
||||||
"tags": "Tags",
|
|
||||||
"users": "Benutzer",
|
|
||||||
"zone": "Zonen"
|
|
||||||
},
|
|
||||||
"reload": {
|
"reload": {
|
||||||
"automation": "Automationen neu laden",
|
"automation": "Automationen neu laden",
|
||||||
"command_line": "Komandozeilen Entätien neu laden",
|
"command_line": "Komandozeilen Entätien neu laden",
|
||||||
@@ -1661,12 +1636,12 @@
|
|||||||
"disable_selected": {
|
"disable_selected": {
|
||||||
"button": "Ausgewählte deaktivieren",
|
"button": "Ausgewählte deaktivieren",
|
||||||
"confirm_text": "Deaktivierte Entitäten werden zu Home Assistant nicht hinzugefügt.",
|
"confirm_text": "Deaktivierte Entitäten werden zu Home Assistant nicht hinzugefügt.",
|
||||||
"confirm_title": "Möchtest du {number} {number, plural,\n one {{entity}}\n other {{entities}}\n} deaktivieren?"
|
"confirm_title": "Möchtest du {number} Entitäten deaktivieren?"
|
||||||
},
|
},
|
||||||
"enable_selected": {
|
"enable_selected": {
|
||||||
"button": "Ausgewählte aktivieren",
|
"button": "Ausgewählte aktivieren",
|
||||||
"confirm_text": "Dadurch stehen sie in Home Assistant wieder zur Verfügung, wenn sie jetzt deaktiviert sind.",
|
"confirm_text": "Dadurch stehen sie in Home Assistant wieder zur Verfügung, wenn sie jetzt deaktiviert sind.",
|
||||||
"confirm_title": "Möchtest du {number} {number, plural,\n one {{entity}}\n other {{entities}}\n} aktivieren?"
|
"confirm_title": "Möchtest du {number} Entitäten aktivieren?"
|
||||||
},
|
},
|
||||||
"filter": {
|
"filter": {
|
||||||
"filter": "Filter",
|
"filter": "Filter",
|
||||||
@@ -1690,7 +1665,7 @@
|
|||||||
"confirm_partly_text": "Du kannst nur {removable} der ausgewählten {selected} Entitäten entfernen. Entitäten können nur entfernt werden, wenn die Integration die Entitäten nicht mehr bereitstellt. Manchmal musst du Home Assistant neu starten, bevor du die Entitäten einer entfernten Integration entfernen kannst. Möchtest du die entfernbaren Entitäten wirklich entfernen?",
|
"confirm_partly_text": "Du kannst nur {removable} der ausgewählten {selected} Entitäten entfernen. Entitäten können nur entfernt werden, wenn die Integration die Entitäten nicht mehr bereitstellt. Manchmal musst du Home Assistant neu starten, bevor du die Entitäten einer entfernten Integration entfernen kannst. Möchtest du die entfernbaren Entitäten wirklich entfernen?",
|
||||||
"confirm_partly_title": "Es können nur {number} ausgewählte Objekte entfernt werden.",
|
"confirm_partly_title": "Es können nur {number} ausgewählte Objekte entfernt werden.",
|
||||||
"confirm_text": "Du solltest sie aus deiner Lovelace-Konfiguration und deinen Automatisierungen entfernen, wenn sie diese Entitäten enthalten.",
|
"confirm_text": "Du solltest sie aus deiner Lovelace-Konfiguration und deinen Automatisierungen entfernen, wenn sie diese Entitäten enthalten.",
|
||||||
"confirm_title": "Möchtest du {number} {number, plural,\n one {{entity}}\n other {{entities}}\n} entfernen?"
|
"confirm_title": "Möchtest du {number} Entitäten entfernen?"
|
||||||
},
|
},
|
||||||
"search": "Entitäten suchen",
|
"search": "Entitäten suchen",
|
||||||
"selected": "{number} ausgewählt",
|
"selected": "{number} ausgewählt",
|
||||||
@@ -1739,8 +1714,6 @@
|
|||||||
"info": {
|
"info": {
|
||||||
"built_using": "Gebaut mit",
|
"built_using": "Gebaut mit",
|
||||||
"caption": "Info",
|
"caption": "Info",
|
||||||
"copy_github": "Für GitHub",
|
|
||||||
"copy_raw": "Roher Text",
|
|
||||||
"custom_uis": "Benutzerdefinierte UIs:",
|
"custom_uis": "Benutzerdefinierte UIs:",
|
||||||
"description": "Informationen über deine Home Assistant Installation",
|
"description": "Informationen über deine Home Assistant Installation",
|
||||||
"developed_by": "Entwickelt von einem Haufen toller Leute.",
|
"developed_by": "Entwickelt von einem Haufen toller Leute.",
|
||||||
@@ -1760,9 +1733,6 @@
|
|||||||
"checks": {
|
"checks": {
|
||||||
"cloud": {
|
"cloud": {
|
||||||
"alexa_enabled": "Alexa aktiviert",
|
"alexa_enabled": "Alexa aktiviert",
|
||||||
"can_reach_cert_server": "Zertifikatsserver erreichbar",
|
|
||||||
"can_reach_cloud": "Home Assistant Cloud erreichbar",
|
|
||||||
"can_reach_cloud_auth": "Authentifizierungsserver erreichbar",
|
|
||||||
"google_enabled": "Google aktiviert",
|
"google_enabled": "Google aktiviert",
|
||||||
"logged_in": "Eingeloggt",
|
"logged_in": "Eingeloggt",
|
||||||
"remote_connected": "Remote verbunden",
|
"remote_connected": "Remote verbunden",
|
||||||
@@ -2019,8 +1989,7 @@
|
|||||||
"offline": "OZWDaemon offline",
|
"offline": "OZWDaemon offline",
|
||||||
"ready": "Bereit zum Verbinden",
|
"ready": "Bereit zum Verbinden",
|
||||||
"started": "Verbunden mit MQTT",
|
"started": "Verbunden mit MQTT",
|
||||||
"starting": "Verbinde zu MQTT",
|
"starting": "Verbinde zu MQTT"
|
||||||
"stopped": "OpenZWave gestoppt"
|
|
||||||
},
|
},
|
||||||
"offline": "Offline",
|
"offline": "Offline",
|
||||||
"online": "Online",
|
"online": "Online",
|
||||||
@@ -2234,7 +2203,7 @@
|
|||||||
"min_max": "Min/Max-Entitäten neu laden",
|
"min_max": "Min/Max-Entitäten neu laden",
|
||||||
"mqtt": "Lade manuell konfigurierte MQTT-Entitäten neu",
|
"mqtt": "Lade manuell konfigurierte MQTT-Entitäten neu",
|
||||||
"person": "Personen neu laden",
|
"person": "Personen neu laden",
|
||||||
"reload": "{domain} neu laden",
|
"reload": "Neu laden {domain}",
|
||||||
"rest": "Rest Entitäten und Benachrichtigungsdienste neu laden",
|
"rest": "Rest Entitäten und Benachrichtigungsdienste neu laden",
|
||||||
"rpi_gpio": "Raspberry Pi GPIO Entitäten neu laden",
|
"rpi_gpio": "Raspberry Pi GPIO Entitäten neu laden",
|
||||||
"scene": "Szenen neu laden",
|
"scene": "Szenen neu laden",
|
||||||
@@ -2609,8 +2578,6 @@
|
|||||||
"filter_attributes": "Attribute filtern",
|
"filter_attributes": "Attribute filtern",
|
||||||
"filter_entities": "Entitäten filtern",
|
"filter_entities": "Entitäten filtern",
|
||||||
"filter_states": "Zustände filtern",
|
"filter_states": "Zustände filtern",
|
||||||
"last_changed": "Letzte Änderung",
|
|
||||||
"last_updated": "Letzte Aktualisierung",
|
|
||||||
"more_info": "Mehr Info",
|
"more_info": "Mehr Info",
|
||||||
"no_entities": "Keine Entitäten",
|
"no_entities": "Keine Entitäten",
|
||||||
"set_state": "Status setzen",
|
"set_state": "Status setzen",
|
||||||
@@ -2709,7 +2676,7 @@
|
|||||||
"navigate": "Navigieren",
|
"navigate": "Navigieren",
|
||||||
"none": "Keine Aktion",
|
"none": "Keine Aktion",
|
||||||
"toggle": "Umschalten",
|
"toggle": "Umschalten",
|
||||||
"url": "URL"
|
"url": "Url"
|
||||||
},
|
},
|
||||||
"editor_service_data": "Servicedaten können nur im Code-Editor eingegeben werden",
|
"editor_service_data": "Servicedaten können nur im Code-Editor eingegeben werden",
|
||||||
"navigation_path": "Navigationspfad",
|
"navigation_path": "Navigationspfad",
|
||||||
@@ -2806,7 +2773,7 @@
|
|||||||
"camera_image": "Kamera-Entität",
|
"camera_image": "Kamera-Entität",
|
||||||
"camera_view": "Kameraansicht",
|
"camera_view": "Kameraansicht",
|
||||||
"double_tap_action": "Doppeltipp-Aktion",
|
"double_tap_action": "Doppeltipp-Aktion",
|
||||||
"entities": "Entitäten",
|
"entities": "Ungenutzte Elemente",
|
||||||
"entity": "Entität",
|
"entity": "Entität",
|
||||||
"hold_action": "Halte-Aktion",
|
"hold_action": "Halte-Aktion",
|
||||||
"hours_to_show": "Stunden",
|
"hours_to_show": "Stunden",
|
||||||
@@ -2831,7 +2798,7 @@
|
|||||||
"theme": "Aussehen",
|
"theme": "Aussehen",
|
||||||
"title": "Titel",
|
"title": "Titel",
|
||||||
"unit": "Einheit",
|
"unit": "Einheit",
|
||||||
"url": "URL"
|
"url": "Url"
|
||||||
},
|
},
|
||||||
"glance": {
|
"glance": {
|
||||||
"columns": "Spalten",
|
"columns": "Spalten",
|
||||||
@@ -2862,10 +2829,6 @@
|
|||||||
"description": "Mit der Licht-Karte kannst du die Helligkeit des Lichts ändern.",
|
"description": "Mit der Licht-Karte kannst du die Helligkeit des Lichts ändern.",
|
||||||
"name": "Licht"
|
"name": "Licht"
|
||||||
},
|
},
|
||||||
"logbook": {
|
|
||||||
"description": "Die Logbuchkarte zeigt eine Liste von Ereignissen für Entitäten.",
|
|
||||||
"name": "Logbuch"
|
|
||||||
},
|
|
||||||
"map": {
|
"map": {
|
||||||
"dark_mode": "Dunkler Modus?",
|
"dark_mode": "Dunkler Modus?",
|
||||||
"default_zoom": "Standard-Zoom",
|
"default_zoom": "Standard-Zoom",
|
||||||
@@ -3064,7 +3027,7 @@
|
|||||||
},
|
},
|
||||||
"view": {
|
"view": {
|
||||||
"panel_mode": {
|
"panel_mode": {
|
||||||
"description": "Dadurch wird die erste Karte in voller Breite angezeigt. Andere Karten und Marker in dieser Ansicht werden nicht angezeigt.",
|
"description": "Dadurch wird die erste Karte in voller Breite gerendert. Andere Karten in dieser Ansicht werden nicht gerendert.",
|
||||||
"title": "Panel-Modus?",
|
"title": "Panel-Modus?",
|
||||||
"warning_multiple_cards": "Diese Ansicht enthält mehr als eine Karte, in einer Bedienfeldansicht kann jedoch nur eine Karte angezeigt werden."
|
"warning_multiple_cards": "Diese Ansicht enthält mehr als eine Karte, in einer Bedienfeldansicht kann jedoch nur eine Karte angezeigt werden."
|
||||||
}
|
}
|
||||||
|
@@ -1743,8 +1743,6 @@
|
|||||||
"info": {
|
"info": {
|
||||||
"built_using": "Built using",
|
"built_using": "Built using",
|
||||||
"caption": "Info",
|
"caption": "Info",
|
||||||
"copy_github": "For GitHub",
|
|
||||||
"copy_raw": "Raw Text",
|
|
||||||
"custom_uis": "Custom UIs:",
|
"custom_uis": "Custom UIs:",
|
||||||
"description": "View info about your Home Assistant installation",
|
"description": "View info about your Home Assistant installation",
|
||||||
"developed_by": "Developed by a bunch of awesome people.",
|
"developed_by": "Developed by a bunch of awesome people.",
|
||||||
|
@@ -805,9 +805,7 @@
|
|||||||
"more_info_control": {
|
"more_info_control": {
|
||||||
"controls": "Controles",
|
"controls": "Controles",
|
||||||
"cover": {
|
"cover": {
|
||||||
"close_cover": "Cerrar persiana",
|
|
||||||
"close_tile_cover": "Cerrar la inclinación de la persiana",
|
"close_tile_cover": "Cerrar la inclinación de la persiana",
|
||||||
"open_cover": "Abrir persiana",
|
|
||||||
"open_tilt_cover": "Inclinación de la persiana abierta",
|
"open_tilt_cover": "Inclinación de la persiana abierta",
|
||||||
"stop_cover": "Detener el movimiento de la persiana"
|
"stop_cover": "Detener el movimiento de la persiana"
|
||||||
},
|
},
|
||||||
@@ -1743,8 +1741,6 @@
|
|||||||
"info": {
|
"info": {
|
||||||
"built_using": "Construido usando",
|
"built_using": "Construido usando",
|
||||||
"caption": "Información",
|
"caption": "Información",
|
||||||
"copy_github": "Para GitHub",
|
|
||||||
"copy_raw": "Texto sin procesar",
|
|
||||||
"custom_uis": "IU personalizadas:",
|
"custom_uis": "IU personalizadas:",
|
||||||
"description": "Ver información sobre tu instalación de Home Assistant",
|
"description": "Ver información sobre tu instalación de Home Assistant",
|
||||||
"developed_by": "Desarrollado por un montón de gente impresionante.",
|
"developed_by": "Desarrollado por un montón de gente impresionante.",
|
||||||
|
@@ -805,9 +805,7 @@
|
|||||||
"more_info_control": {
|
"more_info_control": {
|
||||||
"controls": "Juhtelemendid",
|
"controls": "Juhtelemendid",
|
||||||
"cover": {
|
"cover": {
|
||||||
"close_cover": "Sulge kate",
|
|
||||||
"close_tile_cover": "Sulge katte ribid",
|
"close_tile_cover": "Sulge katte ribid",
|
||||||
"open_cover": "Ava kate",
|
|
||||||
"open_tilt_cover": "Ava katte ribid",
|
"open_tilt_cover": "Ava katte ribid",
|
||||||
"stop_cover": "Peata katte liikumine"
|
"stop_cover": "Peata katte liikumine"
|
||||||
},
|
},
|
||||||
@@ -1743,8 +1741,6 @@
|
|||||||
"info": {
|
"info": {
|
||||||
"built_using": "Ehitatud kasutades",
|
"built_using": "Ehitatud kasutades",
|
||||||
"caption": "Info",
|
"caption": "Info",
|
||||||
"copy_github": "GitHubi jaoks",
|
|
||||||
"copy_raw": "Ainult tekst",
|
|
||||||
"custom_uis": "Kohandatud kasutajaliidesed:",
|
"custom_uis": "Kohandatud kasutajaliidesed:",
|
||||||
"description": "Kuva Home Assistant'i info",
|
"description": "Kuva Home Assistant'i info",
|
||||||
"developed_by": "Tehtud paljude lahedate inimeste poolt.",
|
"developed_by": "Tehtud paljude lahedate inimeste poolt.",
|
||||||
|
@@ -1741,7 +1741,6 @@
|
|||||||
"info": {
|
"info": {
|
||||||
"built_using": "Buildelve:",
|
"built_using": "Buildelve:",
|
||||||
"caption": "Infó",
|
"caption": "Infó",
|
||||||
"copy_raw": "Nyers szöveg",
|
|
||||||
"custom_uis": "Egyéni felhasználói felületek:",
|
"custom_uis": "Egyéni felhasználói felületek:",
|
||||||
"description": "Telepítési információ megtekintése a Home Assistant-ról",
|
"description": "Telepítési információ megtekintése a Home Assistant-ról",
|
||||||
"developed_by": "Egy csomó fantasztikus ember által kifejlesztve.",
|
"developed_by": "Egy csomó fantasztikus ember által kifejlesztve.",
|
||||||
|
@@ -712,7 +712,7 @@
|
|||||||
},
|
},
|
||||||
"dialogs": {
|
"dialogs": {
|
||||||
"config_entry_system_options": {
|
"config_entry_system_options": {
|
||||||
"enable_new_entities_description": "Se disabilitato, le entità appena rilevate per {integration} non verranno automaticamente aggiunte a Home Assistant.",
|
"enable_new_entities_description": "Se disabilitato, le entità appena individuate per {integration} non verranno automaticamente aggiunte a Home Assistant.",
|
||||||
"enable_new_entities_label": "Abilita nuove entità aggiunte.",
|
"enable_new_entities_label": "Abilita nuove entità aggiunte.",
|
||||||
"title": "Opzioni di sistema per {integration}",
|
"title": "Opzioni di sistema per {integration}",
|
||||||
"update": "Aggiornamento"
|
"update": "Aggiornamento"
|
||||||
@@ -805,9 +805,7 @@
|
|||||||
"more_info_control": {
|
"more_info_control": {
|
||||||
"controls": "Controlli",
|
"controls": "Controlli",
|
||||||
"cover": {
|
"cover": {
|
||||||
"close_cover": "Chiudere gli scuri",
|
|
||||||
"close_tile_cover": "Chiudere l'inclinazione della copertura",
|
"close_tile_cover": "Chiudere l'inclinazione della copertura",
|
||||||
"open_cover": "Aprire gli scuri",
|
|
||||||
"open_tilt_cover": "Aprire l'inclinazione della copertura",
|
"open_tilt_cover": "Aprire l'inclinazione della copertura",
|
||||||
"stop_cover": "Fermare il movimento della copertura"
|
"stop_cover": "Fermare il movimento della copertura"
|
||||||
},
|
},
|
||||||
@@ -874,28 +872,6 @@
|
|||||||
},
|
},
|
||||||
"quick-bar": {
|
"quick-bar": {
|
||||||
"commands": {
|
"commands": {
|
||||||
"navigation": {
|
|
||||||
"areas": "Aree",
|
|
||||||
"automation": "Automazioni",
|
|
||||||
"core": "Generale",
|
|
||||||
"customize": "Personalizzazioni",
|
|
||||||
"devices": "Dispositivi",
|
|
||||||
"entities": "Entità",
|
|
||||||
"helpers": "Aiutanti",
|
|
||||||
"info": "Informazioni",
|
|
||||||
"integrations": "Integrazioni",
|
|
||||||
"logs": "Registri",
|
|
||||||
"lovelace": "Plance di Lovelace",
|
|
||||||
"navigate_to": "Navigare verso {panel}",
|
|
||||||
"navigate_to_config": "Navigare fino a {panel} configurazione",
|
|
||||||
"person": "Persone",
|
|
||||||
"scene": "Scene",
|
|
||||||
"script": "Script",
|
|
||||||
"server_control": "Controlli del Server",
|
|
||||||
"tags": "Tag",
|
|
||||||
"users": "Utenti",
|
|
||||||
"zone": "Zone"
|
|
||||||
},
|
|
||||||
"reload": {
|
"reload": {
|
||||||
"automation": "Ricarica le Automazioni",
|
"automation": "Ricarica le Automazioni",
|
||||||
"command_line": "Ricarica le entità di riga di comando",
|
"command_line": "Ricarica le entità di riga di comando",
|
||||||
@@ -1743,8 +1719,6 @@
|
|||||||
"info": {
|
"info": {
|
||||||
"built_using": "Costruito usando",
|
"built_using": "Costruito usando",
|
||||||
"caption": "Informazioni",
|
"caption": "Informazioni",
|
||||||
"copy_github": "Per GitHub",
|
|
||||||
"copy_raw": "Testo non elaborato",
|
|
||||||
"custom_uis": "Interfacce Utente personalizzate:",
|
"custom_uis": "Interfacce Utente personalizzate:",
|
||||||
"description": "Visualizza le informazioni sull'installazione di Home Assistant",
|
"description": "Visualizza le informazioni sull'installazione di Home Assistant",
|
||||||
"developed_by": "Sviluppato da un gruppo di persone fantastiche.",
|
"developed_by": "Sviluppato da un gruppo di persone fantastiche.",
|
||||||
@@ -1854,13 +1828,13 @@
|
|||||||
"configured": "Configurato",
|
"configured": "Configurato",
|
||||||
"description": "Gestisci le integrazioni",
|
"description": "Gestisci le integrazioni",
|
||||||
"details": "Dettagli dell'integrazione",
|
"details": "Dettagli dell'integrazione",
|
||||||
"discovered": "Rilevato",
|
"discovered": "Scoperto",
|
||||||
"home_assistant_website": "Sito Web di Home Assistant",
|
"home_assistant_website": "Sito Web di Home Assistant",
|
||||||
"ignore": {
|
"ignore": {
|
||||||
"confirm_delete_ignore": "Questo farà apparire di nuovo l'integrazione tra quelle rilevate quando verrà individuata. Questo potrebbe richiedere un riavvio o impiegare un po' di tempo.",
|
"confirm_delete_ignore": "Questo farà apparire di nuovo l'integrazione nelle vostre integrazioni scoperte quando verrà scoperta. Questo potrebbe richiedere un riavvio o richiedere un po' di tempo.",
|
||||||
"confirm_delete_ignore_title": "Smettere di ignorare {name}?",
|
"confirm_delete_ignore_title": "Smettere di ignorare {name}?",
|
||||||
"confirm_ignore": "Sei sicuro di non voler configurare questa integrazione? È possibile annullare questa operazione facendo clic su 'Mostra integrazioni ignorate' nel menu di overflow in alto a destra.",
|
"confirm_ignore": "Sei sicuro di non voler configurare questa integrazione? È possibile annullare questa operazione facendo clic su 'Mostra integrazioni ignorate' nel menu di overflow in alto a destra.",
|
||||||
"confirm_ignore_title": "Ignorare a rilevazione di {name}?",
|
"confirm_ignore_title": "Ignorare l'individuazione di {name}?",
|
||||||
"hide_ignored": "Nascondi integrazioni ignorate",
|
"hide_ignored": "Nascondi integrazioni ignorate",
|
||||||
"ignore": "Ignora",
|
"ignore": "Ignora",
|
||||||
"ignored": "Ignorato",
|
"ignored": "Ignorato",
|
||||||
@@ -1883,7 +1857,7 @@
|
|||||||
},
|
},
|
||||||
"introduction": "In questa vista è possibile configurare i componenti e l'Home Assistant. Non tutto è ancora configurabile dall'interfaccia utente, ma ci stiamo lavorando.",
|
"introduction": "In questa vista è possibile configurare i componenti e l'Home Assistant. Non tutto è ancora configurabile dall'interfaccia utente, ma ci stiamo lavorando.",
|
||||||
"logs": {
|
"logs": {
|
||||||
"caption": "Registri",
|
"caption": "Logs",
|
||||||
"clear": "Pulisci",
|
"clear": "Pulisci",
|
||||||
"description": "Vedi i logs di Home Assistant",
|
"description": "Vedi i logs di Home Assistant",
|
||||||
"details": "Dettagli registro ({level})",
|
"details": "Dettagli registro ({level})",
|
||||||
@@ -2287,7 +2261,7 @@
|
|||||||
"tags": {
|
"tags": {
|
||||||
"add_tag": "Aggiungi Etichetta",
|
"add_tag": "Aggiungi Etichetta",
|
||||||
"automation_title": "L'etichetta {name} è scansionata",
|
"automation_title": "L'etichetta {name} è scansionata",
|
||||||
"caption": "Tag",
|
"caption": "Etichette",
|
||||||
"confirm_remove": "Sei sicuro di voler rimuovere il tag {tag}?",
|
"confirm_remove": "Sei sicuro di voler rimuovere il tag {tag}?",
|
||||||
"confirm_remove_title": "Rimuovere il tag?",
|
"confirm_remove_title": "Rimuovere il tag?",
|
||||||
"create_automation": "Creare un'automazione con l'etichetta",
|
"create_automation": "Creare un'automazione con l'etichetta",
|
||||||
@@ -2349,7 +2323,6 @@
|
|||||||
"update_user": "Aggiorna"
|
"update_user": "Aggiorna"
|
||||||
},
|
},
|
||||||
"picker": {
|
"picker": {
|
||||||
"add_user": "Aggiungi utente",
|
|
||||||
"headers": {
|
"headers": {
|
||||||
"group": "Gruppo",
|
"group": "Gruppo",
|
||||||
"name": "Nome",
|
"name": "Nome",
|
||||||
@@ -2360,7 +2333,7 @@
|
|||||||
},
|
},
|
||||||
"zha": {
|
"zha": {
|
||||||
"add_device_page": {
|
"add_device_page": {
|
||||||
"discovered_text": "I dispositivi verranno visualizzati qui una volta rilevati.",
|
"discovered_text": "I dispositivi verranno visualizzati qui una volta scoperti.",
|
||||||
"discovery_text": "I dispositivi rilevati verranno visualizzati qui. Seguire le istruzioni per il / i dispositivo / i e posizionare il / i dispositivo / i in modalità accoppiamento.",
|
"discovery_text": "I dispositivi rilevati verranno visualizzati qui. Seguire le istruzioni per il / i dispositivo / i e posizionare il / i dispositivo / i in modalità accoppiamento.",
|
||||||
"header": "Zigbee Home Automation - Aggiungi dispositivi",
|
"header": "Zigbee Home Automation - Aggiungi dispositivi",
|
||||||
"no_devices_found": "Nessun dispositivo trovato, assicurati che siano in modalità di associazione e tienili attivi mentre la scansione è in esecuzione.",
|
"no_devices_found": "Nessun dispositivo trovato, assicurati che siano in modalità di associazione e tienili attivi mentre la scansione è in esecuzione.",
|
||||||
@@ -2630,8 +2603,6 @@
|
|||||||
"filter_attributes": "Filtra attributi",
|
"filter_attributes": "Filtra attributi",
|
||||||
"filter_entities": "Filtra entità",
|
"filter_entities": "Filtra entità",
|
||||||
"filter_states": "Filtra stati",
|
"filter_states": "Filtra stati",
|
||||||
"last_changed": "Ultima modifica",
|
|
||||||
"last_updated": "Ultimo aggiornamento",
|
|
||||||
"more_info": "Ulteriori informazioni",
|
"more_info": "Ulteriori informazioni",
|
||||||
"no_entities": "Nessuna entità",
|
"no_entities": "Nessuna entità",
|
||||||
"set_state": "Imposta Stato",
|
"set_state": "Imposta Stato",
|
||||||
@@ -2883,10 +2854,6 @@
|
|||||||
"description": "La scheda Luce consente di modificare la luminosità della luce.",
|
"description": "La scheda Luce consente di modificare la luminosità della luce.",
|
||||||
"name": "Luce"
|
"name": "Luce"
|
||||||
},
|
},
|
||||||
"logbook": {
|
|
||||||
"description": "La scheda del Diario di bordo mostra un elenco di eventi per le entità.",
|
|
||||||
"name": "Diario di bordo"
|
|
||||||
},
|
|
||||||
"map": {
|
"map": {
|
||||||
"dark_mode": "Modalità scura?",
|
"dark_mode": "Modalità scura?",
|
||||||
"default_zoom": "Ingrandimento predefinito",
|
"default_zoom": "Ingrandimento predefinito",
|
||||||
|
@@ -497,8 +497,6 @@
|
|||||||
"continue": "続行",
|
"continue": "続行",
|
||||||
"copied": "コピー",
|
"copied": "コピー",
|
||||||
"delete": "削除",
|
"delete": "削除",
|
||||||
"disable": "無効",
|
|
||||||
"enable": "有効",
|
|
||||||
"error_required": "必須",
|
"error_required": "必須",
|
||||||
"leave": "離れる",
|
"leave": "離れる",
|
||||||
"loading": "読込中",
|
"loading": "読込中",
|
||||||
@@ -509,10 +507,7 @@
|
|||||||
"overflow_menu": "オーバーフローメニュー",
|
"overflow_menu": "オーバーフローメニュー",
|
||||||
"previous": "前",
|
"previous": "前",
|
||||||
"refresh": "更新",
|
"refresh": "更新",
|
||||||
"remove": "削除",
|
|
||||||
"rename": "リネーム",
|
|
||||||
"save": "保存",
|
"save": "保存",
|
||||||
"skip": "スキップ",
|
|
||||||
"stay": "滞在",
|
"stay": "滞在",
|
||||||
"successfully_deleted": "正常に削除されました",
|
"successfully_deleted": "正常に削除されました",
|
||||||
"successfully_saved": "正常に保存されました",
|
"successfully_saved": "正常に保存されました",
|
||||||
@@ -791,9 +786,7 @@
|
|||||||
"more_info_control": {
|
"more_info_control": {
|
||||||
"controls": "コントロール",
|
"controls": "コントロール",
|
||||||
"cover": {
|
"cover": {
|
||||||
"close_cover": "カバーを閉じる",
|
|
||||||
"close_tile_cover": "カバーの傾きを閉じる",
|
"close_tile_cover": "カバーの傾きを閉じる",
|
||||||
"open_cover": "カバーを開く",
|
|
||||||
"open_tilt_cover": "オープンカバーの傾き",
|
"open_tilt_cover": "オープンカバーの傾き",
|
||||||
"stop_cover": "カバーの動きを止めます"
|
"stop_cover": "カバーの動きを止めます"
|
||||||
},
|
},
|
||||||
@@ -860,28 +853,6 @@
|
|||||||
},
|
},
|
||||||
"quick-bar": {
|
"quick-bar": {
|
||||||
"commands": {
|
"commands": {
|
||||||
"navigation": {
|
|
||||||
"areas": "エリア",
|
|
||||||
"automation": "オートメーション",
|
|
||||||
"core": "一般",
|
|
||||||
"customize": "カスタマイズ",
|
|
||||||
"devices": "デバイス",
|
|
||||||
"entities": "エンティティ",
|
|
||||||
"helpers": "ヘルパー",
|
|
||||||
"info": "詳細",
|
|
||||||
"integrations": "インテグレーション",
|
|
||||||
"logs": "ログ",
|
|
||||||
"lovelace": "Lovelaceダッシュボード",
|
|
||||||
"navigate_to": "{panel}に移動します",
|
|
||||||
"navigate_to_config": "{panel}構成に移動します",
|
|
||||||
"person": "人々",
|
|
||||||
"scene": "シーン",
|
|
||||||
"script": "スクリプト",
|
|
||||||
"server_control": "サーバーコントロール",
|
|
||||||
"tags": "タグ",
|
|
||||||
"users": "ユーザー",
|
|
||||||
"zone": "場所"
|
|
||||||
},
|
|
||||||
"reload": {
|
"reload": {
|
||||||
"automation": "オートメーションの再読込",
|
"automation": "オートメーションの再読込",
|
||||||
"command_line": "コマンドラインエンティティをリロードする",
|
"command_line": "コマンドラインエンティティをリロードする",
|
||||||
@@ -1336,22 +1307,6 @@
|
|||||||
"only_editable": "automations.yaml で定義されたオートメーションのみが編集可能です。",
|
"only_editable": "automations.yaml で定義されたオートメーションのみが編集可能です。",
|
||||||
"pick_automation": "編集するオートメーションを選択",
|
"pick_automation": "編集するオートメーションを選択",
|
||||||
"show_info_automation": "オートメーションに関する情報を表示"
|
"show_info_automation": "オートメーションに関する情報を表示"
|
||||||
},
|
|
||||||
"thingtalk": {
|
|
||||||
"create": "オートメーションを作成",
|
|
||||||
"link_devices": {
|
|
||||||
"ambiguous_entities": "1 つ以上のデバイスに複数の一致するエンティティがあります。",
|
|
||||||
"header": "すごい!今、我々はいくつかのデバイスをリンクする必要があります",
|
|
||||||
"unknown_placeholder": "不明なプレースホルダ"
|
|
||||||
},
|
|
||||||
"task_selection": {
|
|
||||||
"error_empty": "コマンドを入力するか、スキップをタップします。",
|
|
||||||
"error_unsupported": "私たちは自動化を作成できませんでした(まだ?",
|
|
||||||
"for_example": "例えば:",
|
|
||||||
"header": "新しいオートメーションを作成する",
|
|
||||||
"introduction": "このオートメーションの実行内容の下に入力すると、ホーム アシスタントのオートメーションに変換されます。",
|
|
||||||
"language_note": "注: 現在は英語のみがサポートされています。"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cloud": {
|
"cloud": {
|
||||||
@@ -2333,7 +2288,6 @@
|
|||||||
"update_user": "更新"
|
"update_user": "更新"
|
||||||
},
|
},
|
||||||
"picker": {
|
"picker": {
|
||||||
"add_user": "ユーザーを追加する",
|
|
||||||
"headers": {
|
"headers": {
|
||||||
"group": "グループ",
|
"group": "グループ",
|
||||||
"name": "名前",
|
"name": "名前",
|
||||||
@@ -2614,8 +2568,6 @@
|
|||||||
"filter_attributes": "フィルター属性",
|
"filter_attributes": "フィルター属性",
|
||||||
"filter_entities": "エンティティのフィルター処理",
|
"filter_entities": "エンティティのフィルター処理",
|
||||||
"filter_states": "状態のフィルター処理",
|
"filter_states": "状態のフィルター処理",
|
||||||
"last_changed": "最終変更",
|
|
||||||
"last_updated": "最終更新",
|
|
||||||
"more_info": "もっと見る",
|
"more_info": "もっと見る",
|
||||||
"no_entities": "エンティティなし",
|
"no_entities": "エンティティなし",
|
||||||
"set_state": "状態を設定",
|
"set_state": "状態を設定",
|
||||||
@@ -2843,10 +2795,6 @@
|
|||||||
"description": "Glance カードは、複数のセンサーをコンパクトな概要でグループ化するのに便利です。",
|
"description": "Glance カードは、複数のセンサーをコンパクトな概要でグループ化するのに便利です。",
|
||||||
"name": "一覧"
|
"name": "一覧"
|
||||||
},
|
},
|
||||||
"grid": {
|
|
||||||
"description": "グリッド カードを使用すると、グリッドに複数のカードを表示できます。",
|
|
||||||
"name": "グリッド"
|
|
||||||
},
|
|
||||||
"history-graph": {
|
"history-graph": {
|
||||||
"description": "履歴グラフ カードを使用すると、一覧表示された各エンティティのグラフを表示できます。",
|
"description": "履歴グラフ カードを使用すると、一覧表示された各エンティティのグラフを表示できます。",
|
||||||
"name": "履歴グラフ"
|
"name": "履歴グラフ"
|
||||||
@@ -2867,10 +2815,6 @@
|
|||||||
"description": "ライトカードを使用すると、ライトの明るさを変更できます。",
|
"description": "ライトカードを使用すると、ライトの明るさを変更できます。",
|
||||||
"name": "照明"
|
"name": "照明"
|
||||||
},
|
},
|
||||||
"logbook": {
|
|
||||||
"description": "ログブックカードには、エンティティのイベントの一覧が表示されます。",
|
|
||||||
"name": "ログブック"
|
|
||||||
},
|
|
||||||
"map": {
|
"map": {
|
||||||
"dark_mode": "ダークモード?",
|
"dark_mode": "ダークモード?",
|
||||||
"default_zoom": "デフォルトのズーム",
|
"default_zoom": "デフォルトのズーム",
|
||||||
@@ -3058,8 +3002,7 @@
|
|||||||
"sub-element-editor": {
|
"sub-element-editor": {
|
||||||
"types": {
|
"types": {
|
||||||
"footer": "フッタ エディタ",
|
"footer": "フッタ エディタ",
|
||||||
"header": "ヘッダーエディター",
|
"header": "ヘッダーエディター"
|
||||||
"row": "エンティティエディタ"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"suggest_card": {
|
"suggest_card": {
|
||||||
@@ -3328,7 +3271,6 @@
|
|||||||
"header": "ダッシュボード"
|
"header": "ダッシュボード"
|
||||||
},
|
},
|
||||||
"enable_shortcuts": {
|
"enable_shortcuts": {
|
||||||
"description": "UI でさまざまな操作を実行するためのキーボード ショートカットを有効または無効にします。",
|
|
||||||
"header": "キーボード ショートカット"
|
"header": "キーボード ショートカット"
|
||||||
},
|
},
|
||||||
"force_narrow": {
|
"force_narrow": {
|
||||||
@@ -3420,9 +3362,6 @@
|
|||||||
"header": "バイブレーション機能"
|
"header": "バイブレーション機能"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"shopping_list": {
|
|
||||||
"start_conversation": "会話を開始する"
|
|
||||||
},
|
|
||||||
"shopping-list": {
|
"shopping-list": {
|
||||||
"add_item": "アイテムを追加",
|
"add_item": "アイテムを追加",
|
||||||
"clear_completed": "完了したアイテムを削除",
|
"clear_completed": "完了したアイテムを削除",
|
||||||
|
@@ -805,9 +805,7 @@
|
|||||||
"more_info_control": {
|
"more_info_control": {
|
||||||
"controls": "Kontroller",
|
"controls": "Kontroller",
|
||||||
"cover": {
|
"cover": {
|
||||||
"close_cover": "Lukk dekselet",
|
|
||||||
"close_tile_cover": "Lukk dekkevinkel",
|
"close_tile_cover": "Lukk dekkevinkel",
|
||||||
"open_cover": "Åpne dekselet",
|
|
||||||
"open_tilt_cover": "Åpne dekkevinkel",
|
"open_tilt_cover": "Åpne dekkevinkel",
|
||||||
"stop_cover": "Stopp dekke fra å bevege seg"
|
"stop_cover": "Stopp dekke fra å bevege seg"
|
||||||
},
|
},
|
||||||
|
@@ -588,7 +588,7 @@
|
|||||||
"cleared_device_class": "niets gedetecteerd (geen {device_class} gedetecteerd)",
|
"cleared_device_class": "niets gedetecteerd (geen {device_class} gedetecteerd)",
|
||||||
"detected_device_class": "gedetecteerd {device_class}",
|
"detected_device_class": "gedetecteerd {device_class}",
|
||||||
"rose": "opkomst",
|
"rose": "opkomst",
|
||||||
"set": "ondergang",
|
"set": "stel in",
|
||||||
"turned_off": "is uitgeschakeld",
|
"turned_off": "is uitgeschakeld",
|
||||||
"turned_on": "is ingeschakeld",
|
"turned_on": "is ingeschakeld",
|
||||||
"was_at_home": "was thuis",
|
"was_at_home": "was thuis",
|
||||||
@@ -804,13 +804,6 @@
|
|||||||
},
|
},
|
||||||
"more_info_control": {
|
"more_info_control": {
|
||||||
"controls": "Besturing",
|
"controls": "Besturing",
|
||||||
"cover": {
|
|
||||||
"close_cover": "Sluit zonnewering",
|
|
||||||
"close_tile_cover": "Sluit klep",
|
|
||||||
"open_cover": "Open zonnewering",
|
|
||||||
"open_tilt_cover": "Open klep",
|
|
||||||
"stop_cover": "Stop beweging van zonnewering"
|
|
||||||
},
|
|
||||||
"details": "Details",
|
"details": "Details",
|
||||||
"dismiss": "Dialoogvenster sluiten",
|
"dismiss": "Dialoogvenster sluiten",
|
||||||
"edit": "Entiteit bewerken",
|
"edit": "Entiteit bewerken",
|
||||||
@@ -991,7 +984,7 @@
|
|||||||
"notification_drawer": {
|
"notification_drawer": {
|
||||||
"click_to_configure": "Klik op de knop om {entity} te configureren",
|
"click_to_configure": "Klik op de knop om {entity} te configureren",
|
||||||
"close": "Sluiten",
|
"close": "Sluiten",
|
||||||
"dismiss_all": "Alles verbergen",
|
"dismiss_all": "Alles afkeuren",
|
||||||
"empty": "Geen notificaties",
|
"empty": "Geen notificaties",
|
||||||
"title": "Notificaties"
|
"title": "Notificaties"
|
||||||
},
|
},
|
||||||
@@ -1352,7 +1345,7 @@
|
|||||||
"show_info_automation": "Informatie weergeven over automatisering"
|
"show_info_automation": "Informatie weergeven over automatisering"
|
||||||
},
|
},
|
||||||
"thingtalk": {
|
"thingtalk": {
|
||||||
"create": "Automatisering maken",
|
"create": "Creëer automatisering",
|
||||||
"link_devices": {
|
"link_devices": {
|
||||||
"ambiguous_entities": "Een of meer apparaten hebben meer dan één overeenkomende entiteit. Kies het apparaat dat u wilt gebruiken.",
|
"ambiguous_entities": "Een of meer apparaten hebben meer dan één overeenkomende entiteit. Kies het apparaat dat u wilt gebruiken.",
|
||||||
"header": "Geweldig! Nu moeten we enkele apparaten koppelen",
|
"header": "Geweldig! Nu moeten we enkele apparaten koppelen",
|
||||||
@@ -1362,7 +1355,7 @@
|
|||||||
"error_empty": "Voer een commando in of druk op overslaan.",
|
"error_empty": "Voer een commando in of druk op overslaan.",
|
||||||
"error_unsupported": "Daar konden we (nog) geen automatisering voor maken.",
|
"error_unsupported": "Daar konden we (nog) geen automatisering voor maken.",
|
||||||
"for_example": "Bijvoorbeeld:",
|
"for_example": "Bijvoorbeeld:",
|
||||||
"header": "Een nieuwe automatisering maken",
|
"header": "Creëer een nieuwe automatisering",
|
||||||
"introduction": "Typ hieronder wat deze automatisering zou moeten doen, en we zullen proberen om het om te zetten in een Home Assistant automatisering.",
|
"introduction": "Typ hieronder wat deze automatisering zou moeten doen, en we zullen proberen om het om te zetten in een Home Assistant automatisering.",
|
||||||
"language_note": "Opmerking: voorlopig wordt alleen Engels ondersteund."
|
"language_note": "Opmerking: voorlopig wordt alleen Engels ondersteund."
|
||||||
}
|
}
|
||||||
@@ -1762,12 +1755,11 @@
|
|||||||
"checks": {
|
"checks": {
|
||||||
"cloud": {
|
"cloud": {
|
||||||
"alexa_enabled": "Alexa ingeschakeld",
|
"alexa_enabled": "Alexa ingeschakeld",
|
||||||
"can_reach_cert_server": "Bereik de certificaat server",
|
"can_reach_cert_server": "Bereik de certificaatserver",
|
||||||
"can_reach_cloud": "Bereik Home Assistant Cloud",
|
"can_reach_cloud": "Bereik Home Assistant Cloud",
|
||||||
"can_reach_cloud_auth": "Bereik authenticatieserver",
|
"can_reach_cloud_auth": "Bereik authenticatieserver",
|
||||||
"google_enabled": "Google ingeschakeld",
|
"google_enabled": "Google ingeschakeld",
|
||||||
"logged_in": "Ingelogd",
|
"logged_in": "Ingelogd",
|
||||||
"relayer_connected": "Relayer verbonden",
|
|
||||||
"remote_connected": "Op afstand verbonden",
|
"remote_connected": "Op afstand verbonden",
|
||||||
"remote_enabled": "Op afstand ingeschakeld",
|
"remote_enabled": "Op afstand ingeschakeld",
|
||||||
"subscription_expiration": "Abonnement vervalt"
|
"subscription_expiration": "Abonnement vervalt"
|
||||||
@@ -2347,7 +2339,7 @@
|
|||||||
"update_user": "Bijwerken"
|
"update_user": "Bijwerken"
|
||||||
},
|
},
|
||||||
"picker": {
|
"picker": {
|
||||||
"add_user": "Gebruiker toevoegen",
|
"add_user": "Voeg gebruiker toe",
|
||||||
"headers": {
|
"headers": {
|
||||||
"group": "Groep",
|
"group": "Groep",
|
||||||
"name": "Naam",
|
"name": "Naam",
|
||||||
@@ -2968,7 +2960,7 @@
|
|||||||
},
|
},
|
||||||
"edit_card": {
|
"edit_card": {
|
||||||
"add": "Kaart toevoegen",
|
"add": "Kaart toevoegen",
|
||||||
"clear": "Leegmaken",
|
"clear": "Wis",
|
||||||
"confirm_cancel": "Weet u zeker dat u wilt afbreken?",
|
"confirm_cancel": "Weet u zeker dat u wilt afbreken?",
|
||||||
"delete": "Verwijder kaart",
|
"delete": "Verwijder kaart",
|
||||||
"duplicate": "Dupliceer kaart",
|
"duplicate": "Dupliceer kaart",
|
||||||
@@ -3012,7 +3004,7 @@
|
|||||||
"header-footer": {
|
"header-footer": {
|
||||||
"choose_header_footer": "Kies een {type}",
|
"choose_header_footer": "Kies een {type}",
|
||||||
"footer": "Voettekst",
|
"footer": "Voettekst",
|
||||||
"header": "Koptekst",
|
"header": "Header",
|
||||||
"types": {
|
"types": {
|
||||||
"buttons": {
|
"buttons": {
|
||||||
"name": "Knoppen"
|
"name": "Knoppen"
|
||||||
@@ -3072,7 +3064,7 @@
|
|||||||
"sub-element-editor": {
|
"sub-element-editor": {
|
||||||
"types": {
|
"types": {
|
||||||
"footer": "Voettekst Editor",
|
"footer": "Voettekst Editor",
|
||||||
"header": "Koptekst Editor",
|
"header": "Header Editor",
|
||||||
"row": "Entiteitsrij Editor"
|
"row": "Entiteitsrij Editor"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -3390,7 +3382,7 @@
|
|||||||
},
|
},
|
||||||
"push_notifications": {
|
"push_notifications": {
|
||||||
"add_device_prompt": {
|
"add_device_prompt": {
|
||||||
"input_label": "Naam van het apparaat",
|
"input_label": "Apparaatnaam",
|
||||||
"title": "Hoe moet dit apparaat genoemd worden?"
|
"title": "Hoe moet dit apparaat genoemd worden?"
|
||||||
},
|
},
|
||||||
"description": "Verstuur meldingen naar dit apparaat.",
|
"description": "Verstuur meldingen naar dit apparaat.",
|
||||||
|
@@ -805,9 +805,7 @@
|
|||||||
"more_info_control": {
|
"more_info_control": {
|
||||||
"controls": "Sterowanie",
|
"controls": "Sterowanie",
|
||||||
"cover": {
|
"cover": {
|
||||||
"close_cover": "Zamknij roletę",
|
|
||||||
"close_tile_cover": "Przechylenie zamkniętej rolety",
|
"close_tile_cover": "Przechylenie zamkniętej rolety",
|
||||||
"open_cover": "Otwórz roletę",
|
|
||||||
"open_tilt_cover": "Przechylenie otwartej rolety",
|
"open_tilt_cover": "Przechylenie otwartej rolety",
|
||||||
"stop_cover": "Wstrzymanie rolety"
|
"stop_cover": "Wstrzymanie rolety"
|
||||||
},
|
},
|
||||||
@@ -1774,7 +1772,7 @@
|
|||||||
},
|
},
|
||||||
"homeassistant": {
|
"homeassistant": {
|
||||||
"arch": "Architektura procesora",
|
"arch": "Architektura procesora",
|
||||||
"dev": "Wersja deweloperska",
|
"dev": "Wersja rozwojowa",
|
||||||
"docker": "Docker",
|
"docker": "Docker",
|
||||||
"hassio": "HassOS",
|
"hassio": "HassOS",
|
||||||
"installation_type": "Typ instalacji",
|
"installation_type": "Typ instalacji",
|
||||||
|
@@ -377,7 +377,7 @@
|
|||||||
"low": "низкий",
|
"low": "низкий",
|
||||||
"on_off": "Вкл / Выкл",
|
"on_off": "Вкл / Выкл",
|
||||||
"operation": "Режим работы",
|
"operation": "Режим работы",
|
||||||
"preset_mode": "Пресет",
|
"preset_mode": "Предустановка",
|
||||||
"swing_mode": "Режим качания воздушных шторок",
|
"swing_mode": "Режим качания воздушных шторок",
|
||||||
"target_humidity": "Заданная влажность",
|
"target_humidity": "Заданная влажность",
|
||||||
"target_temperature": "Заданная температура",
|
"target_temperature": "Заданная температура",
|
||||||
@@ -1736,8 +1736,6 @@
|
|||||||
"info": {
|
"info": {
|
||||||
"built_using": "Создано с использованием",
|
"built_using": "Создано с использованием",
|
||||||
"caption": "О системе",
|
"caption": "О системе",
|
||||||
"copy_github": "Для GitHub",
|
|
||||||
"copy_raw": "Необработанный текст",
|
|
||||||
"custom_uis": "Кастомные интерфейсы:",
|
"custom_uis": "Кастомные интерфейсы:",
|
||||||
"description": "Информация о системе",
|
"description": "Информация о системе",
|
||||||
"developed_by": "Разработано множеством замечательных людей.",
|
"developed_by": "Разработано множеством замечательных людей.",
|
||||||
|
@@ -804,10 +804,6 @@
|
|||||||
},
|
},
|
||||||
"more_info_control": {
|
"more_info_control": {
|
||||||
"controls": "控制项",
|
"controls": "控制项",
|
||||||
"cover": {
|
|
||||||
"close_cover": "关闭卷帘",
|
|
||||||
"open_cover": "打开卷帘"
|
|
||||||
},
|
|
||||||
"details": "详情",
|
"details": "详情",
|
||||||
"dismiss": "关闭对话框",
|
"dismiss": "关闭对话框",
|
||||||
"edit": "编辑实体",
|
"edit": "编辑实体",
|
||||||
@@ -871,28 +867,6 @@
|
|||||||
},
|
},
|
||||||
"quick-bar": {
|
"quick-bar": {
|
||||||
"commands": {
|
"commands": {
|
||||||
"navigation": {
|
|
||||||
"areas": "区域注册表",
|
|
||||||
"automation": "自动化",
|
|
||||||
"core": "通用",
|
|
||||||
"customize": "自定义",
|
|
||||||
"devices": "设备",
|
|
||||||
"entities": "实体注册表",
|
|
||||||
"helpers": "辅助元素",
|
|
||||||
"info": "信息",
|
|
||||||
"integrations": "集成",
|
|
||||||
"logs": "日志",
|
|
||||||
"lovelace": "Lovelace 仪表盘",
|
|
||||||
"navigate_to": "导航到{panel}",
|
|
||||||
"navigate_to_config": "导航到{panel}配置",
|
|
||||||
"person": "人员",
|
|
||||||
"scene": "场景",
|
|
||||||
"script": "脚本",
|
|
||||||
"server_control": "服务控制",
|
|
||||||
"tags": "标签",
|
|
||||||
"users": "用户",
|
|
||||||
"zone": "地点"
|
|
||||||
},
|
|
||||||
"reload": {
|
"reload": {
|
||||||
"automation": "重载自动化",
|
"automation": "重载自动化",
|
||||||
"command_line": "重载命令行实体",
|
"command_line": "重载命令行实体",
|
||||||
@@ -910,7 +884,7 @@
|
|||||||
"input_select": "重载多项选择器",
|
"input_select": "重载多项选择器",
|
||||||
"input_text": "重载文字输入",
|
"input_text": "重载文字输入",
|
||||||
"min_max": "重载最小值/最大值实体",
|
"min_max": "重载最小值/最大值实体",
|
||||||
"mqtt": "重载手动配置的 MQTT 实体",
|
"mqtt": "重载手动配置的 mqtt 实体",
|
||||||
"person": "重载人员",
|
"person": "重载人员",
|
||||||
"ping": "重载 ping 二元传感器实体",
|
"ping": "重载 ping 二元传感器实体",
|
||||||
"reload": "重载{domain}",
|
"reload": "重载{domain}",
|
||||||
@@ -918,7 +892,7 @@
|
|||||||
"rpi_gpio": "重载树莓派 GPIO 实体",
|
"rpi_gpio": "重载树莓派 GPIO 实体",
|
||||||
"scene": "重载场景",
|
"scene": "重载场景",
|
||||||
"script": "重载脚本",
|
"script": "重载脚本",
|
||||||
"smtp": "重载 SMTP 通知服务",
|
"smtp": "重载 smtp 通知服务",
|
||||||
"statistics": "重载 statistics 实体",
|
"statistics": "重载 statistics 实体",
|
||||||
"telegram": "重载 telegram 通知服务",
|
"telegram": "重载 telegram 通知服务",
|
||||||
"template": "重载模板实体",
|
"template": "重载模板实体",
|
||||||
@@ -1740,8 +1714,6 @@
|
|||||||
"info": {
|
"info": {
|
||||||
"built_using": "建于",
|
"built_using": "建于",
|
||||||
"caption": "信息",
|
"caption": "信息",
|
||||||
"copy_github": "用于 GitHub",
|
|
||||||
"copy_raw": "原始文本",
|
|
||||||
"custom_uis": "自定义用户界面:",
|
"custom_uis": "自定义用户界面:",
|
||||||
"description": "查看关于此 Home Assistant 安装的信息",
|
"description": "查看关于此 Home Assistant 安装的信息",
|
||||||
"developed_by": "由一帮很 Awesome~~~ 的人开发。",
|
"developed_by": "由一帮很 Awesome~~~ 的人开发。",
|
||||||
@@ -2210,8 +2182,6 @@
|
|||||||
},
|
},
|
||||||
"picker": {
|
"picker": {
|
||||||
"add_script": "添加脚本",
|
"add_script": "添加脚本",
|
||||||
"duplicate": "制作副本",
|
|
||||||
"duplicate_script": "复制脚本",
|
|
||||||
"edit_script": "编辑脚本",
|
"edit_script": "编辑脚本",
|
||||||
"header": "脚本编辑器",
|
"header": "脚本编辑器",
|
||||||
"headers": {
|
"headers": {
|
||||||
@@ -2248,7 +2218,7 @@
|
|||||||
"input_text": "重载文字输入",
|
"input_text": "重载文字输入",
|
||||||
"introduction": "Home Assistant 中的部分配置可以直接重载,而无需重启服务。点击重载按钮将重新载入新的配置。",
|
"introduction": "Home Assistant 中的部分配置可以直接重载,而无需重启服务。点击重载按钮将重新载入新的配置。",
|
||||||
"min_max": "重载最小值/最大值实体",
|
"min_max": "重载最小值/最大值实体",
|
||||||
"mqtt": "重载手动配置的 MQTT 实体",
|
"mqtt": "重载手动配置的 mqtt 实体",
|
||||||
"person": "重载人员",
|
"person": "重载人员",
|
||||||
"ping": "重载 ping 二元传感器实体",
|
"ping": "重载 ping 二元传感器实体",
|
||||||
"reload": "重载{domain}",
|
"reload": "重载{domain}",
|
||||||
@@ -2256,7 +2226,7 @@
|
|||||||
"rpi_gpio": "重载树莓派 GPIO 实体",
|
"rpi_gpio": "重载树莓派 GPIO 实体",
|
||||||
"scene": "重载场景",
|
"scene": "重载场景",
|
||||||
"script": "重载脚本",
|
"script": "重载脚本",
|
||||||
"smtp": "重载 SMTP 通知服务",
|
"smtp": "重载 smtp 通知服务",
|
||||||
"statistics": "重载 statistics 实体",
|
"statistics": "重载 statistics 实体",
|
||||||
"telegram": "重载 telegram 通知服务",
|
"telegram": "重载 telegram 通知服务",
|
||||||
"template": "重载模板实体",
|
"template": "重载模板实体",
|
||||||
@@ -2346,7 +2316,6 @@
|
|||||||
"update_user": "更新"
|
"update_user": "更新"
|
||||||
},
|
},
|
||||||
"picker": {
|
"picker": {
|
||||||
"add_user": "添加用户",
|
|
||||||
"headers": {
|
"headers": {
|
||||||
"group": "群组",
|
"group": "群组",
|
||||||
"name": "名称",
|
"name": "名称",
|
||||||
@@ -2627,8 +2596,6 @@
|
|||||||
"filter_attributes": "输入筛选属性",
|
"filter_attributes": "输入筛选属性",
|
||||||
"filter_entities": "输入筛选实体",
|
"filter_entities": "输入筛选实体",
|
||||||
"filter_states": "输入筛选状态",
|
"filter_states": "输入筛选状态",
|
||||||
"last_changed": "上次变化",
|
|
||||||
"last_updated": "上次更新",
|
|
||||||
"more_info": "更多信息",
|
"more_info": "更多信息",
|
||||||
"no_entities": "没有可用实体",
|
"no_entities": "没有可用实体",
|
||||||
"set_state": "设置状态",
|
"set_state": "设置状态",
|
||||||
@@ -2880,10 +2847,6 @@
|
|||||||
"description": "“灯光”卡片用于调整灯的亮度。",
|
"description": "“灯光”卡片用于调整灯的亮度。",
|
||||||
"name": "灯光"
|
"name": "灯光"
|
||||||
},
|
},
|
||||||
"logbook": {
|
|
||||||
"description": "“日志”卡片可显示实体的事件列表。",
|
|
||||||
"name": "日志"
|
|
||||||
},
|
|
||||||
"map": {
|
"map": {
|
||||||
"dark_mode": "夜间模式?",
|
"dark_mode": "夜间模式?",
|
||||||
"default_zoom": "默认缩放",
|
"default_zoom": "默认缩放",
|
||||||
|
@@ -805,9 +805,7 @@
|
|||||||
"more_info_control": {
|
"more_info_control": {
|
||||||
"controls": "控制",
|
"controls": "控制",
|
||||||
"cover": {
|
"cover": {
|
||||||
"close_cover": "關閉窗簾",
|
|
||||||
"close_tile_cover": "開啟窗簾",
|
"close_tile_cover": "開啟窗簾",
|
||||||
"open_cover": "開啟窗簾",
|
|
||||||
"open_tilt_cover": "開啟窗簾",
|
"open_tilt_cover": "開啟窗簾",
|
||||||
"stop_cover": "停止窗簾"
|
"stop_cover": "停止窗簾"
|
||||||
},
|
},
|
||||||
@@ -874,28 +872,6 @@
|
|||||||
},
|
},
|
||||||
"quick-bar": {
|
"quick-bar": {
|
||||||
"commands": {
|
"commands": {
|
||||||
"navigation": {
|
|
||||||
"areas": "分區",
|
|
||||||
"automation": "自動化",
|
|
||||||
"core": "一般設定",
|
|
||||||
"customize": "自訂化",
|
|
||||||
"devices": "設備",
|
|
||||||
"entities": "實體",
|
|
||||||
"helpers": "助手",
|
|
||||||
"info": "更多資訊",
|
|
||||||
"integrations": "整合",
|
|
||||||
"logs": "記錄",
|
|
||||||
"lovelace": "Lovelace 主面板",
|
|
||||||
"navigate_to": "導航至 {panel}",
|
|
||||||
"navigate_to_config": "導航至 {panel} 設定",
|
|
||||||
"person": "人員",
|
|
||||||
"scene": "場景",
|
|
||||||
"script": "腳本",
|
|
||||||
"server_control": "伺服器控制",
|
|
||||||
"tags": "標籤",
|
|
||||||
"users": "用戶",
|
|
||||||
"zone": "區域"
|
|
||||||
},
|
|
||||||
"reload": {
|
"reload": {
|
||||||
"automation": "重新載入自動化",
|
"automation": "重新載入自動化",
|
||||||
"command_line": "重新載入命令列實體",
|
"command_line": "重新載入命令列實體",
|
||||||
@@ -2347,7 +2323,6 @@
|
|||||||
"update_user": "更新"
|
"update_user": "更新"
|
||||||
},
|
},
|
||||||
"picker": {
|
"picker": {
|
||||||
"add_user": "新增用戶",
|
|
||||||
"headers": {
|
"headers": {
|
||||||
"group": "群組",
|
"group": "群組",
|
||||||
"name": "名稱",
|
"name": "名稱",
|
||||||
@@ -2628,8 +2603,6 @@
|
|||||||
"filter_attributes": "屬性過濾器",
|
"filter_attributes": "屬性過濾器",
|
||||||
"filter_entities": "實體過濾器",
|
"filter_entities": "實體過濾器",
|
||||||
"filter_states": "狀態過濾器",
|
"filter_states": "狀態過濾器",
|
||||||
"last_changed": "上次變更",
|
|
||||||
"last_updated": "最後更新",
|
|
||||||
"more_info": "更多資訊",
|
"more_info": "更多資訊",
|
||||||
"no_entities": "無實體",
|
"no_entities": "無實體",
|
||||||
"set_state": "設定狀態",
|
"set_state": "設定狀態",
|
||||||
@@ -2881,10 +2854,6 @@
|
|||||||
"description": "燈光面板可供變更燈光的亮度與開關。",
|
"description": "燈光面板可供變更燈光的亮度與開關。",
|
||||||
"name": "燈光面板"
|
"name": "燈光面板"
|
||||||
},
|
},
|
||||||
"logbook": {
|
|
||||||
"description": "日誌面板顯示實體事件列表。",
|
|
||||||
"name": "日誌面板"
|
|
||||||
},
|
|
||||||
"map": {
|
"map": {
|
||||||
"dark_mode": "深色模式?",
|
"dark_mode": "深色模式?",
|
||||||
"default_zoom": "預設大小",
|
"default_zoom": "預設大小",
|
||||||
|
Reference in New Issue
Block a user