mirror of
https://github.com/home-assistant/frontend.git
synced 2025-08-20 22:59:29 +00:00
Compare commits
1 Commits
20200918.2
...
script-yam
Author | SHA1 | Date | |
---|---|---|---|
![]() |
bda951e6d1 |
@@ -1 +1,267 @@
|
||||
[]
|
||||
[
|
||||
{
|
||||
"path": "M17.5,15.61C17.33,15.37 9.53,5.4 9.27,5.08C9,4.75 9.08,4.65 9.13,4.59C9.22,4.5 9.36,4.5 9.93,4.5C10.26,4.5 13.59,4.5 13.94,4.47C14.66,4.47 14.78,4.53 14.85,4.56C14.93,4.58 15.13,4.75 15.26,4.92C15.33,5 22.32,13.36 22.39,13.45C22.46,13.54 22.59,13.69 22.67,13.84C22.76,14 22.77,14.18 22.64,14.25C22.56,14.3 18.7,15.89 18.59,15.93C18.5,16 18.27,16.06 18.11,16.04C18,16 17.77,15.92 17.5,15.61M21.47,15.42L21.75,15.47C21.75,15.47 22.68,15.65 22.77,15.67C22.87,15.69 22.96,15.76 22.95,15.79C22.94,15.87 22.9,15.91 22.83,15.95C22.77,16 18.58,18.58 18.5,18.62C18.43,18.66 18.33,18.72 18.11,18.75C17.7,18.83 16.91,18.61 16.66,18.56C16.41,18.5 6.15,16.23 6.06,16.2C5.97,16.17 5.91,16.16 5.9,16.08C5.89,15.94 6.11,15.88 6.28,15.81C6.46,15.75 11.28,14 11.45,13.93C11.62,13.86 11.84,13.84 11.95,13.83C12.06,13.82 12.73,13.93 13.03,13.97C13.34,14 14.2,14.15 14.2,14.15L16.16,16.7C16.5,17.09 16.72,17.25 17,17.28C17.15,17.29 17.31,17.25 17.42,17.2C17.5,17.16 21.47,15.42 21.47,15.42M10.25,9.18L11.96,11.37L12,11.45V11.5C11.96,11.54 8.93,14.32 8.91,14.35L5.72,15.5C5.72,15.5 5.63,15.55 5.58,15.58C5.53,15.61 5.47,15.67 5.5,15.82C5.5,15.87 5.5,16.59 5.5,16.79L1.56,18.04C1.37,18.1 1,18.23 0.95,18.19C0.88,18.14 0.97,18.03 1,17.97C1.06,17.91 9.08,10 9.39,9.7C9.84,9.24 10.25,9.18 10.25,9.18",
|
||||
"name": "accusoft"
|
||||
},
|
||||
{
|
||||
"path": "M4.94,11.12C5.23,11.12 5.5,11.16 5.76,11.23C5.77,9.09 7.5,7.35 9.65,7.35C11.27,7.35 12.67,8.35 13.24,9.77C13.83,9 14.74,8.53 15.76,8.53C17.5,8.53 18.94,9.95 18.94,11.71C18.94,11.95 18.91,12.2 18.86,12.43C19.1,12.34 19.37,12.29 19.65,12.29C20.95,12.29 22,13.35 22,14.65C22,15.95 20.95,17 19.65,17C18.35,17 6.36,17 4.94,17C3.32,17 2,15.68 2,14.06C2,12.43 3.32,11.12 4.94,11.12Z",
|
||||
"name": "amazon-drive"
|
||||
},
|
||||
{
|
||||
"path": "M8,11.5A1.25,1.25 0 0,0 6.75,12.75A1.25,1.25 0 0,0 8,14A1.25,1.25 0 0,0 9.25,12.75A1.25,1.25 0 0,0 8,11.5M16,11.5A1.25,1.25 0 0,0 14.75,12.75A1.25,1.25 0 0,0 16,14A1.25,1.25 0 0,0 17.25,12.75A1.25,1.25 0 0,0 16,11.5M12,7C13.5,7 14.9,7.33 16.18,7.91L18.34,5.75C18.73,5.36 19.36,5.36 19.75,5.75C20.14,6.14 20.14,6.77 19.75,7.16L17.95,8.96C20.41,10.79 22,13.71 22,17H2C2,13.71 3.59,10.79 6.05,8.96L4.25,7.16C3.86,6.77 3.86,6.14 4.25,5.75C4.64,5.36 5.27,5.36 5.66,5.75L7.82,7.91C9.1,7.33 10.5,7 12,7Z",
|
||||
"name": "android-head"
|
||||
},
|
||||
{
|
||||
"path": "M2,16.25C2,16.25 4,3.75 12,3.75C20,3.75 22,16.25 22,16.25C22,16.25 20,20.25 12,20.25C4,20.25 2,16.25 2,16.25M3.35,15.65C3.35,15.65 4.3,19 12,19C17,19 20,17.8 20.65,15.85C21.3,13.9 15.65,7.6 14.65,7.6C13.65,7.6 11.2,12 10.45,12C8.45,12 8.9,10 7.15,10C5.4,10 3.35,15.65 3.35,15.65Z",
|
||||
"name": "basecamp"
|
||||
},
|
||||
{
|
||||
"path": "M7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7C10.87,7 9.84,7.37 9,8V2.46C9.95,2.16 10.95,2 12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12C2,8.3 4,5.07 7,3.34V12M12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9Z",
|
||||
"name": "beats"
|
||||
},
|
||||
{
|
||||
"path": "M19.58,12.27C19.54,11.65 19.33,11.18 18.96,10.86C18.59,10.54 18.13,10.38 17.58,10.38C17,10.38 16.5,10.55 16.19,10.89C15.86,11.23 15.65,11.69 15.57,12.27M21.92,12.04C22,12.45 22,13.04 22,13.81H15.5C15.55,14.71 15.85,15.33 16.44,15.69C16.79,15.92 17.22,16.03 17.73,16.03C18.26,16.03 18.69,15.89 19,15.62C19.2,15.47 19.36,15.27 19.5,15H21.88C21.82,15.54 21.53,16.07 21,16.62C20.22,17.5 19.1,17.92 17.66,17.92C16.47,17.92 15.43,17.55 14.5,16.82C13.62,16.09 13.16,14.9 13.16,13.25C13.16,11.7 13.57,10.5 14.39,9.7C15.21,8.87 16.27,8.46 17.58,8.46C18.35,8.46 19.05,8.6 19.67,8.88C20.29,9.16 20.81,9.59 21.21,10.2C21.58,10.73 21.81,11.34 21.92,12.04M9.58,14.07C9.58,13.42 9.31,12.97 8.79,12.73C8.5,12.6 8.08,12.53 7.54,12.5H4.87V15.84H7.5C8.04,15.84 8.46,15.77 8.76,15.62C9.31,15.35 9.58,14.83 9.58,14.07M4.87,10.46H7.5C8.04,10.46 8.5,10.36 8.82,10.15C9.16,9.95 9.32,9.58 9.32,9.06C9.32,8.5 9.1,8.1 8.66,7.91C8.27,7.78 7.78,7.72 7.19,7.72H4.87M11.72,12.42C12.04,12.92 12.2,13.53 12.2,14.24C12.2,15 12,15.64 11.65,16.23C11.41,16.62 11.12,16.94 10.77,17.21C10.37,17.5 9.9,17.72 9.36,17.83C8.82,17.94 8.24,18 7.61,18H2V5.55H8C9.53,5.58 10.6,6 11.23,6.88C11.61,7.41 11.8,8.04 11.8,8.78C11.8,9.54 11.61,10.15 11.23,10.61C11,10.87 10.7,11.11 10.28,11.32C10.91,11.55 11.39,11.92 11.72,12.42M20.06,7.32H15.05V6.07H20.06V7.32Z",
|
||||
"name": "behance"
|
||||
},
|
||||
{
|
||||
"path": "M5.45,10.28C6.4,10.28 7.5,11.05 7.5,12C7.5,12.95 6.4,13.72 5.45,13.72H2L2.69,10.28H5.45M6.14,4.76C7.09,4.76 8.21,5.53 8.21,6.5C8.21,7.43 7.09,8.21 6.14,8.21H2.69L3.38,4.76H6.14M13.03,4.76C14,4.76 15.1,5.53 15.1,6.5C15.1,7.43 14,8.21 13.03,8.21H9.41L10.1,4.76H13.03M12.34,10.28C13.3,10.28 14.41,11.05 14.41,12C14.41,12.95 13.3,13.72 12.34,13.72H8.72L9.41,10.28H12.34M10.97,15.79C11.92,15.79 13.03,16.57 13.03,17.5C13.03,18.47 11.92,19.24 10.97,19.24H7.5L8.21,15.79H10.97M18.55,13.72C19.5,13.72 20.62,14.5 20.62,15.45C20.62,16.4 19.5,17.17 18.55,17.17H15.1L15.79,13.72H18.55M19.93,8.21C20.88,8.21 22,9 22,9.93C22,10.88 20.88,11.66 19.93,11.66H16.5L17.17,8.21H19.93Z",
|
||||
"name": "blackberry"
|
||||
},
|
||||
{
|
||||
"path": "M12,3A9,9 0 0,1 21,12A9,9 0 0,1 12,21A9,9 0 0,1 3,12A9,9 0 0,1 12,3M5.94,8.5C4,11.85 5.15,16.13 8.5,18.06C11.85,20 18.85,7.87 15.5,5.94C12.15,4 7.87,5.15 5.94,8.5Z",
|
||||
"name": "cisco-webex"
|
||||
},
|
||||
{
|
||||
"path": "M11.9,14.5H10.8V9.5H11.9C13.5,9.5 14.6,10.4 14.6,12C14.6,13.6 13.5,14.5 11.9,14.5M11.9,7H8.1V17H11.8C15.3,17 17.4,14.9 17.4,12V12C17.4,9.1 15.4,7 11.9,7M12,20C10.1,20 8.3,19.3 6.9,18.1L6.2,17.5L4.5,17.7L5.2,16.1L4.9,15.3C4.4,14.2 4.2,13.1 4.2,11.9C4.2,7.5 7.8,3.9 12.1,3.9C16.4,3.9 19.9,7.6 19.9,12C19.9,16.4 16.3,20 12,20M12,2C6.5,2 2.1,6.5 2.1,12C2.1,13.5 2.4,14.9 3,16.2L1.4,20.3L5.7,19.7C7.4,21.2 9.7,22.1 12.1,22.1C17.6,22.1 22,17.6 22,12.1C22,6.6 17.5,2 12,2Z",
|
||||
"name": "disqus-outline"
|
||||
},
|
||||
{
|
||||
"path": "M16.42,18.42C16,16.5 15.5,14.73 15,13.17C15.5,13.1 16,13.06 16.58,13.06H16.6V13.06H16.6C17.53,13.06 18.55,13.18 19.66,13.43C19.28,15.5 18.08,17.27 16.42,18.42M12,19.8C10.26,19.8 8.66,19.23 7.36,18.26C7.64,17.81 8.23,16.94 9.18,16.04C10.14,15.11 11.5,14.15 13.23,13.58C13.82,15.25 14.36,17.15 14.77,19.29C13.91,19.62 13,19.8 12,19.8M4.2,12C4.2,11.96 4.2,11.93 4.2,11.89C4.42,11.9 4.71,11.9 5.05,11.9H5.06C6.62,11.89 9.36,11.76 12.14,10.89C12.29,11.22 12.44,11.56 12.59,11.92C10.73,12.54 9.27,13.53 8.19,14.5C7.16,15.46 6.45,16.39 6.04,17C4.9,15.66 4.2,13.91 4.2,12M8.55,5C9.1,5.65 10.18,7.06 11.34,9.25C9,9.96 6.61,10.12 5.18,10.12C5.14,10.12 5.1,10.12 5.06,10.12H5.05C4.81,10.12 4.6,10.12 4.43,10.11C5,7.87 6.5,6 8.55,5M12,4.2C13.84,4.2 15.53,4.84 16.86,5.91C15.84,7.14 14.5,8 13.03,8.65C12,6.67 11,5.25 10.34,4.38C10.88,4.27 11.43,4.2 12,4.2M18.13,7.18C19.1,8.42 19.71,9.96 19.79,11.63C18.66,11.39 17.6,11.28 16.6,11.28V11.28H16.59C15.79,11.28 15.04,11.35 14.33,11.47C14.16,11.05 14,10.65 13.81,10.26C15.39,9.57 16.9,8.58 18.13,7.18M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z",
|
||||
"name": "dribbble"
|
||||
},
|
||||
{
|
||||
"path": "M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M15.09,16.5C14.81,15.14 14.47,13.91 14.08,12.82L15.2,12.74H15.22V12.74C15.87,12.74 16.59,12.82 17.36,13C17.09,14.44 16.26,15.69 15.09,16.5M12,17.46C10.79,17.46 9.66,17.06 8.76,16.39C8.95,16.07 9.36,15.46 10,14.83C10.7,14.18 11.64,13.5 12.86,13.11C13.28,14.27 13.65,15.6 13.94,17.1C13.33,17.33 12.68,17.46 12,17.46M6.54,12V11.92L7.14,11.93V11.93C8.24,11.93 10.15,11.83 12.1,11.22L12.41,11.94C11.11,12.38 10.09,13.07 9.34,13.76C8.61,14.42 8.12,15.08 7.83,15.5C7.03,14.56 6.54,13.34 6.54,12M9.59,7.11C9.97,7.56 10.73,8.54 11.54,10.08C9.89,10.57 8.23,10.68 7.22,10.68H7.14V10.68H6.7C7.09,9.11 8.17,7.81 9.59,7.11M12,6.54C13.29,6.54 14.47,7 15.41,7.74C14.69,8.6 13.74,9.22 12.72,9.66C12,8.27 11.31,7.28 10.84,6.67C11.21,6.59 11.6,6.54 12,6.54M16.29,8.63C16.97,9.5 17.4,10.57 17.45,11.74C16.66,11.58 15.92,11.5 15.22,11.5V11.5C14.66,11.5 14.13,11.54 13.63,11.63L13.27,10.78C14.37,10.3 15.43,9.61 16.29,8.63M12,5A7,7 0 0,0 5,12A7,7 0 0,0 12,19A7,7 0 0,0 19,12A7,7 0 0,0 12,5Z",
|
||||
"name": "dribbble-box"
|
||||
},
|
||||
{
|
||||
"path": "M6.72,20.78C8.23,20.71 10.07,20.78 11.87,20.78C13.72,20.78 15.62,20.66 17.12,20.78C17.72,20.83 18.28,21.19 18.77,20.87C19.16,20.38 18.87,19.71 18.96,19.05C19.12,17.78 20.28,16.27 18.59,15.95C17.87,16.61 18.35,17.23 17.95,18.05C17.45,19.03 15.68,19.37 14,19.5C12.54,19.62 10,19.76 9.5,18.77C9.04,17.94 9.29,16.65 9.29,15.58C9.29,14.38 9.16,13.22 9.5,12.3C11.32,12.43 13.7,11.69 15,12.5C15.87,13 15.37,14.06 16.38,14.4C17.07,14.21 16.7,13.32 16.66,12.5C16.63,11.94 16.63,11.19 16.66,10.57C16.69,9.73 17,8.76 16.1,8.74C15.39,9.3 15.93,10.23 15.18,10.75C14.95,10.92 14.43,11 14.08,11C12.7,11.17 10.54,11.05 9.38,10.84C9.23,9.16 9.24,6.87 9.38,5.19C10,4.57 11.45,4.54 12.42,4.55C14.13,4.55 16.79,4.7 17.3,5.55C17.58,6 17.36,7 17.85,7.1C18.85,7.33 18.36,5.55 18.41,4.73C18.44,4.11 18.71,3.72 18.59,3.27C18.27,2.83 17.79,3.05 17.5,3.09C14.35,3.5 9.6,3.27 6.26,3.27C5.86,3.27 5.16,3.07 4.88,3.54C4.68,4.6 6.12,4.16 6.62,4.73C6.79,4.91 7.03,5.73 7.08,6.28C7.23,7.74 7.08,9.97 7.08,12.12C7.08,14.38 7.26,16.67 7.08,18.05C7,18.53 6.73,19.3 6.62,19.41C6,20.04 4.34,19.35 4.5,20.69C5.09,21.08 5.93,20.82 6.72,20.78Z",
|
||||
"name": "etsy"
|
||||
},
|
||||
{
|
||||
"path": "M12,17.5C10.15,17.5 8.42,16.56 7.41,15L17.41,12.75L22.08,11.75C22.05,10.32 21.71,8.92 21.08,7.64C18.66,2.61 12.62,0.5 7.58,2.92C2.55,5.34 0.44,11.38 2.86,16.41C5.29,21.44 11.33,23.56 16.36,21.14C18.5,20.09 20.25,18.31 21.22,16.11L16.61,15C15.6,16.57 13.86,17.5 12,17.5M12,6.5C13.76,6.5 15.41,7.34 16.44,8.77L6.57,11.19C6.96,8.5 9.28,6.5 12,6.5Z",
|
||||
"name": "eventbrite"
|
||||
},
|
||||
{
|
||||
"path": "M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M18,5H15.5A3.5,3.5 0 0,0 12,8.5V11H10V14H12V21H15V14H18V11H15V9A1,1 0 0,1 16,8H18V5Z",
|
||||
"name": "facebook-box"
|
||||
},
|
||||
{
|
||||
"path": "M21,12A9,9 0 0,1 12,21H4.5L9.74,15.76L11.16,17.17L9.33,19H12A7,7 0 0,0 19,12V7L21,5V12M3,12A9,9 0 0,1 12,3H19.5L14.26,8.24L12.84,6.83L14.67,5H12A7,7 0 0,0 5,12V17L3,19V12Z",
|
||||
"name": "flattr"
|
||||
},
|
||||
{
|
||||
"path": "M11,12C11,14.5 9,16.5 6.5,16.5C4,16.5 2,14.5 2,12C2,9.5 4,7.5 6.5,7.5C9,7.5 11,9.5 11,12M17.5,7.5C15,7.5 13,9.5 13,12C13,14.5 15,16.5 17.5,16.5C20,16.5 22,14.5 22,12C22,9.5 20,7.5 17.5,7.5Z",
|
||||
"name": "flickr"
|
||||
},
|
||||
{
|
||||
"path": "M17,5L16.57,7.5C16.5,7.73 16.2,8 15.91,8C15.61,8 12,8 12,8C11.53,8 10.95,8.32 10.95,8.79V9.2C10.95,9.67 11.53,10 12,10C12,10 14.95,10 15.28,10C15.61,10 15.93,10.36 15.86,10.71C15.79,11.07 14.94,13.28 14.9,13.5C14.86,13.67 14.64,14 14.25,14C13.92,14 11.37,14 11.37,14C10.85,14 10.69,14.07 10.34,14.5C10,14.94 7.27,18.1 7.27,18.1C7.24,18.13 7,18.04 7,18V5C7,4.7 7.61,4 8,4C8,4 16.17,4 16.5,4C16.82,4 17.08,4.61 17,5M17,14.45C17.11,13.97 18.78,6.72 19.22,4.55M17.58,2C17.58,2 8.38,2 6.91,2C5.43,2 5,3.11 5,3.8C5,4.5 5,20.76 5,20.76C5,21.54 5.42,21.84 5.66,21.93C5.9,22.03 6.55,22.11 6.94,21.66C6.94,21.66 11.65,16.22 11.74,16.13C11.87,16 11.87,16 12,16C12.26,16 14.2,16 15.26,16C16.63,16 16.85,15 17,14.45C17.11,13.97 18.78,6.72 19.22,4.55C19.56,2.89 19.14,2 17.58,2Z",
|
||||
"name": "foursquare"
|
||||
},
|
||||
{
|
||||
"path": "M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H14.56C14.24,20.93 14.23,20.32 14.23,20.11L14.24,17.64C14.24,16.8 13.95,16.25 13.63,15.97C15.64,15.75 17.74,15 17.74,11.53C17.74,10.55 17.39,9.74 16.82,9.11C16.91,8.89 17.22,7.97 16.73,6.73C16.73,6.73 15.97,6.5 14.25,7.66C13.53,7.46 12.77,7.36 12,7.35C11.24,7.36 10.46,7.46 9.75,7.66C8.03,6.5 7.27,6.73 7.27,6.73C6.78,7.97 7.09,8.89 7.18,9.11C6.61,9.74 6.26,10.55 6.26,11.53C6.26,15 8.36,15.75 10.36,16C10.1,16.2 9.87,16.6 9.79,17.18C9.27,17.41 7.97,17.81 7.17,16.43C7.17,16.43 6.69,15.57 5.79,15.5C5.79,15.5 4.91,15.5 5.73,16.05C5.73,16.05 6.32,16.33 6.73,17.37C6.73,17.37 7.25,19.12 9.76,18.58L9.77,20.11C9.77,20.32 9.75,20.93 9.43,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3Z",
|
||||
"name": "github-box"
|
||||
},
|
||||
{
|
||||
"path": "M20.38,8.53C20.54,8.13 21.06,6.54 20.21,4.39C20.21,4.39 18.9,4 15.91,6C14.66,5.67 13.33,5.62 12,5.62C10.68,5.62 9.34,5.67 8.09,6C5.1,3.97 3.79,4.39 3.79,4.39C2.94,6.54 3.46,8.13 3.63,8.53C2.61,9.62 2,11 2,12.72C2,19.16 6.16,20.61 12,20.61C17.79,20.61 22,19.16 22,12.72C22,11 21.39,9.62 20.38,8.53M12,19.38C7.88,19.38 4.53,19.19 4.53,15.19C4.53,14.24 5,13.34 5.8,12.61C7.14,11.38 9.43,12.03 12,12.03C14.59,12.03 16.85,11.38 18.2,12.61C19,13.34 19.5,14.23 19.5,15.19C19.5,19.18 16.13,19.38 12,19.38M8.86,13.12C8.04,13.12 7.36,14.12 7.36,15.34C7.36,16.57 8.04,17.58 8.86,17.58C9.69,17.58 10.36,16.58 10.36,15.34C10.36,14.11 9.69,13.12 8.86,13.12M15.14,13.12C14.31,13.12 13.64,14.11 13.64,15.34C13.64,16.58 14.31,17.58 15.14,17.58C15.96,17.58 16.64,16.58 16.64,15.34C16.64,14.11 16,13.12 15.14,13.12Z",
|
||||
"name": "github-face"
|
||||
},
|
||||
{
|
||||
"path": "M8,2A3,3 0 0,0 5,5V16.5H8V5H19A3,3 0 0,0 16,2H8M16,7.5V19H5A3,3 0 0,0 8,22H16A3,3 0 0,0 19,19V7.5H16Z",
|
||||
"name": "glassdoor"
|
||||
},
|
||||
{
|
||||
"path": "M2,22L8.5,2H15.4L9.2,20C9.2,20 8.6,22 7,22C5.9,22 2,22 2,22M16.4,5L13,15L15,20.7C15,20.7 15.4,22 17,22C18.3,22 22,22 22,22L16.4,5Z",
|
||||
"name": "google-adwords"
|
||||
},
|
||||
{
|
||||
"path": "M19,3H13V8L17,7L16,11H21V5C21,3.89 20.1,3 19,3M17,17L13,16V21H19A2,2 0 0,0 21,19V13H16M8,13H3V19A2,2 0 0,0 5,21H11V16L7,17M3,5V11H8L7,7L11,8V3H5C3.89,3 3,3.89 3,5Z",
|
||||
"name": "google-pages"
|
||||
},
|
||||
{
|
||||
"path": "M12,1.5A9,9 0 0,1 21,10.5C21,13.11 19.89,15.47 18.11,17.11L17.05,16.05C18.55,14.68 19.5,12.7 19.5,10.5A7.5,7.5 0 0,0 12,3A7.5,7.5 0 0,0 4.5,10.5C4.5,12.7 5.45,14.68 6.95,16.05L5.89,17.11C4.11,15.47 3,13.11 3,10.5A9,9 0 0,1 12,1.5M12,4.5A6,6 0 0,1 18,10.5C18,12.28 17.22,13.89 16,15L14.92,13.92C15.89,13.1 16.5,11.87 16.5,10.5C16.5,8 14.5,6 12,6C9.5,6 7.5,8 7.5,10.5C7.5,11.87 8.11,13.1 9.08,13.92L8,15C6.78,13.89 6,12.28 6,10.5A6,6 0 0,1 12,4.5M8.11,17.65L11.29,14.46C11.68,14.07 12.32,14.07 12.71,14.46L15.89,17.65C16.28,18.04 16.28,18.67 15.89,19.06L12.71,22.24C12.32,22.63 11.68,22.63 11.29,22.24L8.11,19.06C7.72,18.67 7.72,18.04 8.11,17.65Z",
|
||||
"name": "google-physical-web"
|
||||
},
|
||||
{
|
||||
"path": "M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M19.5,12H18V10.5H17V12H15.5V13H17V14.5H18V13H19.5V12M9.65,11.36V12.9H12.22C12.09,13.54 11.45,14.83 9.65,14.83C8.11,14.83 6.89,13.54 6.89,12C6.89,10.46 8.11,9.17 9.65,9.17C10.55,9.17 11.13,9.56 11.45,9.88L12.67,8.72C11.9,7.95 10.87,7.5 9.65,7.5C7.14,7.5 5.15,9.5 5.15,12C5.15,14.5 7.14,16.5 9.65,16.5C12.22,16.5 13.96,14.7 13.96,12.13C13.96,11.81 13.96,11.61 13.89,11.36H9.65Z",
|
||||
"name": "google-plus-box"
|
||||
},
|
||||
{
|
||||
"path": "M14,20.95H20V10.78L8,7.34V3.05H4V20.95H10V15.31H14V20.95Z",
|
||||
"name": "houzz"
|
||||
},
|
||||
{
|
||||
"path": "M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M13.5,18.71H18V11.09L9,8.5V5.29H6V18.71H10.5V14.5H13.5V18.71Z",
|
||||
"name": "houzz-box"
|
||||
},
|
||||
{
|
||||
"path": "M10,5A1,1 0 0,0 9,4H8V2H16V4H15A1,1 0 0,0 14,5V19A1,1 0 0,0 15,20H16V22H8V20H9A1,1 0 0,0 10,19V5Z",
|
||||
"name": "instapaper"
|
||||
},
|
||||
{
|
||||
"path": "M7.85,17.07C7.03,17.17 3.5,17.67 4.06,20.26C4.69,23.3 9.87,22.59 9.83,19C9.81,16.57 9.83,9.2 9.83,9.2C9.83,9.2 9.76,8.53 10.43,8.39L18.19,6.79C18.19,6.79 18.83,6.65 18.83,7.29C18.83,7.89 18.83,14.2 18.83,14.2C18.83,14.2 18.9,14.83 18.12,15C17.34,15.12 13.91,15.4 14.19,18C14.5,21.07 20,20.65 20,17.07V2.61C20,2.61 20.04,1.62 18.9,1.87L9.5,3.78C9.5,3.78 8.66,3.96 8.66,4.77C8.66,5.5 8.66,16.11 8.66,16.11C8.66,16.11 8.66,16.96 7.85,17.07Z",
|
||||
"name": "itunes"
|
||||
},
|
||||
{
|
||||
"path": "M2,5.69C8.92,1.07 11.1,7 11.28,10.27C11.46,13.53 8.29,17.64 4.31,14.92V20.3L2,18.77V5.69M4.22,7.4V12.78C7.84,14.95 9.08,13.17 9.08,10.09C9.08,5.74 6.57,5.59 4.22,7.4M15.08,4.15C15.08,4.15 14.9,7.64 15.08,11.07C15.44,14.5 19.69,11.84 19.69,11.84V4.92L22,5.2V14.44C22,20.6 15.85,20.3 15.85,20.3L15.08,18C20.46,18 19.78,14.43 19.78,14.43C13.27,16.97 12.77,12.61 12.77,12.61V5.69L15.08,4.15Z",
|
||||
"name": "language-python-text"
|
||||
},
|
||||
{
|
||||
"path": "M18,17.93C15.92,17.92 14.81,16.9 14.04,15.09L13.82,14.6L11.92,10.23C11.29,8.69 9.72,7.64 7.96,7.64C5.57,7.64 3.63,9.59 3.63,12C3.63,14.41 5.57,16.36 7.96,16.36C9.62,16.36 11.08,15.41 11.8,14L12.57,15.81C11.5,17.15 9.82,18 7.96,18C4.67,18 2,15.32 2,12C2,8.69 4.67,6 7.96,6C10.44,6 12.45,7.34 13.47,9.7C13.54,9.89 14.54,12.24 15.42,14.24C15.96,15.5 16.42,16.31 17.91,16.36C19.38,16.41 20.39,15.5 20.39,14.37C20.39,13.26 19.62,13 18.32,12.56C16,11.79 14.79,11 14.79,9.15C14.79,7.33 16,6.12 18,6.12C19.31,6.12 20.24,6.7 20.89,7.86L19.62,8.5C19.14,7.84 18.61,7.57 17.94,7.57C17,7.57 16.33,8.23 16.33,9.1C16.33,10.34 17.43,10.53 18.97,11.03C21.04,11.71 22,12.5 22,14.42C22,16.45 20.27,17.93 18,17.93Z",
|
||||
"name": "lastfm"
|
||||
},
|
||||
{
|
||||
"path": "M19,3A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H19M18.5,18.5V13.2A3.26,3.26 0 0,0 15.24,9.94C14.39,9.94 13.4,10.46 12.92,11.24V10.13H10.13V18.5H12.92V13.57C12.92,12.8 13.54,12.17 14.31,12.17A1.4,1.4 0 0,1 15.71,13.57V18.5H18.5M6.88,8.56A1.68,1.68 0 0,0 8.56,6.88C8.56,5.95 7.81,5.19 6.88,5.19A1.69,1.69 0 0,0 5.19,6.88C5.19,7.81 5.95,8.56 6.88,8.56M8.27,18.5V10.13H5.5V18.5H8.27Z",
|
||||
"name": "linkedin-box"
|
||||
},
|
||||
{
|
||||
"path": "M9.56,12.5C9.56,12.6 9.5,12.72 9.4,12.79C9.2,12.97 8.89,12.94 8.71,12.74C8.63,12.65 8.59,12.53 8.59,12.41V8.5H5.66V13.39A2.44,2.44 0 0,0 8.1,15.83C8.68,15.83 9.24,15.62 9.68,15.24C9.64,15.6 9.43,15.93 9.11,16.11C8.75,16.31 8.35,16.42 7.94,16.41C7.46,16.41 7,16.3 6.56,16.09L6.39,16V18.6C7.04,18.86 7.74,19 8.44,19C9.47,19 10.46,18.66 11.25,18C12.08,17.25 12.54,16.18 12.5,15.06V8.5H9.56V12.5M4.93,13.39V5.59H2V12.9C1.84,14.35 2.88,15.65 4.33,15.81C4.41,15.82 4.5,15.83 4.56,15.83V15.83C4.93,15.83 5.29,15.74 5.63,15.59L5.75,15.5L5.65,15.41C5.17,14.85 4.91,14.13 4.93,13.39M22,11.39V8.5H21C20.59,6.38 18.53,5 16.41,5.41C16.17,5.45 15.94,5.5 15.71,5.61C14.28,6.24 13.33,7.62 13.26,9.18V15.83H13.39C14.95,15.76 16.19,14.47 16.19,12.9H17.41V10H16.15V9.17C16.15,8.86 16.32,8.57 16.59,8.41C17.06,8.13 17.68,8.28 17.96,8.76C18.05,8.91 18.09,9.07 18.1,9.24V11.93C18.07,14.05 19.75,15.79 21.87,15.83H22V12.9H22A1,1 0 0,1 21,11.9V11.41L22,11.39Z",
|
||||
"name": "lyft"
|
||||
},
|
||||
{
|
||||
"path": "M15.45,11.91C15.34,9.7 13.7,8.37 11.72,8.37H11.64C9.35,8.37 8.09,10.17 8.09,12.21C8.09,14.5 9.62,15.95 11.63,15.95C13.88,15.95 15.35,14.3 15.46,12.36M11.65,6.39C13.18,6.39 14.62,7.07 15.67,8.13V8.13C15.67,7.62 16,7.24 16.5,7.24H16.61C17.35,7.24 17.5,7.94 17.5,8.16V16.06C17.46,16.58 18.04,16.84 18.37,16.5C19.64,15.21 21.15,9.81 17.58,6.69C14.25,3.77 9.78,4.25 7.4,5.89C4.88,7.63 3.26,11.5 4.83,15.11C6.54,19.06 11.44,20.24 14.35,19.06C15.83,18.47 16.5,20.46 15,21.11C12.66,22.1 6.23,22 3.22,16.79C1.19,13.27 1.29,7.08 6.68,3.87C10.81,1.42 16.24,2.1 19.5,5.5C22.95,9.1 22.75,15.8 19.4,18.41C17.89,19.59 15.64,18.44 15.66,16.71L15.64,16.15C14.59,17.2 13.18,17.81 11.65,17.81C8.63,17.81 6,15.15 6,12.13C6,9.08 8.63,6.39 11.65,6.39Z",
|
||||
"name": "mail-ru"
|
||||
},
|
||||
{
|
||||
"path": "M20.93,14C20.66,15.4 18.5,16.95 15.97,17.25C14.66,17.4 13.38,17.55 12,17.5C9.76,17.38 8,16.95 8,16.95L8.03,17.57C8.32,19.78 10.22,19.92 12.03,20C13.85,20.04 15.47,19.53 15.47,19.53L15.55,21.17C15.55,21.17 14.27,21.86 12,22C10.75,22.05 9.2,21.95 7.39,21.47C3.47,20.43 2.79,16.25 2.69,12L2.68,8.57C2.68,4.23 5.5,2.96 5.5,2.96C6.95,2.3 9.41,2 11.97,2H12.03C14.59,2 17.05,2.3 18.5,2.96C18.5,2.96 21.33,4.23 21.33,8.57C21.33,8.57 21.36,11.77 20.93,14M8.33,10.32C8.33,9.54 7.7,8.91 6.93,8.91C6.15,8.91 5.5,9.54 5.5,10.32C5.5,11.09 6.15,11.72 6.93,11.72A1.4,1.4 0 0,0 8.33,10.32M13.41,10.32A1.41,1.41 0 0,0 12,8.91A1.41,1.41 0 0,0 10.59,10.32C10.59,11.09 11.22,11.72 12,11.72C12.78,11.72 13.41,11.09 13.41,10.32M18.5,10.32C18.5,9.54 17.85,8.91 17.07,8.91C16.3,8.91 15.67,9.54 15.67,10.32A1.4,1.4 0 0,0 17.07,11.72C17.85,11.72 18.5,11.09 18.5,10.32Z",
|
||||
"name": "mastodon-variant"
|
||||
},
|
||||
{
|
||||
"path": "M4.37,7.3C4.4,7.05 4.3,6.81 4.12,6.65L2.25,4.4V4.06H8.05L12.53,13.89L16.47,4.06H22V4.4L20.4,5.93C20.27,6.03 20.2,6.21 20.23,6.38V17.62C20.2,17.79 20.27,17.97 20.4,18.07L21.96,19.6V19.94H14.12V19.6L15.73,18.03C15.89,17.88 15.89,17.83 15.89,17.59V8.5L11.4,19.9H10.8L5.57,8.5V16.14C5.5,16.46 5.63,16.78 5.86,17L7.96,19.57V19.9H2V19.57L4.1,17C4.33,16.78 4.43,16.46 4.37,16.14V7.3Z",
|
||||
"name": "medium"
|
||||
},
|
||||
{
|
||||
"path": "M19.61,14.86C19.61,16.68 18.3,18.25 16.5,18.55C16.29,18.59 16.07,18.62 15.84,18.61C15.76,18.61 15.73,18.64 15.71,18.71C15.35,19.74 14.64,20.35 13.57,20.5C12.86,20.6 12.22,20.41 11.65,19.97C11.57,19.9 11.5,19.9 11.44,19.96C10.78,20.43 10.04,20.64 9.23,20.59C7.66,20.5 6.33,19.29 6.08,17.74C6.06,17.63 6.04,17.5 6.04,17.41C6.04,17.32 6,17.29 5.92,17.27C5.44,17.18 5,17 4.63,16.68C3.92,16.13 3.5,15.41 3.4,14.5C3.29,13.5 3.61,12.62 4.32,11.89C4.38,11.83 4.38,11.79 4.34,11.72C4.07,11.24 3.94,10.72 3.96,10.17C4,8.79 4.97,7.65 6.31,7.37C6.46,7.33 6.54,7.27 6.61,7.13C7.27,5.71 8.37,4.85 9.91,4.56C11,4.36 12,4.58 12.94,5.13C13,5.18 13.08,5.18 13.17,5.16C14.67,4.72 16,5.04 17.12,6.11C17.78,6.74 18.15,7.54 18.26,8.46C18.28,8.66 18.29,8.86 18.28,9.06C18.27,9.14 18.29,9.17 18.37,9.19C19.04,9.44 19.5,9.91 19.71,10.6C19.96,11.45 19.75,12.21 19.11,12.83C19.05,12.89 19.07,12.92 19.1,12.97C19.44,13.56 19.61,14.18 19.61,14.86M12.93,14.57C12.93,15.34 13.43,16 14.14,16.26C14.5,16.37 14.85,16.43 15.22,16.45C15.5,16.46 15.75,16.44 16,16.32C16.19,16.22 16.28,16.06 16.27,15.85C16.26,15.64 16.16,15.5 15.96,15.4C15.89,15.37 15.82,15.34 15.74,15.33C15.5,15.29 15.3,15.26 15.07,15.21C14.71,15.14 14.55,14.95 14.55,14.57C14.54,14.24 14.63,13.93 14.73,13.63C14.92,13.07 15.17,12.53 15.41,12C15.64,11.47 15.88,10.95 16.04,10.4C16.13,10.1 16.18,9.8 16.09,9.5C15.97,9 15.69,8.7 15.2,8.61C14.75,8.5 14.3,8.5 13.9,8.78C13.76,8.87 13.63,8.85 13.5,8.74C13.43,8.67 13.34,8.58 13.26,8.5C12.84,8.12 12.3,8.1 11.85,8.45C11.67,8.59 11.5,8.76 11.33,8.89C11.16,9 11,9.03 10.79,8.92C10.6,8.83 10.42,8.74 10.23,8.65C10.03,8.57 9.85,8.46 9.63,8.44C8.95,8.38 8.24,8.79 7.94,9.41C7.8,9.68 7.69,9.96 7.59,10.25C7.11,11.57 6.72,12.91 6.32,14.26C6.14,14.86 6.35,15.45 6.86,15.77C7.26,16 7.69,16.09 8.14,15.95C8.5,15.84 8.71,15.55 8.85,15.22C9.31,14.13 9.73,13 10.17,11.91C10.29,11.61 10.41,11.3 10.54,11C10.67,10.7 11.04,10.6 11.26,10.8C11.4,10.92 11.44,11.09 11.42,11.26C11.41,11.45 11.34,11.62 11.27,11.79C11,12.5 10.69,13.24 10.4,13.97C10.34,14.11 10.28,14.26 10.25,14.42C10.21,14.69 10.31,14.93 10.54,15C10.76,15.12 11,15.14 11.23,15.05C11.5,14.95 11.67,14.74 11.79,14.5C12.22,13.65 12.65,12.8 13.08,11.95C13.28,11.56 13.5,11.17 13.68,10.78C13.76,10.64 13.85,10.5 14,10.41C14.12,10.33 14.25,10.33 14.38,10.4C14.5,10.47 14.5,10.6 14.5,10.73C14.5,10.8 14.5,10.87 14.47,10.93C14.41,11.07 14.36,11.2 14.3,11.33C13.94,12.09 13.57,12.84 13.22,13.59C13.07,13.91 12.91,14.23 12.93,14.57M17.96,20.12C17.96,19.62 17.54,19.2 17.04,19.2C16.5,19.2 16.1,19.61 16.1,20.12A0.93,0.93 0 0,0 17.03,21.05A0.93,0.93 0 0,0 17.96,20.12M2.38,12.46C2.86,12.46 3.27,12.05 3.27,11.57C3.27,11.09 2.87,10.69 2.39,10.69C1.89,10.69 1.5,11.08 1.5,11.57C1.5,12.06 1.89,12.46 2.38,12.46M13.26,2.55C12.77,2.55 12.37,2.94 12.37,3.42C12.37,3.91 12.77,4.3 13.25,4.3C13.74,4.3 14.13,3.92 14.13,3.43C14.13,2.95 13.74,2.55 13.26,2.55M20.45,8.03C20.45,7.63 20.11,7.29 19.71,7.29C19.3,7.28 18.95,7.63 18.95,8.04C18.95,8.45 19.28,8.78 19.7,8.78C20.12,8.78 20.46,8.45 20.45,8.03M5.04,5.89C5.04,6.27 5.34,6.56 5.71,6.56C6.09,6.56 6.39,6.26 6.38,5.88C6.38,5.5 6.09,5.22 5.72,5.22C5.33,5.22 5.04,5.5 5.04,5.89M12.06,21.44C12.06,21.12 11.81,20.86 11.5,20.86C11.16,20.86 10.91,21.11 10.91,21.44C10.91,21.75 11.16,22 11.5,22C11.8,22 12.06,21.75 12.06,21.44M21,12.5C20.71,12.5 20.45,12.78 20.45,13.08A0.55,0.55 0 0,0 21,13.63C21.33,13.63 21.57,13.4 21.57,13.08C21.57,12.77 21.33,12.5 21,12.5M7.62,2C7.35,2 7.14,2.2 7.14,2.47C7.14,2.73 7.35,2.94 7.62,2.94A0.47,0.47 0 0,0 8.09,2.47C8.09,2.2 7.89,2 7.62,2M22.08,10C21.86,10 21.67,10.17 21.66,10.4C21.66,10.63 21.85,10.82 22.08,10.82C22.32,10.82 22.5,10.64 22.5,10.41C22.5,10.17 22.32,10 22.08,10M5.5,18.26C5.5,18.04 5.29,17.85 5.06,17.84C4.84,17.84 4.65,18.03 4.65,18.27C4.65,18.5 4.84,18.68 5.07,18.68C5.3,18.68 5.5,18.5 5.5,18.26Z",
|
||||
"name": "meetup"
|
||||
},
|
||||
{
|
||||
"path": "M21.11,18.5C20.97,18.5 20.83,18.44 20.71,18.36C20.37,18.13 20.28,17.68 20.5,17.34C21.18,16.34 21.54,15.16 21.54,13.93C21.54,12.71 21.18,11.53 20.5,10.5C20.28,10.18 20.37,9.73 20.71,9.5C21.04,9.28 21.5,9.37 21.72,9.7C22.56,10.95 23,12.41 23,13.93C23,15.45 22.56,16.91 21.72,18.16C21.58,18.37 21.35,18.5 21.11,18.5M19,17.29C18.88,17.29 18.74,17.25 18.61,17.17C18.28,16.94 18.19,16.5 18.42,16.15C18.86,15.5 19.1,14.73 19.1,13.93C19.1,13.14 18.86,12.37 18.42,11.71C18.19,11.37 18.28,10.92 18.61,10.69C18.95,10.47 19.4,10.55 19.63,10.89C20.24,11.79 20.56,12.84 20.56,13.93C20.56,15 20.24,16.07 19.63,16.97C19.5,17.18 19.25,17.29 19,17.29M14.9,15.73C15.89,15.73 16.7,14.92 16.7,13.93C16.7,13.17 16.22,12.5 15.55,12.25C15.5,12.55 15.43,12.85 15.34,13.14C15.23,13.44 14.95,13.64 14.64,13.64C14.57,13.64 14.5,13.62 14.41,13.6C14.03,13.47 13.82,13.06 13.95,12.67C14.09,12.24 14.17,11.78 14.17,11.32C14.17,8.93 12.22,7 9.82,7C8.1,7 6.56,8 5.87,9.5C6.54,9.7 7.16,10.04 7.66,10.54C7.95,10.83 7.95,11.29 7.66,11.58C7.38,11.86 6.91,11.86 6.63,11.58C6.17,11.12 5.56,10.86 4.9,10.86C3.56,10.86 2.46,11.96 2.46,13.3C2.46,14.64 3.56,15.73 4.9,15.73H14.9M15.6,10.75C17.06,11.07 18.17,12.37 18.17,13.93C18.17,15.73 16.7,17.19 14.9,17.19H4.9C2.75,17.19 1,15.45 1,13.3C1,11.34 2.45,9.73 4.33,9.45C5.12,7.12 7.33,5.5 9.82,5.5C12.83,5.5 15.31,7.82 15.6,10.75Z",
|
||||
"name": "mixcloud"
|
||||
},
|
||||
{
|
||||
"path": "M5.68,3.96L11.41,11.65C11.55,11.84 11.55,12.1 11.41,12.29L5.65,20L5.5,20.18C4.76,21 3.47,21.07 2.64,20.31C1.85,19.59 1.79,18.37 2.43,17.5L6.56,11.97L2.46,6.47C1.83,5.62 1.88,4.39 2.67,3.67L2.82,3.54C3.73,2.87 5,3.05 5.68,3.96M18.32,3.96C19,3.05 20.27,2.87 21.18,3.54L21.33,3.67C22.12,4.39 22.17,5.61 21.54,6.47L17.44,11.97L21.57,17.5C22.21,18.36 22.15,19.59 21.36,20.31C20.53,21.07 19.24,21 18.5,20.18L18.35,20L12.59,12.29C12.45,12.1 12.45,11.84 12.59,11.65L18.32,3.96Z",
|
||||
"name": "mixer"
|
||||
},
|
||||
{
|
||||
"path": "M3.25,4.03L19.95,20.73L18.7,22L14.86,18.13C14.77,18.12 14.68,18.09 14.59,18.05C14.26,17.89 14.14,17.62 14.11,17.38L12.18,15.45C12.14,15.53 12.09,15.6 12.05,15.66C11.62,16.26 11.19,16.26 10.86,16.04C10.54,15.83 5.5,12 5.23,11.87C4.95,11.76 4.85,12.03 5.12,13.5C5.39,15 4.95,15.39 4.57,15.45C4.2,15.5 3.06,15.18 3,12.14C2.95,9.11 3.76,8.62 4.14,8.62C4.6,8.62 7.08,10.69 8.84,12.12L2,5.28L3.25,4.03M18.38,16.56C18.75,15.4 19.12,13.8 19.1,12.03V12C19.14,8.5 17.66,5.58 17.66,5.58C17.66,5.58 17.42,4.72 18.12,4.39C18.83,4.06 19.3,4.61 19.3,4.61C21.12,8.22 21,11.64 21,12C21,12.27 21.09,14.96 19.88,18.05L18.38,16.56M15.14,13.31C15.19,12.92 15.22,12.5 15.24,12.03V12C15.14,8.5 14.13,7.21 14.13,7.21C14.13,7.21 13.89,6.34 14.59,6C15.3,5.69 15.77,6.23 15.77,6.23C17.26,8.94 17.16,11.64 17.14,12C17.15,12.2 17.2,13.38 16.82,15L15.14,13.31M10.2,8.38C10.23,7.77 10.59,7.64 10.59,7.64C10.59,7.64 11.19,7.37 11.57,7.8C11.91,8.19 12.72,9.57 12.89,11.07L10.2,8.38Z",
|
||||
"name": "nfc-off"
|
||||
},
|
||||
{ "path": "M20,4H4V20H12V8H16V20H20V4", "name": "npm-variant" },
|
||||
{
|
||||
"path": "M3,3V21H21V3H3M6,6H18V18H15V9H12V18H6V6Z",
|
||||
"name": "npm-variant-outline"
|
||||
},
|
||||
{
|
||||
"path": "M8.32,21.97C8.21,21.92 8.08,21.76 8.06,21.65C8.03,21.5 8,21.76 8.66,17.56C9.26,13.76 9.25,13.82 9.33,13.71C9.46,13.54 9.44,13.54 10.94,13.53C12.26,13.5 12.54,13.5 13.13,13.41C16.38,12.96 18.39,11.05 19.09,7.75C19.13,7.53 19.17,7.34 19.18,7.34C19.18,7.33 19.25,7.38 19.33,7.44C20.36,8.22 20.71,9.66 20.32,11.58C19.86,13.87 18.64,15.39 16.74,16.04C15.93,16.32 15.25,16.43 14.05,16.46C13.25,16.5 13.23,16.5 13,16.65C12.83,16.82 12.84,16.79 12.45,19.2C12.18,20.9 12.08,21.45 12.04,21.55C11.97,21.71 11.83,21.85 11.67,21.93L11.56,22H10C8.71,22 8.38,22 8.32,21.97V21.97M3.82,19.74C3.63,19.64 3.5,19.47 3.5,19.27C3.5,19 6.11,2.68 6.18,2.5C6.27,2.32 6.5,2.13 6.68,2.06L6.83,2H10.36C14.27,2 14.12,2 15,2.2C17.62,2.75 18.82,4.5 18.37,7.13C17.87,10.06 16.39,11.8 13.87,12.43C13,12.64 12.39,12.7 10.73,12.7C9.42,12.7 9.32,12.71 9.06,12.85C8.8,13 8.59,13.27 8.5,13.6C8.46,13.67 8.23,15.07 7.97,16.7C7.71,18.33 7.5,19.69 7.5,19.72L7.47,19.78H5.69C4.11,19.78 3.89,19.78 3.82,19.74V19.74Z",
|
||||
"name": "paypal"
|
||||
},
|
||||
{
|
||||
"path": "M12,7A2,2 0 0,1 10,9A2,2 0 0,1 8,7C7.37,7.84 7,8.87 7,10A5,5 0 0,0 12,15A5,5 0 0,0 17,10A5,5 0 0,0 12,5C11.57,5 11.16,5.05 10.77,5.15C11.5,5.45 12,6.17 12,7M12,2A8,8 0 0,1 20,10C20,11.05 19.8,12.04 19.43,12.96C17.89,17.38 13.63,22 12,22C10.37,22 6.11,17.38 4.57,12.96C4.2,12.04 4,11.05 4,10A8,8 0 0,1 12,2Z",
|
||||
"name": "periscope"
|
||||
},
|
||||
{
|
||||
"path": "M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H9.29C9.69,20.33 10.19,19.38 10.39,18.64L11.05,16.34C11.36,16.95 12.28,17.45 13.22,17.45C16.17,17.45 18.22,14.78 18.22,11.45C18.22,8.28 15.64,5.89 12.3,5.89C8.14,5.89 5.97,8.67 5.97,11.72C5.97,13.14 6.69,14.89 7.91,15.45C8.08,15.56 8.19,15.5 8.19,15.34L8.47,14.28C8.5,14.14 8.5,14.06 8.41,14C7.97,13.45 7.69,12.61 7.69,11.78C7.69,9.64 9.3,7.61 12.03,7.61C14.42,7.61 16.08,9.19 16.08,11.5C16.08,14.11 14.75,15.95 13.03,15.95C12.05,15.95 11.39,15.11 11.55,14.17C11.83,13.03 12.39,11.83 12.39,11C12.39,10.22 12,9.61 11.16,9.61C10.22,9.61 9.39,10.61 9.39,11.95C9.39,12.83 9.66,13.39 9.66,13.39L8.55,18.17C8.39,19 8.47,20.25 8.55,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3Z",
|
||||
"name": "pinterest-box"
|
||||
},
|
||||
{
|
||||
"path": "M21.9,4.26C21.64,3.55 20.96,3.07 20.2,3.07H20.19L18.46,3.07H3.81C3.07,3.07 2.39,3.54 2.12,4.24C2.04,4.45 2,4.66 2,4.88V10.92L2.07,12.12C2.36,14.85 3.78,17.23 5.97,18.9C6,18.93 6.05,18.96 6.09,19H6.11C7.29,19.86 8.6,20.44 10,20.73C10.68,20.86 11.35,20.93 12,20.93C12.63,20.93 13.25,20.87 13.85,20.76C13.93,20.75 14,20.73 14.07,20.72C14.09,20.71 14.11,20.7 14.14,20.69C15.5,20.4 16.76,19.83 17.89,19H17.91C17.95,18.96 18,18.93 18.03,18.9C20.22,17.23 21.64,14.85 21.93,12.12L22,10.92V4.88C22,4.68 21.97,4.47 21.9,4.26M17.67,10.55L12.96,15.06C12.7,15.32 12.35,15.44 12,15.44C11.67,15.44 11.33,15.32 11.06,15.06L6.36,10.55C5.81,10.03 5.79,9.16 6.32,8.61C6.84,8.06 7.71,8.05 8.26,8.57L12,12.17L15.77,8.57C16.31,8.05 17.18,8.07 17.71,8.61C18.23,9.16 18.21,10.03 17.67,10.55Z",
|
||||
"name": "pocket"
|
||||
},
|
||||
{
|
||||
"path": "M12,3A9,9 0 0,1 21,12C21,13.76 20.5,15.4 19.62,16.79L21,18.17V20A1,1 0 0,1 20,21H18.18L16.79,19.62C15.41,20.5 13.76,21 12,21A9,9 0 0,1 3,12A9,9 0 0,1 12,3M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17C12.65,17 13.26,16.88 13.83,16.65L10.95,13.77C10.17,13 10.17,11.72 10.95,10.94C11.73,10.16 13,10.16 13.78,10.94L16.66,13.82C16.88,13.26 17,12.64 17,12A5,5 0 0,0 12,7Z",
|
||||
"name": "quicktime"
|
||||
},
|
||||
{
|
||||
"path": "M18.61,5.89C18.6,5.79 18.5,5.73 18.44,5.73C18.37,5.72 16.83,5.61 16.83,5.61C16.83,5.61 15.76,4.55 15.65,4.43C15.53,4.31 15.3,4.35 15.21,4.37C15.2,4.37 15,4.44 14.61,4.55C14.25,3.5 13.62,2.58 12.43,2.58C12.11,2.18 11.72,2 11.38,2C8.8,2 7.57,5.22 7.18,6.86C6.18,7.17 5.47,7.39 5.37,7.42C4.82,7.6 4.8,7.62 4.73,8.14C4.67,8.54 3.21,19.86 3.21,19.86L14.61,22L20.79,20.66C20.79,20.66 18.62,6 18.61,5.89M14,4.76C13.69,4.85 13.37,4.95 13,5.06C13,5 13,4.93 13,4.85C13,4.21 12.93,3.7 12.79,3.29C13.35,3.36 13.73,4 14,4.76M12.08,3.42C12.24,3.82 12.34,4.39 12.34,5.16C12.34,5.2 12.34,5.24 12.34,5.27C11.71,5.46 11.03,5.68 10.35,5.89C10.73,4.4 11.45,3.69 12.08,3.42M11.31,2.69C11.42,2.69 11.53,2.73 11.64,2.8C10.81,3.19 9.93,4.17 9.55,6.12C9,6.3 8.47,6.46 8,6.62C8.42,5.12 9.46,2.69 11.31,2.69M12.5,9.15L11.76,11.42C11.76,11.42 11.09,11.06 10.27,11.06C9.07,11.06 9,11.81 9,12C9,13.04 11.71,13.43 11.71,15.86C11.71,17.77 10.5,19 8.87,19C6.91,19 5.91,17.78 5.91,17.78L6.43,16.05C6.43,16.05 7.46,16.93 8.33,16.93C8.9,16.93 9.13,16.5 9.13,16.16C9.13,14.81 6.92,14.75 6.92,12.53C6.92,10.66 8.26,8.85 10.97,8.85C12,8.85 12.5,9.15 12.5,9.15M15.43,5.29L16.75,6.6L17.71,6.68C18.05,9 19.19,16.73 19.66,19.88L14.66,20.97L15.43,5.29Z",
|
||||
"name": "shopify"
|
||||
},
|
||||
{
|
||||
"path": "M7.47,17.19C7.37,17.95 7.08,18.21 6.19,18.21C5.27,18.21 4.87,17.79 4.81,16.87L4.61,13.65C4.61,12.91 4.87,12.55 5.86,12.55C7.21,12.55 7.04,13.54 7.64,14.5C8.33,15.62 10,16.35 12.31,16.35C15.17,16.35 17,15.14 17,13.57C17,12.23 15.89,11.39 13.85,11.16L11.5,10.89C7.21,10.42 5.1,9.19 5.1,6.62C5.1,4.07 8.06,2 12.21,2C13.5,2 14.81,2.29 16.29,2.76C16.29,2.26 16.58,2.1 17.3,2.1C18.46,2.1 18.55,2.39 18.62,3.08L18.85,5.88C18.85,6.5 18.39,6.83 17.63,6.83C16.35,6.83 16.55,5.88 15.86,5.07C15.17,4.26 13.79,3.73 12.08,3.73C9.44,3.73 7.7,4.89 7.7,6.5C7.7,7.8 8.92,8.56 11.38,8.82L13.95,9.08C17.7,9.5 19.61,10.92 19.61,13.33C19.61,16.17 16.71,18.08 12.21,18.08C10.56,18.08 9.08,17.77 7.47,17.19M1,16H2V21H23V22H1V16Z",
|
||||
"name": "slackware"
|
||||
},
|
||||
{
|
||||
"path": "M6,3H18A3,3 0 0,1 21,6V18A3,3 0 0,1 18,21H6A3,3 0 0,1 3,18V6A3,3 0 0,1 6,3M7,6A1,1 0 0,0 6,7V17A1,1 0 0,0 7,18H17A1,1 0 0,0 18,17V7A1,1 0 0,0 17,6H7M9.5,9H14.5A0.5,0.5 0 0,1 15,9.5V14.5A0.5,0.5 0 0,1 14.5,15H9.5A0.5,0.5 0 0,1 9,14.5V9.5A0.5,0.5 0 0,1 9.5,9Z",
|
||||
"name": "square-inc"
|
||||
},
|
||||
{
|
||||
"path": "M5.5,0H18.5A5.5,5.5 0 0,1 24,5.5V18.5A5.5,5.5 0 0,1 18.5,24H5.5A5.5,5.5 0 0,1 0,18.5V5.5A5.5,5.5 0 0,1 5.5,0M15.39,15.18C15.39,16.76 14.5,17.81 12.85,17.95V12.61C14.55,13.13 15.39,13.66 15.39,15.18M11.65,6V10.88C10.34,10.5 9.03,9.93 9.03,8.43C9.03,6.94 10.18,6.12 11.65,6M15.5,7.6L16.5,6.8C15.62,5.66 14.4,4.92 12.85,4.77V3.8H11.65V3.8L11.65,4.75C9.5,4.89 7.68,6.17 7.68,8.5C7.68,11 9.74,11.78 11.65,12.29V17.96C10.54,17.84 9.29,17.31 8.43,16.03L7.3,16.78C8.2,18.12 9.76,19 11.65,19.14V20.2H12.07L12.85,20.2V19.16C15.35,19 16.7,17.34 16.7,15.14C16.7,12.58 14.81,11.76 12.85,11.19V6.05C14,6.22 14.85,6.76 15.5,7.6Z",
|
||||
"name": "square-inc-cash"
|
||||
},
|
||||
{
|
||||
"path": "M19,3A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V15L6.19,16.31C6.45,17.6 7.6,18.58 8.97,18.58C10.53,18.58 11.8,17.31 11.8,15.75V15.62L15.2,13.19H15.28C17.36,13.19 19.05,11.5 19.05,9.42C19.05,7.34 17.36,5.65 15.28,5.65C13.2,5.65 11.5,7.34 11.5,9.42V9.47L9.13,12.93L8.97,12.92C8.38,12.92 7.83,13.1 7.38,13.41L3,11.6V5A2,2 0 0,1 5,3H19M8.28,17.17C9.08,17.5 10,17.13 10.33,16.33C10.66,15.53 10.28,14.62 9.5,14.29L8.22,13.76C8.71,13.58 9.26,13.57 9.78,13.79C10.31,14 10.72,14.41 10.93,14.94C11.15,15.46 11.15,16.04 10.93,16.56C10.5,17.64 9.23,18.16 8.15,17.71C7.65,17.5 7.27,17.12 7.06,16.67L8.28,17.17M17.8,9.42C17.8,10.81 16.67,11.94 15.28,11.94C13.9,11.94 12.77,10.81 12.77,9.42A2.51,2.51 0 0,1 15.28,6.91C16.67,6.91 17.8,8.04 17.8,9.42M13.4,9.42C13.4,10.46 14.24,11.31 15.29,11.31C16.33,11.31 17.17,10.46 17.17,9.42C17.17,8.38 16.33,7.53 15.29,7.53C14.24,7.53 13.4,8.38 13.4,9.42Z",
|
||||
"name": "steam-box"
|
||||
},
|
||||
{
|
||||
"path": "M14.92,17.16L16.75,13.53H19.45L14.94,22.5L10.37,13.53H13.07L14.92,17.16M10.63,8.66L8.18,13.55H4.55L10.61,1.5L16.74,13.55H13.11L10.63,8.66Z",
|
||||
"name": "strava"
|
||||
},
|
||||
{
|
||||
"path": "M12,14C11,14 9,15 9,16C9,18 12,18 12,18V17A1,1 0 0,1 11,16A1,1 0 0,1 12,15V14M12,19C12,19 8,18.5 8,16.5C8,13.5 11,12.75 12,12.75V11.5C11,11.5 7,13 7,16C7,20 12,20 12,20V19M10.07,7.03L11.26,7.56C11.69,5.12 12.84,3.5 12.84,3.5C12.41,4.53 12.13,5.38 11.95,6.05C13.16,3.55 15.61,2 15.61,2C14.43,3.18 13.56,4.46 12.97,5.53C14.55,3.85 16.74,2.75 16.74,2.75C14.05,4.47 12.84,7.2 12.54,7.96L13.09,8.04C13.09,8.56 13.09,9.04 13.34,9.42C14.1,11.31 18,11.47 18,16C18,20.53 13.97,22 11.83,22C9.69,22 5,21.03 5,16C5,10.97 9.95,10.93 10.83,8.92C10.95,8.54 10.07,7.03 10.07,7.03Z",
|
||||
"name": "tor"
|
||||
},
|
||||
{
|
||||
"path": "M17,11H13V15.5C13,16.44 13.28,17 14.5,17H17V21C17,21 15.54,21.05 14.17,21.05C10.8,21.05 9.5,19 9.5,16.75V11H7V7C10.07,6.74 10.27,4.5 10.5,3H13V7H17",
|
||||
"name": "tumblr"
|
||||
},
|
||||
{
|
||||
"path": "M16,11H13V14.9C13,15.63 13.14,16 14.1,16H16V19C16,19 14.97,19.1 13.9,19.1C11.25,19.1 10,17.5 10,15.7V11H8V8.2C10.41,8 10.62,6.16 10.8,5H13V8H16M20,2H4C2.89,2 2,2.89 2,4V20A2,2 0 0,0 4,22H20A2,2 0 0,0 22,20V4C22,2.89 21.1,2 20,2Z",
|
||||
"name": "tumblr-box"
|
||||
},
|
||||
{
|
||||
"path": "M3.75,17L8,12.75V16H18V11.5L20,9.5V16A2,2 0 0,1 18,18H8V21.25L3.75,17M20.25,7L16,11.25V8H6V12.5L4,14.5V8A2,2 0 0,1 6,6H16V2.75L20.25,7Z",
|
||||
"name": "tumblr-reblog"
|
||||
},
|
||||
{
|
||||
"path": "M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3M17.71,9.33C18.19,8.93 18.75,8.45 19,7.92C18.59,8.13 18.1,8.26 17.56,8.33C18.06,7.97 18.47,7.5 18.68,6.86C18.16,7.14 17.63,7.38 16.97,7.5C15.42,5.63 11.71,7.15 12.37,9.95C9.76,9.79 8.17,8.61 6.85,7.16C6.1,8.38 6.75,10.23 7.64,10.74C7.18,10.71 6.83,10.57 6.5,10.41C6.54,11.95 7.39,12.69 8.58,13.09C8.22,13.16 7.82,13.18 7.44,13.12C7.81,14.19 8.58,14.86 9.9,15C9,15.76 7.34,16.29 6,16.08C7.15,16.81 8.46,17.39 10.28,17.31C14.69,17.11 17.64,13.95 17.71,9.33Z",
|
||||
"name": "twitter-box"
|
||||
},
|
||||
{
|
||||
"path": "M17.71,9.33C18.19,8.93 18.75,8.45 19,7.92C18.59,8.13 18.1,8.26 17.56,8.33C18.06,7.97 18.47,7.5 18.68,6.86C18.16,7.14 17.63,7.38 16.97,7.5C15.42,5.63 11.71,7.15 12.37,9.95C9.76,9.79 8.17,8.61 6.85,7.16C6.1,8.38 6.75,10.23 7.64,10.74C7.18,10.71 6.83,10.57 6.5,10.41C6.54,11.95 7.39,12.69 8.58,13.09C8.22,13.16 7.82,13.18 7.44,13.12C7.81,14.19 8.58,14.86 9.9,15C9,15.76 7.34,16.29 6,16.08C7.15,16.81 8.46,17.39 10.28,17.31C14.69,17.11 17.64,13.95 17.71,9.33M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2Z",
|
||||
"name": "twitter-circle"
|
||||
},
|
||||
{
|
||||
"path": "M6.38,13.24V13.24C6.38,11.84 6.38,10.44 6.38,9.04H7.4V15.84H6.39C6.39,15.63 6.39,15.42 6.39,15.21C5.93,15.68 5.29,15.96 4.58,15.96C3.12,15.96 2,14.9 2,13.3V9.04H3V13.24C3,14.33 3.74,15.04 4.7,15.04C5.64,15.04 6.38,14.31 6.38,13.24M9.14,9.04V11.5C9.37,11.29 9.65,11.1 9.95,10.97C10.25,10.85 10.58,10.78 10.91,10.78C12.37,10.78 13.5,11.94 13.5,13.37C13.5,14.8 12.37,15.96 10.91,15.96C10.58,15.96 10.25,15.89 9.95,15.77C9.64,15.64 9.37,15.45 9.13,15.22C9.13,15.43 9.13,15.63 9.13,15.84C8.81,15.84 8.5,15.84 8.16,15.84V9.04H9.14M12.55,13.37V13.37C12.55,12.41 11.77,11.65 10.84,11.65C9.89,11.65 9.13,12.41 9.13,13.37C9.13,14.32 9.88,15.09 10.84,15.09C11.77,15.09 12.55,14.32 12.55,13.37M16.46,10.79C17.9,10.79 18.95,11.89 18.95,13.36V13.69H14.91C15.04,14.5 15.71,15.09 16.55,15.09C17.13,15.09 17.61,14.86 18,14.36L18.7,14.89C18.2,15.55 17.46,15.95 16.55,15.95C15.06,15.95 13.91,14.84 13.91,13.36C13.91,11.97 15,10.79 16.46,10.79M14.92,12.91H17.95C17.79,12.15 17.18,11.65 16.44,11.65C15.71,11.65 15.1,12.15 14.92,12.91M20.5,13V15.84H19.5V10.89C19.82,10.89 20.14,10.89 20.47,10.89V11.5C20.71,11.1 21.11,10.85 21.66,10.85H22V11.76H21.59C20.95,11.76 20.5,12.26 20.5,13",
|
||||
"name": "uber"
|
||||
},
|
||||
{
|
||||
"path": "M19.5,3C20.14,4.08 20.44,5.19 20.44,6.6C20.44,11.08 16.61,16.91 13.5,21H6.41L3.56,4L9.77,3.39L11.28,15.5C12.69,13.21 14.42,9.61 14.42,7.16C14.42,5.81 14.19,4.9 13.83,4.15L19.5,3Z",
|
||||
"name": "venmo"
|
||||
},
|
||||
{
|
||||
"path": "M5,3A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3H5M5.5,8.5H7C7.36,8.5 7.5,8.66 7.64,9.07C8.36,11.17 9.57,13 10.07,13C10.26,13 10.35,12.92 10.35,12.45V10.28C10.29,9.28 9.76,9.19 9.76,8.84C9.76,8.67 9.9,8.5 10.14,8.5H12.45C12.77,8.5 12.87,8.67 12.87,9.04V11.96C12.87,12.27 13,12.38 13.1,12.38C13.29,12.38 13.45,12.27 13.79,11.93C14.85,10.74 15.6,8.92 15.6,8.92C15.7,8.7 15.87,8.5 16.24,8.5H17.71C18.16,8.5 18.26,8.73 18.16,9.04C17.97,9.9 16.18,12.43 16.18,12.43C16,12.68 15.96,12.8 16.18,13.09C16.33,13.3 16.85,13.74 17.19,14.15C17.83,14.86 18.3,15.46 18.44,15.87C18.56,16.29 18.35,16.5 17.93,16.5H16.45C15.89,16.5 15.73,16.05 14.73,15.05C13.85,14.21 13.5,14.1 13.26,14.1C12.96,14.1 12.87,14.18 12.87,14.61V15.93C12.87,16.29 12.76,16.5 11.82,16.5C10.26,16.5 8.54,15.55 7.33,13.8C5.5,11.24 5,9.31 5,8.92C5,8.7 5.08,8.5 5.5,8.5Z",
|
||||
"name": "vk-box"
|
||||
},
|
||||
{
|
||||
"path": "M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M5.5,8.5H7C7.36,8.5 7.5,8.66 7.64,9.07C8.36,11.17 9.57,13 10.07,13C10.26,13 10.35,12.92 10.35,12.45V10.28C10.29,9.28 9.76,9.19 9.76,8.84C9.76,8.67 9.9,8.5 10.14,8.5H12.45C12.77,8.5 12.87,8.67 12.87,9.04V11.96C12.87,12.27 13,12.38 13.1,12.38C13.29,12.38 13.45,12.27 13.79,11.93C14.85,10.74 15.6,8.92 15.6,8.92C15.7,8.7 15.87,8.5 16.24,8.5H17.71C18.16,8.5 18.26,8.73 18.16,9.04C17.97,9.9 16.18,12.43 16.18,12.43C16,12.68 15.96,12.8 16.18,13.09C16.33,13.3 16.85,13.74 17.19,14.15C17.83,14.86 18.3,15.46 18.44,15.87C18.56,16.29 18.35,16.5 17.93,16.5H16.45C15.89,16.5 15.73,16.05 14.73,15.05C13.85,14.21 13.5,14.1 13.26,14.1C12.96,14.1 12.87,14.18 12.87,14.61V15.93C12.87,16.29 12.76,16.5 11.82,16.5C10.26,16.5 8.54,15.55 7.33,13.8C5.5,11.24 5,9.31 5,8.92C5,8.7 5.08,8.5 5.5,8.5Z",
|
||||
"name": "vk-circle"
|
||||
},
|
||||
{
|
||||
"path": "M17,17.5L12,15L7,17.5V5H5V19H19V5H17V17.5M12,12.42L14.25,13.77L13.65,11.22L15.64,9.5L13,9.27L12,6.86L11,9.27L8.36,9.5L10.35,11.22L9.75,13.77L12,12.42M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3Z",
|
||||
"name": "wunderlist"
|
||||
},
|
||||
{
|
||||
"path": "M0 16.7L3.2 12.9L0 9.1L1.5 7.8L4.5 11.3L7.5 7.8L9 9.1L5.8 12.9L9 16.7L7.5 18L4.5 14.4L1.5 18L0 16.7M24 16.9C24 17.4 23.6 17.9 23 17.9H20C18.9 17.9 18 17 18 15.9V13.9C18 12.8 18.9 11.9 20 11.9H22V9.9H18V8H23C23.5 8 24 8.4 24 9M22 14H20V16H22V14M16 16.9C16 17.4 15.6 17.9 15 17.9H12C10.9 17.9 10 17 10 15.9V9.9C10 8.8 10.9 7.9 12 7.9H14V5H16V16.9M14 15.9V9.9H12V15.9H14Z",
|
||||
"name": "xda"
|
||||
},
|
||||
{
|
||||
"path": "M4.8,3C3.8,3 3,3.8 3,4.8V19.2C3,20.2 3.8,21 4.8,21H19.2C20.2,21 21,20.2 21,19.2V4.8C21,3.8 20.2,3 19.2,3M16.07,5H18.11C18.23,5 18.33,5.04 18.37,5.13C18.43,5.22 18.43,5.33 18.37,5.44L13.9,13.36L16.75,18.56C16.81,18.67 16.81,18.78 16.75,18.87C16.7,18.95 16.61,19 16.5,19H14.47C14.16,19 14,18.79 13.91,18.61L11.04,13.35C11.18,13.1 15.53,5.39 15.53,5.39C15.64,5.19 15.77,5 16.07,5M7.09,7.76H9.1C9.41,7.76 9.57,7.96 9.67,8.15L11.06,10.57C10.97,10.71 8.88,14.42 8.88,14.42C8.77,14.61 8.63,14.81 8.32,14.81H6.3C6.18,14.81 6.09,14.76 6.04,14.67C6,14.59 6,14.47 6.04,14.36L8.18,10.57L6.82,8.2C6.77,8.09 6.75,8 6.81,7.89C6.86,7.81 6.96,7.76 7.09,7.76Z",
|
||||
"name": "xing-box"
|
||||
},
|
||||
{
|
||||
"path": "M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M15.85,6H17.74C17.86,6 17.94,6.04 18,6.12C18.04,6.2 18.04,6.3 18,6.41L13.84,13.76L16.5,18.59C16.53,18.69 16.53,18.8 16.5,18.88C16.43,18.96 16.35,19 16.24,19H14.36C14.07,19 13.93,18.81 13.84,18.64L11.17,13.76C11.31,13.5 15.35,6.36 15.35,6.36C15.45,6.18 15.57,6 15.85,6M7.5,8.57H9.39C9.67,8.57 9.81,8.75 9.9,8.92L11.19,11.17C11.12,11.3 9.17,14.75 9.17,14.75C9.07,14.92 8.94,15.11 8.66,15.11H6.78C6.67,15.11 6.59,15.06 6.54,15C6.5,14.9 6.5,14.8 6.54,14.69L8.53,11.17L7.27,9C7.21,8.87 7.2,8.77 7.25,8.69C7.3,8.61 7.39,8.57 7.5,8.57Z",
|
||||
"name": "xing-circle"
|
||||
},
|
||||
{
|
||||
"path": "M10.59,2C11.23,2 11.5,2.27 11.58,2.97L11.79,6.14L12.03,10.29C12.05,10.64 12,11 11.86,11.32C11.64,11.77 11.14,11.89 10.73,11.58C10.5,11.39 10.31,11.14 10.15,10.87L6.42,4.55C6.06,3.94 6.17,3.54 6.77,3.16C7.5,2.68 9.73,2 10.59,2M14.83,14.85L15.09,14.91L18.95,16.31C19.61,16.55 19.79,16.92 19.5,17.57C19.06,18.7 18.34,19.66 17.42,20.45C16.96,20.85 16.5,20.78 16.21,20.28L13.94,16.32C13.55,15.61 14.03,14.8 14.83,14.85M4.5,14C4.5,13.26 4.5,12.55 4.75,11.87C4.97,11.2 5.33,11 6,11.27L9.63,12.81C10.09,13 10.35,13.32 10.33,13.84C10.3,14.36 9.97,14.58 9.53,14.73L5.85,15.94C5.15,16.17 4.79,15.96 4.64,15.25C4.55,14.83 4.47,14.4 4.5,14M11.97,21C11.95,21.81 11.6,22.12 10.81,22C9.77,21.8 8.81,21.4 7.96,20.76C7.54,20.44 7.45,19.95 7.76,19.53L10.47,15.97C10.7,15.67 11.03,15.6 11.39,15.74C11.77,15.88 11.97,16.18 11.97,16.59V21M14.45,13.32C13.73,13.33 13.23,12.5 13.64,11.91C14.47,10.67 15.35,9.46 16.23,8.26C16.5,7.85 16.94,7.82 17.31,8.16C18.24,9 18.91,10 19.29,11.22C19.43,11.67 19.25,12.08 18.83,12.2L15.09,13.17L14.45,13.32Z",
|
||||
"name": "yelp"
|
||||
}
|
||||
]
|
||||
|
@@ -1,4 +1,3 @@
|
||||
import "../../../src/resources/safari-14-attachshadow-patch";
|
||||
import "../../../src/resources/ha-style";
|
||||
import "../../../src/resources/roboto";
|
||||
import "./layout/hc-connect";
|
||||
|
@@ -1,4 +1,3 @@
|
||||
import "../../src/resources/safari-14-attachshadow-patch";
|
||||
import "@polymer/polymer/lib/elements/dom-if";
|
||||
import "@polymer/polymer/lib/elements/dom-repeat";
|
||||
import "../../src/resources/ha-style";
|
||||
|
@@ -1,17 +1,16 @@
|
||||
import "@polymer/app-layout/app-header-layout/app-header-layout";
|
||||
import "@polymer/app-layout/app-header/app-header";
|
||||
import "@polymer/app-layout/app-toolbar/app-toolbar";
|
||||
import "../../src/components/ha-icon-button";
|
||||
import "../../src/components/ha-icon";
|
||||
import "@polymer/paper-item/paper-item";
|
||||
import "@polymer/paper-item/paper-item-body";
|
||||
import { html } from "@polymer/polymer/lib/utils/html-tag";
|
||||
/* eslint-plugin-disable lit */
|
||||
import { PolymerElement } from "@polymer/polymer/polymer-element";
|
||||
import "../../src/components/ha-card";
|
||||
import "../../src/components/ha-icon";
|
||||
import "../../src/components/ha-icon-button";
|
||||
import "../../src/managers/notification-manager";
|
||||
import "../../src/styles/polymer-ha-style";
|
||||
// eslint-disable-next-line import/extensions
|
||||
import { DEMOS } from "../build/import-demos";
|
||||
|
||||
const fixPath = (path) => path.substr(2, path.length - 5);
|
||||
|
@@ -153,7 +153,7 @@ export class HassioUpdate extends LitElement {
|
||||
item.progress = true;
|
||||
const confirmed = await showConfirmationDialog(this, {
|
||||
title: `Update ${item.name}`,
|
||||
text: `Are you sure you want to update ${item.name} to version ${item.version}?`,
|
||||
text: `Are you sure you want to upgrade ${item.name} to version ${item.version}?`,
|
||||
confirmText: "update",
|
||||
dismissText: "cancel",
|
||||
});
|
||||
|
@@ -1,5 +1,4 @@
|
||||
import "../../src/resources/compatibility";
|
||||
import "../../src/resources/safari-14-attachshadow-patch";
|
||||
import "../../src/resources/roboto";
|
||||
import "./hassio-main";
|
||||
|
||||
|
@@ -79,7 +79,6 @@ class HassioSnapshots extends LitElement {
|
||||
},
|
||||
{ slug: "ssl", name: "SSL", checked: true },
|
||||
{ slug: "share", name: "Share", checked: true },
|
||||
{ slug: "media", name: "Media", checked: true },
|
||||
{ slug: "addons/local", name: "Local add-ons", checked: true },
|
||||
];
|
||||
|
||||
@@ -242,7 +241,7 @@ class HassioSnapshots extends LitElement {
|
||||
|
||||
protected firstUpdated(changedProps: PropertyValues) {
|
||||
super.firstUpdated(changedProps);
|
||||
this.refreshData();
|
||||
this._updateSnapshots();
|
||||
}
|
||||
|
||||
protected updated(changedProps: PropertyValues) {
|
||||
|
@@ -14,6 +14,7 @@ import {
|
||||
TemplateResult,
|
||||
} from "lit-element";
|
||||
import memoizeOne from "memoize-one";
|
||||
import { atLeastVersion } from "../../../src/common/config/version";
|
||||
import "../../../src/components/buttons/ha-progress-button";
|
||||
import "../../../src/components/ha-button-menu";
|
||||
import "../../../src/components/ha-card";
|
||||
@@ -84,7 +85,8 @@ class HassioHostInfo extends LitElement {
|
||||
</mwc-button>
|
||||
</ha-settings-row>`
|
||||
: ""}
|
||||
${this.hostInfo.features.includes("network")
|
||||
${this.hostInfo.features.includes("network") &&
|
||||
atLeastVersion(this.hass.config.version, 0, 115)
|
||||
? html` <ha-settings-row>
|
||||
<span slot="heading">
|
||||
IP address
|
||||
|
@@ -213,7 +213,7 @@ class HassioSupervisorInfo extends LitElement {
|
||||
|
||||
const confirmed = await showConfirmationDialog(this, {
|
||||
title: "Update supervisor",
|
||||
text: `Are you sure you want to update supervisor to version ${this.supervisorInfo.version_latest}?`,
|
||||
text: `Are you sure you want to upgrade supervisor to version ${this.supervisorInfo.version_latest}?`,
|
||||
confirmText: "update",
|
||||
dismissText: "cancel",
|
||||
});
|
||||
|
10
package.json
10
package.json
@@ -8,12 +8,12 @@
|
||||
"version": "1.0.0",
|
||||
"scripts": {
|
||||
"build": "script/build_frontend",
|
||||
"lint:eslint": "eslint \"**/src/**/*.{js,ts,html}\" --ignore-path .gitignore",
|
||||
"format:eslint": "eslint \"**/src/**/*.{js,ts,html}\" --fix --ignore-path .gitignore",
|
||||
"lint:prettier": "prettier \"**/src/**/*.{js,ts,json,css,md}\" --check",
|
||||
"format:prettier": "prettier \"**/src/**/*.{js,ts,json,css,md}\" --write",
|
||||
"lint:eslint": "eslint '**/src/**/*.{js,ts,html}' --ignore-path .gitignore",
|
||||
"format:eslint": "eslint '**/src/**/*.{js,ts,html}' --fix --ignore-path .gitignore",
|
||||
"lint:prettier": "prettier '**/src/**/*.{js,ts,json,css,md}' --check",
|
||||
"format:prettier": "prettier '**/src/**/*.{js,ts,json,css,md}' --write",
|
||||
"lint:types": "tsc",
|
||||
"lint:lit": "lit-analyzer \"**/src/**/*.ts\" --format markdown --outFile result.md",
|
||||
"lint:lit": "lit-analyzer '**/src/**/*.ts' --format markdown --outFile result.md",
|
||||
"lint": "npm run lint:eslint && npm run lint:prettier && npm run lint:types",
|
||||
"format": "npm run format:eslint && npm run format:prettier",
|
||||
"mocha": "node_modules/.bin/ts-mocha -p test-mocha/tsconfig.test.json --opts test-mocha/mocha.opts",
|
||||
|
2
setup.py
2
setup.py
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
|
||||
|
||||
setup(
|
||||
name="home-assistant-frontend",
|
||||
version="20200918.2",
|
||||
version="20200912.0",
|
||||
description="The Home Assistant frontend",
|
||||
url="https://github.com/home-assistant/home-assistant-polymer",
|
||||
author="The Home Assistant Authors",
|
||||
|
@@ -1,14 +1,14 @@
|
||||
import { darkStyles, derivedStyles } from "../../resources/styles";
|
||||
import { derivedStyles, darkStyles } from "../../resources/styles";
|
||||
import { HomeAssistant, Theme } from "../../types";
|
||||
import {
|
||||
hex2rgb,
|
||||
lab2hex,
|
||||
lab2rgb,
|
||||
rgb2hex,
|
||||
rgb2lab,
|
||||
lab2rgb,
|
||||
lab2hex,
|
||||
} from "../color/convert-color";
|
||||
import { labBrighten, labDarken } from "../color/lab";
|
||||
import { rgbContrast } from "../color/rgb";
|
||||
import { labDarken, labBrighten } from "../color/lab";
|
||||
|
||||
interface ProcessedTheme {
|
||||
keys: { [key: string]: "" };
|
||||
@@ -105,12 +105,12 @@ const processTheme = (
|
||||
const keys = {};
|
||||
for (const key of Object.keys(combinedTheme)) {
|
||||
const prefixedKey = `--${key}`;
|
||||
const value = String(combinedTheme[key]);
|
||||
const value = String(combinedTheme[key]!);
|
||||
styles[prefixedKey] = value;
|
||||
keys[prefixedKey] = "";
|
||||
|
||||
// Try to create a rgb value for this key if it is not a var
|
||||
if (!value.startsWith("#")) {
|
||||
if (value.startsWith("#")) {
|
||||
// Can't convert non hex value
|
||||
continue;
|
||||
}
|
||||
|
@@ -24,7 +24,8 @@ export const iconColorCSS = css`
|
||||
ha-icon[data-domain="group"][data-state="home"],
|
||||
ha-icon[data-domain="group"][data-state="open"],
|
||||
ha-icon[data-domain="group"][data-state="locked"],
|
||||
ha-icon[data-domain="group"][data-state="problem"] {
|
||||
ha-icon[data-domain="group"][data-state="problem"]
|
||||
{
|
||||
color: var(--paper-item-icon-active-color, #fdd835);
|
||||
}
|
||||
|
||||
|
@@ -1,16 +1,16 @@
|
||||
import type { HassEntity } from "home-assistant-js-websocket";
|
||||
import { styleMap } from "lit-html/directives/style-map";
|
||||
import {
|
||||
css,
|
||||
CSSResult,
|
||||
html,
|
||||
internalProperty,
|
||||
LitElement,
|
||||
property,
|
||||
internalProperty,
|
||||
PropertyValues,
|
||||
TemplateResult,
|
||||
} from "lit-element";
|
||||
import { ifDefined } from "lit-html/directives/if-defined";
|
||||
import { styleMap } from "lit-html/directives/style-map";
|
||||
import { computeActiveState } from "../../common/entity/compute_active_state";
|
||||
import { computeStateDomain } from "../../common/entity/compute_state_domain";
|
||||
import { stateIcon } from "../../common/entity/state_icon";
|
||||
@@ -73,15 +73,10 @@ export class StateBadge extends LitElement {
|
||||
if (stateObj) {
|
||||
// hide icon if we have entity picture
|
||||
if (
|
||||
((stateObj.attributes.entity_picture_local ||
|
||||
stateObj.attributes.entity_picture) &&
|
||||
!this.overrideIcon) ||
|
||||
((stateObj.attributes.entity_picture_local || stateObj.attributes.entity_picture) && !this.overrideIcon) ||
|
||||
this.overrideImage
|
||||
) {
|
||||
let imageUrl =
|
||||
this.overrideImage ||
|
||||
stateObj.attributes.entity_picture_local ||
|
||||
stateObj.attributes.entity_picture;
|
||||
let imageUrl = this.overrideImage || stateObj.attributes.entity_picture_local || stateObj.attributes.entity_picture;
|
||||
if (this.hass) {
|
||||
imageUrl = this.hass.hassUrl(imageUrl);
|
||||
}
|
||||
|
@@ -1,16 +1,17 @@
|
||||
import "@material/mwc-button";
|
||||
import "@material/mwc-menu";
|
||||
import type { Corner, Menu } from "@material/mwc-menu";
|
||||
import {
|
||||
css,
|
||||
CSSResult,
|
||||
customElement,
|
||||
html,
|
||||
LitElement,
|
||||
property,
|
||||
query,
|
||||
TemplateResult,
|
||||
LitElement,
|
||||
CSSResult,
|
||||
css,
|
||||
query,
|
||||
property,
|
||||
} from "lit-element";
|
||||
import "@material/mwc-button";
|
||||
import "@material/mwc-menu";
|
||||
import type { Menu, Corner } from "@material/mwc-menu";
|
||||
|
||||
import "./ha-icon-button";
|
||||
|
||||
@customElement("ha-button-menu")
|
||||
@@ -21,8 +22,6 @@ export class HaButtonMenu extends LitElement {
|
||||
|
||||
@property({ type: Boolean }) public activatable = false;
|
||||
|
||||
@property({ type: Boolean }) public disabled = false;
|
||||
|
||||
@query("mwc-menu") private _menu?: Menu;
|
||||
|
||||
public get items() {
|
||||
@@ -49,9 +48,6 @@ export class HaButtonMenu extends LitElement {
|
||||
}
|
||||
|
||||
private _handleClick(): void {
|
||||
if (this.disabled) {
|
||||
return;
|
||||
}
|
||||
this._menu!.anchor = this;
|
||||
this._menu!.show();
|
||||
}
|
||||
|
@@ -32,9 +32,6 @@ class HaCameraStream extends LitElement {
|
||||
@property({ type: Boolean, attribute: "muted" })
|
||||
public muted = false;
|
||||
|
||||
@property({ type: Boolean, attribute: "allow-exoplayer" })
|
||||
public allowExoPlayer = false;
|
||||
|
||||
// We keep track if we should force MJPEG with a string
|
||||
// that way it automatically resets if we change entity.
|
||||
@internalProperty() private _forceMJPEG?: string;
|
||||
@@ -64,7 +61,6 @@ class HaCameraStream extends LitElement {
|
||||
<ha-hls-player
|
||||
autoplay
|
||||
playsinline
|
||||
.allowExoPlayer=${this.allowExoPlayer}
|
||||
.muted=${this.muted}
|
||||
.controls=${this.controls}
|
||||
.hass=${this.hass}
|
||||
|
@@ -190,7 +190,7 @@ export class HaCodeEditor extends UpdatingElement {
|
||||
}
|
||||
|
||||
.cm-s-default .cm-meta {
|
||||
color: var(--codemirror-meta, var(--primary-text-color));
|
||||
color: var(--codemirror-meta, #000);
|
||||
}
|
||||
|
||||
.cm-s-default .cm-attribute {
|
||||
|
@@ -12,6 +12,7 @@ import {
|
||||
} from "lit-element";
|
||||
import { fireEvent } from "../common/dom/fire_event";
|
||||
import { nextRender } from "../common/util/render-status";
|
||||
import { getExternalConfig } from "../external_app/external_config";
|
||||
import type { HomeAssistant } from "../types";
|
||||
|
||||
type HLSModule = typeof import("hls.js");
|
||||
@@ -34,9 +35,6 @@ class HaHLSPlayer extends LitElement {
|
||||
@property({ type: Boolean, attribute: "playsinline" })
|
||||
public playsInline = false;
|
||||
|
||||
@property({ type: Boolean, attribute: "allow-exoplayer" })
|
||||
public allowExoPlayer = false;
|
||||
|
||||
@query("video") private _videoEl!: HTMLVideoElement;
|
||||
|
||||
@internalProperty() private _attached = false;
|
||||
@@ -93,8 +91,12 @@ class HaHLSPlayer extends LitElement {
|
||||
}
|
||||
|
||||
private async _getUseExoPlayer(): Promise<boolean> {
|
||||
if (!this.hass!.auth.external) {
|
||||
return false;
|
||||
}
|
||||
const externalConfig = await getExternalConfig(this.hass!.auth.external);
|
||||
return externalConfig && externalConfig.hasExoPlayer;
|
||||
}
|
||||
|
||||
private async _startHls(): Promise<void> {
|
||||
let hls: any;
|
||||
@@ -135,10 +137,7 @@ class HaHLSPlayer extends LitElement {
|
||||
this._videoEl.style.visibility = "hidden";
|
||||
await this.hass!.auth.external!.sendMessage({
|
||||
type: "exoplayer/play_hls",
|
||||
payload: {
|
||||
url: new URL(url, window.location.href).toString(),
|
||||
muted: this.muted,
|
||||
},
|
||||
payload: new URL(url, window.location.href).toString(),
|
||||
});
|
||||
}
|
||||
|
||||
|
@@ -24,17 +24,208 @@ import {
|
||||
import { debounce } from "../common/util/debounce";
|
||||
import { fireEvent } from "../common/dom/fire_event";
|
||||
|
||||
interface DeprecatedIcon {
|
||||
[key: string]: {
|
||||
removeIn: string;
|
||||
newName?: string;
|
||||
};
|
||||
}
|
||||
|
||||
const mdiDeprecatedIcons: DeprecatedIcon = {
|
||||
scooter: { removeIn: "117", newName: "human-scooter" },
|
||||
const mdiRenameMapping = {
|
||||
"account-badge": "badge-account",
|
||||
"account-badge-alert": "badge-account-alert",
|
||||
"account-badge-alert-outline": "badge-account-alert-outline",
|
||||
"account-badge-horizontal": "badge-account-horizontal",
|
||||
"account-badge-horizontal-outline": "badge-account-horizontal-outline",
|
||||
"account-badge-outline": "badge-account-outline",
|
||||
"account-card-details": "card-account-details",
|
||||
"account-card-details-outline": "card-account-details-outline",
|
||||
airplay: "apple-airplay",
|
||||
artist: "account-music",
|
||||
"artist-outline": "account-music-outline",
|
||||
audiobook: "book-music",
|
||||
azure: "microsoft-azure",
|
||||
"azure-devops": "microsoft-azure-devops",
|
||||
bible: "book-cross",
|
||||
bowl: "bowl-mix",
|
||||
"calendar-repeat": "calendar-sync",
|
||||
"calendar-repeat-outline": "calendar-sync-outline",
|
||||
"camcorder-box": "video-box",
|
||||
"camcorder-box-off": "video-box-off",
|
||||
"cellphone-settings-variant": "cellphone-cog",
|
||||
"chart-snakey": "chart-sankey",
|
||||
"chart-snakey-variant": "chart-sankey-variant",
|
||||
coin: "currency-usd-circle",
|
||||
"coin-outline": "currency-usd-circle-outline",
|
||||
"coins-outline": "circle-multiple-outline",
|
||||
"contact-mail": "card-account-mail",
|
||||
"contact-mail-outline": "card-account-mail-outline",
|
||||
"contact-phone": "card-account-phone",
|
||||
"contact-phone-outline": "card-account-phone-outline",
|
||||
cowboy: "account-cowboy-hat",
|
||||
"database-refresh": "database-sync",
|
||||
dictionary: "book-alphabet",
|
||||
edge: "microsoft-edge",
|
||||
"edge-legacy": "microsoft-edge-legacy",
|
||||
"file-document-box": "text-box",
|
||||
"file-document-box-check-outline": "text-box-check-outline",
|
||||
"file-document-box-minus": "text-box-minus",
|
||||
"file-document-box-minus-outline": "text-box-minus-outline",
|
||||
"file-document-box-multiple": "text-box-multiple",
|
||||
"file-document-box-multiple-outline": "text-box-multiple-outline",
|
||||
"file-document-box-outline": "text-box-outline",
|
||||
"file-document-box-plus": "text-box-plus",
|
||||
"file-document-box-plus-outline": "text-box-plus-outline",
|
||||
"file-document-box-remove": "text-box-remove",
|
||||
"file-document-box-remove-outline": "text-box-remove-outline",
|
||||
"file-document-box-search": "text-box-search",
|
||||
"file-document-box-search-outline": "text-box-search-outline",
|
||||
"file-settings-variant": "file-cog",
|
||||
"file-settings-variant-outline": "file-cog-outline",
|
||||
"folder-settings-variant": "folder-cog",
|
||||
"folder-settings-variant-outline": "folder-cog-outline",
|
||||
"github-circle": "github",
|
||||
"google-adwords": "google-ads",
|
||||
hackernews: "y-combinator",
|
||||
hotel: "bed",
|
||||
"image-filter": "image-multiple-outline",
|
||||
"internet-explorer": "microsoft-internet-explorer",
|
||||
json: "code-json",
|
||||
kotlin: "language-kotlin",
|
||||
"library-books": "filmstrip-box",
|
||||
"library-movie": "filmstrip-box-multiple",
|
||||
"library-music": "music-box-multiple",
|
||||
"library-music-outline": "music-box-multiple-outline",
|
||||
"library-video": "play-box-multiple",
|
||||
markdown: "language-markdown",
|
||||
"markdown-outline": "language-markdown-outline",
|
||||
"message-settings-variant": "message-cog",
|
||||
"message-settings-variant-outline": "message-cog-outline",
|
||||
"microsoft-dynamics": "microsoft-dynamics-365",
|
||||
"network-router": "router-network",
|
||||
office: "microsoft-office",
|
||||
onedrive: "microsoft-onedrive",
|
||||
onenote: "microsoft-onenote",
|
||||
outlook: "microsoft-outlook",
|
||||
playstation: "sony-playstation",
|
||||
"periodic-table-co": "molecule-co",
|
||||
"periodic-table-co2": "molecule-co2",
|
||||
pot: "pot-steam",
|
||||
ruby: "language-ruby",
|
||||
sailing: "sail-boat",
|
||||
scooter: "human-scooter",
|
||||
settings: "cog",
|
||||
"settings-box": "cog-box",
|
||||
"settings-outline": "cog-outline",
|
||||
"settings-transfer": "cog-transfer",
|
||||
"settings-transfer-outline": "cog-transfer-outline",
|
||||
"shield-refresh": "shield-sync",
|
||||
"shield-refresh-outline": "shield-sync-outline",
|
||||
"sort-alphabetical": "sort-alphabetical-variant",
|
||||
"sort-alphabetical-ascending": "sort-alphabetical-ascending-variant",
|
||||
"sort-alphabetical-descending": "sort-alphabetical-descending-variant",
|
||||
"sort-numeric": "sort-numeric-variant",
|
||||
"star-half": "star-half-full",
|
||||
storefront: "storefront-outline",
|
||||
timer: "timer-outline",
|
||||
"timer-off": "timer-off-outline",
|
||||
towing: "tow-truck",
|
||||
voice: "account-voice",
|
||||
"wall-sconce-variant": "wall-sconce-round-variant",
|
||||
wii: "nintendo-wii",
|
||||
wiiu: "nintendo-wiiu",
|
||||
windows: "microsoft-windows",
|
||||
"windows-classic": "microsoft-windows-classic",
|
||||
worker: "account-hard-hat",
|
||||
xbox: "microsoft-xbox",
|
||||
"xbox-controller": "microsoft-xbox-controller",
|
||||
"xbox-controller-battery-alert": "microsoft-xbox-controller-battery-alert",
|
||||
"xbox-controller-battery-charging":
|
||||
"microsoft-xbox-controller-battery-charging",
|
||||
"xbox-controller-battery-empty": "microsoft-xbox-controller-battery-empty",
|
||||
"xbox-controller-battery-full": "microsoft-xbox-controller-battery-full",
|
||||
"xbox-controller-battery-low": "microsoft-xbox-controller-battery-low",
|
||||
"xbox-controller-battery-medium": "microsoft-xbox-controller-battery-medium",
|
||||
"xbox-controller-battery-unknown":
|
||||
"microsoft-xbox-controller-battery-unknown",
|
||||
"xbox-controller-menu": "microsoft-xbox-controller-menu",
|
||||
"xbox-controller-off": "microsoft-xbox-controller-off",
|
||||
"xbox-controller-view": "microsoft-xbox-controller-view",
|
||||
yammer: "microsoft-yammer",
|
||||
"youtube-creator-studio": "youtube-studio",
|
||||
"selection-mutliple": "selection-multiple",
|
||||
textarea: "form-textarea",
|
||||
textbox: "form-textbox",
|
||||
"textbox-lock": "form-textbox-lock",
|
||||
"textbox-password": "form-textbox-password",
|
||||
"syllabary-katakana-half-width": "syllabary-katakana-halfwidth",
|
||||
"visual-studio-code": "microsoft-visual-studio-code",
|
||||
"visual-studio": "microsoft-visual-studio",
|
||||
};
|
||||
|
||||
const mdiRemovedIcons = new Set([
|
||||
"accusoft",
|
||||
"amazon-drive",
|
||||
"android-head",
|
||||
"basecamp",
|
||||
"beats",
|
||||
"behance",
|
||||
"blackberry",
|
||||
"cisco-webex",
|
||||
"disqus-outline",
|
||||
"dribbble",
|
||||
"dribbble-box",
|
||||
"etsy",
|
||||
"eventbrite",
|
||||
"facebook-box",
|
||||
"flattr",
|
||||
"flickr",
|
||||
"foursquare",
|
||||
"github-box",
|
||||
"github-face",
|
||||
"glassdoor",
|
||||
"google-adwords",
|
||||
"google-pages",
|
||||
"google-physical-web",
|
||||
"google-plus-box",
|
||||
"houzz",
|
||||
"houzz-box",
|
||||
"instapaper",
|
||||
"itunes",
|
||||
"language-python-text",
|
||||
"lastfm",
|
||||
"linkedin-box",
|
||||
"lyft",
|
||||
"mail-ru",
|
||||
"mastodon-variant",
|
||||
"medium",
|
||||
"meetup",
|
||||
"mixcloud",
|
||||
"mixer",
|
||||
"nfc-off",
|
||||
"npm-variant",
|
||||
"npm-variant-outline",
|
||||
"paypal",
|
||||
"periscope",
|
||||
"pinterest-box",
|
||||
"pocket",
|
||||
"quicktime",
|
||||
"shopify",
|
||||
"slackware",
|
||||
"square-inc",
|
||||
"square-inc-cash",
|
||||
"steam-box",
|
||||
"strava",
|
||||
"tor",
|
||||
"tumblr",
|
||||
"tumblr-box",
|
||||
"tumblr-reblog",
|
||||
"twitter-box",
|
||||
"twitter-circle",
|
||||
"uber",
|
||||
"venmo",
|
||||
"vk-box",
|
||||
"vk-circle",
|
||||
"wunderlist",
|
||||
"xda",
|
||||
"xing-box",
|
||||
"xing-circle",
|
||||
"yelp",
|
||||
]);
|
||||
|
||||
const chunks: Chunks = {};
|
||||
|
||||
checkCacheVersion();
|
||||
@@ -100,16 +291,17 @@ export class HaIcon extends LitElement {
|
||||
|
||||
this._legacy = false;
|
||||
|
||||
if (iconName in mdiDeprecatedIcons) {
|
||||
const deprecatedIcon = mdiDeprecatedIcons[iconName];
|
||||
let message: string;
|
||||
|
||||
if (deprecatedIcon.newName) {
|
||||
message = `Icon ${iconPrefix}:${iconName} was renamed to ${iconPrefix}:${deprecatedIcon.newName}, please change your config, it will be removed in version ${deprecatedIcon.removeIn}.`;
|
||||
iconName = deprecatedIcon.newName!;
|
||||
} else {
|
||||
message = `Icon ${iconPrefix}:${iconName} was removed from MDI, please replace this icon with an other icon in your config, it will be removed in version ${deprecatedIcon.removeIn}.`;
|
||||
}
|
||||
if (iconName in mdiRenameMapping) {
|
||||
iconName = mdiRenameMapping[iconName];
|
||||
const message = `Icon ${iconPrefix}:${origIconName} was renamed to ${iconPrefix}:${iconName}, please change your config, it will be removed in version 0.115.`;
|
||||
// eslint-disable-next-line no-console
|
||||
console.warn(message);
|
||||
fireEvent(this, "write_log", {
|
||||
level: "warning",
|
||||
message,
|
||||
});
|
||||
} else if (mdiRemovedIcons.has(iconName)) {
|
||||
const message = `Icon ${this.icon} was removed from MDI, please replace this icon with an other icon in your config, it will be removed in version 0.115.`;
|
||||
// eslint-disable-next-line no-console
|
||||
console.warn(message);
|
||||
fireEvent(this, "write_log", {
|
||||
@@ -142,7 +334,6 @@ export class HaIcon extends LitElement {
|
||||
this._setPath(chunks[chunk], iconName);
|
||||
return;
|
||||
}
|
||||
|
||||
const iconPromise = fetch(`/static/mdi/${chunk}.json`).then((response) =>
|
||||
response.json()
|
||||
);
|
||||
|
@@ -159,6 +159,8 @@ const computePanels = memoizeOne(
|
||||
|
||||
let Sortable;
|
||||
|
||||
let sortStyles: CSSResult;
|
||||
|
||||
@customElement("ha-sidebar")
|
||||
class HaSidebar extends LitElement {
|
||||
@property({ attribute: false }) public hass!: HomeAssistant;
|
||||
@@ -169,12 +171,12 @@ class HaSidebar extends LitElement {
|
||||
|
||||
@property({ type: Boolean, reflect: true }) public expanded = false;
|
||||
|
||||
@property({ type: Boolean }) public editMode = false;
|
||||
|
||||
@internalProperty() private _externalConfig?: ExternalConfig;
|
||||
|
||||
@internalProperty() private _notifications?: PersistentNotification[];
|
||||
|
||||
@internalProperty() private _editMode = false;
|
||||
|
||||
// property used only in css
|
||||
// @ts-ignore
|
||||
@property({ type: Boolean, reflect: true }) public rtl = false;
|
||||
@@ -225,19 +227,26 @@ class HaSidebar extends LitElement {
|
||||
}
|
||||
|
||||
return html`
|
||||
${this._editMode
|
||||
? html`
|
||||
<style>
|
||||
${sortStyles?.cssText}
|
||||
</style>
|
||||
`
|
||||
: ""}
|
||||
<div
|
||||
class="menu"
|
||||
@action=${this._handleAction}
|
||||
.actionHandler=${actionHandler({
|
||||
hasHold: !this.editMode,
|
||||
disabled: this.editMode,
|
||||
hasHold: !this._editMode,
|
||||
disabled: this._editMode,
|
||||
})}
|
||||
>
|
||||
${!this.narrow
|
||||
? html`
|
||||
<mwc-icon-button
|
||||
.label=${hass.localize("ui.sidebar.sidebar_toggle")}
|
||||
@action=${this._toggleSidebar}
|
||||
@click=${this._toggleSidebar}
|
||||
>
|
||||
<ha-svg-icon
|
||||
.path=${hass.dockedSidebar === "docked"
|
||||
@@ -248,7 +257,7 @@ class HaSidebar extends LitElement {
|
||||
`
|
||||
: ""}
|
||||
<div class="title">
|
||||
${this.editMode
|
||||
${this._editMode
|
||||
? html`<mwc-button outlined @click=${this._closeEditMode}>
|
||||
${hass.localize("ui.sidebar.done")}
|
||||
</mwc-button>`
|
||||
@@ -264,7 +273,7 @@ class HaSidebar extends LitElement {
|
||||
@scroll=${this._listboxScroll}
|
||||
@keydown=${this._listboxKeydown}
|
||||
>
|
||||
${this.editMode
|
||||
${this._editMode
|
||||
? html`<div id="sortable">
|
||||
${guard([this._hiddenPanels, this._renderEmptySortable], () =>
|
||||
this._renderEmptySortable
|
||||
@@ -274,7 +283,7 @@ class HaSidebar extends LitElement {
|
||||
</div>`
|
||||
: this._renderPanels(beforeSpacer)}
|
||||
<div class="spacer" disabled></div>
|
||||
${this.editMode && this._hiddenPanels.length
|
||||
${this._editMode && this._hiddenPanels.length
|
||||
? html`
|
||||
${this._hiddenPanels.map((url) => {
|
||||
const panel = this.hass.panels[url];
|
||||
@@ -298,7 +307,7 @@ class HaSidebar extends LitElement {
|
||||
: hass.localize(`panel.${panel.title}`) ||
|
||||
panel.title}</span
|
||||
>
|
||||
<mwc-icon-button class="show-panel">
|
||||
<mwc-icon-button class="hide-panel">
|
||||
<ha-svg-icon .path=${mdiPlus}></ha-svg-icon>
|
||||
</mwc-icon-button>
|
||||
</paper-icon-item>`;
|
||||
@@ -403,10 +412,10 @@ class HaSidebar extends LitElement {
|
||||
changedProps.has("alwaysExpand") ||
|
||||
changedProps.has("_externalConfig") ||
|
||||
changedProps.has("_notifications") ||
|
||||
changedProps.has("editMode") ||
|
||||
changedProps.has("_editMode") ||
|
||||
changedProps.has("_renderEmptySortable") ||
|
||||
changedProps.has("_hiddenPanels") ||
|
||||
(changedProps.has("_panelOrder") && !this.editMode)
|
||||
(changedProps.has("_panelOrder") && !this._editMode)
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
@@ -440,6 +449,9 @@ class HaSidebar extends LitElement {
|
||||
subscribeNotifications(this.hass.connection, (notifications) => {
|
||||
this._notifications = notifications;
|
||||
});
|
||||
window.addEventListener("hass-edit-sidebar", () =>
|
||||
this._activateEditMode()
|
||||
);
|
||||
}
|
||||
|
||||
protected updated(changedProps) {
|
||||
@@ -447,13 +459,6 @@ class HaSidebar extends LitElement {
|
||||
if (changedProps.has("alwaysExpand")) {
|
||||
this.expanded = this.alwaysExpand;
|
||||
}
|
||||
if (changedProps.has("editMode")) {
|
||||
if (this.editMode) {
|
||||
this._activateEditMode();
|
||||
} else {
|
||||
this._deactivateEditMode();
|
||||
}
|
||||
}
|
||||
if (!changedProps.has("hass")) {
|
||||
return;
|
||||
}
|
||||
@@ -484,7 +489,7 @@ class HaSidebar extends LitElement {
|
||||
return;
|
||||
}
|
||||
|
||||
fireEvent(this, "hass-edit-sidebar", { editMode: true });
|
||||
this._activateEditMode();
|
||||
}
|
||||
|
||||
private async _activateEditMode() {
|
||||
@@ -494,14 +499,15 @@ class HaSidebar extends LitElement {
|
||||
import("../resources/ha-sortable-style"),
|
||||
]);
|
||||
|
||||
const style = document.createElement("style");
|
||||
style.innerHTML = sortStylesImport.sortableStyles.cssText;
|
||||
this.shadowRoot!.appendChild(style);
|
||||
sortStyles = sortStylesImport.sortableStyles;
|
||||
|
||||
Sortable = sortableImport.Sortable;
|
||||
Sortable.mount(sortableImport.OnSpill);
|
||||
Sortable.mount(sortableImport.AutoScroll());
|
||||
}
|
||||
this._editMode = true;
|
||||
|
||||
fireEvent(this, "hass-open-menu");
|
||||
|
||||
await this.updateComplete;
|
||||
|
||||
@@ -513,20 +519,16 @@ class HaSidebar extends LitElement {
|
||||
animation: 150,
|
||||
fallbackClass: "sortable-fallback",
|
||||
dataIdAttr: "data-panel",
|
||||
handle: "paper-icon-item",
|
||||
onSort: async () => {
|
||||
this._panelOrder = this._sortable.toArray();
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
private _deactivateEditMode() {
|
||||
private _closeEditMode() {
|
||||
this._sortable?.destroy();
|
||||
this._sortable = undefined;
|
||||
}
|
||||
|
||||
private _closeEditMode() {
|
||||
fireEvent(this, "hass-edit-sidebar", { editMode: false });
|
||||
this._editMode = false;
|
||||
}
|
||||
|
||||
private async _hidePanel(ev: Event) {
|
||||
@@ -539,25 +541,20 @@ class HaSidebar extends LitElement {
|
||||
this._hiddenPanels = [...this._hiddenPanels, panel];
|
||||
this._renderEmptySortable = true;
|
||||
await this.updateComplete;
|
||||
const container = this.shadowRoot!.getElementById("sortable")!;
|
||||
while (container.lastElementChild) {
|
||||
container.removeChild(container.lastElementChild);
|
||||
}
|
||||
this._renderEmptySortable = false;
|
||||
}
|
||||
|
||||
private async _unhidePanel(ev: Event) {
|
||||
ev.preventDefault();
|
||||
const panel = (ev.currentTarget as any).panel;
|
||||
this._hiddenPanels = this._hiddenPanels.filter(
|
||||
(hidden) => hidden !== panel
|
||||
);
|
||||
const index = this._hiddenPanels.indexOf((ev.currentTarget as any).panel);
|
||||
if (index < 0) {
|
||||
return;
|
||||
}
|
||||
this._hiddenPanels.splice(index, 1);
|
||||
// Make a copy for Memoize
|
||||
this._hiddenPanels = [...this._hiddenPanels];
|
||||
this._renderEmptySortable = true;
|
||||
await this.updateComplete;
|
||||
const container = this.shadowRoot!.getElementById("sortable")!;
|
||||
while (container.lastElementChild) {
|
||||
container.removeChild(container.lastElementChild);
|
||||
}
|
||||
this._renderEmptySortable = false;
|
||||
}
|
||||
|
||||
@@ -653,10 +650,7 @@ class HaSidebar extends LitElement {
|
||||
});
|
||||
}
|
||||
|
||||
private _toggleSidebar(ev: CustomEvent) {
|
||||
if (ev.detail.action !== "tap") {
|
||||
return;
|
||||
}
|
||||
private _toggleSidebar() {
|
||||
fireEvent(this, "hass-toggle-menu");
|
||||
}
|
||||
|
||||
@@ -698,8 +692,7 @@ class HaSidebar extends LitElement {
|
||||
></ha-svg-icon>`
|
||||
: html`<ha-icon slot="item-icon" .icon=${icon}></ha-icon>`}
|
||||
<span class="item-text">${title}</span>
|
||||
</paper-icon-item>
|
||||
${this.editMode
|
||||
${this._editMode
|
||||
? html`<mwc-icon-button
|
||||
class="hide-panel"
|
||||
.panel=${urlPath}
|
||||
@@ -708,6 +701,7 @@ class HaSidebar extends LitElement {
|
||||
<ha-svg-icon .path=${mdiClose}></ha-svg-icon>
|
||||
</mwc-icon-button>`
|
||||
: ""}
|
||||
</paper-icon-item>
|
||||
</a>
|
||||
`;
|
||||
}
|
||||
@@ -783,10 +777,6 @@ class HaSidebar extends LitElement {
|
||||
.title mwc-button {
|
||||
width: 100%;
|
||||
}
|
||||
#sortable,
|
||||
.hidden-panel {
|
||||
display: none;
|
||||
}
|
||||
|
||||
paper-listbox {
|
||||
padding: 4px 0;
|
||||
|
@@ -22,20 +22,19 @@ import { styleMap } from "lit-html/directives/style-map";
|
||||
import { fireEvent } from "../../common/dom/fire_event";
|
||||
import { computeRTLDirection } from "../../common/util/compute_rtl";
|
||||
import { debounce } from "../../common/util/debounce";
|
||||
import type { MediaPlayerItem } from "../../data/media-player";
|
||||
import {
|
||||
browseLocalMediaPlayer,
|
||||
browseMediaPlayer,
|
||||
BROWSER_PLAYER,
|
||||
BROWSER_SOURCE,
|
||||
MediaClassBrowserSettings,
|
||||
MediaPickedEvent,
|
||||
MediaPlayerBrowseAction,
|
||||
} from "../../data/media-player";
|
||||
import type { MediaPlayerItem } from "../../data/media-player";
|
||||
import { showAlertDialog } from "../../dialogs/generic/show-dialog-box";
|
||||
import { installResizeObserver } from "../../panels/lovelace/common/install-resize-observer";
|
||||
import { haStyle } from "../../resources/styles";
|
||||
import type { HomeAssistant } from "../../types";
|
||||
import { documentationUrl } from "../../util/documentation-url";
|
||||
import "../entity/ha-entity-picker";
|
||||
import "../ha-button-menu";
|
||||
import "../ha-card";
|
||||
@@ -109,11 +108,9 @@ export class HaMediaPlayerBrowse extends LitElement {
|
||||
text: this._renderError(this._error),
|
||||
});
|
||||
} else {
|
||||
return html`
|
||||
<div class="container">
|
||||
return html`<div class="container">
|
||||
${this._renderError(this._error)}
|
||||
</div>
|
||||
`;
|
||||
</div>`;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -238,7 +235,7 @@ export class HaMediaPlayerBrowse extends LitElement {
|
||||
</div>
|
||||
${this._error
|
||||
? html`
|
||||
<div class="container">
|
||||
<div class="container error">
|
||||
${this._renderError(this._error)}
|
||||
</div>
|
||||
`
|
||||
@@ -358,28 +355,6 @@ export class HaMediaPlayerBrowse extends LitElement {
|
||||
: html`
|
||||
<div class="container">
|
||||
${this.hass.localize("ui.components.media-browser.no_items")}
|
||||
${currentItem.media_content_id ===
|
||||
"media-source://media_source/local/."
|
||||
? html`<br />${this.hass.localize(
|
||||
"ui.components.media-browser.learn_adding_local_media",
|
||||
"documentation",
|
||||
html`<a
|
||||
href="${documentationUrl(
|
||||
this.hass,
|
||||
"/more-info/local-media/add-media"
|
||||
)}"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>${this.hass.localize(
|
||||
"ui.components.media-browser.documentation"
|
||||
)}</a
|
||||
>`
|
||||
)}
|
||||
<br />
|
||||
${this.hass.localize(
|
||||
"ui.components.media-browser.local_media_files"
|
||||
)}.`
|
||||
: ""}
|
||||
</div>
|
||||
`}
|
||||
`;
|
||||
@@ -480,9 +455,8 @@ export class HaMediaPlayerBrowse extends LitElement {
|
||||
mediaContentId?: string,
|
||||
mediaContentType?: string
|
||||
): Promise<MediaPlayerItem> {
|
||||
this._loading = true;
|
||||
const itemData =
|
||||
this.entityId !== BROWSER_PLAYER
|
||||
this.entityId !== BROWSER_SOURCE
|
||||
? await browseMediaPlayer(
|
||||
this.hass,
|
||||
this.entityId,
|
||||
@@ -491,7 +465,6 @@ export class HaMediaPlayerBrowse extends LitElement {
|
||||
)
|
||||
: await browseLocalMediaPlayer(this.hass, mediaContentId);
|
||||
|
||||
this._loading = false;
|
||||
return itemData;
|
||||
}
|
||||
|
||||
@@ -525,35 +498,29 @@ export class HaMediaPlayerBrowse extends LitElement {
|
||||
private _renderError(err: { message: string; code: string }) {
|
||||
if (err.message === "Media directory does not exist.") {
|
||||
return html`
|
||||
<h2>
|
||||
${this.hass.localize(
|
||||
"ui.components.media-browser.no_local_media_found"
|
||||
)}
|
||||
</h2>
|
||||
<h2>No local media found.</h2>
|
||||
<p>
|
||||
${this.hass.localize("ui.components.media-browser.no_media_folder")}
|
||||
<br />
|
||||
${this.hass.localize(
|
||||
"ui.components.media-browser.setup_local_help",
|
||||
"documentation",
|
||||
html`<a
|
||||
href="${documentationUrl(
|
||||
this.hass,
|
||||
"/more-info/local-media/setup-media"
|
||||
)}"
|
||||
It looks like you have not yet created a media directory.
|
||||
<br />Create a directory with the name <b>"media"</b> in the
|
||||
configuration directory of Home Assistant
|
||||
(${this.hass.config.config_dir}). <br />Place your video, audio and
|
||||
image files in this directory to be able to browse and play them in
|
||||
the browser or on supported media players.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Check the
|
||||
<a
|
||||
href="https://www.home-assistant.io/integrations/media_source/#local-media"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>${this.hass.localize(
|
||||
"ui.components.media-browser.documentation"
|
||||
)}</a
|
||||
>`
|
||||
)}
|
||||
<br />
|
||||
${this.hass.localize("ui.components.media-browser.local_media_files")}
|
||||
>documentation</a
|
||||
>
|
||||
for more info
|
||||
</p>
|
||||
`;
|
||||
}
|
||||
return html`<span class="error">${err.message}</span>`;
|
||||
return html`<span class="error">err.message</span>`;
|
||||
}
|
||||
|
||||
static get styles(): CSSResultArray {
|
||||
@@ -568,13 +535,6 @@ export class HaMediaPlayerBrowse extends LitElement {
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
ha-circular-progress {
|
||||
--mdc-theme-primary: var(--primary-color);
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
.container {
|
||||
padding: 16px;
|
||||
}
|
||||
|
@@ -62,22 +62,12 @@ class StateHistoryChartLine extends LocalizeMixin(PolymerElement) {
|
||||
this.drawChart();
|
||||
}
|
||||
|
||||
ready() {
|
||||
super.ready();
|
||||
// safari doesn't always render the canvas when we animate it, so we remove overflow hidden when the animation is complete
|
||||
this.addEventListener("transitionend", () => {
|
||||
this.style.overflow = "auto";
|
||||
});
|
||||
}
|
||||
|
||||
dataChanged() {
|
||||
this.drawChart();
|
||||
}
|
||||
|
||||
_onRenderedChanged(rendered) {
|
||||
if (rendered) {
|
||||
this.animateHeight();
|
||||
}
|
||||
if (rendered) this.animateHeight();
|
||||
}
|
||||
|
||||
animateHeight() {
|
||||
@@ -89,15 +79,15 @@ class StateHistoryChartLine extends LocalizeMixin(PolymerElement) {
|
||||
}
|
||||
|
||||
drawChart() {
|
||||
if (!this._isAttached) {
|
||||
return;
|
||||
}
|
||||
|
||||
const unit = this.unit;
|
||||
const deviceStates = this.data;
|
||||
const datasets = [];
|
||||
let endTime;
|
||||
|
||||
if (!this._isAttached) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (deviceStates.length === 0) {
|
||||
return;
|
||||
}
|
||||
|
@@ -1,23 +1,23 @@
|
||||
import {
|
||||
mdiAccountMusic,
|
||||
mdiAccountMusicOutline,
|
||||
mdiAlbum,
|
||||
mdiApplication,
|
||||
mdiDramaMasks,
|
||||
mdiFileMusic,
|
||||
mdiFolder,
|
||||
mdiGamepadVariant,
|
||||
mdiImage,
|
||||
mdiMovie,
|
||||
mdiMusic,
|
||||
mdiPlaylistMusic,
|
||||
mdiPodcast,
|
||||
mdiTelevisionClassic,
|
||||
mdiVideo,
|
||||
mdiWeb,
|
||||
} from "@mdi/js";
|
||||
import type { HassEntity } from "home-assistant-js-websocket";
|
||||
import type { HomeAssistant } from "../types";
|
||||
import {
|
||||
mdiFolder,
|
||||
mdiPlaylistMusic,
|
||||
mdiFileMusic,
|
||||
mdiAlbum,
|
||||
mdiMusic,
|
||||
mdiTelevisionClassic,
|
||||
mdiMovie,
|
||||
mdiVideo,
|
||||
mdiImage,
|
||||
mdiWeb,
|
||||
mdiGamepadVariant,
|
||||
mdiAccountMusic,
|
||||
mdiPodcast,
|
||||
mdiApplication,
|
||||
mdiAccountMusicOutline,
|
||||
mdiDramaMasks,
|
||||
} from "@mdi/js";
|
||||
|
||||
export const SUPPORT_PAUSE = 1;
|
||||
export const SUPPORT_SEEK = 2;
|
||||
@@ -38,7 +38,7 @@ export const CONTRAST_RATIO = 4.5;
|
||||
|
||||
export type MediaPlayerBrowseAction = "pick" | "play";
|
||||
|
||||
export const BROWSER_PLAYER = "browser";
|
||||
export const BROWSER_SOURCE = "browser";
|
||||
|
||||
export type MediaClassBrowserSetting = {
|
||||
icon: string;
|
||||
|
@@ -20,7 +20,6 @@ import { LocalizeFunc } from "../../common/translations/localize";
|
||||
import "../../components/ha-icon-next";
|
||||
import { domainToName } from "../../data/integration";
|
||||
import { HomeAssistant } from "../../types";
|
||||
import { documentationUrl } from "../../util/documentation-url";
|
||||
import { FlowConfig } from "./show-dialog-data-entry-flow";
|
||||
import { configFlowContentStyles } from "./styles";
|
||||
|
||||
@@ -123,7 +122,7 @@ class StepFlowPickHandler extends LitElement {
|
||||
${this.hass.localize(
|
||||
"ui.panel.config.integrations.note_about_website_reference"
|
||||
)}<a
|
||||
href="${documentationUrl(this.hass, "/integrations/")}"
|
||||
href="https://www.home-assistant.io/integrations/"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>${this.hass.localize(
|
||||
|
@@ -48,7 +48,6 @@ class MoreInfoCamera extends LitElement {
|
||||
<ha-camera-stream
|
||||
.hass=${this.hass}
|
||||
.stateObj=${this.stateObj}
|
||||
allow-exoplayer
|
||||
controls
|
||||
></ha-camera-stream>
|
||||
${this._cameraPrefs
|
||||
|
@@ -32,7 +32,7 @@ class MoreInfoPerson extends LitElement {
|
||||
return html`
|
||||
<ha-attributes
|
||||
.stateObj=${this.stateObj}
|
||||
extra-filters="id,user_id,editable"
|
||||
extraFilters="id,user_id,editable"
|
||||
></ha-attributes>
|
||||
${this.stateObj.attributes.latitude && this.stateObj.attributes.longitude
|
||||
? html`
|
||||
@@ -78,9 +78,6 @@ class MoreInfoPerson extends LitElement {
|
||||
margin: 36px 0 8px 0;
|
||||
text-align: right;
|
||||
}
|
||||
ha-map {
|
||||
margin-top: 16px;
|
||||
}
|
||||
`;
|
||||
}
|
||||
}
|
||||
|
@@ -26,8 +26,10 @@ import { navigate } from "../../common/navigate";
|
||||
import "../../components/ha-dialog";
|
||||
import "../../components/ha-header-bar";
|
||||
import "../../components/ha-svg-icon";
|
||||
import "../../components/state-history-charts";
|
||||
import { removeEntityRegistryEntry } from "../../data/entity_registry";
|
||||
import { showEntityEditorDialog } from "../../panels/config/entities/show-dialog-entity-editor";
|
||||
import "../../panels/logbook/ha-logbook";
|
||||
import { haStyleDialog } from "../../resources/styles";
|
||||
import "../../state-summary/state-card-content";
|
||||
import { HomeAssistant } from "../../types";
|
||||
@@ -35,33 +37,36 @@ import { showConfirmationDialog } from "../generic/show-dialog-box";
|
||||
import "./ha-more-info-history";
|
||||
import "./ha-more-info-logbook";
|
||||
|
||||
import "./controls/more-info-alarm_control_panel";
|
||||
import "./controls/more-info-automation";
|
||||
import "./controls/more-info-camera";
|
||||
import "./controls/more-info-climate";
|
||||
import "./controls/more-info-configurator";
|
||||
import "./controls/more-info-counter";
|
||||
import "./controls/more-info-cover";
|
||||
import "./controls/more-info-fan";
|
||||
import "./controls/more-info-group";
|
||||
import "./controls/more-info-humidifier";
|
||||
import "./controls/more-info-input_datetime";
|
||||
import "./controls/more-info-light";
|
||||
import "./controls/more-info-lock";
|
||||
import "./controls/more-info-media_player";
|
||||
import "./controls/more-info-person";
|
||||
import "./controls/more-info-script";
|
||||
import "./controls/more-info-sun";
|
||||
import "./controls/more-info-timer";
|
||||
import "./controls/more-info-vacuum";
|
||||
import "./controls/more-info-water_heater";
|
||||
import "./controls/more-info-weather";
|
||||
import "./controls/more-info-default";
|
||||
|
||||
const DOMAINS_NO_INFO = ["camera", "configurator"];
|
||||
const EDITABLE_DOMAINS_WITH_ID = ["scene", "automation"];
|
||||
const EDITABLE_DOMAINS = ["script"];
|
||||
|
||||
const MORE_INFO_CONTROL_IMPORT = {
|
||||
alarm_control_panel: () => import("./controls/more-info-alarm_control_panel"),
|
||||
automation: () => import("./controls/more-info-automation"),
|
||||
camera: () => import("./controls/more-info-camera"),
|
||||
climate: () => import("./controls/more-info-climate"),
|
||||
configurator: () => import("./controls/more-info-configurator"),
|
||||
counter: () => import("./controls/more-info-counter"),
|
||||
cover: () => import("./controls/more-info-cover"),
|
||||
fan: () => import("./controls/more-info-fan"),
|
||||
group: () => import("./controls/more-info-group"),
|
||||
humidifier: () => import("./controls/more-info-humidifier"),
|
||||
input_datetime: () => import("./controls/more-info-input_datetime"),
|
||||
light: () => import("./controls/more-info-light"),
|
||||
lock: () => import("./controls/more-info-lock"),
|
||||
media_player: () => import("./controls/more-info-media_player"),
|
||||
person: () => import("./controls/more-info-person"),
|
||||
script: () => import("./controls/more-info-script"),
|
||||
sun: () => import("./controls/more-info-sun"),
|
||||
timer: () => import("./controls/more-info-timer"),
|
||||
vacuum: () => import("./controls/more-info-vacuum"),
|
||||
water_heater: () => import("./controls/more-info-water_heater"),
|
||||
weather: () => import("./controls/more-info-weather"),
|
||||
hidden: () => {},
|
||||
default: () => import("./controls/more-info-default"),
|
||||
};
|
||||
|
||||
export interface MoreInfoDialogParams {
|
||||
entityId: string | null;
|
||||
}
|
||||
@@ -105,6 +110,7 @@ export class MoreInfoDialog extends LitElement {
|
||||
} else {
|
||||
const type = stateMoreInfoType(stateObj);
|
||||
this._moreInfoType = `more-info-${type}`;
|
||||
MORE_INFO_CONTROL_IMPORT[type]();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -388,9 +394,7 @@ export class MoreInfoDialog extends LitElement {
|
||||
--dialog-content-padding: 0;
|
||||
}
|
||||
|
||||
state-card-content,
|
||||
ha-more-info-history,
|
||||
ha-more-info-logbook:not(:last-child) {
|
||||
state-card-content {
|
||||
display: block;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
@@ -1,4 +1,5 @@
|
||||
import {
|
||||
css,
|
||||
customElement,
|
||||
html,
|
||||
internalProperty,
|
||||
@@ -12,6 +13,7 @@ import { throttle } from "../../common/util/throttle";
|
||||
import "../../components/state-history-charts";
|
||||
import { getRecentWithCache } from "../../data/cached-history";
|
||||
import { HistoryResult } from "../../data/history";
|
||||
import { haStyle } from "../../resources/styles";
|
||||
import { HomeAssistant } from "../../types";
|
||||
|
||||
@customElement("ha-more-info-history")
|
||||
@@ -86,6 +88,18 @@ export class MoreInfoHistory extends LitElement {
|
||||
this.hass!.language
|
||||
);
|
||||
}
|
||||
|
||||
static get styles() {
|
||||
return [
|
||||
haStyle,
|
||||
css`
|
||||
state-history-charts {
|
||||
display: block;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
`,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
declare global {
|
||||
|
@@ -152,6 +152,8 @@ export class MoreInfoLogbook extends LitElement {
|
||||
ha-logbook {
|
||||
max-height: 250px;
|
||||
overflow: auto;
|
||||
display: block;
|
||||
margin-top: 16px;
|
||||
}
|
||||
ha-circular-progress {
|
||||
display: flex;
|
||||
|
@@ -1,6 +1,5 @@
|
||||
// Compat needs to be first import
|
||||
import "../resources/compatibility";
|
||||
import "../resources/safari-14-attachshadow-patch";
|
||||
import "@polymer/polymer/lib/elements/dom-if";
|
||||
import "@polymer/polymer/lib/elements/dom-repeat";
|
||||
import "../auth/ha-authorize";
|
||||
|
@@ -1,6 +1,5 @@
|
||||
// Compat needs to be first import
|
||||
import "../resources/compatibility";
|
||||
import "../resources/safari-14-attachshadow-patch";
|
||||
import {
|
||||
Auth,
|
||||
Connection,
|
||||
|
@@ -1,5 +1,4 @@
|
||||
import "../resources/compatibility";
|
||||
import "../resources/safari-14-attachshadow-patch";
|
||||
import { PolymerElement } from "@polymer/polymer";
|
||||
import { fireEvent } from "../common/dom/fire_event";
|
||||
import { loadJS } from "../common/dom/load_resource";
|
||||
|
@@ -1,6 +1,5 @@
|
||||
// Compat needs to be first import
|
||||
import "../resources/compatibility";
|
||||
import "../resources/safari-14-attachshadow-patch";
|
||||
import "../onboarding/ha-onboarding";
|
||||
import "../resources/ha-style";
|
||||
import "../resources/roboto";
|
||||
|
@@ -7,13 +7,12 @@ import {
|
||||
CSSResult,
|
||||
customElement,
|
||||
html,
|
||||
internalProperty,
|
||||
LitElement,
|
||||
property,
|
||||
PropertyValues,
|
||||
TemplateResult,
|
||||
} from "lit-element";
|
||||
import { fireEvent, HASSDomEvent } from "../common/dom/fire_event";
|
||||
import { fireEvent } from "../common/dom/fire_event";
|
||||
import { listenMediaQuery } from "../common/dom/media_query";
|
||||
import { toggleAttribute } from "../common/dom/toggle_attribute";
|
||||
import { showNotificationDrawer } from "../dialogs/notifications/show-notification-drawer";
|
||||
@@ -25,17 +24,10 @@ const NON_SWIPABLE_PANELS = ["map"];
|
||||
declare global {
|
||||
// for fire event
|
||||
interface HASSDomEvents {
|
||||
"hass-open-menu": undefined;
|
||||
"hass-toggle-menu": undefined;
|
||||
"hass-edit-sidebar": EditSideBarEvent;
|
||||
"hass-show-notifications": undefined;
|
||||
}
|
||||
interface HTMLElementEventMap {
|
||||
"hass-edit-sidebar": HASSDomEvent<EditSideBarEvent>;
|
||||
}
|
||||
}
|
||||
|
||||
interface EditSideBarEvent {
|
||||
editMode: boolean;
|
||||
}
|
||||
|
||||
@customElement("home-assistant-main")
|
||||
@@ -44,9 +36,7 @@ class HomeAssistantMain extends LitElement {
|
||||
|
||||
@property() public route?: Route;
|
||||
|
||||
@property({ type: Boolean }) public narrow?: boolean;
|
||||
|
||||
@internalProperty() private _sidebarEditMode = false;
|
||||
@property({ type: Boolean }) private narrow?: boolean;
|
||||
|
||||
protected render(): TemplateResult {
|
||||
const hass = this.hass;
|
||||
@@ -58,9 +48,7 @@ class HomeAssistantMain extends LitElement {
|
||||
const sidebarNarrow = this._sidebarNarrow;
|
||||
|
||||
const disableSwipe =
|
||||
this._sidebarEditMode ||
|
||||
!sidebarNarrow ||
|
||||
NON_SWIPABLE_PANELS.indexOf(hass.panelUrl) !== -1;
|
||||
!sidebarNarrow || NON_SWIPABLE_PANELS.indexOf(hass.panelUrl) !== -1;
|
||||
|
||||
// Style block in render because of the mixin that is not supported
|
||||
return html`
|
||||
@@ -88,7 +76,6 @@ class HomeAssistantMain extends LitElement {
|
||||
<ha-sidebar
|
||||
.hass=${hass}
|
||||
.narrow=${sidebarNarrow}
|
||||
.editMode=${this._sidebarEditMode}
|
||||
.alwaysExpand=${sidebarNarrow ||
|
||||
this.hass.dockedSidebar === "docked"}
|
||||
></ha-sidebar>
|
||||
@@ -106,12 +93,7 @@ class HomeAssistantMain extends LitElement {
|
||||
protected firstUpdated() {
|
||||
import(/* webpackChunkName: "ha-sidebar" */ "../components/ha-sidebar");
|
||||
|
||||
this.addEventListener(
|
||||
"hass-edit-sidebar",
|
||||
(ev: HASSDomEvent<EditSideBarEvent>) => {
|
||||
this._sidebarEditMode = ev.detail.editMode;
|
||||
|
||||
if (this._sidebarEditMode) {
|
||||
this.addEventListener("hass-open-menu", () => {
|
||||
if (this._sidebarNarrow) {
|
||||
this.drawer.open();
|
||||
} else {
|
||||
@@ -120,14 +102,9 @@ class HomeAssistantMain extends LitElement {
|
||||
});
|
||||
setTimeout(() => this.appLayout.resetLayout());
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
this.addEventListener("hass-toggle-menu", () => {
|
||||
if (this._sidebarEditMode) {
|
||||
return;
|
||||
}
|
||||
if (this._sidebarNarrow) {
|
||||
if (this.drawer.opened) {
|
||||
this.drawer.close();
|
||||
|
@@ -39,7 +39,6 @@ import "../../../layouts/ha-app-layout";
|
||||
import "../../../layouts/hass-tabs-subpage";
|
||||
import { haStyle } from "../../../resources/styles";
|
||||
import { HomeAssistant, Route } from "../../../types";
|
||||
import { documentationUrl } from "../../../util/documentation-url";
|
||||
import "../ha-config-section";
|
||||
import { configSections } from "../ha-panel-config";
|
||||
import "./action/ha-automation-action";
|
||||
@@ -160,10 +159,7 @@ export class HaAutomationEditor extends LitElement {
|
||||
"ui.panel.config.automation.editor.modes.description",
|
||||
"documentation_link",
|
||||
html`<a
|
||||
href="${documentationUrl(
|
||||
this.hass,
|
||||
"/integrations/automation/#automation-modes"
|
||||
)}"
|
||||
href="https://www.home-assistant.io/integrations/automation/#automation-modes"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>${this.hass.localize(
|
||||
@@ -251,10 +247,7 @@ export class HaAutomationEditor extends LitElement {
|
||||
)}
|
||||
</p>
|
||||
<a
|
||||
href="${documentationUrl(
|
||||
this.hass,
|
||||
"/docs/automation/trigger/"
|
||||
)}"
|
||||
href="https://home-assistant.io/docs/automation/trigger/"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>
|
||||
@@ -283,10 +276,7 @@ export class HaAutomationEditor extends LitElement {
|
||||
)}
|
||||
</p>
|
||||
<a
|
||||
href="${documentationUrl(
|
||||
this.hass,
|
||||
"/docs/scripts/conditions/"
|
||||
)}"
|
||||
href="https://home-assistant.io/docs/scripts/conditions/"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>
|
||||
@@ -315,10 +305,7 @@ export class HaAutomationEditor extends LitElement {
|
||||
)}
|
||||
</p>
|
||||
<a
|
||||
href="${documentationUrl(
|
||||
this.hass,
|
||||
"/docs/automation/action/"
|
||||
)}"
|
||||
href="https://home-assistant.io/docs/automation/action/"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>
|
||||
|
@@ -124,26 +124,6 @@ class CloudAlexa extends LitElement {
|
||||
? exposedCards
|
||||
: notExposedCards;
|
||||
|
||||
const iconButton = html`<mwc-icon-button
|
||||
slot="trigger"
|
||||
class=${classMap({
|
||||
exposed: isExposed!,
|
||||
"not-exposed": !isExposed,
|
||||
})}
|
||||
.disabled=${!emptyFilter}
|
||||
.title=${this.hass!.localize("ui.panel.config.cloud.google.expose")}
|
||||
>
|
||||
<ha-svg-icon
|
||||
.path=${config.should_expose !== null
|
||||
? isExposed
|
||||
? mdiCheckboxMarked
|
||||
: mdiCloseBox
|
||||
: isDomainExposed
|
||||
? mdiCheckboxMultipleMarked
|
||||
: mdiCloseBoxMultiple}
|
||||
></ha-svg-icon>
|
||||
</mwc-icon-button>`;
|
||||
|
||||
target.push(html`
|
||||
<ha-card>
|
||||
<div class="card-content">
|
||||
@@ -159,17 +139,34 @@ class CloudAlexa extends LitElement {
|
||||
.map((ifc) => ifc.replace(/(Alexa.|Controller)/g, ""))
|
||||
.join(", ")}
|
||||
</state-info>
|
||||
${!emptyFilter
|
||||
? html`${iconButton}`
|
||||
: html`<ha-button-menu
|
||||
<ha-button-menu
|
||||
corner="BOTTOM_START"
|
||||
.entityId=${stateObj.entity_id}
|
||||
@action=${this._exposeChanged}
|
||||
>
|
||||
${iconButton}
|
||||
<mwc-icon-button
|
||||
slot="trigger"
|
||||
class=${classMap({
|
||||
exposed: isExposed!,
|
||||
"not-exposed": !isExposed,
|
||||
})}
|
||||
.title=${this.hass!.localize(
|
||||
"ui.panel.config.cloud.alexa.expose"
|
||||
)}
|
||||
>
|
||||
<ha-svg-icon
|
||||
.path=${config.should_expose !== null
|
||||
? isExposed
|
||||
? mdiCheckboxMarked
|
||||
: mdiCloseBox
|
||||
: isDomainExposed
|
||||
? mdiCheckboxMultipleMarked
|
||||
: mdiCloseBoxMultiple}
|
||||
></ha-svg-icon>
|
||||
</mwc-icon-button>
|
||||
<mwc-list-item hasMeta>
|
||||
${this.hass!.localize(
|
||||
"ui.panel.config.cloud.google.expose_entity"
|
||||
"ui.panel.config.cloud.alexa.expose_entity"
|
||||
)}
|
||||
<ha-svg-icon
|
||||
class="exposed"
|
||||
@@ -179,7 +176,7 @@ class CloudAlexa extends LitElement {
|
||||
</mwc-list-item>
|
||||
<mwc-list-item hasMeta>
|
||||
${this.hass!.localize(
|
||||
"ui.panel.config.cloud.google.dont_expose_entity"
|
||||
"ui.panel.config.cloud.alexa.dont_expose_entity"
|
||||
)}
|
||||
<ha-svg-icon
|
||||
class="not-exposed"
|
||||
@@ -189,7 +186,7 @@ class CloudAlexa extends LitElement {
|
||||
</mwc-list-item>
|
||||
<mwc-list-item hasMeta>
|
||||
${this.hass!.localize(
|
||||
"ui.panel.config.cloud.google.follow_domain"
|
||||
"ui.panel.config.cloud.alexa.follow_domain"
|
||||
)}
|
||||
<ha-svg-icon
|
||||
class=${classMap({
|
||||
@@ -202,7 +199,7 @@ class CloudAlexa extends LitElement {
|
||||
: mdiCloseBoxMultiple}
|
||||
></ha-svg-icon>
|
||||
</mwc-list-item>
|
||||
</ha-button-menu>`}
|
||||
</ha-button-menu>
|
||||
</div>
|
||||
</div>
|
||||
</ha-card>
|
||||
|
@@ -14,7 +14,6 @@ import type { HaPaperDialog } from "../../../../components/dialog/ha-paper-dialo
|
||||
import { showConfirmationDialog } from "../../../../dialogs/generic/show-dialog-box";
|
||||
import { haStyle } from "../../../../resources/styles";
|
||||
import { HomeAssistant } from "../../../../types";
|
||||
import { documentationUrl } from "../../../../util/documentation-url";
|
||||
import { WebhookDialogParams } from "./show-dialog-manage-cloudhook";
|
||||
|
||||
const inputLabel = "Public URL – Click to copy to clipboard";
|
||||
@@ -38,11 +37,8 @@ export class DialogManageCloudhook extends LitElement {
|
||||
const { webhook, cloudhook } = this._params;
|
||||
const docsUrl =
|
||||
webhook.domain === "automation"
|
||||
? documentationUrl(
|
||||
this.hass!,
|
||||
"/docs/automation/trigger/#webhook-trigger"
|
||||
)
|
||||
: documentationUrl(this.hass!, `/integrations/${webhook.domain}/`);
|
||||
? "https://www.home-assistant.io/docs/automation/trigger/#webhook-trigger"
|
||||
: `https://www.home-assistant.io/integrations/${webhook.domain}/`;
|
||||
return html`
|
||||
<ha-paper-dialog with-backdrop>
|
||||
<h2>
|
||||
|
@@ -130,26 +130,6 @@ class CloudGoogleAssistant extends LitElement {
|
||||
? exposedCards
|
||||
: notExposedCards;
|
||||
|
||||
const iconButton = html`<mwc-icon-button
|
||||
slot="trigger"
|
||||
class=${classMap({
|
||||
exposed: isExposed!,
|
||||
"not-exposed": !isExposed,
|
||||
})}
|
||||
.disabled=${!emptyFilter}
|
||||
.title=${this.hass!.localize("ui.panel.config.cloud.google.expose")}
|
||||
>
|
||||
<ha-svg-icon
|
||||
.path=${config.should_expose !== null
|
||||
? isExposed
|
||||
? mdiCheckboxMarked
|
||||
: mdiCloseBox
|
||||
: isDomainExposed
|
||||
? mdiCheckboxMultipleMarked
|
||||
: mdiCloseBoxMultiple}
|
||||
></ha-svg-icon>
|
||||
</mwc-icon-button>`;
|
||||
|
||||
target.push(html`
|
||||
<ha-card>
|
||||
<div class="card-content">
|
||||
@@ -164,14 +144,31 @@ class CloudGoogleAssistant extends LitElement {
|
||||
.map((trait) => trait.substr(trait.lastIndexOf(".") + 1))
|
||||
.join(", ")}
|
||||
</state-info>
|
||||
${!emptyFilter
|
||||
? html`${iconButton}`
|
||||
: html`<ha-button-menu
|
||||
<ha-button-menu
|
||||
corner="BOTTOM_START"
|
||||
.entityId=${stateObj.entity_id}
|
||||
@action=${this._exposeChanged}
|
||||
>
|
||||
${iconButton}
|
||||
<mwc-icon-button
|
||||
slot="trigger"
|
||||
class=${classMap({
|
||||
exposed: isExposed!,
|
||||
"not-exposed": !isExposed,
|
||||
})}
|
||||
.title=${this.hass!.localize(
|
||||
"ui.panel.config.cloud.google.expose"
|
||||
)}
|
||||
>
|
||||
<ha-svg-icon
|
||||
.path=${config.should_expose !== null
|
||||
? isExposed
|
||||
? mdiCheckboxMarked
|
||||
: mdiCloseBox
|
||||
: isDomainExposed
|
||||
? mdiCheckboxMultipleMarked
|
||||
: mdiCloseBoxMultiple}
|
||||
></ha-svg-icon>
|
||||
</mwc-icon-button>
|
||||
<mwc-list-item hasMeta>
|
||||
${this.hass!.localize(
|
||||
"ui.panel.config.cloud.google.expose_entity"
|
||||
@@ -207,7 +204,7 @@ class CloudGoogleAssistant extends LitElement {
|
||||
: mdiCloseBoxMultiple}
|
||||
></ha-svg-icon>
|
||||
</mwc-list-item>
|
||||
</ha-button-menu>`}
|
||||
</ha-button-menu>
|
||||
</div>
|
||||
${entity.might_2fa
|
||||
? html`
|
||||
|
@@ -8,7 +8,6 @@ import "../../../../layouts/hass-subpage";
|
||||
import { EventsMixin } from "../../../../mixins/events-mixin";
|
||||
import LocalizeMixin from "../../../../mixins/localize-mixin";
|
||||
import "../../../../styles/polymer-ha-style";
|
||||
import { documentationUrl } from "../../../../util/documentation-url";
|
||||
import "../../ha-config-section";
|
||||
|
||||
/*
|
||||
@@ -71,8 +70,8 @@ class CloudRegister extends LocalizeMixin(EventsMixin(PolymerElement)) {
|
||||
<p>
|
||||
[[localize('ui.panel.config.cloud.register.information4')]]
|
||||
</p><ul>
|
||||
<li><a href="[[_computeDocumentationUrlTos(hass)]]" target="_blank" rel="noreferrer">[[localize('ui.panel.config.cloud.register.link_terms_conditions')]]</a></li>
|
||||
<li><a href="[[_computeDocumentationUrlPrivacy(hass)]]" target="_blank" rel="noreferrer">[[localize('ui.panel.config.cloud.register.link_privacy_policy')]]</a></li>
|
||||
<li><a href="https://home-assistant.io/tos/" target="_blank" rel="noreferrer">[[localize('ui.panel.config.cloud.register.link_terms_conditions')]]</a></li>
|
||||
<li><a href="https://home-assistant.io/privacy/" target="_blank" rel="noreferrer">[[localize('ui.panel.config.cloud.register.link_privacy_policy')]]</a></li>
|
||||
</ul>
|
||||
</p>
|
||||
</div>
|
||||
@@ -138,14 +137,6 @@ class CloudRegister extends LocalizeMixin(EventsMixin(PolymerElement)) {
|
||||
}
|
||||
}
|
||||
|
||||
_computeDocumentationUrlTos(hass) {
|
||||
return documentationUrl(hass, "/tos/");
|
||||
}
|
||||
|
||||
_computeDocumentationUrlPrivacy(hass) {
|
||||
return documentationUrl(hass, "/privacy/");
|
||||
}
|
||||
|
||||
_handleRegister() {
|
||||
let invalid = false;
|
||||
|
||||
|
@@ -6,11 +6,10 @@ import { html } from "@polymer/polymer/lib/utils/html-tag";
|
||||
import { PolymerElement } from "@polymer/polymer/polymer-element";
|
||||
import { computeStateDomain } from "../../../common/entity/compute_state_domain";
|
||||
import LocalizeMixin from "../../../mixins/localize-mixin";
|
||||
import "../../../styles/polymer-ha-style";
|
||||
import { documentationUrl } from "../../../util/documentation-url";
|
||||
import hassAttributeUtil from "../../../util/hass-attributes-util";
|
||||
import "../ha-form-style";
|
||||
import "./ha-form-customize-attributes";
|
||||
import "../ha-form-style";
|
||||
import "../../../styles/polymer-ha-style";
|
||||
|
||||
class HaFormCustomize extends LocalizeMixin(PolymerElement) {
|
||||
static get template() {
|
||||
@@ -31,7 +30,7 @@ class HaFormCustomize extends LocalizeMixin(PolymerElement) {
|
||||
<div class="warning">
|
||||
[[localize('ui.panel.config.customize.warning.include_sentence')]]
|
||||
<a
|
||||
href="[[_computeDocumentationUrl(hass)]]"
|
||||
href="https://www.home-assistant.io/docs/configuration/customizing-devices/#customization-using-the-ui"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>[[localize('ui.panel.config.customize.warning.include_link')]]</a
|
||||
@@ -211,13 +210,6 @@ class HaFormCustomize extends LocalizeMixin(PolymerElement) {
|
||||
);
|
||||
}
|
||||
|
||||
_computeDocumentationUrl(hass) {
|
||||
return documentationUrl(
|
||||
hass,
|
||||
"/docs/configuration/customizing-devices/#customization-using-the-ui"
|
||||
);
|
||||
}
|
||||
|
||||
computeLocalAttributes(localConfig) {
|
||||
if (!localConfig) return [];
|
||||
const localKeys = Object.keys(localConfig);
|
||||
|
@@ -6,9 +6,9 @@ import {
|
||||
CSSResult,
|
||||
customElement,
|
||||
html,
|
||||
internalProperty,
|
||||
LitElement,
|
||||
property,
|
||||
internalProperty,
|
||||
TemplateResult,
|
||||
} from "lit-element";
|
||||
import { fireEvent } from "../../../../common/dom/fire_event";
|
||||
@@ -48,12 +48,12 @@ class HaInputNumberForm extends LitElement {
|
||||
this._max = item.max ?? 100;
|
||||
this._min = item.min ?? 0;
|
||||
this._mode = item.mode || "slider";
|
||||
this._step = item.step ?? 1;
|
||||
this._step = item.step || 1;
|
||||
this._unit_of_measurement = item.unit_of_measurement;
|
||||
} else {
|
||||
this._item = {
|
||||
min: 0,
|
||||
max: 100,
|
||||
max: 0,
|
||||
};
|
||||
this._name = "";
|
||||
this._icon = "";
|
||||
@@ -176,10 +176,8 @@ class HaInputNumberForm extends LitElement {
|
||||
return;
|
||||
}
|
||||
ev.stopPropagation();
|
||||
const target = ev.target as any;
|
||||
const configValue = target.configValue;
|
||||
const value =
|
||||
target.type === "number" ? Number(ev.detail.value) : ev.detail.value;
|
||||
const configValue = (ev.target as any).configValue;
|
||||
const value = ev.detail.value;
|
||||
if (this[`_${configValue}`] === value) {
|
||||
return;
|
||||
}
|
||||
|
@@ -12,7 +12,6 @@ import "./integrations-card";
|
||||
import "./system-health-card";
|
||||
import { configSections } from "../ha-panel-config";
|
||||
import "../../../layouts/hass-tabs-subpage";
|
||||
import { documentationUrl } from "../../../util/documentation-url";
|
||||
|
||||
const JS_TYPE = __BUILD__;
|
||||
const JS_VERSION = __VERSION__;
|
||||
@@ -43,7 +42,7 @@ class HaConfigInfo extends LitElement {
|
||||
>
|
||||
<div class="about">
|
||||
<a
|
||||
href="${documentationUrl(this.hass, "")}"
|
||||
href="https://www.home-assistant.io"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
><img
|
||||
@@ -64,7 +63,7 @@ class HaConfigInfo extends LitElement {
|
||||
</p>
|
||||
<p class="develop">
|
||||
<a
|
||||
href="${documentationUrl(this.hass, "/developers/credits/")}"
|
||||
href="https://www.home-assistant.io/developers/credits/"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>
|
||||
|
@@ -159,13 +159,11 @@ class OZWNetworkDashboard extends LitElement {
|
||||
}
|
||||
|
||||
private _generateServiceButton(service: string) {
|
||||
const serviceData = { instance_id: this.ozwInstance };
|
||||
return html`
|
||||
<ha-call-service-button
|
||||
.hass=${this.hass}
|
||||
domain="ozw"
|
||||
.service=${service}
|
||||
.serviceData=${serviceData}
|
||||
>
|
||||
${this.hass!.localize(`ui.panel.config.ozw.services.${service}`)}
|
||||
</ha-call-service-button>
|
||||
|
@@ -1,20 +1,20 @@
|
||||
import "../../../../../components/ha-icon-button";
|
||||
import "../../../../../components/ha-circular-progress";
|
||||
import { UnsubscribeFunc } from "home-assistant-js-websocket";
|
||||
import {
|
||||
css,
|
||||
CSSResult,
|
||||
customElement,
|
||||
html,
|
||||
internalProperty,
|
||||
LitElement,
|
||||
property,
|
||||
internalProperty,
|
||||
TemplateResult,
|
||||
} from "lit-element";
|
||||
import "../../../../../components/buttons/ha-call-api-button";
|
||||
import "../../../../../components/buttons/ha-call-service-button";
|
||||
import "../../../../../components/ha-card";
|
||||
import "../../../../../components/ha-circular-progress";
|
||||
import "../../../../../components/ha-icon";
|
||||
import "../../../../../components/ha-icon-button";
|
||||
import "../../../../../components/ha-service-description";
|
||||
import {
|
||||
fetchNetworkStatus,
|
||||
@@ -26,7 +26,6 @@ import {
|
||||
} from "../../../../../data/zwave";
|
||||
import { haStyle } from "../../../../../resources/styles";
|
||||
import { HomeAssistant } from "../../../../../types";
|
||||
import { documentationUrl } from "../../../../../util/documentation-url";
|
||||
import "../../../ha-config-section";
|
||||
|
||||
@customElement("zwave-network")
|
||||
@@ -72,10 +71,7 @@ export class ZwaveNetwork extends LitElement {
|
||||
)}
|
||||
<p>
|
||||
<a
|
||||
href="${documentationUrl(
|
||||
this.hass,
|
||||
"/docs/z-wave/control-panel/"
|
||||
)}"
|
||||
href="https://www.home-assistant.io/docs/z-wave/control-panel/"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>
|
||||
|
@@ -88,9 +88,8 @@ class DialogSystemLogDetail extends LitElement {
|
||||
<paper-tooltip
|
||||
manual-mode
|
||||
for="copy"
|
||||
position="left"
|
||||
position="top"
|
||||
animation-delay="0"
|
||||
offset="4"
|
||||
>${this.hass.localize("ui.common.copied")}</paper-tooltip
|
||||
>
|
||||
</div>
|
||||
|
@@ -4,24 +4,23 @@ import {
|
||||
css,
|
||||
CSSResult,
|
||||
html,
|
||||
internalProperty,
|
||||
LitElement,
|
||||
property,
|
||||
internalProperty,
|
||||
TemplateResult,
|
||||
} from "lit-element";
|
||||
import memoizeOne from "memoize-one";
|
||||
import "../../../components/entity/ha-entities-picker";
|
||||
import { createCloseHeading } from "../../../components/ha-dialog";
|
||||
import "../../../components/ha-picture-upload";
|
||||
import type { HaPictureUpload } from "../../../components/ha-picture-upload";
|
||||
import "../../../components/entity/ha-entities-picker";
|
||||
import { createCloseHeading } from "../../../components/ha-dialog";
|
||||
import "../../../components/user/ha-user-picker";
|
||||
import { PersonMutableParams } from "../../../data/person";
|
||||
import { CropOptions } from "../../../dialogs/image-cropper-dialog/show-image-cropper-dialog";
|
||||
import { PolymerChangedEvent } from "../../../polymer-types";
|
||||
import { haStyleDialog } from "../../../resources/styles";
|
||||
import { HomeAssistant } from "../../../types";
|
||||
import { documentationUrl } from "../../../util/documentation-url";
|
||||
import { PersonDetailDialogParams } from "./show-dialog-person-detail";
|
||||
import { CropOptions } from "../../../dialogs/image-cropper-dialog/show-image-cropper-dialog";
|
||||
|
||||
const includeDomains = ["device_tracker"];
|
||||
|
||||
@@ -154,10 +153,7 @@ class DialogPersonDetail extends LitElement {
|
||||
<ul>
|
||||
<li>
|
||||
<a
|
||||
href="${documentationUrl(
|
||||
this.hass,
|
||||
"/integrations/#presence-detection"
|
||||
)}"
|
||||
href="https://www.home-assistant.io/integrations/#presence-detection"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>${this.hass!.localize(
|
||||
|
@@ -25,7 +25,6 @@ import { showAlertDialog } from "../../../dialogs/generic/show-dialog-box";
|
||||
import "../../../layouts/hass-tabs-subpage-data-table";
|
||||
import { haStyle } from "../../../resources/styles";
|
||||
import { HomeAssistant, Route } from "../../../types";
|
||||
import { documentationUrl } from "../../../util/documentation-url";
|
||||
import { showToast } from "../../../util/toast";
|
||||
import { configSections } from "../ha-panel-config";
|
||||
|
||||
@@ -192,7 +191,7 @@ class HaSceneDashboard extends LitElement {
|
||||
${this.hass.localize("ui.panel.config.scene.picker.introduction")}
|
||||
<p>
|
||||
<a
|
||||
href="${documentationUrl(this.hass, "/docs/scene/editor/")}"
|
||||
href="https://home-assistant.io/docs/scene/editor/"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>
|
||||
|
@@ -1,47 +1,49 @@
|
||||
import "@material/mwc-fab";
|
||||
import { mdiContentSave } from "@mdi/js";
|
||||
import "@polymer/app-layout/app-header/app-header";
|
||||
import "@polymer/app-layout/app-toolbar/app-toolbar";
|
||||
import "@polymer/paper-dropdown-menu/paper-dropdown-menu-light";
|
||||
import { PaperListboxElement } from "@polymer/paper-listbox";
|
||||
import "@polymer/app-layout/app-toolbar/app-toolbar";
|
||||
import { ActionDetail } from "@material/mwc-list/mwc-list-foundation";
|
||||
import "@material/mwc-list/mwc-list-item";
|
||||
import "../../../components/ha-icon-button";
|
||||
import "../../../components/ha-button-menu";
|
||||
import {
|
||||
css,
|
||||
CSSResult,
|
||||
html,
|
||||
internalProperty,
|
||||
LitElement,
|
||||
property,
|
||||
internalProperty,
|
||||
PropertyValues,
|
||||
TemplateResult,
|
||||
} from "lit-element";
|
||||
import { classMap } from "lit-html/directives/class-map";
|
||||
import { computeObjectId } from "../../../common/entity/compute_object_id";
|
||||
import { navigate } from "../../../common/navigate";
|
||||
import { slugify } from "../../../common/string/slugify";
|
||||
import { computeRTL } from "../../../common/util/compute_rtl";
|
||||
import "../../../components/ha-card";
|
||||
import "../../../components/ha-icon-button";
|
||||
import "../../../components/ha-icon-input";
|
||||
import "../../../components/ha-svg-icon";
|
||||
import { showToast } from "../../../util/toast";
|
||||
import "@material/mwc-fab";
|
||||
import {
|
||||
Action,
|
||||
deleteScript,
|
||||
getScriptEditorInitData,
|
||||
MODES,
|
||||
MODES_MAX,
|
||||
ScriptConfig,
|
||||
triggerScript,
|
||||
MODES,
|
||||
MODES_MAX,
|
||||
} from "../../../data/script";
|
||||
import { showConfirmationDialog } from "../../../dialogs/generic/show-dialog-box";
|
||||
import "../../../layouts/ha-app-layout";
|
||||
import { haStyle } from "../../../resources/styles";
|
||||
import { HomeAssistant, Route } from "../../../types";
|
||||
import { documentationUrl } from "../../../util/documentation-url";
|
||||
import { showToast } from "../../../util/toast";
|
||||
import "../automation/action/ha-automation-action";
|
||||
import { HaDeviceAction } from "../automation/action/types/ha-automation-action-device_id";
|
||||
import "../ha-config-section";
|
||||
import { configSections } from "../ha-panel-config";
|
||||
import "../../../components/ha-svg-icon";
|
||||
import { mdiContentSave, mdiDotsVertical } from "@mdi/js";
|
||||
import { PaperListboxElement } from "@polymer/paper-listbox";
|
||||
import { slugify } from "../../../common/string/slugify";
|
||||
|
||||
export class HaScriptEditor extends LitElement {
|
||||
@property({ attribute: false }) public hass!: HomeAssistant;
|
||||
@@ -64,6 +66,8 @@ export class HaScriptEditor extends LitElement {
|
||||
|
||||
@internalProperty() private _errors?: string;
|
||||
|
||||
@internalProperty() private _yamlMode = false;
|
||||
|
||||
protected render(): TemplateResult {
|
||||
return html`
|
||||
<hass-tabs-subpage
|
||||
@@ -73,19 +77,46 @@ export class HaScriptEditor extends LitElement {
|
||||
.backCallback=${() => this._backTapped()}
|
||||
.tabs=${configSections.automation}
|
||||
>
|
||||
<ha-button-menu
|
||||
corner="BOTTOM_START"
|
||||
slot="toolbar-icon"
|
||||
@action=${this._handleAction}
|
||||
>
|
||||
<mwc-icon-button
|
||||
slot="trigger"
|
||||
.title=${this.hass.localize("ui.common.menu")}
|
||||
.label=${this.hass.localize("ui.common.overflow_menu")}
|
||||
><ha-svg-icon path=${mdiDotsVertical}></ha-svg-icon>
|
||||
</mwc-icon-button>
|
||||
<mwc-list-item
|
||||
aria-label=${this._yamlMode
|
||||
? this.hass.localize("ui.panel.config.automation.editor.edit_ui")
|
||||
: this.hass.localize(
|
||||
"ui.panel.config.automation.editor.edit_yaml"
|
||||
)}
|
||||
>
|
||||
${this._yamlMode
|
||||
? this.hass.localize("ui.panel.config.automation.editor.edit_ui")
|
||||
: this.hass.localize(
|
||||
"ui.panel.config.automation.editor.edit_yaml"
|
||||
)}
|
||||
</mwc-list-item>
|
||||
${!this.scriptEntityId
|
||||
? ""
|
||||
: html`
|
||||
<ha-icon-button
|
||||
<mwc-list-item
|
||||
class="warning"
|
||||
slot="toolbar-icon"
|
||||
title="${this.hass.localize(
|
||||
aria-label=${this.hass.localize(
|
||||
"ui.panel.config.script.editor.delete_script"
|
||||
)}"
|
||||
icon="hass:delete"
|
||||
@click=${this._deleteConfirm}
|
||||
></ha-icon-button>
|
||||
)}
|
||||
>
|
||||
${this.hass.localize(
|
||||
"ui.panel.config.script.editor.delete_script"
|
||||
)}
|
||||
</mwc-list-item>
|
||||
`}
|
||||
</ha-button-menu>
|
||||
|
||||
${this.narrow
|
||||
? html` <span slot="header">${this._config?.alias}</span> `
|
||||
: ""}
|
||||
@@ -99,10 +130,50 @@ export class HaScriptEditor extends LitElement {
|
||||
})}"
|
||||
>
|
||||
${this._config
|
||||
? this._yamlMode
|
||||
? html`
|
||||
<ha-config-section .isWide=${false}>
|
||||
${!this.narrow
|
||||
? html`
|
||||
<span slot="header">${this._config.alias}</span>
|
||||
`
|
||||
: ""}
|
||||
<ha-card>
|
||||
<div class="card-content">
|
||||
<ha-yaml-editor
|
||||
.defaultValue=${this._config}
|
||||
@value-changed=${this._onYamlChange}
|
||||
></ha-yaml-editor>
|
||||
</div>
|
||||
${this.scriptEntityId
|
||||
? html`
|
||||
<div
|
||||
class="card-actions layout horizontal justified center"
|
||||
>
|
||||
<span></span>
|
||||
<mwc-button
|
||||
@click=${this._runScript}
|
||||
title="${this.hass.localize(
|
||||
"ui.panel.config.script.picker.activate_script"
|
||||
)}"
|
||||
?disabled=${this._dirty}
|
||||
>
|
||||
${this.hass.localize(
|
||||
"ui.card.script.execute"
|
||||
)}
|
||||
</mwc-button>
|
||||
</div>
|
||||
`
|
||||
: ``}
|
||||
</ha-card>
|
||||
</ha-config-section>
|
||||
`
|
||||
: html`
|
||||
<ha-config-section .isWide=${this.isWide}>
|
||||
${!this.narrow
|
||||
? html` <span slot="header">${this._config.alias}</span> `
|
||||
? html`
|
||||
<span slot="header">${this._config.alias}</span>
|
||||
`
|
||||
: ""}
|
||||
<span slot="introduction">
|
||||
${this.hass.localize(
|
||||
@@ -149,10 +220,7 @@ export class HaScriptEditor extends LitElement {
|
||||
"ui.panel.config.script.editor.modes.description",
|
||||
"documentation_link",
|
||||
html`<a
|
||||
href="${documentationUrl(
|
||||
this.hass,
|
||||
"/integrations/script/#script-modes"
|
||||
)}"
|
||||
href="https://www.home-assistant.io/integrations/script/#script-modes"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>${this.hass.localize(
|
||||
@@ -212,7 +280,9 @@ export class HaScriptEditor extends LitElement {
|
||||
)}"
|
||||
?disabled=${this._dirty}
|
||||
>
|
||||
${this.hass.localize("ui.card.script.execute")}
|
||||
${this.hass.localize(
|
||||
"ui.card.script.execute"
|
||||
)}
|
||||
</mwc-button>
|
||||
</div>
|
||||
`
|
||||
@@ -233,7 +303,7 @@ export class HaScriptEditor extends LitElement {
|
||||
)}
|
||||
</p>
|
||||
<a
|
||||
href="${documentationUrl(this.hass, "/docs/scripts/")}"
|
||||
href="https://home-assistant.io/docs/scripts/"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>
|
||||
@@ -325,7 +395,7 @@ export class HaScriptEditor extends LitElement {
|
||||
}
|
||||
}
|
||||
|
||||
private async _runScript(ev) {
|
||||
private async _runScript(ev: Event) {
|
||||
ev.stopPropagation();
|
||||
await triggerScript(this.hass, this.scriptEntityId);
|
||||
showToast(this, {
|
||||
@@ -337,6 +407,21 @@ export class HaScriptEditor extends LitElement {
|
||||
});
|
||||
}
|
||||
|
||||
private _handleAction(ev: CustomEvent<ActionDetail>) {
|
||||
switch (ev.detail.index) {
|
||||
case 0:
|
||||
this._switchYamlMode();
|
||||
break;
|
||||
case 1:
|
||||
this._deleteConfirm();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private _switchYamlMode() {
|
||||
this._yamlMode = !this._yamlMode;
|
||||
}
|
||||
|
||||
private _modeChanged(ev: CustomEvent) {
|
||||
const mode = ((ev.target as PaperListboxElement)?.selectedItem as any)
|
||||
?.mode;
|
||||
@@ -376,6 +461,15 @@ export class HaScriptEditor extends LitElement {
|
||||
}
|
||||
}
|
||||
|
||||
private _onYamlChange(ev: CustomEvent) {
|
||||
ev.stopPropagation();
|
||||
if (!ev.detail.isValid) {
|
||||
return;
|
||||
}
|
||||
this._config = ev.detail.value;
|
||||
this._dirty = true;
|
||||
}
|
||||
|
||||
private _valueChanged(ev: CustomEvent) {
|
||||
ev.stopPropagation();
|
||||
const target = ev.target as any;
|
||||
|
@@ -25,7 +25,6 @@ import { configSections } from "../ha-panel-config";
|
||||
import "../../../components/ha-svg-icon";
|
||||
import { mdiPlus } from "@mdi/js";
|
||||
import { stateIcon } from "../../../common/entity/state_icon";
|
||||
import { documentationUrl } from "../../../util/documentation-url";
|
||||
|
||||
@customElement("ha-script-picker")
|
||||
class HaScriptPicker extends LitElement {
|
||||
@@ -188,7 +187,7 @@ class HaScriptPicker extends LitElement {
|
||||
${this.hass.localize("ui.panel.config.script.picker.introduction")}
|
||||
<p>
|
||||
<a
|
||||
href="${documentationUrl(this.hass, "/docs/scripts/editor/")}"
|
||||
href="https://home-assistant.io/docs/scripts/editor/"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>
|
||||
|
@@ -256,7 +256,7 @@ class DialogUserDetail extends LitElement {
|
||||
await adminChangePassword(this.hass, this._params!.entry.id, newPassword);
|
||||
showAlertDialog(this, {
|
||||
title: this.hass.localize(
|
||||
"ui.panel.config.users.editor.password_changed"
|
||||
"ui.panel.config.users.add_user.password_changed"
|
||||
),
|
||||
});
|
||||
}
|
||||
|
@@ -9,7 +9,6 @@ import "../../../components/ha-code-editor";
|
||||
import { showAlertDialog } from "../../../dialogs/generic/show-dialog-box";
|
||||
import { EventsMixin } from "../../../mixins/events-mixin";
|
||||
import LocalizeMixin from "../../../mixins/localize-mixin";
|
||||
import { documentationUrl } from "../../../util/documentation-url";
|
||||
import "../../../styles/polymer-ha-style";
|
||||
import "./event-subscribe-card";
|
||||
import "./events-list";
|
||||
@@ -62,7 +61,7 @@ class HaPanelDevEvent extends EventsMixin(LocalizeMixin(PolymerElement)) {
|
||||
<p>
|
||||
[[localize( 'ui.panel.developer-tools.tabs.events.description' )]]
|
||||
<a
|
||||
href="[[_computeDocumentationUrl(hass)]]"
|
||||
href="https://www.home-assistant.io/docs/configuration/events/"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>
|
||||
@@ -150,10 +149,6 @@ class HaPanelDevEvent extends EventsMixin(LocalizeMixin(PolymerElement)) {
|
||||
}
|
||||
}
|
||||
|
||||
_computeDocumentationUrl(hass) {
|
||||
return documentationUrl(hass, "/docs/configuration/events/");
|
||||
}
|
||||
|
||||
_computeValidJSON(parsedJSON) {
|
||||
return parsedJSON !== ERROR_SENTINEL;
|
||||
}
|
||||
|
@@ -19,7 +19,6 @@ import {
|
||||
} from "../../../data/ws-templates";
|
||||
import { haStyle } from "../../../resources/styles";
|
||||
import { HomeAssistant } from "../../../types";
|
||||
import { documentationUrl } from "../../../util/documentation-url";
|
||||
|
||||
const DEMO_TEMPLATE = `{## Imitate available variables: ##}
|
||||
{% set my_test_json = {
|
||||
@@ -108,10 +107,7 @@ class HaPanelDevTemplate extends LitElement {
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
href="${documentationUrl(
|
||||
this.hass,
|
||||
"/docs/configuration/templating/"
|
||||
)}"
|
||||
href="https://home-assistant.io/docs/configuration/templating/"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>
|
||||
|
@@ -285,7 +285,7 @@ class HaLogbook extends LitElement {
|
||||
.narrow .entry {
|
||||
flex-direction: column;
|
||||
line-height: 1.5;
|
||||
padding: 8px 0;
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
.narrow .icon-message ha-icon {
|
||||
|
@@ -5,9 +5,9 @@ import {
|
||||
CSSResult,
|
||||
customElement,
|
||||
html,
|
||||
internalProperty,
|
||||
LitElement,
|
||||
property,
|
||||
internalProperty,
|
||||
PropertyValues,
|
||||
query,
|
||||
TemplateResult,
|
||||
@@ -191,7 +191,7 @@ class HuiAlarmPanelCard extends LitElement implements LovelaceCard {
|
||||
: html`
|
||||
<paper-input
|
||||
id="alarmCode"
|
||||
.label=${this.hass.localize("ui.card.alarm_control_panel.code")}
|
||||
.label=${this.hass.localize('ui.card.alarm_control_panel.code')}
|
||||
type="password"
|
||||
></paper-input>
|
||||
`}
|
||||
|
@@ -63,9 +63,6 @@ export class HuiButtonCard extends LitElement implements LovelaceCard {
|
||||
|
||||
return {
|
||||
type: "button",
|
||||
tap_action: {
|
||||
action: "toggle",
|
||||
},
|
||||
entity: foundEntities[0] || "",
|
||||
};
|
||||
}
|
||||
|
@@ -85,7 +85,12 @@ export class HuiButtonsBase extends LitElement {
|
||||
|
||||
private _handleAction(ev: ActionHandlerEvent) {
|
||||
const config = (ev.currentTarget as any).config as EntitiesCardEntityConfig;
|
||||
handleAction(this, this._hass!, config, ev.detail.action!);
|
||||
handleAction(
|
||||
this,
|
||||
this._hass!,
|
||||
{ tap_action: { action: "toggle" }, ...config },
|
||||
ev.detail.action!
|
||||
);
|
||||
}
|
||||
|
||||
static get styles(): CSSResult {
|
||||
|
@@ -123,10 +123,6 @@ export class HuiEntityEditor extends LitElement {
|
||||
private async _handleEntitiesChanged() {
|
||||
this._renderEmptySortable = true;
|
||||
await this.updateComplete;
|
||||
const container = this.shadowRoot!.querySelector(".entities")!;
|
||||
while (container.lastElementChild) {
|
||||
container.removeChild(container.lastElementChild);
|
||||
}
|
||||
this._renderEmptySortable = false;
|
||||
}
|
||||
|
||||
|
@@ -115,10 +115,7 @@ export class HuiDialogEditCard extends LitElement implements HassDialog {
|
||||
const oldConfig = changedProps.get("_cardConfig") as LovelaceCardConfig;
|
||||
|
||||
if (oldConfig?.type !== this._cardConfig!.type) {
|
||||
this._documentationURL = getCardDocumentationURL(
|
||||
this.hass,
|
||||
this._cardConfig!.type
|
||||
);
|
||||
this._documentationURL = getCardDocumentationURL(this._cardConfig!.type);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -1,29 +1,29 @@
|
||||
import {
|
||||
customElement,
|
||||
html,
|
||||
internalProperty,
|
||||
LitElement,
|
||||
property,
|
||||
TemplateResult,
|
||||
internalProperty,
|
||||
} from "lit-element";
|
||||
import {
|
||||
array,
|
||||
assert,
|
||||
boolean,
|
||||
object,
|
||||
optional,
|
||||
string,
|
||||
union,
|
||||
} from "superstruct";
|
||||
import { fireEvent } from "../../../../common/dom/fire_event";
|
||||
import "../../../../components/entity/ha-entities-picker";
|
||||
import type { HomeAssistant } from "../../../../types";
|
||||
import type { CalendarCardConfig } from "../../cards/types";
|
||||
import "../../components/hui-entity-editor";
|
||||
import "../../../../components/entity/ha-entities-picker";
|
||||
import "../../components/hui-theme-select-editor";
|
||||
import type { LovelaceCardEditor } from "../../types";
|
||||
import type { EditorTarget, EntitiesEditorEvent } from "../types";
|
||||
import { configElementStyle } from "./config-elements-style";
|
||||
import {
|
||||
string,
|
||||
optional,
|
||||
object,
|
||||
boolean,
|
||||
array,
|
||||
union,
|
||||
assert,
|
||||
} from "superstruct";
|
||||
|
||||
const cardConfigStruct = object({
|
||||
type: string(),
|
||||
@@ -113,7 +113,6 @@ export class HuiCalendarCardEditor extends LitElement
|
||||
this._config = { ...this._config, entities: ev.detail.value };
|
||||
} else if (target.configValue) {
|
||||
if (target.value === "") {
|
||||
this._config = { ...this._config };
|
||||
delete this._config[target.configValue!];
|
||||
} else {
|
||||
this._config = {
|
||||
|
@@ -1,17 +1,14 @@
|
||||
import {
|
||||
CUSTOM_TYPE_PREFIX,
|
||||
getCustomCardEntry,
|
||||
CUSTOM_TYPE_PREFIX,
|
||||
} from "../../../data/lovelace_custom_cards";
|
||||
import { HomeAssistant } from "../../../types";
|
||||
import { documentationUrl } from "../../../util/documentation-url";
|
||||
|
||||
export const getCardDocumentationURL = (
|
||||
hass: HomeAssistant,
|
||||
type: string
|
||||
): string | undefined => {
|
||||
const coreDocumentationURLBase = "https://www.home-assistant.io/lovelace/";
|
||||
|
||||
export const getCardDocumentationURL = (type: string): string | undefined => {
|
||||
if (type.startsWith(CUSTOM_TYPE_PREFIX)) {
|
||||
return getCustomCardEntry(type)?.documentationURL;
|
||||
}
|
||||
|
||||
return `${documentationUrl(hass, "/lovelace/")}${type}`;
|
||||
return `${coreDocumentationURLBase}${type}`;
|
||||
};
|
||||
|
@@ -1,32 +1,33 @@
|
||||
import "@material/mwc-button";
|
||||
import "@material/mwc-icon-button/mwc-icon-button";
|
||||
import { mdiHelpCircle } from "@mdi/js";
|
||||
import {
|
||||
css,
|
||||
CSSResult,
|
||||
customElement,
|
||||
html,
|
||||
internalProperty,
|
||||
LitElement,
|
||||
property,
|
||||
internalProperty,
|
||||
TemplateResult,
|
||||
} from "lit-element";
|
||||
import { mdiHelpCircle } from "@mdi/js";
|
||||
import { fireEvent } from "../../../common/dom/fire_event";
|
||||
import { computeRTLDirection } from "../../../common/util/compute_rtl";
|
||||
import "../../../components/ha-circular-progress";
|
||||
import "../../../components/ha-dialog";
|
||||
import "../../../components/ha-formfield";
|
||||
import "../../../components/ha-svg-icon";
|
||||
import "../../../components/ha-switch";
|
||||
import "../../../components/ha-yaml-editor";
|
||||
import type { HassDialog } from "../../../dialogs/make-dialog-manager";
|
||||
import { haStyleDialog } from "../../../resources/styles";
|
||||
import type { HomeAssistant } from "../../../types";
|
||||
import { documentationUrl } from "../../../util/documentation-url";
|
||||
import type { SaveDialogParams } from "./show-save-config-dialog";
|
||||
import { computeRTLDirection } from "../../../common/util/compute_rtl";
|
||||
import type { HassDialog } from "../../../dialogs/make-dialog-manager";
|
||||
import "../../../components/ha-switch";
|
||||
import "../../../components/ha-formfield";
|
||||
import "../../../components/ha-yaml-editor";
|
||||
import "../../../components/ha-svg-icon";
|
||||
import "../../../components/ha-dialog";
|
||||
import "../../../components/ha-circular-progress";
|
||||
|
||||
const EMPTY_CONFIG = { views: [] };
|
||||
|
||||
const coreDocumentationURLBase = "https://www.home-assistant.io/lovelace/";
|
||||
|
||||
@customElement("hui-dialog-save-config")
|
||||
export class HuiSaveConfig extends LitElement implements HassDialog {
|
||||
@property({ attribute: false }) public hass?: HomeAssistant;
|
||||
@@ -67,7 +68,7 @@ export class HuiSaveConfig extends LitElement implements HassDialog {
|
||||
"ui.panel.lovelace.editor.save_config.header"
|
||||
)}<a
|
||||
class="header_button"
|
||||
href=${documentationUrl(this.hass!, "/lovelace/")}
|
||||
href=${coreDocumentationURLBase}
|
||||
title=${this.hass!.localize("ui.panel.lovelace.menu.help")}
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
|
@@ -4,7 +4,6 @@ import {
|
||||
LitElement,
|
||||
property,
|
||||
TemplateResult,
|
||||
internalProperty,
|
||||
} from "lit-element";
|
||||
import { HomeAssistant } from "../../../types";
|
||||
import { processConfigEntities } from "../common/process-config-entities";
|
||||
@@ -22,20 +21,15 @@ export class HuiButtonsHeaderFooter extends LitElement
|
||||
|
||||
@property({ attribute: false }) public hass?: HomeAssistant;
|
||||
|
||||
@internalProperty() private _configEntities?: EntityConfig[];
|
||||
private _configEntities?: EntityConfig[];
|
||||
|
||||
public getCardSize(): number {
|
||||
return 1;
|
||||
}
|
||||
|
||||
public setConfig(config: ButtonsHeaderFooterConfig): void {
|
||||
this._configEntities = processConfigEntities(config.entities).map(
|
||||
(entityConfig) => ({
|
||||
tap_action: { action: "toggle" },
|
||||
hold_action: { action: "more-info" },
|
||||
...entityConfig,
|
||||
})
|
||||
);
|
||||
this._configEntities = processConfigEntities(config.entities);
|
||||
this.requestUpdate();
|
||||
}
|
||||
|
||||
protected render(): TemplateResult | void {
|
||||
|
@@ -53,7 +53,6 @@ import { showVoiceCommandDialog } from "../../dialogs/voice-command-dialog/show-
|
||||
import "../../layouts/ha-app-layout";
|
||||
import { haStyle } from "../../resources/styles";
|
||||
import type { HomeAssistant } from "../../types";
|
||||
import { documentationUrl } from "../../util/documentation-url";
|
||||
import { swapView } from "./editor/config-util";
|
||||
import { showEditLovelaceDialog } from "./editor/lovelace-editor/show-edit-lovelace-dialog";
|
||||
import { showEditViewDialog } from "./editor/view-editor/show-edit-view-dialog";
|
||||
@@ -137,7 +136,7 @@ class HUIRoot extends LitElement {
|
||||
</mwc-icon-button>
|
||||
</div>
|
||||
<a
|
||||
href="${documentationUrl(this.hass, "/lovelace/")}"
|
||||
href="https://www.home-assistant.io/lovelace/"
|
||||
rel="noreferrer"
|
||||
class="menu-link"
|
||||
target="_blank"
|
||||
@@ -267,7 +266,7 @@ class HUIRoot extends LitElement {
|
||||
`
|
||||
: ""}
|
||||
<a
|
||||
href="${documentationUrl(this.hass, "/lovelace/")}"
|
||||
href="https://www.home-assistant.io/lovelace/"
|
||||
rel="noreferrer"
|
||||
class="menu-link"
|
||||
target="_blank"
|
||||
|
@@ -4,12 +4,10 @@ import {
|
||||
CSSResult,
|
||||
customElement,
|
||||
html,
|
||||
internalProperty,
|
||||
LitElement,
|
||||
internalProperty,
|
||||
TemplateResult,
|
||||
} from "lit-element";
|
||||
import { DOMAINS_TOGGLE } from "../../../common/const";
|
||||
import { computeDomain } from "../../../common/entity/compute_domain";
|
||||
import "../../../components/ha-icon";
|
||||
import { ActionHandlerEvent } from "../../../data/lovelace";
|
||||
import { HomeAssistant } from "../../../types";
|
||||
@@ -33,16 +31,11 @@ export class HuiButtonRow extends LitElement implements LovelaceRow {
|
||||
throw new Error("Error in card configuration. No name specified.");
|
||||
}
|
||||
|
||||
this._config = {
|
||||
tap_action: {
|
||||
action:
|
||||
config.entity && DOMAINS_TOGGLE.has(computeDomain(config.entity))
|
||||
? "toggle"
|
||||
: "more-info",
|
||||
},
|
||||
hold_action: { action: "more-info" },
|
||||
...config,
|
||||
};
|
||||
if (!config.tap_action) {
|
||||
throw new Error("Error in card configuration. No action specified.");
|
||||
}
|
||||
|
||||
this._config = config;
|
||||
}
|
||||
|
||||
protected render(): TemplateResult {
|
||||
|
@@ -4,7 +4,6 @@ import {
|
||||
LitElement,
|
||||
property,
|
||||
TemplateResult,
|
||||
internalProperty,
|
||||
} from "lit-element";
|
||||
import { HomeAssistant } from "../../../types";
|
||||
import { processConfigEntities } from "../common/process-config-entities";
|
||||
@@ -23,16 +22,11 @@ export class HuiButtonsRow extends LitElement implements LovelaceRow {
|
||||
|
||||
@property({ attribute: false }) public hass?: HomeAssistant;
|
||||
|
||||
@internalProperty() private _configEntities?: EntityConfig[];
|
||||
private _configEntities?: EntityConfig[];
|
||||
|
||||
public setConfig(config: ButtonsRowConfig): void {
|
||||
this._configEntities = processConfigEntities(config.entities).map(
|
||||
(entityConfig) => ({
|
||||
tap_action: { action: "toggle" },
|
||||
hold_action: { action: "more-info" },
|
||||
...entityConfig,
|
||||
})
|
||||
);
|
||||
this._configEntities = processConfigEntities(config.entities);
|
||||
this.requestUpdate();
|
||||
}
|
||||
|
||||
protected render(): TemplateResult | void {
|
||||
|
@@ -17,7 +17,7 @@ import { supportsFeature } from "../../common/entity/supports-feature";
|
||||
import "../../components/ha-menu-button";
|
||||
import "../../components/media-player/ha-media-player-browse";
|
||||
import {
|
||||
BROWSER_PLAYER,
|
||||
BROWSER_SOURCE,
|
||||
MediaPickedEvent,
|
||||
SUPPORT_BROWSE_MEDIA,
|
||||
} from "../../data/media-player";
|
||||
@@ -36,7 +36,7 @@ class PanelMediaBrowser extends LitElement {
|
||||
|
||||
// @ts-ignore
|
||||
@LocalStorage("mediaBrowseEntityId", true)
|
||||
private _entityId = BROWSER_PLAYER;
|
||||
private _entityId = BROWSER_SOURCE;
|
||||
|
||||
protected render(): TemplateResult {
|
||||
const stateObj = this._entityId
|
||||
@@ -44,7 +44,7 @@ class PanelMediaBrowser extends LitElement {
|
||||
: undefined;
|
||||
|
||||
const title =
|
||||
this._entityId === BROWSER_PLAYER
|
||||
this._entityId === BROWSER_SOURCE
|
||||
? `${this.hass.localize("ui.components.media-browser.web-browser")}`
|
||||
: stateObj?.attributes.friendly_name
|
||||
? `${stateObj?.attributes.friendly_name}`
|
||||
@@ -95,7 +95,7 @@ class PanelMediaBrowser extends LitElement {
|
||||
ev: HASSDomEvent<MediaPickedEvent>
|
||||
): Promise<void> {
|
||||
const item = ev.detail.item;
|
||||
if (this._entityId === BROWSER_PLAYER) {
|
||||
if (this._entityId === BROWSER_SOURCE) {
|
||||
const resolvedUrl: any = await this.hass.callWS({
|
||||
type: "media_source/resolve_media",
|
||||
media_content_id: item.media_content_id,
|
||||
|
@@ -1,5 +1,3 @@
|
||||
import "@material/mwc-list/mwc-list";
|
||||
import "@material/mwc-list/mwc-list-item";
|
||||
import "@polymer/paper-item/paper-item";
|
||||
import "@polymer/paper-listbox/paper-listbox";
|
||||
import {
|
||||
@@ -15,8 +13,7 @@ import { fireEvent } from "../../common/dom/fire_event";
|
||||
import { computeStateName } from "../../common/entity/compute_state_name";
|
||||
import { compare } from "../../common/string/compare";
|
||||
import { createCloseHeading } from "../../components/ha-dialog";
|
||||
import { UNAVAILABLE_STATES } from "../../data/entity";
|
||||
import { BROWSER_PLAYER } from "../../data/media-player";
|
||||
import { BROWSER_SOURCE } from "../../data/media-player";
|
||||
import { haStyleDialog } from "../../resources/styles";
|
||||
import type { HomeAssistant } from "../../types";
|
||||
import type { SelectMediaPlayerDialogParams } from "./show-select-media-source-dialog";
|
||||
@@ -52,31 +49,30 @@ export class HuiDialogSelectMediaPlayer extends LitElement {
|
||||
)}
|
||||
@closed=${this.closeDialog}
|
||||
>
|
||||
<mwc-list>
|
||||
<mwc-list-item .player=${BROWSER_PLAYER} @click=${this._selectPlayer}
|
||||
<paper-listbox
|
||||
attr-for-selected="itemName"
|
||||
@iron-select=${this._selectSource}
|
||||
><paper-item .itemName=${BROWSER_SOURCE}
|
||||
>${this.hass.localize(
|
||||
"ui.components.media-browser.web-browser"
|
||||
)}</mwc-list-item
|
||||
)}</paper-item
|
||||
>
|
||||
${this._params.mediaSources
|
||||
.sort((a, b) => compare(computeStateName(a), computeStateName(b)))
|
||||
.map(
|
||||
(source) => html`
|
||||
<mwc-list-item
|
||||
.disabled=${UNAVAILABLE_STATES.includes(source.state)}
|
||||
.player=${source.entity_id}
|
||||
@click=${this._selectPlayer}
|
||||
>${computeStateName(source)}</mwc-list-item
|
||||
<paper-item .itemName=${source.entity_id}
|
||||
>${computeStateName(source)}</paper-item
|
||||
>
|
||||
`
|
||||
)}
|
||||
</mwc-list>
|
||||
</paper-listbox>
|
||||
</ha-dialog>
|
||||
`;
|
||||
}
|
||||
|
||||
private _selectPlayer(ev: CustomEvent): void {
|
||||
const entityId = (ev.currentTarget as any).player;
|
||||
private _selectSource(ev: CustomEvent): void {
|
||||
const entityId = ev.detail.item.itemName;
|
||||
this._params!.sourceSelectedCallback(entityId);
|
||||
this.closeDialog();
|
||||
}
|
||||
@@ -88,8 +84,8 @@ export class HuiDialogSelectMediaPlayer extends LitElement {
|
||||
ha-dialog {
|
||||
--dialog-content-padding: 0 24px 20px;
|
||||
}
|
||||
mwc-list-item[disabled] {
|
||||
--mdc-theme-text-primary-on-background: var(--disabled-text-color);
|
||||
paper-item {
|
||||
cursor: pointer;
|
||||
}
|
||||
`,
|
||||
];
|
||||
|
@@ -1,5 +1,4 @@
|
||||
import "@material/mwc-button/mwc-button";
|
||||
import "@material/mwc-icon-button/mwc-icon-button";
|
||||
import { mdiDelete } from "@mdi/js";
|
||||
import {
|
||||
css,
|
||||
@@ -81,14 +80,14 @@ class HaLongLivedTokens extends LitElement {
|
||||
)
|
||||
)}
|
||||
</div>
|
||||
<mwc-icon-button
|
||||
<mwc-button
|
||||
.token=${token}
|
||||
.disabled=${token.is_current}
|
||||
.title=${this.hass.localize(`ui.common.delete`)}
|
||||
@click=${this._deleteToken}
|
||||
>
|
||||
<ha-svg-icon .path=${mdiDelete}></ha-svg-icon>
|
||||
</mwc-icon-button>
|
||||
</mwc-button>
|
||||
</ha-settings-row>`
|
||||
)}
|
||||
</div>
|
||||
@@ -186,9 +185,6 @@ class HaLongLivedTokens extends LitElement {
|
||||
mwc-button {
|
||||
--mdc-theme-primary: var(--primary-color);
|
||||
}
|
||||
mwc-icon-button {
|
||||
color: var(--primary-text-color);
|
||||
}
|
||||
`,
|
||||
];
|
||||
}
|
||||
|
@@ -201,7 +201,7 @@ class HaPanelProfile extends LitElement {
|
||||
}
|
||||
|
||||
private _customizeSidebar() {
|
||||
fireEvent(this, "hass-edit-sidebar", { editMode: true });
|
||||
fireEvent(this, "hass-edit-sidebar");
|
||||
}
|
||||
|
||||
private async _refreshRefreshTokens() {
|
||||
|
@@ -1,25 +1,24 @@
|
||||
import "@material/mwc-button/mwc-button";
|
||||
import "@polymer/paper-input/paper-input";
|
||||
import "@polymer/paper-item/paper-item";
|
||||
import "@polymer/paper-listbox/paper-listbox";
|
||||
import "../../components/ha-paper-dropdown-menu";
|
||||
import { TemplateResult, html } from "lit-html";
|
||||
import {
|
||||
css,
|
||||
CSSResult,
|
||||
customElement,
|
||||
property,
|
||||
internalProperty,
|
||||
LitElement,
|
||||
property,
|
||||
customElement,
|
||||
PropertyValues,
|
||||
CSSResult,
|
||||
css,
|
||||
} from "lit-element";
|
||||
import { html, TemplateResult } from "lit-html";
|
||||
import { HomeAssistant } from "../../types";
|
||||
import "../../components/ha-settings-row";
|
||||
import { fireEvent } from "../../common/dom/fire_event";
|
||||
import "../../components/ha-formfield";
|
||||
import "../../components/ha-paper-dropdown-menu";
|
||||
import "../../components/ha-radio";
|
||||
import "@polymer/paper-input/paper-input";
|
||||
import type { HaRadio } from "../../components/ha-radio";
|
||||
import "../../components/ha-settings-row";
|
||||
import { HomeAssistant } from "../../types";
|
||||
import { documentationUrl } from "../../util/documentation-url";
|
||||
import "@material/mwc-button/mwc-button";
|
||||
|
||||
@customElement("ha-pick-theme-row")
|
||||
export class HaPickThemeRow extends LitElement {
|
||||
@@ -46,10 +45,7 @@ export class HaPickThemeRow extends LitElement {
|
||||
? this.hass.localize("ui.panel.profile.themes.error_no_theme")
|
||||
: ""}
|
||||
<a
|
||||
href="${documentationUrl(
|
||||
this.hass!,
|
||||
"/integrations/frontend/#defining-themes"
|
||||
)}"
|
||||
href="https://www.home-assistant.io/integrations/frontend/#defining-themes"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>
|
||||
|
@@ -7,7 +7,6 @@ import { isComponentLoaded } from "../../common/config/is_component_loaded";
|
||||
import { pushSupported } from "../../components/ha-push-notifications-toggle";
|
||||
import LocalizeMixin from "../../mixins/localize-mixin";
|
||||
import "../../components/ha-settings-row";
|
||||
import { documentationUrl } from "../../util/documentation-url";
|
||||
|
||||
/*
|
||||
* @appliesMixin LocalizeMixin
|
||||
@@ -27,7 +26,7 @@ class HaPushNotificationsRow extends LocalizeMixin(PolymerElement) {
|
||||
<span slot="description">
|
||||
[[_description(_platformLoaded, _pushSupported)]]
|
||||
<a
|
||||
href="[[_computeDocumentationUrl(hass)]]"
|
||||
href="https://www.home-assistant.io/integrations/html5"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>[[localize('ui.panel.profile.push_notifications.link_promo')]]</a
|
||||
@@ -60,10 +59,6 @@ class HaPushNotificationsRow extends LocalizeMixin(PolymerElement) {
|
||||
};
|
||||
}
|
||||
|
||||
_computeDocumentationUrl(hass) {
|
||||
return documentationUrl(hass, "/integrations/html5");
|
||||
}
|
||||
|
||||
_compPlatformLoaded(hass) {
|
||||
return isComponentLoaded(hass, "notify.html5");
|
||||
}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
import "@material/mwc-icon-button/mwc-icon-button";
|
||||
import "@material/mwc-button/mwc-button";
|
||||
import { mdiDelete } from "@mdi/js";
|
||||
import "@polymer/paper-tooltip/paper-tooltip";
|
||||
import {
|
||||
@@ -83,14 +83,14 @@ class HaRefreshTokens extends LitElement {
|
||||
)}
|
||||
</paper-tooltip>`
|
||||
: ""}
|
||||
<mwc-icon-button
|
||||
<mwc-button
|
||||
.token=${token}
|
||||
.disabled=${token.is_current}
|
||||
.title=${this.hass.localize(`ui.common.delete`)}
|
||||
@click=${this._deleteToken}
|
||||
>
|
||||
<ha-svg-icon .path=${mdiDelete}></ha-svg-icon>
|
||||
</mwc-icon-button>
|
||||
</mwc-button>
|
||||
</div>
|
||||
</ha-settings-row>`
|
||||
)
|
||||
@@ -135,8 +135,8 @@ class HaRefreshTokens extends LitElement {
|
||||
ha-settings-row {
|
||||
padding: 0;
|
||||
}
|
||||
mwc-icon-button {
|
||||
color: var(--primary-text-color);
|
||||
mwc-button {
|
||||
--mdc-theme-primary: var(--primary-color);
|
||||
}
|
||||
`,
|
||||
];
|
||||
|
@@ -18,22 +18,8 @@ export const sortableStyles = css`
|
||||
animation-duration: 0.33s;
|
||||
}
|
||||
|
||||
#sortable a {
|
||||
height: 48px;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
#sortable {
|
||||
outline: none;
|
||||
display: block !important;
|
||||
}
|
||||
|
||||
.hidden-panel {
|
||||
display: flex !important;
|
||||
}
|
||||
|
||||
.sortable-fallback {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.sortable-ghost {
|
||||
@@ -68,25 +54,13 @@ export const sortableStyles = css`
|
||||
}
|
||||
}
|
||||
|
||||
.show-panel,
|
||||
.hide-panel {
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
--mdc-icon-button-size: 40px;
|
||||
}
|
||||
|
||||
.hide-panel {
|
||||
top: 4px;
|
||||
right: 8px;
|
||||
}
|
||||
|
||||
:host([expanded]) .hide-panel {
|
||||
display: block;
|
||||
}
|
||||
|
||||
:host([expanded]) .show-panel {
|
||||
display: inline-flex;
|
||||
}
|
||||
|
||||
|
@@ -1,13 +0,0 @@
|
||||
// https://github.com/home-assistant/frontend/pull/7031
|
||||
const isSafari14 = /^((?!chrome|android).)*version\/14\.0.*safari/i.test(
|
||||
navigator.userAgent
|
||||
);
|
||||
if (isSafari14) {
|
||||
const origAttachShadow = window.Element.prototype.attachShadow;
|
||||
window.Element.prototype.attachShadow = function (init) {
|
||||
if (init && init.delegatesFocus) {
|
||||
delete init.delegatesFocus;
|
||||
}
|
||||
return origAttachShadow.apply(this, [init]);
|
||||
};
|
||||
}
|
@@ -16,11 +16,13 @@ declare global {
|
||||
interface HASSDomEvents {
|
||||
"hass-dock-sidebar": DockSidebarParams;
|
||||
"hass-default-panel": DefaultPanelParams;
|
||||
"hass-edit-sidebar": undefined;
|
||||
}
|
||||
// for add event listener
|
||||
interface HTMLElementEventMap {
|
||||
"hass-dock-sidebar": HASSDomEvent<DockSidebarParams>;
|
||||
"hass-default-panel": HASSDomEvent<DefaultPanelParams>;
|
||||
"hass-edit-sidebar": undefined;
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -374,12 +374,6 @@
|
||||
"video_not_supported": "Your browser does not support the video element.",
|
||||
"media_not_supported": "The Browser Media Player does not support this type of media",
|
||||
"media_browsing_error": "Media Browsing Error",
|
||||
"learn_adding_local_media": "Learn more about adding media in the {documentation}.",
|
||||
"local_media_files": "Place your video, audio and image files in the media directory to be able to browse and play them in the browser or on supported media players.",
|
||||
"documentation": "documentation",
|
||||
"no_local_media_found": "No local media found",
|
||||
"no_media_folder": "It looks like you have not yet created a media directory.",
|
||||
"setup_local_help": "Check the {documentation} on how to setup local media.",
|
||||
"class": {
|
||||
"album": "Album",
|
||||
"app": "App",
|
||||
@@ -1737,7 +1731,7 @@
|
||||
"name": "Name",
|
||||
"change_password": "Change password",
|
||||
"new_password": "New Password",
|
||||
"password_changed": "Password was changed successfully",
|
||||
"password_changed": "The password is changed!",
|
||||
"activate_user": "Activate user",
|
||||
"deactivate_user": "Deactivate user",
|
||||
"delete_user": "Delete user",
|
||||
@@ -2156,7 +2150,7 @@
|
||||
"save": "Save",
|
||||
"unsaved_changes": "Unsaved changes",
|
||||
"saved": "Saved",
|
||||
"confirm_remove_config_title": "Are you sure you want to remove your Lovelace UI configuration?",
|
||||
"confirm_remove_config_title": "Are you sure you want to remove your Lovelace UI configuration? We will automatically generate your Lovelace UI views with your areas and devices.",
|
||||
"confirm_remove_config_text": "We will automatically generate your Lovelace UI views with your areas and devices if you remove your Lovelace UI configuration.",
|
||||
"confirm_unsaved_changes": "You have unsaved changes, are you sure you want to exit?",
|
||||
"confirm_unsaved_comments": "Your configuration contains comment(s), these will not be saved. Do you want to continue?",
|
||||
|
@@ -1,11 +0,0 @@
|
||||
import { HomeAssistant } from "../types";
|
||||
|
||||
export const documentationUrl = (hass: HomeAssistant, path: string) => {
|
||||
return `https://${
|
||||
hass.config.version.includes("b")
|
||||
? "rc"
|
||||
: hass.config.version.includes("dev")
|
||||
? "next"
|
||||
: "www"
|
||||
}.home-assistant.io${path}`;
|
||||
};
|
@@ -1,19 +0,0 @@
|
||||
import * as assert from "assert";
|
||||
import { documentationUrl } from "../../src/util/documentation-url";
|
||||
|
||||
describe("Generate documentation URL", function () {
|
||||
it("Generate documentation url for stable", function () {
|
||||
assert.strictEqual(
|
||||
// @ts-ignore
|
||||
documentationUrl({ config: { version: "1.0.0" } }, "/blog"),
|
||||
"https://www.home-assistant.io/blog"
|
||||
);
|
||||
});
|
||||
it("Generate documentation url for rc", function () {
|
||||
assert.strictEqual(
|
||||
// @ts-ignore
|
||||
documentationUrl({ config: { version: "1.0.0b0" } }, "/blog"),
|
||||
"https://rc.home-assistant.io/blog"
|
||||
);
|
||||
});
|
||||
});
|
@@ -440,7 +440,6 @@
|
||||
"common": {
|
||||
"cancel": "Kanselleer",
|
||||
"close": "Sluit",
|
||||
"copied": "Copiato",
|
||||
"loading": "Laai tans",
|
||||
"save": "Stoor"
|
||||
},
|
||||
@@ -471,25 +470,6 @@
|
||||
"loading_history": "Laai tans toestandsgeskiedenis ...",
|
||||
"no_history_found": "Geen toestandsgeskiedenis gevind nie."
|
||||
},
|
||||
"media-browser": {
|
||||
"class": {
|
||||
"composer": "Compositore",
|
||||
"directory": "Libreria",
|
||||
"episode": "Episodio",
|
||||
"game": "Gioco",
|
||||
"genre": "Genere",
|
||||
"image": "Immagine",
|
||||
"movie": "Film",
|
||||
"music": "Musica",
|
||||
"playlist": "Playlist",
|
||||
"podcast": "Podcast",
|
||||
"season": "Stagione",
|
||||
"track": "Traccia",
|
||||
"tv_show": "Programma televisivo",
|
||||
"url": "Url",
|
||||
"video": "Video"
|
||||
}
|
||||
},
|
||||
"related-items": {
|
||||
"area": "Area",
|
||||
"automation": "Deel van die volgende outomatisering",
|
||||
|
@@ -507,7 +507,6 @@
|
||||
"cancel": "Cancel·la",
|
||||
"close": "Tanca",
|
||||
"continue": "Continua",
|
||||
"copied": "Copiat",
|
||||
"delete": "Elimina",
|
||||
"error_required": "Obligatori",
|
||||
"loading": "Carregant",
|
||||
@@ -573,7 +572,7 @@
|
||||
},
|
||||
"media-browser": {
|
||||
"audio_not_supported": "El teu navegador no és compatible amb l'element d'àudio.",
|
||||
"choose_player": "Tria reproductor",
|
||||
"choose_player": "Tria el reproductor",
|
||||
"choose-source": "Tria la font",
|
||||
"class": {
|
||||
"album": "Àlbum",
|
||||
@@ -604,21 +603,15 @@
|
||||
"playlist": "Llista de reproducció",
|
||||
"server": "Servidor"
|
||||
},
|
||||
"documentation": "documentació",
|
||||
"learn_adding_local_media": "Més informació sobre com afegir contingut multimèdia a la {documentation}.",
|
||||
"local_media_files": "Col·loca els fitxers de vídeo, àudio i imatge al directori multimèdia i podràs navegar-hi i reproduir-los des del navegador o els reproductors multimèdia compatibles.",
|
||||
"media_browsing_error": "Error de navegació multimèdia",
|
||||
"media_not_supported": "El reproductor multimèdia de navegador no és compatible amb aquest tipus de mitjà",
|
||||
"media_player": "Reproductor multimèdia",
|
||||
"media-player-browser": "Navegador multimèdia",
|
||||
"media-player-browser": "Navegador del reproductor multimèdia",
|
||||
"no_items": "Sense elements",
|
||||
"no_local_media_found": "No s'ha trobat cap mitjà local",
|
||||
"no_media_folder": "Sembla que encara no has creat cap directori multimèdia.",
|
||||
"pick": "Escull",
|
||||
"pick-media": "Tria mitjans",
|
||||
"play": "Reprodueix",
|
||||
"play-media": "Reprodueix mitjans",
|
||||
"setup_local_help": "Consulta la {documentation} per saber com configurar el contingut multimèdia local.",
|
||||
"video_not_supported": "El teu navegador no és compatible amb l'element de vídeo.",
|
||||
"web-browser": "Navegador web"
|
||||
},
|
||||
@@ -656,7 +649,7 @@
|
||||
},
|
||||
"dialogs": {
|
||||
"config_entry_system_options": {
|
||||
"enable_new_entities_description": "Si es desactiva, les entitats descobertes recentment per a {integration} no s'afegiran automàticament a Home Assistant.",
|
||||
"enable_new_entities_description": "Si està desactivat, les entitats descobertes recentment per a {integration} no s'afegiran automàticament a Home Assistant.",
|
||||
"enable_new_entities_label": "Activa entitats afegides recentment.",
|
||||
"title": "Opcions del sistema per a {integration}",
|
||||
"update": "Actualitza"
|
||||
@@ -1983,37 +1976,37 @@
|
||||
"section": {
|
||||
"reloading": {
|
||||
"automation": "Actualitza automatitzacions",
|
||||
"command_line": "Actualitza entitats de comandes",
|
||||
"command_line": "Torna a carregar entitats de comandes",
|
||||
"core": "Actualitza ubicació i personalitzacions",
|
||||
"filesize": "Actualitza entitats de mida de fitxer",
|
||||
"filter": "Actualitza entitats de filtre",
|
||||
"generic": "Actualitza entitats genèriques de càmera IP",
|
||||
"generic_thermostat": "Actualitza entitats genèriques de termòstat",
|
||||
"group": "Actualitza grups, grups d'entitats i serveis de notificació",
|
||||
"heading": "Torna a carregar les configuracions YAML",
|
||||
"history_stats": "Actualitza entitats d'estadístiques històriques",
|
||||
"homekit": "Actualitza HomeKit",
|
||||
"filesize": "Torna a carregar entitats de mida de fitxer",
|
||||
"filter": "Torna a carregar entitats de filtre",
|
||||
"generic": "Torna a carregar entitats genèriques de càmera IP",
|
||||
"generic_thermostat": "Torna a carregar entitats genèriques de termòstat",
|
||||
"group": "Torna a carregar grups, grups d'entitats i serveis de notificació",
|
||||
"heading": "Tornant a carregar la configuració",
|
||||
"history_stats": "Torna a carregar entitats d'estadístiques històriques",
|
||||
"homekit": "Torna a carregar HomeKit",
|
||||
"input_boolean": "Actualitza entrades booleanes",
|
||||
"input_datetime": "Actualitza entrades de data i hora",
|
||||
"input_number": "Actualitza entrades numèriques",
|
||||
"input_select": "Actualitza entrades de selecció",
|
||||
"input_text": "Actualitza entrades de text",
|
||||
"introduction": "Algunes parts de Home Assistant es poden actualitzar sense necessitat reiniciar-lo. Si prems actualitza s'esborrarà la configuració YAML actual i se'n carregarà la nova.",
|
||||
"min_max": "Actualitza entitats min/max",
|
||||
"mqtt": "Actualitza entitats MQTT",
|
||||
"min_max": "Torna a carregar entitats min/max",
|
||||
"mqtt": "Torna a carregar entitats MQTT",
|
||||
"person": "Actualitza persones",
|
||||
"ping": "Actualitza entitats de sensors binaris de ping",
|
||||
"reload": "Actualitza {domain}",
|
||||
"rest": "Actualitza entitats de repòs i serveis de notificació",
|
||||
"rpi_gpio": "Actualitza entitats GPIO de la Raspberry Pi",
|
||||
"ping": "Torna a carregar entitats de sensors binaris de ping",
|
||||
"reload": "Torna a carregar {domain}",
|
||||
"rest": "Torna a carregar entitats de repòs i serveis de notificació",
|
||||
"rpi_gpio": "Torna a carregar entitats GPIO de la Raspberry Pi",
|
||||
"scene": "Actualitza escenes",
|
||||
"script": "Actualitza programes",
|
||||
"smtp": "Actualitza serveis de notificació SMTP",
|
||||
"statistics": "Actualitza entitats estadístiques",
|
||||
"telegram": "Actualitza serveis de notificació de Telegram",
|
||||
"template": "Actualitza entitats de plantilla",
|
||||
"trend": "Actualitza entitats de tendència",
|
||||
"universal": "Actualitza entitats del reproductor universal",
|
||||
"smtp": "Torna a carregar serveis de notificació SMTP",
|
||||
"statistics": "Torna a carregar entitats estadístiques",
|
||||
"telegram": "Torna a carregar serveis de notificació de Telegram",
|
||||
"template": "Torna a carregar entitats de plantilla",
|
||||
"trend": "Torna a carregar entitats de tendència",
|
||||
"universal": "Torna a carregar entitats del reproductor universal",
|
||||
"zone": "Actualitza zones"
|
||||
},
|
||||
"server_management": {
|
||||
@@ -2036,7 +2029,7 @@
|
||||
"tags": {
|
||||
"add_tag": "Afegeix etiqueta",
|
||||
"automation_title": "S'escanegi l'etiqueta {name}",
|
||||
"caption": "Etiquetes (NFC/RFID)",
|
||||
"caption": "Etiquetes",
|
||||
"create_automation": "Crea una automatització amb una etiqueta",
|
||||
"description": "Gestiona les etiquetes",
|
||||
"detail": {
|
||||
@@ -2698,7 +2691,7 @@
|
||||
},
|
||||
"raw_editor": {
|
||||
"confirm_remove_config_text": "Si elimines la configuració de la interfície d'usuari Lovelace es generaran automàticament les visualitzacions de Lovelace amb les teves àrees i dispositius.",
|
||||
"confirm_remove_config_title": "Estàs segur que vols eliminar la configuració de la interfície d'usuari Lovelace?",
|
||||
"confirm_remove_config_title": "Estàs segur que vols eliminar la configuració de la interfície d'usuari Lovelace? Es generaran automàticament les visualitzacions de Lovelace amb les teves àrees i dispositius.",
|
||||
"confirm_unsaved_changes": "Hi han canvis no desats. Segur que vols sortir?",
|
||||
"confirm_unsaved_comments": "La configuració conté comentaris que es descartaran. Vols continuar?",
|
||||
"error_invalid_config": "La configuració no és vàlida: {error}",
|
||||
|
@@ -507,7 +507,6 @@
|
||||
"cancel": "Zrušit",
|
||||
"close": "Zavřít",
|
||||
"continue": "Pokračovat",
|
||||
"copied": "Zkopírováno",
|
||||
"delete": "Smazat",
|
||||
"error_required": "Povinné",
|
||||
"loading": "Načítání",
|
||||
@@ -604,21 +603,15 @@
|
||||
"playlist": "Seznam skladeb",
|
||||
"server": "Server"
|
||||
},
|
||||
"documentation": "dokumentace",
|
||||
"learn_adding_local_media": "Další informace o přidávání médií naleznete v {documentation}.",
|
||||
"local_media_files": "Umístěte svá videa, zvukové či obrazové soubory do adresáře médií, abyste je mohli procházet a přehrávat v prohlížeči nebo na podporovaných přehrávačích médií.",
|
||||
"media_browsing_error": "Chyba při procházení médií",
|
||||
"media_not_supported": "Přehrávač médií v prohlížeči nepodporuje tento typ média",
|
||||
"media_player": "Přehrávač médií",
|
||||
"media-player-browser": "Prohlížeč přehrávače médií",
|
||||
"no_items": "Žádné položky",
|
||||
"no_local_media_found": "Nebyla nalezena žádná místní média",
|
||||
"no_media_folder": "Vypadá to, že jste dosud nevytvořili adresář médií.",
|
||||
"pick": "Vybrat",
|
||||
"pick-media": "Vybrat média",
|
||||
"play": "Přehrát",
|
||||
"play-media": "Přehrát média",
|
||||
"setup_local_help": "Pokyny k nastavení místních médií najdete v {documentation}.",
|
||||
"video_not_supported": "Váš prohlížeč nepodporuje element \"video\".",
|
||||
"web-browser": "Webový prohlížeč"
|
||||
},
|
||||
@@ -2698,7 +2691,7 @@
|
||||
},
|
||||
"raw_editor": {
|
||||
"confirm_remove_config_text": "Pokud odeberete konfiguraci uživatelského rozhraní Lovelace, automaticky vygenerujeme pohledy Lovelace s vašimi oblastmi a zařízeními.",
|
||||
"confirm_remove_config_title": "Opravdu chcete odstranit nastavení uživatelského rozhraní Lovelace?",
|
||||
"confirm_remove_config_title": "Opravdu chcete odstranit nastavení Lovelace? Automaticky vygenerujeme vaše zobrazení Lovelace s vašimi oblastmi a zařízeními.",
|
||||
"confirm_unsaved_changes": "Máte neuložené změny. Opravdu chcete odejít?",
|
||||
"confirm_unsaved_comments": "Vaše konfigurace obsahuje komentáře, které se neuloží. Chcete pokračovat?",
|
||||
"error_invalid_config": "Vaše konfigurace není platná: {error}",
|
||||
|
@@ -419,7 +419,6 @@
|
||||
"unlock": "Entriegeln"
|
||||
},
|
||||
"media_player": {
|
||||
"media_next_track": "Weiter",
|
||||
"media_play": "Abspielen",
|
||||
"sound_mode": "Sound-Modus",
|
||||
"source": "Quelle",
|
||||
@@ -502,8 +501,6 @@
|
||||
"back": "Zurück",
|
||||
"cancel": "Abbrechen",
|
||||
"close": "Schließen",
|
||||
"continue": "Weiter",
|
||||
"copied": "Kopiert",
|
||||
"delete": "Löschen",
|
||||
"error_required": "Benötigt",
|
||||
"loading": "Laden",
|
||||
@@ -560,26 +557,8 @@
|
||||
"loading_history": "Lade Zustandsverlauf...",
|
||||
"no_history_found": "Kein Zustandsverlauf gefunden."
|
||||
},
|
||||
"logbook": {
|
||||
"entries_not_found": "Keine Logbucheinträge gefunden."
|
||||
},
|
||||
"media-browser": {
|
||||
"audio_not_supported": "Ihr Browser unterstützt das Audioelement nicht.",
|
||||
"choose-source": "Quelle wählen",
|
||||
"class": {
|
||||
"album": "Album",
|
||||
"app": "App",
|
||||
"directory": "Bibliothek",
|
||||
"episode": "Episode",
|
||||
"game": "Spiel",
|
||||
"movie": "Film",
|
||||
"music": "Musik",
|
||||
"playlist": "Wiedergabeliste",
|
||||
"podcast": "Podcast",
|
||||
"season": "Episode",
|
||||
"url": "URL",
|
||||
"video": "Video"
|
||||
},
|
||||
"content-type": {
|
||||
"album": "Album",
|
||||
"artist": "Künstler",
|
||||
@@ -587,13 +566,7 @@
|
||||
"playlist": "Playlist",
|
||||
"server": "Server"
|
||||
},
|
||||
"no_items": "Keine Einträge",
|
||||
"play": "Abspielen",
|
||||
"video_not_supported": "Ihr Browser unterstützt das Videoelement nicht."
|
||||
},
|
||||
"picture-upload": {
|
||||
"label": "Bild",
|
||||
"unsupported_format": "Nicht unterstütztes Format, bitte wähle ein JPEG-, PNG- oder GIF-Bild."
|
||||
"play": "Abspielen"
|
||||
},
|
||||
"related-items": {
|
||||
"area": "Bereich",
|
||||
@@ -699,10 +672,8 @@
|
||||
"yaml_not_editable": "Die Einstellungen dieser Entität können nicht über die Benutzeroberfläche bearbeitet werden. Nur über die Benutzeroberfläche eingerichtete Entitäten können über die Benutzeroberfläche konfiguriert werden."
|
||||
},
|
||||
"more_info_control": {
|
||||
"details": "Details",
|
||||
"dismiss": "Dialog ausblenden",
|
||||
"edit": "Entität bearbeiten",
|
||||
"history": "Verlauf",
|
||||
"person": {
|
||||
"create_zone": "Zone vom aktuellen Standort erstellen"
|
||||
},
|
||||
@@ -878,13 +849,7 @@
|
||||
"type_select": "Aktionstyp",
|
||||
"type": {
|
||||
"choose": {
|
||||
"add_option": "Option hinzufügen",
|
||||
"conditions": "Bedingungen",
|
||||
"default": "Standard-Aktionen",
|
||||
"label": "Auswählen",
|
||||
"option": "Option {number}",
|
||||
"remove_option": "Option entfernen",
|
||||
"sequence": "Aktionen"
|
||||
"label": "Auswählen"
|
||||
},
|
||||
"condition": {
|
||||
"label": "Bedingung"
|
||||
@@ -907,7 +872,6 @@
|
||||
},
|
||||
"repeat": {
|
||||
"label": "Wiederholen",
|
||||
"sequence": "Aktionen",
|
||||
"type_select": "Wiederholungstyp",
|
||||
"type": {
|
||||
"count": {
|
||||
@@ -1080,7 +1044,6 @@
|
||||
"value_template": "Wert-Template (optional)"
|
||||
},
|
||||
"state": {
|
||||
"attribute": "Attribut (Optional)",
|
||||
"for": "Für",
|
||||
"from": "Von",
|
||||
"label": "Zustand",
|
||||
@@ -1105,8 +1068,7 @@
|
||||
},
|
||||
"time": {
|
||||
"at": "Um",
|
||||
"label": "Zeit",
|
||||
"type_value": "Feste Zeit"
|
||||
"label": "Zeit"
|
||||
},
|
||||
"webhook": {
|
||||
"label": "Webhook",
|
||||
@@ -1129,8 +1091,6 @@
|
||||
"add_automation": "Automatisierung hinzufügen",
|
||||
"delete_automation": "Automatisierung löschen",
|
||||
"delete_confirm": "Bist du sicher, dass du diese Automatisierung löschen möchtest?",
|
||||
"duplicate": "Duplizieren",
|
||||
"duplicate_automation": "Automatisierung kopieren",
|
||||
"edit_automation": "Automatisierung bearbeiten",
|
||||
"header": "Automatisierungseditor",
|
||||
"headers": {
|
||||
@@ -1354,7 +1314,6 @@
|
||||
}
|
||||
},
|
||||
"devices": {
|
||||
"add_prompt": "Mit diesem Gerät wurden noch keine {name} hinzugefügt. Du kannst eins hinzufügen, indem du auf den + Knopf drückst.",
|
||||
"automation": {
|
||||
"actions": {
|
||||
"caption": "Wenn etwas ausgelöst wird ..."
|
||||
@@ -1518,7 +1477,6 @@
|
||||
},
|
||||
"integrations": {
|
||||
"add_integration": "Integration hinzufügen",
|
||||
"attention": "Aufmerksamkeit erforderlich",
|
||||
"caption": "Integrationen",
|
||||
"config_entry": {
|
||||
"area": "In {area}",
|
||||
@@ -1537,8 +1495,6 @@
|
||||
"no_device": "Entitäten ohne Geräte",
|
||||
"no_devices": "Diese Integration hat keine Geräte.",
|
||||
"options": "Optionen",
|
||||
"reload": "Neu laden",
|
||||
"reload_confirm": "Die Integration wurde neu geladen",
|
||||
"rename": "Umbenennen",
|
||||
"restart_confirm": "Starte Home Assistant neu, um das Entfernen dieser Integration abzuschließen",
|
||||
"settings_button": "Einstellungen für {integration} bearbeiten",
|
||||
@@ -1587,7 +1543,6 @@
|
||||
"none_found_detail": "Passe deine Suchkriterien an.",
|
||||
"note_about_integrations": "Nicht alle Integrationen können über die Benutzeroberfläche konfiguriert werden.",
|
||||
"note_about_website_reference": "Weitere Informationen findest du auf der ",
|
||||
"reconfigure": "Neu konfigurieren",
|
||||
"rename_dialog": "Bearbeite den Namen dieses Konfigurationseintrags",
|
||||
"rename_input_label": "Eintragsname",
|
||||
"search": "Such-Integrationen"
|
||||
@@ -1698,11 +1653,8 @@
|
||||
"topic": "Topic"
|
||||
},
|
||||
"ozw": {
|
||||
"button": "Konfigurieren",
|
||||
"common": {
|
||||
"instance": "Instanz",
|
||||
"network": "Netzwerk",
|
||||
"zwave": "Z-Wave"
|
||||
"instance": "Instanz"
|
||||
},
|
||||
"device_info": {
|
||||
"zwave_info": "Z-Wave Infos"
|
||||
@@ -1712,27 +1664,12 @@
|
||||
"select_instance": "Instanz auswählen"
|
||||
},
|
||||
"network_status": {
|
||||
"details": {
|
||||
"driverremoved": "Der Treiber wurde entfernt",
|
||||
"driverreset": "Der Treiber wurde zurückgesetzt",
|
||||
"ready": "Bereit zum Verbinden",
|
||||
"started": "Verbindung mit MQTT hergestellt",
|
||||
"starting": "Verbinde zu MQTT"
|
||||
},
|
||||
"offline": "Offline",
|
||||
"online": "Online",
|
||||
"starting": "Startet",
|
||||
"unknown": "Unbekannt"
|
||||
},
|
||||
"network": {
|
||||
"header": "Netzwerkverwaltung"
|
||||
},
|
||||
"nodes_table": {
|
||||
"failed": "Fehlgeschlagen",
|
||||
"manufacturer": "Hersteller"
|
||||
},
|
||||
"refresh_node": {
|
||||
"start_refresh_button": "Aktualisierung starten"
|
||||
}
|
||||
},
|
||||
"person": {
|
||||
@@ -1861,7 +1798,6 @@
|
||||
"core": "Ort & Anpassungen neu laden",
|
||||
"group": "Gruppen neu laden",
|
||||
"heading": "Neuladen der YAML-Konfiguration",
|
||||
"homekit": "HomeKit neu laden",
|
||||
"input_boolean": "Eingabe-Booleans neu laden",
|
||||
"input_datetime": "Eingabe-Datums- und Zeitfelder neu laden",
|
||||
"input_number": "Eingabenummern neu laden",
|
||||
@@ -1871,7 +1807,6 @@
|
||||
"person": "Personen neu laden",
|
||||
"scene": "Szenen neu laden",
|
||||
"script": "Skripte neu laden",
|
||||
"telegram": "Telegram-Benachrichtigungsdienste neu laden",
|
||||
"zone": "Zonen neu laden"
|
||||
},
|
||||
"server_management": {
|
||||
@@ -1893,18 +1828,12 @@
|
||||
},
|
||||
"tags": {
|
||||
"detail": {
|
||||
"delete": "Löschen",
|
||||
"description": "Beschreibung",
|
||||
"name": "Name",
|
||||
"update": "Aktualisieren"
|
||||
},
|
||||
"edit": "Bearbeiten",
|
||||
"headers": {
|
||||
"last_scanned": "Zuletzt gescannt",
|
||||
"name": "Name"
|
||||
},
|
||||
"never_scanned": "Nie gescannt",
|
||||
"write": "Schreiben"
|
||||
"headers": {
|
||||
"name": "Name"
|
||||
},
|
||||
"never_scanned": "Nie gescannt"
|
||||
},
|
||||
"users": {
|
||||
"add_user": {
|
||||
@@ -1912,7 +1841,6 @@
|
||||
"create": "Benutzerkonto anlegen",
|
||||
"name": "Name",
|
||||
"password": "Passwort",
|
||||
"password_confirm": "Passwort bestätigen",
|
||||
"username": "Benutzername"
|
||||
},
|
||||
"caption": "Benutzer",
|
||||
@@ -1929,9 +1857,7 @@
|
||||
"group": "Gruppe",
|
||||
"id": "ID",
|
||||
"name": "Name",
|
||||
"new_password": "Neues Passwort",
|
||||
"owner": "Besitzer",
|
||||
"password_changed": "Das Passwort wurde geändert!",
|
||||
"system_generated": "System generiert",
|
||||
"system_generated_users_not_editable": "Systemgenerierte Benutzer können nicht aktualisiert werden.",
|
||||
"system_generated_users_not_removable": "Vom System generierte Benutzer können nicht entfernt werden.",
|
||||
@@ -2802,9 +2728,6 @@
|
||||
"submit": "Absenden"
|
||||
},
|
||||
"current_user": "Sie sind derzeit als {fullName} angemeldet.",
|
||||
"customize_sidebar": {
|
||||
"button": "Bearbeiten"
|
||||
},
|
||||
"dashboard": {
|
||||
"description": "Wähle ein Standard-Dashboard für dieses Gerät.",
|
||||
"dropdown_label": "Dashboard",
|
||||
@@ -2827,7 +2750,6 @@
|
||||
"confirm_delete": "Möchten Sie den Zugriffs-Token für {name} wirklich löschen?",
|
||||
"create": "Token erstellen",
|
||||
"create_failed": "Das Zugriffs-Token konnte nicht erstellt werden.",
|
||||
"created": "Erstellt am {date}",
|
||||
"created_at": "Erstellt am {date}",
|
||||
"delete_failed": "Fehler beim Löschen des Zugriffs-Tokens.",
|
||||
"description": "Erstelle langlebige Zugriffstoken, damit deine Skripte mit deiner Home Assistant-Instanz interagieren können. Jedes Token ist ab der Erstellung für 10 Jahre gültig. Die folgenden langlebigen Zugriffstoken sind derzeit aktiv.",
|
||||
@@ -2835,7 +2757,6 @@
|
||||
"header": "Langlebige Zugangs-Token",
|
||||
"last_used": "Zuletzt verwendet am {date} in {location}",
|
||||
"learn_auth_requests": "Erfahre, wie du authentifizierte Anfragen stellen kannst.",
|
||||
"name": "Name",
|
||||
"not_used": "Wurde noch nie benutzt",
|
||||
"prompt_copy_token": "Kopiere deinen Zugangs-Token. Er wird nicht wieder angezeigt werden.",
|
||||
"prompt_name": "Name?"
|
||||
@@ -2887,8 +2808,7 @@
|
||||
"error_no_theme": "Keine Themen verfügbar.",
|
||||
"header": "Thema",
|
||||
"link_promo": "Erfahre mehr über Themen",
|
||||
"primary_color": "Primärfarbe",
|
||||
"reset": "zurücksetzen"
|
||||
"primary_color": "Primärfarbe"
|
||||
},
|
||||
"vibrate": {
|
||||
"description": "Aktiviere oder deaktiviere die Vibration an diesem Gerät, wenn du Geräte steuerst.",
|
||||
@@ -2902,7 +2822,6 @@
|
||||
}
|
||||
},
|
||||
"sidebar": {
|
||||
"done": "fertig",
|
||||
"external_app_configuration": "App-Konfiguration",
|
||||
"sidebar_toggle": "Seitenleiste umschalten"
|
||||
}
|
||||
|
@@ -19,7 +19,6 @@
|
||||
"logbook": "Αρχείο Συμβάντων",
|
||||
"mailbox": "Γραμματοκιβώτιο",
|
||||
"map": "Χάρτης",
|
||||
"media_browser": "Πρόγραμμα περιήγησης πολυμέσων",
|
||||
"profile": "Προφίλ",
|
||||
"shopping_list": "Λίστα αγορών",
|
||||
"states": "Επισκόπηση"
|
||||
@@ -506,8 +505,6 @@
|
||||
"back": "Πίσω",
|
||||
"cancel": "Ακύρωση",
|
||||
"close": "Κλείστε",
|
||||
"continue": "Συνέχεια",
|
||||
"copied": "Αντιγράφηκε",
|
||||
"delete": "Διαγραφή",
|
||||
"error_required": "Υποχρεωτικό",
|
||||
"loading": "Φόρτωση",
|
||||
@@ -554,10 +551,6 @@
|
||||
"toggle": "Εναλλαγή"
|
||||
},
|
||||
"entity": {
|
||||
"entity-attribute-picker": {
|
||||
"attribute": "Χαρακτηριστικό",
|
||||
"show_attributes": "Εμφάνιση χαρακτηριστικών"
|
||||
},
|
||||
"entity-picker": {
|
||||
"clear": "Καθαρισμός",
|
||||
"entity": "Οντότητα",
|
||||
@@ -568,63 +561,20 @@
|
||||
"loading_history": "Φόρτωση ιστορικού κατάστασης …",
|
||||
"no_history_found": "Δεν έχει βρεθεί ιστορικό κατάστασης."
|
||||
},
|
||||
"logbook": {
|
||||
"entries_not_found": "Δεν βρέθηκαν καταχωρήσεις ημερολογίου."
|
||||
},
|
||||
"media-browser": {
|
||||
"audio_not_supported": "Το πρόγραμμα περιήγησής σας δεν υποστηρίζει το στοιχείο ήχου.",
|
||||
"choose_player": "Επιλογή προγράμματος αναπαραγωγής",
|
||||
"choose-source": "Επιλέξτε Πηγή",
|
||||
"class": {
|
||||
"album": "Άλμπουμ",
|
||||
"app": "Εφαρμογή",
|
||||
"artist": "Καλλιτέχνης",
|
||||
"channel": "Κανάλι",
|
||||
"composer": "Συνθέτης",
|
||||
"contributing_artist": "Συνεισφέροντας Καλλιτέχνης",
|
||||
"directory": "Βιβλιοθήκη",
|
||||
"episode": "Επεισόδιο",
|
||||
"game": "Παιχνίδι",
|
||||
"genre": "Είδος",
|
||||
"image": "Εικόνα",
|
||||
"movie": "Ταινία",
|
||||
"music": "Μουσική",
|
||||
"playlist": "Λίστα αναπαραγωγής",
|
||||
"podcast": "Podcast",
|
||||
"season": "Σεζόν",
|
||||
"track": "Κομμάτι",
|
||||
"tv_show": "Τηλεοπτική εκπομπή",
|
||||
"url": "Διεύθυνση url",
|
||||
"video": "Βίντεο"
|
||||
},
|
||||
"content-type": {
|
||||
"album": "Άλμπουμ",
|
||||
"artist": "Καλλιτέχνης",
|
||||
"library": "Βιβλιοθήκη",
|
||||
"playlist": "Λίστα αναπαραγωγής",
|
||||
"server": "Διακομιστής"
|
||||
},
|
||||
"documentation": "τεκμηρίωση",
|
||||
"learn_adding_local_media": "Μάθετε περισσότερα σχετικά με την προσθήκη πολυμέσων στην {τεκμηρίωση}.",
|
||||
"local_media_files": "Τοποθετήστε τα αρχεία βίντεο, ήχου και εικόνας στον κατάλογο πολυμέσων για να μπορείτε να περιηγηθείτε και να τα αναπαραγάγετε στο πρόγραμμα περιήγησης ή σε υποστηριζόμενες συσκευές αναπαραγωγής πολυμέσων.",
|
||||
"media_browsing_error": "Σφάλμα περιήγησης πολυμέσων",
|
||||
"media_not_supported": "Το Πρόγραμμα αναπαραγωγής πολυμέσων του προγράμματος περιήγησης δεν υποστηρίζει αυτόν τον τύπο πολυμέσων",
|
||||
"media_player": "Πρόγραμμα αναπαραγωγής πολυμέσων",
|
||||
"media-player-browser": "Πρόγραμμα περιήγησης πολυμέσων",
|
||||
"no_items": "Χωρίς στοιχεία",
|
||||
"no_local_media_found": "Δεν βρέθηκαν τοπικά μέσα",
|
||||
"no_media_folder": "Φαίνεται ότι δεν έχετε δημιουργήσει ακόμη έναν κατάλογο πολυμέσων.",
|
||||
"pick": "Επιλέξετε",
|
||||
"pick-media": "Επιλογή μέσων",
|
||||
"play": "Αναπαραγωγή",
|
||||
"play-media": "Αναπαραγωγή πολυμέσων",
|
||||
"setup_local_help": "Ελέγξτε την {τεκμηρίωση} σχετικά με τον τρόπο ρύθμισης των τοπικών μέσων.",
|
||||
"video_not_supported": "Το πρόγραμμα περιήγησής σας δεν υποστηρίζει το στοιχείο βίντεο.",
|
||||
"web-browser": "Φυλλομετρητής"
|
||||
},
|
||||
"picture-upload": {
|
||||
"label": "Εικόνα",
|
||||
"unsupported_format": "Μη υποστηριζόμενη μορφή, επιλέξτε μια εικόνα JPEG, PNG ή GIF."
|
||||
"play-media": "Αναπαραγωγή πολυμέσων"
|
||||
},
|
||||
"relative_time": {
|
||||
"duration": {
|
||||
@@ -650,7 +600,6 @@
|
||||
"title": "Επιλογές συστήματος για το {integration}"
|
||||
},
|
||||
"domain_toggler": {
|
||||
"reset_entities": "Επαναφορά οντοτήτων",
|
||||
"title": "Εναλλαγή τομέων"
|
||||
},
|
||||
"entity_registry": {
|
||||
@@ -666,7 +615,6 @@
|
||||
},
|
||||
"generic": {
|
||||
"cancel": "Ακύρωση",
|
||||
"close": "κλείσε",
|
||||
"default_confirmation_title": "Είστε σίγουροι;",
|
||||
"ok": "Εντάξει"
|
||||
},
|
||||
@@ -677,10 +625,6 @@
|
||||
"time": "Ώρα"
|
||||
},
|
||||
"input_number": {
|
||||
"box": "Πεδίο εισαγωγής",
|
||||
"max": "Μέγιστη τιμή",
|
||||
"min": "Ελάχιστη τιμή",
|
||||
"mode": "Λειτουργία εμφάνισης",
|
||||
"step": "Μέγεθος βήματος"
|
||||
},
|
||||
"input_text": {
|
||||
@@ -690,14 +634,8 @@
|
||||
"platform_not_loaded": "Η ενσωμάτωση {platform} δεν έχει φορτωθεί. Προσθέστε το στη διαμόρφωσή σας είτε προσθέτοντας 'default_config:' ή '' {platform} : ''.",
|
||||
"yaml_not_editable": "Δεν είναι δυνατή η επεξεργασία των ρυθμίσεων αυτής της οντότητας από το περιβάλλον χρήστη. Μόνο οντότητες που έχουν δημιουργηθεί από το περιβάλλον χρήστη μπορούν να διαμορφωθούν από το περιβάλλον χρήστη."
|
||||
},
|
||||
"image_cropper": {
|
||||
"crop": "Περικοπή"
|
||||
},
|
||||
"more_info_control": {
|
||||
"controls": "Έλεγχοι",
|
||||
"details": "Λεπτομέρειες",
|
||||
"dismiss": "Κλείσιμο διαλόγου.",
|
||||
"history": "Ιστορικό",
|
||||
"restored": {
|
||||
"confirm_remove_text": "Είστε βέβαιοι πως θέλετε να καταργήσετε αυτή την οντότητα;",
|
||||
"confirm_remove_title": "Θέλετε να αφαιρέσετε αυτή την οντότητα;",
|
||||
@@ -726,8 +664,7 @@
|
||||
"payload_display": "Εμφάνιση ωφέλιμου φορτίου",
|
||||
"recent_messages": "{n} πιο πρόσφατα ληφθέντα μηνύματα",
|
||||
"show_as_yaml": "Εμφάνιση ως YAML",
|
||||
"title": "Πληροφορίες εντοπισμού σφαλμάτων {device}",
|
||||
"triggers": "Εναύσματα"
|
||||
"title": "Πληροφορίες εντοπισμού σφαλμάτων {device}"
|
||||
},
|
||||
"options_flow": {
|
||||
"form": {
|
||||
@@ -905,13 +842,7 @@
|
||||
"label": "Κάλεσμα υπηρεσίας",
|
||||
"service_data": "Δεδομένα υπηρεσίας"
|
||||
},
|
||||
"wait_for_trigger": {
|
||||
"continue_timeout": "Συνέχεια στο χρονικό όριο",
|
||||
"label": "Αναμονή για έναυσμα",
|
||||
"timeout": "χρονικό όριο (προαιρετικό)"
|
||||
},
|
||||
"wait_template": {
|
||||
"continue_timeout": "Συνέχεια στο χρονικό όριο",
|
||||
"label": "Αναμονή",
|
||||
"timeout": "Λήξη χρόνου (προαιρετικό)",
|
||||
"wait_template": "Πρότυπο Αναμονής"
|
||||
@@ -972,8 +903,7 @@
|
||||
"time": {
|
||||
"after": "Μετά",
|
||||
"before": "Πριν",
|
||||
"label": "Χρόνος",
|
||||
"type_value": "Σταθερός χρόνος"
|
||||
"label": "Χρόνος"
|
||||
},
|
||||
"zone": {
|
||||
"entity": "Οντότητα με τοποθεσία",
|
||||
@@ -1060,7 +990,6 @@
|
||||
"value_template": "Τιμή πρότυπου (προαιρετικό)"
|
||||
},
|
||||
"state": {
|
||||
"attribute": "Χαρακτηριστικό (Προαιρετικό)",
|
||||
"for": "Για",
|
||||
"from": "Από",
|
||||
"label": "Κατάσταση",
|
||||
@@ -1088,9 +1017,7 @@
|
||||
},
|
||||
"time": {
|
||||
"at": "Στις",
|
||||
"label": "Ώρα",
|
||||
"type_input": "Τιμή ενός βοηθού ημερομηνίας/ώρας",
|
||||
"type_value": "Σταθερός χρόνος"
|
||||
"label": "Ώρα"
|
||||
},
|
||||
"webhook": {
|
||||
"label": "Webhook",
|
||||
@@ -1113,8 +1040,6 @@
|
||||
"add_automation": "Προσθήκη αυτοματισμού",
|
||||
"delete_automation": "Διαγραφή αυτοματισμού",
|
||||
"delete_confirm": "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτόν τον αυτοματισμό;",
|
||||
"duplicate": "Διπλότυπο",
|
||||
"duplicate_automation": "Διπλή αυτοματοποίηση",
|
||||
"edit_automation": "Επεξεργασία αυτοματισμού",
|
||||
"header": "Επεξεργαστής αυτοματισμού",
|
||||
"headers": {
|
||||
@@ -1195,14 +1120,8 @@
|
||||
},
|
||||
"alexa": {
|
||||
"banner": "Η επεξεργασία των οντοτήτων που εκτίθενται μέσω αυτού του περιβάλλοντος χρήστη είναι απενεργοποιημένη, επειδή έχετε διαμορφώσει φίλτρα οντοτήτων στο αρχείο configuration.yaml.",
|
||||
"dont_expose_entity": "Να μην εκτεθεί η οντότητα",
|
||||
"expose": "Έκθεση στο Alexa",
|
||||
"expose_entity": "Έκθεση οντότητας",
|
||||
"exposed": "{επιλεγμένο} εκτεθειμένο",
|
||||
"exposed_entities": "Εκτεθειμένες οντότητες",
|
||||
"follow_domain": "Παρακολούθηση τομέα",
|
||||
"manage_domains": "Διαχείριση τομέων",
|
||||
"not_exposed": "{επιλεγμένο} δεν εκτίθεται",
|
||||
"not_exposed_entities": "Μη εκτεθειμένες οντότητες",
|
||||
"title": "Alexa"
|
||||
},
|
||||
@@ -1240,14 +1159,8 @@
|
||||
"google": {
|
||||
"banner": "Η επεξεργασία των οντοτήτων που εκτίθενται μέσω αυτού του περιβάλλοντος χρήστη είναι απενεργοποιημένη, επειδή έχετε διαμορφώσει φίλτρα οντοτήτων στο αρχείο configuration.yaml.",
|
||||
"disable_2FA": "Απενεργοποιήστε τον έλεγχο ταυτότητας δύο παραγόντων",
|
||||
"dont_expose_entity": "Να μην εκτεθεί η οντότητα",
|
||||
"expose": "Έκθεση στο Google Assistant.",
|
||||
"expose_entity": "Έκθεση οντότητας",
|
||||
"exposed": "{επιλεγμένο} εκτεθειμένο",
|
||||
"exposed_entities": "Εκτεθειμένες οντότητες",
|
||||
"follow_domain": "Παρακολούθηση τομέα",
|
||||
"manage_domains": "Διαχείριση τομέων",
|
||||
"not_exposed": "{επιλεγμένο} μη-εκτεθειμένο",
|
||||
"not_exposed_entities": "Μη εκτεθειμένες οντότητες",
|
||||
"sync_to_google": "Συγχρονισμός αλλαγών στο Google.",
|
||||
"title": "Google Assistant"
|
||||
@@ -1443,31 +1356,17 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"filtering": {
|
||||
"clear": "Εκκαθάριση",
|
||||
"filtering_by": "Φιλτράρισμα κατά"
|
||||
},
|
||||
"header": "Διαμόρφωση του Home Assistant",
|
||||
"helpers": {
|
||||
"description": "Διαχειριστείτε στοιχεία που βοηθούν στη δημιουργία αυτοματισμών",
|
||||
"dialog": {
|
||||
"add_helper": "Προσθήκη βοηθού",
|
||||
"add_platform": "Προσθήκη {πλατφόρμας}",
|
||||
"create": "Δημιουργία"
|
||||
},
|
||||
"picker": {
|
||||
"add_helper": "Προσθήκη βοηθού",
|
||||
"headers": {
|
||||
"editable": "Επεξεργάσιμο",
|
||||
"entity_id": "Αναγνωριστικό οντότητας",
|
||||
"name": "Ονομασία",
|
||||
"type": "Τύπος"
|
||||
"name": "Ονομασία"
|
||||
},
|
||||
"no_helpers": "Φαίνεται ότι δεν έχετε ακόμα βοηθούς!"
|
||||
},
|
||||
"types": {
|
||||
"input_boolean": "Εναλλαγή",
|
||||
"input_datetime": "Ημερομηνία και/ή ώρα",
|
||||
"input_number": "Αριθμός",
|
||||
"input_text": "Κείμενο"
|
||||
}
|
||||
@@ -1498,8 +1397,6 @@
|
||||
"missing_zwave": "Λείπει ο πίνακας διαμόρφωσης Z-Wave; Μετακινήθηκε στην καταχώριση Z-Wave στο {integrations_page} ."
|
||||
},
|
||||
"integrations": {
|
||||
"add_integration": "Προσθήκη ενσωμάτωσης",
|
||||
"attention": "Απαιτείται προσοχή",
|
||||
"caption": "Ενσωματώσεις",
|
||||
"config_entry": {
|
||||
"area": "Στην {area}",
|
||||
@@ -1516,12 +1413,8 @@
|
||||
"no_device": "Οντότητες χωρίς συσκευές",
|
||||
"no_devices": "Αυτή η ενοποίηση δεν έχει συσκευές.",
|
||||
"options": "Επιλογές",
|
||||
"reload": "Επαναφόρτωση",
|
||||
"reload_confirm": "Η ενσωμάτωση επαναφορτώθηκε",
|
||||
"reload_restart_confirm": "Κάντε επανεκκίνηση του Home Assistant για να ολοκληρώσετε τη φόρτωση αυτής της ενσωμάτωσης",
|
||||
"rename": "Μετονομασία",
|
||||
"restart_confirm": "Επανεκκινήστε το Home Assistant για να ολοκληρώσετε την κατάργηση αυτής της ενοποίησης",
|
||||
"services": "{count} {count, plural,\n one {υπηρεσία}\n other {υπηρεσίες}\n}",
|
||||
"settings_button": "Επεξεργασία ρυθμίσεων για {integration}",
|
||||
"system_options": "Επιλογές συστήματος",
|
||||
"system_options_button": "Επιλογές συστήματος για {integration}",
|
||||
@@ -1558,7 +1451,6 @@
|
||||
"show_ignored": "Απόκρυψη των ενσωματώσεων που παραβλέφθηκαν",
|
||||
"stop_ignore": "Διακοπή την παράβλεψη"
|
||||
},
|
||||
"integration": "ενσωμάτωση",
|
||||
"integration_not_found": "Η ενσωμάτωση δε βρέθηκε.",
|
||||
"new": "Ρυθμίστε νέα ενοποίηση",
|
||||
"none": "Δεν υπάρχει διαμόρφωση ακόμα",
|
||||
@@ -1566,7 +1458,6 @@
|
||||
"none_found_detail": "Προσαρμόστε τα κριτήρια αναζήτησης.",
|
||||
"note_about_integrations": "Δεν μπορούν όλες οι ενσωματώσεις να διαμορφωθούν από το UI ακόμη.",
|
||||
"note_about_website_reference": "Περισσότερα είναι διαθέσιμα στο",
|
||||
"reconfigure": "Αναδιαμόρφωση",
|
||||
"rename_input_label": "Όνομα καταχώρησης",
|
||||
"search": "Αναζήτηση ενσωματώσεων"
|
||||
},
|
||||
@@ -1585,40 +1476,23 @@
|
||||
"title": "Αρχεία καταγραφής"
|
||||
},
|
||||
"lovelace": {
|
||||
"caption": "Πίνακες ελέγχου Lovelace",
|
||||
"dashboards": {
|
||||
"cant_edit_default": "Δεν είναι δυνατή η επεξεργασία του τυπικού πίνακα ελέγχου Lovelace από τη διεπαφή χρήστη. Μπορείτε να το αποκρύψετε ορίζοντας έναν άλλο πίνακα ελέγχου ως προεπιλογή.",
|
||||
"cant_edit_yaml": "Δεν είναι δυνατή η επεξεργασία πινάκων εργαλείων που ορίζονται στο YAML από το περιβάλλον εργασίας χρήστη. Αλλάξτε τα στο configuration.yaml.",
|
||||
"caption": "Επισκόπηση",
|
||||
"conf_mode": {
|
||||
"storage": "Ελεγχόμενο από το UI",
|
||||
"yaml": "Αρχείο YAML"
|
||||
},
|
||||
"confirm_delete": "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτόν τον πίνακα ελέγχου;",
|
||||
"default_dashboard": "Αυτή είναι η προεπιλεγμένη επισκόπηση",
|
||||
"detail": {
|
||||
"create": "Δημιουργία",
|
||||
"delete": "Διαγραφή",
|
||||
"dismiss": "Κλείστε",
|
||||
"edit_dashboard": "Επεξεργασία πίνακα εργαλείων",
|
||||
"icon": "Εικονίδιο",
|
||||
"new_dashboard": "Προσθήκη νέου πίνακα ελέγχου",
|
||||
"require_admin": "Μόνο διαχειριστής",
|
||||
"show_sidebar": "Εμφάνιση στην πλαϊνή γραμμή",
|
||||
"title": "Τίτλος",
|
||||
"title_required": "Απαιτείται τίτλος.",
|
||||
"update": "Ενημέρωση",
|
||||
"url": "Διεύθυνση url",
|
||||
"url_error_msg": "Η διεύθυνση URL πρέπει να περιέχει ένα - και δεν μπορεί να περιέχει κενά ή ειδικούς χαρακτήρες, εκτός από _ και -"
|
||||
},
|
||||
"picker": {
|
||||
"add_dashboard": "Προσθήκη πίνακα εργαλείων",
|
||||
"headers": {
|
||||
"conf_mode": "Μέθοδος διαμόρφωσης",
|
||||
"default": "Προεπιλογή",
|
||||
"filename": "Όνομα_αρχείου",
|
||||
"require_admin": "Μόνο διαχειριστής",
|
||||
"sidebar": "Εμφάνιση στην πλαϊνή γραμμή"
|
||||
"filename": "Όνομα_αρχείου"
|
||||
},
|
||||
"open": "Άνοιγμα"
|
||||
}
|
||||
@@ -1646,10 +1520,7 @@
|
||||
"topic": "θέμα"
|
||||
},
|
||||
"ozw": {
|
||||
"button": "Διαμόρφωση",
|
||||
"common": {
|
||||
"controller": "Ελεγκτής",
|
||||
"network": "Δίκτυο",
|
||||
"node_id": "Αναγνωριστικό κόμβου",
|
||||
"ozw_instance": "Παρουσία OpenZWave",
|
||||
"zwave": "Z-Wave"
|
||||
@@ -1690,48 +1561,26 @@
|
||||
"node_count": "{count} κόμβοι"
|
||||
},
|
||||
"node_query_stages": {
|
||||
"associations": "Ανανέωση ομάδων συσχέτισης και μελών",
|
||||
"cacheload": "Φόρτωση πληροφοριών από το αρχείο προσωρινής αποθήκευσης OpenZWave. Οι κόμβοι μπαταρίας θα παραμείνουν σε αυτό το στάδιο έως ότου ξυπνήσει ο κόμβος.",
|
||||
"complete": "Η διαδικασία της συνέντευξης ολοκληρώθηκε",
|
||||
"configuration": "Λήψη τιμών διαμόρφωσης από τον κόμβο",
|
||||
"dynamic": "Λήψη τιμών που αλλάζουν συχνά από τον κόμβο",
|
||||
"instances": "Λήψη λεπτομερειών σχετικά με τις παρουσίες ή τα κανάλια που υποστηρίζει μια συσκευή",
|
||||
"manufacturerspecific1": "Απόκτηση κωδικών κατασκευαστή και αναγνωριστικού προϊόντος από τον κόμβο",
|
||||
"manufacturerspecific2": "Λήψη πρόσθετων κωδικών αναγνωριστικού κατασκευαστή και προϊόντος από τον κόμβο",
|
||||
"neighbors": "Απόκτηση λίστας των γειτονικών κόμβων",
|
||||
"nodeinfo": "Λήψη υποστηριζόμενων κλάσεων εντολών από τον κόμβο",
|
||||
"nodeplusinfo": "Λήψη πληροφοριών Z-Wave+ από τον κόμβο",
|
||||
"probe": "Έλεγχος εάν ο κόμβος είναι ξύπνιος / ενεργός",
|
||||
"protocolinfo": "Απόκτηση βασικών δυνατοτήτων Z-Wave αυτού του κόμβου από τον ελεγκτή",
|
||||
"session": "Λήψη σπάνια μεταβαλλόμενων τιμών από τον κόμβο",
|
||||
"static": "Λήψη στατικών τιμών από τη συσκευή",
|
||||
"versions": "Λήψη πληροφοριών σχετικά με εκδόσεις υλικολογισμικού και κλάσης εντολών",
|
||||
"wakeup": "Ρύθμιση υποστήριξης για ουρές αφύπνισης και μηνύματα"
|
||||
},
|
||||
"node": {
|
||||
"button": "Λεπτομέρειες κόμβου",
|
||||
"not_found": "Ο κόμβος δεν βρέθηκε"
|
||||
},
|
||||
"nodes_table": {
|
||||
"failed": "Απέτυχε",
|
||||
"id": "Αναγνωριστικό",
|
||||
"manufacturer": "Κατασκευαστής",
|
||||
"model": "Μοντέλο",
|
||||
"query_stage": "Στάδιο ερωτήματος",
|
||||
"zwave_plus": "Z-Wave Plus"
|
||||
},
|
||||
"refresh_node": {
|
||||
"battery_note": "Εάν ο κόμβος τροφοδοτείται με μπαταρία, φροντίστε να τον ενεργοποιήσετε πριν συνεχίσετε",
|
||||
"button": "Ανανέωση κόμβου",
|
||||
"complete": "Ολοκληρώθηκε η ανανέωση κόμβου",
|
||||
"description": "Αυτό θα πει στο OpenZWave να πάρει εκ νέου συνέντευξη από έναν κόμβο και να ενημερώσει τις εντολές, τις δυνατότητες και τις τιμές του κόμβου.",
|
||||
"node_status": "Κατάσταση Κόμβου",
|
||||
"refreshing_description": "Ανανέωση δεδομένων κόμβου σε εξέλιξη...",
|
||||
"start_refresh_button": "Έναρξη ανανέωσης",
|
||||
"start_refresh_button": "Εναρξη Ανανέωσης",
|
||||
"step": "Βήμα",
|
||||
"title": "Ανανέωση πληροφοριών κόμβου",
|
||||
"wakeup_header": "Οδηγίες αφύπνισης για",
|
||||
"wakeup_instructions_source": "Οι οδηγίες αφύπνισης προέρχονται από τη βάση δεδομένων συσκευών κοινότητας OpenZWave."
|
||||
"wakeup_header": "Οδηγίες εκκίνησης απο"
|
||||
},
|
||||
"select_instance": {
|
||||
"header": "Επιλέξτε ένα στιγμιότυπο OpenZWave",
|
||||
@@ -1865,36 +1714,17 @@
|
||||
"section": {
|
||||
"reloading": {
|
||||
"automation": "Επαναφόρτωση αυτοματισμών",
|
||||
"command_line": "Επαναφόρτωση οντοτήτων γραμμής εντολών",
|
||||
"core": "Επαναφόρτωση τοποθεσίας και προσαρμογών",
|
||||
"filesize": "Επαναφόρτωση οντοτήτων μεγέθους αρχείου",
|
||||
"filter": "Επαναφόρτωση οντοτήτων φίλτρου",
|
||||
"generic": "Επαναφόρτωση γενικών οντοτήτων κάμερας IP",
|
||||
"generic_thermostat": "Επαναφόρτωση γενικών οντοτήτων θερμοστάτη",
|
||||
"group": "Επαναφόρτωση ομάδων",
|
||||
"heading": "Επαναφόρτωση παραμετροποίησης YAML ",
|
||||
"history_stats": "Επαναφόρτωση οντοτήτων στατιστικών στοιχείων ιστορικού",
|
||||
"homekit": "Επαναφόρτωση του HomeKit",
|
||||
"input_boolean": "Επαναφόρτωση δυαδικών μεταβλητών εισόδου",
|
||||
"input_datetime": "Επαναφόρτωση ημερομηνίας εισαγωγής",
|
||||
"input_number": "Επαναφόρτωση αριθμών εισόδου",
|
||||
"input_select": "Επαναφόρτωση δέσμης εντολών",
|
||||
"input_text": "Επαναφόρτωση κειμένων εισόδου",
|
||||
"introduction": "Ορισμένα τμήματα του Home Assistant μπορούν να επαναφορτωθούν χωρίς να απαιτείται επανεκκίνηση. Πατώντας \"επαναφόρτωση\" θα ξεφορτωθεί η τρέχουσα παραμετροποίηση YAML και θα φορτωθεί η νέα.",
|
||||
"min_max": "Επαναφόρτωση οντοτήτων ελάχιστων / μέγιστων",
|
||||
"mqtt": "Επαναφόρτωση οντοτήτων mqtt",
|
||||
"ping": "Επαναφόρτωση οντοτήτων δυαδικών αισθητήρων ping",
|
||||
"reload": "Επαναφόρτωση {τομέα}",
|
||||
"rest": "Επαναφόρτωση οντοτήτων ανάπαυσης και ειδοποίηση υπηρεσιών",
|
||||
"rpi_gpio": "Επαναφόρτωση οντοτήτων Raspberry Pi GPIO",
|
||||
"scene": "Επαναφόρτωση σκηνών",
|
||||
"script": "Επαναφόρτωση δέσμης εντολών",
|
||||
"smtp": "Επανάληψη φόρτωσης υπηρεσιών ειδοποίησης smtp",
|
||||
"statistics": "Επαναφόρτωση οντοτήτων στατιστικών",
|
||||
"telegram": "Επαναφόρτωση υπηρεσιών ειδοποίησης telegram",
|
||||
"template": "Επαναφόρτωση οντοτήτων προτύπου",
|
||||
"trend": "Επαναφόρτωση οντοτήτων τάσης",
|
||||
"universal": "Επανάληψη φόρτωσης οντοτήτων καθολικής αναπαραγωγής πολυμέσων"
|
||||
"script": "Επαναφόρτωση δέσμης εντολών"
|
||||
},
|
||||
"server_management": {
|
||||
"confirm_restart": "Είστε βέβαιος ότι θέλετε να επανεκκινήσετε το Home Assistant;",
|
||||
@@ -1914,11 +1744,6 @@
|
||||
}
|
||||
},
|
||||
"tags": {
|
||||
"add_tag": "Προσθήκη ετικέτας",
|
||||
"automation_title": "Η ετικέτα {name} σαρώθηκε",
|
||||
"caption": "Ετικέτες",
|
||||
"create_automation": "Δημιουργία αυτοματοποίησης με ετικέτα",
|
||||
"description": "Διαχείριση ετικετών",
|
||||
"detail": {
|
||||
"create": "Δημιουργία",
|
||||
"create_and_write": "Δημιουργία και εγγραφή",
|
||||
@@ -1926,18 +1751,8 @@
|
||||
"description": "Περιγραφή",
|
||||
"name": "Όνομα",
|
||||
"new_tag": "Νέα ετικέτα",
|
||||
"tag_id": "Αναγνωριστικό ετικέτας",
|
||||
"tag_id_placeholder": "Αυτόματη δημιουργία όταν αφεθεί κενό",
|
||||
"update": "Ενημέρωση"
|
||||
},
|
||||
"edit": "Επεξεργασία",
|
||||
"headers": {
|
||||
"last_scanned": "Τελευταία σάρωση",
|
||||
"name": "Όνομα"
|
||||
},
|
||||
"never_scanned": "Δεν έγινε ποτέ σάρωση",
|
||||
"no_tags": "Καμία ετικέτα",
|
||||
"write": "Εγγραφή"
|
||||
}
|
||||
},
|
||||
"users": {
|
||||
"add_user": {
|
||||
@@ -1945,8 +1760,6 @@
|
||||
"create": "Δημιουργία",
|
||||
"name": "Όνομα",
|
||||
"password": "Κωδικός",
|
||||
"password_confirm": "Επιβεβαίωση Κωδικού",
|
||||
"password_not_match": "Οι κωδικοί πρόσβασης δεν ταιριάζουν",
|
||||
"username": "Όνομα χρήστη"
|
||||
},
|
||||
"caption": "Χρήστες",
|
||||
@@ -1963,9 +1776,7 @@
|
||||
"group": "Ομάδα",
|
||||
"id": "Αναγνωριστικό",
|
||||
"name": "Ονομασία",
|
||||
"new_password": "Νέος κωδικός",
|
||||
"owner": "Ιδιοκτήτης",
|
||||
"password_changed": "Ο κωδικός άλλαξε!",
|
||||
"system_generated": "Δημιουργήθηκε από το σύστημα",
|
||||
"system_generated_users_not_editable": "Δεν είναι δυνατή η ενημέρωση των χρηστών που δημιουργούνται από το σύστημα.",
|
||||
"system_generated_users_not_removable": "Δεν είναι δυνατή η διαγραφή χρηστών που δημιουργήθηκαν από το σύστημα",
|
||||
@@ -2115,8 +1926,6 @@
|
||||
},
|
||||
"node_management": {
|
||||
"add_to_group": "Προσθήκη σε ομάδα",
|
||||
"entities": "Οντότητες αυτού του κόμβου",
|
||||
"entity_info": "Πληροφορίες οντότητας",
|
||||
"exclude_entity": "Εξαίρεση αυτής της οντότητας από τον Home Assistant",
|
||||
"group": "Ομάδα",
|
||||
"header": "Διαχείριση κόμβων Z-Wave",
|
||||
@@ -2125,9 +1934,7 @@
|
||||
"node_group_associations": "Κόμβοι συσχετίσεων ομάδων",
|
||||
"node_protection": "Προστασία κόμβου",
|
||||
"node_to_control": "Κόμβος προς έλεγχο",
|
||||
"nodes": "Κόμβοι",
|
||||
"nodes_in_group": "Άλλοι κόμβοι σε αυτήν την ομάδα:",
|
||||
"pooling_intensity": "Ένταση σταθμοσκόπησης",
|
||||
"protection": "Προστασία",
|
||||
"remove_broadcast": "Κατάργηση εκπομπής",
|
||||
"remove_from_group": "Κατάργηση από ομάδα",
|
||||
@@ -2224,14 +2031,9 @@
|
||||
"title": "Καταστάσεις"
|
||||
},
|
||||
"templates": {
|
||||
"all_listeners": "Αυτό το πρότυπο ακούει για όλα τα συμβάντα που έχουν αλλάξει κατάσταση.",
|
||||
"description": "Τα πρότυπα μετατρέπονται χρησιμοποιώντας τη μηχανή πρότυπου Jinja2 με ορισμένες εξειδικευμένες επεκτάσεις του Home Assistant.",
|
||||
"domain": "Τομέας",
|
||||
"editor": "Πρόγραμμα επεξεργασίας προτύπων",
|
||||
"entity": "Οντότητα",
|
||||
"jinja_documentation": "Έγγραφα πρότυπου Jinja2",
|
||||
"listeners": "Αυτό το πρότυπο ακούει για τα ακόλουθα συμβάντα που έχουν αλλάξει κατάσταση:",
|
||||
"no_listeners": "Αυτό το πρότυπο δεν ακούει για συμβάντα που έχουν αλλάξει κατάσταση και δεν θα ενημερώνεται αυτόματα.",
|
||||
"reset": "Επαναφορά στο πρότυπο επίδειξης",
|
||||
"template_extensions": "Επεκτάσεις προτύπου Home Assistant",
|
||||
"title": "Πρότυπα",
|
||||
@@ -2352,7 +2154,6 @@
|
||||
"icon": "Εικονίδιο",
|
||||
"icon_height": "Ύψος εικονιδίου",
|
||||
"image": "Διαδρομή εικόνας",
|
||||
"manual": "Εγχειρίδιο",
|
||||
"maximum": "Μέγιστο",
|
||||
"minimum": "Ελάχιστο",
|
||||
"name": "Όνομα",
|
||||
@@ -2364,7 +2165,6 @@
|
||||
"show_name": "Εμφάνιση ονόματος;",
|
||||
"show_state": "Εμφάνιση κατάστασης;",
|
||||
"state": "Κατάσταση",
|
||||
"state_color": "Έγχρωμα εικονίδια βάσει της κατάστασης;",
|
||||
"tap_action": "Ενέργεια πατήματος",
|
||||
"theme": "Θέμα",
|
||||
"title": "Τίτλος",
|
||||
@@ -2389,13 +2189,11 @@
|
||||
"name": "Ιστοσελίδα"
|
||||
},
|
||||
"light": {
|
||||
"description": "Η κάρτα \"Φως\" σας επιτρέπει να αλλάξετε τη φωτεινότητα του φωτός.",
|
||||
"name": "Φως"
|
||||
},
|
||||
"map": {
|
||||
"dark_mode": "Σκοτεινή λειτουργία;",
|
||||
"default_zoom": "Προεπιλεγμένο ζουμ",
|
||||
"description": "Η κάρτα χάρτη που σας επιτρέπει να εμφανίζετε οντότητες σε έναν χάρτη.",
|
||||
"geo_location_sources": "Πηγές γεωγραφικής θέσης",
|
||||
"hours_to_show": "Ώρες για εμφάνιση",
|
||||
"name": "Χάρτης",
|
||||
@@ -2403,43 +2201,35 @@
|
||||
},
|
||||
"markdown": {
|
||||
"content": "Περιεχόμενο",
|
||||
"description": "Η κάρτα Markdown χρησιμοποιείται για την απόδοση του Markdown.",
|
||||
"name": "Υποσημείωση."
|
||||
},
|
||||
"media-control": {
|
||||
"description": "Η κάρτα ελέγχου πολυμέσων χρησιμοποιείται για την εμφάνιση οντοτήτων αναπαραγωγής πολυμέσων σε μια διασύνδεση με εύχρηστα στοιχεία ελέγχου.",
|
||||
"name": "Έλεγχος πολυμέσων"
|
||||
},
|
||||
"picture-elements": {
|
||||
"name": "Στοιχεία εικόνας"
|
||||
},
|
||||
"picture-entity": {
|
||||
"description": "Η κάρτα \"Οντότητα εικόνας\" εμφανίζει μια οντότητα με τη μορφή εικόνας. Αντί για εικόνες από τη διεύθυνση URL, μπορεί επίσης να εμφανίσει την εικόνα των οντοτήτων της κάμερας.",
|
||||
"name": "Οντότητα εικόνας"
|
||||
},
|
||||
"picture-glance": {
|
||||
"description": "Η κάρτα \"Ματιά εικόνας\" εμφανίζει μια εικόνα και τις αντίστοιχες καταστάσεις οντότητας ως εικονίδιο. Οι οντότητες στη δεξιά πλευρά επιτρέπουν ενέργειες εναλλαγής, ενώ άλλες εμφανίζουν το παράθυρο διαλόγου περισσότερων πληροφοριών.",
|
||||
"name": "Στιγμιότυπο εικόνας"
|
||||
},
|
||||
"picture": {
|
||||
"name": "Εικόνα"
|
||||
},
|
||||
"plant-status": {
|
||||
"description": "Η κάρτα κατάστασης φυτών είναι για όλους τους υπέροχους βοτανολόγους εκεί έξω.",
|
||||
"name": "Κατάσταση εγκατάστασης"
|
||||
},
|
||||
"sensor": {
|
||||
"description": "Η Κάρτα Αισθητήρα σας παρέχει μια γρήγορη επισκόπηση της κατάστασης των αισθητήρων σας με ένα προαιρετικό γράφημα για να απεικονίσετε την αλλαγή με την πάροδο του χρόνου.",
|
||||
"graph_detail": "Λεπτομέρειες γραφήματος",
|
||||
"graph_type": "Τύπος γραφήματος",
|
||||
"name": "Αισθητήρας"
|
||||
},
|
||||
"shopping-list": {
|
||||
"description": "Η κάρτα \"Λίστα αγορών\" σάς επιτρέπει να προσθέτετε, να επεξεργάζεστε, να κάνετε check-off και να εκκαθαρίζετε στοιχεία από τη λίστα αγορών σας.",
|
||||
"name": "Λίστα αγορών"
|
||||
},
|
||||
"thermostat": {
|
||||
"description": "Η κάρτα Θερμοστάτη δίνει τον έλεγχο της κλιματικής οντότητας. Επιτρέποντάς σας να αλλάξετε τη θερμοκρασία και τον τρόπο της οντότητας.",
|
||||
"name": "Θερμοστάτης"
|
||||
},
|
||||
"vertical-stack": {
|
||||
@@ -2451,11 +2241,7 @@
|
||||
}
|
||||
},
|
||||
"cardpicker": {
|
||||
"by_card": "Ανά κάρτα",
|
||||
"by_entity": "Ανά οντότητα",
|
||||
"custom_card": "Προσαρμοσμένη",
|
||||
"domain": "Τομέας",
|
||||
"entity": "Οντότητα",
|
||||
"no_description": "Δεν υπάρχει διαθέσιμη περιγραφή"
|
||||
},
|
||||
"edit_card": {
|
||||
@@ -2469,7 +2255,6 @@
|
||||
"options": "Περισσότερες επιλογές",
|
||||
"pick_card": "Επιλέξτε την κάρτα που θέλετε να προσθέσετε.",
|
||||
"pick_card_view_title": "Ποια κάρτα θέλετε να προσθέσετε στην προβολή {name} ;",
|
||||
"search_cards": "Αναζήτηση καρτών",
|
||||
"show_code_editor": "Εμφάνιση επεξεργαστή κώδικα",
|
||||
"show_visual_editor": "Εμφάνιση οπτικού προγράμματος επεξεργασίας",
|
||||
"toggle_editor": "Εναλλαγή κειμενογράφου",
|
||||
@@ -2553,8 +2338,7 @@
|
||||
},
|
||||
"reload_lovelace": "Επαναφόρτωση Lovelace",
|
||||
"reload_resources": {
|
||||
"refresh_body": "Πρέπει να ανανεώσετε τη σελίδα για να ολοκληρώσετε την επαναφόρτωση, θέλετε να την ανανεώσετε τώρα;",
|
||||
"refresh_header": "Θέλετε να ανανεώσετε;"
|
||||
"refresh_body": "Πρέπει να ανανεώσετε τη σελίδα για να ολοκληρώσετε την επαναφόρτωση, θέλετε να την ανανεώσετε τώρα;"
|
||||
},
|
||||
"unused_entities": {
|
||||
"available_entities": "Αυτές είναι οι οντότητες που έχετε στη διάθεσή σας, αλλά δεν έχετε ακόμα στο UI του Lovelace.",
|
||||
@@ -2573,7 +2357,6 @@
|
||||
"confirm_delete_text": "Είστε βέβαιοι ότι θέλετε να διαγράψετε την προβολή '' {name} '';"
|
||||
},
|
||||
"warning": {
|
||||
"attribute_not_found": "Το χαρακτηριστικό {attribute} δεν είναι διαθέσιμο σε: {entity}",
|
||||
"entity_non_numeric": "Η οντότητα δεν είναι αριθμητική: {entity}",
|
||||
"entity_not_found": "Η οντότητα δεν είναι διαθέσιμη: {entity}",
|
||||
"entity_unavailable": "{entity} δεν είναι διαθέσιμο προς το παρόν",
|
||||
@@ -2777,11 +2560,6 @@
|
||||
"submit": "Υποβολή"
|
||||
},
|
||||
"current_user": "Αυτήν τη στιγμή είστε συνδεδεμένος ως {fullName}.",
|
||||
"customize_sidebar": {
|
||||
"button": "Επεξεργασία",
|
||||
"description": "Μπορείτε επίσης να πατήσετε παρατεταμένα την κεφαλίδα της πλαϊνής γραμμής για να ενεργοποιήσετε τη λειτουργία επεξεργασίας.",
|
||||
"header": "Αλλαγή της σειράς και απόκρυψη στοιχείων από την πλαϊνή γραμμή"
|
||||
},
|
||||
"dashboard": {
|
||||
"description": "Προεπιλέξτε μια επισκόπηση για αυτή τη συσκευή",
|
||||
"dropdown_label": "Επισκόπηση",
|
||||
@@ -2802,7 +2580,6 @@
|
||||
"confirm_delete": "Είστε σίγουρος ότι θέλετε να διαγράψετε το διακριτικό πρόσβασης για το {name};",
|
||||
"create": "Δημιουργία Διακριτικού",
|
||||
"create_failed": "Αδύνατη η δημιουργία του τρέχοντος διακριτικού.",
|
||||
"created": "Δημιουργήθηκε {ημερομηνία}",
|
||||
"created_at": "Δημιουργήθηκε στις {date}",
|
||||
"delete_failed": "Αδύνατη η διαγραφή του τρέχοντος διακριτικού.",
|
||||
"description": "Δημιουργήστε διακριτικά πρόσβασης μακράς διάρκειας για να επιτρέψετε στα σενάρια σας να αλληλεπιδρούν με το Home Assistant. Κάθε διακριτικό θα ισχύει για 10 χρόνια. Τα παρακάτω διακριτικά πρόσβασης μακράς διαρκείας είναι ενεργά.",
|
||||
@@ -2810,7 +2587,6 @@
|
||||
"header": "Διακριτικά πρόσβασης μακράς διάρκειας",
|
||||
"last_used": "Τελευταία χρήση στις {date} από {location}",
|
||||
"learn_auth_requests": "Μάθετε πώς να κάνετε πιστοποιημένα αιτήματα.",
|
||||
"name": "Όνομα",
|
||||
"not_used": "Δεν έχει χρησιμοποιηθεί ποτέ",
|
||||
"prompt_copy_token": "Αντιγράψτε το διακριτικό πρόσβασης. Δεν θα εμφανιστεί ξανά.",
|
||||
"prompt_name": "Όνομα;"
|
||||
@@ -2877,7 +2653,6 @@
|
||||
}
|
||||
},
|
||||
"sidebar": {
|
||||
"done": "Ολοκληρώθηκε",
|
||||
"external_app_configuration": "Διαμόρφωση Εφαρμογής",
|
||||
"sidebar_toggle": "Εναλλαγή πλαϊνής μπάρας"
|
||||
}
|
||||
|
@@ -604,21 +604,15 @@
|
||||
"playlist": "Playlist",
|
||||
"server": "Server"
|
||||
},
|
||||
"documentation": "documentation",
|
||||
"learn_adding_local_media": "Learn more about adding media in the {documentation}.",
|
||||
"local_media_files": "Place your video, audio and image files in the media directory to be able to browse and play them in the browser or on supported media players.",
|
||||
"media_browsing_error": "Media Browsing Error",
|
||||
"media_not_supported": "The Browser Media Player does not support this type of media",
|
||||
"media_player": "Media Player",
|
||||
"media-player-browser": "Media Player Browser",
|
||||
"no_items": "No items",
|
||||
"no_local_media_found": "No local media found",
|
||||
"no_media_folder": "It looks like you have not yet created a media directory.",
|
||||
"pick": "Pick",
|
||||
"pick-media": "Pick Media",
|
||||
"play": "Play",
|
||||
"play-media": "Play Media",
|
||||
"setup_local_help": "Check the {documentation} on how to setup local media.",
|
||||
"video_not_supported": "Your browser does not support the video element.",
|
||||
"web-browser": "Web Browser"
|
||||
},
|
||||
@@ -2698,7 +2692,7 @@
|
||||
},
|
||||
"raw_editor": {
|
||||
"confirm_remove_config_text": "We will automatically generate your Lovelace UI views with your areas and devices if you remove your Lovelace UI configuration.",
|
||||
"confirm_remove_config_title": "Are you sure you want to remove your Lovelace UI configuration?",
|
||||
"confirm_remove_config_title": "Are you sure you want to remove your Lovelace UI configuration? We will automatically generate your Lovelace UI views with your areas and devices.",
|
||||
"confirm_unsaved_changes": "You have unsaved changes, are you sure you want to exit?",
|
||||
"confirm_unsaved_comments": "Your configuration contains comment(s), these will not be saved. Do you want to continue?",
|
||||
"error_invalid_config": "Your configuration is not valid: {error}",
|
||||
|
@@ -507,7 +507,6 @@
|
||||
"cancel": "Cancelar",
|
||||
"close": "Cerrar",
|
||||
"continue": "Continuar",
|
||||
"copied": "Copiado",
|
||||
"delete": "Eliminar",
|
||||
"error_required": "Obligatorio",
|
||||
"loading": "Cargando",
|
||||
@@ -568,27 +567,11 @@
|
||||
"loading_history": "Cargando historial de estado...",
|
||||
"no_history_found": "No se encontró historial de estado."
|
||||
},
|
||||
"logbook": {
|
||||
"entries_not_found": "No se han encontrado entradas en el registro."
|
||||
},
|
||||
"media-browser": {
|
||||
"audio_not_supported": "Tu navegador no es compatible con el elemento de audio.",
|
||||
"choose_player": "Elige reproductor",
|
||||
"choose-source": "Elige la fuente",
|
||||
"class": {
|
||||
"album": "Álbum",
|
||||
"app": "Aplicación",
|
||||
"artist": "Artista",
|
||||
"channel": "Canal",
|
||||
"composer": "Compositor",
|
||||
"contributing_artist": "Artista colaborador",
|
||||
"directory": "Biblioteca",
|
||||
"episode": "Episodio",
|
||||
"game": "Juego",
|
||||
"genre": "Género",
|
||||
"image": "Imagen",
|
||||
"movie": "Película",
|
||||
"music": "Música",
|
||||
"playlist": "Lista de reproducción",
|
||||
"podcast": "Podcast",
|
||||
"season": "Temporada",
|
||||
@@ -604,21 +587,15 @@
|
||||
"playlist": "Lista de reproducción",
|
||||
"server": "Servidor"
|
||||
},
|
||||
"documentation": "documentación",
|
||||
"learn_adding_local_media": "Aprende más sobre cómo añadir contenido multimedia en la {documentation}.",
|
||||
"local_media_files": "Coloca tus archivos de vídeo, audio e imagen en el directorio multimedia para poder navegar y reproducirlos en el navegador o en los reproductores compatibles.",
|
||||
"media_browsing_error": "Error de navegación de medios",
|
||||
"media_not_supported": "El Reproductor multimedia del navegador no es compatible con este tipo de medio",
|
||||
"media_player": "Reproductor multimedia",
|
||||
"media-player-browser": "Navegador del Reproductor Multimedia",
|
||||
"no_items": "No hay elementos",
|
||||
"no_local_media_found": "No se ha encontrado contenido multimedia local",
|
||||
"no_media_folder": "Parece que aún no has creado un directorio multimedia.",
|
||||
"pick": "Elegir",
|
||||
"pick-media": "Elegir medio",
|
||||
"play": "Reproducir",
|
||||
"play-media": "Reproducir medio",
|
||||
"setup_local_help": "Consulta la {documentation} sobre cómo configurar el contenido multimedia local.",
|
||||
"video_not_supported": "Tu navegador no es compatible con el elemento de vídeo.",
|
||||
"web-browser": "Navegador web"
|
||||
},
|
||||
@@ -735,7 +712,6 @@
|
||||
},
|
||||
"more_info_control": {
|
||||
"controls": "Controles",
|
||||
"details": "Detalles",
|
||||
"dismiss": "Descartar diálogo",
|
||||
"edit": "Editar entidad",
|
||||
"history": "Historial",
|
||||
@@ -2381,14 +2357,9 @@
|
||||
"title": "Estados"
|
||||
},
|
||||
"templates": {
|
||||
"all_listeners": "Esta plantilla escucha todos los eventos de cambio de estado.",
|
||||
"description": "Las plantillas se muestran utilizando el motor de plantillas Jinja2 con algunas extensiones específicas de Home Assistant.",
|
||||
"domain": "Dominio",
|
||||
"editor": "Editor de plantillas",
|
||||
"entity": "Entidad",
|
||||
"jinja_documentation": "Documentación de plantilla Jinja2",
|
||||
"listeners": "Esta plantilla escucha los siguientes eventos de cambio de estado:",
|
||||
"no_listeners": "Esta plantilla no escucha ningún evento de cambio de estado y no se actualizará automáticamente.",
|
||||
"reset": "Reiniciar a la plantilla de demostración",
|
||||
"template_extensions": "Extensiones de plantilla de Home Assistant",
|
||||
"title": "Plantillas",
|
||||
@@ -2698,7 +2669,7 @@
|
||||
},
|
||||
"raw_editor": {
|
||||
"confirm_remove_config_text": "Generaremos automáticamente tus vistas de la IU Lovelace con tus áreas y dispositivos si eliminas tu configuración de Lovelace.",
|
||||
"confirm_remove_config_title": "¿Estás seguro de que deseas eliminar tu configuración de la IU Lovelace?",
|
||||
"confirm_remove_config_title": "¿Estás seguro de que deseas eliminar tu configuración de la IU Lovelace? Generaremos automáticamente tus vistas de la IU Lovelace con tus áreas y dispositivos.",
|
||||
"confirm_unsaved_changes": "Tienes cambios sin guardar, ¿estás seguro de que quieres salir?",
|
||||
"confirm_unsaved_comments": "Tu configuración contiene comentarios, estos no serán guardados. ¿Quieres continuar?",
|
||||
"error_invalid_config": "Tu configuración no es válida: {error}",
|
||||
@@ -2975,11 +2946,6 @@
|
||||
"submit": "Enviar"
|
||||
},
|
||||
"current_user": "Has iniciado sesión como {fullName}.",
|
||||
"customize_sidebar": {
|
||||
"button": "Editar",
|
||||
"description": "También puedes mantener pulsada la cabecera de la barra lateral para activar el modo de edición.",
|
||||
"header": "Cambiar el orden y ocultar elementos de la barra lateral"
|
||||
},
|
||||
"dashboard": {
|
||||
"description": "Selecciona un panel de control predeterminado para este dispositivo.",
|
||||
"dropdown_label": "Panel de control",
|
||||
@@ -3002,7 +2968,6 @@
|
||||
"confirm_delete": "¿Estás seguro de que quieres eliminar el token de acceso para {name}?",
|
||||
"create": "Crear Token",
|
||||
"create_failed": "No se ha podido crear el token de acceso.",
|
||||
"created": "Creado en {date}",
|
||||
"created_at": "Creado el {date}",
|
||||
"delete_failed": "Error al eliminar el token de acceso.",
|
||||
"description": "Crea tokens de acceso de larga duración para permitir que tus scripts interactúen con tu instancia de Home Assistant. Cada token será válido por 10 años desde la creación. Los siguientes tokens de acceso de larga duración están actualmente activos.",
|
||||
@@ -3010,10 +2975,9 @@
|
||||
"header": "Tokens de acceso de larga duración",
|
||||
"last_used": "Último uso el {date} desde {location}",
|
||||
"learn_auth_requests": "Aprende cómo realizar solicitudes autenticadas.",
|
||||
"name": "Nombre",
|
||||
"not_used": "Nunca ha sido usado",
|
||||
"prompt_copy_token": "Copia tu token de acceso. No se mostrará de nuevo.",
|
||||
"prompt_name": "Dale un nombre al token"
|
||||
"prompt_name": "¿Nombre?"
|
||||
},
|
||||
"mfa_setup": {
|
||||
"close": "Cerrar",
|
||||
@@ -3077,7 +3041,6 @@
|
||||
}
|
||||
},
|
||||
"sidebar": {
|
||||
"done": "Hecho",
|
||||
"external_app_configuration": "Configuración de la aplicación",
|
||||
"sidebar_toggle": "Alternar barra lateral"
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -505,8 +505,6 @@
|
||||
"back": "Takaisin",
|
||||
"cancel": "Peruuta",
|
||||
"close": "Sulje",
|
||||
"continue": "Jatka",
|
||||
"copied": "Kopioitu",
|
||||
"delete": "Poista",
|
||||
"error_required": "Pakollinen",
|
||||
"loading": "Ladataan",
|
||||
@@ -553,10 +551,6 @@
|
||||
"toggle": "Vaihda"
|
||||
},
|
||||
"entity": {
|
||||
"entity-attribute-picker": {
|
||||
"attribute": "Määrite",
|
||||
"show_attributes": "Näytä määritteet"
|
||||
},
|
||||
"entity-picker": {
|
||||
"clear": "Tyhjennä",
|
||||
"entity": "Kohde",
|
||||
@@ -568,27 +562,7 @@
|
||||
"no_history_found": "Tilahistoriaa ei löydetty"
|
||||
},
|
||||
"media-browser": {
|
||||
"audio_not_supported": "Selaimesi ei tue audioelementtiä.",
|
||||
"choose_player": "Valitse soitin",
|
||||
"choose-source": "Valitse lähde",
|
||||
"class": {
|
||||
"album": "Albumi",
|
||||
"app": "Sovellus",
|
||||
"artist": "Artisti",
|
||||
"channel": "Kanava",
|
||||
"directory": "Kirjasto",
|
||||
"episode": "Jakso",
|
||||
"game": "Peli",
|
||||
"genre": "Genre",
|
||||
"image": "Kuva",
|
||||
"movie": "Elokuva",
|
||||
"music": "Musiikki",
|
||||
"playlist": "Soittolista",
|
||||
"season": "Kausi",
|
||||
"tv_show": "TV-ohjelma",
|
||||
"url": "URL",
|
||||
"video": "Video"
|
||||
},
|
||||
"content-type": {
|
||||
"album": "Albumi",
|
||||
"artist": "Artisti",
|
||||
@@ -596,15 +570,12 @@
|
||||
"playlist": "Soittolista",
|
||||
"server": "Palvelin"
|
||||
},
|
||||
"media_player": "Mediatoistin",
|
||||
"media-player-browser": "Media Player -selain",
|
||||
"no_items": "Ei kohteita",
|
||||
"pick": "Valitse",
|
||||
"pick-media": "Valitse media",
|
||||
"play": "Toista",
|
||||
"play-media": "Toista media",
|
||||
"video_not_supported": "Selaimesi ei tue videoelementtiä.",
|
||||
"web-browser": "Selain"
|
||||
"play-media": "Toista media"
|
||||
},
|
||||
"related-items": {
|
||||
"area": "Alue",
|
||||
@@ -710,10 +681,8 @@
|
||||
"yaml_not_editable": "Tämän kohteen asetuksia ei voi muokata käyttöliittymästä. Vain käyttöliittymästä määritetyt kohteet ovat määritettävissä käyttöliittymästä."
|
||||
},
|
||||
"more_info_control": {
|
||||
"details": "Yksityiskohdat",
|
||||
"dismiss": "Sulje ikkuna",
|
||||
"edit": "Muokkaa kohdetta",
|
||||
"history": "Historia",
|
||||
"person": {
|
||||
"create_zone": "Luo vyöhyke nykyisestä sijainnista"
|
||||
},
|
||||
@@ -1223,7 +1192,6 @@
|
||||
"banner": "Tämän käyttöliittymän kautta näkyvien kohteiden muokkaaminen on poistettu käytöstä, koska olet määrittänyt kohdesuodattimet kohteessa configuration.yaml.",
|
||||
"expose": "Julkista Alexalle",
|
||||
"exposed_entities": "Julkistetut kohteet",
|
||||
"manage_domains": "Hallitse toimialueita",
|
||||
"not_exposed_entities": "eJulk",
|
||||
"title": "Alexa"
|
||||
},
|
||||
@@ -1263,7 +1231,6 @@
|
||||
"disable_2FA": "Poista kaksivaiheinen tunnistautuminen",
|
||||
"expose": "Julkista Google Assistantille",
|
||||
"exposed_entities": "Julkistetut kohteet",
|
||||
"manage_domains": "Hallitse toimialueita",
|
||||
"not_exposed_entities": "Julkistamattomat kohteet",
|
||||
"sync_to_google": "Synkronoidaan muutokset Googleen.",
|
||||
"title": "Google Assistant"
|
||||
@@ -1596,7 +1563,6 @@
|
||||
"none_found_detail": "Muokkaa haku ehtojasi",
|
||||
"note_about_integrations": "Kaikkia integraatioita ei voi vielä määrittää käyttöliittymän kautta.",
|
||||
"note_about_website_reference": "Lisää saatavilla",
|
||||
"reconfigure": "Määritä uudelleen",
|
||||
"rename_dialog": "Muokkaa tämän määritysmerkinnän nimeä",
|
||||
"rename_input_label": "Merkinnän nimi",
|
||||
"search": "Etsi integraatioita"
|
||||
@@ -1710,8 +1676,6 @@
|
||||
"button": "Määrittele",
|
||||
"common": {
|
||||
"controller": "Ohjain",
|
||||
"instance": "Instanssi",
|
||||
"network": "Verkko",
|
||||
"node_id": "Solmun tunnus",
|
||||
"ozw_instance": "OpenZWave-instanssi",
|
||||
"zwave": "Z-Wave"
|
||||
@@ -1722,13 +1686,10 @@
|
||||
"zwave_info": "Z-Wave-tiedot"
|
||||
},
|
||||
"navigation": {
|
||||
"network": "Verkko",
|
||||
"nodes": "Solmut",
|
||||
"select_instance": "Valitse instanssi"
|
||||
"nodes": "Solmut"
|
||||
},
|
||||
"network_status": {
|
||||
"details": {
|
||||
"ready": "Valmis yhdistämään",
|
||||
"started": "Yhdistetty MQTT:hen",
|
||||
"starting": "Yhdistetään MQTT:hen",
|
||||
"stopped": "OpenZWave pysähtyi"
|
||||
@@ -1739,18 +1700,7 @@
|
||||
"unknown": "Tuntematon"
|
||||
},
|
||||
"network": {
|
||||
"header": "Verkon hallinta",
|
||||
"node_count": "{count} solmua"
|
||||
},
|
||||
"nodes_table": {
|
||||
"failed": "Epäonnistui",
|
||||
"id": "ID",
|
||||
"manufacturer": "Valmistaja",
|
||||
"model": "Malli",
|
||||
"zwave_plus": "Z-Wave Plus"
|
||||
},
|
||||
"refresh_node": {
|
||||
"button": "Päivitä solmu"
|
||||
"header": "Verkon hallinta"
|
||||
},
|
||||
"select_instance": {
|
||||
"header": "Valitse OpenZWave"
|
||||
@@ -2251,9 +2201,7 @@
|
||||
},
|
||||
"templates": {
|
||||
"description": "Mallit tehdään Jinja2-mallimoottorilla, joissa on joitain Home Assistant -kohtaisia laajennuksia.",
|
||||
"domain": "Toimialue",
|
||||
"editor": "Mallieditori",
|
||||
"entity": "Kohde",
|
||||
"jinja_documentation": "Jinja2-mallin dokumentaatio",
|
||||
"template_extensions": "Home Assistant -mallilaajennukset",
|
||||
"title": "Malli",
|
||||
@@ -2501,7 +2449,6 @@
|
||||
},
|
||||
"cardpicker": {
|
||||
"custom_card": "Mukautettu",
|
||||
"domain": "Toimialue",
|
||||
"no_description": "Ei kuvausta saatavilla."
|
||||
},
|
||||
"edit_card": {
|
||||
@@ -2834,10 +2781,6 @@
|
||||
"submit": "Lähetä"
|
||||
},
|
||||
"current_user": "Olet tällä hetkellä kirjautuneena tunnuksella {fullName}.",
|
||||
"customize_sidebar": {
|
||||
"button": "Muokkaa",
|
||||
"header": "Muuta järjestystä ja piiloita kohteita sivupalkista"
|
||||
},
|
||||
"dashboard": {
|
||||
"description": "Valitse oletuskojelauta tälle laitteelle",
|
||||
"dropdown_label": "Kojelauta",
|
||||
@@ -2860,7 +2803,6 @@
|
||||
"confirm_delete": "Haluatko varmasti poistaa {name} käyttöoikeustunnuksen?",
|
||||
"create": "Luo token",
|
||||
"create_failed": "Käyttötunnussanoman luominen epäonnistui.",
|
||||
"created": "Luotu {date}",
|
||||
"created_at": "Luotu {date}",
|
||||
"delete_failed": "Käyttötunnussanoman poistaminen epäonnistui.",
|
||||
"description": "Luo pitkäikäisiä käyttöoikeustunnuksia, jotta komentosarjasi voivat vuorovaikuttaa Home Assistantin kanssa. Jokainen tunnus on voimassa 10 vuotta luomisesta. Seuraavat pitkäikäiset käyttöoikeustunnukset ovat tällä hetkellä käytössä.",
|
||||
@@ -2868,7 +2810,6 @@
|
||||
"header": "Pitkäaikaiset käyttötunnussanomat",
|
||||
"last_used": "Viimeksi käytetty {date} sijainnista {location}",
|
||||
"learn_auth_requests": "Opi tekemään tunnistautuneita kutsuja.",
|
||||
"name": "Nimi",
|
||||
"not_used": "Ei ole koskaan käytetty",
|
||||
"prompt_copy_token": "Kopioi käyttöoikeuskoodi. Sitä ei näytetä uudelleen.",
|
||||
"prompt_name": "Nimi?"
|
||||
@@ -2935,7 +2876,6 @@
|
||||
}
|
||||
},
|
||||
"sidebar": {
|
||||
"done": "Valmis",
|
||||
"external_app_configuration": "Sovelluksen määritykset",
|
||||
"sidebar_toggle": "Sivupalkin kytkin"
|
||||
}
|
||||
|
@@ -507,7 +507,6 @@
|
||||
"cancel": "Annuler",
|
||||
"close": "Fermer",
|
||||
"continue": "Continuer",
|
||||
"copied": "Copié",
|
||||
"delete": "Supprimer",
|
||||
"error_required": "Obligatoire",
|
||||
"loading": "Chargement",
|
||||
@@ -568,35 +567,10 @@
|
||||
"loading_history": "Chargement de l'historique des valeurs ...",
|
||||
"no_history_found": "Aucun historique des valeurs trouvé."
|
||||
},
|
||||
"logbook": {
|
||||
"entries_not_found": "Aucune entrée trouvée dans le journal."
|
||||
},
|
||||
"media-browser": {
|
||||
"audio_not_supported": "Votre navigateur ne prend pas en charge l'élément audio.",
|
||||
"choose_player": "Choisissez le lecteur",
|
||||
"choose-source": "Choisissez la source",
|
||||
"class": {
|
||||
"album": "Album",
|
||||
"app": "App",
|
||||
"artist": "Artiste",
|
||||
"channel": "Canal",
|
||||
"composer": "Compositeur",
|
||||
"contributing_artist": "Artiste collaborateur",
|
||||
"directory": "Bibliothèque",
|
||||
"episode": "Épisode",
|
||||
"game": "Jeu",
|
||||
"genre": "Genre",
|
||||
"image": "Image",
|
||||
"movie": "Film",
|
||||
"music": "Musique",
|
||||
"playlist": "Liste de lecture",
|
||||
"podcast": "Podcast",
|
||||
"season": "Saison",
|
||||
"track": "Piste",
|
||||
"tv_show": "Émission de télévision",
|
||||
"url": "Url",
|
||||
"video": "Vidéo"
|
||||
},
|
||||
"content-type": {
|
||||
"album": "Album",
|
||||
"artist": "Artiste",
|
||||
@@ -604,21 +578,15 @@
|
||||
"playlist": "Liste de lecture",
|
||||
"server": "Serveur"
|
||||
},
|
||||
"documentation": "documentation",
|
||||
"learn_adding_local_media": "En savoir plus sur l'ajout de médias dans la {documentation} .",
|
||||
"local_media_files": "Placez vos fichiers vidéo, audio et image dans le répertoire multimédia pour pouvoir les parcourir et les lire dans le navigateur ou sur les lecteurs multimédias pris en charge.",
|
||||
"media_browsing_error": "Erreur de navigation multimédia",
|
||||
"media_not_supported": "Le Browser Media Player ne prend pas en charge ce type de média",
|
||||
"media_player": "Lecteur multimédia",
|
||||
"media-player-browser": "Lecteur multimédia",
|
||||
"no_items": "Aucun éléments",
|
||||
"no_local_media_found": "Aucun média local trouvé",
|
||||
"no_media_folder": "Il semble que vous n’avez pas encore créé de répertoire multimédia.",
|
||||
"pick": "Choisir",
|
||||
"pick-media": "Choisissez un média",
|
||||
"play": "Lecture",
|
||||
"play-media": "Lire le média",
|
||||
"setup_local_help": "Consultez la {documentation} pour savoir comment configurer un média local.",
|
||||
"video_not_supported": "Votre navigateur ne prend pas en charge l'élément vidéo.",
|
||||
"web-browser": "Navigateur web"
|
||||
},
|
||||
@@ -735,7 +703,6 @@
|
||||
},
|
||||
"more_info_control": {
|
||||
"controls": "Contrôles",
|
||||
"details": "Détails",
|
||||
"dismiss": "Fermer la fenêtre de dialogue",
|
||||
"edit": "Modifier l'entité",
|
||||
"history": "Historique",
|
||||
@@ -967,12 +934,9 @@
|
||||
"service_data": "Données du service"
|
||||
},
|
||||
"wait_for_trigger": {
|
||||
"continue_timeout": "Continuer à l'expiration du délai",
|
||||
"label": "Attendre le déclencheur",
|
||||
"timeout": "Délai d'expiration (optionnel)"
|
||||
"label": "Attendre le déclencheur"
|
||||
},
|
||||
"wait_template": {
|
||||
"continue_timeout": "Continuer à l'expiration du délai",
|
||||
"label": "Attendre",
|
||||
"timeout": "Délai d'expiration (optionnel)",
|
||||
"wait_template": "Template d'attente"
|
||||
@@ -1036,9 +1000,7 @@
|
||||
"time": {
|
||||
"after": "Après",
|
||||
"before": "Avant",
|
||||
"label": "Heure",
|
||||
"type_input": "Valeur d'une aide de date/heure",
|
||||
"type_value": "Temps fixe"
|
||||
"label": "Heure"
|
||||
},
|
||||
"zone": {
|
||||
"entity": "Entité avec localisation",
|
||||
@@ -1605,7 +1567,6 @@
|
||||
"reload_restart_confirm": "Redémarrer Home Assistant pour finaliser le rechargement de cette intégration",
|
||||
"rename": "Renommer",
|
||||
"restart_confirm": "Redémarrer Home Assistant pour terminer la suppression de cette intégration",
|
||||
"services": "{count} {count, plural,\n one {service}\n other {services}\n}",
|
||||
"settings_button": "Modifier les paramètres pour {integration}",
|
||||
"system_options": "Options système",
|
||||
"system_options_button": "Options système pour {integration}",
|
||||
@@ -2381,14 +2342,9 @@
|
||||
"title": "États"
|
||||
},
|
||||
"templates": {
|
||||
"all_listeners": "Ce modèle écoute tous les événements de changement d'état.",
|
||||
"description": "Les modèles sont rendus à l'aide du moteur de modèles Jinja2 avec certaines extensions spécifiques de Home Assistant.",
|
||||
"domain": "Domaine",
|
||||
"editor": "Éditeur de modèles",
|
||||
"entity": "Entité",
|
||||
"jinja_documentation": "Documentation de modèle Jinja2",
|
||||
"listeners": "Ce modèle écoute les événements de changement d'état suivants:",
|
||||
"no_listeners": "Ce modèle n'écoute aucun événement de changement d'état et ne sera pas mis à jour automatiquement.",
|
||||
"reset": "Réinitialiser au modèle de démonstration",
|
||||
"template_extensions": "Extensions de modèles de Home Assistant",
|
||||
"title": "Modèle",
|
||||
@@ -2698,7 +2654,7 @@
|
||||
},
|
||||
"raw_editor": {
|
||||
"confirm_remove_config_text": "Nous générerons automatiquement vos vues Lovelace UI avec vos zones et appareils si vous supprimez votre configuration Lovelace UI.",
|
||||
"confirm_remove_config_title": "Êtes-vous sûr de vouloir supprimer votre configuration Lovelace UI ?",
|
||||
"confirm_remove_config_title": "Êtes-vous sûr de vouloir supprimer votre configuration Lovelace UI? Nous générerons automatiquement vos vues Lovelace UI avec vos zones et vos appareils.",
|
||||
"confirm_unsaved_changes": "Vous avez des changements non enregistrés. Êtes-vous sûr de vouloir quitter?",
|
||||
"confirm_unsaved_comments": "Votre configuration contient des commentaires, ceux-ci ne seront pas sauvegardés. Voulez-vous continuer?",
|
||||
"error_invalid_config": "Votre configuration n'est pas valide : {error}",
|
||||
@@ -2975,11 +2931,6 @@
|
||||
"submit": "Envoyer"
|
||||
},
|
||||
"current_user": "Vous êtes actuellement connecté en tant que {fullName}.",
|
||||
"customize_sidebar": {
|
||||
"button": "Modifier",
|
||||
"description": "Vous pouvez également appuyer et maintenir l'en-tête de la barre latérale pour activer le mode d'édition.",
|
||||
"header": "Modifier l'ordre et masquer les éléments de la barre latérale"
|
||||
},
|
||||
"dashboard": {
|
||||
"description": "Choisissez un tableau de bord par défaut pour cet appareil.",
|
||||
"dropdown_label": "Tableau de bord",
|
||||
@@ -3002,7 +2953,6 @@
|
||||
"confirm_delete": "Êtes-vous sûr de vouloir supprimer le jeton d'accès de {name} ?",
|
||||
"create": "Créer un jeton",
|
||||
"create_failed": "Impossible de créer le jeton d'accès.",
|
||||
"created": "Créé le {date}",
|
||||
"created_at": "Créé le {date}",
|
||||
"delete_failed": "Impossible de supprimer le jeton d'accès.",
|
||||
"description": "Créez des jetons d'accès de longue durée pour permettre à vos scripts d'interagir avec votre instance de Home Assistant. Chaque jeton sera valable 10 ans à compter de sa création. Les jetons d'accès longue durée suivants sont actuellement actifs.",
|
||||
@@ -3010,10 +2960,9 @@
|
||||
"header": "Jetons d'accès de longue durée",
|
||||
"last_used": "Dernière utilisation le {date} à partir de {location}",
|
||||
"learn_auth_requests": "Apprenez comment faire des demandes authentifiées.",
|
||||
"name": "Nom",
|
||||
"not_used": "N'a jamais été utilisé",
|
||||
"prompt_copy_token": "Copiez votre jeton d'accès. Il ne sera plus affiché à nouveau.",
|
||||
"prompt_name": "Donnez un nom au jeton"
|
||||
"prompt_name": "Nom ?"
|
||||
},
|
||||
"mfa_setup": {
|
||||
"close": "Fermer",
|
||||
@@ -3077,7 +3026,6 @@
|
||||
}
|
||||
},
|
||||
"sidebar": {
|
||||
"done": "Terminé",
|
||||
"external_app_configuration": "Configuration de l'application",
|
||||
"sidebar_toggle": "Activer la barre latérale"
|
||||
}
|
||||
|
@@ -507,7 +507,6 @@
|
||||
"cancel": "Annulla",
|
||||
"close": "Chiudi",
|
||||
"continue": "Continua",
|
||||
"copied": "Copiato",
|
||||
"delete": "Elimina",
|
||||
"error_required": "Necessario",
|
||||
"loading": "Caricamento",
|
||||
@@ -575,28 +574,6 @@
|
||||
"audio_not_supported": "Il tuo browser non supporta l'elemento audio.",
|
||||
"choose_player": "Scegli il lettore",
|
||||
"choose-source": "Scegli origine",
|
||||
"class": {
|
||||
"album": "Album",
|
||||
"app": "App",
|
||||
"artist": "Artista",
|
||||
"channel": "Canale",
|
||||
"composer": "Compositore",
|
||||
"contributing_artist": "Artista collaboratore",
|
||||
"directory": "Libreria",
|
||||
"episode": "Episodio",
|
||||
"game": "Gioco",
|
||||
"genre": "Genere",
|
||||
"image": "Immagine",
|
||||
"movie": "Film",
|
||||
"music": "Musica",
|
||||
"playlist": "Elenco di riproduzione",
|
||||
"podcast": "Podcast",
|
||||
"season": "Stagione",
|
||||
"track": "Traccia dispositivo",
|
||||
"tv_show": "Programma televisivo",
|
||||
"url": "Url",
|
||||
"video": "Video"
|
||||
},
|
||||
"content-type": {
|
||||
"album": "Album",
|
||||
"artist": "Artista",
|
||||
@@ -604,21 +581,15 @@
|
||||
"playlist": "Elenco di riproduzione",
|
||||
"server": "Server"
|
||||
},
|
||||
"documentation": "documentazione",
|
||||
"learn_adding_local_media": "Ulteriori informazioni sull'aggiunta di file multimediali nella {documentation}.",
|
||||
"local_media_files": "Posizionare i file video, audio e immagine nella cartella multimediale per poterli sfogliare e riprodurli nel browser o sui lettori multimediali supportati.",
|
||||
"media_browsing_error": "Errore di navigazione multimediale",
|
||||
"media_not_supported": "Il Browser Media Player non supporta questo tipo di file multimediali",
|
||||
"media_player": "Lettore multimediale",
|
||||
"media-player-browser": "Lettore multimediale",
|
||||
"no_items": "Nessun elemento",
|
||||
"no_local_media_found": "Nessun media locale trovato",
|
||||
"no_media_folder": "Sembra che ancora non sia stata creata una cartella multimediale.",
|
||||
"pick": "Scegli",
|
||||
"pick-media": "Seleziona file multimediali",
|
||||
"play": "Riproduci",
|
||||
"play-media": "Riproduci file multimediali",
|
||||
"setup_local_help": "Controllare la {documentation} su come impostare i media locali.",
|
||||
"video_not_supported": "Il tuo browser non supporta l'elemento video.",
|
||||
"web-browser": "Web Browser"
|
||||
},
|
||||
@@ -2381,14 +2352,9 @@
|
||||
"title": "Stati"
|
||||
},
|
||||
"templates": {
|
||||
"all_listeners": "Questo modello è in ascolto di tutti gli eventi di stato modificato.",
|
||||
"description": "Il rendering dei modelli viene eseguito utilizzando il motore di modelli Jinja2 con alcune estensioni specifiche di Home Assistant.",
|
||||
"domain": "Dominio",
|
||||
"editor": "Editor di modelli",
|
||||
"entity": "Entità",
|
||||
"jinja_documentation": "Documentazione del modello Jinja2",
|
||||
"listeners": "Questo modello è in ascolto dei seguenti eventi di modifica dello stato:",
|
||||
"no_listeners": "Questo modello non è in ascolto di alcun evento di modifica dello stato e non verrà aggiornato automaticamente.",
|
||||
"reset": "Ripristina il modello di esempio",
|
||||
"template_extensions": "Estensioni del modello Home Assistant",
|
||||
"title": "Modelli",
|
||||
@@ -2698,7 +2664,7 @@
|
||||
},
|
||||
"raw_editor": {
|
||||
"confirm_remove_config_text": "Genereremo automaticamente le tue viste dell'Interfaccia utente di Lovelace con le tue aree e dispositivi se rimuovi la tua configurazione dell'interfaccia utente di Lovelace.",
|
||||
"confirm_remove_config_title": "Sei sicuro di voler rimuovere la tua configurazione dell'Interfaccia Utente di Lovelace?",
|
||||
"confirm_remove_config_title": "Sei sicuro di voler rimuovere la tua configurazione dell'interfaccia utente di Lovelace? Genereremo automaticamente le tue viste Lovelace con le tue aree e dispositivi.",
|
||||
"confirm_unsaved_changes": "Hai delle modifiche non salvate, sei sicuro di voler uscire?",
|
||||
"confirm_unsaved_comments": "La tua configurazione contiene commenti, questi non verranno salvati. Vuoi continuare?",
|
||||
"error_invalid_config": "La tua configurazione non è valida: {error}",
|
||||
@@ -2975,11 +2941,6 @@
|
||||
"submit": "Invia"
|
||||
},
|
||||
"current_user": "Sei attualmente connesso come {fullName}.",
|
||||
"customize_sidebar": {
|
||||
"button": "Modifica",
|
||||
"description": "Puoi anche tenere premuta l'intestazione della barra laterale per attivare la modalità di modifica.",
|
||||
"header": "Modifica l'ordine e nascondi gli elementi dalla barra laterale"
|
||||
},
|
||||
"dashboard": {
|
||||
"description": "Scegliere una plancia di default per questo dispositivo.",
|
||||
"dropdown_label": "Plancia",
|
||||
@@ -3002,7 +2963,6 @@
|
||||
"confirm_delete": "Sei sicuro di voler eliminare il token di accesso per {name} ?",
|
||||
"create": "Crea token",
|
||||
"create_failed": "Impossibile creare il token di accesso.",
|
||||
"created": "Creato {date}",
|
||||
"created_at": "Creato il {date}",
|
||||
"delete_failed": "Impossibile eliminare il token di accesso.",
|
||||
"description": "Crea token di accesso di lunga durata per consentire agli script di interagire con l'istanza di Home Assistant. Ogni token sarà valido per 10 anni dalla creazione. I seguenti token di accesso a vita lunga sono attualmente attivi.",
|
||||
@@ -3010,10 +2970,9 @@
|
||||
"header": "Token di accesso a lunga vita",
|
||||
"last_used": "Utilizzato l'ultima volta il {date} da {location}",
|
||||
"learn_auth_requests": "Scopri come effettuare richieste autenticate.",
|
||||
"name": "Nome",
|
||||
"not_used": "Non è mai stato usato",
|
||||
"prompt_copy_token": "Copia il tuo token di accesso. Non verrà più mostrato.",
|
||||
"prompt_name": "Assegnare un nome al token"
|
||||
"prompt_name": "Nome?"
|
||||
},
|
||||
"mfa_setup": {
|
||||
"close": "Chiudi",
|
||||
@@ -3077,7 +3036,6 @@
|
||||
}
|
||||
},
|
||||
"sidebar": {
|
||||
"done": "Fatto",
|
||||
"external_app_configuration": "Configurazione App",
|
||||
"sidebar_toggle": "Attiva/disattiva la barra laterale"
|
||||
}
|
||||
|
@@ -19,7 +19,6 @@
|
||||
"logbook": "로그북",
|
||||
"mailbox": "메일함",
|
||||
"map": "지도",
|
||||
"media_browser": "미디어 브라우저",
|
||||
"profile": "프로필",
|
||||
"shopping_list": "장보기목록",
|
||||
"states": "둘러보기"
|
||||
@@ -563,8 +562,6 @@
|
||||
"no_history_found": "상태 기록 내용이 없습니다."
|
||||
},
|
||||
"media-browser": {
|
||||
"audio_not_supported": "브라우저가 오디오 요소를 지원하지 않습니다.",
|
||||
"choose_player": "플레이어 선택",
|
||||
"choose-source": "소스 선택",
|
||||
"content-type": {
|
||||
"album": "앨범",
|
||||
@@ -573,16 +570,12 @@
|
||||
"playlist": "재생 목록",
|
||||
"server": "서버"
|
||||
},
|
||||
"media_not_supported": "브라우저 미디어 플레이어에서 이 유형의 미디어를 지원하지 않습니다",
|
||||
"media_player": "미디어 플레이어",
|
||||
"media-player-browser": "미디어 플레이어 브라우저",
|
||||
"no_items": "항목 없음",
|
||||
"pick": "선택",
|
||||
"pick-media": "미디어 선택",
|
||||
"play": "재생",
|
||||
"play-media": "미디어 재생",
|
||||
"video_not_supported": "브라우저가 비디오 요소를 지원하지 않습니다.",
|
||||
"web-browser": "웹 브라우저"
|
||||
"play-media": "미디어 재생"
|
||||
},
|
||||
"picture-upload": {
|
||||
"label": "그림",
|
||||
@@ -639,7 +632,7 @@
|
||||
"icon": "아이콘 재정의",
|
||||
"icon_error": "아이콘은 접두사:아이콘이름 형식이어야 합니다. 예: mdi:home",
|
||||
"name": "이름 재정의",
|
||||
"note": "참고: 모든 통합 구성요소에서 아직 작동하지 않을 수 있습니다.",
|
||||
"note": "참고: 아직 모든 통합 구성요소에 적용되지 않을 수 있습니다.",
|
||||
"unavailable": "이 구성요소는 현재 사용할 수 없습니다.",
|
||||
"update": "업데이트"
|
||||
},
|
||||
@@ -1537,7 +1530,6 @@
|
||||
"reload_restart_confirm": "이 통합 구성요소를 다시 읽어 들일려면 Home Assistant 를 다시 시작해주세요",
|
||||
"rename": "이름 변경",
|
||||
"restart_confirm": "통합 구성요소 제거 완료를 위해 Home Assistant 웹 페이지를 다시 불러옵니다",
|
||||
"services": "{count} {count, plural,\n one {서비스}\n other {서비스}\n}",
|
||||
"settings_button": "{integration} 설정 편집",
|
||||
"system_options": "시스템 옵션",
|
||||
"system_options_button": "{integration} 시스템 옵션",
|
||||
@@ -1757,16 +1749,8 @@
|
||||
"versions": "펌웨어 및 명령 클래스 버전에 대한 정보 가져오기",
|
||||
"wakeup": "절전 해제 대기열 및 메시지에 대한 지원 설정"
|
||||
},
|
||||
"nodes_table": {
|
||||
"id": "ID",
|
||||
"manufacturer": "제조사",
|
||||
"model": "모델",
|
||||
"query_stage": "쿼리 단계",
|
||||
"zwave_plus": "Z-Wave Plus"
|
||||
},
|
||||
"refresh_node": {
|
||||
"battery_note": "노드가 배터리 전원을 사용하는 경우 계속하기 전에 절전 모드가 해제되어 있는지 확인해주세요",
|
||||
"button": "노드 새로고침",
|
||||
"complete": "노드 새로고침 완료",
|
||||
"description": "OpenZWave 가 노드를 다시 인터뷰하고 노드의 명령 클래스, 기능 및 값을 업데이트하도록 지시합니다.",
|
||||
"node_status": "노드 상태",
|
||||
@@ -1915,7 +1899,7 @@
|
||||
"filter": "필터 구성요소 다시 읽어오기",
|
||||
"generic": "일반 IP 카메라 구성요소 다시 읽어오기",
|
||||
"generic_thermostat": "일반 온도 조절기 구성요소 다시 읽어오기",
|
||||
"group": "그룹, 그룹 구성요소 및 알림 서비스 다시 읽어오기",
|
||||
"group": "그룹 다시 읽어오기",
|
||||
"heading": "YAML 구성 다시 읽어오기",
|
||||
"history_stats": "기록 통계 구성요소 다시 읽어오기",
|
||||
"homekit": "HomeKit 다시 읽어오기",
|
||||
@@ -1928,7 +1912,7 @@
|
||||
"min_max": "최소/최대 구성요소 다시 읽어오기",
|
||||
"person": "구성원 다시 읽어오기",
|
||||
"ping": "ping 이진 센서 구성요소 다시 읽어오기",
|
||||
"rest": "REST 구성요소 및 알림 서비스 다시 읽어오기",
|
||||
"rest": "REST 구성요소 다시 읽어오기",
|
||||
"scene": "씬 다시 읽어오기",
|
||||
"script": "스크립트 다시 읽어오기",
|
||||
"statistics": "통계 구성요소 다시 읽어오기",
|
||||
@@ -2020,7 +2004,7 @@
|
||||
"system": "시스템"
|
||||
}
|
||||
},
|
||||
"users_privileges_note": "사용자 그룹 기능은 현재 작업 중이며, 사용자는 UI 를 통해 인스턴스를 관리할 수 없습니다. 모든 사용자 관리 API 엔드포인트가 관리자에 대한 액세스를 올바르게 제한하는지를 확인하는 중입니다."
|
||||
"users_privileges_note": "사용자 그룹은 현재 작업 중이며, 사용자는 UI 를 통해 인스턴스를 관리할 수 없습니다. 모든 사용자 관리 API 엔드포인트가 관리자에 대한 액세스를 올바르게 제한하는지를 확인하는 중입니다."
|
||||
},
|
||||
"zha": {
|
||||
"add_device_page": {
|
||||
@@ -2058,7 +2042,7 @@
|
||||
"clusters": {
|
||||
"header": "클러스터",
|
||||
"help_cluster_dropdown": "속성과 명령을 보려면 클러스터를 선택해주세요.",
|
||||
"introduction": "클러스터는 Zigbee 기능의 빌딩 블록으로, 기능을 논리 단위로 분리해서 구성합니다. 클라이언트 및 서버 유형이 있으며 속성 및 명령으로 구성됩니다."
|
||||
"introduction": "클러스터는 Zigbee 기능의 빌딩 블록이며 기능을 논리 단위로 분리해서 구성합니다. 클라이언트 및 서버 유형이 있으며 속성 및 명령으로 구성됩니다."
|
||||
},
|
||||
"common": {
|
||||
"add_devices": "기기 추가",
|
||||
@@ -2566,7 +2550,6 @@
|
||||
"options": "옵션 더보기",
|
||||
"pick_card": "어떤 카드를 추가하시겠습니까?",
|
||||
"pick_card_view_title": "{name} 뷰에 어떤 카드를 추가하시겠습니까?",
|
||||
"search_cards": "카드 검색",
|
||||
"show_code_editor": "코드 편집기 보기",
|
||||
"show_visual_editor": "비주얼 편집기 보기",
|
||||
"toggle_editor": "에디터 전환",
|
||||
@@ -2610,7 +2593,7 @@
|
||||
},
|
||||
"raw_editor": {
|
||||
"confirm_remove_config_text": "Lovelace UI 구성을 제거하면, 영역 및 기기와 함께 Lovelace UI 뷰가 자동으로 생성됩니다.",
|
||||
"confirm_remove_config_title": "Lovelace UI 구성을 제거하시겠습니까?",
|
||||
"confirm_remove_config_title": "Lovelace UI 구성을 제거하시겠습니까? 영역 및 기기와 함께 Lovelace UI 뷰를 자동으로 생성해드립니다.",
|
||||
"confirm_unsaved_changes": "저장되지 않은 변경 사항이 있습니다. 종료하시겠습니까?",
|
||||
"confirm_unsaved_comments": "구성 내용에 주석이 포함되어 있지만 저장되지는 않습니다. 계속하시겠습니까?",
|
||||
"error_invalid_config": "구성이 잘못되었습니다: {error}",
|
||||
|
@@ -507,7 +507,6 @@
|
||||
"cancel": "Avbryt",
|
||||
"close": "Lukk",
|
||||
"continue": "Fortsette",
|
||||
"copied": "Kopiert",
|
||||
"delete": "Slett",
|
||||
"error_required": "Nødvendig",
|
||||
"loading": "Laster",
|
||||
@@ -604,21 +603,15 @@
|
||||
"playlist": "Spilleliste",
|
||||
"server": "Server"
|
||||
},
|
||||
"documentation": "dokumentasjon",
|
||||
"learn_adding_local_media": "Lær mer om å legge til medier i {documentation} .",
|
||||
"local_media_files": "Plasser video-, lyd- og bildefilene dine i mediekatalogen for å kunne bla gjennom og spille dem av i nettleseren eller på støttede mediaspillere.",
|
||||
"media_browsing_error": "Feil ved medievisning",
|
||||
"media_not_supported": "Browser Media Player støtter ikke denne typen medier",
|
||||
"media_player": "Mediaspiller",
|
||||
"media-player-browser": "Nettleser for Mediespiller",
|
||||
"no_items": "Ingen elementer",
|
||||
"no_local_media_found": "Ingen lokale medier funnet",
|
||||
"no_media_folder": "Det ser ut til at du ennå ikke har opprettet en mediekatalog.",
|
||||
"pick": "Velg",
|
||||
"pick-media": "Velg Media",
|
||||
"play": "Spill av",
|
||||
"play-media": "Spill media",
|
||||
"setup_local_help": "Sjekk {documentation} om hvordan du konfigurerer lokale medier.",
|
||||
"video_not_supported": "Nettleseren din støtter ikke videoelementet.",
|
||||
"web-browser": "Nettleser"
|
||||
},
|
||||
@@ -917,7 +910,7 @@
|
||||
"add_option": "Legg til alternativ",
|
||||
"conditions": "Betingelser",
|
||||
"default": "Standard handlinger",
|
||||
"label": "Velg",
|
||||
"label": "Velge",
|
||||
"option": "Alternativ {number}",
|
||||
"remove_option": "Fjern alternativ",
|
||||
"sequence": "Handlinger"
|
||||
@@ -950,11 +943,11 @@
|
||||
"label": "Antall"
|
||||
},
|
||||
"until": {
|
||||
"conditions": "Inntil betingelser",
|
||||
"label": "Til"
|
||||
"conditions": "Inntil forholdene",
|
||||
"label": "Før"
|
||||
},
|
||||
"while": {
|
||||
"conditions": "Mens betingelser",
|
||||
"conditions": "Mens forholdene",
|
||||
"label": "Mens"
|
||||
}
|
||||
}
|
||||
@@ -1478,22 +1471,22 @@
|
||||
},
|
||||
"entities": {
|
||||
"caption": "Entiteter",
|
||||
"description": "Administrer kjente entiteter",
|
||||
"description": "Administrer kjente enheter",
|
||||
"picker": {
|
||||
"disable_selected": {
|
||||
"button": "Deaktiver valgte",
|
||||
"confirm_text": "Deaktiverte entiteter vil ikke bli lagt til i Home Assistant.",
|
||||
"confirm_title": "Vil du deaktivere {number} entiteter?"
|
||||
"confirm_title": "Vil du deaktivere {number} enheter?"
|
||||
},
|
||||
"enable_selected": {
|
||||
"button": "Aktiver valgte",
|
||||
"confirm_text": "Dette vil gjøre dem tilgjengelige i Home Assistant igjen hvis de nå er deaktivert.",
|
||||
"confirm_title": "Vil du aktivere {number} entiteter?"
|
||||
"confirm_title": "Vil du aktivere {number} enheter?"
|
||||
},
|
||||
"filter": {
|
||||
"filter": "",
|
||||
"show_disabled": "Vis deaktiverte entiteter",
|
||||
"show_readonly": "Vis skrivebeskyttede entiteter",
|
||||
"show_readonly": "Vis skrivebeskyttede enheter",
|
||||
"show_unavailable": "Vis utilgjengelige entiteter"
|
||||
},
|
||||
"header": "Entiteter",
|
||||
@@ -1510,7 +1503,7 @@
|
||||
"confirm_partly_text": "Du kan bare fjerne {removable} av de valgte {selected} enhetene. Enheter kan bare fjernes når integrasjonen ikke lenger leverer enhetene. Noen ganger må du starte Home Assistant på nytt før du kan fjerne enhetene til en fjernet integrasjon. Er du sikker på at du vil fjerne de flyttbare enhetene?",
|
||||
"confirm_partly_title": "Bare {number} valgte enheter kan fjernes.",
|
||||
"confirm_text": "Du bør fjerne dem fra Lovelace-konfigurasjonen og automasjoner hvis de inneholder disse entitetene.",
|
||||
"confirm_title": "Vil du fjerne {number} entiteter?"
|
||||
"confirm_title": "Vil du fjerne {number} enheter?"
|
||||
},
|
||||
"search": "Søk entiteter",
|
||||
"selected": "{number} valgte",
|
||||
@@ -2050,7 +2043,7 @@
|
||||
"tag_id_placeholder": "Automatisk generert når den er tom",
|
||||
"update": "Oppdater"
|
||||
},
|
||||
"edit": "Rediger",
|
||||
"edit": "Redigere",
|
||||
"headers": {
|
||||
"last_scanned": "Sist skannet",
|
||||
"name": "Navn"
|
||||
@@ -2381,14 +2374,11 @@
|
||||
"title": "Tilstander"
|
||||
},
|
||||
"templates": {
|
||||
"all_listeners": "Denne malen lytter etter alle tilstand endret hendelser.",
|
||||
"description": "Maler blir rendret ved hjelp av Jinja2-malmotoren med noen spesifikke utvidelser for Home Assistant.",
|
||||
"domain": "Domene",
|
||||
"editor": "Maleditor",
|
||||
"entity": "Entitet",
|
||||
"jinja_documentation": "Jinja2 mal dokumentasjon",
|
||||
"listeners": "Denne malen lytter etter følgende tilstand endret hendelser:",
|
||||
"no_listeners": "Denne malen lytter ikke etter noen tilstand endret hendelser og oppdateres ikke automatisk.",
|
||||
"reset": "Tilbakestill til demomal",
|
||||
"template_extensions": "Mal utvidelser for Home Assistant",
|
||||
"title": "Mal",
|
||||
@@ -2575,7 +2565,7 @@
|
||||
"map": {
|
||||
"dark_mode": "Mørk modus?",
|
||||
"default_zoom": "Standard zoom",
|
||||
"description": "Kartkortet som lar deg vise entiteter på et kart.",
|
||||
"description": "Kartkortet som lar deg vise enheter på et kart.",
|
||||
"geo_location_sources": "Kilder for geolokasjon",
|
||||
"hours_to_show": "Timer som skal vises",
|
||||
"name": "Kart",
|
||||
@@ -2587,7 +2577,7 @@
|
||||
"name": ""
|
||||
},
|
||||
"media-control": {
|
||||
"description": "Mediekontroll kortet brukes til å vise mediespiller entiteter på et grensesnitt med brukervennlige kontroller.",
|
||||
"description": "Mediekontroll kortet brukes til å vise mediespillerenheter på et grensesnitt med brukervennlige kontroller.",
|
||||
"name": "Mediekontroll"
|
||||
},
|
||||
"picture-elements": {
|
||||
@@ -2636,7 +2626,7 @@
|
||||
}
|
||||
},
|
||||
"cardpicker": {
|
||||
"by_card": "Etter kort",
|
||||
"by_card": "Med kort",
|
||||
"by_entity": "Etter entitet",
|
||||
"custom_card": "Tilpasset",
|
||||
"domain": "Domene",
|
||||
@@ -2698,7 +2688,7 @@
|
||||
},
|
||||
"raw_editor": {
|
||||
"confirm_remove_config_text": "Vi vil automatisk opprette Lovelace-visningene dine med områdene og enhetene dine hvis du fjerner Lovelace-konfigurasjonen.",
|
||||
"confirm_remove_config_title": "Er du sikker på at du vil fjerne Lovelace UI-konfigurasjonen?",
|
||||
"confirm_remove_config_title": "Er du sikker på at du vil fjerne Lovelace-konfigurasjonen? Vi vil automatisk opprette Lovelace-visningene dine med områdene og enhetene dine.",
|
||||
"confirm_unsaved_changes": "Du har ulagrede endringer, er du sikker på at du vil avslutte?",
|
||||
"confirm_unsaved_comments": "Konfigurasjonen din inneholder kommentarer, disse vil ikke bli lagret. Vil du fortsette?",
|
||||
"error_invalid_config": "Konfigurasjonen din er ikke gyldig: {error}",
|
||||
@@ -2976,8 +2966,6 @@
|
||||
},
|
||||
"current_user": "Du er logget inn som {fullName}.",
|
||||
"customize_sidebar": {
|
||||
"button": "Rediger",
|
||||
"description": "Du kan også trykke på og holde nede overskriften på sidepanelet for å aktivere redigeringsmodus.",
|
||||
"header": "Endre rekkefølgen og skjul elementer fra sidepanelet"
|
||||
},
|
||||
"dashboard": {
|
||||
@@ -3013,7 +3001,7 @@
|
||||
"name": "Navn",
|
||||
"not_used": "Har aldri blitt brukt",
|
||||
"prompt_copy_token": "Kopier tilgangstoken. Det blir ikke vist igjen.",
|
||||
"prompt_name": "Gi tokenet et navn"
|
||||
"prompt_name": "Navn?"
|
||||
},
|
||||
"mfa_setup": {
|
||||
"close": "Lukk",
|
||||
|
@@ -507,7 +507,6 @@
|
||||
"cancel": "Annuleren",
|
||||
"close": "Sluiten",
|
||||
"continue": "Ga verder",
|
||||
"copied": "Gekopieerd",
|
||||
"delete": "Verwijderen",
|
||||
"error_required": "Verplicht",
|
||||
"loading": "Bezig met laden",
|
||||
@@ -604,21 +603,15 @@
|
||||
"playlist": "Afspeellijst",
|
||||
"server": "Server"
|
||||
},
|
||||
"documentation": "documentatie",
|
||||
"learn_adding_local_media": "Leer meer over media toevoegen in de {documentatie}.",
|
||||
"local_media_files": "Plaats je video, audio en foto bestanden in de media map om bestanden te kunnen doorzoeken en afspelen in de browser of op ondersteunde mediaspelers.",
|
||||
"media_browsing_error": "Fout bij bladeren door media",
|
||||
"media_not_supported": "De Browser Media Player ondersteunt dit type media niet",
|
||||
"media_player": "Mediaspeler",
|
||||
"media-player-browser": "Mediaspeler-browser",
|
||||
"no_items": "Niets gevonden",
|
||||
"no_local_media_found": "Geen lokale media gevonden",
|
||||
"no_media_folder": "Het lijkt erop dat je nog geen media map hebt gemaakt.",
|
||||
"pick": "Kies",
|
||||
"pick-media": "Kies Media",
|
||||
"play": "Speel",
|
||||
"play-media": "Media afspelen",
|
||||
"setup_local_help": "Raadpleeg de {documentatie} voor het instellen van lokale media.",
|
||||
"video_not_supported": "Uw browser ondersteunt het video-element niet.",
|
||||
"web-browser": "Webbrowser"
|
||||
},
|
||||
@@ -2381,14 +2374,11 @@
|
||||
"title": "Toestanden"
|
||||
},
|
||||
"templates": {
|
||||
"all_listeners": "Deze template luistert naar alle gebeurtenissen met gewijzigde status.",
|
||||
"description": "Sjablonen worden weergegeven met de Jinja2-sjabloonediter samen met enkele extensies van Home Assistant.",
|
||||
"domain": "Domein",
|
||||
"editor": "Sjabloonediter",
|
||||
"entity": "Entiteit",
|
||||
"jinja_documentation": "Jinja2-sjabloondocumentatie",
|
||||
"listeners": "Deze template luistert naar de volgende gebeurtenissen met gewijzigde status:",
|
||||
"no_listeners": "Deze template luistert niet naar gebeurtenissen met statuswijziging en wordt niet automatisch bijgewerkt.",
|
||||
"reset": "Resetten naar demosjabloon",
|
||||
"template_extensions": "Home Assistant sjabloon extensiesHome Assistant",
|
||||
"title": "Sjablonen",
|
||||
@@ -2698,7 +2688,7 @@
|
||||
},
|
||||
"raw_editor": {
|
||||
"confirm_remove_config_text": "We zullen je Lovelace gebruikersinterface automatisch genereren met je gebieden en apparaten als je de huidige Lovelace gebruikersinterface verwijdert.",
|
||||
"confirm_remove_config_title": "Weet u zeker dat u uw Lovelace UI-configuratie wilt verwijderen?",
|
||||
"confirm_remove_config_title": "Weet je zeker dat je de huidige Lovelace gebruikersinterface wilt verwijderen? We zullen automatisch een nieuwe Lovelace gebruikersinterface genereren op basis van je gebieden en apparaten.",
|
||||
"confirm_unsaved_changes": "Er zijn nog niet-opgeslagen wijzigingen, weet je zeker dat je wilt afsluiten?",
|
||||
"confirm_unsaved_comments": "Uw configuratie bevat opmerkingen, deze worden niet opgeslagen. Wil je doorgaan?",
|
||||
"error_invalid_config": "Uw configuratie is niet geldig: {error}",
|
||||
@@ -3013,7 +3003,7 @@
|
||||
"name": "Naam",
|
||||
"not_used": "Is nog nooit gebruikt",
|
||||
"prompt_copy_token": "Kopieer je toegangstoken. Het wordt niet meer getoond.",
|
||||
"prompt_name": "Geef het token een naam"
|
||||
"prompt_name": "Naam?"
|
||||
},
|
||||
"mfa_setup": {
|
||||
"close": "Sluiten",
|
||||
@@ -3077,7 +3067,7 @@
|
||||
}
|
||||
},
|
||||
"sidebar": {
|
||||
"done": "Klaar",
|
||||
"done": "Gedaan",
|
||||
"external_app_configuration": "App configuratie",
|
||||
"sidebar_toggle": "Zijbalk in- en uitschakelen"
|
||||
}
|
||||
|
@@ -338,7 +338,7 @@
|
||||
},
|
||||
"query_stage": {
|
||||
"dead": "martwy ({query_stage})",
|
||||
"initializing": "inicjalizacja ({query_stage})"
|
||||
"initializing": "Inicjowanie ({query_stage})"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -507,7 +507,6 @@
|
||||
"cancel": "Anuluj",
|
||||
"close": "Zamknij",
|
||||
"continue": "Kontynuuj",
|
||||
"copied": "Skopiowano",
|
||||
"delete": "Usuń",
|
||||
"error_required": "To pole jest wymagane",
|
||||
"loading": "Ładowanie",
|
||||
@@ -2874,7 +2873,7 @@
|
||||
"unknown_error": "Coś poszło nie tak",
|
||||
"working": "Proszę czekać"
|
||||
},
|
||||
"initializing": "inicjalizacja",
|
||||
"initializing": "Inicjowanie",
|
||||
"logging_in_with": "Logowanie za pomocą **{authProviderName}**.",
|
||||
"pick_auth_provider": "Lub zaloguj się za pomocą"
|
||||
},
|
||||
|
@@ -489,7 +489,6 @@
|
||||
"back": "Înapoi",
|
||||
"cancel": "Revocare",
|
||||
"close": "Închide",
|
||||
"copied": "Copiat",
|
||||
"delete": "Șterge",
|
||||
"error_required": "Necesar",
|
||||
"loading": "Se încarcă",
|
||||
@@ -545,32 +544,6 @@
|
||||
"loading_history": "Încărcarea istoricului de stare ...",
|
||||
"no_history_found": "Nici un istoric de stare nu a fost găsit."
|
||||
},
|
||||
"logbook": {
|
||||
"entries_not_found": "Nu s-au găsit intrări în jurnal."
|
||||
},
|
||||
"media-browser": {
|
||||
"class": {
|
||||
"album": "Album",
|
||||
"app": "Aplicație",
|
||||
"artist": "Artist",
|
||||
"channel": "Canal",
|
||||
"composer": "Compozitor",
|
||||
"contributing_artist": "Artist contribuitor",
|
||||
"directory": "Bibliotecă",
|
||||
"episode": "Episod",
|
||||
"game": "Joc",
|
||||
"genre": "Gen",
|
||||
"image": "Imagine",
|
||||
"movie": "Film",
|
||||
"music": "Muzică",
|
||||
"playlist": "Playlist",
|
||||
"podcast": "Podcast",
|
||||
"season": "Sezon",
|
||||
"tv_show": "Emisiune TV",
|
||||
"url": "Url",
|
||||
"video": "Video"
|
||||
}
|
||||
},
|
||||
"related-items": {
|
||||
"area": "Zonă",
|
||||
"automation": "Parte din următoarele automatizări",
|
||||
@@ -674,7 +647,6 @@
|
||||
"yaml_not_editable": "Setările acestei entități nu se pot edita din interfața grafica. Numai entitățile configurate in interfața grafica sunt configurabile din interfața grafica."
|
||||
},
|
||||
"more_info_control": {
|
||||
"details": "Detalii",
|
||||
"dismiss": "Se respinge dialogul",
|
||||
"edit": "Editează entitatea",
|
||||
"person": {
|
||||
@@ -878,13 +850,7 @@
|
||||
"label": "Cheama serviciu",
|
||||
"service_data": "Date serviciu"
|
||||
},
|
||||
"wait_for_trigger": {
|
||||
"continue_timeout": "Continua la timeout",
|
||||
"label": "Așteptați declanșatorul",
|
||||
"timeout": "Timeout (optional)"
|
||||
},
|
||||
"wait_template": {
|
||||
"continue_timeout": "Continuați la expirare",
|
||||
"label": "Asteptare",
|
||||
"timeout": "Timeout (opțional)",
|
||||
"wait_template": "Sablon Asteptare"
|
||||
@@ -1294,7 +1260,6 @@
|
||||
},
|
||||
"integrations": {
|
||||
"add_integration": "Adăugați integrare",
|
||||
"attention": "Atenție necesară",
|
||||
"caption": "Integrări",
|
||||
"config_entry": {
|
||||
"delete": "Șterge",
|
||||
@@ -1352,7 +1317,6 @@
|
||||
"none": "Nimic nu a fost configurat încă",
|
||||
"none_found": "Nu s-au găsit integrări",
|
||||
"none_found_detail": "Ajustați criteriile de căutare.",
|
||||
"reconfigure": "Reconfigurați",
|
||||
"rename_dialog": "Editați numele acestei intrări de configurare",
|
||||
"rename_input_label": "Introdu nume",
|
||||
"search": "Căutare integrari"
|
||||
@@ -1884,14 +1848,9 @@
|
||||
"title": "Status"
|
||||
},
|
||||
"templates": {
|
||||
"all_listeners": "Acest șablon ascultă următoarele evenimente modificate de stare:",
|
||||
"description": "Șabloanele sunt redate utilizând motorul de șablon Jinja2 cu unele extensii specifice Home Assistant.",
|
||||
"domain": "Domeniu",
|
||||
"editor": "Editor șabloane",
|
||||
"entity": "Entitate",
|
||||
"jinja_documentation": "Șablon documentație Jinja2",
|
||||
"listeners": "Acest șablon ascultă următoarele evenimente modificate de stare:",
|
||||
"no_listeners": "Acest șablon ascultă următoarele evenimente modificate de stare:",
|
||||
"template_extensions": "Șabloane de extensie pentru Home Assistant",
|
||||
"title": "Sabloane",
|
||||
"unknown_error_template": "Sa produs o eroare de randare necunoscută."
|
||||
@@ -2394,11 +2353,6 @@
|
||||
"submit": "Trimite"
|
||||
},
|
||||
"current_user": "În prezent sunteți conectat ca {fullName}.",
|
||||
"customize_sidebar": {
|
||||
"button": "Editeaza",
|
||||
"description": "De asemenea, puteți apăsa și ține apăsat antetul barei laterale pentru a activa modul de editare.",
|
||||
"header": "Schimbați ordinea și ascundeți elementele din bara laterală"
|
||||
},
|
||||
"dashboard": {
|
||||
"description": "Alegeți un tablou de bord implicit pentru acest dispozitiv.",
|
||||
"dropdown_label": "Tablou de bord",
|
||||
@@ -2421,7 +2375,6 @@
|
||||
"confirm_delete": "Sigur doriti sa stergeti tokenul de acces pentru {name}?",
|
||||
"create": "Creaza un Token",
|
||||
"create_failed": "Crearea tokenului de acces eşuată",
|
||||
"created": "Creat in {data}",
|
||||
"created_at": "Creat in {date}",
|
||||
"delete_failed": "Ştergerea tokenului de acces eşuată",
|
||||
"description": "Creați tokenuri de acces cu durată lungă de viață pentru a permite script-urilor dvs. să interacționeze cu instanța dvs. Home Assistant. Fiecare token va fi valabil timp de 10 ani de la creatie. Următoarele tokenuri de acces de lungă durată sunt active la ora actuala.",
|
||||
@@ -2429,7 +2382,6 @@
|
||||
"header": "Tokenuri de acces de lunga durata",
|
||||
"last_used": "Ultima utilizare la {date} din {location}",
|
||||
"learn_auth_requests": "Aflați cum să faceți cereri autentificate.",
|
||||
"name": "Nume",
|
||||
"not_used": "Nu a fost utilizat niciodata",
|
||||
"prompt_copy_token": "Copia token-ul de acces. Acesta nu va fi afișat din nou.",
|
||||
"prompt_name": "Nume?"
|
||||
@@ -2491,7 +2443,6 @@
|
||||
}
|
||||
},
|
||||
"sidebar": {
|
||||
"done": "Terminat",
|
||||
"external_app_configuration": "Configurație aplicație",
|
||||
"sidebar_toggle": "Schimbati bara laterală"
|
||||
}
|
||||
|
@@ -507,7 +507,6 @@
|
||||
"cancel": "Отменить",
|
||||
"close": "Закрыть",
|
||||
"continue": "Продолжить",
|
||||
"copied": "Скопировано",
|
||||
"delete": "Удалить",
|
||||
"error_required": "Обязательное поле",
|
||||
"loading": "Загрузка",
|
||||
@@ -581,7 +580,6 @@
|
||||
"artist": "Исполнитель",
|
||||
"channel": "Канал",
|
||||
"composer": "Композитор",
|
||||
"contributing_artist": "Соисполнитель",
|
||||
"directory": "Библиотека",
|
||||
"episode": "Эпизод",
|
||||
"game": "Игра",
|
||||
@@ -604,21 +602,15 @@
|
||||
"playlist": "Плейлист",
|
||||
"server": "Сервер"
|
||||
},
|
||||
"documentation": "документации",
|
||||
"learn_adding_local_media": "Подробнее о добавлении мультимедиа читайте в {documentation}.",
|
||||
"local_media_files": "Поместите видео, аудио и графические файлы в каталог мультимедиа, чтобы иметь возможность просматривать и воспроизводить их в браузере или на поддерживаемых медиаплеерах.",
|
||||
"media_browsing_error": "Ошибка просмотра мультимедиа",
|
||||
"media_not_supported": "Браузер медиаплеера не поддерживает этот тип мультимедиа.",
|
||||
"media_player": "Медиаплеер",
|
||||
"media-player-browser": "Браузер медиаплеера",
|
||||
"no_items": "Нет элементов",
|
||||
"no_local_media_found": "В локальном хранилище медиафайлы не найдены.",
|
||||
"no_media_folder": "Похоже, что Вы еще не создали каталог мультимедиа.",
|
||||
"pick": "Выбрать",
|
||||
"pick-media": "Выбрать Медиа",
|
||||
"play": "Воспроизведение",
|
||||
"play-media": "Воспроизведение Медиа",
|
||||
"setup_local_help": "О том, как добавить медиафайлы в локальное хранилище, Вы можете узнать в {documentation}.",
|
||||
"video_not_supported": "Ваш браузер не поддерживает видео.",
|
||||
"web-browser": "Веб-браузер"
|
||||
},
|
||||
@@ -662,8 +654,8 @@
|
||||
"update": "Обновить"
|
||||
},
|
||||
"domain_toggler": {
|
||||
"reset_entities": "Сброс настроек",
|
||||
"title": "Управление доменами"
|
||||
"reset_entities": "Сбросить настройки доступа объектов",
|
||||
"title": "Переключить домены"
|
||||
},
|
||||
"entity_registry": {
|
||||
"control": "Управление",
|
||||
@@ -2381,14 +2373,11 @@
|
||||
"title": "Состояния"
|
||||
},
|
||||
"templates": {
|
||||
"all_listeners": "Этот шаблон отслеживает все события изменения состояния.",
|
||||
"description": "Здесь Вы можете протестировать поведение шаблонов. В Home Assistant используется шаблонизатор Jinja2 с некоторыми специальными расширениями.",
|
||||
"domain": "Домен",
|
||||
"editor": "Редактор шаблонов",
|
||||
"entity": "Объект",
|
||||
"jinja_documentation": "Узнайте больше о шаблонизаторе Jinja2",
|
||||
"listeners": "Этот шаблон отслеживает следующие события изменения состояния:",
|
||||
"no_listeners": "Этот шаблон не отслеживает события изменения состояния и не обновляется автоматически.",
|
||||
"reset": "Вернуться к демонстрационному шаблону",
|
||||
"template_extensions": "Узнайте больше о шаблонах Home Assistant",
|
||||
"title": "Шаблоны",
|
||||
@@ -2698,7 +2687,7 @@
|
||||
},
|
||||
"raw_editor": {
|
||||
"confirm_remove_config_text": "Если Вы очистите конфигурацию этой панели Lovelace, карточки с Вашими устройствами и помещениями будут создаваться автоматически.",
|
||||
"confirm_remove_config_title": "Вы уверены, что хотите очистить конфигурацию пользовательского интерфейса Lovelace?",
|
||||
"confirm_remove_config_title": "Очистить конфигурацию?",
|
||||
"confirm_unsaved_changes": "У вас есть несохраненные изменения. Вы уверены, что хотите выйти?",
|
||||
"confirm_unsaved_comments": "Ваша конфигурация содержит комментарии, они не будут сохранены. Вы хотите продолжить?",
|
||||
"error_invalid_config": "Конфигурация недействительна: {error}",
|
||||
|
@@ -505,7 +505,6 @@
|
||||
"back": "Tillbaka",
|
||||
"cancel": "Avbryt",
|
||||
"close": "Stäng",
|
||||
"continue": "Fortsätt",
|
||||
"delete": "Radera",
|
||||
"error_required": "Krävs",
|
||||
"loading": "Läser in",
|
||||
@@ -689,11 +688,8 @@
|
||||
"crop": "Beskär"
|
||||
},
|
||||
"more_info_control": {
|
||||
"controls": "Kontroller",
|
||||
"details": "Detaljer",
|
||||
"dismiss": "Avfärda",
|
||||
"edit": "Redigera entitet",
|
||||
"history": "Historik",
|
||||
"person": {
|
||||
"create_zone": "Skapa zon från aktuell plats"
|
||||
},
|
||||
@@ -1578,7 +1574,6 @@
|
||||
"none_found_detail": "Justera dina sökkriterier.",
|
||||
"note_about_integrations": "Inte alla integrationer kan konfigureras via användargränssnittet ännu.",
|
||||
"note_about_website_reference": "Fler finns på ",
|
||||
"reconfigure": "Konfigurera om",
|
||||
"rename_dialog": "Redigera namnet på den här konfigurationsposten",
|
||||
"rename_input_label": "Ange namn",
|
||||
"search": "Sök integrationer"
|
||||
@@ -1729,9 +1724,6 @@
|
||||
"session": "Hämtar värden som sällan ändras från noden",
|
||||
"static": "Hämtar statiska värden från enheten"
|
||||
},
|
||||
"nodes_table": {
|
||||
"id": "ID"
|
||||
},
|
||||
"refresh_node": {
|
||||
"complete": "Uppdatering av noden klar",
|
||||
"node_status": "Nodstatus",
|
||||
@@ -1883,7 +1875,6 @@
|
||||
"input_text": "Ladda om inmatningstext",
|
||||
"introduction": "Vissa delar av Home Assistant kan laddas om utan att en omstart krävs. Att trycka på \"ladda om\" innebär att den nuvarande konfiguration inaktiveras och den nya laddas.",
|
||||
"person": "Ladda om personer",
|
||||
"rpi_gpio": "Ladda om Raspberry Pi GPIO-entiteter",
|
||||
"scene": "Ladda om scenarier",
|
||||
"script": "Ladda om skript",
|
||||
"template": "Ladda om mallar för entiteter",
|
||||
@@ -1932,8 +1923,6 @@
|
||||
"create": "Skapa",
|
||||
"name": "Namn",
|
||||
"password": "Lösenord",
|
||||
"password_confirm": "Bekräfta lösenord",
|
||||
"password_not_match": "Lösenorden överensstämmer inte",
|
||||
"username": "Användarnamn"
|
||||
},
|
||||
"caption": "Användare",
|
||||
@@ -1950,9 +1939,7 @@
|
||||
"group": "Grupp",
|
||||
"id": "ID",
|
||||
"name": "Namn",
|
||||
"new_password": "Nytt lösenord",
|
||||
"owner": "Ägare",
|
||||
"password_changed": "Lösenordet har ändrats!",
|
||||
"system_generated": "Skapad av systemet",
|
||||
"system_generated_users_not_editable": "Det gick inte att uppdatera systemgenererade användare.",
|
||||
"system_generated_users_not_removable": "Det går inte att ta bort användare som skapats av systemet.",
|
||||
@@ -2498,8 +2485,6 @@
|
||||
},
|
||||
"cardpicker": {
|
||||
"custom_card": "Anpassad",
|
||||
"domain": "Domän",
|
||||
"entity": "Entitet",
|
||||
"no_description": "Ingen beskrivning finns tillgänglig."
|
||||
},
|
||||
"edit_card": {
|
||||
@@ -2833,9 +2818,6 @@
|
||||
"submit": "Skicka"
|
||||
},
|
||||
"current_user": "Du är inloggad som {fullName}.",
|
||||
"customize_sidebar": {
|
||||
"button": "Redigera"
|
||||
},
|
||||
"dashboard": {
|
||||
"description": "Välj en standardpanel för den här enheten.",
|
||||
"dropdown_label": "Instrumentpanel",
|
||||
|
@@ -507,7 +507,6 @@
|
||||
"cancel": "取消",
|
||||
"close": "关闭",
|
||||
"continue": "继续",
|
||||
"copied": "已复制",
|
||||
"delete": "删除",
|
||||
"error_required": "必填",
|
||||
"loading": "加载中",
|
||||
@@ -604,21 +603,15 @@
|
||||
"playlist": "播放列表",
|
||||
"server": "服务器"
|
||||
},
|
||||
"documentation": "文档",
|
||||
"learn_adding_local_media": "请参阅{documentation}以了解更多关于添加媒体的信息。",
|
||||
"local_media_files": "将视频、音频和图像文件放在媒体目录中,以便在浏览器或支持的媒体播放器上浏览和播放这些文件。",
|
||||
"media_browsing_error": "媒体浏览错误",
|
||||
"media_not_supported": "浏览器媒体播放器不支持此类型的媒体",
|
||||
"media_player": "媒体播放器",
|
||||
"media-player-browser": "媒体播放浏览器",
|
||||
"no_items": "没有项目",
|
||||
"no_local_media_found": "未找到本地媒体",
|
||||
"no_media_folder": "您还没有创建媒体目录。",
|
||||
"pick": "选定",
|
||||
"pick-media": "选定媒体",
|
||||
"play": "播放",
|
||||
"play-media": "播放媒体",
|
||||
"setup_local_help": "请参阅{documentation}以了解如何设置本地媒体。",
|
||||
"video_not_supported": "您的浏览器不支持视频元素。",
|
||||
"web-browser": "网页浏览器"
|
||||
},
|
||||
@@ -2698,7 +2691,7 @@
|
||||
},
|
||||
"raw_editor": {
|
||||
"confirm_remove_config_text": "如果您删除了 Lovelace 配置,我们将通过您的区域和设备自动生成 Lovelace 视图。",
|
||||
"confirm_remove_config_title": "您确定要删除 Lovelace 配置吗?",
|
||||
"confirm_remove_config_title": "您确定要删除 Lovelace 配置吗?我们将通过您的区域和设备自动生成 Lovelace 视图。",
|
||||
"confirm_unsaved_changes": "您有未保存的更改,确定要退出吗?",
|
||||
"confirm_unsaved_comments": "您的配置包含注释,这些注释将不会保存。是否继续?",
|
||||
"error_invalid_config": "您的配置无效:{error}",
|
||||
|
@@ -507,7 +507,6 @@
|
||||
"cancel": "取消",
|
||||
"close": "關閉",
|
||||
"continue": "繼續",
|
||||
"copied": "已複製",
|
||||
"delete": "刪除",
|
||||
"error_required": "必填",
|
||||
"loading": "讀取中",
|
||||
@@ -604,21 +603,15 @@
|
||||
"playlist": "播放列表",
|
||||
"server": "伺服器"
|
||||
},
|
||||
"documentation": "相關文件",
|
||||
"learn_adding_local_media": "詳細了解如何新增媒體{documentation}。",
|
||||
"local_media_files": "將影片、音效及影像檔案放置於媒體資料夾、將可以透過瀏覽器或支援的媒體播放器進行瀏覽與播放。",
|
||||
"media_browsing_error": "媒體瀏覽錯誤",
|
||||
"media_not_supported": "瀏覽器媒體播放器不支援此類型媒體",
|
||||
"media_player": "媒體播放器",
|
||||
"media-player-browser": "媒體播放器瀏覽器",
|
||||
"no_items": "沒有項目",
|
||||
"no_local_media_found": "找不到本地端媒體",
|
||||
"no_media_folder": "看起來您還沒有建立任何媒體資料夾。",
|
||||
"pick": "選擇",
|
||||
"pick-media": "選擇媒體",
|
||||
"play": "播放",
|
||||
"play-media": "播放媒體",
|
||||
"setup_local_help": "請參閱{documentation}以了解如何設定本地端媒體。",
|
||||
"video_not_supported": "瀏覽器不支援影片元件。",
|
||||
"web-browser": "網頁瀏覽器"
|
||||
},
|
||||
@@ -2698,7 +2691,7 @@
|
||||
},
|
||||
"raw_editor": {
|
||||
"confirm_remove_config_text": "假如移除 Lovelace UI 設定的話,將自動以區域與設備產生 Lovelace UI 視圖。",
|
||||
"confirm_remove_config_title": "確定要移除 Lovelace UI 設定?",
|
||||
"confirm_remove_config_title": "確定要移除 Lovelace UI 設定?將依據區域與設備自動產生 Lovelace UI 視圖。",
|
||||
"confirm_unsaved_changes": "變更尚未儲存,確定要退出?",
|
||||
"confirm_unsaved_comments": "設定包含命令、將不會被儲存。是否要繼續?",
|
||||
"error_invalid_config": "設定無效:{error}",
|
||||
|
Reference in New Issue
Block a user