@ledvance/base 1.3.104 → 1.3.105

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "name": "@ledvance/base",
5
5
  "pid": [],
6
6
  "uiid": "",
7
- "version": "1.3.104",
7
+ "version": "1.3.105",
8
8
  "scripts": {
9
9
  "prepublishOnly": "python update-localazy.py"
10
10
  },
@@ -0,0 +1,88 @@
1
+ import React, { useMemo } from 'react';
2
+ import { View, ColorPropType, ViewStyle, StyleProp } from 'react-native';
3
+ import Svg, { Path, Polygon } from 'react-native-svg';
4
+ import { Utils } from 'tuya-panel-kit';
5
+
6
+ const { convertX: cx } = Utils.RatioUtils;
7
+
8
+ // 电池外壳SVG路径 (常量)
9
+ const WRAP_BATTERY_D =
10
+ 'M6.5,0 C6.77614237,-5.07265313e-17 7,0.223857625 7,0.5 L7,1 L9.5,1 C10.3284271,1 11,1.67157288 11,2.5 L11,17.5 C11,18.3284271 10.3284271,19 9.5,19 L1.5,19 C0.671572875,19 0,18.3284271 0,17.5 L0,2.5 C0,1.67157288 0.671572875,1 1.5,1 L4,1 L4,0.5 C4,0.223857625 4.22385763,5.07265313e-17 4.5,0 L6.5,0 Z M9.5,2 L1.5,2 C1.22385763,2 1,2.22385763 1,2.5 L1,17.5 C1,17.7761424 1.22385763,18 1.5,18 L9.5,18 C9.77614237,18 10,17.7761424 10,17.5 L10,2.5 C10,2.2385763 9.77614237,2 9.5,2 Z';
11
+
12
+ // "粗壮"闪电图标
13
+ const LIGHTNING_D = 'M6,5 L3.5,10 L5,10 L5,14 L7.5,9 L6,9 L6,5 Z';
14
+
15
+ // 定义组件的Props类型
16
+ interface BatteryProps {
17
+ size?: number;
18
+ batteryColor?: ColorPropType;
19
+ value?: number;
20
+ highColor?: ColorPropType;
21
+ middleColor?: ColorPropType;
22
+ lowColor?: ColorPropType;
23
+ onCalcColor?: (top: number, high: string, middle: string, low: string) => string;
24
+ charging?: boolean;
25
+ chargingColor?: ColorPropType;
26
+ style?: StyleProp<ViewStyle>;
27
+ batteryRotation?: number; // *** 新增 prop,用于控制电池旋转角度 ***
28
+ }
29
+
30
+ const Battery: React.FC<BatteryProps> = ({
31
+ size = cx(10),
32
+ batteryColor = 'rgba(0,0,0,.5)',
33
+ value = 80,
34
+ highColor = '#70CF98',
35
+ middleColor = '#F5A623',
36
+ lowColor = '#FF4444',
37
+ onCalcColor,
38
+ charging = false,
39
+ chargingColor = '#3AC400',
40
+ style,
41
+ batteryRotation = 0, // 默认为0,不旋转
42
+ }) => {
43
+
44
+ const top = useMemo(() => {
45
+ const boundedValue = Math.max(0, Math.min(100, value));
46
+ return 17 - (14 * boundedValue) / 100;
47
+ }, [value]);
48
+
49
+ const insideColor = useMemo(() => {
50
+ if (typeof onCalcColor === 'function') {
51
+ const customColor = onCalcColor(top, highColor, middleColor, lowColor);
52
+ if (customColor) return customColor;
53
+ }
54
+ if (value >= 50) return highColor;
55
+ if (value >= 20) return middleColor;
56
+ return lowColor;
57
+ }, [value, top, highColor, middleColor, lowColor, onCalcColor]);
58
+
59
+ const batteryLevelPoints = `2 ${top} 9 ${top} 9 17 2 17`;
60
+
61
+ const svgWidth = 1.1 * size;
62
+ const svgHeight = 1.9 * size;
63
+
64
+ return (
65
+ // 1. 将旋转应用到根View上
66
+ <View style={[{ transform: [{ rotate: `${batteryRotation}deg` }] }, style]}>
67
+ <Svg width={svgWidth} height={svgHeight} viewBox="0 0 11 19">
68
+ <Path d={WRAP_BATTERY_D} fill={batteryColor} />
69
+ <Polygon points={batteryLevelPoints} fill={insideColor as string} />
70
+ {charging && (
71
+ <Path
72
+ d={LIGHTNING_D}
73
+ fill={chargingColor as string}
74
+ stroke="white"
75
+ strokeWidth={0.2}
76
+ strokeLinejoin="round"
77
+ // 2. 对闪电图标进行“反向旋转”
78
+ rotation={-batteryRotation}
79
+ // 3. 指定旋转中心为SVG画布的中心
80
+ origin="5.5, 9.5"
81
+ />
82
+ )}
83
+ </Svg>
84
+ </View>
85
+ );
86
+ };
87
+
88
+ export default Battery;
@@ -1,23 +1,25 @@
1
- import React from 'react'
2
- import Card from './Card'
3
- import {Battery, Utils} from 'tuya-panel-kit'
4
- import {StyleSheet, Text, View} from 'react-native'
1
+ import React, { useCallback, useMemo } from 'react'
2
+ import { StyleSheet, Text } from 'react-native'
3
+ import { Utils } from 'tuya-panel-kit'
4
+ import ThemeType from '../config/themeType'
5
5
  import I18n from '../i18n'
6
+ import Battery from './Battery'
7
+ import Card from './Card'
6
8
  import Spacer from './Spacer'
7
- import ThemeType from '../config/themeType'
8
9
 
9
10
  const cx = Utils.RatioUtils.convertX
10
- const {withTheme} = Utils.ThemeUtils
11
+ const { withTheme } = Utils.ThemeUtils
11
12
  type BatteryProps = {
12
13
  value: number
13
14
  lowValue?: number
14
15
  middleValue?: number
15
16
  highValue?: number
17
+ charging?: boolean
16
18
  theme?: ThemeType
17
19
  }
18
20
 
19
21
  const BatteryPercentageView = (props: BatteryProps) => {
20
- const {value, middleValue = 10, highValue = 90} = props
22
+ const { value, middleValue = 10, highValue = 90 } = props
21
23
  const calcColor = (_: any, normalColor: string, lowColor: string, emptyColor: string) => {
22
24
  if (value >= highValue) {
23
25
  return normalColor
@@ -28,50 +30,53 @@ const BatteryPercentageView = (props: BatteryProps) => {
28
30
  }
29
31
  }
30
32
 
31
- const styles = StyleSheet.create({
32
- title: {
33
- marginStart: cx(16),
34
- marginVertical: cx(18),
35
- color: props.theme?.global.fontColor,
36
- fontSize: cx(16),
37
- fontWeight: 'bold',
38
- fontFamily: 'helvetica_neue_lt_std_bd',
39
- },
40
- batteryRotate: {
41
- transform: [{ rotate: '90deg' }],
42
- position: 'relative',
43
- right: cx(30)
44
- },
45
- content: {
46
- marginEnd: cx(16),
47
- color: props.theme?.global.fontColor,
48
- fontSize: cx(14),
49
- fontFamily: 'helvetica_neue_lt_std_roman',
50
- },
51
- low: {
52
- color: props.theme?.global.error
53
- }
54
- })
33
+ const getStyles = useCallback(() => {
34
+ return StyleSheet.create({
35
+ container: {
36
+ flexDirection: 'row',
37
+ alignItems: 'center',
38
+ },
39
+ title: {
40
+ marginStart: cx(16),
41
+ marginVertical: cx(18),
42
+ color: props.theme?.global.fontColor,
43
+ fontSize: cx(16),
44
+ fontWeight: 'bold',
45
+ },
46
+ content: {
47
+ marginEnd: cx(16),
48
+ width: cx(60),
49
+ color: props.theme?.global.fontColor,
50
+ textAlign: 'right',
51
+ fontSize: cx(14),
52
+ },
53
+ low: {
54
+ color: props.theme?.global.error
55
+ }
56
+ })
57
+ }, [props.theme])
58
+
59
+ const styles = getStyles()
55
60
 
56
61
  return (
57
62
  <Card
58
63
  style={{ marginHorizontal: cx(24) }}
59
- containerStyle={{ flexDirection: 'row', alignItems: 'center' }}
64
+ containerStyle={styles.container}
60
65
  >
61
66
  <Text
62
67
  style={styles.title}>
63
68
  {I18n.getLang('motion_detector_battery__state4')}
64
69
  </Text>
65
- <Spacer height={0} style={{ flex: 1 }} />
66
- <View style={styles.batteryRotate}>
67
- <Battery
68
- value={props.value}
69
- onCalcColor={calcColor}
70
- size={cx(30)}
71
- theme={{ batteryColor: props.theme?.global.secondFontColor || '#000' }}
72
- middleColor='#999999'
73
- />
74
- </View>
70
+ <Spacer height={0} style={{ flex: 1 }}/>
71
+ <Battery
72
+ value={props.value}
73
+ onCalcColor={calcColor}
74
+ charging={props.charging}
75
+ size={cx(30)}
76
+ batteryColor={props.theme?.global.secondFontColor}
77
+ middleColor="#999999"
78
+ batteryRotation={90}
79
+ />
75
80
  <Text style={[styles.content, value <= middleValue ? styles.low : null]}>{value}%</Text>
76
81
  </Card>
77
82
  )
@@ -1,7 +1,7 @@
1
1
  import {View} from 'react-native'
2
2
  import React, {useCallback} from 'react'
3
3
  import LdvColorSlider from './ldvColorSlider'
4
- import {hex2Hsv, hsv2Hex} from '../utils'
4
+ import {hex2Hsv, hsv2Hex} from '@utils'
5
5
  import LdvPresetView from './ldvPresetView'
6
6
  import LdvSaturation from './ldvSaturation'
7
7
  import LdvColorBrightness from './ldvColorBrightness'
@@ -9,12 +9,11 @@ import I18n from '../i18n/index'
9
9
  import RectColorAndBrightPicker from './rect-color-and-bright-picker'
10
10
  import {Utils} from "tuya-panel-kit";
11
11
  import {useReactive, useUpdateEffect} from "ahooks";
12
- import {useNewPalette} from "../models/modules/NativePropsSlice";
12
+ import {useNewPalette, useIsPad} from "../models/modules/NativePropsSlice";
13
13
 
14
- const cx = Utils.RatioUtils.convertX
14
+ const {convertX: cx, width: screenWidth} = Utils.RatioUtils
15
15
  const scaleUp = (value) => value * 10
16
16
  const scaleDown = (value) => Math.round(value / 10)
17
- const width = Utils.RatioUtils.width - cx(80)
18
17
 
19
18
  export interface ColorAdjustViewProps {
20
19
  h: number
@@ -30,6 +29,8 @@ export interface ColorAdjustViewProps {
30
29
 
31
30
  const NewColorPicker = React.memo((props: ColorAdjustViewProps) => {
32
31
  const { h = 0, s = 100, v = 100, minBrightness, onHSVChange, onHSVChangeComplete } = props
32
+ const isPad = useIsPad()
33
+ const width = isPad ? cx(screenWidth - 10) : (screenWidth - 80)
33
34
  const state = useReactive({
34
35
  hue: h,
35
36
  saturation: scaleUp(s),
@@ -9,13 +9,12 @@ import I18n from '../i18n/index'
9
9
  import {cctToColor} from '../utils/cctUtils'
10
10
  import RectColorAndBrightPicker from "./rect-color-and-bright-picker";
11
11
  import {useReactive, useUpdateEffect} from 'ahooks'
12
- import { useNewPalette } from 'models/modules/NativePropsSlice'
12
+ import { useNewPalette, useIsPad } from 'models/modules/NativePropsSlice'
13
13
 
14
- const {convertX: cx} = Utils.RatioUtils
14
+ const {convertX: cx, width: screenWidth} = Utils.RatioUtils
15
15
 
16
16
  const scaleUp = (value: number) => value * 10;
17
17
  const scaleDown = (value: number) => Math.round(value / 10);
18
- const width = Utils.RatioUtils.width - cx(80);
19
18
 
20
19
  export interface ColorTempAdjustViewProps {
21
20
  colorTemp: number
@@ -41,6 +40,8 @@ const NewColorTempPicker = React.memo((props: ColorTempAdjustViewProps) => {
41
40
  onBrightnessChange,
42
41
  onBrightnessChangeComplete,
43
42
  } = props
43
+ const isPad = useIsPad()
44
+ const width = isPad ? cx(screenWidth - 10) : (screenWidth - 80)
44
45
  const state = useReactive({
45
46
  temperature: scaleUp(colorTemp),
46
47
  brightness: scaleUp(brightness),
@@ -16,6 +16,8 @@ const ColorsLine = (props: ColorsLineProps) => {
16
16
  props.colors.map((color, index) => {
17
17
  return (
18
18
  <View
19
+ accessibilityLabel={'ColorNode'}
20
+ accessibilityHint={`${color}`}
19
21
  key={`${index}`}
20
22
  style={[
21
23
  styles.colorNode,
@@ -52,7 +52,6 @@ const DiySceneItem = (props: DiySceneItemProps) => {
52
52
  height: cx(45),
53
53
  marginTop: cx(-5),
54
54
  marginBottom: cx(-10),
55
- fontWeight: 'bold',
56
55
  },
57
56
  moodTypeItem: {
58
57
  flexDirection: 'row',
@@ -14,6 +14,7 @@ import Stepper from './Stepper'
14
14
  import StripLightView from './StripLightView'
15
15
  import { nativeEventEmitter } from '../api/nativeEventEmitter'
16
16
  import ThemeType from '../config/themeType'
17
+ import { useIsPad } from '../models/modules/NativePropsSlice'
17
18
 
18
19
  const { convertX: cx } = Utils.RatioUtils
19
20
  const { withTheme } = Utils.ThemeUtils
@@ -66,6 +67,7 @@ interface DrawToolViewProps extends PropsWithChildren<ViewProps> {
66
67
  }
67
68
 
68
69
  const DrawToolView = (props: DrawToolViewProps) => {
70
+ const isPad = useIsPad()
69
71
  const state = useReactive({
70
72
  visible: props.ledNumModalVisible || false,
71
73
  ledNum: props.ledNum || 5,
@@ -98,8 +100,9 @@ const DrawToolView = (props: DrawToolViewProps) => {
98
100
  }
99
101
 
100
102
  const height = useMemo(() => {
101
- return cx(52 * Math.ceil((props.nodes.length / (props.fixCount || 5))))
102
- }, [props.nodes])
103
+ const base = isPad ? 100 : 52
104
+ return cx(base * Math.ceil((props.nodes.length / (props.fixCount || 5))))
105
+ }, [props.nodes, isPad])
103
106
 
104
107
  const getBlockColor = useCallback(() => {
105
108
  if (props.isColorMode) {
@@ -161,8 +164,8 @@ const DrawToolView = (props: DrawToolViewProps) => {
161
164
  </TouchableOpacity>
162
165
  {!props.hideDisableLight && <TouchableOpacity
163
166
  accessibilityLabel='AdjustButton'
164
- accessibilityHint='3'
165
- accessibilityState={{ checked: props.adjustType === 3 }}
167
+ accessibilityHint='3'
168
+ accessibilityState={{ checked: props.adjustType === 3 }}
166
169
  onPress={() => {
167
170
  props.setAdjustType(3)
168
171
  }}>
@@ -3,8 +3,9 @@ import React from 'react'
3
3
  import {Utils} from 'tuya-panel-kit'
4
4
  import {StyleProp, StyleSheet, ViewStyle} from 'react-native'
5
5
  import ColorsLine from './ColorsLine'
6
+ import {useIsPad} from '../models/modules/NativePropsSlice'
6
7
 
7
- const cx = Utils.RatioUtils.convertX
8
+ const { convertX: cx, width: screenWidth } = Utils.RatioUtils
8
9
 
9
10
  export type MoodColorsLineType = 'gradient' | 'separate'
10
11
 
@@ -17,7 +18,8 @@ interface MoodColorsLineProps {
17
18
  }
18
19
 
19
20
  export default function MoodColorsLine(props: MoodColorsLineProps) {
20
- const width = props.width || cx(295)
21
+ const isPad = useIsPad()
22
+ const width = props.width || (isPad ? cx(screenWidth - 10) : (screenWidth - 80))
21
23
  const height = props.height || cx(24)
22
24
  if (props.type === 'separate' || props.colors.length < 2) {
23
25
  return (<ColorsLine colors={props.colors} style={{width, height}} nodeStyle={props.nodeStyle}/>)
@@ -1,10 +1,11 @@
1
- import React from 'react'
1
+ import React, { useMemo } from 'react'
2
2
  import {StyleProp, StyleSheet, Text, View, ViewStyle} from 'react-native'
3
3
  import {LinearGradient, Slider, Utils} from 'tuya-panel-kit'
4
4
  import {Rect} from 'react-native-svg'
5
5
  import ThemeType from '../config/themeType'
6
+ import { useIsPad } from '../models/modules/NativePropsSlice'
6
7
 
7
- const cx = Utils.RatioUtils.convertX
8
+ const { convertX: cx, width: screenWidth } = Utils.RatioUtils
8
9
  const { withTheme } = Utils.ThemeUtils
9
10
 
10
11
  const temperatures = {
@@ -42,12 +43,56 @@ interface LdvColorSliderProps {
42
43
 
43
44
  const LdvColorSlider = (props: LdvColorSliderProps) => {
44
45
  const {title, type, onSlidingComplete, thumbColor, value} = props
46
+ const isPad = useIsPad()
45
47
  let dataSource = type === TEMP_KEY ? temperatures : colors
46
48
  let max = type === TEMP_KEY ? 100 : 359
47
49
  let min = type === TEMP_KEY ? 0 : 0
48
- const width = props.width || (Utils.RatioUtils.width - cx(80))
50
+ const width = props.width || (isPad ? cx(screenWidth - 10) : (screenWidth - 80))
49
51
 
50
- const styles = StyleSheet.create({
52
+ const styles = useMemo(() => getStyles(props.theme), [props.theme])
53
+
54
+ return (
55
+ <View style={[styles.container, props.style]}>
56
+ <Text accessibilityLabel={"Color"} accessibilityHint={`${value}`} style={styles.title}>
57
+ {title}
58
+ </Text>
59
+ <Slider.Horizontal
60
+ accessibilityLabel={"ColorSliderHorizontal"}
61
+ style={{...styles.shadeSlider, width}}
62
+ styles={{track: styles.sliderTrack, thumb: {...styles.shadeThumb, backgroundColor: thumbColor}}}
63
+ maximumValue={max}
64
+ minimumValue={min}
65
+ value={value}
66
+ stepValue={1}
67
+ canTouchTrack={true}
68
+ theme={{
69
+ trackRadius: cx(15),
70
+ }}
71
+ onlyMaximumTrack={true}
72
+ renderMaximumTrack={() => {
73
+ return (
74
+ <View style={{flex: 1, borderRadius: cx(15)}}>
75
+ <LinearGradient
76
+ style={{...styles.sliderLinearGradient, width}}
77
+ x1="0%"
78
+ y1="0%"
79
+ x2="100%"
80
+ y2="0%"
81
+ stops={dataSource}>
82
+ <Rect {...styles.sliderLinearGradient} width={width}/>
83
+ </LinearGradient>
84
+ </View>
85
+ )
86
+ }}
87
+ onValueChange={props.onValueChange}
88
+ onSlidingComplete={onSlidingComplete}
89
+ />
90
+ </View>
91
+ )
92
+ }
93
+
94
+ const getStyles = (theme?: ThemeType) =>
95
+ StyleSheet.create({
51
96
  container: {
52
97
  height: cx(57),
53
98
  flexDirection: 'column',
@@ -56,8 +101,7 @@ const LdvColorSlider = (props: LdvColorSliderProps) => {
56
101
  title: {
57
102
  marginTop: cx(4),
58
103
  fontSize: cx(14),
59
- color: props.theme?.global.fontColor,
60
- fontFamily: 'helvetica_neue_lt_std_roman',
104
+ color: theme?.global.fontColor,
61
105
  },
62
106
  shadeSlider: {
63
107
  marginTop: cx(8),
@@ -94,44 +138,4 @@ const LdvColorSlider = (props: LdvColorSliderProps) => {
94
138
  },
95
139
  })
96
140
 
97
- return (
98
- <View style={[styles.container, props.style]}>
99
- <Text accessibilityLabel={"Color"} accessibilityHint={`${value}`} style={styles.title}>
100
- {title}
101
- </Text>
102
- <Slider.Horizontal
103
- accessibilityLabel={"ColorSliderHorizontal"}
104
- style={{...styles.shadeSlider, width}}
105
- styles={{track: styles.sliderTrack, thumb: {...styles.shadeThumb, backgroundColor: thumbColor}}}
106
- maximumValue={max}
107
- minimumValue={min}
108
- value={value}
109
- stepValue={1}
110
- canTouchTrack={true}
111
- theme={{
112
- trackRadius: cx(15),
113
- }}
114
- onlyMaximumTrack={true}
115
- renderMaximumTrack={() => {
116
- return (
117
- <View style={{flex: 1, borderRadius: cx(15)}}>
118
- <LinearGradient
119
- style={{...styles.sliderLinearGradient, width}}
120
- x1="0%"
121
- y1="0%"
122
- x2="100%"
123
- y2="0%"
124
- stops={dataSource}>
125
- <Rect {...styles.sliderLinearGradient} width={width}/>
126
- </LinearGradient>
127
- </View>
128
- )
129
- }}
130
- onValueChange={props.onValueChange}
131
- onSlidingComplete={onSlidingComplete}
132
- />
133
- </View>
134
- )
135
- }
136
-
137
141
  export default withTheme(LdvColorSlider)
@@ -1159,7 +1159,7 @@ export default {
1159
1159
  "switchmodule_typesettingdescription": "Para configurar la configuración del estado del conmutador",
1160
1160
  "switchname_1channel": "Conmutador inteligente de 1 canal",
1161
1161
  "switchname_2channel": "Conmutador inteligente de 2 canales",
1162
- "switchname_4channel": "Conmutador inteligente de 4 canales",
1162
+ "switchname_4channel": "Interruptor de pared remoto de 4 canales",
1163
1163
  "switchonlyonce": "Cambiar de modo sólo está permitido una vez al día.",
1164
1164
  "switchstate1selection": "Interruptor basculante",
1165
1165
  "switchstate2selection": "Interruptor basculante sincronizado",
@@ -2439,7 +2439,7 @@ export default {
2439
2439
  "switchmodule_typesettingdescription": "Konfigurace nastavení stavu přepínače",
2440
2440
  "switchname_1channel": "Inteligentní přepínač 1 kanál",
2441
2441
  "switchname_2channel": "Inteligentní přepínač 2 kanál",
2442
- "switchname_4channel": "Inteligentní přepínač 4 kanál",
2442
+ "switchname_4channel": "4kanálový dálkový nástěnný vypínač",
2443
2443
  "switchonlyonce": "Přepnutí režimu je povoleno pouze jednou denně.",
2444
2444
  "switchstate1selection": "Kolébkový spínač",
2445
2445
  "switchstate2selection": "Synchronizovaný kolébkový spínač",
@@ -3719,7 +3719,7 @@ export default {
3719
3719
  "switchmodule_typesettingdescription": "To configure the switch state setting",
3720
3720
  "switchname_1channel": "Smart switch 1 channel",
3721
3721
  "switchname_2channel": "Smart switch 2 channel",
3722
- "switchname_4channel": "Smart switch 4 channel",
3722
+ "switchname_4channel": "4 channel remote wall switch",
3723
3723
  "switchonlyonce": "Switching the mode is only allowed once a day.",
3724
3724
  "switchstate1selection": "Rocker switch",
3725
3725
  "switchstate2selection": "Synchronized rocker switch",
@@ -4999,7 +4999,7 @@ export default {
4999
4999
  "switchmodule_typesettingdescription": "Конфигуриране на настройката на състоянието на превключвателя",
5000
5000
  "switchname_1channel": "Интелигентен превключвател 1 канал",
5001
5001
  "switchname_2channel": "Интелигентен превключвател 2 канала",
5002
- "switchname_4channel": "Интелигентен превключвател 4 канала",
5002
+ "switchname_4channel": "4-канален дистанционен стенен превключвател",
5003
5003
  "switchonlyonce": "Превключването на режима е разрешено само веднъж на ден.",
5004
5004
  "switchstate1selection": "Ракеров превключвател",
5005
5005
  "switchstate2selection": "Синхронизиран превключвател",
@@ -6279,7 +6279,7 @@ export default {
6279
6279
  "switchmodule_typesettingdescription": "For at konfigurere indstillingen for kontaktens tilstand",
6280
6280
  "switchname_1channel": "Smart kontakt 1 kanal",
6281
6281
  "switchname_2channel": "Smart kontakt 2 kanal",
6282
- "switchname_4channel": "Smart kontakt 4 kanal",
6282
+ "switchname_4channel": "4-kanals fjernbetjent vægafbryder",
6283
6283
  "switchonlyonce": "Det er kun tilladt at skifte tilstand én gang om dagen.",
6284
6284
  "switchstate1selection": "Vippekontakt",
6285
6285
  "switchstate2selection": "Synkroniseret vippekontakt",
@@ -7559,7 +7559,7 @@ export default {
7559
7559
  "switchmodule_typesettingdescription": "So konfigurierst du die Einstellung für den Wandschalter",
7560
7560
  "switchname_1channel": "Smarte Schalter 1 Kanal",
7561
7561
  "switchname_2channel": "Smarte Schalter 2 Kanal",
7562
- "switchname_4channel": "Smarte Schalter 4 Kanal",
7562
+ "switchname_4channel": "4-Kanal-Batterie Funkschalter",
7563
7563
  "switchonlyonce": "Der Wechsel des Modus ist nur einmal pro Tag erlaubt.",
7564
7564
  "switchstate1selection": "Wippschalter",
7565
7565
  "switchstate2selection": "Synchronisierter Wippschalter",
@@ -8839,7 +8839,7 @@ export default {
8839
8839
  "switchmodule_typesettingdescription": "Για να διαμορφώσετε τη ρύθμιση κατάστασης διακόπτη",
8840
8840
  "switchname_1channel": "Έξυπνος διακόπτης 1 καναλιού",
8841
8841
  "switchname_2channel": "Έξυπνος διακόπτης 2 καναλιών",
8842
- "switchname_4channel": "Έξυπνος διακόπτης 4 καναλιών",
8842
+ "switchname_4channel": "Τηλεχειριζόμενος διακόπτης τοίχου 4 καναλιών",
8843
8843
  "switchonlyonce": "Η εναλλαγή της λειτουργίας επιτρέπεται μόνο μία φορά την ημέρα.",
8844
8844
  "switchstate1selection": "Διακόπτης rocker",
8845
8845
  "switchstate2selection": "Συγχρονισμένος διακόπτης rocker",
@@ -10119,7 +10119,7 @@ export default {
10119
10119
  "switchmodule_typesettingdescription": "Para configurar los ajustes del estado del interruptor",
10120
10120
  "switchname_1channel": "Canal del interruptor inteligente 1",
10121
10121
  "switchname_2channel": "Canal del interruptor inteligente 2",
10122
- "switchname_4channel": "Canal del interruptor inteligente 4",
10122
+ "switchname_4channel": "Interruptor de pared remoto de 4 canales",
10123
10123
  "switchonlyonce": "Cambiar de modo sólo está permitido una vez al día.",
10124
10124
  "switchstate1selection": "Interruptor basculante",
10125
10125
  "switchstate2selection": "Interruptor basculante sincronizado",
@@ -11399,7 +11399,7 @@ export default {
11399
11399
  "switchmodule_typesettingdescription": "Lüliti oleku sätte konfigureerimine",
11400
11400
  "switchname_1channel": "Nutikas lüliti 1 kanal",
11401
11401
  "switchname_2channel": "Nutikas lüliti 2 kanaliga",
11402
- "switchname_4channel": "Nutikas lüliti 4 kanaliga",
11402
+ "switchname_4channel": "4-kanaliga kaugjuhtimisega seinalüliti",
11403
11403
  "switchonlyonce": "Režiimi vahetamine on lubatud ainult üks kord päevas.",
11404
11404
  "switchstate1selection": "Klahvlüliti",
11405
11405
  "switchstate2selection": "Sünkroniseeritud klahvlüliti",
@@ -12679,7 +12679,7 @@ export default {
12679
12679
  "switchmodule_typesettingdescription": "Kytkimen tila-asetuksen määrittäminen",
12680
12680
  "switchname_1channel": "Älykytkin 1 kanava",
12681
12681
  "switchname_2channel": "Älykytkin 2 kanava",
12682
- "switchname_4channel": "Älykytkin 4 kanava",
12682
+ "switchname_4channel": "4-kanavainen kaukosäädin seinään",
12683
12683
  "switchonlyonce": "Tilan vaihtaminen on sallittua vain kerran päivässä.",
12684
12684
  "switchstate1selection": "Keinukytkin",
12685
12685
  "switchstate2selection": "Synkronoitu keinukytkin",
@@ -13959,7 +13959,7 @@ export default {
13959
13959
  "switchmodule_typesettingdescription": "Définir le mode de l'interrupteur",
13960
13960
  "switchname_1channel": "Canal 1 de l'interrupteur",
13961
13961
  "switchname_2channel": "Canal 2 de l'interrupteur",
13962
- "switchname_4channel": "Canal 4 de l'interrupteur",
13962
+ "switchname_4channel": "Interrupteur mural à distance 4 canaux",
13963
13963
  "switchonlyonce": "Le changement de mode n'est possible qu'une fois par jour.",
13964
13964
  "switchstate1selection": "Interrupteur",
13965
13965
  "switchstate2selection": "Interrupteur synchronisé",
@@ -15239,7 +15239,7 @@ export default {
15239
15239
  "switchmodule_typesettingdescription": "Konfiguriranje postavke stanja prekidača",
15240
15240
  "switchname_1channel": "Pametni prekidač 1 kanal",
15241
15241
  "switchname_2channel": "Pametni prekidač 2 kanal",
15242
- "switchname_4channel": "Pametni prekidač 4 kanala",
15242
+ "switchname_4channel": "4-kanalni daljinski zidni prekidač",
15243
15243
  "switchonlyonce": "Prebacivanje načina rada dopušteno je samo jednom dnevno.",
15244
15244
  "switchstate1selection": "Preklopni prekidač",
15245
15245
  "switchstate2selection": "Sinkronizirani preklopni prekidač",
@@ -16519,7 +16519,7 @@ export default {
16519
16519
  "switchmodule_typesettingdescription": "A kapcsolóállapot beállításának konfigurálása",
16520
16520
  "switchname_1channel": "Intelligens kapcsoló, 1 csatorna",
16521
16521
  "switchname_2channel": "Intelligens kapcsoló, 2 csatorna",
16522
- "switchname_4channel": "Intelligens kapcsoló, 4 csatorna",
16522
+ "switchname_4channel": "4 csatornás távoli fali kapcsoló",
16523
16523
  "switchonlyonce": "Az üzemmódváltás naponta csak egyszer engedélyezett.",
16524
16524
  "switchstate1selection": "Billenőkapcsoló",
16525
16525
  "switchstate2selection": "Szinkronizált billenőkapcsoló",
@@ -17799,7 +17799,7 @@ export default {
17799
17799
  "switchmodule_typesettingdescription": "Per configurare le impostazioni dello stato dell'interruttore",
17800
17800
  "switchname_1channel": "Interruttore smart 1 canale",
17801
17801
  "switchname_2channel": "Interruttore smart 2 canale",
17802
- "switchname_4channel": "Interruttore smart 4 canale",
17802
+ "switchname_4channel": "Interruttore a parete remoto a 4 canali",
17803
17803
  "switchonlyonce": "Il cambio di modalità è consentito solo una volta al giorno.",
17804
17804
  "switchstate1selection": "Interruttore a bilanciere",
17805
17805
  "switchstate2selection": "Interruttore a bilanciere sincronizzato",
@@ -19079,7 +19079,7 @@ export default {
19079
19079
  "switchmodule_typesettingdescription": "스위치 상태 설정을 구성하려면",
19080
19080
  "switchname_1channel": "스마트 스위치 1채널",
19081
19081
  "switchname_2channel": "스마트 스위치 2채널",
19082
- "switchname_4channel": "스마트 스위치 4채널",
19082
+ "switchname_4channel": "4채널 원격 벽 스위치",
19083
19083
  "switchonlyonce": "모드 전환은 하루에 한 번만 허용됩니다.",
19084
19084
  "switchstate1selection": "로커 스위치",
19085
19085
  "switchstate2selection": "싱크로나이즈드 로커 스위치",
@@ -20359,7 +20359,7 @@ export default {
20359
20359
  "switchmodule_typesettingdescription": "Perjungimo būsenos nustatymo konfigūravimas",
20360
20360
  "switchname_1channel": "Išmanusis jungiklis 1 kanalas",
20361
20361
  "switchname_2channel": "Išmanusis jungiklis 2 kanalas",
20362
- "switchname_4channel": "Išmanusis jungiklis 4 kanalas",
20362
+ "switchname_4channel": "4 kanalų nuotolinis sieninis jungiklis",
20363
20363
  "switchonlyonce": "Režimo perjungimas leidžiamas tik kartą per dieną.",
20364
20364
  "switchstate1selection": "Svirtinis jungiklis",
20365
20365
  "switchstate2selection": "Sinchronizuotas svirties jungiklis",
@@ -21639,7 +21639,7 @@ export default {
21639
21639
  "switchmodule_typesettingdescription": "Lai konfigurētu slēdža stāvokļa iestatījumu",
21640
21640
  "switchname_1channel": "Viedais slēdzis 1 kanāls",
21641
21641
  "switchname_2channel": "Smart switch 2 kanāls",
21642
- "switchname_4channel": "Viedais slēdzis 4 kanāls",
21642
+ "switchname_4channel": "4 kanālu tālvadības sienas slēdzis",
21643
21643
  "switchonlyonce": "Režīmu pārslēgšana ir atļauta tikai vienu reizi dienā.",
21644
21644
  "switchstate1selection": "Pārslēdzējs",
21645
21645
  "switchstate2selection": "Sinhronizēts slēdzis",
@@ -22919,7 +22919,7 @@ export default {
22919
22919
  "switchmodule_typesettingdescription": "Slik konfigurerer du innstillingen for bryterstatus",
22920
22920
  "switchname_1channel": "Smartbryter 1 kanal",
22921
22921
  "switchname_2channel": "Smartbryter 2 kanal",
22922
- "switchname_4channel": "Smartbryter 4 kanal",
22922
+ "switchname_4channel": "4-kanals fjernkontroll for veggmontering",
22923
22923
  "switchonlyonce": "Det er bare tillatt å bytte modus én gang om dagen.",
22924
22924
  "switchstate1selection": "Vippebryter",
22925
22925
  "switchstate2selection": "Synkronisert vippebryter",
@@ -24199,7 +24199,7 @@ export default {
24199
24199
  "switchmodule_typesettingdescription": "Om de schakelaarstatus in te stellen",
24200
24200
  "switchname_1channel": "Slimme schakelaar 1 kanaal",
24201
24201
  "switchname_2channel": "Slimme schakelaar 2 kanalen",
24202
- "switchname_4channel": "Slimme schakelaar 4 kanalen",
24202
+ "switchname_4channel": "4-kanaals afstandsbediening voor wandmontage",
24203
24203
  "switchonlyonce": "Je kunt maar één keer per dag van modus wisselen.",
24204
24204
  "switchstate1selection": "Tuimelschakelaar",
24205
24205
  "switchstate2selection": "Gesynchroniseerde tuimelschakelaar",
@@ -25479,7 +25479,7 @@ export default {
25479
25479
  "switchmodule_typesettingdescription": "Aby skonfigurować ustawienie stanu przełącznika",
25480
25480
  "switchname_1channel": "Inteligentny przełącznik 1 kanał",
25481
25481
  "switchname_2channel": "Inteligentny przełącznik 2-kanałowy",
25482
- "switchname_4channel": "Inteligentny przełącznik 4-kanałowy",
25482
+ "switchname_4channel": "4-kanałowy zdalny przełącznik ścienny",
25483
25483
  "switchonlyonce": "Przełączanie trybu jest dozwolone tylko raz dziennie.",
25484
25484
  "switchstate1selection": "Przełącznik kołyskowy",
25485
25485
  "switchstate2selection": "Zsynchronizowany przełącznik kołyskowy",
@@ -26759,7 +26759,7 @@ export default {
26759
26759
  "switchmodule_typesettingdescription": "Para definir a configuração do estado do switch",
26760
26760
  "switchname_1channel": "Interruptor inteligente de 1 canal",
26761
26761
  "switchname_2channel": "Interruptor inteligente de 2 canais",
26762
- "switchname_4channel": "Interruptor inteligente de 4 canais",
26762
+ "switchname_4channel": "Interruptor de parede remoto de 4 canais",
26763
26763
  "switchonlyonce": "Mudar o modo só é permitido uma vez por dia.",
26764
26764
  "switchstate1selection": "Interruptor basculante",
26765
26765
  "switchstate2selection": "Interruptor basculante sincronizado",
@@ -28039,7 +28039,7 @@ export default {
28039
28039
  "switchmodule_typesettingdescription": "Pentru a configura setarea stării comutatorului",
28040
28040
  "switchname_1channel": "Comutator inteligent cu 1 canal",
28041
28041
  "switchname_2channel": "Comutator inteligent cu 2 canale",
28042
- "switchname_4channel": "Comutator inteligent cu 4 canale",
28042
+ "switchname_4channel": "Comutator de perete cu 4 canale",
28043
28043
  "switchonlyonce": "Comutarea modului este permisă numai o dată pe zi.",
28044
28044
  "switchstate1selection": "Comutator basculant",
28045
28045
  "switchstate2selection": "Comutator basculant sincronizat",
@@ -29319,7 +29319,7 @@ export default {
29319
29319
  "switchmodule_typesettingdescription": "Чтобы настроить параметр состояния коммутатора",
29320
29320
  "switchname_1channel": "Умный коммутатор 1 канал",
29321
29321
  "switchname_2channel": "Интеллектуальный коммутатор 2 канала",
29322
- "switchname_4channel": "Интеллектуальный коммутатор 4 канала",
29322
+ "switchname_4channel": "4-канальный настенный выключатель",
29323
29323
  "switchonlyonce": "Переключать режим разрешается только один раз в день.",
29324
29324
  "switchstate1selection": "Кулисный переключатель",
29325
29325
  "switchstate2selection": "Синхронизированный кулисный переключатель",
@@ -30599,7 +30599,7 @@ export default {
30599
30599
  "switchmodule_typesettingdescription": "Konfigurácia nastavenia stavu prepínača",
30600
30600
  "switchname_1channel": "Inteligentný prepínač 1 kanál",
30601
30601
  "switchname_2channel": "Inteligentný prepínač 2 kanálov",
30602
- "switchname_4channel": "Inteligentný prepínač 4 kanál",
30602
+ "switchname_4channel": "4-kanálový diaľkový nástenný vypínač",
30603
30603
  "switchonlyonce": "Prepínanie režimu je povolené len raz denne.",
30604
30604
  "switchstate1selection": "Kolískový spínač",
30605
30605
  "switchstate2selection": "Synchronizovaný kolískový spínač",
@@ -31879,7 +31879,7 @@ export default {
31879
31879
  "switchmodule_typesettingdescription": "Så här konfigurerar du inställningen för växlingsläge",
31880
31880
  "switchname_1channel": "Smart switch 1 kanal",
31881
31881
  "switchname_2channel": "Smart switch 2 kanal",
31882
- "switchname_4channel": "Smart strömbrytare 4 kanal",
31882
+ "switchname_4channel": "4-kanalig fjärrkontroll för vägg",
31883
31883
  "switchonlyonce": "Det är bara tillåtet att byta läge en gång per dag.",
31884
31884
  "switchstate1selection": "Vippbrytare",
31885
31885
  "switchstate2selection": "Synkroniserad vippbrytare",
@@ -33159,7 +33159,7 @@ export default {
33159
33159
  "switchmodule_typesettingdescription": "Anahtar durumu ayarını yapılandırmak için",
33160
33160
  "switchname_1channel": "Akıllı anahtar 1 kanal",
33161
33161
  "switchname_2channel": "Akıllı anahtar 2 kanal",
33162
- "switchname_4channel": "Akıllı anahtar 4 kanal",
33162
+ "switchname_4channel": "4 Kanallı uzaktan duvar anahtarı",
33163
33163
  "switchonlyonce": "Modun değiştirilmesine günde yalnızca bir kez izin verilir.",
33164
33164
  "switchstate1selection": "Salıncak anahtarı",
33165
33165
  "switchstate2selection": "Senkronize sallanan anahtar",
@@ -34439,7 +34439,7 @@ export default {
34439
34439
  "switchmodule_typesettingdescription": "Налаштування режиму перемикача",
34440
34440
  "switchname_1channel": "Розумний перемикач 1 канальний",
34441
34441
  "switchname_2channel": "Розумний перемикач 2 канальний",
34442
- "switchname_4channel": "Розумний перемикач 4 канальний",
34442
+ "switchname_4channel": "4-канальний дистанційний настінний вимикач",
34443
34443
  "switchonlyonce": "Зміна режиму дозволена тільки один раз на добу.",
34444
34444
  "switchstate1selection": "Кулісний перемикач",
34445
34445
  "switchstate2selection": "Синхронізований кулісний перемикач",
@@ -34575,7 +34575,7 @@ export default {
34575
34575
  "add_new_dynamic_mood_alert_text": "已达到最大字符数限制。",
34576
34576
  "add_new_dynamic_mood_ceiling_fan_field_headline": "风扇",
34577
34577
  "add_new_dynamic_mood_ceiling_fan_field_text": "速度",
34578
- "add_new_dynamic_mood_color_changing_mode_headline": "颜色变化方式",
34578
+ "add_new_dynamic_mood_color_changing_mode_headline": "变化方式",
34579
34579
  "add_new_dynamic_mood_color_changing_mode_value": "渐变",
34580
34580
  "add_new_dynamic_mood_color_changing_mode_value2": "跳变",
34581
34581
  "add_new_dynamic_mood_description_text": "您想以现有的氛围设置作为起点吗?",
@@ -34657,7 +34657,7 @@ export default {
34657
34657
  "bio_ryhthm_default_field_text3": "阳光",
34658
34658
  "bio_ryhthm_default_field_text4": "舒适",
34659
34659
  "bio_ryhthm_default_field_text5": "夜灯",
34660
- "bio_ryhthm_default_selectionfield_topic_text": "颜色变化方式",
34660
+ "bio_ryhthm_default_selectionfield_topic_text": "变化方式",
34661
34661
  "bio_ryhthm_default_subheadline_text": "触发时间",
34662
34662
  "bio_ryhthm_default_weekday1_text": "星期一",
34663
34663
  "bio_ryhthm_default_weekday2_text": "星期二",
@@ -34818,10 +34818,10 @@ export default {
34818
34818
  "ceiling_fan_mode_info_description_text": "风扇具备两种运行模式:",
34819
34819
  "ceiling_fan_mode_info_headline": "模式信息",
34820
34820
  "ceiling_fan_mode_info_option_1_headline": "经典",
34821
- "ceiling_fan_mode_info_option_1_text": "风扇可以保持用户设定的恒定速度。",
34821
+ "ceiling_fan_mode_info_option_1_text": "风扇可以设置恒定转速,具体转速由用户设定。",
34822
34822
  "ceiling_fan_mode_info_option_2_headline": "自然",
34823
34823
  "ceiling_fan_mode_info_option_2_text": "风扇会变速以模拟自然风。",
34824
- "ceiling_fan_mode_info_option_3_text": "风扇可以保持用户设定的恒定速度。",
34824
+ "ceiling_fan_mode_info_option_3_text": "风扇可以设置恒定转速,具体转速由用户设定。",
34825
34825
  "ceiling_fan_tile_uvc_fan_direction": "方向",
34826
34826
  "ceiling_fan_tile_uvc_fan_direction_opt_1": "夏天",
34827
34827
  "ceiling_fan_tile_uvc_fan_direction_opt_2": "冬天",
@@ -34835,7 +34835,7 @@ export default {
34835
34835
  "chart_legend_consumption": "消耗",
34836
34836
  "chart_legend_generation": "发电",
34837
34837
  "chartdisplay_energy": "能量",
34838
- "chartdisplay_power": "电源",
34838
+ "chartdisplay_power": "功率",
34839
34839
  "charttime_type1": "24 h",
34840
34840
  "charttime_type2": "6 h",
34841
34841
  "charttime_type3": "1 小时",
@@ -34895,8 +34895,8 @@ export default {
34895
34895
  "consumption_data_field2_value_text1": "功率(W)",
34896
34896
  "consumption_data_field2_value_text2": "电流(mA)",
34897
34897
  "consumption_data_field2_value_text3": "电压(V)",
34898
- "consumption_data_field3_button_text": "设定价格/千瓦时",
34899
- "consumption_data_field3_co2_inforamtion_decription_text": "CO2e(也写作二氧化碳当量、CO2当量或CO2eq)是一种度量标准,用于根据全球变暖潜力(GWP)比较各种温室气体的排放量,通过将其他气体的量转换为等量的CO2。二氧化碳当量通常以百万公吨的二氧化碳当量表示,但也常见于克或千克。为了计算节省的CO2e,我们使用每个国家的能源组合和每千瓦时的CO2e排放量。数据来源于:https://ourworldindata.org/grapher/carbon-intensity-electricity?",
34898
+ "consumption_data_field3_button_text": "设置价格/千瓦时",
34899
+ "consumption_data_field3_co2_inforamtion_decription_text": "CO2e(也写作二氧化碳当量、CO2当量或CO2eq)是一种度量标准,用于根据全球变暖潜力(GWP)比较各种温室气体的排放量,通过将其他气体的量转换为等量的CO2. 二氧化碳当量通常以百万公吨的二氧化碳当量表示,但也常见于克或千克. 为了计算节省的CO2e,我们使用每个国家的能源组合和每千瓦时的CO2e排放量. 数据来源于:https://ourworldindata.org/grapher/carbon-intensity-electricity?",
34900
34900
  "consumption_data_field3_co2_topic_headline": "CO2当量的计算方式:",
34901
34901
  "consumption_data_field3_co2_topic_text": "节省的CO2当量",
34902
34902
  "consumption_data_field3_headline_text": "总能量",
@@ -34910,7 +34910,7 @@ export default {
34910
34910
  "consumption_data_field4_month2_value_text": "二月",
34911
34911
  "consumption_data_field4_month3_value_text": "三月",
34912
34912
  "consumption_data_field4_month4_value_text": "四月",
34913
- "consumption_data_field4_month5_value_text": "五月",
34913
+ "consumption_data_field4_month5_value_text": "5月",
34914
34914
  "consumption_data_field4_month6_value_text": "六月",
34915
34915
  "consumption_data_field4_month7_value_text": "七月",
34916
34916
  "consumption_data_field4_month8_value_text": "八月",
@@ -35031,14 +35031,14 @@ export default {
35031
35031
  "country_england": "英格兰",
35032
35032
  "country_gb": "大不列颠",
35033
35033
  "country_ir": "伊朗",
35034
- "country_north_macedonia": "North Macedonia",
35035
- "country_northern_ireland": "Northern Ireland",
35034
+ "country_north_macedonia": "北马其顿",
35035
+ "country_northern_ireland": "北爱尔兰",
35036
35036
  "country_pe": "秘鲁",
35037
35037
  "country_scotland": "苏格兰",
35038
35038
  "country_selection_textfield_headline_search": "搜索",
35039
35039
  "country_sy": "叙利亚",
35040
- "country_wales": "Wales",
35041
- "country_werder_bremen": "Werder Bremen",
35040
+ "country_wales": "威尔士",
35041
+ "country_werder_bremen": "云达不莱梅",
35042
35042
  "curation_calibration_callibrate_btn_text": "校准",
35043
35043
  "curation_calibration_nextbtn_text": "下一步",
35044
35044
  "current_temp_humidity": "当前土壤温度和湿度",
@@ -35212,12 +35212,12 @@ export default {
35212
35212
  "hybrid_switchstate_setting3_description": "开关按钮",
35213
35213
  "hybrid_switchstate_setting_text": "开关状态设置",
35214
35214
  "hybrid_switchstate_title": "开关状态",
35215
- "infobutton_fixedtimecycle": "定时计划功能可让您的SMART+设备按设定间隔反复开关。**\n设定循环时长后,设备将自动切换状态直至您手动停止。\n\n定时计划可实现:\n\n* 定义开关机时长(例如:开机5分钟/关机10分钟)\n* 自动执行循环操作\n* 随时暂停或终止循环\n\n**提示:**特别适用于需要定时供电的设备。",
35215
+ "infobutton_fixedtimecycle": "循环定时功能可让您的SMART+设备按设置间隔反复开关。**\n设置循环时长后,设备将自动切换状态直至您手动停止。\n\n循环定时功能可实现:\n\n* 定义开关机时长(例如:开机5分钟/关机10分钟)\n* 自动执行循环操作\n* 随时暂停或终止循环\n\n**提示:**特别适用于需要定时供电的设备。",
35216
35216
  "infobutton_history": "历史记录功能可追溯设备过去7天内所有手动开关操作。\n精准显示设备启闭时间,助您掌握近期使用动态。\n\n功能亮点:\n\n* 查看上周所有手动开关记录\n* 监测设备使用频率\n* 及时发现异常活动\n\n**注意:**\n历史记录仅记录手动操作,且仅覆盖最近7天数据。",
35217
35217
  "infobutton_poweronbehavior": "通电行为可自定义设备通电时的响应模式:\n断电后或插电时,设备可自动开启、保持关闭,或恢复至断电前的状态。\n\n操作选项:\n\n* 选择**始终开启**:设备即刻通电\n* 选择**始终关闭**:通电后保持关机状态\n* 选择**恢复上次状态**:还原先前开/关状态\n* 可为每台设备单独调整设置\n\n**注意:**\n此功能确保设备在断电后行为可预测,避免意外切换。",
35218
- "infobutton_randomtimecycle": "随机定时计划可在您设定的时段内,以不可预测的间隔自动开启/关闭 SMART+ 设备。\n此功能可营造自然且不重复的运行模式。\n\n随机定时计划支持:\n\n* 设定随机开关时段\n* 实现插座不可预测的开关状态\n* 离家时模拟家中有人状态\n\n**小贴士:**特别适用于模拟人居状态的照明场景。",
35219
- "infobutton_timer": "定时器功能可在设定倒计时结束后自动开启或关闭设备。\n设定计时长度,时间结束后设备将自动执行操作。\n\n功能说明:\n\n* 设置单次倒计时(分钟或小时)\n* 触发自动开关机操作\n* 无需创建计划即可实现临时自动化\n* 可随时取消或修改倒计时\n\n**注意:**\n计时器仅执行一次,除非重新设置否则不会重复。",
35220
- "infobutton_timeschedule": "定时计划功能可通过设定特定开关时间实现设备自动化。\n创建每日或每周例行任务,让您的SMART+设备自动运行——无需手动控制。\n\n定时计划功能支持:\n\n* 在指定时间开启/关闭设备\n* 为不同日期创建多重计划\n* 设置循环例程(如工作日/周末)\n* 集中管理所有计划任务\n\n**提示:**请确保设备保持联网状态,以保障计划可靠运行。\n\n功能亮点:\n\n* 设置单次或循环计划\n* 选择特定星期几\n* 通过\"开关建议\"快速创建新条目\n* 在单一时间轴查看所有计划\n* 临时禁用计划而不删除",
35218
+ "infobutton_randomtimecycle": "随机定时计划可在您设置的时段内,以不可预测的间隔自动开启/关闭 SMART+ 设备。\n此功能可营造自然且不重复的运行模式。\n\n随机定时计划支持:\n\n* 设置随机开关时段\n* 实现插座不可预测的开关状态\n* 离家时模拟家中有人状态\n\n**小贴士:**特别适用于模拟人居状态的照明场景。",
35219
+ "infobutton_timer": "倒计时功能可在设置倒计时结束后自动开启或关闭设备。\n设置计时长度,时间结束后设备将自动执行操作。\n\n功能说明:\n\n* 设置单次倒计时(分钟或小时)\n* 触发自动开关机操作\n* 无需创建计划即可实现临时自动化\n* 可随时取消或修改倒计时\n\n**注意:**\n计时器仅执行一次,除非重新设置否则不会重复。",
35220
+ "infobutton_timeschedule": "定时计划功能可通过设置特定开关时间实现设备自动化。\n创建每日或每周例行任务,让您的SMART+设备自动运行——无需手动控制。\n\n定时计划功能支持:\n\n* 在指定时间开启/关闭设备\n* 为不同日期创建多重计划\n* 设置循环例程(如工作日/周末)\n* 集中管理所有计划任务\n\n**提示:**请确保设备保持联网状态,以保障计划可靠运行。\n\n功能亮点:\n\n* 设置单次或循环计划\n* 选择特定星期几\n* 通过\"开关建议\"快速创建新条目\n* 在单一时间轴查看所有计划\n* 临时禁用计划而不删除",
35221
35221
  "infobutton_totalenergy": "总能量仅显示上次重置后的总消耗/生成数据。\n数据在以下日期切换:",
35222
35222
  "intermittent_time": "间歇时间",
35223
35223
  "internet_access": "互联网访问",
@@ -35305,7 +35305,7 @@ export default {
35305
35305
  "month_short_july": "7月",
35306
35306
  "month_short_june": "6月",
35307
35307
  "month_short_march": "3月",
35308
- "month_short_may": "五月",
35308
+ "month_short_may": "5月",
35309
35309
  "month_short_november": "11月",
35310
35310
  "month_short_october": "10月",
35311
35311
  "month_short_september": "9月",
@@ -35360,7 +35360,7 @@ export default {
35360
35360
  "mood_strip_default_mood_sunset": "日落",
35361
35361
  "mood_strip_default_mood_wake_time": "唤醒时间",
35362
35362
  "mood_strip_default_mood_warmth": "温暖",
35363
- "mood_strip_mode_favorite": "最喜欢",
35363
+ "mood_strip_mode_favorite": "收藏",
35364
35364
  "motion_detection_add_time_schedule_actions_text1": "操作",
35365
35365
  "motion_detection_add_time_schedule_headline_text": "添加新定时计划",
35366
35366
  "motion_detection_add_time_schedule_selectionfield_text": "名称",
@@ -35593,7 +35593,7 @@ export default {
35593
35593
  "spray": "喷雾",
35594
35594
  "spray_by_quantity": "按数量",
35595
35595
  "spray_on_time": "按时间表",
35596
- "standby_light_information_text": "激活“待机灯”选项后,主灯关闭后照明将进入待机模式。可以为待机灯设置时间限制。如果没有时间限制,待机灯将保持开启状态,直到环境光超过设定的照度值。",
35596
+ "standby_light_information_text": "激活“待机灯”选项后,主灯关闭后照明将进入待机模式。可以为待机灯设置时间限制。如果没有时间限制,待机灯将保持开启状态,直到环境光超过设置的照度值。",
35597
35597
  "string_light_pp_dialog_sm_add_headline_c": "你确定要取消添加新情景吗?",
35598
35598
  "string_light_pp_dialog_sm_ed_headline_d": "你真的要删除这个氛围吗?",
35599
35599
  "string_light_pp_field_sm_add_error1": "该名称已被使用。",
@@ -35719,7 +35719,7 @@ export default {
35719
35719
  "switchmodule_typesettingdescription": "配置开关状态设置",
35720
35720
  "switchname_1channel": "智能开关1通道",
35721
35721
  "switchname_2channel": "智能开关2通道",
35722
- "switchname_4channel": "智能开关4通道",
35722
+ "switchname_4channel": "4路遥控无线开关",
35723
35723
  "switchonlyonce": "模式切换每天只允许一次。",
35724
35724
  "switchstate1selection": "摇杆开关",
35725
35725
  "switchstate2selection": "同步摇杆开关",
@@ -35773,7 +35773,7 @@ export default {
35773
35773
  "thermostat_warm": "舒适",
35774
35774
  "third_irrigation": "第三次灌溉",
35775
35775
  "time_format": "时间格式",
35776
- "time_unit_h": "H",
35776
+ "time_unit_h": "小时",
35777
35777
  "timer_ceiling_fan_headline_text": "倒计时",
35778
35778
  "timer_ceiling_fan_lighting_switched_off_text": "灯将于{0}左右关闭",
35779
35779
  "timer_ceiling_fan_lighting_switched_on_text": "灯光将在大约{0}时开启",
@@ -36999,7 +36999,7 @@ export default {
36999
36999
  "switchmodule_typesettingdescription": "Para definir a configuração do estado do switch",
37000
37000
  "switchname_1channel": "Interruptor inteligente de 1 canal",
37001
37001
  "switchname_2channel": "Interruptor inteligente de 2 canais",
37002
- "switchname_4channel": "Interruptor inteligente de 4 canais",
37002
+ "switchname_4channel": "Interruptor de parede remoto de 4 canais",
37003
37003
  "switchonlyonce": "Mudar o modo só é permitido uma vez por dia.",
37004
37004
  "switchstate1selection": "Interruptor basculante",
37005
37005
  "switchstate2selection": "Interruptor basculante sincronizado",
@@ -37135,7 +37135,7 @@ export default {
37135
37135
  "add_new_dynamic_mood_alert_text": "已达到最大字符数限制。",
37136
37136
  "add_new_dynamic_mood_ceiling_fan_field_headline": "风扇",
37137
37137
  "add_new_dynamic_mood_ceiling_fan_field_text": "速度",
37138
- "add_new_dynamic_mood_color_changing_mode_headline": "颜色变化方式",
37138
+ "add_new_dynamic_mood_color_changing_mode_headline": "变化方式",
37139
37139
  "add_new_dynamic_mood_color_changing_mode_value": "渐变",
37140
37140
  "add_new_dynamic_mood_color_changing_mode_value2": "跳变",
37141
37141
  "add_new_dynamic_mood_description_text": "您想以现有的氛围设置作为起点吗?",
@@ -37217,7 +37217,7 @@ export default {
37217
37217
  "bio_ryhthm_default_field_text3": "阳光",
37218
37218
  "bio_ryhthm_default_field_text4": "舒适",
37219
37219
  "bio_ryhthm_default_field_text5": "夜灯",
37220
- "bio_ryhthm_default_selectionfield_topic_text": "颜色变化方式",
37220
+ "bio_ryhthm_default_selectionfield_topic_text": "变化方式",
37221
37221
  "bio_ryhthm_default_subheadline_text": "触发时间",
37222
37222
  "bio_ryhthm_default_weekday1_text": "星期一",
37223
37223
  "bio_ryhthm_default_weekday2_text": "星期二",
@@ -37378,10 +37378,10 @@ export default {
37378
37378
  "ceiling_fan_mode_info_description_text": "风扇具备两种运行模式:",
37379
37379
  "ceiling_fan_mode_info_headline": "模式信息",
37380
37380
  "ceiling_fan_mode_info_option_1_headline": "经典",
37381
- "ceiling_fan_mode_info_option_1_text": "风扇可以保持用户设定的恒定速度。",
37381
+ "ceiling_fan_mode_info_option_1_text": "风扇可以设置恒定转速,具体转速由用户设定。",
37382
37382
  "ceiling_fan_mode_info_option_2_headline": "自然",
37383
37383
  "ceiling_fan_mode_info_option_2_text": "风扇会变速以模拟自然风。",
37384
- "ceiling_fan_mode_info_option_3_text": "风扇可以保持用户设定的恒定速度。",
37384
+ "ceiling_fan_mode_info_option_3_text": "风扇可以设置恒定转速,具体转速由用户设定。",
37385
37385
  "ceiling_fan_tile_uvc_fan_direction": "方向",
37386
37386
  "ceiling_fan_tile_uvc_fan_direction_opt_1": "夏天",
37387
37387
  "ceiling_fan_tile_uvc_fan_direction_opt_2": "冬天",
@@ -37395,7 +37395,7 @@ export default {
37395
37395
  "chart_legend_consumption": "消耗",
37396
37396
  "chart_legend_generation": "发电",
37397
37397
  "chartdisplay_energy": "能量",
37398
- "chartdisplay_power": "电源",
37398
+ "chartdisplay_power": "功率",
37399
37399
  "charttime_type1": "24 h",
37400
37400
  "charttime_type2": "6 h",
37401
37401
  "charttime_type3": "1 小时",
@@ -37455,8 +37455,8 @@ export default {
37455
37455
  "consumption_data_field2_value_text1": "功率(W)",
37456
37456
  "consumption_data_field2_value_text2": "电流(mA)",
37457
37457
  "consumption_data_field2_value_text3": "电压(V)",
37458
- "consumption_data_field3_button_text": "设定价格/千瓦时",
37459
- "consumption_data_field3_co2_inforamtion_decription_text": "CO2e(也写作二氧化碳当量、CO2当量或CO2eq)是一种度量标准,用于根据全球变暖潜力(GWP)比较各种温室气体的排放量,通过将其他气体的量转换为等量的CO2。二氧化碳当量通常以百万公吨的二氧化碳当量表示,但也常见于克或千克。为了计算节省的CO2e,我们使用每个国家的能源组合和每千瓦时的CO2e排放量。数据来源于:https://ourworldindata.org/grapher/carbon-intensity-electricity?",
37458
+ "consumption_data_field3_button_text": "设置价格/千瓦时",
37459
+ "consumption_data_field3_co2_inforamtion_decription_text": "CO2e(也写作二氧化碳当量、CO2当量或CO2eq)是一种度量标准,用于根据全球变暖潜力(GWP)比较各种温室气体的排放量,通过将其他气体的量转换为等量的CO2. 二氧化碳当量通常以百万公吨的二氧化碳当量表示,但也常见于克或千克. 为了计算节省的CO2e,我们使用每个国家的能源组合和每千瓦时的CO2e排放量. 数据来源于:https://ourworldindata.org/grapher/carbon-intensity-electricity?",
37460
37460
  "consumption_data_field3_co2_topic_headline": "CO2当量的计算方式:",
37461
37461
  "consumption_data_field3_co2_topic_text": "节省的CO2当量",
37462
37462
  "consumption_data_field3_headline_text": "总能量",
@@ -37470,7 +37470,7 @@ export default {
37470
37470
  "consumption_data_field4_month2_value_text": "二月",
37471
37471
  "consumption_data_field4_month3_value_text": "三月",
37472
37472
  "consumption_data_field4_month4_value_text": "四月",
37473
- "consumption_data_field4_month5_value_text": "五月",
37473
+ "consumption_data_field4_month5_value_text": "5月",
37474
37474
  "consumption_data_field4_month6_value_text": "六月",
37475
37475
  "consumption_data_field4_month7_value_text": "七月",
37476
37476
  "consumption_data_field4_month8_value_text": "八月",
@@ -37591,14 +37591,14 @@ export default {
37591
37591
  "country_england": "英格兰",
37592
37592
  "country_gb": "大不列颠",
37593
37593
  "country_ir": "伊朗",
37594
- "country_north_macedonia": "North Macedonia",
37595
- "country_northern_ireland": "Northern Ireland",
37594
+ "country_north_macedonia": "北马其顿",
37595
+ "country_northern_ireland": "北爱尔兰",
37596
37596
  "country_pe": "秘鲁",
37597
37597
  "country_scotland": "苏格兰",
37598
37598
  "country_selection_textfield_headline_search": "搜索",
37599
37599
  "country_sy": "叙利亚",
37600
- "country_wales": "Wales",
37601
- "country_werder_bremen": "Werder Bremen",
37600
+ "country_wales": "威尔士",
37601
+ "country_werder_bremen": "云达不莱梅",
37602
37602
  "curation_calibration_callibrate_btn_text": "校准",
37603
37603
  "curation_calibration_nextbtn_text": "下一步",
37604
37604
  "current_temp_humidity": "当前土壤温度和湿度",
@@ -37772,12 +37772,12 @@ export default {
37772
37772
  "hybrid_switchstate_setting3_description": "开关按钮",
37773
37773
  "hybrid_switchstate_setting_text": "开关状态设置",
37774
37774
  "hybrid_switchstate_title": "开关状态",
37775
- "infobutton_fixedtimecycle": "定时计划功能可让您的SMART+设备按设定间隔反复开关。**\n设定循环时长后,设备将自动切换状态直至您手动停止。\n\n定时计划可实现:\n\n* 定义开关机时长(例如:开机5分钟/关机10分钟)\n* 自动执行循环操作\n* 随时暂停或终止循环\n\n**提示:**特别适用于需要定时供电的设备。",
37775
+ "infobutton_fixedtimecycle": "循环定时功能可让您的SMART+设备按设置间隔反复开关。**\n设置循环时长后,设备将自动切换状态直至您手动停止。\n\n循环定时功能可实现:\n\n* 定义开关机时长(例如:开机5分钟/关机10分钟)\n* 自动执行循环操作\n* 随时暂停或终止循环\n\n**提示:**特别适用于需要定时供电的设备。",
37776
37776
  "infobutton_history": "历史记录功能可追溯设备过去7天内所有手动开关操作。\n精准显示设备启闭时间,助您掌握近期使用动态。\n\n功能亮点:\n\n* 查看上周所有手动开关记录\n* 监测设备使用频率\n* 及时发现异常活动\n\n**注意:**\n历史记录仅记录手动操作,且仅覆盖最近7天数据。",
37777
37777
  "infobutton_poweronbehavior": "通电行为可自定义设备通电时的响应模式:\n断电后或插电时,设备可自动开启、保持关闭,或恢复至断电前的状态。\n\n操作选项:\n\n* 选择**始终开启**:设备即刻通电\n* 选择**始终关闭**:通电后保持关机状态\n* 选择**恢复上次状态**:还原先前开/关状态\n* 可为每台设备单独调整设置\n\n**注意:**\n此功能确保设备在断电后行为可预测,避免意外切换。",
37778
- "infobutton_randomtimecycle": "随机定时计划可在您设定的时段内,以不可预测的间隔自动开启/关闭 SMART+ 设备。\n此功能可营造自然且不重复的运行模式。\n\n随机定时计划支持:\n\n* 设定随机开关时段\n* 实现插座不可预测的开关状态\n* 离家时模拟家中有人状态\n\n**小贴士:**特别适用于模拟人居状态的照明场景。",
37779
- "infobutton_timer": "定时器功能可在设定倒计时结束后自动开启或关闭设备。\n设定计时长度,时间结束后设备将自动执行操作。\n\n功能说明:\n\n* 设置单次倒计时(分钟或小时)\n* 触发自动开关机操作\n* 无需创建计划即可实现临时自动化\n* 可随时取消或修改倒计时\n\n**注意:**\n计时器仅执行一次,除非重新设置否则不会重复。",
37780
- "infobutton_timeschedule": "定时计划功能可通过设定特定开关时间实现设备自动化。\n创建每日或每周例行任务,让您的SMART+设备自动运行——无需手动控制。\n\n定时计划功能支持:\n\n* 在指定时间开启/关闭设备\n* 为不同日期创建多重计划\n* 设置循环例程(如工作日/周末)\n* 集中管理所有计划任务\n\n**提示:**请确保设备保持联网状态,以保障计划可靠运行。\n\n功能亮点:\n\n* 设置单次或循环计划\n* 选择特定星期几\n* 通过\"开关建议\"快速创建新条目\n* 在单一时间轴查看所有计划\n* 临时禁用计划而不删除",
37778
+ "infobutton_randomtimecycle": "随机定时计划可在您设置的时段内,以不可预测的间隔自动开启/关闭 SMART+ 设备。\n此功能可营造自然且不重复的运行模式。\n\n随机定时计划支持:\n\n* 设置随机开关时段\n* 实现插座不可预测的开关状态\n* 离家时模拟家中有人状态\n\n**小贴士:**特别适用于模拟人居状态的照明场景。",
37779
+ "infobutton_timer": "倒计时功能可在设置倒计时结束后自动开启或关闭设备。\n设置计时长度,时间结束后设备将自动执行操作。\n\n功能说明:\n\n* 设置单次倒计时(分钟或小时)\n* 触发自动开关机操作\n* 无需创建计划即可实现临时自动化\n* 可随时取消或修改倒计时\n\n**注意:**\n计时器仅执行一次,除非重新设置否则不会重复。",
37780
+ "infobutton_timeschedule": "定时计划功能可通过设置特定开关时间实现设备自动化。\n创建每日或每周例行任务,让您的SMART+设备自动运行——无需手动控制。\n\n定时计划功能支持:\n\n* 在指定时间开启/关闭设备\n* 为不同日期创建多重计划\n* 设置循环例程(如工作日/周末)\n* 集中管理所有计划任务\n\n**提示:**请确保设备保持联网状态,以保障计划可靠运行。\n\n功能亮点:\n\n* 设置单次或循环计划\n* 选择特定星期几\n* 通过\"开关建议\"快速创建新条目\n* 在单一时间轴查看所有计划\n* 临时禁用计划而不删除",
37781
37781
  "infobutton_totalenergy": "总能量仅显示上次重置后的总消耗/生成数据。\n数据在以下日期切换:",
37782
37782
  "intermittent_time": "间歇时间",
37783
37783
  "internet_access": "互联网访问",
@@ -37865,7 +37865,7 @@ export default {
37865
37865
  "month_short_july": "7月",
37866
37866
  "month_short_june": "6月",
37867
37867
  "month_short_march": "3月",
37868
- "month_short_may": "五月",
37868
+ "month_short_may": "5月",
37869
37869
  "month_short_november": "11月",
37870
37870
  "month_short_october": "10月",
37871
37871
  "month_short_september": "9月",
@@ -37920,7 +37920,7 @@ export default {
37920
37920
  "mood_strip_default_mood_sunset": "日落",
37921
37921
  "mood_strip_default_mood_wake_time": "唤醒时间",
37922
37922
  "mood_strip_default_mood_warmth": "温暖",
37923
- "mood_strip_mode_favorite": "最喜欢",
37923
+ "mood_strip_mode_favorite": "收藏",
37924
37924
  "motion_detection_add_time_schedule_actions_text1": "操作",
37925
37925
  "motion_detection_add_time_schedule_headline_text": "添加新定时计划",
37926
37926
  "motion_detection_add_time_schedule_selectionfield_text": "名称",
@@ -38153,7 +38153,7 @@ export default {
38153
38153
  "spray": "喷雾",
38154
38154
  "spray_by_quantity": "按数量",
38155
38155
  "spray_on_time": "按时间表",
38156
- "standby_light_information_text": "激活“待机灯”选项后,主灯关闭后照明将进入待机模式。可以为待机灯设置时间限制。如果没有时间限制,待机灯将保持开启状态,直到环境光超过设定的照度值。",
38156
+ "standby_light_information_text": "激活“待机灯”选项后,主灯关闭后照明将进入待机模式。可以为待机灯设置时间限制。如果没有时间限制,待机灯将保持开启状态,直到环境光超过设置的照度值。",
38157
38157
  "string_light_pp_dialog_sm_add_headline_c": "你确定要取消添加新情景吗?",
38158
38158
  "string_light_pp_dialog_sm_ed_headline_d": "你真的要删除这个氛围吗?",
38159
38159
  "string_light_pp_field_sm_add_error1": "该名称已被使用。",
@@ -38279,7 +38279,7 @@ export default {
38279
38279
  "switchmodule_typesettingdescription": "配置开关状态设置",
38280
38280
  "switchname_1channel": "智能开关1通道",
38281
38281
  "switchname_2channel": "智能开关2通道",
38282
- "switchname_4channel": "智能开关4通道",
38282
+ "switchname_4channel": "4路遥控无线开关",
38283
38283
  "switchonlyonce": "模式切换每天只允许一次。",
38284
38284
  "switchstate1selection": "摇杆开关",
38285
38285
  "switchstate2selection": "同步摇杆开关",
@@ -38333,7 +38333,7 @@ export default {
38333
38333
  "thermostat_warm": "舒适",
38334
38334
  "third_irrigation": "第三次灌溉",
38335
38335
  "time_format": "时间格式",
38336
- "time_unit_h": "H",
38336
+ "time_unit_h": "小时",
38337
38337
  "timer_ceiling_fan_headline_text": "倒计时",
38338
38338
  "timer_ceiling_fan_lighting_switched_off_text": "灯将于{0}左右关闭",
38339
38339
  "timer_ceiling_fan_lighting_switched_on_text": "灯光将在大约{0}时开启",