homebridge-config-ui-x 5.11.2 → 5.11.3-beta.1
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/CHANGELOG.md +37 -0
- package/dist/core/auth/auth.controller.d.ts +4 -0
- package/dist/core/config/config.interfaces.d.ts +14 -0
- package/dist/core/config/config.service.d.ts +6 -0
- package/dist/core/config/config.service.js +8 -0
- package/dist/core/config/config.service.js.map +1 -1
- package/dist/core/config/config.startup.js +48 -17
- package/dist/core/config/config.startup.js.map +1 -1
- package/dist/core/feature-flags/feature-flags.registry.js +5 -0
- package/dist/core/feature-flags/feature-flags.registry.js.map +1 -1
- package/dist/core/homebridge-ipc/homebridge-ipc.service.js +1 -0
- package/dist/core/homebridge-ipc/homebridge-ipc.service.js.map +1 -1
- package/dist/core/spa/spa-html.service.d.ts +5 -0
- package/dist/core/spa/spa-html.service.js +32 -0
- package/dist/core/spa/spa-html.service.js.map +1 -0
- package/dist/core/spa/spa.filter.d.ts +3 -0
- package/dist/core/spa/spa.filter.js +22 -2
- package/dist/core/spa/spa.filter.js.map +1 -1
- package/dist/core/ssl/ssl-cert-generator.service.d.ts +15 -0
- package/dist/core/ssl/ssl-cert-generator.service.js +125 -0
- package/dist/core/ssl/ssl-cert-generator.service.js.map +1 -0
- package/dist/globalDefaults.js +3 -0
- package/dist/globalDefaults.js.map +1 -1
- package/dist/main.js +18 -4
- package/dist/main.js.map +1 -1
- package/dist/modules/accessories/accessories.controller.d.ts +1 -1
- package/dist/modules/accessories/accessories.interfaces.d.ts +94 -0
- package/dist/modules/accessories/accessories.interfaces.js +2 -0
- package/dist/modules/accessories/accessories.interfaces.js.map +1 -0
- package/dist/modules/accessories/accessories.module.js +2 -0
- package/dist/modules/accessories/accessories.module.js.map +1 -1
- package/dist/modules/accessories/accessories.service.d.ts +21 -3
- package/dist/modules/accessories/accessories.service.js +281 -17
- package/dist/modules/accessories/accessories.service.js.map +1 -1
- package/dist/modules/child-bridges/child-bridges.interfaces.d.ts +9 -0
- package/dist/modules/config-editor/config-editor.controller.d.ts +4 -0
- package/dist/modules/config-editor/config-editor.controller.js +64 -0
- package/dist/modules/config-editor/config-editor.controller.js.map +1 -1
- package/dist/modules/config-editor/config-editor.service.d.ts +6 -1
- package/dist/modules/config-editor/config-editor.service.js +45 -1
- package/dist/modules/config-editor/config-editor.service.js.map +1 -1
- package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js +1 -1
- package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js.map +1 -1
- package/dist/modules/plugins/plugins.module.js +1 -1
- package/dist/modules/plugins/plugins.service.js +17 -2
- package/dist/modules/plugins/plugins.service.js.map +1 -1
- package/dist/modules/server/server.controller.d.ts +50 -0
- package/dist/modules/server/server.controller.js +201 -2
- package/dist/modules/server/server.controller.js.map +1 -1
- package/dist/modules/server/server.service.d.ts +48 -0
- package/dist/modules/server/server.service.js +502 -14
- package/dist/modules/server/server.service.js.map +1 -1
- package/dist/modules/status/status.gateway.d.ts +2 -0
- package/dist/modules/status/status.interfaces.d.ts +11 -0
- package/dist/modules/status/status.service.d.ts +4 -1
- package/dist/modules/status/status.service.js +21 -2
- package/dist/modules/status/status.service.js.map +1 -1
- package/docs/matter-todo.md +15 -0
- package/docs/ssl-upload-pr.md +103 -0
- package/package.json +4 -2
- package/public/3rdpartylicenses.txt +595 -621
- package/public/assets/matter.svg +8 -0
- package/public/assets/plugin-ui-utils/ui.js +3 -0
- package/public/assets/plugin-ui-utils/ui.js.map +1 -1
- package/public/chunk-2VGNMGIR.js +2 -0
- package/public/chunk-33JY67E7.js +1 -0
- package/public/chunk-37PRZWAE.js +1 -0
- package/public/chunk-3ELEQCY4.js +4 -0
- package/public/chunk-3LPAJLVA.js +1 -0
- package/public/chunk-3U5EVF33.js +1 -0
- package/public/chunk-4MTKU45H.js +1 -0
- package/public/chunk-537Z3TZH.js +1 -0
- package/public/chunk-55GLM7AG.js +1 -0
- package/public/chunk-5IUE2SI2.js +1 -0
- package/public/chunk-5PYHJIFL.js +4 -0
- package/public/chunk-6GBRDYWL.js +1 -0
- package/public/chunk-6HBUGTGB.js +1 -0
- package/public/chunk-6IDWI5FN.js +1 -0
- package/public/chunk-6KEEFMT4.js +1 -0
- package/public/chunk-6SGMX4QN.js +1 -0
- package/public/chunk-6U3HDGMV.js +1 -0
- package/public/chunk-7AYXT4NE.js +1 -0
- package/public/chunk-AKPNXV2T.js +3 -0
- package/public/chunk-AQQQXM6K.js +1 -0
- package/public/chunk-ARIUPFP4.js +1 -0
- package/public/chunk-AUK5NDCU.js +1 -0
- package/public/chunk-B4AJQJMI.js +1 -0
- package/public/{chunk-JLZ5WU6N.js → chunk-BMOLDRJ3.js} +1 -1
- package/public/chunk-BU5OWW3D.js +16 -0
- package/public/chunk-BUFOAAED.js +1 -0
- package/public/chunk-CLZZPSYM.js +1 -0
- package/public/chunk-CQ4V3WTB.js +1 -0
- package/public/{chunk-XVO5247V.js → chunk-CRLXCYA4.js} +1 -1
- package/public/chunk-D5RAEI3L.js +1 -0
- package/public/chunk-DE6IO5N6.js +1 -0
- package/public/chunk-DPQ6DNII.js +1 -0
- package/public/chunk-ED2WGY4W.js +1 -0
- package/public/chunk-EPDCL7TG.js +1 -0
- package/public/chunk-EPQ2ZMQD.js +1 -0
- package/public/chunk-ESL5FTKU.js +2 -0
- package/public/chunk-F4XK3SMH.js +1 -0
- package/public/chunk-FCWNINXI.js +1 -0
- package/public/chunk-FENK2NPT.js +1 -0
- package/public/chunk-G6V4QW45.js +68 -0
- package/public/chunk-GVEBFYKG.js +1 -0
- package/public/chunk-H2Z7V5LU.js +8 -0
- package/public/{chunk-N6JGA2PG.js → chunk-H7F7H5MW.js} +1 -1
- package/public/chunk-HDPCCLQH.js +1 -0
- package/public/chunk-HFO4CT77.js +3 -0
- package/public/chunk-HIZVM47C.js +1 -0
- package/public/chunk-HXRHQRO5.js +1 -0
- package/public/chunk-IAVNB5BZ.js +1 -0
- package/public/chunk-IK7P4HIE.js +1 -0
- package/public/{chunk-VKHX6FUQ.js → chunk-J2O4Y2AJ.js} +52 -2
- package/public/chunk-J2PDRU7K.js +1 -0
- package/public/chunk-JI773Q2P.js +1 -0
- package/public/chunk-JUCKIM56.js +1 -0
- package/public/chunk-K2QSSLBW.js +1 -0
- package/public/chunk-K76PH2IQ.js +1 -0
- package/public/chunk-KTJDR6WA.js +1 -0
- package/public/chunk-KW5REXT7.js +1 -0
- package/public/chunk-L24NLXV5.js +1 -0
- package/public/chunk-LQGMFKUY.js +1 -0
- package/public/chunk-LWKX6TVU.js +1 -0
- package/public/chunk-LZZD3ZUF.js +1 -0
- package/public/chunk-M7YKGLGD.js +1 -0
- package/public/chunk-MAYAJLFA.js +1 -0
- package/public/chunk-MIE7YXOK.js +1 -0
- package/public/chunk-MISBXZWW.js +2 -0
- package/public/chunk-MSZSAJPM.js +1 -0
- package/public/chunk-MVGY6YJ7.js +1 -0
- package/public/chunk-N2IIV3LN.js +1 -0
- package/public/chunk-NMDAPSGJ.js +1 -0
- package/public/chunk-NSILEQ2V.js +1 -0
- package/public/chunk-NX6WIDIM.js +1 -0
- package/public/chunk-NYIFHGIW.js +1 -0
- package/public/chunk-O7IN75B3.js +1 -0
- package/public/chunk-OG2B4MZN.js +1 -0
- package/public/chunk-OOZDDKEF.js +1 -0
- package/public/chunk-OQMG62H7.js +1 -0
- package/public/chunk-OT3SPW73.js +1 -0
- package/public/chunk-PEAQRV5O.js +1 -0
- package/public/chunk-QFZRFLTG.js +1 -0
- package/public/chunk-QH4YP6BY.js +5 -0
- package/public/chunk-QML5ZVO6.js +1 -0
- package/public/chunk-QR626DFY.js +1 -0
- package/public/chunk-REC7F4I2.js +1 -0
- package/public/chunk-RJWIR4SV.js +19 -0
- package/public/chunk-RMPSPYKI.js +1 -0
- package/public/chunk-S6WYT7FX.js +1 -0
- package/public/chunk-SCXXKDXZ.js +1 -0
- package/public/chunk-TEJ4HGDV.js +1 -0
- package/public/chunk-TLHI6ZOI.js +1 -0
- package/public/chunk-TQ2YXTGY.js +1 -0
- package/public/chunk-U74DXZLS.js +35 -0
- package/public/chunk-UATGQE6M.js +1 -0
- package/public/chunk-UEO32F46.js +1 -0
- package/public/chunk-V2IZQE54.js +1 -0
- package/public/chunk-V3I3OYT7.js +1 -0
- package/public/chunk-V3YOVD6B.js +1 -0
- package/public/chunk-VDDMHLOW.js +1 -0
- package/public/chunk-VELTPSDH.js +1 -0
- package/public/chunk-VILWJRZL.js +5 -0
- package/public/chunk-VLRP57U3.js +1 -0
- package/public/chunk-VU3376IO.js +1 -0
- package/public/chunk-VX4RXOTH.js +4 -0
- package/public/chunk-WE2SWTKZ.js +1 -0
- package/public/chunk-WRB2RELR.js +1 -0
- package/public/chunk-XKHWVJWA.js +1 -0
- package/public/chunk-XVXDP3DD.js +1 -0
- package/public/chunk-YNJ5T73B.js +1 -0
- package/public/chunk-YTFACH4Z.js +19 -0
- package/public/chunk-ZCGZM7LU.js +1 -0
- package/public/chunk-ZGIZ2UDW.js +1 -0
- package/public/chunk-ZUPFMQG6.js +1 -0
- package/public/chunk-ZUXW4PNF.js +12 -0
- package/public/index.html +2 -2
- package/public/main-XBUEQ7PA.js +1 -0
- package/public/media/matter-P563JGDL.svg +8 -0
- package/public/polyfills-34U4WL3Z.js +1 -0
- package/public/styles-CT2LPGES.css +1 -0
- package/scripts/extract-plugin-alias.js +53 -2
- package/public/chunk-2BB4D4TW.js +0 -1
- package/public/chunk-2GCZ3AMH.js +0 -1
- package/public/chunk-2K5FWBCK.js +0 -8
- package/public/chunk-2LQBMVWH.js +0 -1
- package/public/chunk-34ZN4GVA.js +0 -3
- package/public/chunk-3JW6FD5V.js +0 -1
- package/public/chunk-57XTQ6PK.js +0 -1
- package/public/chunk-5DBV5PYR.js +0 -19
- package/public/chunk-5GKTPXPE.js +0 -1
- package/public/chunk-5X7ARCKG.js +0 -5
- package/public/chunk-67HOYJJ2.js +0 -1
- package/public/chunk-6MZHUZRT.js +0 -4
- package/public/chunk-77CMUO6J.js +0 -1
- package/public/chunk-7LJYL7EH.js +0 -1
- package/public/chunk-7TFBELRD.js +0 -1
- package/public/chunk-AXOHPUQR.js +0 -1
- package/public/chunk-BMAZBLAT.js +0 -1
- package/public/chunk-C554TVZA.js +0 -2
- package/public/chunk-DGDNSN6I.js +0 -1
- package/public/chunk-E6RSPO2D.js +0 -1
- package/public/chunk-ESQ665GW.js +0 -5
- package/public/chunk-G4QH622U.js +0 -5
- package/public/chunk-GKPR5M7S.js +0 -1
- package/public/chunk-GT7UMMFF.js +0 -2
- package/public/chunk-HBIQJCSE.js +0 -1
- package/public/chunk-JSZIAFBJ.js +0 -1
- package/public/chunk-JWQRV434.js +0 -1
- package/public/chunk-JX72JCMA.js +0 -1
- package/public/chunk-KT26K4DO.js +0 -1
- package/public/chunk-L63FND3A.js +0 -1
- package/public/chunk-LSXTHVKB.js +0 -1
- package/public/chunk-N5VXONVW.js +0 -1
- package/public/chunk-NVCJ3EJS.js +0 -1
- package/public/chunk-OPJZWDSO.js +0 -1
- package/public/chunk-OXBXHVWY.js +0 -8
- package/public/chunk-QHROK73U.js +0 -50
- package/public/chunk-QNEXPAIT.js +0 -1
- package/public/chunk-R2G2YWV4.js +0 -51
- package/public/chunk-RCNF365Q.js +0 -1
- package/public/chunk-RT6EDRIH.js +0 -1
- package/public/chunk-RWM6K46M.js +0 -1
- package/public/chunk-SVVR6UMH.js +0 -1
- package/public/chunk-UI4U37MO.js +0 -1
- package/public/chunk-ULKYNDD3.js +0 -16
- package/public/chunk-UPZ5UT6G.js +0 -1
- package/public/chunk-UQFIBBEZ.js +0 -1
- package/public/chunk-UWUTC3BD.js +0 -1
- package/public/chunk-UZ6QYM64.js +0 -1
- package/public/chunk-VM2MV3DC.js +0 -1
- package/public/chunk-VM6FMRHY.js +0 -1
- package/public/chunk-VYK3U745.js +0 -1
- package/public/chunk-VZJJWHRX.js +0 -1
- package/public/chunk-WHC4E7WY.js +0 -1
- package/public/chunk-WJKVPIP2.js +0 -1
- package/public/chunk-WOBQOQPU.js +0 -1
- package/public/chunk-WTGHGHPV.js +0 -1
- package/public/chunk-WY6UQ47H.js +0 -1
- package/public/chunk-X4ZEQSRY.js +0 -4
- package/public/chunk-XWNU2MFJ.js +0 -1
- package/public/chunk-YD3GJ2C6.js +0 -1
- package/public/chunk-YUEGV7HK.js +0 -4
- package/public/chunk-ZLRFR32W.js +0 -1
- package/public/chunk-ZZ5IX26U.js +0 -40
- package/public/chunk-ZZQEWRDE.js +0 -1
- package/public/main-VKVUZHHA.js +0 -1
- package/public/polyfills-5KWHJ7II.js +0 -2
- package/public/styles-7EFV5QBG.css +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{e}from"./chunk-B4AJQJMI.js";var t=e((i,s)=>{s.exports={"accessories.accessory_info":"Accessory Information","accessories.bridge_ip":"Bridge IP","accessories.bridge_port":"Bridge Port","accessories.button_add_room":"\uBC29 \uCD94\uAC00","accessories.button_delete_room":"Delete Room","accessories.button_edit_room":"Edit Room","accessories.button_hidden_hide":"\uC228\uAE34\uAC83 \uAC00\uB9AC\uAE30","accessories.button_hidden_show":"\uC228\uAE34\uAC83 \uBCF4\uC774\uAE30","accessories.button_remove":"Remove From Cache","accessories.control.adaptive_lighting":"Adaptive Lighting","accessories.control.adaptive_lighting_note":"Some plugins may automatically re-enable Adaptive Lighting when changing this.","accessories.control.auto":"\uC790\uB3D9","accessories.control.away":"\uC678\uCD9C","accessories.control.battery_charged":"Charged","accessories.control.battery_charging":"\uCDA9\uC804 \uC911","accessories.control.battery_low":"Battery Low","accessories.control.battery_notchargeable":"\uCDA9\uC804 \uBD88\uAC00","accessories.control.battery_notcharging":"\uCDA9\uC804 \uC548\uD568","accessories.control.brightness":"\uBC1D\uAE30","accessories.control.cleaning":"Cleaning","accessories.control.closed":"\uB2EB\uD798","accessories.control.closing":"\uB2EB\uB294 \uC911","accessories.control.color_temperature":"Color Temperature","accessories.control.cool":"\uB0C9\uBC29","accessories.control.current":"Current","accessories.control.default_room":"\uAE30\uBCF8 \uBC29","accessories.control.dehumidify":"Dehumidify","accessories.control.detected":"Detected","accessories.control.direction_control":"Direction Control","accessories.control.drag_here":"\uC5EC\uAE30\uB85C \uB4DC\uB798\uADF8","accessories.control.filter_level":"Filter Life","accessories.control.heat":"\uB09C\uBC29","accessories.control.home":"\uC9D1","accessories.control.hue":"Hue","accessories.control.humidify":"Humidify","accessories.control.idle":"Idle","accessories.control.input":"Input List","accessories.control.input_control":"Input Control","accessories.control.jammed":"\uAC78\uB9BC","accessories.control.lock_auto":"Auto Lock Timer","accessories.control.locked":"\uC7A0\uAE40","accessories.control.manual":"Manual","accessories.control.media_control":"Media Control","accessories.control.microphone":"Microphone","accessories.control.mode":"Mode","accessories.control.mode_control":"Mode Control","accessories.control.mute":"\uC74C\uC18C\uAC70","accessories.control.mute_control":"Mute Control","accessories.control.night":"\uC57C\uAC04","accessories.control.no_data":"No Data","accessories.control.not_detected":"\uBC1C\uACAC\uB418\uC9C0 \uC54A\uC74C","accessories.control.not_mute":"\uC74C\uC18C\uAC70 \uD574\uC81C","accessories.control.obstructed":"Obstructed","accessories.control.off":"\uAEBC\uC9D0","accessories.control.on":"\uCF1C\uC9D0","accessories.control.open":"\uC5F4\uB9BC","accessories.control.opening":"\uC5EC\uB294 \uC911","accessories.control.pause":"Pause","accessories.control.paused":"Paused","accessories.control.play":"Play","accessories.control.replace":"Replace","accessories.control.rotation_c_clockwise":"Counter Clockwise","accessories.control.rotation_clockwise":"Clockwise","accessories.control.rotation_direction":"Rotation Direction","accessories.control.rotation_speed":"\uD68C\uC804 \uC18D\uB3C4","accessories.control.running":"\uC2E4\uD589 \uC911","accessories.control.saturation":"Saturation","accessories.control.set_duration":"Set Duration","accessories.control.speaker":"Speaker","accessories.control.speaker_volume":"\uBCFC\uB968","accessories.control.state_control":"State Control","accessories.control.stateless":"Stateless","accessories.control.stop":"Stop","accessories.control.stopped":"\uC815\uC9C0","accessories.control.target":"\uB300\uC0C1","accessories.control.target_auto":"Auto Target","accessories.control.threshold_auto":"Auto Threshold","accessories.control.triggered":"\uC791\uB3D9 \uB428","accessories.control.unknown":"\uC54C \uC218 \uC5C6\uC74C","accessories.control.unlocked":"\uC7A0\uAE08\uD574\uC81C","accessories.control_disabled":"Homebridge \uC561\uC138\uC11C\uB9AC \uC81C\uC5B4 \uBE44\uD65C\uC131\uD654 \uB428","accessories.core.air_purifier":"Air Purifier","accessories.core.air_quality_sensor":"Air Quality Sensor","accessories.core.battery":"Battery","accessories.core.carbon_dioxide_sensor":"Carbon Dioxide Sensor","accessories.core.carbon_monoxide_sensor":"Carbon Monoxide Sensor","accessories.core.contact_sensor":"Contact Sensor","accessories.core.cooler":"Cooler","accessories.core.dehumidifier":"Dehumidifier","accessories.core.door":"Door","accessories.core.doorbell":"Doorbell","accessories.core.fan":"Fan","accessories.core.faucet_valve":"Valve","accessories.core.filter_maintenance":"Filter Maintenance","accessories.core.garage_door_opener":"Garage Door Opener","accessories.core.generic_valve":"Valve","accessories.core.heater":"Heater","accessories.core.heater_cooler":"Heater Cooler","accessories.core.humidifier":"Humidifier","accessories.core.humidifier_dehumidifier":"Humidifier Dehumidifier","accessories.core.humidity_sensor":"Humidity Sensor","accessories.core.irrigation_system":"Irrigation System","accessories.core.irrigation_valve":"Valve","accessories.core.leak_sensor":"Leak Sensor","accessories.core.light_sensor":"Light Sensor","accessories.core.lightbulb":"Lightbulb","accessories.core.lock_mechanism":"Lock Mechanism","accessories.core.microphone":"Microphone","accessories.core.motion_sensor":"Motion Sensor","accessories.core.occupancy_sensor":"Occupancy Sensor","accessories.core.on_off_light":"Lightbulb","accessories.core.on_off_light_switch":"Switch","accessories.core.on_off_plug_in_unit":"Outlet","accessories.core.outlet":"Outlet","accessories.core.robot_vacuum":"Robot Vacuum","accessories.core.robotic_vacuum_cleaner":"Robot Vacuum","accessories.core.security_system":"Security System","accessories.core.shower_head_valve":"Valve","accessories.core.smoke_sensor":"Smoke Sensor","accessories.core.speaker":"Speaker","accessories.core.stateless_programmable_switch":"Stateless Programmable Switch","accessories.core.switch":"Switch","accessories.core.television":"Television","accessories.core.temperature_sensor":"Temperature Sensor","accessories.core.thermostat":"Thermostat","accessories.core.valve":"Valve","accessories.core.washing_machine":"Washing Machine","accessories.core.window":"Window","accessories.core.window_covering":"Window Covering","accessories.custom_name":"Custom Name","accessories.custom_type":"Custom Type","accessories.delete_room_confirm":"Confirm you want to delete this room by clicking the delete button.","accessories.delete_room_move_accessories":"Any accessories in this room will be moved to {{roomName}}.","accessories.delete_room_new_default":"{{roomName}} will become the new default room.","accessories.hide_this_accessory":"\uC774 \uC561\uC138\uC11C\uB9AC \uC228\uAE30\uAE30","accessories.message_must_use_insecure_mode":"\uC561\uC138\uC11C\uB9AC\uB97C \uC81C\uC5B4\uD558\uB824\uBA74 \uD648\uBE0C\uB9BF\uC9C0\uB97C insecure \uBAA8\uB4DC\uB85C \uC2E4\uD589\uD574\uC57C\uD569\uB2C8\uB2E4 {{ link }}.","accessories.name":"\uC774\uB984","accessories.no_plugins.message_1":"Accessories are created and managed by Homebridge plugins.","accessories.no_plugins.message_2":"You can find and install plugins from the plugins page.","accessories.no_plugins.title":"No Plugins Installed","accessories.only_ui":"These settings are only for the Homebridge UI and <strong>will not be reflected in HomeKit</strong>.","accessories.only_ui_2":"These options are unique to your Homebridge UI account.","accessories.plugin":"Plugin","accessories.room_name":"\uBC29 \uC774\uB984","accessories.service":"Service","accessories.service_info":"Service Information","accessories.settings_link":"\uC0AC\uC774\uB4DC \uBA54\uB274\uC758 \uD1B1\uB2C8\uBC14\uD034 \uC544\uC774\uCF58\uC744 \uD074\uB9AD\uD558\uC5EC \uC5B8\uC81C\uB4E0\uC9C0 \uD648\uBE0C\uB9BF\uC9C0 \uC124\uC815\uC5D0 \uC811\uADFC\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","accessories.show_on_dashboard":"\uB300\uC2DC \uBCF4\uB4DC \uC704\uC82F\uC5D0 \uD45C\uC2DC","accessories.support.acc_1":"Accessories may take a few minutes to appear on this screen after a Homebridge restart or after being added. If accessories are consistently missing, try changing the mDNS advertiser in the settings.","accessories.support.acc_2":"You can change the type of certain accessories in the UI (like showing a switch as a heater). You can do this by clicking on the three bars that appear in the top-right corner of the accessory tile as you hover over it. A 'Custom Type' option will appear if the accessory supports this. Note this will not change the accessory in HomeKit (only a plugin can do this).","accessories.support.rooms_1":"\uC5EC\uAE30\uC11C \uCD94\uAC00\uB41C \uBC29\uC740 HomeKit\uC5D0 \uB098\uD0C0\uB098\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. Homebridge UI\uC758 \uC561\uC138\uC11C\uB9AC \uAD6C\uC131\uC5D0\uB9CC \uC0AC\uC6A9\uB429\uB2C8\uB2E4.","accessories.support.rooms_2":"You can rename or delete a room by clicking the cog icon next to its name when the layout is unlocked.","accessories.support.rooms_3":"You must have at least one room, and exactly one default room, which is where new accessories will go.","accessories.title_rooms":"Rooms","backup.backup_delete_failed":"\uBC31\uC5C5 \uC0AD\uC81C\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4. \uC790\uC138\uD55C \uB0B4\uC6A9\uC740 \uB85C\uADF8\uB97C \uD655\uC778\uD558\uC138\uC694.","backup.backup_download_failed":"\uBC31\uC5C5 \uB2E4\uC6B4\uB85C\uB4DC \uC2E4\uD328","backup.backup_exceeds_max_size":"\uBC31\uC5C5 ({{ backupSize }})\uC774(\uAC00) \uCD5C\uB300 \uBCF5\uC6D0 \uD30C\uC77C \uD06C\uAE30 {{ maxBackupSizeText }}\uB97C \uCD08\uACFC\uD588\uC2B5\uB2C8\uB2E4.","backup.backup_help_one":"\uC804\uCCB4 Homebridge \uD658\uACBD\uC5D0 \uB300\uD55C \uBC31\uC5C5 \uAE30\uB85D\uD30C\uC77C\uC744 \uB2E4\uC6B4\uB85C\uB4DC\uD558\uC138\uC694. Homebridge \uC800\uC7A5\uC18C \uD3F4\uB354\uC758 \uBAA8\uB4E0 \uB0B4\uC6A9\uC774 \uBC31\uC5C5\uB418\uBA70, \uCD94\uD6C4 Homebridge UI \uD638\uD658 \uD50C\uB81B\uD3FC\uC5D0\uC11C \uBCF5\uC6D0\uC5D0 \uC0AC\uC6A9\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","backup.backup_help_two":"npm\uC5D0\uC11C \uD638\uC2A4\uD2B8\uB418\uC9C0 \uC54A\uC740 \uD50C\uB7EC\uADF8\uC778\uC774\uB098 GitHub\uC5D0\uC11C \uC9C1\uC811 \uC124\uCE58\uB41C \uD50C\uB7EC\uADF8\uC778\uC740 \uBC31\uC5C5\uB418\uAC70\uB098 \uBCF5\uC6D0\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.","backup.backup_now":"Backup Now","backup.backup_now_desc":"Generate and download an up-to-date backup file.","backup.backup_now_save_desc":"Generate an up-to-date backup file in your backup storage directory.","backup.backup_restored":"\uBC31\uC5C5 \uAE30\uB85D\uD30C\uC77C \uBCF5\uC6D0\uB428","backup.backup_warning":"\uBC31\uC5C5 \uAE30\uB85D\uD30C\uC77C\uC5D0\uB294 \uBBFC\uAC10\uD55C \uC815\uBCF4\uAC00 \uD3EC\uD568\uB418\uC5B4 \uC788\uAE30 \uB54C\uBB38\uC5D0 \uB2E4\uB978\uC0AC\uB78C\uACFC \uACF5\uC720\uD574\uC11C\uB294 \uC548\uB429\uB2C8\uB2E4.","backup.files_auto":"Stored Backup Files","backup.label_extracting":"Extracting Archive","backup.label_uploading":"\uC5C5\uB85C\uB4DC \uC911\u2026","backup.load_error":"\uC124\uC815 \uBC31\uC5C5\uC744 \uB85C\uB4DC\uD558\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4.","backup.restore_failed":"\uBCF5\uC6D0 \uC2E4\uD328","backup.restore_help_one":"Homebridge UI\uC744 \uC0AC\uC6A9\uD558\uC5EC \uC0DD\uC131\uD55C \uBC31\uC5C5 \uAE30\uB85D\uD30C\uC77C\uC744 \uBCF5\uC6D0\uD558\uC138\uC694. Homebridge \uAD6C\uC131, \uCE90\uC2DC\uB41C \uC561\uC138\uC11C\uB9AC, HomeKit \uD398\uC5B4\uB9C1\uACFC Homebridge UI \uC0AC\uC6A9\uC790 \uACC4\uC815\uC774 \uBCF5\uC6D0\uB420 \uAC83\uC785\uB2C8\uB2E4. \uC124\uCE58\uD588\uB358 Homebridge \uD50C\uB7EC\uADF8\uC778\uC740 npm \uC800\uC7A5\uC18C\uC5D0\uC11C \uBCF5\uC6D0\uB420 \uAC83\uC785\uB2C8\uB2E4.","backup.restore_help_two":"\uBCF5\uC6D0 \uB41C \uC778\uC2A4\uD134\uC2A4\uC758 \uC790\uACA9 \uC99D\uBA85\uC744 \uC0AC\uC6A9\uD558\uC5EC \uBCF5\uC6D0\uC744 \uC218\uD589 \uD55C \uD6C4, Homebridge UI\uC5D0 \uB85C\uADF8\uC778\uD574\uC57C\uD569\uB2C8\uB2E4.","backup.restore_max_size":"\uCD5C\uB300 {{ maxBackupSizeText }} \uD06C\uAE30\uC758 \uBC31\uC5C5 \uC544\uCE74\uC774\uBE0C\uB97C \uBCF5\uC6D0\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","backup.restore_now":"Restore Now","backup.restore_now_desc":"Restore from a previously downloaded backup file.","backup.restore_warning":"\uBC31\uC5C5\uC5D0\uC11C \uBCF5\uC6D0\uC744 \uC9C4\uD589\uD558\uBA74 \uD604\uC7AC Homebridge \uAD6C\uC131\uC740 \uB36E\uC5B4\uC4F0\uC5EC\uC9C0\uBA70 \uCDE8\uC18C\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.","backup.scheduled_backup_disabled":"Scheduled backups have been disabled via the configuration.","backup.scheduled_backup_time":"Homebridge \uC778\uC2A4\uD134\uC2A4\uC758 \uC804\uCCB4 \uBC31\uC5C5\uC740 \uB9E4\uC77C {{ backupTime }}\uC5D0 \uC790\uB3D9\uC0DD\uC131\uB418\uBA70 {{ dayCount }}\uC77C \uB3D9\uC548 \uBCF4\uAD00\uB429\uB2C8\uB2E4.","backup.settings_enable":"Enable Automated Backups","backup.settings_path":"Backup Storage Path","backup.settings_path_desc":"If you are changing this from the default, please ensure the directory exists and is writable by the Homebridge user.","backup.settings_title":"Backup Settings","backup.title_backup":"Backup & Restore","child_bridge.about":"Homebridge\uB97C \uC0AC\uC6A9\uD558\uBA74 \uD50C\uB7EC\uADF8\uC778\uC758 \uD50C\uB7AB\uD3FC \uB610\uB294 \uC561\uC138\uC11C\uB9AC\uB97C \uACA9\uB9AC\uB41C \uD558\uC704 Bridge\uB85C \uC2E4\uD589\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4 {{ link }}. \uC774\uB97C \uD1B5\uD574 Homebridge\uC758 \uC131\uB2A5\uACFC \uC2E0\uB8B0\uC131\uC744 \uD5A5\uC0C1\uC2DC\uD0AC \uC218 \uC788\uC2B5\uB2C8\uB2E4.","child_bridge.bridge_connect":"HomeKit\uC5D0 \uC5F0\uACB0","child_bridge.bridge_settings":"Bridge \uC124\uC815","child_bridge.bridges":"Bridges","child_bridge.bridges_paired":"\uC5B4\uB9B0\uC774\uC6A9 \uC545\uC138\uC11C\uB9AC, Bridge\uB294 HomeKit\uC5D0 \uC9C1\uC811 \uD398\uC5B4\uB9C1 \uD574\uC57C \uD569\uB2C8\uB2E4.","child_bridge.bridges_paired_2":"If you set up a child bridge now and later disable it, any accessories on this bridge will be removed and re-created on the main Homebridge bridge.","child_bridge.config.accessory":"Accessory","child_bridge.config.debug":"\uB514\uBC84\uADF8 \uBAA8\uB4DC","child_bridge.config.enable_hap":"Enable HAP","child_bridge.config.firmware":"\uD38C\uC6E8\uC5B4 \uBC84\uC804","child_bridge.config.hide_pairing_alert":"Hide Pairing Alert","child_bridge.config.manufacturer":"\uC81C\uC870\uC0AC","child_bridge.config.matter_note_1":"Plugins must be updated by the developer to support Matter accessories. There is no use in enabling Matter here unless you definitely know the plugin supports it.","child_bridge.config.matter_note_2":"Matter accessories don't appear in the Homebridge UI accessories screen. They can be managed using the Home app or other Matter controllers.","child_bridge.config.model":"\uBAA8\uB378","child_bridge.config.name":"\uC774\uB984","child_bridge.config.or_link":"Link Existing Bridge","child_bridge.config.platform":"Platform","child_bridge.config.port":"Port","child_bridge.config.prevent":"Cannot disable a child bridge with linked accessories.","child_bridge.config.select_existing":"Select an existing bridge...","child_bridge.config.use":"Use Child Bridge","child_bridge.confirm_delete_1":"The following child bridges will be removed.","child_bridge.confirm_delete_2":"You will need to remove the paired bridges manually from the Home app. Any accessories will be removed and re-created on the main Homebridge bridge.","child_bridge.must_configure_plugin":"\uBE0C\uB9AC\uC9C0 \uC124\uC815\uC744 \uAD00\uB9AC\uD558\uAE30 \uC804\uC5D0 \uC774 \uD50C\uB7EC\uADF8\uC778\uC744 \uAD6C\uC131\uD574\uC57C \uD569\uB2C8\uB2E4.","child_bridge.reset_accessories":"\uC561\uC138\uC11C\uB9AC \uCD08\uAE30\uD654","child_bridge.restart":"\uD558\uC704 Bridge \uB2E4\uC2DC \uC2DC\uC791","child_bridge.restart_plural":"Restart Child Bridges","child_bridge.return_to_pair":"Homebridge \uC7AC\uC2DC\uC791 \uD6C4 \uD604\uC7AC \uD654\uBA74\uC5D0\uC11C QR\uCF54\uB4DC\uB97C \uD655\uC778\uD558\uC138\uC694.","child_bridge.setup":"\uD558\uC704 Bridge \uC124\uC815","child_bridge.start":"\uD558\uC704 Bridge \uC2DC\uC791","child_bridge.start_plural":"\uC5EC\uB7EC \uD558\uC704 Bridge \uC2DC\uC791","child_bridge.stop":"Stop Child Bridge","child_bridge.stop_plural":"Stop Child Bridges","common.labels.beta":"beta","common.labels.disabled":"\uBE44\uD65C\uC131\uD654\uB428","common.labels.enabled":"Enabled","common.labels.no_confirmation":"There is no confirmation when clicking the button, it will immediately perform the action.","common.phrases.are_you_sure":"\uADF8\uB798\uB3C4 \uC774\uB300\uB85C \uC9C4\uD589\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?","common.phrases.support":"Feel like there is something useful we could add here? Let us know on {{ github }} or {{ discord }}!","config.config_accessory_must_be_array":"accessories\uB294 \uBC30\uC5F4 \uD615\uD0DC\uB85C \uAD6C\uC131\uD574\uC57C \uD569\uB2C8\uB2E4 []","config.config_bridge_missing":"bridge \uC124\uC815\uC774 \uB204\uB77D\uB418\uC5C8\uC2B5\uB2C8\uB2E4","config.config_invalid_json":"Config\uC5D0 \uC720\uD6A8\uD558\uC9C0 \uC54A\uC740 JSON\uC774 \uD3EC\uD568\uB418\uC5B4 \uC788\uC2B5\uB2C8\uB2E4","config.config_platform_must_be_array":"platforms\uB294 \uBC30\uC5F4 \uD615\uD0DC\uB85C \uAD6C\uC131\uD574\uC57C \uD569\uB2C8\uB2E4 []","config.config_saved":"Configuration Saved","config.config_username_error":"bridge\uC758 username\uC740 16\uC9C4\uC218 \uBB38\uC790\uC5F4(A-F 0-9) 6\uC30D\uC774 \uCF5C\uB860\uC73C\uB85C \uAD6C\uBD84\uB41C \uAC12\uC774\uC5EC\uC57C \uD569\uB2C8\uB2E4","config.error_blocks_objects":"\uBAA8\uB4E0 {{ type }} \uBE14\uB85D\uC740 \uAC1D\uCCB4\uC5EC\uC57C \uD569\uB2C8\uB2E4.","config.error_blocks_type":"\uBAA8\uB4E0 {{ type }} \uBE14\uB85D\uC5D0\uB294 {{ type }} \uC18D\uC131\uC774 \uD3EC\uD568\uB418\uC5B4\uC57C \uD569\uB2C8\uB2E4.","config.error_string_array":"{{ key }} \uBC30\uC5F4\uC758 \uAC01 \uD56D\uBAA9\uC740 \uBB38\uC790\uC5F4\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.","config.error_string_type":"{{ type }} \uC18D\uC131\uC740 \uBB38\uC790\uC5F4\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.","config.failed_to_save_config":"Config \uC800\uC7A5\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4","config.hide_hap_pairing":"Hide HAP Pairing Alert","config.hide_matter_pairing":"Hide Matter Pairing Alert","config.hide_plugin_updates":"Hide Plugin Updates For","config.no_restart":"A restart is not needed as no changes were made to the Homebridge configuration.","config.restore.confirm":"\uC774 \uBC31\uC5C5\uC744 \uBCF5\uC6D0\uD558\uB824\uBA74 \uC800\uC7A5\uC744 \uD074\uB9AD\uD558\uC138\uC694.","config.restore.copy_to_editor":"\uC5D0\uB514\uD130\uC5D0 \uBCF5\uC0AC","config.restore.download":"Download your current configuration as a JSON file.","config.restore.help_1":"A backup of your config file is created each time it is updated from actions you take in the Homebridge UI.","config.restore.help_2":"You can restore a previous version of your config file by selecting it from the list below. You will be able to compare this version with your current config before deciding whether to restore it.","config.restore.title":"Config File Backup & Restore","config.restore.toast_backups_deleted":"\uBAA8\uB4E0 \uBC31\uC5C5\uC744 \uC0AD\uC81C\uD558\uC600\uC2B5\uB2C8\uB2E4","config.restore.view_inline":"Inline View","config.restore.view_side_by_side":"Side-By-Side View","config.title_backup_loaded":"\uBC31\uC5C5\uC774 \uB85C\uB4DC\uB418\uC5C8\uC2B5\uB2C8\uB2E4","form.button_allow":"Allow","form.button_back":"Back","form.button_cancel":"\uCDE8\uC18C","form.button_close":"\uB2EB\uAE30","form.button_continue":"\uACC4\uC18D","form.button_delete":"\uC0AD\uC81C","form.button_delete_all":"Delete All","form.button_disable":"Disable","form.button_download":"\uB2E4\uC6B4\uB85C\uB4DC","form.button_edit":"\uC218\uC815","form.button_enable":"Enable","form.button_lock":"Lock","form.button_more_info":"More Info","form.button_remove":"Remove","form.button_reset":"Reset","form.button_restore":"\uBCF5\uC6D0","form.button_save":"\uC800\uC7A5","form.button_show":"Show","form.button_unlock":"Unlock","form.button_unpair":"Unpair","form.label.changes_kept":"Note that existing selections/changes are preserved when switching between items.","form.label_invalid":"Config validation failed - you can still save your changes.","form.label_invalid_strict":"Config validation failed - please review the form before saving.","form.label_valid":"Config validation passed.","form.optional":"Optional","form.search":"Search...","form.select.auto":"\uC790\uB3D9 (\uBE0C\uB77C\uC6B0\uC800 \uC124\uC815 \uC0AC\uC6A9)","login.invalid_code":"The code entered is incorrect or has expired","login.invalid_credentials":"\uC720\uD6A8\uD558\uC9C0 \uC54A\uC740 \uC0AC\uC6A9\uC790\uBA85 \uB610\uB294 \uBE44\uBC00\uBC88\uD638\uC785\uB2C8\uB2E4","login.invalid_credentials_2":"If you lose access, delete the <code>auth.json</code> file in your Homebridge storage directory and restart Homebridge. Then refresh this page to set up a new admin account. Your Homebridge/UI settings will remain unchanged, except for UI user accounts. The only user account will be the admin account that you are setting up now.","login.invalid_password":"Invalid Password","login.label_2fa_code":"2\uCC28 \uC778\uC99D \uCF54\uB4DC","logs.download.error":"\uB85C\uADF8 \uD30C\uC77C \uB2E4\uC6B4\uB85C\uB4DC\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4.","logs.download_warning":"Homebridge \uB85C\uADF8\uD30C\uC77C\uC5D0\uB294 \uAC1C\uC778\uC815\uBCF4, \uBE44\uBC00\uBC88\uD638, \uC561\uC138\uC2A4\uD1A0\uD070\uC774 \uD3EC\uD568\uB420 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uB2E4\uB978 \uC0AC\uB78C\uACFC \uACF5\uC720\uD558\uAE30 \uC804\uC5D0 \uB85C\uADF8 \uD30C\uC77C\uC744 \uAC80\uD1A0\uD558\uACE0 \uBBFC\uAC10\uD55C \uC815\uBCF4\uB97C \uC81C\uAC70\uD558\uC2ED\uC2DC\uC624.","logs.log_file_truncated":"\uB85C\uADF8\uD30C\uC77C\uC774 \uC798\uB838\uC2B5\uB2C8\uB2E4.","logs.placeholder_search_logs":"Search logs (min. 3 characters)...","logs.title_download_log_file":"\uB85C\uADF8\uD30C\uC77C \uB2E4\uC6B4\uB85C\uB4DC","logs.title_truncate_log_file":"\uB85C\uADF8\uD30C\uC77C \uC790\uB974\uAE30","logs.truncate.error":"\uB85C\uADF8 \uD30C\uC77C \uC790\uB974\uAE30\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4.","logs.truncate_log_warning":"\uC774 \uC791\uC5C5\uC740 Homebridge \uB85C\uADF8\uB97C \uC601\uAD6C\uC801\uC73C\uB85C \uC0AD\uC81C\uD569\uB2C8\uB2E4. \uACC4\uC18D\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?","matter_bridge.config.use":"Enable Matter","menu.config_json_editor":"JSON \uC124\uC815","menu.docker.restart_container":"\uCEE8\uD14C\uC774\uB108 \uC7AC\uC2DC\uC791","menu.docker.startup_script":"\uC2DC\uC791 \uC2A4\uD06C\uB9BD\uD2B8","menu.docker.terminal":"\uD130\uBBF8\uB110","menu.hbrestart.confirm_hb":"\uD648\uBE0C\uB9BF\uC9C0 \uC7AC\uC2DC\uC791\uD558\uAE30","menu.hbrestart.confirm_ui":"HB Service\uC640 UI \uC7AC\uC2DC\uC791\uD558\uAE30","menu.hbrestart.title":"\uD648\uBE0C\uB9BF\uC9C0 \uC7AC\uC2DC\uC791","menu.label_accessories":"\uC561\uC138\uC11C\uB9AC","menu.label_plugins":"\uD50C\uB7EC\uADF8\uC778","menu.label_settings":"\uC124\uC815","menu.label_status":"\uC0C1\uD0DC","menu.linux.label_logs":"\uB85C\uADF8","menu.linux.label_restart_server":"\uC11C\uBC84 \uC7AC\uC2DC\uC791","menu.linux.label_shutdown_modal":"Are you sure you want to shut down the operating system? You will need physical access to turn it back on.","menu.linux.label_shutdown_server":"\uC11C\uBC84 \uC885\uB8CC","menu.linux.label_terminal":"\uD130\uBBF8\uB110","menu.reload":"Reload","menu.restart.title":"\uC804\uC6D0 \uC635\uC158","menu.settings.title":"\uC124\uC815","menu.tooltip_logout":"\uB85C\uADF8\uC544\uC6C3","menu.tooltip_restart":"\uC7AC\uC2DC\uC791","menu.tooltip_user_accounts":"\uC0AC\uC6A9\uC790 \uACC4\uC815","menu.tooltip_view_logs":"\uB85C\uADF8 \uBCF4\uAE30","platform.docker.container_restarted":"Docker \uCEE8\uD14C\uC774\uB108 \uC7AC\uC2DC\uC791\uB428","platform.docker.must_use_hashbang":"\uC2A4\uD06C\uB9BD\uD2B8\uB294 \uBC18\uB4DC\uC2DC #!/bin/sh \uD574\uC2DC\uBC45\uC744 \uC0AC\uC6A9\uD574\uC57C\uD569\uB2C8\uB2E4.","platform.docker.restart_required":"\uBCC0\uACBD\uC0AC\uD56D\uC744 \uBC18\uC601\uD558\uB824\uBA74 Docker \uCEE8\uD14C\uC774\uB108\uB97C \uC7AC\uC2DC\uC791\uD574\uC57C\uD569\uB2C8\uB2E4.","platform.docker.run_with_restart":"{{ command }}\uB97C \uC0AC\uC6A9\uD558\uC5EC Docker \uCEE8\uD14C\uC774\uB108\uB97C \uC2E4\uD589\uD558\uACE0 \uC788\uB294\uC9C0 \uD655\uC778\uD558\uC138\uC694 ","platform.docker.script_help":"\uC774 \uC2A4\uD06C\uB9BD\uD2B8\uB294 Docker \uCEE8\uD14C\uC774\uB108\uAC00 \uC2DC\uC791\uB420 \uB54C\uB9C8\uB2E4 \uC2E4\uD589\uB429\uB2C8\uB2E4. \uC0AC\uC6A9\uD558\uB294 \uD50C\uB7EC\uADF8\uC778\uC5D0 \uD544\uC694\uD55C ffmpeg \uB610\uB294 libpcap-dev \uB4F1\uC758 \uCD94\uAC00 \uD328\uD0A4\uC9C0 \uC124\uCE58\uB97C \uC704\uD574 \uC774 \uC2A4\uD06C\uB9BD\uD2B8\uB97C \uC0AC\uC6A9\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","platform.docker.script_saved":"\uC2DC\uC791 \uC2A4\uD06C\uB9BD\uD2B8\uAC00 \uC800\uC7A5\uB418\uC5C8\uC2B5\uB2C8\uB2E4","platform.docker.server_long_time":"\uC11C\uBC84 \uC7AC\uC2DC\uC791\uC5D0 \uB9CE\uC740 \uC2DC\uAC04\uC774 \uC18C\uC694\uB418\uACE0 \uC788\uC2B5\uB2C8\uB2E4. Docker \uCEE8\uD14C\uC774\uB108\uB97C \uC218\uB3D9\uC73C\uB85C \uBD88\uB7EC\uC640\uC57C \uD560 \uC218\uB3C4 \uC788\uC2B5\uB2C8\uB2E4.","platform.docker.title_restarting":"Docker \uCEE8\uD14C\uC774\uB108 \uC7AC\uC2DC\uC791 \uC911","platform.linux.long_time":"\uC11C\uBC84 \uC7AC\uC2DC\uC791\uC5D0 \uB9CE\uC740 \uC2DC\uAC04\uC774 \uC18C\uC694\uB418\uACE0 \uC788\uC2B5\uB2C8\uB2E4. \uC11C\uBC84\uB97C \uC218\uB3D9\uC73C\uB85C \uB2E4\uC2DC \uBD88\uB7EC\uC640\uC57C \uD560 \uC218\uB3C4 \uC788\uC2B5\uB2C8\uB2E4.","platform.linux.restart":"\uC7A0\uC2DC\uB9CC \uAE30\uB2E4\uB824\uC8FC\uC138\uC694. Homebridge\uAC00 \uB2E4\uC2DC \uC628\uB77C\uC778 \uC0C1\uD0DC\uAC00 \uB418\uBA74 \uC790\uB3D9\uC73C\uB85C \uB2E4\uB978 \uD398\uC774\uC9C0\uB85C \uC774\uB3D9\uD569\uB2C8\uB2E4.","platform.linux.restarting_server":"\uC11C\uBC84 \uC7AC\uC2DC\uC791 \uC911","platform.linux.server_restart_error":"\uC7AC\uC2DC\uC791 \uBA85\uB839\uC744 \uC11C\uBC84\uB85C \uBCF4\uB0B4\uB294 \uC911\uC5D0 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4.","platform.linux.server_restarted":"\uC11C\uBC84\uAC00 \uC7AC\uC2DC\uC791\uB418\uC5C8\uC2B5\uB2C8\uB2E4","platform.linux.server_taking_long_time":"\uC11C\uBC84\uAC00 \uB2E4\uC2DC \uC628\uB77C\uC778 \uC0C1\uD0DC\uB85C \uB3CC\uC544\uC624\uB294\uB370 \uB9CE\uC740 \uC2DC\uAC04\uC774 \uC18C\uC694\uB418\uACE0 \uC788\uC2B5\uB2C8\uB2E4.","platform.linux.server_will_power_down":"\uC11C\uBC84\uC758 \uC804\uC6D0\uC774 \uACE7 \uAEBC\uC9D1\uB2C8\uB2E4.","platform.linux.shutting_down_server":"\uC11C\uBC84 \uC885\uB8CC","platform.terminal.terminate_message_1":"Navigating away from this page will terminate your current session, all foreground processes will be terminated.","platform.terminal.terminate_message_2":"To avoid this warning, enable <strong>Terminal Session Persistence</strong> from the settings page.","platform.terminal.terminate_title":"Session Termination","platform.terminal.terminate_unload":"Your terminal session will be terminated. Enable Terminal Session Persistence in Settings to prevent this.","platform.version.restart_required":"Homebridge UI v{{ uiVersion }}\uAC00 \uC124\uCE58\uB418\uC5C8\uC9C0\uB9CC, \uC11C\uBC84 \uC11C\uBE44\uC2A4\uB294 \uC5EC\uC804\uD788 v{{ serverVersion }}\uB97C \uC2E4\uD589 \uC911\uC785\uB2C8\uB2E4.","platform.version.service_restart_required":"\uC11C\uBE44\uC2A4 \uC7AC\uC2DC\uC791 \uD544\uC694","plugins.bridge.action_error":"\uD558\uC704 Bridge\uB97C {{ action }}\uD558\uB294 \uB370 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4.","plugins.bridge.name_error":"Bridge name must start and end with a letter or number, and can only contain letters, numbers, spaces, and apostrophes.","plugins.bridge.port_error":"{{ type }} port must be an integer between 1025 and 65533, excluding 5353, 8080, 8443 and any other already-configured port.","plugins.button_homepage":"\uD50C\uB7EC\uADF8\uC778 \uD648\uD398\uC774\uC9C0","plugins.button_set_up":"\uC124\uCE58","plugins.button_settings":"\uC124\uC815","plugins.button_uninstall":"\uC81C\uAC70","plugins.button_update":"\uC5C5\uB370\uC774\uD2B8","plugins.compat.hb_node_too_low":"{{ packageName }} v{{ latestVersion }} \uC2E4\uD589\uC744 \uC704\uD574\uC11C\uB294 Node.js v{{ minVersion }} \uC774\uC0C1\uC774 \uD544\uC694\uD569\uB2C8\uB2E4. \uD604\uC7AC \uC2E4\uD589 \uC911\uC778 Node.js \uBC84\uC804\uC740 v{{ installedVersion }} \uC785\uB2C8\uB2E4.","plugins.compat.hb_too_low":"{{ pluginName }} \uD50C\uB7EC\uADF8\uC778\uC740 Homebridge v{{ minVersion }} \uC774\uC0C1 \uBC84\uC804\uC5D0\uC11C \uC2E4\uD589\uC774 \uAD8C\uC7A5\uB429\uB2C8\uB2E4. \uD604\uC7AC \uC2E4\uD589 \uC911\uC778 Homebridge \uBC84\uC804\uC740 v{{ installedVersion }} \uC785\uB2C8\uB2E4.","plugins.compat.node_first":"{{ packageName }}\uB97C \uC5C5\uB370\uC774\uD2B8\uD558\uAE30 \uC804\uC5D0 Node.js\uB97C \uC5C5\uADF8\uB808\uC774\uB4DC \uD574\uC8FC\uC138\uC694.","plugins.compat.node_link":"Node.js \uC5C5\uB370\uC774\uD2B8 \uD558\uB294\uBC95","plugins.compat.node_too_low":"{{ pluginName }} \uD50C\uB7EC\uADF8\uC778\uC740 Node.js v{{ minVersion }} \uC774\uC0C1 \uBC84\uC804\uC5D0\uC11C \uC2E4\uD589\uC774 \uAD8C\uC7A5\uB429\uB2C8\uB2E4. \uD604\uC7AC \uC2E4\uD589 \uC911\uC778 Node.js \uBC84\uC804\uC740 v{{ installedVersion }} \uC785\uB2C8\uB2E4.","plugins.compat.title":"\uD638\uD658\uC131 \uCCB4\uD06C","plugins.config.load_error":"\uD50C\uB7EC\uADF8\uC778 \uC124\uC815\uC744 \uBD88\uB7EC\uC624\uB294 \uB370 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4.","plugins.config.must_be_array":"\uD50C\uB7EC\uADF8\uC778 \uC124\uC815\uC740 \uBC30\uC5F4\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.","plugins.config.must_be_array_objects":"\uD50C\uB7EC\uADF8\uC778 \uC124\uC815\uC740 \uAC1D\uCCB4 \uBC30\uC5F4\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.","plugins.config.must_be_object":"\uC124\uC815 \uBE14\uB85D\uC740 \uAC1D\uCCB4\uC5EC\uC57C \uD569\uB2C8\uB2E4.","plugins.config.name_property":'\uC561\uC138\uC11C\uB9AC\uB294 \uC720\uD6A8\uD55C "name" \uC18D\uC131\uC744 \uAC00\uC838\uC57C \uD569\uB2C8\uB2E4.',"plugins.config.please_fix":"\uC0C8 \uBE14\uB85D\uC744 \uCD94\uAC00\uD558\uAE30 \uC804\uC5D0 \uAC80\uC99D \uC624\uB958\uB97C \uC218\uC815\uD558\uC138\uC694.","plugins.disable.error":"\uD50C\uB7EC\uADF8\uC778\uC744 \uBE44\uD65C\uC131\uD654\uD558\uB294 \uB370 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4.","plugins.donate.message_1":"\uB354 \uB9CE\uC740 \uC0AC\uC6A9\uC790\uAC00 Homebridge UI\uB97C \uD1B5\uD574 \uD50C\uB7EC\uADF8\uC778\uC744 \uC124\uCE58\uD558\uBA74\uC11C, \uAC1C\uBC1C\uC790\uB97C \uC9C0\uC6D0\uD558\uB294 \uBC29\uBC95\uC774 \uC788\uB294 \uD504\uB85C\uC81D\uD2B8\uC758 GitHub \uD398\uC774\uC9C0\uB97C \uBC29\uBB38\uD560 \uAE30\uD68C\uAC00 \uC904\uC5B4\uB4E4\uACE0 \uC788\uC2B5\uB2C8\uB2E4.","plugins.donate.message_2":"Homebridge UI\uC5D0 \uAE30\uBD80 \uB9C1\uD06C\uB97C \uC9C1\uC811 \uCD94\uAC00\uD558\uBA74 \uC0AC\uC6A9\uC790\uAC00 \uC6D0\uD560 \uACBD\uC6B0 Homebridge \uAC1C\uBC1C\uC790\uB97C \uC9C0\uC6D0\uD558\uB294 \uBC29\uBC95\uC744 \uC54C \uC218 \uC788\uB3C4\uB85D \uBCF4\uC7A5\uD569\uB2C8\uB2E4.","plugins.donate.tile_donate_to":"{{ author }}\uC5D0 \uAE30\uBD80","plugins.enable.error":"\uD50C\uB7EC\uADF8\uC778\uC744 \uD65C\uC131\uD654\uD558\uB294 \uB370 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4.","plugins.manage.all_versions":"\uBAA8\uB4E0 \uBC84\uC804","plugins.manage.backup":"Download a backup before updating?","plugins.manage.changelog":"Full Changelog","plugins.manage.changelog_none":"Could not retrieve changelog, perhaps this plugin does not provide a <code>CHANGELOG.md</code> file.","plugins.manage.child_bridge_restart":"\uD558\uC704 Bridge\uAC00 \uC131\uACF5\uC801\uC73C\uB85C \uC7AC\uC2DC\uC791\uB418\uC5C8\uC2B5\uB2C8\uB2E4.","plugins.manage.child_bridge_restart_failed":"\uD50C\uB7EC\uADF8\uC778 \uC7AC\uC2DC\uC791\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4. Homebridge\uB97C \uC9C1\uC811 \uC7AC\uC2DC\uC791\uD558\uC138\uC694.","plugins.manage.confirm_disable":"{{ pluginName }}\uB97C \uBE44\uD65C\uC131\uD654\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?","plugins.manage.confirm_disable_accessory_1":"\uC774 \uD50C\uB7EC\uADF8\uC778\uC774 \uB178\uCD9C\uD558\uB294 \uBAA8\uB4E0 \uC561\uC138\uC11C\uB9AC\uB294 Homebridge UI \uC561\uC138\uC11C\uB9AC \uD654\uBA74\uC5D0\uC11C \uC81C\uAC70\uB418\uACE0 HomeKit\uC5D0\uC11C\uB3C4 \uC0AD\uC81C\uB429\uB2C8\uB2E4.","plugins.manage.confirm_disable_accessory_2":"\uD50C\uB7EC\uADF8\uC778\uC744 \uB2E4\uC2DC \uD65C\uC131\uD654\uD558\uBA74 \uC561\uC138\uC11C\uB9AC\uAC00 Homebridge UI\uC640 HomeKit\uC5D0 \uB2E4\uC2DC \uB098\uD0C0\uB0A9\uB2C8\uB2E4. \uADF8\uB7EC\uB098 \uC561\uC138\uC11C\uB9AC\uB294 HomeKit \uB370\uC774\uD130(\uC608: \uAD00\uB828 \uC7A5\uBA74 \uBC0F \uC790\uB3D9\uD654)\uB97C \uC783\uAC8C \uB429\uB2C8\uB2E4.","plugins.manage.confirm_disable_platform_1":"\uC774 \uD50C\uB7EC\uADF8\uC778\uC774 \uB178\uCD9C\uD558\uB294 \uBAA8\uB4E0 \uC561\uC138\uC11C\uB9AC\uB294 Homebridge UI \uC561\uC138\uC11C\uB9AC \uD654\uBA74\uC5D0\uC11C \uC81C\uAC70\uB418\uC9C0\uB9CC, HomeKit\uC5D0\uC11C\uB294 '\uC751\uB2F5 \uC5C6\uC74C' \uB77C\uBCA8\uACFC \uD568\uAED8 \uB0A8\uC544\uC788\uAC8C \uB429\uB2C8\uB2E4.","plugins.manage.confirm_disable_platform_2":"\uD50C\uB7EC\uADF8\uC778\uC744 \uB2E4\uC2DC \uD65C\uC131\uD654\uD558\uBA74 \uC561\uC138\uC11C\uB9AC\uAC00 Homebridge UI\uC5D0 \uB2E4\uC2DC \uB098\uD0C0\uB098\uACE0 HomeKit\uC5D0\uC11C \uB2E4\uC2DC \uC81C\uC5B4\uD560 \uC218 \uC788\uAC8C \uB429\uB2C8\uB2E4. \uC561\uC138\uC11C\uB9AC\uB294 HomeKit \uB370\uC774\uD130(\uC608: \uAD00\uB828 \uC7A5\uBA74 \uBC0F \uC790\uB3D9\uD654)\uB97C \uC783\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.","plugins.manage.confirm_disable_setting":"Your setting for {{ setting }} is currently {{ value }}, therefore:","plugins.manage.confirm_enable":"{{ pluginName }} \uD50C\uB7EC\uADF8\uC778\uC744 \uD65C\uC131\uD654 \uD560\uAE4C\uC694?","plugins.manage.disable":"\uBE44\uD65C\uC131\uD654","plugins.manage.enable":"\uD65C\uC131\uD654","plugins.manage.github_support":"You can show your support by giving this plugin a {{ iconStar }} (or the release a {{ iconThumbsUp }}) on GitHub!","plugins.manage.hb_restart":"Homebridge and the UI will automatically restart after any version change.","plugins.manage.hide_updates":"Disable Update Notifications","plugins.manage.hide_updates_desc":"If you don't want to see update notifications for this plugin, you can turn them off here.","plugins.manage.information":"\uD50C\uB7EC\uADF8\uC778 \uC815\uBCF4","plugins.manage.install":"\uC124\uCE58","plugins.manage.installed":"\uC124\uCE58\uB428","plugins.manage.json_config":"JSON \uC124\uC815","plugins.manage.manage_version":"\uC774\uC804 \uBC84\uC804 \uC124\uCE58","plugins.manage.manual_update_command":"\uD328\uD0A4\uC9C0\uB97C \uC5C5\uADF8\uB808\uC774\uB4DC\uD558\uB824\uBA74 Node.js \uBA85\uB839 \uD504\uB86C\uD504\uD2B8\uB97C \uAD00\uB9AC\uC790 \uAD8C\uD55C\uC73C\uB85C \uC5F4\uACE0 \uB2E4\uC74C \uBA85\uB839\uC5B4\uB97C \uC2E4\uD589\uD558\uC138\uC694:","plugins.manage.more_info":"More information about scoped {{ scopedLink }} and verified {{ verifiedLink }} plugins.","plugins.manage.notes":"Release Notes","plugins.manage.notes_beta_1":"Thank you for helping improve {{ pluginName }} by testing a pre-release version.","plugins.manage.notes_beta_2":"You can use the Homebridge UI to revert back to the stable version at any time.","plugins.manage.notes_beta_3":"Please remember this is a pre-release version, and report any issues to the plugin's GitHub repository page.","plugins.manage.notes_latest":"Release notes are only shown when updating to the latest version.","plugins.manage.notes_none":"Could not retrieve release notes, perhaps this version does not have a GitHub release.","plugins.manage.online_updates":"Windows\uC5D0\uC11C \uC628\uB77C\uC778 \uC5C5\uB370\uC774\uD2B8\uB294 \uC9C0\uC6D0\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. Homebridge \uC11C\uBE44\uC2A4\uB97C \uC911\uC9C0\uD55C \uD6C4 \uC218\uB3D9\uC73C\uB85C HomeBridge\uB97C \uC5C5\uADF8\uB808\uC774\uB4DC\uD574\uC57C\uD569\uB2C8\uB2E4.","plugins.manage.plugin_logs":"Plugin Logs","plugins.manage.scoped.error":"An error occurred. You can download the logs below.","plugins.manage.scoped.info_1":"Homebridge scoped plugins have names beginning with {{ prefix }}.","plugins.manage.scoped.info_2":"For more information about scoped plugins and why to switch, see the wiki page {{ link }}.","plugins.manage.scoped.process":"This process will not affect your Homebridge/HomeKit accessories. You will not be able to cancel the process once it has started. It will:","plugins.manage.scoped.switch":"Switch To Scoped Plugin","plugins.manage.scoped.windows":'Online updates are not supported on Windows. You will need to install the new plugin and uninstall the old plugin manually. You should <span class="fw-bold">not</span> restart Homebridge until both steps are complete.',"plugins.manage.scoped_message":"Scoped plugins improve long-term reliability and ensure consistent maintenance by combining centralized oversight from the Homebridge team with continued involvement from the original maintainer.","plugins.manage.scoped_subtitle":"This plugin is scoped and verified.","plugins.manage.select_version":"\uC124\uCE58\uD560 \uBC84\uC804\uC744 \uC120\uD0DD\uD558\uC138\uC694","plugins.manage.uninstall":"\uC81C\uAC70","plugins.manage.uninstalled":"\uC81C\uAC70\uB428","plugins.manage.unverified_message":"\uAC80\uC99D\uB418\uC9C0 \uC54A\uC740 Homebridge \uD50C\uB7EC\uADF8\uC778\uC740 Homebridge \uD504\uB85C\uC81D\uD2B8 \uD300\uC758 \uAC80\uD1A0 \uACFC\uC815\uC744 \uAC70\uCE58\uC9C0 \uC54A\uC558\uC74C\uC744 \uB098\uD0C0\uB0C5\uB2C8\uB2E4. \uAC80\uC99D\uB418\uC9C0 \uC54A\uC558\uB2E4\uB294 \uAC83\uC774 \uBC18\uB4DC\uC2DC \uBE44\uD6A8\uC728\uC801\uC774\uAC70\uB098 \uC548\uC804\uC5D0 \uBB38\uC81C\uAC00 \uC788\uC74C\uC744 \uC758\uBBF8\uD558\uC9C0\uB294 \uC54A\uC2B5\uB2C8\uB2E4. \uC791\uC131\uC790\uAC00 \uB2E4\uC591\uD55C \uC774\uC720\uB85C \uAC80\uC99D\uC744 \uC694\uCCAD\uD558\uC9C0 \uC54A\uC558\uC744 \uC218\uB3C4 \uC788\uC2B5\uB2C8\uB2E4.","plugins.manage.unverified_subtitle":"This plugin \uC740(\uB294) \uAC80\uC99D\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.","plugins.manage.update":"\uC5C5\uB370\uC774\uD2B8","plugins.manage.updated":"\uC5C5\uB370\uC774\uD2B8\uB428","plugins.manage.verified_message":"\uAC80\uC99D\uB41C \uAC83\uC73C\uB85C \uD45C\uC2DC\uB41C Homebridge \uD50C\uB7EC\uADF8\uC778\uC740 \uCD5C\uC0C1\uC758 \uC2E4\uD589 \uBC29\uBC95\uACFC \uBB38\uC81C \uC5C6\uB294 \uC0AC\uC6A9\uC790 \uACBD\uD5D8\uC744 \uBCF4\uC7A5\uD558\uAE30 \uC704\uD574 Homebridge \uD504\uB85C\uC81D\uD2B8 \uD300\uC774 \uB2E4\uC591\uD55C \uC694\uAD6C \uC0AC\uD56D\uC744 \uAC80\uD1A0\uD55C \uD50C\uB7EC\uADF8\uC778\uC785\uB2C8\uB2E4.","plugins.manage.verified_subtitle":"This plugin \uC740(\uB294) \uAC80\uC99D\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.","plugins.placeholder_search_first":"\uC704 \uAC80\uC0C9\uCC3D\uC744 \uC0AC\uC6A9\uD574 \uCCAB \uD50C\uB7EC\uADF8\uC778\uC744 \uCC3E\uC544\uBCF4\uC138\uC694.","plugins.placeholder_search_none":"No results were found","plugins.placeholder_search_plugin":"\uC124\uCE58\uD560 \uD50C\uB7EC\uADF8\uC778 \uAC80\uC0C9\u2026","plugins.settings.custom.download_dump_file":"Download Dump File","plugins.settings.custom.homebridge-gsh.label_account_linked":"\uACC4\uC815 \uC5F0\uACB0\uB428","plugins.settings.custom.homebridge-gsh.label_link_account":"\uACC4\uC815 \uC5F0\uACB0","plugins.settings.custom.homebridge-gsh.message_about":"Homebridge Google Smart Home \uD50C\uB7EC\uADF8\uC778\uC744 \uC0AC\uC6A9\uD558\uBA74 Google Home \uC9C0\uC6D0 \uC2A4\uB9C8\uD2B8 \uC2A4\uD53C\uCEE4 \uB610\uB294 Google Home \uBAA8\uBC14\uC77C \uC571\uC5D0\uC11C Homebridge \uC561\uC138\uC11C\uB9AC\uB97C \uC81C\uC5B4 \uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","plugins.settings.custom.homebridge-gsh.message_account_link_required":"\uC774 \uAE30\uB2A5\uC744 \uC0AC\uC6A9\uD558\uB824\uBA74 Google \uB610\uB294 GitHub \uACC4\uC815\uC73C\uB85C \uB85C\uADF8\uC778\uD574\uC57C\uD569\uB2C8\uB2E4; Google Home \uBAA8\uBC14\uC77C \uC571\uC5D0 Homebridge \uC791\uC5C5\uC744 \uCD94\uAC00\uD560 \uB54C \uB3D9\uC77C\uD55C \uACC4\uC815\uC744 \uC0AC\uC6A9\uD574\uC57C\uD569\uB2C8\uB2E4.","plugins.settings.custom.homebridge-gsh.message_homebridge_restart_required":"\uBCC0\uACBD\uC0AC\uD56D\uC744 \uBC18\uC601\uD558\uB824\uBA74 Homebridge\uB97C \uB2E4\uC2DC \uC2DC\uC791\uD574\uC57C\uD569\uB2C8\uB2E4.","plugins.settings.deconz.dump_no_exist":"Homebridge deCONZ \uB364\uD504 \uD30C\uC77C\uC774 \uC544\uC9C1 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.","plugins.settings.hue.dump_no_exist":"Homebridge Hue \uB364\uD504 \uD30C\uC77C\uC774 \uC544\uC9C1 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.","plugins.settings.label_open_config_editor":"Config \uC5D0\uB514\uD130 \uC5F4\uAE30","plugins.settings.message_consult_documentation":"\uD50C\uB7EC\uADF8\uC778\uC744 \uC62C\uBC14\uB974\uAC8C \uAD6C\uC131\uD558\uB294 \uBC29\uBC95\uC5D0 \uB300\uD55C \uB0B4\uC6A9\uC740 \uD574\uB2F9 \uD50C\uB7EC\uADF8\uC778\uC758 \uBB38\uC11C\uB97C \uCC38\uACE0\uD574\uC8FC\uC138\uC694.","plugins.settings.message_manual_config_required":"\uC774 \uD50C\uB7EC\uADF8\uC778\uC740 Homebridge UI Config \uC5D0\uB514\uD130\uB97C \uC0AC\uC6A9\uD558\uC5EC \uC9C1\uC811 Config \uC815\uBCF4\uB97C \uCD94\uAC00\uD574\uC57C\uD569\uB2C8\uB2E4.","plugins.settings.plugin_config_saved":"\uD50C\uB7EC\uADF8\uC778 Config\uAC00 \uC800\uC7A5\uB418\uC5C8\uC2B5\uB2C8\uB2E4","plugins.settings.restart_required":"\uBCC0\uACBD\uC0AC\uD56D\uC744 \uBC18\uC601\uD558\uB824\uBA74 Homebridge \uC7AC\uC2DC\uC791\uD574\uC57C\uD569\uB2C8\uB2E4.","plugins.stats":"Plugin Statistics","plugins.stats_note":"Plugins cannot be installed from this page, this is provided just for interest.","plugins.status_installed":"\uC124\uCE58\uB428","plugins.support.list_1":"Homebridge plugins are the building blocks of Homebridge, allowing you to add support for new accessories and platforms. Plugins add support for smart lights, cameras, TVs, etc, for brands that don't natively support HomeKit. For example, to bring your Ring doorbells and cameras into HomeKit, you can install the <code>homebridge-ring</code> plugin.","plugins.support.list_2":"Homebridge plugins are created by public contributors in the Homebridge community, and are not typically associated with the Homebridge maintainers, nor with the manufacturers of the accessories themselves. If you have a question about a specific plugin, you should let the plugin developer know via the plugin's GitHub page.","plugins.support.list_3":"There are currently over 4,700 plugins available for Homebridge, so you should be able to find plugins to suit your needs. If you are a Javascript/TypeScript developer (or want to take the opportunity to learn), you can also create your own plugin and share it with the Homebridge community. Check out the Support section for some handy links to get you started.","plugins.support.list_4":"Some plugins allow you to create 'virtual/dummy' accessories, which are accessories that do not have a physical counterpart. These can be used to create virtual accessories in HomeKit, such as virtual switches, lights, or sensors. Try searching for <code>dummy</code> or <code>virtual</code> in the search bar to find some examples.","plugins.toast_failed_to_load_plugin_schema":"\uD50C\uB7EC\uADF8\uC778 \uAD6C\uC131 \uC2A4\uD0A4\uB9C8\uB97C \uB85C\uB4DC\uD558\uB294 \uB370 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4.","plugins.toast_failed_to_load_plugins":"\uD50C\uB7EC\uADF8\uC778 \uB85C\uB4DC \uC2E4\uD328","plugins.toast_failed_to_search_plugins":"Failed to search plugins","plugins.uninstall_remove_child_bridge":"Remove plugin child bridge?","plugins.uninstall_remove_child_bridges":"Remove {{ count }} plugin child bridges?","plugins.uninstall_remove_config_required":"\uC774 \uD50C\uB7EC\uADF8\uC778\uC744 \uC601\uAD6C\uC801\uC73C\uB85C \uC0AD\uC81C\uD558\uB294 \uACBD\uC6B0, Homebrdige\uB97C \uC7AC\uC2DC\uC791 \uD558\uAE30 \uC804\uC5D0 config.json\uC5D0\uC11C \uC774 \uD50C\uB7EC\uADF8\uC778\uC758 Config \uC815\uBCF4\uAC00 \uC81C\uAC70\uB418\uC5C8\uB294\uC9C0 \uD655\uC778\uD574\uC8FC\uC138\uC694.","plugins.uninstall_remove_confirmation":"{{ pluginName }} \uD50C\uB7EC\uADF8\uC778\uC744 \uC81C\uAC70\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?","plugins.uninstall_remove_plugin_config":"\uD50C\uB7EC\uADF8\uC778\uC758 config \uC815\uBCF4 \uC81C\uAC70","plugins.uninstall_warn_1":"When removing a child bridge, any accessories published by this bridge will be removed from the Homebridge cache.","plugins.uninstall_warn_2":"\uC774 \uC561\uC138\uC11C\uB9AC\uB294 HomeKit\uC5D0\uC11C '\uC751\uB2F5 \uC5C6\uC74C' \uC0C1\uD0DC\uB85C \uD45C\uC2DC\uB429\uB2C8\uB2E4. \uC774\uB97C \uC81C\uAC70\uD558\uB824\uBA74 HomeKit\uC5D0\uC11C \uD574\uB2F9 Bridge\uB97C \uC218\uB3D9\uC73C\uB85C \uC0AD\uC81C\uD574\uC57C \uD569\uB2C8\uB2E4. \uD648 \uC571\uC758 \uD648 \uC124\uC815 \uC139\uC158\uC5D0\uC11C \uC774\uB97C \uC218\uD589\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","reset.accessory_all.desc":"\uCE90\uC2DC\uC5D0\uC11C \uBAA8\uB4E0 \uC561\uC138\uC11C\uB9AC\uB97C \uC0AD\uC81C\uD569\uB2C8\uB2E4.","reset.accessory_all.list_1":"\uC544\uB798 \uC0AD\uC81C \uBC84\uD2BC\uC744 \uD074\uB9AD\uD558\uBA74 Homebridge\uAC00 \uC7AC\uC2DC\uC791\uB418\uBA70, \uAE30\uC874 \uC561\uC138\uC11C\uB9AC\uAC00 Homebridge\uC640 HomeKit\uC5D0\uC11C \uBAA8\uB450 \uC0AD\uC81C\uB429\uB2C8\uB2E4.","reset.accessory_all.list_2":"\uC5F0\uACB0\uB41C \uBAA8\uB4E0 HomeKit \uB370\uC774\uD130\uB3C4 \uC0AD\uC81C\uB429\uB2C8\uB2E4. \uC5EC\uAE30\uC5D0\uB294 \uBC29 \uC5F0\uACB0, \uC7A5\uBA74 \uBC0F \uC774 \uC561\uC138\uC11C\uB9AC\uAC00 \uC0AC\uC6A9\uD558\uB294 \uC790\uB3D9\uD654\uAC00 \uD3EC\uD568\uB429\uB2C8\uB2E4.","reset.accessory_all.list_3":"Homebridge\uAC00 \uC7AC\uC2DC\uC791\uB41C \uD6C4, \uD50C\uB7EC\uADF8\uC778\uC740 \uCC98\uC74C \uC124\uCE58\uB41C \uAC83\uCC98\uB7FC \uBAA8\uB4E0 \uC561\uC138\uC11C\uB9AC\uB97C \uB2E4\uC2DC \uCD94\uAC00\uD569\uB2C8\uB2E4.","reset.accessory_all.title":"\uBAA8\uB4E0 \uC561\uC138\uC11C\uB9AC \uC0AD\uC81C","reset.accessory_ind.bridge":"Bridge","reset.accessory_ind.desc":"Remove individual accessories from the cache.","reset.accessory_ind.done":"Finished removing accessories from the cache, check the log for confirmation and/or errors.","reset.accessory_ind.fail":"Failed to remove accessories from cache, check the log for errors.","reset.accessory_ind.list_1":"Some plugins don't clean up after themselves properly. If you have stale accessories, you can remove them from the cache. This function can also be used to reset an existing accessory in HomeKit.","reset.accessory_ind.list_2":"The accessories will be removed from Homebridge and HomeKit, along with their related room associations, scenes and automations.","reset.accessory_ind.list_3":"After Homebridge restarts, your plugins will re-add any removed accessories as if the plugin was being installed for the first time.","reset.accessory_ind.title":"Remove Individual Accessories","reset.accessory_ind.unknown":"Unknown Name","reset.accessory_reset":"Homebridge \uC561\uC138\uC11C\uB9AC \uCD08\uAE30\uD654","reset.action_is_irreversible":"\uC774 \uC791\uC5C5\uC744 \uC9C4\uD589\uD558\uBA74 \uB418\uB3CC\uB9B4 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uC9C4\uD589\uD558\uAE30 \uC804\uC5D0 \uC8FC\uC758\uAE4A\uAC8C \uC77D\uC5B4\uBCF4\uC138\uC694.","reset.bridge_accessories.desc":"Remove all accessories published by a child bridge from the cache.","reset.bridge_accessories.empty":"\uC561\uC138\uC11C\uB9AC\uB97C \uC0AD\uC81C\uD560 Bridge\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.","reset.bridge_accessories.list_1":"This function can be used to reset a plugin's existing accessories in HomeKit. They will be removed from Homebridge and HomeKit, and then re-added by the plugin as new accessories.","reset.bridge_accessories.list_2":"\uD558\uC704 Bridge\uC758 \uD398\uC5B4\uB9C1 \uC138\uBD80 \uC815\uBCF4\uC640 \uC0C1\uD0DC\uB294 \uBCC0\uACBD\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.","reset.bridge_accessories.title":"Bridge \uC561\uC138\uC11C\uB9AC \uC0AD\uC81C","reset.bridge_all.desc":"Reset all bridges by removing them from the cache. \uC5EC\uAE30\uC5D0\uB294 Homebridge\uC758 \uBA54\uC778 Bridge, \uD558\uC704 Bridge, \uC678\uBD80 \uC561\uC138\uC11C\uB9AC\uC758 Bridge\uAC00 \uD3EC\uD568\uB429\uB2C8\uB2E4.","reset.bridge_all.list_1":"This will reset the Homebridge bridge, all child bridges and bridges for external accessories from HomeKit.","reset.bridge_all.list_2":"Bridge\uAC00 HomeKit\uC5D0\uC11C \uC218\uB3D9\uC73C\uB85C \uC81C\uAC70\uB420 \uB54C\uAE4C\uC9C0, \uC561\uC138\uC11C\uB9AC\uAC00 HomeKit\uC5D0\uC11C '\uC751\uB2F5 \uC5C6\uC74C'\uC73C\uB85C \uD45C\uC2DC\uB429\uB2C8\uB2E4. \uC774\uB97C \uC81C\uAC70\uD558\uB824\uBA74 \uD648 \uC571\uC5D0\uC11C \uD648 \uC124\uC815 \u2192 \uD648 \uD5C8\uBE0C \uBC0F Bridge \u2192 {Bridge} \u2192 Bridge \uC0AD\uC81C\uB85C \uC774\uB3D9\uD558\uC2ED\uC2DC\uC624.","reset.bridge_all.list_3":"Homebridge\uC5D0\uC11C HomeKit\uC73C\uB85C \uC5F0\uACB0\uB41C \uBAA8\uB4E0 \uC561\uC138\uC11C\uB9AC, \uC7A5\uBA74 \uBC0F \uC790\uB3D9\uD654 \uC124\uC815\uC744 \uB2E4\uC2DC \uAD6C\uC131\uD574\uC57C \uD569\uB2C8\uB2E4.","reset.bridge_all.list_4":"HomeKit\uC5D0 Homebridge Bridge\uB97C \uC5F0\uACB0\uD558\uAE30 \uC704\uD55C PIN\uC774 \uBCC0\uACBD\uB429\uB2C8\uB2E4. \uC5F0\uACB0 \uD574\uC81C \uD6C4 Homebridge \uAD6C\uC131\uC5D0\uC11C \uC0C8 \uAC12\uC744 \uD655\uC778\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","reset.bridge_all.title":"Reset All Bridges","reset.bridge_ind.desc":"Reset an individual bridge by removing it from the cache. \uC774 Bridge\uB294 \uD558\uC704 Bridge\uC774\uAC70\uB098 \uCE74\uBA54\uB77C \uB610\uB294 TV\uC640 \uAC19\uC740 \uC678\uBD80 \uC561\uC138\uC11C\uB9AC\uB97C \uC704\uD55C Bridge\uC77C \uC218 \uC788\uC2B5\uB2C8\uB2E4.","reset.bridge_ind.desc_child_active":"Homebridge has detected that these child bridges are in-use. Once removed, their accessories will be removed from the Homebridge cache. If paired with HomeKit, the bridge's accessories will show as 'No Response', and the bridge will need to be removed via the Home app. The child bridge's pairing information will be changed. Once Homebridge has restarted, the plugin will create the new child bridge and accessories. The new bridge will need to be re-paired with HomeKit. You can view the new pairing information from the corresponding plugin's bridge settings page.","reset.bridge_ind.desc_child_stale":"Homebridge has detected that these bridges are not in-use, but double-check before deleting. They could be left-over from previously uninstalled plugins. If paired with HomeKit, the accessories will show as 'No Response', and the bridge will need to be removed via the Home app.","reset.bridge_ind.desc_non_child":"Homebridge has detected that these bridges are in-use. You can remove them from the cache, but they will likely be re-added by the plugin when Homebridge restarts. The pairing information will remain unchanged.","reset.bridge_ind.done":"Finished resetting bridges, check the log for confirmation and/or errors.","reset.bridge_ind.fail":"Failed to reset bridges, check the log for errors.","reset.bridge_ind.head_child_active":"Active Child Bridges","reset.bridge_ind.head_child_stale":"Stale Child Bridges","reset.bridge_ind.head_non_child":"Non Child Bridges","reset.bridge_ind.title":"Reset Individual Bridges","reset.bridges.desc":"Homebridge, \uC678\uBD80 \uC561\uC138\uC11C\uB9AC \uB610\uB294 \uD558\uC704 Bridge\uB97C HomeKit\uC5D0 \uC5F0\uACB0\uD558\uB294 \uB370 \uBB38\uC81C\uAC00 \uC788\uB294 \uACBD\uC6B0, HomeKit\uC5D0\uC11C \uC5F0\uACB0\uC744 \uD574\uC81C\uD558\uACE0 \uB2E4\uC2DC \uC2DC\uB3C4\uD574\uC57C \uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","reset.bridges.empty":"HomeKit\uC5D0\uC11C \uC5F0\uACB0\uC744 \uD574\uC81C\uD560 Bridge\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.","reset.bridges.title":"Bridges","reset.clear_cache_single.list_3":"\uCE90\uC2DC\uC5D0\uC11C \uC561\uC138\uC11C\uB9AC\uB97C \uC81C\uAC70\uD558\uBA74 \uC5F0\uACB0\uB41C \uBAA8\uB4E0 HomeKit \uB370\uC774\uD130\uAC00 \uC0AD\uC81C\uB429\uB2C8\uB2E4. \uC5EC\uAE30\uC5D0\uB294 \uC774 \uC561\uC138\uC11C\uB9AC\uB97C \uC0AC\uC6A9\uD558\uB294 \uBAA8\uB4E0 \uC7A5\uBA74 \uBC0F \uC790\uB3D9\uD654\uAC00 \uD3EC\uD568\uB429\uB2C8\uB2E4.","reset.delete_success":"Homebridge\uB97C \uB2E4\uC2DC \uC2DC\uC791\uD558\uACE0 \uC561\uC138\uC11C\uB9AC \uCE90\uC2DC\uB97C \uC0AD\uC81C\uD569\uB2C8\uB2E4.","reset.error_message":"\uC561\uC138\uC11C\uB9AC \uCE90\uC2DC\uB97C \uBD88\uB7EC\uC62C \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uCE90\uC2DC\uB41C \uC561\uC138\uC11C\uB9AC\uAC00 \uC5C6\uC744 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","reset.failed_to_reset":"Homebridg \uCD08\uAE30\uD654\uAC00 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4. \uB85C\uADF8\uB97C \uD655\uC778\uD574\uC8FC\uC138\uC694.","reset.force_restart_hb_help_text":"HB-Service\uC758 \uC11C\uBE44\uC2A4\uAC00 \uC644\uC804\uD788 \uC7AC\uC2DC\uC791\uB418\uAC8C \uD558\uB824\uBA74 \uC774 \uC791\uC5C5\uC744 \uC0AC\uC6A9\uD574\uC8FC\uC138\uC694.","reset.no_accessories":"\uC0AD\uC81C\uD560 \uCE90\uC2DC\uB41C \uC561\uC138\uC11C\uB9AC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.","restart.child_bridge_list":"\uBCC0\uACBD \uC0AC\uD56D\uC744 \uC801\uC6A9\uD558\uB824\uBA74 \uB2E4\uC74C \uD558\uC704 Bridge\uB97C \uC7AC\uC2DC\uC791\uD558\uC138\uC694:","restart.child_bridges":"\uBCC0\uACBD \uC0AC\uD56D\uC744 \uC801\uC6A9\uD558\uB824\uBA74 \uD50C\uB7EC\uADF8\uC778\uC758 \uD558\uC704 Bridge\uB97C \uC7AC\uC2DC\uC791\uD558\uC138\uC694.","restart.label_restart_command_executed":"\uC7AC\uC2DC\uC791 \uBA85\uB839 \uC2E4\uD589\uB428","restart.please_wait_while_server_restarts":"\uC7A0\uC2DC\uB9CC \uAE30\uB2E4\uB824\uC8FC\uC138\uC694. \uC11C\uBC84\uAC00 \uB2E4\uC2DC \uC628\uB77C\uC778 \uC0C1\uD0DC\uAC00 \uB418\uBA74 \uC790\uB3D9\uC73C\uB85C \uB2E4\uB978 \uD398\uC774\uC9C0\uB85C \uC774\uB3D9\uD569\uB2C8\uB2E4.","restart.server_is_taking_long_time_to_restart":"\uC11C\uBC84 \uC7AC\uC2DC\uC791\uC5D0 \uB9CE\uC740 \uC2DC\uAC04\uC774 \uC18C\uC694\uB418\uACE0 \uC788\uC2B5\uB2C8\uB2E4. Homebridge \uC11C\uBE44\uC2A4\uB97C \uC218\uB3D9\uC73C\uB85C \uB2E4\uC2DC \uBD88\uB7EC\uC640\uC57C \uD560 \uC218\uB3C4 \uC788\uC2B5\uB2C8\uB2E4.","restart.service_ready":"Homebridge \uC11C\uBC84 \uC900\uBE44","restart.title_restart":"Homebridge \uB2E4\uC2DC \uC2DC\uC791","restart.toast_server_restart_error":"\uC7AC\uC2DC\uC791 \uBA85\uB839\uC744 \uC11C\uBC84\uB85C \uBCF4\uB0B4\uB294 \uC911\uC5D0 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4","restart.toast_server_restart_timeout":"\uC11C\uBC84\uAC00 \uB2E4\uC2DC \uC628\uB77C\uC778 \uC0C1\uD0DC\uB85C \uB3CC\uC544\uC624\uB294\uB370 \uB9CE\uC740 \uC2DC\uAC04\uC774 \uC18C\uC694\uB418\uACE0 \uC788\uC2B5\uB2C8\uB2E4","restart.toast_server_restarted":"\uC11C\uBC84 \uC7AC\uC2DC\uC791\uB428","restart.ui_online":"Homebridge UI \uC628\uB77C\uC778","rpi.throttled.currently_message":"\uC774 Raspberry Pi\uC758 \uC804\uC555(Low voltage)\uC774 \uBD88\uC548\uC815 \uD569\uB2C8\uB2E4. \uC804\uC555\uC774 \uB0AE\uC740\uACBD\uC6B0 \uC2DC\uC2A4\uD15C\uC774 \uBD88\uC548\uC815\uD574\uC9C0\uACE0 SD\uCE74\uB4DC\uAC00 \uC190\uC0C1\uB420 \uC218 \uC788\uC2B5\uB2C8\uB2E4. Pi \uBC84\uC804\uC5D0 \uB9DE\uAC8C \uC801\uC808\uD55C \uC804\uC6D0\uC744 \uACF5\uAE09 \uD558\uAC70\uB098 \uCF00\uC774\uBE14\uC744 \uC810\uAC80 \uD558\uC138\uC694.","rpi.throttled.previously_message":"\uB9C8\uC9C0\uB9C9 \uC7AC\uBD80\uD305 \uC774\uD6C4 Raspberry Pi\uB85C \uBD80\uD130 \uC804\uC555 \uBD80\uC871 \uC774\uBCA4\uD2B8\uB97C \uC218\uC2E0\uD558\uC600\uC2B5\uB2C8\uB2E4. Pi \uBC84\uC804\uC5D0 \uB9DE\uAC8C \uC801\uC808\uD55C \uC804\uC6D0\uC744 \uACF5\uAE09 \uD558\uAC70\uB098 \uCF00\uC774\uBE14\uC744 \uC810\uAC80 \uD558\uC138\uC694.","rpi.throttled.undervoltage_title":"\uC800\uC804\uC555","settings.accessory.debug":"Accessory Debug Mode","settings.accessory.debug_desc":"If enabled, the Homebridge UI will log debug level messages to the console.","settings.cache.desc":"Homebridge\uB294 \uC561\uC138\uC11C\uB9AC\uB97C \uCE90\uC2DC\uC5D0 \uC720\uC9C0\uD558\uC5EC \uB9E4\uBC88 \uC7AC\uC2DC\uC791\uD560 \uB54C HomeKit\uC5D0\uC11C \uC81C\uAC70\uB418\uC5C8\uB2E4\uAC00 \uB2E4\uC2DC \uCD94\uAC00\uB418\uC9C0 \uC54A\uB3C4\uB85D \uD569\uB2C8\uB2E4. \uADF8\uB7EC\uB098 \uC774 \uCE90\uC2DC\uAC00 \uC2E4\uC81C Homebridge\uC758 \uC561\uC138\uC11C\uB9AC\uC640 \uB3D9\uAE30\uD654\uB418\uC9C0 \uC54A\uC744 \uB54C\uB3C4 \uC788\uC2B5\uB2C8\uB2E4.","settings.changes.saved":"\uBCC0\uACBD \uC0AC\uD56D\uC774 \uC800\uC7A5\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uC801\uC6A9\uD558\uB824\uBA74 \uC7AC\uC2DC\uC791\uC774 \uD544\uC694\uD569\uB2C8\uB2E4.","settings.datetime.incorrect":"Homebridge \uC11C\uBC84\uC758 \uB0A0\uC9DC\uC640 \uC2DC\uAC04\uC774 \uC62C\uBC14\uB974\uC9C0 \uC54A\uC740 \uAC83 \uAC19\uC2B5\uB2C8\uB2E4. \uC774\uB85C \uC778\uD574 \uC608\uC0C1\uCE58 \uBABB\uD55C \uBB38\uC81C\uAC00 \uBC1C\uC0DD\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uC790\uC138\uD55C \uB0B4\uC6A9\uC744 \uBCF4\uB824\uBA74 \uC5EC\uAE30\uB97C \uD074\uB9AD\uD558\uC138\uC694.","settings.display.blue":"\uD30C\uB791","settings.display.bluegrey":"\uCCAD\uD68C\uC0C9","settings.display.brown":"\uAC08\uC0C9","settings.display.cyan":"\uCCAD\uB85D\uC0C9","settings.display.dark":"\uC5B4\uB450\uC6B4","settings.display.deep_purple":"\uC9C4\uD55C \uBCF4\uB77C","settings.display.green":"\uB179\uC0C9","settings.display.grey":"\uD68C\uC0C9","settings.display.indigo":"\uB0A8\uC0C9","settings.display.lang":"\uC5B8\uC5B4","settings.display.light":"\uBC1D\uC740","settings.display.lighting_mode":"\uC870\uBA85 \uBAA8\uB4DC","settings.display.menu_default":"Default","settings.display.menu_freeze":"Keep Closed (On Desktop)","settings.display.menu_mode":"Menu Mode","settings.display.orange":"\uC8FC\uD669","settings.display.pink":"\uBD84\uD64D","settings.display.purple":"\uBCF4\uB77C","settings.display.red":"\uBE68\uAC15","settings.display.show_betas":"Prefer Beta Versions","settings.display.teal":"\uCCAD\uB85D","settings.display.temp_units":"\uC628\uB3C4 \uB2E8\uC704","settings.display.temp_units.c":"\uC12D\uC528 (\xB0C)","settings.display.temp_units.f":"\uD654\uC528 (\xB0F)","settings.display.theme":"\uD14C\uB9C8","settings.display.wallpaper":"Wallpaper","settings.display.wallpaper_intro":"Upload a wallpaper for your Homebridge UI. This is currently shown on the login screen.","settings.display.wallpaper_rule":"You can choose an image file which is up to {{ maxFileSizeText }}.","settings.display.wallpaper_rule2":"You will need to click Save to upload the wallpaper to your Homebridge storage directory.","settings.display.wallpaper_success":"Wallpaper was successfully updated.","settings.general.title_display":"\uB514\uC2A4\uD50C\uB808\uC774","settings.general.title_general":"\uC77C\uBC18","settings.linux.restart":"Restart Command","settings.linux.restart_desc":"If no restart command is set the process will terminate with a non-zero exit code.","settings.linux.shutdown":"Shutdown Command","settings.linux.shutdown_desc":"If no shutdown command is set the process will terminate with a non-zero exit code.","settings.linux.temp":"Temperature File Path","settings.linux.temp_desc":"If you are running Homebridge on a Raspberry Pi, you can enter the path to the OS temperature file here. This will display the current temperature on the UI status page.","settings.matter.desc":"Enables Matter accessories on the main bridge. If only using Matter with child bridges, this setting does not need to be enabled - child bridges have independent Matter settings in their plugin bridge settings.","settings.matter.enabled_desc":"Whether to start a Matter instance and allow plugins to expose Matter accessories.","settings.matter.port":"Port","settings.matter.port_desc":"This must be between 1025 and 65533, and unique to any other configured port.","settings.matter.title":"Matter Settings","settings.mdns_advertiser":"mDNS \uAD11\uACE0\uC790","settings.mdns_advertiser_exp":"\uC2E4\uD5D8\uC801","settings.mdns_advertiser_help":"Homebridge\uB97C HomeKit\uC5D0 \uC5F0\uACB0\uD558\uB294 \uB370 \uBB38\uC81C\uAC00 \uC788\uB294 \uACBD\uC6B0(\uD648 \uC571\uC5D0\uC11C \uBAA8\uB4E0 \uC561\uC138\uC11C\uB9AC\uAC00 '\uC751\uB2F5 \uC5C6\uC74C'\uC73C\uB85C \uD45C\uC2DC\uB418\uB294 \uACBD\uC6B0), \uB2E4\uB978 mDNS \uAD11\uACE0\uC790\uB97C \uC0AC\uC6A9\uD574 \uBCF4\uC138\uC694.","settings.mdns_advertiser_not_connected":"\uC5F0\uACB0\uB418\uC9C0 \uC54A\uC74C","settings.mdns_advertiser_rec":"\uAD8C\uC7A5","settings.name":"Homebridge Name","settings.network.hb_package":"Homebridge Module Path","settings.network.hb_package_desc":"If you have multiple versions of Homebridge installed, you can specify the path to the version you want to use here.","settings.network.host":"Host IP Address","settings.network.host_desc":"The host IP address to listen on. In most cases this will be <code>::</code> or <code>0.0.0.0</code>.","settings.network.mdns_advertise":"Advertise Via mDNS","settings.network.mdns_advertise_help":"Enable mDNS advertising (using Bonjour) for your Homebridge UI, making it discoverable as an HTTP service on your local network.","settings.network.message_network_interface":"\uB124\uD2B8\uC6CC\uD06C \uC778\uD130\uD398\uC774\uC2A4\uAC00 \uC120\uD0DD\uB418\uC9C0 \uC54A\uC73C\uBA74, Homebridge\uB294 \uC790\uB3D9\uC73C\uB85C \uBC1C\uC1A1\uD560 \uC778\uD130\uD398\uC774\uC2A4 \uACB0\uC815\uD569\uB2C8\uB2E4.","settings.network.port_end":"End Port","settings.network.port_end_desc":"Control the end of the range of ports that separate accessories (like camera or television) should run on. This must be between 1025 and 65533, and higher than the start port above.","settings.network.port_hb":"Homebridge \uD3EC\uD2B8","settings.network.port_hb_desc":"Homebridge Bridge\uB97C \uC2E4\uD589\uD560 \uD3EC\uD2B8 \uBC88\uD638\uC785\uB2C8\uB2E4. 1025\uC5D0\uC11C 65533 \uC0AC\uC774\uC5EC\uC57C \uD558\uBA70 Homebridge UI \uD3EC\uD2B8\uC640 \uB3D9\uC77C\uD558\uC9C0 \uC54A\uC544\uC57C \uD569\uB2C8\uB2E4.","settings.network.port_start":"Start Port","settings.network.port_start_desc":"Control the start of the range of ports that separate accessories (like camera or television) should run on. This must be between 1025 and 65533, and lower than the end port below.","settings.network.port_ui":"UI \uD3EC\uD2B8","settings.network.port_ui_desc":"Homebridge UI\uB97C \uC2E4\uD589\uD560 \uD3EC\uD2B8 \uBC88\uD638\uC785\uB2C8\uB2E4.","settings.network.proxy":"Reverse Proxy Hostname","settings.network.proxy_desc":"When running behind a reverse proxy you may need to enter the hostname you use to access the UI.","settings.network.title_network":"\uB124\uD2B8\uC6CC\uD06C","settings.network.title_network_interfaces":"\uB124\uD2B8\uC6CC\uD06C \uC778\uD130\uD398\uC774\uC2A4","settings.network.title_security":"Security","settings.network.title_terminal":"Logging & Terminal","settings.network.webroot":"Webroot Path","settings.network.webroot_desc":"This can be configured if you want to access the Homebridge UI under a specific URL path.","settings.reset_bridge.error":"Failed to reset bridge.","settings.security.auth":"Authentication","settings.security.auth_desc":"Whether to enable authentication for the Homebridge UI with a username and password.","settings.security.cert":"Certificate Path","settings.security.https":"Enable HTTPS","settings.security.https_configure":"Configure HTTPS Settings","settings.security.https_desc":"Enable HTTPS using an auto-generated self-signed certificate or by providing your own certificate files.","settings.security.https_enable":"Enable HTTPS","settings.security.https_enable_desc":"Secure your Homebridge web interface with HTTPS / SSL encryption.","settings.security.https_raspbian":"HTTPS is already enabled by default when running the Homebridge Raspbian image {{ link }}.","settings.security.key":"Private Key Path","settings.security.pass":"PKCS#12 Certificate Passphrase","settings.security.pass_optional":"Optional - only required if your certificate is password protected","settings.security.pfx":"PKCS#12 Certificate Path","settings.security.selfsigned_hostnames":"Certificate Hostnames","settings.security.selfsigned_hostnames_desc":"Comma-separated list of hostnames or IP addresses to include in the certificate (e.g., localhost, 127.0.0.1, homebridge.local, 192.168.1.100)","settings.security.ssl_mode_keycert":"Upload Certificate Files","settings.security.ssl_mode_keycert_desc":"Upload your own private key and certificate files","settings.security.ssl_mode_off":"Disable HTTPS","settings.security.ssl_mode_off_desc":"Turn off SSL encryption.","settings.security.ssl_mode_pfx":"Upload PFX Certificate","settings.security.ssl_mode_pfx_desc":"Upload a PKCS#12 (.pfx or .p12) certificate file","settings.security.ssl_mode_selfsigned":"Self-Signed Certificate","settings.security.ssl_mode_selfsigned_desc":"Automatically generate a free self-signed certificate","settings.security.ui_control":"Accessory Control Lists","settings.security.ui_control_desc":"Define which bridges and bridged accessories can be controlled or blocked by the Homebridge UI.","settings.security.ui_control_desc_2":"Allow the UI to control the accessories on a bridge by toggling on the switch below.","settings.service.debug_tooltip":"\uC77C\uBD80 \uD50C\uB7EC\uADF8\uC778\uC740 \uB514\uBC84\uADF8 \uC218\uC900\uC758 \uB85C\uADF8\uB97C \uD65C\uC131\uD654\uD558\uB824\uBA74 DEBUG {{ link }} \uD658\uACBD \uBCC0\uC218\uB97C \uC124\uC815\uD574\uC57C \uD569\uB2C8\uB2E4.","settings.service.node_tooltip":"\uC774 \uD504\uB85C\uC138\uC2A4\uC758 Node.js \uB7F0\uD0C0\uC784 \uC635\uC158\uC785\uB2C8\uB2E4. \uC798 \uC54C\uACE0 \uC788\uB294 \uACBD\uC6B0\uAC00 \uC544\uB2C8\uB77C\uBA74 \uBE48\uCE78\uC73C\uB85C \uB450\uB294 \uAC83\uC774 \uC88B\uC2B5\uB2C8\uB2E4.","settings.startup.debug":"Homebridge \uB514\uBC84\uADF8 \uBAA8\uB4DC","settings.startup.debug_desc_v1":"Homebridge\uAC00 \uB354 \uC790\uC138\uD55C \uB85C\uADF8\uB97C \uCD9C\uB825\uD558\uB3C4\uB85D \uC124\uC815\uD558\uB824\uBA74 \uD65C\uC131\uD654\uD558\uC138\uC694. \uC774 \uC124\uC815\uC740 \uBA54\uC778 Homebridge Bridge\uC640 \uBAA8\uB4E0 \uD558\uC704 Bridge\uC5D0 \uC801\uC6A9\uB429\uB2C8\uB2E4. \uC77C\uBD80 \uD50C\uB7EC\uADF8\uC778\uC740 \uC774 \uC124\uC815\uC744 \uB530\uB974\uBA70 \uB354 \uC790\uC138\uD55C \uB85C\uADF8\uB97C \uCD9C\uB825\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","settings.startup.debug_desc_v2":"Homebridge\uAC00 \uB354 \uC790\uC138\uD55C \uB85C\uADF8\uB97C \uCD9C\uB825\uD558\uB3C4\uB85D \uC124\uC815\uD558\uB824\uBA74 \uD65C\uC131\uD654\uD558\uC138\uC694. \uC774 \uC124\uC815\uC740 \uBA54\uC778 Homebridge Bridge\uC5D0 \uC801\uC6A9\uB429\uB2C8\uB2E4. \uD558\uC704 Bridge\uC758 \uC124\uC815\uC740 \uD50C\uB7EC\uADF8\uC778 \uD398\uC774\uC9C0\uC5D0\uC11C \uD558\uC704 Bridge \uC124\uC815\uC5D0\uC11C \uCC3E\uC744 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uC77C\uBD80 \uD50C\uB7EC\uADF8\uC778\uC740 \uC774 \uC124\uC815\uC744 \uB530\uB974\uBA70 \uB354 \uC790\uC138\uD55C \uB85C\uADF8\uB97C \uCD9C\uB825\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","settings.startup.insecure":"Enable UI Accessory Control","settings.startup.insecure_desc":"Homebridge UI\uB97C \uD1B5\uD574 \uC561\uC138\uC11C\uB9AC\uB97C \uC81C\uC5B4\uD558\uB824\uBA74 Homebridge\uB97C \uBE44\uBCF4\uC548 \uBAA8\uB4DC\uC5D0\uC11C \uC2E4\uD589\uD574\uC57C \uD569\uB2C8\uB2E4.","settings.startup.keep_accessories":"\uC81C\uAC70\uB41C \uD50C\uB7EC\uADF8\uC778\uC758 \uC561\uC138\uC11C\uB9AC \uC720\uC9C0","settings.startup.keep_accessories_desc":"\uD65C\uC131\uD654\uD558\uBA74, \uD50C\uB7AB\uD3FC \uD50C\uB7EC\uADF8\uC778\uC758 \uC561\uC138\uC11C\uB9AC\uB294 \uD50C\uB7EC\uADF8\uC778\uC744 \uC0AD\uC81C\uD55C \uD6C4\uC5D0\uB3C4 \uCE90\uC2DC\uC5D0 \uB0A8\uC544 \uC788\uC2B5\uB2C8\uB2E4. \uB098\uC911\uC5D0 \uD50C\uB7EC\uADF8\uC778\uC744 \uB2E4\uC2DC \uC124\uCE58\uD558\uB824\uB294 \uACBD\uC6B0 \uC720\uC6A9\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","settings.startup.metrics":"Enable Server Metric Monitoring","settings.startup.metrics_desc":"When enabled, the Homebridge UI will collect and show CPU and memory stats on the status page.","settings.startup.scheduled_restart":"Scheduled Restart Cron","settings.startup.scheduled_restart_desc":"Schedule automatic restarts relative to your timezone using a cron expression. Leave empty to disable. Create a cron expression {{ link }}.","settings.startup.scheduled_restart_desc_2":"You can apply this setting per child bridge from the plugin bridge configuration.","settings.startup.session":"Session Timeout","settings.startup.session_days":"days","settings.startup.session_desc":"The number of seconds before a user will be logged out of the UI. Defaults to 8 hours.","settings.startup.session_hours":"hours","settings.startup.session_inactivity_based":"Inactivity-Based Session Refresh","settings.startup.session_inactivity_based_desc":"When enabled, the session will automatically refresh on navigation to prevent logout during active use.","settings.startup.session_minutes":"minutes","settings.terminal.buffer_size":"Terminal Buffer Character Size","settings.terminal.buffer_size_help":"Amount of terminal output to preserve for persistent sessions. Larger values use more memory.","settings.terminal.log_max":"Log Max Size","settings.terminal.log_max_desc":"The max log size (bytes). Set to -1 to disable log truncation.","settings.terminal.log_truncate":"Log Truncate Size","settings.terminal.log_truncate_desc":"The size (bytes) to truncate the log to once it goes over the max size specified above.","settings.terminal.persistence":"Terminal Session Persistence","settings.terminal.persistence_confirm_message":"Disabling terminal session persistence will terminate your current terminal session.","settings.terminal.persistence_confirm_title":"Disable Terminal Session Persistence","settings.terminal.persistence_help":"When enabled, terminal sessions will persist when navigating away and can be resumed when returning to the terminal page (or status page widget). Terminal sessions are shared across Homebridge UI admin users.","settings.terminal.warning":"Hide Terminal Termination Warning","settings.terminal.warning_help":"When enabled, the warning dialog will not be shown before terminating non-persistent terminal sessions.","settings.title_startup_options":"\uC2DC\uC791 \uC635\uC158","settings.unpair_bridge.load_error":"\uD398\uC5B4\uB9C1\uB41C Bridge\uB97C \uBD88\uB7EC\uC624\uB294 \uB370 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4.","settings.warning_pwa":"This setting cannot be changed when accessing the UI from a PWA, please use a regular browser.","settings.warning_webroot":"Homebridge does not have write access to the served <code>index.html</code> file. To set up a webroot, please fix this issue and restart the Homebridge service.","setup.button_get_started":"\uC124\uCE58 \uB9C8\uBC95\uC0AC \uC2DC\uC791","setup.create_account":"\uACC4\uC815 \uC0DD\uC131","setup.intro":"If you are setting up for the first time, or if you just need to reset the password for your existing Homebridge setup, then choose <strong>Get Started</strong>.","setup.welcome_to_homebridge":"Homebridge\uC5D0 \uC624\uC2E0 \uAC83\uC744 \uD658\uC601\uD569\uB2C8\uB2E4",setup_wizard_complete:"Restore Complete!",setup_wizard_complete_title:"\uCD95\uD558\uD569\uB2C8\uB2E4!",setup_wizard_completed:"\uC124\uCE58\uAC00 \uC644\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uC774\uC81C Homebridge\uB97C \uC0AC\uC6A9\uD560 \uC900\uBE44\uAC00 \uB418\uC5C8\uC2B5\uB2C8\uB2E4.",setup_wizard_create_info:"Once Homebridge is set up, you can set up 2FA on your account, or disable the need for authentication altogether.",setup_wizard_page_title:"Setup Homebridge",setup_wizard_restore:"\uBC31\uC5C5\uC5D0\uC11C \uBCF5\uC6D0\uD558\uAE30",setup_wizard_restoring:"Restoring Backup...",setup_wizard_starting:"Starting Homebridge...","status.code_scan":"HomeKit\uC5D0 \uCD94\uAC00\uD558\uB824\uBA74 \uC2A4\uCE94\uD558\uC138\uC694","status.cpu.load":"\uB85C\uB4DC","status.cpu.temp":"\uC628\uB3C4","status.cpu.title_cpu":"CPU","status.credits.plugins_thanks":"Homebridge plugins are created by awesome developers in the Homebridge community.","status.credits.supporters":"Supporters","status.credits.title":"Credits","status.credits.translations":"Translations","status.credits.translations_thanks":"Homebridge UI translations are provided by the community, with special thanks to:","status.homebridge.checking":"\uC5C5\uB370\uC774\uD2B8 \uD655\uC778 \uC911\u2026","status.homebridge.up_to_date":"\uCD5C\uC2E0 \uC0C1\uD0DC","status.memory.label_available":"\uAC00\uB2A5","status.memory.label_total":"\uC804\uCCB4","status.memory.title_memory":"\uBA54\uBAA8\uB9AC","status.network.received_per_second":"\uC218\uC2E0\uB428","status.network.sent_per_second":"\uC804\uC1A1","status.network.title_network":"\uB124\uD2B8\uC6CC\uD06C Activity","status.readiness.node_no":"Your version of Node.js is not compatible with {{ app }}.","status.readiness.node_yes":"Your version of Node.js is compatible with {{ app }}.","status.readiness.title":"{{ app }} Readiness","status.services.label_not_enabled":"Not Enabled","status.services.label_not_running":"\uC2E4\uD589\uB418\uC9C0 \uC54A\uC74C","status.services.label_running":"\uC2E4\uD589 \uC911","status.services.updates":"Update Information","status.uptime.title_uptime":"\uAC00\uB3D9 \uC2DC\uAC04","status.widget.accessories.choose_accessories":"\uC774 \uC704\uC82F\uC5D0 \uB098\uD0C0\uB0A0 \uC561\uC138\uC11C\uB9AC\uB97C \uC561\uC138\uC11C\uB9AC \uD0ED\uC5D0\uC11C \uC120\uD0DD\uD574\uC8FC\uC138\uC694.","status.widget.account_1":"The widget layout is shared among all Homebridge UI users.","status.widget.account_2":"Admin users can modify the layout, while non-admin users cannot make changes.","status.widget.add.label_pairing_code":"\uD398\uC5B4\uB9C1 \uCF54\uB4DC","status.widget.add.matter_pairing_code":"Matter Pairing Code","status.widget.bridge.restart_error":"Failed to restart child bridge.","status.widget.clock":"\uC2DC\uACC4","status.widget.clock_dateformat":"\uB0A0\uC9DC \uD615\uC2DD","status.widget.clock_timeformat":"\uC2DC\uAC04 \uD615\uC2DD","status.widget.expand_docker":"Expand Docker Container Information","status.widget.font_size":"\uAE00\uAF34 \uD06C\uAE30","status.widget.font_weight":"\uAE00\uAF34 \uAD75\uAE30","status.widget.hide_node_info":"Hide Node.js Updates","status.widget.hide_npm":"Show npm Version","status.widget.hide_on_mobile":"\uCEF4\uD329\uD2B8 \uBDF0\uC5D0\uC11C \uC228\uAE30\uAE30(\uBAA8\uBC14\uC77C \uB514\uC2A4\uD50C\uB808\uC774)","status.widget.homebridge_logs":"Homebridge \uB85C\uADF8","status.widget.info":"\uC2DC\uC2A4\uD15C \uC815\uBCF4","status.widget.info.arch":"Arch.","status.widget.info.config_path":"Config \uACBD\uB85C","status.widget.info.docker":"Docker","status.widget.info.docker_update_message":"Updating the Docker container requires manually pulling the latest image and restarting the container. Homebridge does not perform this automatically. Refer to your Docker image's documentation for update instructions.","status.widget.info.docker_update_title":"Docker Container Update","status.widget.info.hostname":"\uD638\uC2A4\uD2B8\uBA85","status.widget.info.ipv4":"IPv4","status.widget.info.ipv6":"IPv6","status.widget.info.no":"No","status.widget.info.node_major":"Node.js Major Versions","status.widget.info.node_next_no":"Your current architecture ({{ architecture }}) is 32-bit, which is not supported. You will need to migrate to a 64-bit system. Please use Node.js v22 instead, which we will be supporting until April 2027.","status.widget.info.node_next_yes":"Your current architecture ({{ architecture }}) supports Node.js v24, so you can upgrade when you are ready.","status.widget.info.node_unsupp":"Unsupported","status.widget.info.node_unsupp_message":"\uD604\uC7AC Homebridge\uAC00 \uACF5\uC2DD\uC801\uC73C\uB85C \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uB294 \uBC84\uC804\uC758 Node.js\uB97C \uC2E4\uD589 \uC911\uC785\uB2C8\uB2E4. \uC9C0\uC6D0\uB418\uB294 \uBC84\uC804\uC73C\uB85C \uBCC0\uACBD\uD558\uB294 \uAC83\uC744 \uACE0\uB824\uD574\uBCF4\uC2DC\uAE30 \uBC14\uB78D\uB2C8\uB2E4.","status.widget.info.node_update_message":"Homebridge\uB97C \uC2E4\uD589\uD558\uB824\uBA74 \uC2DC\uC2A4\uD15C\uC5D0 Node.js\uAC00 \uC124\uCE58\uB418\uC5B4 \uC788\uC5B4\uC57C \uD569\uB2C8\uB2E4. \uC0C8\uB85C\uC6B4 \uAE30\uB2A5\uC744 \uC9C0\uC6D0\uD558\uAE30 \uC704\uD574 \uB54C\uB54C\uB85C Node.js \uB7F0\uD0C0\uC784\uC744 \uC5C5\uB370\uC774\uD2B8\uD574\uC57C \uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. Homebridge(\uBC0F \uAC80\uC99D\uB41C \uD50C\uB7EC\uADF8\uC778)\uB294 Node.js\uC758 \uBAA8\uB4E0 \uD604\uC7AC Active \uBC0F Maintenance LTS \uB9B4\uB9AC\uC2A4\uB97C \uC9C0\uC6D0\uD569\uB2C8\uB2E4.","status.widget.info.node_update_message_2":"For Docker/Synology users, the Node.js version is managed by the Docker image or Synology package. You can hide Node.js update information using the widget settings.","status.widget.info.nodejs_path":"Node.js \uACBD\uB85C","status.widget.info.os":"OS","status.widget.info.plugin_path":"\uD50C\uB7EC\uADF8\uC778 \uACBD\uB85C","status.widget.info.service_user":"\uC0AC\uC6A9\uC790","status.widget.info.storage_path":"\uC800\uC7A5\uC18C \uACBD\uB85C","status.widget.info.synology_package":"Synology \uD328\uD0A4\uC9C0","status.widget.info.timezone":"\uC2DC\uAC04\uB300","status.widget.info.yes":"\uB124","status.widget.network.history_items":"\uAE30\uB85D \uD56D\uBAA9","status.widget.network.items":"\uD56D\uBAA9","status.widget.network.network_interface":"\uB124\uD2B8\uC6CC\uD06C \uC778\uD130\uD398\uC774\uC2A4","status.widget.network.none_selected":"Using Default","status.widget.network.refresh_interval":"\uAC31\uC2E0 \uC8FC\uAE30","status.widget.network.seconds":"\uCD08","status.widget.qr_paired":"\uC5F0\uACB0\uB428","status.widget.qr_unpaired":"\uC5F0\uACB0\uB418\uC9C0 \uC54A\uC74C","status.widget.show_hide":"\uC704\uC82F \uD45C\uC2DC/\uC228\uAE30\uAE30","status.widget.title_manage_widget":"\uC704\uC82F \uAD00\uB9AC","status.widget.update_node_no":"{{ pluginName }} is not compatible with Node {{ nodeVersion }}.","status.widget.update_node_unknown":"The developer of {{ pluginName }} has not specified the Node version compatibility.","status.widget.update_node_yes":"{{ pluginName }} is compatible with Node {{ nodeVersion }}.","status.widget.uptime.label_process":"\uD504\uB85C\uC138\uC2A4","status.widget.uptime.label_server":"\uC11C\uBC84","status.widget.weather.label_config_required_help":"\uC704\uC82F \uC124\uC815\uC5D0\uC11C \uB300\uC0C1 \uB3C4\uC2DC\uB97C \uC120\uD0DD\uD574\uC8FC\uC138\uC694.","status.widget.weather.label_search_for_your_city":"\uB300\uC0C1 \uB3C4\uC2DC \uAC80\uC0C9:","status.widget.weather.title_weather":"\uB0A0\uC528","support.dev.api":"Homebridge API","support.dev.api_hap":"HAP-NodeJS API","support.dev.api_hap_sub":"HAP-NodeJS\uB294 Apple\uC774 HomeKit \uD504\uB808\uC784\uC6CC\uD06C\uC758 \uC77C\uBD80\uB85C \uC815\uC758\uD55C HomeKit Accessory Protocol(HAP)\uC5D0 \uBA85\uC2DC\uB41C HomeKit Accessory Server\uC758 \uAD6C\uD604\uCCB4\uC785\uB2C8\uB2E4.","support.dev.api_sub":"Homebridge\uB294 \uD648 \uB124\uD2B8\uC6CC\uD06C\uC5D0\uC11C \uC2E4\uD589\uD558\uC5EC HomeKit Accessory Protocol(HAP)\uC744 \uC5D0\uBBAC\uB808\uC774\uD2B8\uD560 \uC218 \uC788\uB294 \uACBD\uB7C9 Node.js \uC11C\uBC84\uC785\uB2C8\uB2E4.","support.dev.item_swagger":"Swagger \uBB38\uC11C","support.dev.item_swagger_sub":"Homebridge REST API\uB97C \uC0AC\uC6A9\uD558\uBA74 HTTP \uC694\uCCAD\uC744 \uD1B5\uD574 Homebridge \uC11C\uBC84\uC640 \uC0C1\uD638\uC791\uC6A9\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","support.dev.template":"\uD50C\uB7EC\uADF8\uC778 \uD15C\uD50C\uB9BF \uC800\uC7A5\uC18C","support.dev.template_sub":"\uC790\uCCB4 \uD50C\uB7EC\uADF8\uC778 \uAC1C\uBC1C\uC744 \uC2DC\uC791\uD558\uB294 \uB370 \uB3C4\uC6C0\uC774 \uB418\uB294 \uAE30\uBCF8 Homebridge \uD50C\uB7EC\uADF8\uC778 \uD15C\uD50C\uB9BF\uC785\uB2C8\uB2E4.","support.dev.title":"\uAC1C\uBC1C\uC790","support.dev.verified":"Homebridge \uC778\uC99D","support.dev.verified_sub":"Homebridge \uC778\uC99D \uD504\uB85C\uADF8\uB7A8\uC744 \uD1B5\uD574 \uD50C\uB7EC\uADF8\uC778 \uAC1C\uBC1C\uC790\uB294 Homebridge \uD504\uB85C\uC81D\uD2B8 \uD300\uC758 \uAC80\uD1A0\uC640 \uC778\uC99D\uC744 \uBC1B\uC744 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","support.links.discord":"Discord \uC11C\uBC84","support.links.discord_sub":"Homebridge Discord \uCC44\uD305 \uC11C\uBC84\uC5D0 \uCC38\uC5EC\uD558\uC5EC \uB2E4\uB978 \uC0AC\uC6A9\uC790 \uBC0F \uAC1C\uBC1C\uC790\uB4E4\uACFC \uB300\uD654\uD558\uC138\uC694.","support.links.documentation":"\uBB38\uC11C","support.links.documentation_sub":"Homebridge \uBB38\uC11C\uB294 Homebridge \uC2DC\uC791 \uBC29\uBC95\uACFC \uC77C\uBC18\uC801\uC778 \uBB38\uC81C \uD574\uACB0\uC5D0 \uB300\uD55C \uD48D\uBD80\uD55C \uC815\uBCF4\uB97C \uC81C\uACF5\uD569\uB2C8\uB2E4.","support.links.issue":"\uBB38\uC81C \uBCF4\uACE0","support.links.issue_sub":"Homebridge\uC5D0\uC11C \uBB38\uC81C\uAC00 \uBC1C\uC0DD\uD55C \uACBD\uC6B0 GitHub\uC5D0\uC11C \uC0C8\uB85C\uC6B4 \uC774\uC288\uB97C \uC5F4\uC5B4\uC8FC\uC138\uC694. \uD2B9\uC815 \uD50C\uB7EC\uADF8\uC778 \uAD00\uB828 \uBB38\uC81C\uB294 \uC5EC\uAE30\uC11C \uB2E4\uB8E8\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.","support.links.reddit":"Reddit \uCEE4\uBBA4\uB2C8\uD2F0","support.links.reddit_sub":"Homebridge \uC11C\uBE0C\uB808\uB527\uC740 Homebridge \uC124\uC815\uC744 \uACF5\uC720\uD558\uACE0 \uB3C4\uC6C0\uC744 \uC694\uCCAD\uD558\uAE30\uC5D0 \uC88B\uC740 \uACF5\uAC04\uC785\uB2C8\uB2E4.","support.links.title":"\uC720\uC6A9\uD55C \uB9C1\uD06C","support.title":"\uC9C0\uC6D0","toast.no_auth":"\uAD00\uB9AC\uC790\uB9CC \uC694\uCCAD\uB41C \uD398\uC774\uC9C0\uC5D0 \uC811\uADFC\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.","toast.title_error":"\uC624\uB958","toast.title_success":"\uC131\uACF5","toast.title_warning":"\uC8FC\uC758","users.button_add_user":"\uC0AC\uC6A9\uC790 \uCD94\uAC00","users.label_admin_user":"\uAD00\uB9AC\uC790 \uC5EC\uBD80","users.label_confirm_password":"\uBE44\uBC00\uBC88\uD638 \uD655\uC778","users.label_full_name":"\uC131\uBA85","users.label_new_password":"\uC0C8 \uBE44\uBC00\uBC88\uD638","users.label_password":"\uBE44\uBC00\uBC88\uD638","users.label_username":"\uC0AC\uC6A9\uC790\uBA85","users.setup_2fa":"2\uCC28\uC778\uC99D \uC124\uC815","users.setup_2fa_activate_error":"2\uCC28 \uC778\uC99D\uC744 \uD65C\uC131\uD654\uD558\uB294 \uC911 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4","users.setup_2fa_cannot_setup_2fa":"2\uCC28\uC778\uC99D \uC124\uC815\uBD88\uAC00","users.setup_2fa_disable":"2\uCC28\uC778\uC99D \uBE44\uD65C\uC131\uD654","users.setup_2fa_disable_current_password":"2\uCC28\uC778\uC99D\uC744 \uBE44\uD65C\uC131\uD654\uD558\uB824\uBA74 \uBE44\uBC00\uBC88\uD638\uB97C \uC785\uB825\uD574\uC8FC\uC138\uC694:","users.setup_2fa_disable_success":"2\uCC28\uC778\uC99D\uC774 \uBE44\uD65C\uC131\uD654\uB418\uC5C8\uC2B5\uB2C8\uB2E4.","users.setup_2fa_enable":"2\uCC28\uC778\uC99D \uD65C\uC131\uD654","users.setup_2fa_enable_error":"2\uCC28 \uC778\uC99D\uC744 \uC124\uC815\uD558\uB294 \uC911 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4","users.setup_2fa_enabled_success":"2\uCC28\uC778\uC99D\uC774 \uD65C\uC131\uD654 \uB418\uC5C8\uC2B5\uB2C8\uB2E4.","users.setup_2fa_enter_code":"\uC778\uC99D\uAE30 \uC571\uC758 \uCF54\uB4DC\uB97C \uC785\uB825\uD574\uC8FC\uC138\uC694:","users.setup_2fa_scan_qr_code":"\uC778\uC99D\uAE30 \uC571\uC73C\uB85C \uC544\uB798 QR\uCF54\uB4DC\uB97C \uC2A4\uCE94\uD558\uC138\uC694:","users.setup_2fa_scan_qr_manual":"If you cannot scan the QR code, you can enter the following secret key manually:","users.setup_2fa_server_time_out":"\uC11C\uBC84\uC5D0 \uC124\uC815\uB41C \uC2DC\uAC04\uC758 \uC624\uCC28\uAC00 {{ timeDiffError }} \uBC00\uB9AC\uCD08\uB97C \uCD08\uACFC\uD588\uC2B5\uB2C8\uB2E4. \uD5C8\uC6A9\uB418\uB294 \uCD5C\uB300 \uAC12\uC740 +/- 5000 \uBC00\uB9AC\uCD08\uC785\uB2C8\uB2E4.","users.setup_2fa_warning":"2\uCC28\uC778\uC99D\uC744 \uD65C\uC131\uD654\uD558\uB824\uBA74 Homebridge \uC11C\uBC84\uC758 \uB85C\uADF8\uC778 \uB0A0\uC9DC\uC640 \uC2DC\uAC04\uC774 \uC815\uD655\uD574\uC57C\uD569\uB2C8\uB2E4. \uC11C\uBC84 \uC2DC\uAC04\uC744 \uC815\uD655\uD558\uAC8C \uC720\uC9C0\uD560 \uC218 \uC5C6\uB2E4\uBA74 2\uCC28\uC778\uC99D\uC744 \uD65C\uC131\uD654\uD574\uC11C\uB294 \uC548\uB418\uBA70, \uADF8\uB807\uC9C0 \uC54A\uC744 \uACBD\uC6B0 Homebridge UI\uAC00 \uC7A0\uAE38 \uC704\uD5D8\uC774 \uC788\uC2B5\uB2C8\uB2E4.","users.support.acc_1":"There are two types of users that can access the Homebridge UI: admin and non-admin users. Admins can access and control everything available in the UI. Non-admin users have a read-only view of the following pages:","users.support.acc_2":"2FA can only be set up on admin accounts, and must do this via the users page logged in as themselves.","users.support.control":"can be controlled","users.title_add_user":"\uC0AC\uC6A9\uC790 \uCD94\uAC00","users.title_edit_user":"\uC0AC\uC6A9\uC790 \uC218\uC815","users.title_users":"\uC0AC\uC6A9\uC790","users.toast_added_new_user":"\uC0C8\uB85C\uC6B4 \uC0AC\uC6A9\uC790 \uCD94\uAC00\uB428","users.toast_failed_to_add_user":"\uC0AC\uC6A9\uC790 \uCD94\uAC00 \uC2E4\uD328","users.toast_failed_to_delete_user":"\uC0AC\uC6A9\uC790 \uC0AD\uC81C \uC2E4\uD328","users.toast_updated_user":"\uC0AC\uC6A9\uC790 \uC815\uBCF4 \uC218\uC815\uB428","users.toast_user_deleted":"\uC0AC\uC6A9\uC790 \uC0AD\uC81C\uB428"}});export{t as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as fe}from"./chunk-MISBXZWW.js";import{Aa as w,Kc as N,Rc as ce,U as X,Uc as he,W as d,X as Ne,Xb as y,Y,_ as A,aa as R,d as Ee,db as Pe,h as we,hb as I,ib as o,ic as de,ka as Oe,ma as xe,o as Ie,oa as D,ob as K,pb as l,sa as F,sb as u,u as Se,vb as Re,vc as c,wa as v,xa as E,xb as ke,ya as f,yb as S}from"./chunk-VX4RXOTH.js";import{a as h,b as g}from"./chunk-B4AJQJMI.js";var We=(()=>{class n{_renderer;_elementRef;onChange=e=>{};onTouched=()=>{};constructor(e,i){this._renderer=e,this._elementRef=i}setProperty(e,i){this._renderer.setProperty(this._elementRef.nativeElement,e,i)}registerOnTouched(e){this.onTouched=e}registerOnChange(e){this.onChange=e}setDisabledState(e){this.setProperty("disabled",e)}static \u0275fac=function(i){return new(i||n)(o(I),o(w))};static \u0275dir=l({type:n})}return n})(),P=(()=>{class n extends We{static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,features:[u]})}return n})(),V=new A(""),vt={provide:V,useExisting:d(()=>yt),multi:!0},yt=(()=>{class n extends P{writeValue(e){this.setProperty("checked",e)}static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["input","type","checkbox","formControlName",""],["input","type","checkbox","formControl",""],["input","type","checkbox","ngModel",""]],hostBindings:function(i,r){i&1&&y("change",function(a){return r.onChange(a.target.checked)})("blur",function(){return r.onTouched()})},standalone:!1,features:[c([vt]),u]})}return n})(),Ct={provide:V,useExisting:d(()=>qe),multi:!0};function Vt(){let n=fe()?fe().getUserAgent():"";return/android (\d+)/.test(n.toLowerCase())}var Dt=new A(""),qe=(()=>{class n extends We{_compositionMode;_composing=!1;constructor(e,i,r){super(e,i),this._compositionMode=r,this._compositionMode==null&&(this._compositionMode=!Vt())}writeValue(e){let i=e??"";this.setProperty("value",i)}_handleInput(e){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(e)}_compositionStart(){this._composing=!0}_compositionEnd(e){this._composing=!1,this._compositionMode&&this.onChange(e)}static \u0275fac=function(i){return new(i||n)(o(I),o(w),o(Dt,8))};static \u0275dir=l({type:n,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(i,r){i&1&&y("input",function(a){return r._handleInput(a.target.value)})("blur",function(){return r.onTouched()})("compositionstart",function(){return r._compositionStart()})("compositionend",function(a){return r._compositionEnd(a.target.value)})},standalone:!1,features:[c([Ct]),u]})}return n})();function me(n){return n==null||_e(n)===0}function _e(n){return n==null?null:Array.isArray(n)||typeof n=="string"?n.length:n instanceof Set?n.size:null}var m=new A(""),W=new A(""),bt=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,je=class{static min(t){return ze(t)}static max(t){return Ze(t)}static required(t){return Xe(t)}static requiredTrue(t){return At(t)}static email(t){return Mt(t)}static minLength(t){return Ft(t)}static maxLength(t){return Ye(t)}static pattern(t){return Ke(t)}static nullValidator(t){return Q()}static compose(t){return it(t)}static composeAsync(t){return rt(t)}};function ze(n){return t=>{if(t.value==null||n==null)return null;let e=parseFloat(t.value);return!isNaN(e)&&e<n?{min:{min:n,actual:t.value}}:null}}function Ze(n){return t=>{if(t.value==null||n==null)return null;let e=parseFloat(t.value);return!isNaN(e)&&e>n?{max:{max:n,actual:t.value}}:null}}function Xe(n){return me(n.value)?{required:!0}:null}function At(n){return n.value===!0?null:{required:!0}}function Mt(n){return me(n.value)||bt.test(n.value)?null:{email:!0}}function Ft(n){return t=>{let e=t.value?.length??_e(t.value);return e===null||e===0?null:e<n?{minlength:{requiredLength:n,actualLength:e}}:null}}function Ye(n){return t=>{let e=t.value?.length??_e(t.value);return e!==null&&e>n?{maxlength:{requiredLength:n,actualLength:e}}:null}}function Ke(n){if(!n)return Q;let t,e;return typeof n=="string"?(e="",n.charAt(0)!=="^"&&(e+="^"),e+=n,n.charAt(n.length-1)!=="$"&&(e+="$"),t=new RegExp(e)):(e=n.toString(),t=n),i=>{if(me(i.value))return null;let r=i.value;return t.test(r)?null:{pattern:{requiredPattern:e,actualValue:r}}}}function Q(n){return null}function Je(n){return n!=null}function Qe(n){return Re(n)?we(n):n}function et(n){let t={};return n.forEach(e=>{t=e!=null?h(h({},t),e):t}),Object.keys(t).length===0?null:t}function tt(n,t){return t.map(e=>e(n))}function Et(n){return!n.validate}function nt(n){return n.map(t=>Et(t)?t:e=>t.validate(e))}function it(n){if(!n)return null;let t=n.filter(Je);return t.length==0?null:function(e){return et(tt(e,t))}}function ve(n){return n!=null?it(nt(n)):null}function rt(n){if(!n)return null;let t=n.filter(Je);return t.length==0?null:function(e){let i=tt(e,t).map(Qe);return Se(i).pipe(Ie(et))}}function ye(n){return n!=null?rt(nt(n)):null}function Ge(n,t){return n===null?[t]:Array.isArray(n)?[...n,t]:[n,t]}function st(n){return n._rawValidators}function ot(n){return n._rawAsyncValidators}function ge(n){return n?Array.isArray(n)?n:[n]:[]}function ee(n,t){return Array.isArray(n)?n.includes(t):n===t}function Te(n,t){let e=ge(t);return ge(n).forEach(r=>{ee(e,r)||e.push(r)}),e}function Be(n,t){return ge(t).filter(e=>!ee(n,e))}var te=class{get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators=[];_rawAsyncValidators=[];_setValidators(t){this._rawValidators=t||[],this._composedValidatorFn=ve(this._rawValidators)}_setAsyncValidators(t){this._rawAsyncValidators=t||[],this._composedAsyncValidatorFn=ye(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_onDestroyCallbacks=[];_registerOnDestroy(t){this._onDestroyCallbacks.push(t)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(t=>t()),this._onDestroyCallbacks=[]}reset(t=void 0){this.control&&this.control.reset(t)}hasError(t,e){return this.control?this.control.hasError(t,e):!1}getError(t,e){return this.control?this.control.getError(t,e):null}},C=class extends te{name;get formDirective(){return null}get path(){return null}},p=class extends te{_parent=null;name=null;valueAccessor=null},ne=class{_cd;constructor(t){this._cd=t}get isTouched(){return this._cd?.control?._touched?.(),!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return this._cd?.control?._pristine?.(),!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return this._cd?.control?._status?.(),!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return this._cd?._submitted?.(),!!this._cd?.submitted}};var xn=(()=>{class n extends ne{constructor(e){super(e)}static \u0275fac=function(i){return new(i||n)(o(p,2))};static \u0275dir=l({type:n,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,r){i&2&&de("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)},standalone:!1,features:[u]})}return n})(),Pn=(()=>{class n extends ne{constructor(e){super(e)}static \u0275fac=function(i){return new(i||n)(o(C,10))};static \u0275dir=l({type:n,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["","formArray",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(i,r){i&2&&de("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)("ng-submitted",r.isSubmitted)},standalone:!1,features:[u]})}return n})();var k="VALID",J="INVALID",O="PENDING",j="DISABLED",b=class{},ie=class extends b{value;source;constructor(t,e){super(),this.value=t,this.source=e}},T=class extends b{pristine;source;constructor(t,e){super(),this.pristine=t,this.source=e}},B=class extends b{touched;source;constructor(t,e){super(),this.touched=t,this.source=e}},x=class extends b{status;source;constructor(t,e){super(),this.status=t,this.source=e}},re=class extends b{source;constructor(t){super(),this.source=t}},U=class extends b{source;constructor(t){super(),this.source=t}};function Ce(n){return(le(n)?n.validators:n)||null}function wt(n){return Array.isArray(n)?ve(n):n||null}function Ve(n,t){return(le(t)?t.asyncValidators:n)||null}function It(n){return Array.isArray(n)?ye(n):n||null}function le(n){return n!=null&&!Array.isArray(n)&&typeof n=="object"}function at(n,t,e){let i=n.controls;if(!(t?Object.keys(i):i).length)throw new X(1e3,"");if(!i[e])throw new X(1001,"")}function lt(n,t,e){n._forEachChild((i,r)=>{if(e[r]===void 0)throw new X(1002,"")})}var H=class{_pendingDirty=!1;_hasOwnPendingAsyncValidator=null;_pendingTouched=!1;_onCollectionChange=()=>{};_updateOn;_parent=null;_asyncValidationSubscription;_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators;_rawAsyncValidators;value;constructor(t,e){this._assignValidators(t),this._assignAsyncValidators(e)}get validator(){return this._composedValidatorFn}set validator(t){this._rawValidators=this._composedValidatorFn=t}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(t){this._rawAsyncValidators=this._composedAsyncValidatorFn=t}get parent(){return this._parent}get status(){return v(this.statusReactive)}set status(t){v(()=>this.statusReactive.set(t))}_status=N(()=>this.statusReactive());statusReactive=F(void 0);get valid(){return this.status===k}get invalid(){return this.status===J}get pending(){return this.status==O}get disabled(){return this.status===j}get enabled(){return this.status!==j}errors;get pristine(){return v(this.pristineReactive)}set pristine(t){v(()=>this.pristineReactive.set(t))}_pristine=N(()=>this.pristineReactive());pristineReactive=F(!0);get dirty(){return!this.pristine}get touched(){return v(this.touchedReactive)}set touched(t){v(()=>this.touchedReactive.set(t))}_touched=N(()=>this.touchedReactive());touchedReactive=F(!1);get untouched(){return!this.touched}_events=new Ee;events=this._events.asObservable();valueChanges;statusChanges;get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(t){this._assignValidators(t)}setAsyncValidators(t){this._assignAsyncValidators(t)}addValidators(t){this.setValidators(Te(t,this._rawValidators))}addAsyncValidators(t){this.setAsyncValidators(Te(t,this._rawAsyncValidators))}removeValidators(t){this.setValidators(Be(t,this._rawValidators))}removeAsyncValidators(t){this.setAsyncValidators(Be(t,this._rawAsyncValidators))}hasValidator(t){return ee(this._rawValidators,t)}hasAsyncValidator(t){return ee(this._rawAsyncValidators,t)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(t={}){let e=this.touched===!1;this.touched=!0;let i=t.sourceControl??this;this._parent&&!t.onlySelf&&this._parent.markAsTouched(g(h({},t),{sourceControl:i})),e&&t.emitEvent!==!1&&this._events.next(new B(!0,i))}markAllAsDirty(t={}){this.markAsDirty({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:this}),this._forEachChild(e=>e.markAllAsDirty(t))}markAllAsTouched(t={}){this.markAsTouched({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:this}),this._forEachChild(e=>e.markAllAsTouched(t))}markAsUntouched(t={}){let e=this.touched===!0;this.touched=!1,this._pendingTouched=!1;let i=t.sourceControl??this;this._forEachChild(r=>{r.markAsUntouched({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:i})}),this._parent&&!t.onlySelf&&this._parent._updateTouched(t,i),e&&t.emitEvent!==!1&&this._events.next(new B(!1,i))}markAsDirty(t={}){let e=this.pristine===!0;this.pristine=!1;let i=t.sourceControl??this;this._parent&&!t.onlySelf&&this._parent.markAsDirty(g(h({},t),{sourceControl:i})),e&&t.emitEvent!==!1&&this._events.next(new T(!1,i))}markAsPristine(t={}){let e=this.pristine===!1;this.pristine=!0,this._pendingDirty=!1;let i=t.sourceControl??this;this._forEachChild(r=>{r.markAsPristine({onlySelf:!0,emitEvent:t.emitEvent})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t,i),e&&t.emitEvent!==!1&&this._events.next(new T(!0,i))}markAsPending(t={}){this.status=O;let e=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new x(this.status,e)),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.markAsPending(g(h({},t),{sourceControl:e}))}disable(t={}){let e=this._parentMarkedDirty(t.onlySelf);this.status=j,this.errors=null,this._forEachChild(r=>{r.disable(g(h({},t),{onlySelf:!0}))}),this._updateValue();let i=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new ie(this.value,i)),this._events.next(new x(this.status,i)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(g(h({},t),{skipPristineCheck:e}),this),this._onDisabledChange.forEach(r=>r(!0))}enable(t={}){let e=this._parentMarkedDirty(t.onlySelf);this.status=k,this._forEachChild(i=>{i.enable(g(h({},t),{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors(g(h({},t),{skipPristineCheck:e}),this),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(t,e){this._parent&&!t.onlySelf&&(this._parent.updateValueAndValidity(t),t.skipPristineCheck||this._parent._updatePristine({},e),this._parent._updateTouched({},e))}setParent(t){this._parent=t}getRawValue(){return this.value}updateValueAndValidity(t={}){if(this._setInitialStatus(),this._updateValue(),this.enabled){let i=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===k||this.status===O)&&this._runAsyncValidator(i,t.emitEvent)}let e=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new ie(this.value,e)),this._events.next(new x(this.status,e)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity(g(h({},t),{sourceControl:e}))}_updateTreeValidity(t={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(t)),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?j:k}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t,e){if(this.asyncValidator){this.status=O,this._hasOwnPendingAsyncValidator={emitEvent:e!==!1,shouldHaveEmitted:t!==!1};let i=Qe(this.asyncValidator(this));this._asyncValidationSubscription=i.subscribe(r=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(r,{emitEvent:e,shouldHaveEmitted:t})})}}_cancelExistingSubscription(){if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();let t=(this._hasOwnPendingAsyncValidator?.emitEvent||this._hasOwnPendingAsyncValidator?.shouldHaveEmitted)??!1;return this._hasOwnPendingAsyncValidator=null,t}return!1}setErrors(t,e={}){this.errors=t,this._updateControlsErrors(e.emitEvent!==!1,this,e.shouldHaveEmitted)}get(t){let e=t;return e==null||(Array.isArray(e)||(e=e.split(".")),e.length===0)?null:e.reduce((i,r)=>i&&i._find(r),this)}getError(t,e){let i=e?this.get(e):this;return i&&i.errors?i.errors[t]:null}hasError(t,e){return!!this.getError(t,e)}get root(){let t=this;for(;t._parent;)t=t._parent;return t}_updateControlsErrors(t,e,i){this.status=this._calculateStatus(),t&&this.statusChanges.emit(this.status),(t||i)&&this._events.next(new x(this.status,e)),this._parent&&this._parent._updateControlsErrors(t,e,i)}_initObservables(){this.valueChanges=new D,this.statusChanges=new D}_calculateStatus(){return this._allControlsDisabled()?j:this.errors?J:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(O)?O:this._anyControlsHaveStatus(J)?J:k}_anyControlsHaveStatus(t){return this._anyControls(e=>e.status===t)}_anyControlsDirty(){return this._anyControls(t=>t.dirty)}_anyControlsTouched(){return this._anyControls(t=>t.touched)}_updatePristine(t,e){let i=!this._anyControlsDirty(),r=this.pristine!==i;this.pristine=i,this._parent&&!t.onlySelf&&this._parent._updatePristine(t,e),r&&this._events.next(new T(this.pristine,e))}_updateTouched(t={},e){this.touched=this._anyControlsTouched(),this._events.next(new B(this.touched,e)),this._parent&&!t.onlySelf&&this._parent._updateTouched(t,e)}_onDisabledChange=[];_registerOnCollectionChange(t){this._onCollectionChange=t}_setUpdateStrategy(t){le(t)&&t.updateOn!=null&&(this._updateOn=t.updateOn)}_parentMarkedDirty(t){let e=this._parent&&this._parent.dirty;return!t&&!!e&&!this._parent._anyControlsDirty()}_find(t){return null}_assignValidators(t){this._rawValidators=Array.isArray(t)?t.slice():t,this._composedValidatorFn=wt(this._rawValidators)}_assignAsyncValidators(t){this._rawAsyncValidators=Array.isArray(t)?t.slice():t,this._composedAsyncValidatorFn=It(this._rawAsyncValidators)}},L=class extends H{constructor(t,e,i){super(Ce(e),Ve(i,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;registerControl(t,e){return this.controls[t]?this.controls[t]:(this.controls[t]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)}addControl(t,e,i={}){this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(t,e={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}setControl(t,e,i={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],e&&this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled}setValue(t,e={}){lt(this,!0,t),Object.keys(t).forEach(i=>{at(this,!0,i),this.controls[i].setValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){t!=null&&(Object.keys(t).forEach(i=>{let r=this.controls[i];r&&r.patchValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(t={},e={}){this._forEachChild((i,r)=>{i.reset(t?t[r]:null,g(h({},e),{onlySelf:!0}))}),this._updatePristine(e,this),this._updateTouched(e,this),this.updateValueAndValidity(e),e?.emitEvent!==!1&&this._events.next(new U(this))}getRawValue(){return this._reduceChildren({},(t,e,i)=>(t[i]=e.getRawValue(),t))}_syncPendingControls(){let t=this._reduceChildren(!1,(e,i)=>i._syncPendingControls()?!0:e);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){Object.keys(this.controls).forEach(e=>{let i=this.controls[e];i&&t(i,e)})}_setUpControls(){this._forEachChild(t=>{t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(t){for(let[e,i]of Object.entries(this.controls))if(this.contains(e)&&t(i))return!0;return!1}_reduceValue(){let t={};return this._reduceChildren(t,(e,i,r)=>((i.enabled||this.disabled)&&(e[r]=i.value),e))}_reduceChildren(t,e){let i=t;return this._forEachChild((r,s)=>{i=e(i,r,s)}),i}_allControlsDisabled(){for(let t of Object.keys(this.controls))if(this.controls[t].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(t){return this.controls.hasOwnProperty(t)?this.controls[t]:null}};var Rn=L;var M=new A("",{factory:()=>q}),q="always";function ut(n,t){return[...t.path,n]}function $(n,t,e=q){De(n,t),t.valueAccessor.writeValue(n.value),(n.disabled||e==="always")&&t.valueAccessor.setDisabledState?.(n.disabled),Nt(n,t),xt(n,t),Ot(n,t),St(n,t)}function se(n,t,e=!0){let i=()=>{};t.valueAccessor&&(t.valueAccessor.registerOnChange(i),t.valueAccessor.registerOnTouched(i)),ae(n,t),n&&(t._invokeOnDestroyCallbacks(),n._registerOnCollectionChange(()=>{}))}function oe(n,t){n.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(t)})}function St(n,t){if(t.valueAccessor.setDisabledState){let e=i=>{t.valueAccessor.setDisabledState(i)};n.registerOnDisabledChange(e),t._registerOnDestroy(()=>{n._unregisterOnDisabledChange(e)})}}function De(n,t){let e=st(n);t.validator!==null?n.setValidators(Ge(e,t.validator)):typeof e=="function"&&n.setValidators([e]);let i=ot(n);t.asyncValidator!==null?n.setAsyncValidators(Ge(i,t.asyncValidator)):typeof i=="function"&&n.setAsyncValidators([i]);let r=()=>n.updateValueAndValidity();oe(t._rawValidators,r),oe(t._rawAsyncValidators,r)}function ae(n,t){let e=!1;if(n!==null){if(t.validator!==null){let r=st(n);if(Array.isArray(r)&&r.length>0){let s=r.filter(a=>a!==t.validator);s.length!==r.length&&(e=!0,n.setValidators(s))}}if(t.asyncValidator!==null){let r=ot(n);if(Array.isArray(r)&&r.length>0){let s=r.filter(a=>a!==t.asyncValidator);s.length!==r.length&&(e=!0,n.setAsyncValidators(s))}}}let i=()=>{};return oe(t._rawValidators,i),oe(t._rawAsyncValidators,i),e}function Nt(n,t){t.valueAccessor.registerOnChange(e=>{n._pendingValue=e,n._pendingChange=!0,n._pendingDirty=!0,n.updateOn==="change"&&dt(n,t)})}function Ot(n,t){t.valueAccessor.registerOnTouched(()=>{n._pendingTouched=!0,n.updateOn==="blur"&&n._pendingChange&&dt(n,t),n.updateOn!=="submit"&&n.markAsTouched()})}function dt(n,t){n._pendingDirty&&n.markAsDirty(),n.setValue(n._pendingValue,{emitModelToViewChange:!1}),t.viewToModelUpdate(n._pendingValue),n._pendingChange=!1}function xt(n,t){let e=(i,r)=>{t.valueAccessor.writeValue(i),r&&t.viewToModelUpdate(i)};n.registerOnChange(e),t._registerOnDestroy(()=>{n._unregisterOnChange(e)})}function ct(n,t){n==null,De(n,t)}function Pt(n,t){return ae(n,t)}function be(n,t){if(!n.hasOwnProperty("model"))return!1;let e=n.model;return e.isFirstChange()?!0:!Object.is(t,e.currentValue)}function Rt(n){return Object.getPrototypeOf(n.constructor)===P}function ht(n,t){n._syncPendingControls(),t.forEach(e=>{let i=e.control;i.updateOn==="submit"&&i._pendingChange&&(e.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function Ae(n,t){if(!t)return null;Array.isArray(t);let e,i,r;return t.forEach(s=>{s.constructor===qe?e=s:Rt(s)?i=s:r=s}),r||i||e||null}function kt(n,t){let e=n.indexOf(t);e>-1&&n.splice(e,1)}var jt={provide:C,useExisting:d(()=>Gt)},G=Promise.resolve(),Gt=(()=>{class n extends C{callSetDisabledState;get submitted(){return v(this.submittedReactive)}_submitted=N(()=>this.submittedReactive());submittedReactive=F(!1);_directives=new Set;form;ngSubmit=new D;options;constructor(e,i,r){super(),this.callSetDisabledState=r,this.form=new L({},ve(e),ye(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(e){G.then(()=>{let i=this._findContainer(e.path);e.control=i.registerControl(e.name,e.control),$(e.control,e,this.callSetDisabledState),e.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(e)})}getControl(e){return this.form.get(e.path)}removeControl(e){G.then(()=>{let i=this._findContainer(e.path);i&&i.removeControl(e.name),this._directives.delete(e)})}addFormGroup(e){G.then(()=>{let i=this._findContainer(e.path),r=new L({});ct(r,e),i.registerControl(e.name,r),r.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(e){G.then(()=>{let i=this._findContainer(e.path);i&&i.removeControl(e.name)})}getFormGroup(e){return this.form.get(e.path)}updateModel(e,i){G.then(()=>{this.form.get(e.path).setValue(i)})}setValue(e){this.control.setValue(e)}onSubmit(e){return this.submittedReactive.set(!0),ht(this.form,this._directives),this.ngSubmit.emit(e),this.form._events.next(new re(this.control)),e?.target?.method==="dialog"}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submittedReactive.set(!1)}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.form._updateOn=this.options.updateOn)}_findContainer(e){return e.pop(),e.length?this.form.get(e):this.form}static \u0275fac=function(i){return new(i||n)(o(m,10),o(W,10),o(M,8))};static \u0275dir=l({type:n,selectors:[["form",3,"ngNoForm","",3,"formGroup","",3,"formArray",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,r){i&1&&y("submit",function(a){return r.onSubmit(a)})("reset",function(){return r.onReset()})},inputs:{options:[0,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[c([jt]),u]})}return n})();function Ue(n,t){let e=n.indexOf(t);e>-1&&n.splice(e,1)}function He(n){return typeof n=="object"&&n!==null&&Object.keys(n).length===2&&"value"in n&&"disabled"in n}var Me=class extends H{defaultValue=null;_onChange=[];_pendingValue;_pendingChange=!1;constructor(t=null,e,i){super(Ce(e),Ve(i,e)),this._applyFormState(t),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),le(e)&&(e.nonNullable||e.initialValueIsDefault)&&(He(t)?this.defaultValue=t.value:this.defaultValue=t)}setValue(t,e={}){this.value=this._pendingValue=t,this._onChange.length&&e.emitModelToViewChange!==!1&&this._onChange.forEach(i=>i(this.value,e.emitViewToModelChange!==!1)),this.updateValueAndValidity(e)}patchValue(t,e={}){this.setValue(t,e)}reset(t=this.defaultValue,e={}){this._applyFormState(t),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),e.overwriteDefaultValue&&(this.defaultValue=this.value),this._pendingChange=!1,e?.emitEvent!==!1&&this._events.next(new U(this))}_updateValue(){}_anyControls(t){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(t){this._onChange.push(t)}_unregisterOnChange(t){Ue(this._onChange,t)}registerOnDisabledChange(t){this._onDisabledChange.push(t)}_unregisterOnDisabledChange(t){Ue(this._onDisabledChange,t)}_forEachChild(t){}_syncPendingControls(){return this.updateOn==="submit"&&(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),this._pendingChange)?(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),!0):!1}_applyFormState(t){He(t)?(this.value=this._pendingValue=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=t}},jn=Me,Tt=n=>n instanceof Me;var Bt={provide:p,useExisting:d(()=>Ut)},Le=Promise.resolve(),Ut=(()=>{class n extends p{_changeDetectorRef;callSetDisabledState;control=new Me;static ngAcceptInputType_isDisabled;_registered=!1;viewModel;name="";isDisabled;model;options;update=new D;constructor(e,i,r,s,a,_){super(),this._changeDetectorRef=a,this.callSetDisabledState=_,this._parent=e,this._setValidators(i),this._setAsyncValidators(r),this.valueAccessor=Ae(this,s)}ngOnChanges(e){if(this._checkForErrors(),!this._registered||"name"in e){if(this._registered&&(this._checkName(),this.formDirective)){let i=e.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in e&&this._updateDisabled(e),be(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!!(this.options&&this.options.standalone)}_setUpStandalone(){$(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._checkName()}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),!this._isStandalone()&&this.name}_updateValue(e){Le.then(()=>{this.control.setValue(e,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(e){let i=e.isDisabled.currentValue,r=i!==0&&he(i);Le.then(()=>{r&&!this.control.disabled?this.control.disable():!r&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(e){return this._parent?ut(e,this._parent):[e]}static \u0275fac=function(i){return new(i||n)(o(C,9),o(m,10),o(W,10),o(V,10),o(ce,8),o(M,8))};static \u0275dir=l({type:n,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"],options:[0,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],standalone:!1,features:[c([Bt]),u,E]})}return n})();var Gn=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=l({type:n,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""],standalone:!1})}return n})(),Ht={provide:V,useExisting:d(()=>Lt),multi:!0},Lt=(()=>{class n extends P{writeValue(e){let i=e??"";this.setProperty("value",i)}registerOnChange(e){this.onChange=i=>{e(i==""?null:parseFloat(i))}}static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["input","type","number","formControlName",""],["input","type","number","formControl",""],["input","type","number","ngModel",""]],hostBindings:function(i,r){i&1&&y("input",function(a){return r.onChange(a.target.value)})("blur",function(){return r.onTouched()})},standalone:!1,features:[c([Ht]),u]})}return n})(),$t={provide:V,useExisting:d(()=>qt),multi:!0};var Wt=(()=>{class n{_accessors=[];add(e,i){this._accessors.push([e,i])}remove(e){for(let i=this._accessors.length-1;i>=0;--i)if(this._accessors[i][1]===e){this._accessors.splice(i,1);return}}select(e){this._accessors.forEach(i=>{this._isSameGroup(i,e)&&i[1]!==e&&i[1].fireUncheck(e.value)})}_isSameGroup(e,i){return e[0].control?e[0]._parent===i._control._parent&&e[1].name===i.name:!1}static \u0275fac=function(i){return new(i||n)};static \u0275prov=Ne({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),qt=(()=>{class n extends P{_registry;_injector;_state;_control;_fn;setDisabledStateFired=!1;onChange=()=>{};name;formControlName;value;callSetDisabledState=R(M,{optional:!0})??q;constructor(e,i,r,s){super(e,i),this._registry=r,this._injector=s}ngOnInit(){this._control=this._injector.get(p),this._checkName(),this._registry.add(this._control,this)}ngOnDestroy(){this._registry.remove(this)}writeValue(e){this._state=e===this.value,this.setProperty("checked",this._state)}registerOnChange(e){this._fn=e,this.onChange=()=>{e(this.value),this._registry.select(this)}}setDisabledState(e){(this.setDisabledStateFired||e||this.callSetDisabledState==="whenDisabledForLegacyCode")&&this.setProperty("disabled",e),this.setDisabledStateFired=!0}fireUncheck(e){this.writeValue(e)}_checkName(){this.name&&this.formControlName&&(this.name,this.formControlName),!this.name&&this.formControlName&&(this.name=this.formControlName)}static \u0275fac=function(i){return new(i||n)(o(I),o(w),o(Wt),o(Oe))};static \u0275dir=l({type:n,selectors:[["input","type","radio","formControlName",""],["input","type","radio","formControl",""],["input","type","radio","ngModel",""]],hostBindings:function(i,r){i&1&&y("change",function(){return r.onChange()})("blur",function(){return r.onTouched()})},inputs:{name:"name",formControlName:"formControlName",value:"value"},standalone:!1,features:[c([$t]),u]})}return n})();var pe=class extends H{constructor(t,e,i){super(Ce(e),Ve(i,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;at(t){return this.controls[this._adjustIndex(t)]}push(t,e={}){Array.isArray(t)?t.forEach(i=>{this.controls.push(i),this._registerControl(i)}):(this.controls.push(t),this._registerControl(t)),this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}insert(t,e,i={}){this.controls.splice(t,0,e),this._registerControl(e),this.updateValueAndValidity({emitEvent:i.emitEvent})}removeAt(t,e={}){let i=this._adjustIndex(t);i<0&&(i=0),this.controls[i]&&this.controls[i]._registerOnCollectionChange(()=>{}),this.controls.splice(i,1),this.updateValueAndValidity({emitEvent:e.emitEvent})}setControl(t,e,i={}){let r=this._adjustIndex(t);r<0&&(r=0),this.controls[r]&&this.controls[r]._registerOnCollectionChange(()=>{}),this.controls.splice(r,1),e&&(this.controls.splice(r,0,e),this._registerControl(e)),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(t,e={}){lt(this,!1,t),t.forEach((i,r)=>{at(this,!1,r),this.at(r).setValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){t!=null&&(t.forEach((i,r)=>{this.at(r)&&this.at(r).patchValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(t=[],e={}){this._forEachChild((i,r)=>{i.reset(t[r],g(h({},e),{onlySelf:!0}))}),this._updatePristine(e,this),this._updateTouched(e,this),this.updateValueAndValidity(e),e?.emitEvent!==!1&&this._events.next(new U(this))}getRawValue(){return this.controls.map(t=>t.getRawValue())}clear(t={}){this.controls.length<1||(this._forEachChild(e=>e._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:t.emitEvent}))}_adjustIndex(t){return t<0?t+this.length:t}_syncPendingControls(){let t=this.controls.reduce((e,i)=>i._syncPendingControls()?!0:e,!1);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){this.controls.forEach((e,i)=>{t(e,i)})}_updateValue(){this.value=this.controls.filter(t=>t.enabled||this.disabled).map(t=>t.value)}_anyControls(t){return this.controls.some(e=>e.enabled&&t(e))}_setUpControls(){this._forEachChild(t=>this._registerControl(t))}_allControlsDisabled(){for(let t of this.controls)if(t.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(t){t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)}_find(t){return this.at(t)??null}},Tn=pe;var zt=(()=>{class n extends C{callSetDisabledState;get submitted(){return v(this._submittedReactive)}set submitted(e){this._submittedReactive.set(e)}_submitted=N(()=>this._submittedReactive());_submittedReactive=F(!1);_oldForm;_onCollectionChange=()=>this._updateDomValue();directives=[];constructor(e,i,r){super(),this.callSetDisabledState=r,this._setValidators(e),this._setAsyncValidators(i)}ngOnChanges(e){this.onChanges(e)}ngOnDestroy(){this.onDestroy()}onChanges(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}onDestroy(){this.form&&(ae(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get path(){return[]}addControl(e){let i=this.form.get(e.path);return $(i,e,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),i}getControl(e){return this.form.get(e.path)}removeControl(e){se(e.control||null,e,!1),kt(this.directives,e)}addFormGroup(e){this._setUpFormContainer(e)}removeFormGroup(e){this._cleanUpFormContainer(e)}getFormGroup(e){return this.form.get(e.path)}getFormArray(e){return this.form.get(e.path)}addFormArray(e){this._setUpFormContainer(e)}removeFormArray(e){this._cleanUpFormContainer(e)}updateModel(e,i){this.form.get(e.path).setValue(i)}onReset(){this.resetForm()}resetForm(e=void 0,i={}){this.form.reset(e,i),this._submittedReactive.set(!1)}onSubmit(e){return this.submitted=!0,ht(this.form,this.directives),this.ngSubmit.emit(e),this.form._events.next(new re(this.control)),e?.target?.method==="dialog"}_updateDomValue(){this.directives.forEach(e=>{let i=e.control,r=this.form.get(e.path);i!==r&&(se(i||null,e),Tt(r)&&($(r,e,this.callSetDisabledState),e.control=r))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(e){let i=this.form.get(e.path);ct(i,e),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(e){if(this.form){let i=this.form.get(e.path);i&&Pt(i,e)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){De(this.form,this),this._oldForm&&ae(this._oldForm,this)}_checkFormPresent(){this.form}static \u0275fac=function(i){return new(i||n)(o(m,10),o(W,10),o(M,8))};static \u0275dir=l({type:n,features:[u,E]})}return n})();var Fe=new A(""),Zt={provide:p,useExisting:d(()=>Xt)},Xt=(()=>{class n extends p{_ngModelWarningConfig;callSetDisabledState;viewModel;form;set isDisabled(e){}model;update=new D;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(e,i,r,s,a){super(),this._ngModelWarningConfig=s,this.callSetDisabledState=a,this._setValidators(e),this._setAsyncValidators(i),this.valueAccessor=Ae(this,r)}ngOnChanges(e){if(this._isControlChanged(e)){let i=e.form.previousValue;i&&se(i,this,!1),$(this.form,this,this.callSetDisabledState),this.form.updateValueAndValidity({emitEvent:!1})}be(e,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&se(this.form,this,!1)}get path(){return[]}get control(){return this.form}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_isControlChanged(e){return e.hasOwnProperty("form")}static \u0275fac=function(i){return new(i||n)(o(m,10),o(W,10),o(V,10),o(Fe,8),o(M,8))};static \u0275dir=l({type:n,selectors:[["","formControl",""]],inputs:{form:[0,"formControl","form"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],standalone:!1,features:[c([Zt]),u,E]})}return n})();var Yt={provide:p,useExisting:d(()=>Kt)},Kt=(()=>{class n extends p{_ngModelWarningConfig;_added=!1;viewModel;control;name=null;set isDisabled(e){}model;update=new D;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(e,i,r,s,a){super(),this._ngModelWarningConfig=a,this._parent=e,this._setValidators(i),this._setAsyncValidators(r),this.valueAccessor=Ae(this,s)}ngOnChanges(e){this._added||this._setUpControl(),be(e,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}get path(){return ut(this.name==null?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_setUpControl(){this.control=this.formDirective.addControl(this),this._added=!0}static \u0275fac=function(i){return new(i||n)(o(C,13),o(m,10),o(W,10),o(V,10),o(Fe,8))};static \u0275dir=l({type:n,selectors:[["","formControlName",""]],inputs:{name:[0,"formControlName","name"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},standalone:!1,features:[c([Yt]),u,E]})}return n})();var Jt={provide:C,useExisting:d(()=>Qt)},Qt=(()=>{class n extends zt{form=null;ngSubmit=new D;get control(){return this.form}static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["","formGroup",""]],hostBindings:function(i,r){i&1&&y("submit",function(a){return r.onSubmit(a)})("reset",function(){return r.onReset()})},inputs:{form:[0,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[c([Jt]),u]})}return n})(),en={provide:V,useExisting:d(()=>gt),multi:!0};function ft(n,t){return n==null?`${t}`:(t&&typeof t=="object"&&(t="Object"),`${n}: ${t}`.slice(0,50))}function tn(n){return n.split(":")[0]}var gt=(()=>{class n extends P{value;_optionMap=new Map;_idCounter=0;set compareWith(e){this._compareWith=e}_compareWith=Object.is;appRefInjector=R(ke).injector;destroyRef=R(xe);cdr=R(ce);_queuedWrite=!1;_writeValueAfterRender(){this._queuedWrite||this.appRefInjector.destroyed||(this._queuedWrite=!0,Pe({write:()=>{this.destroyRef.destroyed||(this._queuedWrite=!1,this.writeValue(this.value))}},{injector:this.appRefInjector}))}writeValue(e){this.cdr.markForCheck(),this.value=e;let i=this._getOptionId(e),r=ft(i,e);this.setProperty("value",r)}registerOnChange(e){this.onChange=i=>{this.value=this._getOptionValue(i),e(this.value)}}_registerOption(){return(this._idCounter++).toString()}_getOptionId(e){for(let i of this._optionMap.keys())if(this._compareWith(this._optionMap.get(i),e))return i;return null}_getOptionValue(e){let i=tn(e);return this._optionMap.has(i)?this._optionMap.get(i):e}static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["select","formControlName","",3,"multiple",""],["select","formControl","",3,"multiple",""],["select","ngModel","",3,"multiple",""]],hostBindings:function(i,r){i&1&&y("change",function(a){return r.onChange(a.target.value)})("blur",function(){return r.onTouched()})},inputs:{compareWith:"compareWith"},standalone:!1,features:[c([en]),u]})}return n})(),Bn=(()=>{class n{_element;_renderer;_select;id;constructor(e,i,r){this._element=e,this._renderer=i,this._select=r,this._select&&(this.id=this._select._registerOption())}set ngValue(e){this._select!=null&&(this._select._optionMap.set(this.id,e),this._setElementValue(ft(this.id,e)),this._select._writeValueAfterRender())}set value(e){this._setElementValue(e),this._select&&this._select._writeValueAfterRender()}_setElementValue(e){this._renderer.setProperty(this._element.nativeElement,"value",e)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select._writeValueAfterRender())}static \u0275fac=function(i){return new(i||n)(o(w),o(I),o(gt,9))};static \u0275dir=l({type:n,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"},standalone:!1})}return n})(),nn={provide:V,useExisting:d(()=>pt),multi:!0};function $e(n,t){return n==null?`${t}`:(typeof t=="string"&&(t=`'${t}'`),t&&typeof t=="object"&&(t="Object"),`${n}: ${t}`.slice(0,50))}function rn(n){return n.split(":")[0]}var pt=(()=>{class n extends P{value;_optionMap=new Map;_idCounter=0;set compareWith(e){this._compareWith=e}_compareWith=Object.is;writeValue(e){this.value=e;let i;if(Array.isArray(e)){let r=e.map(s=>this._getOptionId(s));i=(s,a)=>{s._setSelected(r.indexOf(a.toString())>-1)}}else i=(r,s)=>{r._setSelected(!1)};this._optionMap.forEach(i)}registerOnChange(e){this.onChange=i=>{let r=[],s=i.selectedOptions;if(s!==void 0){let a=s;for(let _=0;_<a.length;_++){let Z=a[_],ue=this._getOptionValue(Z.value);r.push(ue)}}else{let a=i.options;for(let _=0;_<a.length;_++){let Z=a[_];if(Z.selected){let ue=this._getOptionValue(Z.value);r.push(ue)}}}this.value=r,e(r)}}_registerOption(e){let i=(this._idCounter++).toString();return this._optionMap.set(i,e),i}_getOptionId(e){for(let i of this._optionMap.keys())if(this._compareWith(this._optionMap.get(i)._value,e))return i;return null}_getOptionValue(e){let i=rn(e);return this._optionMap.has(i)?this._optionMap.get(i)._value:e}static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["select","multiple","","formControlName",""],["select","multiple","","formControl",""],["select","multiple","","ngModel",""]],hostBindings:function(i,r){i&1&&y("change",function(a){return r.onChange(a.target)})("blur",function(){return r.onTouched()})},inputs:{compareWith:"compareWith"},standalone:!1,features:[c([nn]),u]})}return n})(),Un=(()=>{class n{_element;_renderer;_select;id;_value;constructor(e,i,r){this._element=e,this._renderer=i,this._select=r,this._select&&(this.id=this._select._registerOption(this))}set ngValue(e){this._select!=null&&(this._value=e,this._setElementValue($e(this.id,e)),this._select.writeValue(this._select.value))}set value(e){this._select?(this._value=e,this._setElementValue($e(this.id,e)),this._select.writeValue(this._select.value)):this._setElementValue(e)}_setElementValue(e){this._renderer.setProperty(this._element.nativeElement,"value",e)}_setSelected(e){this._renderer.setProperty(this._element.nativeElement,"selected",e)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}static \u0275fac=function(i){return new(i||n)(o(w),o(I),o(pt,9))};static \u0275dir=l({type:n,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"},standalone:!1})}return n})();function sn(n){return typeof n=="number"?n:parseInt(n,10)}function mt(n){return typeof n=="number"?n:parseFloat(n)}var z=(()=>{class n{_validator=Q;_onChange;_enabled;ngOnChanges(e){if(this.inputName in e){let i=this.normalizeInput(e[this.inputName].currentValue);this._enabled=this.enabled(i),this._validator=this._enabled?this.createValidator(i):Q,this._onChange&&this._onChange()}}validate(e){return this._validator(e)}registerOnValidatorChange(e){this._onChange=e}enabled(e){return e!=null}static \u0275fac=function(i){return new(i||n)};static \u0275dir=l({type:n,features:[E]})}return n})(),on={provide:m,useExisting:d(()=>an),multi:!0},an=(()=>{class n extends z{max;inputName="max";normalizeInput=e=>mt(e);createValidator=e=>Ze(e);static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["input","type","number","max","","formControlName",""],["input","type","number","max","","formControl",""],["input","type","number","max","","ngModel",""]],hostVars:1,hostBindings:function(i,r){i&2&&S("max",r._enabled?r.max:null)},inputs:{max:"max"},standalone:!1,features:[c([on]),u]})}return n})(),ln={provide:m,useExisting:d(()=>un),multi:!0},un=(()=>{class n extends z{min;inputName="min";normalizeInput=e=>mt(e);createValidator=e=>ze(e);static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["input","type","number","min","","formControlName",""],["input","type","number","min","","formControl",""],["input","type","number","min","","ngModel",""]],hostVars:1,hostBindings:function(i,r){i&2&&S("min",r._enabled?r.min:null)},inputs:{min:"min"},standalone:!1,features:[c([ln]),u]})}return n})(),dn={provide:m,useExisting:d(()=>cn),multi:!0};var cn=(()=>{class n extends z{required;inputName="required";normalizeInput=he;createValidator=e=>Xe;enabled(e){return e}static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["","required","","formControlName","",3,"type","checkbox"],["","required","","formControl","",3,"type","checkbox"],["","required","","ngModel","",3,"type","checkbox"]],hostVars:1,hostBindings:function(i,r){i&2&&S("required",r._enabled?"":null)},inputs:{required:"required"},standalone:!1,features:[c([dn]),u]})}return n})();var hn={provide:m,useExisting:d(()=>fn),multi:!0},fn=(()=>{class n extends z{maxlength;inputName="maxlength";normalizeInput=e=>sn(e);createValidator=e=>Ye(e);static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["","maxlength","","formControlName",""],["","maxlength","","formControl",""],["","maxlength","","ngModel",""]],hostVars:1,hostBindings:function(i,r){i&2&&S("maxlength",r._enabled?r.maxlength:null)},inputs:{maxlength:"maxlength"},standalone:!1,features:[c([hn]),u]})}return n})(),gn={provide:m,useExisting:d(()=>pn),multi:!0},pn=(()=>{class n extends z{pattern;inputName="pattern";normalizeInput=e=>e;createValidator=e=>Ke(e);static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["","pattern","","formControlName",""],["","pattern","","formControl",""],["","pattern","","ngModel",""]],hostVars:1,hostBindings:function(i,r){i&2&&S("pattern",r._enabled?r.pattern:null)},inputs:{pattern:"pattern"},standalone:!1,features:[c([gn]),u]})}return n})();var _t=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=K({type:n});static \u0275inj=Y({})}return n})();var Hn=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:M,useValue:e.callSetDisabledState??q}]}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=K({type:n});static \u0275inj=Y({imports:[_t]})}return n})(),Ln=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:Fe,useValue:e.warnOnNgModelWithFormControl??"always"},{provide:M,useValue:e.callSetDisabledState??q}]}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=K({type:n});static \u0275inj=Y({imports:[_t]})}return n})();export{V as a,yt as b,qe as c,je as d,xn as e,Pn as f,L as g,Rn as h,Gt as i,Me as j,jn as k,Ut as l,Gn as m,Lt as n,qt as o,Tn as p,Xt as q,Kt as r,Qt as s,gt as t,Bn as u,pt as v,Un as w,an as x,un as y,cn as z,fn as A,pn as B,Hn as C,Ln as D};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{e}from"./chunk-B4AJQJMI.js";var s=e((o,t)=>{t.exports={"accessories.accessory_info":"Accessory Information","accessories.bridge_ip":"Bridge IP","accessories.bridge_port":"Bridge Port","accessories.button_add_room":"Dodaj sobo","accessories.button_delete_room":"Delete Room","accessories.button_edit_room":"Edit Room","accessories.button_hidden_hide":"Hide Hidden","accessories.button_hidden_show":"Show Hidden","accessories.button_remove":"Remove From Cache","accessories.control.adaptive_lighting":"Adaptive Lighting","accessories.control.adaptive_lighting_note":"Some plugins may automatically re-enable Adaptive Lighting when changing this.","accessories.control.auto":"Auto","accessories.control.away":"Odsoten","accessories.control.battery_charged":"Charged","accessories.control.battery_charging":"Polnjenje","accessories.control.battery_low":"Battery Low","accessories.control.battery_notchargeable":"Nepolnjivo","accessories.control.battery_notcharging":"Ne polni","accessories.control.brightness":"Svetlost","accessories.control.cleaning":"Cleaning","accessories.control.closed":"Zaprto","accessories.control.closing":"Zapiranje","accessories.control.color_temperature":"Color Temperature","accessories.control.cool":"Hladno","accessories.control.current":"Current","accessories.control.default_room":"Privzeta soba","accessories.control.dehumidify":"Dehumidify","accessories.control.detected":"Detected","accessories.control.direction_control":"Direction Control","accessories.control.drag_here":"Povleci sem","accessories.control.filter_level":"Filter Life","accessories.control.heat":"toplota","accessories.control.home":"Dom","accessories.control.hue":"Hue","accessories.control.humidify":"Humidify","accessories.control.idle":"Idle","accessories.control.input":"Input List","accessories.control.input_control":"Input Control","accessories.control.jammed":"Zataknjeno","accessories.control.lock_auto":"Auto Lock Timer","accessories.control.locked":"Zaklenjeno","accessories.control.manual":"Manual","accessories.control.media_control":"Media Control","accessories.control.microphone":"Microphone","accessories.control.mode":"Mode","accessories.control.mode_control":"Mode Control","accessories.control.mute":"Izklop zvoka","accessories.control.mute_control":"Mute Control","accessories.control.night":"No\u010D","accessories.control.no_data":"No Data","accessories.control.not_detected":"Not Detected","accessories.control.not_mute":"Vklju\u010Den zvok","accessories.control.obstructed":"Obstructed","accessories.control.off":"Izklju\u010Deno","accessories.control.on":"Vklju\u010Deno","accessories.control.open":"Odpri","accessories.control.opening":"Odpiranje","accessories.control.pause":"Pause","accessories.control.paused":"Paused","accessories.control.play":"Play","accessories.control.replace":"Replace","accessories.control.rotation_c_clockwise":"Counter Clockwise","accessories.control.rotation_clockwise":"Clockwise","accessories.control.rotation_direction":"Rotation Direction","accessories.control.rotation_speed":"Hitrost vrtenja","accessories.control.running":"Delovanje","accessories.control.saturation":"Saturation","accessories.control.set_duration":"Set Duration","accessories.control.speaker":"Speaker","accessories.control.speaker_volume":"Glas","accessories.control.state_control":"State Control","accessories.control.stateless":"Stateless","accessories.control.stop":"Stop","accessories.control.stopped":"Ustavljeno","accessories.control.target":"Cilj","accessories.control.target_auto":"Auto Target","accessories.control.threshold_auto":"Auto Threshold","accessories.control.triggered":"Spro\u017Eeno","accessories.control.unknown":"Neznano","accessories.control.unlocked":"Odklenjeno","accessories.control_disabled":"Homebridge Nadzor dodatne opreme onemogo\u010Den","accessories.core.air_purifier":"Air Purifier","accessories.core.air_quality_sensor":"Air Quality Sensor","accessories.core.battery":"Battery","accessories.core.carbon_dioxide_sensor":"Carbon Dioxide Sensor","accessories.core.carbon_monoxide_sensor":"Carbon Monoxide Sensor","accessories.core.contact_sensor":"Contact Sensor","accessories.core.cooler":"Cooler","accessories.core.dehumidifier":"Dehumidifier","accessories.core.door":"Door","accessories.core.doorbell":"Doorbell","accessories.core.fan":"Fan","accessories.core.faucet_valve":"Valve","accessories.core.filter_maintenance":"Filter Maintenance","accessories.core.garage_door_opener":"Garage Door Opener","accessories.core.generic_valve":"Valve","accessories.core.heater":"Heater","accessories.core.heater_cooler":"Heater Cooler","accessories.core.humidifier":"Humidifier","accessories.core.humidifier_dehumidifier":"Humidifier Dehumidifier","accessories.core.humidity_sensor":"Humidity Sensor","accessories.core.irrigation_system":"Irrigation System","accessories.core.irrigation_valve":"Valve","accessories.core.leak_sensor":"Leak Sensor","accessories.core.light_sensor":"Light Sensor","accessories.core.lightbulb":"Lightbulb","accessories.core.lock_mechanism":"Lock Mechanism","accessories.core.microphone":"Microphone","accessories.core.motion_sensor":"Motion Sensor","accessories.core.occupancy_sensor":"Occupancy Sensor","accessories.core.on_off_light":"Lightbulb","accessories.core.on_off_light_switch":"Switch","accessories.core.on_off_plug_in_unit":"Outlet","accessories.core.outlet":"Outlet","accessories.core.robot_vacuum":"Robot Vacuum","accessories.core.robotic_vacuum_cleaner":"Robot Vacuum","accessories.core.security_system":"Security System","accessories.core.shower_head_valve":"Valve","accessories.core.smoke_sensor":"Smoke Sensor","accessories.core.speaker":"Speaker","accessories.core.stateless_programmable_switch":"Stateless Programmable Switch","accessories.core.switch":"Switch","accessories.core.television":"Television","accessories.core.temperature_sensor":"Temperature Sensor","accessories.core.thermostat":"Thermostat","accessories.core.valve":"Valve","accessories.core.washing_machine":"Washing Machine","accessories.core.window":"Window","accessories.core.window_covering":"Window Covering","accessories.custom_name":"Custom Name","accessories.custom_type":"Custom Type","accessories.delete_room_confirm":"Confirm you want to delete this room by clicking the delete button.","accessories.delete_room_move_accessories":"Any accessories in this room will be moved to {{roomName}}.","accessories.delete_room_new_default":"{{roomName}} will become the new default room.","accessories.hide_this_accessory":"Skrij to dodatno opremo","accessories.message_must_use_insecure_mode":"T\u010Ce \u017Eelite nadzirati dodatno opremo, morate v na\u010Dinu neza\u0161\u010Diteno uporabljati Homebridge {{ link }}.","accessories.name":"Ime","accessories.no_plugins.message_1":"Accessories are created and managed by Homebridge plugins.","accessories.no_plugins.message_2":"You can find and install plugins from the plugins page.","accessories.no_plugins.title":"No Plugins Installed","accessories.only_ui":"These settings are only for the Homebridge UI and <strong>will not be reflected in HomeKit</strong>.","accessories.only_ui_2":"These options are unique to your Homebridge UI account.","accessories.plugin":"Plugin","accessories.room_name":"Ime sobe","accessories.service":"Service","accessories.service_info":"Service Information","accessories.settings_link":"You can access the Homebridge Settings at any time from the cog icon in the side menu.","accessories.show_on_dashboard":"Poka\u017Ei na nadzorni plo\u0161\u010Di","accessories.support.acc_1":"Accessories may take a few minutes to appear on this screen after a Homebridge restart or after being added. If accessories are consistently missing, try changing the mDNS advertiser in the settings.","accessories.support.acc_2":"You can change the type of certain accessories in the UI (like showing a switch as a heater). You can do this by clicking on the three bars that appear in the top-right corner of the accessory tile as you hover over it. A 'Custom Type' option will appear if the accessory supports this. Note this will not change the accessory in HomeKit (only a plugin can do this).","accessories.support.rooms_1":"Prostori, ki jih ustvarite tukaj, se ne bodo prikazali v programu HomeKit, temve\u010D so samo za organizacijo dodatne opreme v programu Homebridge UI.","accessories.support.rooms_2":"You can rename or delete a room by clicking the cog icon next to its name when the layout is unlocked.","accessories.support.rooms_3":"You must have at least one room, and exactly one default room, which is where new accessories will go.","accessories.title_rooms":"Rooms","backup.backup_delete_failed":"Backup deletion failed. See logs for details.","backup.backup_download_failed":"Prenos varnostne kopije ni uspel","backup.backup_exceeds_max_size":"Backup ({{ backupSize }}) exceeds maximum restore file size of {{ maxBackupSizeText }}","backup.backup_help_one":"Prenesite rezervni arhiv celotnega okolja Homebridge. Tako boste ustvarili varnostno kopijo celotne vsebine va\u0161e mape za shranjevanje Homebridge, ki jo lahko pozneje obnovite na kateri koli platformi, ki lahko poganja Homebridge UI.","backup.backup_help_two":"Vti\u010Dniki, ki niso gostili npm, ali vti\u010Dniki, name\u0161\u010Deni neposredno iz GitHub-a, ne bodo varnostno kopirani ali obnovljeni.","backup.backup_now":"Backup Now","backup.backup_now_desc":"Generate and download an up-to-date backup file.","backup.backup_now_save_desc":"Generate an up-to-date backup file in your backup storage directory.","backup.backup_restored":"Varnostno kopiranje arhiva obnovljeno","backup.backup_warning":"Rezervni arhivi vsebujejo ob\u010Dutljive podatke in jih ne smete deliti z drugimi.","backup.files_auto":"Stored Backup Files","backup.label_extracting":"Extracting Archive","backup.label_uploading":"Nalaganje \u2026","backup.load_error":"Failed to load config backup.","backup.restore_failed":"Obnovitev ni uspela","backup.restore_help_one":"Obnovite arhiv varnostnih kopij, ki ste ga predhodno ustvarili s pomo\u010Djo uporabni\u0161kega vmesnika Homebridge UI. Obnovljeno bo: konfiguracija, predpomnjeni dodatki, HomeKit in uporabni\u0161ki ra\u010Duni Homebridge UI. Vsi vti\u010Dniki Homebridge, ki ste jih namestili, se bodo prenesli tudi iz registra npm.","backup.restore_help_two":"Po obnovitvi z uporabo poverilnic obnovljenega primerka se boste morali prijaviti v doma\u010Di Bridge Config UI X.","backup.restore_max_size":"You can restore a backup archive up to {{ maxBackupSizeText }} in size.","backup.restore_now":"Restore Now","backup.restore_now_desc":"Restore from a previously downloaded backup file.","backup.restore_warning":"Obnovitev varnostne kopije bo nepovratno prepisala trenutno konfiguracijo Homebridgea.","backup.scheduled_backup_disabled":"Scheduled backups have been disabled via the configuration.","backup.scheduled_backup_time":"Popolna varnostna kopija primerka Homebridge se samodejno ustvari vsak dan ob {{ backupTime }} in hrani toliko dni: {{ dayCount }}. ","backup.settings_enable":"Enable Automated Backups","backup.settings_path":"Backup Storage Path","backup.settings_path_desc":"If you are changing this from the default, please ensure the directory exists and is writable by the Homebridge user.","backup.settings_title":"Backup Settings","backup.title_backup":"Backup & Restore","child_bridge.about":"Homebridge vam omogo\u010Da, da platformo ali dodatno opremo vti\u010Dnika za\u017Eenete kot izoliran otro\u0161ki most {{ link }}. To lahko izbolj\u0161a splo\u0161no odzivnost in zanesljivost Homebridgea.","child_bridge.bridge_connect":"Connect to HomeKit","child_bridge.bridge_settings":"Nastavitve mostu","child_bridge.bridges":"Bridges","child_bridge.bridges_paired":"Vsako platformo ali dodatno opremo za otro\u0161kimost bo treba povezati s HomeKitom posebej. ","child_bridge.bridges_paired_2":"If you set up a child bridge now and later disable it, any accessories on this bridge will be removed and re-created on the main Homebridge bridge.","child_bridge.config.accessory":"Accessory","child_bridge.config.debug":"Debug Mode","child_bridge.config.enable_hap":"Enable HAP","child_bridge.config.firmware":"Firmware Version","child_bridge.config.hide_pairing_alert":"Hide Pairing Alert","child_bridge.config.manufacturer":"Manufacturer","child_bridge.config.matter_note_1":"Plugins must be updated by the developer to support Matter accessories. There is no use in enabling Matter here unless you definitely know the plugin supports it.","child_bridge.config.matter_note_2":"Matter accessories don't appear in the Homebridge UI accessories screen. They can be managed using the Home app or other Matter controllers.","child_bridge.config.model":"Model","child_bridge.config.name":"Name","child_bridge.config.or_link":"Link Existing Bridge","child_bridge.config.platform":"Platform","child_bridge.config.port":"Port","child_bridge.config.prevent":"Cannot disable a child bridge with linked accessories.","child_bridge.config.select_existing":"Select an existing bridge...","child_bridge.config.use":"Use Child Bridge","child_bridge.confirm_delete_1":"The following child bridges will be removed.","child_bridge.confirm_delete_2":"You will need to remove the paired bridges manually from the Home app. Any accessories will be removed and re-created on the main Homebridge bridge.","child_bridge.must_configure_plugin":"Ta vti\u010Dnik morate konfigurirati, preden lahko upravljate njegove nastavitve mostu.","child_bridge.reset_accessories":"Reset Accessories","child_bridge.restart":"Restart Child Bridge","child_bridge.restart_plural":"Restart Child Bridges","child_bridge.return_to_pair":"Vrnite se na ta zaslon, potem ko se Homebridge znova za\u017Eene, da si ogledate kodo za seznanjanje QR.","child_bridge.setup":"Set Up Child Bridge","child_bridge.start":"Start Child Bridge","child_bridge.start_plural":"Start Child Bridges","child_bridge.stop":"Stop Child Bridge","child_bridge.stop_plural":"Stop Child Bridges","common.labels.beta":"beta","common.labels.disabled":"Onemogo\u010Deno","common.labels.enabled":"Enabled","common.labels.no_confirmation":"There is no confirmation when clicking the button, it will immediately perform the action.","common.phrases.are_you_sure":"Are you sure you want to continue anyway?","common.phrases.support":"Feel like there is something useful we could add here? Let us know on {{ github }} or {{ discord }}!","config.config_accessory_must_be_array":"dodatki morajo biti v nizu []","config.config_bridge_missing":"Manjkajo nastavitve Bridga","config.config_invalid_json":"Config vsebuje neveljaven JSON","config.config_platform_must_be_array":"platforme morajo biti v nizu []","config.config_saved":"Configuration Saved","config.config_username_error":"Uporabni\u0161ko ime mostu mora imeti 6 parov \u0161estnajstih znakov, lo\u010Denih z dvopi\u010Djem (A-F 0-9)","config.error_blocks_objects":"All {{ type }} blocks must be objects.","config.error_blocks_type":"All {{ type }} blocks must contain the {{ type }} attribute.","config.error_string_array":"Each item in the {{ key }} array must be a string.","config.error_string_type":"The {{ type }} attribute must be a string.","config.failed_to_save_config":"Konfiguracije ni mogo\u010De shraniti","config.hide_hap_pairing":"Hide HAP Pairing Alert","config.hide_matter_pairing":"Hide Matter Pairing Alert","config.hide_plugin_updates":"Hide Plugin Updates For","config.no_restart":"A restart is not needed as no changes were made to the Homebridge configuration.","config.restore.confirm":"Kliknite Shrani, da potrdite, da \u017Eelite obnoviti to varnostno kopijo.","config.restore.copy_to_editor":"Kopiraj v urejevalnik","config.restore.download":"Download your current configuration as a JSON file.","config.restore.help_1":"A backup of your config file is created each time it is updated from actions you take in the Homebridge UI.","config.restore.help_2":"You can restore a previous version of your config file by selecting it from the list below. You will be able to compare this version with your current config before deciding whether to restore it.","config.restore.title":"Config File Backup & Restore","config.restore.toast_backups_deleted":"Vse varnostne kopije so izbrisane","config.restore.view_inline":"Inline View","config.restore.view_side_by_side":"Side-By-Side View","config.title_backup_loaded":"Varnostna kopija nalo\u017Eena","form.button_allow":"Allow","form.button_back":"Back","form.button_cancel":"Prekini","form.button_close":"zapri","form.button_continue":"Continue","form.button_delete":"Izbri\u0161i","form.button_delete_all":"Delete All","form.button_disable":"Disable","form.button_download":"Prenesi","form.button_edit":"Uredi","form.button_enable":"Enable","form.button_lock":"Lock","form.button_more_info":"More Info","form.button_remove":"Remove","form.button_reset":"Reset","form.button_restore":"Obnovi","form.button_save":"Shrani","form.button_show":"Show","form.button_unlock":"Unlock","form.button_unpair":"Unpair","form.label.changes_kept":"Note that existing selections/changes are preserved when switching between items.","form.label_invalid":"Config validation failed - you can still save your changes.","form.label_invalid_strict":"Config validation failed - please review the form before saving.","form.label_valid":"Config validation passed.","form.optional":"Optional","form.search":"Search...","form.select.auto":"Automatic (Use Browser Settings)","login.invalid_code":"The code entered is incorrect or has expired","login.invalid_credentials":"Neveljavno uporabni\u0161ko ime in geslo","login.invalid_credentials_2":"If you lose access, delete the <code>auth.json</code> file in your Homebridge storage directory and restart Homebridge. Then refresh this page to set up a new admin account. Your Homebridge/UI settings will remain unchanged, except for UI user accounts. The only user account will be the admin account that you are setting up now.","login.invalid_password":"Invalid Password","login.label_2fa_code":"Dvofaktorska koda za preverjanje pristnosti","logs.download.error":"Failed to download log file.","logs.download_warning":"Dnevni\u0161ke datoteke Homebridge lahko vsebujejo osebne podatke, gesla ali \u017Eetone za dostop. Preglejte datoteko dnevnika in odstranite vse ob\u010Dutljive podatke, preden jih delite z drugimi.","logs.log_file_truncated":"Dnevnik je skraj\u0161an.","logs.placeholder_search_logs":"Search logs (min. 3 characters)...","logs.title_download_log_file":"Prenesi datoteko dnevnika","logs.title_truncate_log_file":"Skraj\u0161aj datoteko dnevnika","logs.truncate.error":"Failed to truncate log file.","logs.truncate_log_warning":"S tem boste nepreklicno izbrisali obstoje\u010De dnevnike Homebridgea. Ali ste prepri\u010Dani, da \u017Eelite nadaljevati?","matter_bridge.config.use":"Enable Matter","menu.config_json_editor":"JSON Config","menu.docker.restart_container":"Znova za\u017Eeni kontejner","menu.docker.startup_script":"Za\u010Detni skript","menu.docker.terminal":"Terminal","menu.hbrestart.confirm_hb":"Restart Homebridge","menu.hbrestart.confirm_ui":"Restart HB Service & UI","menu.hbrestart.title":"Restart Homebridge","menu.label_accessories":"Dodatki","menu.label_plugins":"Vti\u010Dniki","menu.label_settings":"Settings","menu.label_status":"Stanje","menu.linux.label_logs":"Logs","menu.linux.label_restart_server":"Znova za\u017Eenite stre\u017Enik","menu.linux.label_shutdown_modal":"Are you sure you want to shut down the operating system? You will need physical access to turn it back on.","menu.linux.label_shutdown_server":"Zaustavi stre\u017Enik","menu.linux.label_terminal":"Terminal","menu.reload":"Reload","menu.restart.title":"Power Options","menu.settings.title":"Settings","menu.tooltip_logout":"Odjava","menu.tooltip_restart":"Ponovni zagon","menu.tooltip_user_accounts":"Uporabni\u0161ki ra\u010Duni","menu.tooltip_view_logs":"Prika\u017Ei dnevnike","platform.docker.container_restarted":"Docker Kontainer Ponovno zagnan","platform.docker.must_use_hashbang":"Skript mora uporabljati #!/bin/sh hashbang.","platform.docker.restart_required":"Da bodo spremembe za\u010Dele veljati, boste morali znova zagnati ta vsebnik.","platform.docker.run_with_restart":"Poskrbite, da zabojnik Docker izvajate z {{ command }}","platform.docker.script_help":"Ta skripta se bo izvajala vsaki\u010D, ko se bo zagnal Kontejner za docker. To lahko uporabite za namestitev dodatnih paketov, ki jih bodo vti\u010Dniki morda potrebovali, na primer ffmpeg ali libpcap-dev.","platform.docker.script_saved":"Za\u010Detna skripta je shranjena","platform.docker.server_long_time":"Ponovni zagon stre\u017Enika traja dolgo. Morda boste morali kontejner Docker zagnati ro\u010Dno.","platform.docker.title_restarting":"Ponovni zagon kontejnerja Docker","platform.linux.long_time":"Ponovni zagon stre\u017Enika traja dolgo. Morda boste morali stre\u017Enik zagnati ro\u010Dno.","platform.linux.restart":"Po\u010Dakajte. Ta stran se bo samodejno preusmerila, ko se bo Homebridge spet nalo\u017Eil.","platform.linux.restarting_server":"Ponovni zagon stre\u017Enika","platform.linux.server_restart_error":"Pri po\u0161iljanju ukaza za ponovni zagon stre\u017Eniku je pri\u0161lo do napake","platform.linux.server_restarted":"Stre\u017Enik vnovi\u010D zagnan","platform.linux.server_taking_long_time":"Stre\u017Enik rabi dolgo \u010Dasa, da se za\u017Eene","platform.linux.server_will_power_down":"Stre\u017Enik se bo kmalu izklopil.","platform.linux.shutting_down_server":"Zaustavitev stre\u017Enika","platform.terminal.terminate_message_1":"Navigating away from this page will terminate your current session, all foreground processes will be terminated.","platform.terminal.terminate_message_2":"To avoid this warning, enable <strong>Terminal Session Persistence</strong> from the settings page.","platform.terminal.terminate_title":"Session Termination","platform.terminal.terminate_unload":"Your terminal session will be terminated. Enable Terminal Session Persistence in Settings to prevent this.","platform.version.restart_required":"Homebridge UI v{{ uiVersion }} has been installed, but the server service is still running v{{ serverVersion }}.","platform.version.service_restart_required":"Potreben ponovni zagon storitve","plugins.bridge.action_error":"Failed to {{ action }} child bridge(s).","plugins.bridge.name_error":"Bridge name must start and end with a letter or number, and can only contain letters, numbers, spaces, and apostrophes.","plugins.bridge.port_error":"{{ type }} port must be an integer between 1025 and 65533, excluding 5353, 8080, 8443 and any other already-configured port.","plugins.button_homepage":"Plugin Homepage","plugins.button_set_up":"Set Up","plugins.button_settings":"Nastavitve","plugins.button_uninstall":"Odstranitev","plugins.button_update":"Nadgradnja","plugins.compat.hb_node_too_low":"{{ packageName }} v v{{ latestVersion }} zahteva Node.js v v{{ minVersion }} ali novej\u0161o. Trenutno izvajate Node.js {{ installedVersion }}.","plugins.compat.hb_too_low":"{{ pluginName }} vti\u010Dnik zahteva Homebridge v{{ minVersion }} ali novej\u0161i. Trenutno se izvaja Homebridge v{{ installedVersion }}.","plugins.compat.node_first":"Pred posodobitvijo {{ packageName }} nadgradite Node.js.","plugins.compat.node_link":"How To Update Node.js","plugins.compat.node_too_low":"{{ pluginName }} vti\u010Dnik zahteva Node.js v{{ minVersion }} ali novej\u0161i. Trenutno se izvaja Node.js {{ installedVersion }}.","plugins.compat.title":"Compatibility Check","plugins.config.load_error":"Failed to load plugin config.","plugins.config.must_be_array":"Plugin config must be an array.","plugins.config.must_be_array_objects":"Plugin config must be an array of objects.","plugins.config.must_be_object":"Config block must be an object.","plugins.config.name_property":'Accessory must have a valid "name" attribute',"plugins.config.please_fix":"Please fix validation errors before adding a new block.","plugins.disable.error":"Failed to disable plugin.","plugins.donate.message_1":"As more users install their plugins through the Homebridge UI, they are less likely to visit the projects' GitHub page where the ways to support a developer would typically be displayed.","plugins.donate.message_2":"Adding donation links directly in the Homebridge UI ensures users know how to support Homebridge developers if they wish to do so.","plugins.donate.tile_donate_to":"Doniraj {{ author }}","plugins.enable.error":"Failed to enable plugin.","plugins.manage.all_versions":"All versions","plugins.manage.backup":"Download a backup before updating?","plugins.manage.changelog":"Full Changelog","plugins.manage.changelog_none":"Could not retrieve changelog, perhaps this plugin does not provide a <code>CHANGELOG.md</code> file.","plugins.manage.child_bridge_restart":"Child bridge restarted successfully.","plugins.manage.child_bridge_restart_failed":"Plugin restart failed, please restart Homebridge manually.","plugins.manage.confirm_disable":"Are you sure you want to disable {{ pluginName }}?","plugins.manage.confirm_disable_accessory_1":"Any accessories exposed by this plugin will be removed from the Homebridge UI accessory screen and removed from HomeKit.","plugins.manage.confirm_disable_accessory_2":"When you re-enable the plugin, the accessories will reappear in the Homebridge UI and HomeKit. The accessories will lose their HomeKit data (like related scenes and automations).","plugins.manage.confirm_disable_platform_1":"Any accessories exposed by this plugin will be removed from the Homebridge UI accessory screen but remain in HomeKit with a 'No Response' label.","plugins.manage.confirm_disable_platform_2":"When you re-enable the plugin, the accessories will reappear in the Homebridge UI and become controllable again in HomeKit. The accessories will not lose their HomeKit data (like related scenes and automations).","plugins.manage.confirm_disable_setting":"Your setting for {{ setting }} is currently {{ value }}, therefore:","plugins.manage.confirm_enable":"Ali ste prepri\u010Dani, da \u017Eelite omogo\u010Diti {{ pluginName }}? ","plugins.manage.disable":"Onemogo\u010Di","plugins.manage.enable":"Omogo\u010Di","plugins.manage.github_support":"You can show your support by giving this plugin a {{ iconStar }} (or the release a {{ iconThumbsUp }}) on GitHub!","plugins.manage.hb_restart":"Homebridge and the UI will automatically restart after any version change.","plugins.manage.hide_updates":"Disable Update Notifications","plugins.manage.hide_updates_desc":"If you don't want to see update notifications for this plugin, you can turn them off here.","plugins.manage.information":"Plugin Information","plugins.manage.install":"Namestite","plugins.manage.installed":"Name\u0161\u010Deno","plugins.manage.json_config":"JSON Config","plugins.manage.manage_version":"Namesti prej\u0161njo razli\u010Dico","plugins.manage.manual_update_command":"To upgrade the package, open a Node.js command prompt as an Administrator and run the following commands:","plugins.manage.more_info":"More information about scoped {{ scopedLink }} and verified {{ verifiedLink }} plugins.","plugins.manage.notes":"Release Notes","plugins.manage.notes_beta_1":"Thank you for helping improve {{ pluginName }} by testing a pre-release version.","plugins.manage.notes_beta_2":"You can use the Homebridge UI to revert back to the stable version at any time.","plugins.manage.notes_beta_3":"Please remember this is a pre-release version, and report any issues to the plugin's GitHub repository page.","plugins.manage.notes_latest":"Release notes are only shown when updating to the latest version.","plugins.manage.notes_none":"Could not retrieve release notes, perhaps this version does not have a GitHub release.","plugins.manage.online_updates":"Spletne posodobitve niso podprte v sistemu Windows. Po ustavitvi storitve Homebridge boste morali ro\u010Dno nadgraditi Homebridge UI.","plugins.manage.plugin_logs":"Plugin Logs","plugins.manage.scoped.error":"An error occurred. You can download the logs below.","plugins.manage.scoped.info_1":"Homebridge scoped plugins have names beginning with {{ prefix }}.","plugins.manage.scoped.info_2":"For more information about scoped plugins and why to switch, see the wiki page {{ link }}.","plugins.manage.scoped.process":"This process will not affect your Homebridge/HomeKit accessories. You will not be able to cancel the process once it has started. It will:","plugins.manage.scoped.switch":"Switch To Scoped Plugin","plugins.manage.scoped.windows":'Online updates are not supported on Windows. You will need to install the new plugin and uninstall the old plugin manually. You should <span class="fw-bold">not</span> restart Homebridge until both steps are complete.',"plugins.manage.scoped_message":"Scoped plugins improve long-term reliability and ensure consistent maintenance by combining centralized oversight from the Homebridge team with continued involvement from the original maintainer.","plugins.manage.scoped_subtitle":"This plugin is scoped and verified.","plugins.manage.select_version":"Izberite razli\u010Dico za namestitev","plugins.manage.uninstall":"Odstranite","plugins.manage.uninstalled":"Odstranjeno","plugins.manage.unverified_message":"Unverified Homebridge plugins indicate that they haven't undergone the review process by the Homebridge project team. Lack of verification does not necessarily imply inefficacy or safety concerns. Authors might have opted not to seek verification for various reasons.","plugins.manage.unverified_subtitle":"This plugin is not verified.","plugins.manage.update":"Nadgradnja","plugins.manage.updated":"Posodobljeno","plugins.manage.verified_message":"Homebridge plugins that are marked as verified have been reviewed by the Homebridge project team to ensure they meet various requirements that encourage best practices and a trouble-free user experience.","plugins.manage.verified_subtitle":"This plugin is verified.","plugins.placeholder_search_first":"Use the search bar above to find your first plugin","plugins.placeholder_search_none":"No results were found","plugins.placeholder_search_plugin":"Poi\u0161\u010Dite vti\u010Dnike za namestitev \u2026","plugins.settings.custom.download_dump_file":"Download Dump File","plugins.settings.custom.homebridge-gsh.label_account_linked":"Ra\u010Dun povezan","plugins.settings.custom.homebridge-gsh.label_link_account":"Pove\u017Eite ra\u010Dun","plugins.settings.custom.homebridge-gsh.message_about":"Vti\u010Dnik Homebridge Google Smart Home omogo\u010Da upravljanje pripomo\u010Dkov Homebridge iz pametnega zvo\u010Dnika, ki podpira Google Home ali mobilne aplikacije Google Home.","plugins.settings.custom.homebridge-gsh.message_account_link_required":"\u010Ce \u017Eelite omogo\u010Diti to funkcijo, se morate prijaviti s svojim ra\u010Dunom za Google ali GitHub; pri dodajanju dejanja Homebridge v aplikacijo Google Home za mobilne naprave uporabite isti ra\u010Dun.","plugins.settings.custom.homebridge-gsh.message_homebridge_restart_required":"Za uveljavitev sprememb je treba znova zagnati Homebridge.","plugins.settings.deconz.dump_no_exist":"Homebridge deCONZ dump file does not exist yet.","plugins.settings.hue.dump_no_exist":"Homebridge Hue dump file does not exist yet.","plugins.settings.label_open_config_editor":"Odpri Config Urejevalec","plugins.settings.message_consult_documentation":"Za navodila o pravilni konfiguraciji tega vti\u010Dnika glejte dokumentacijo vti\u010Dnika.","plugins.settings.message_manual_config_required":"Ta vti\u010Dnik morate konfigurirati ro\u010Dno z urejevalnikom konfiguracije vmesnika Homebridge UI.","plugins.settings.plugin_config_saved":"Konfiguracija vti\u010Dnika je shranjena","plugins.settings.restart_required":"Za uveljavitev sprememb znova za\u017Eenite Homebridge.","plugins.stats":"Plugin Statistics","plugins.stats_note":"Plugins cannot be installed from this page, this is provided just for interest.","plugins.status_installed":"Name\u0161\u010Deno","plugins.support.list_1":"Homebridge plugins are the building blocks of Homebridge, allowing you to add support for new accessories and platforms. Plugins add support for smart lights, cameras, TVs, etc, for brands that don't natively support HomeKit. For example, to bring your Ring doorbells and cameras into HomeKit, you can install the <code>homebridge-ring</code> plugin.","plugins.support.list_2":"Homebridge plugins are created by public contributors in the Homebridge community, and are not typically associated with the Homebridge maintainers, nor with the manufacturers of the accessories themselves. If you have a question about a specific plugin, you should let the plugin developer know via the plugin's GitHub page.","plugins.support.list_3":"There are currently over 4,700 plugins available for Homebridge, so you should be able to find plugins to suit your needs. If you are a Javascript/TypeScript developer (or want to take the opportunity to learn), you can also create your own plugin and share it with the Homebridge community. Check out the Support section for some handy links to get you started.","plugins.support.list_4":"Some plugins allow you to create 'virtual/dummy' accessories, which are accessories that do not have a physical counterpart. These can be used to create virtual accessories in HomeKit, such as virtual switches, lights, or sensors. Try searching for <code>dummy</code> or <code>virtual</code> in the search bar to find some examples.","plugins.toast_failed_to_load_plugin_schema":"Failed to load plugin config schema.","plugins.toast_failed_to_load_plugins":"Vti\u010Dnikov ni bilo mogo\u010De nalo\u017Eiti","plugins.toast_failed_to_search_plugins":"Failed to search plugins","plugins.uninstall_remove_child_bridge":"Remove plugin child bridge?","plugins.uninstall_remove_child_bridges":"Remove {{ count }} plugin child bridges?","plugins.uninstall_remove_config_required":"\u010Ce ta vti\u010Dnik trajno odstranite, pred ponovnim zagonom Homebridgea obvezno odstranite konfiguracijo za ta vti\u010Dnik v config.json.","plugins.uninstall_remove_confirmation":"Ali ste prepri\u010Dani, da \u017Eelite odstraniti program {{ pluginName }}?","plugins.uninstall_remove_plugin_config":"Odstrani konfiguracijo vti\u010Dnika?","plugins.uninstall_warn_1":"When removing a child bridge, any accessories published by this bridge will be removed from the Homebridge cache.","plugins.uninstall_warn_2":"The accessories will become stale in HomeKit (showing no response). To remove them, you will need to manually remove this bridge from HomeKit. You can do this in the Home app from the Home Settings section.","reset.accessory_all.desc":"Remove all accessories from the cache.","reset.accessory_all.list_1":"When clicking on the remove button below, Homebridge will restart and all your existing accessories will be removed from Homebridge and HomeKit.","reset.accessory_all.list_2":"All associated HomeKit data will also be removed, this includes room associations, scenes and automations that this accessory uses.","reset.accessory_all.list_3":"After Homebridge restarts, your plugins will re-add any accessories as if the plugin was being installed for the first time.","reset.accessory_all.title":"Remove All Accessories","reset.accessory_ind.bridge":"Bridge","reset.accessory_ind.desc":"Remove individual accessories from the cache.","reset.accessory_ind.done":"Finished removing accessories from the cache, check the log for confirmation and/or errors.","reset.accessory_ind.fail":"Failed to remove accessories from cache, check the log for errors.","reset.accessory_ind.list_1":"Some plugins don't clean up after themselves properly. If you have stale accessories, you can remove them from the cache. This function can also be used to reset an existing accessory in HomeKit.","reset.accessory_ind.list_2":"The accessories will be removed from Homebridge and HomeKit, along with their related room associations, scenes and automations.","reset.accessory_ind.list_3":"After Homebridge restarts, your plugins will re-add any removed accessories as if the plugin was being installed for the first time.","reset.accessory_ind.title":"Remove Individual Accessories","reset.accessory_ind.unknown":"Unknown Name","reset.accessory_reset":"Ponastavitev dodatka za Homebridge","reset.action_is_irreversible":"To dejanje je nepovratno. Pred nadaljevanjem natan\u010Dno preberite navodila.","reset.bridge_accessories.desc":"Remove all accessories published by a child bridge from the cache.","reset.bridge_accessories.empty":"You have no bridges from which to remove accessories.","reset.bridge_accessories.list_1":"This function can be used to reset a plugin's existing accessories in HomeKit. They will be removed from Homebridge and HomeKit, and then re-added by the plugin as new accessories.","reset.bridge_accessories.list_2":"The child bridge's pairing details and status will remain the same.","reset.bridge_accessories.title":"Remove Bridge Accessories","reset.bridge_all.desc":"Reset all bridges by removing them from the cache. This includes the main Homebridge bridge, child bridges and bridges for external accessories.","reset.bridge_all.list_1":"This will reset the Homebridge bridge, all child bridges and bridges for external accessories from HomeKit.","reset.bridge_all.list_2":"Note that your accessories will continue to show in HomeKit as no response, until the bridges are manually removed from HomeKit. You can do this in the Home app, by accessing Home Settings \u2192 Home Hubs & Bridges \u2192 {Bridge} \u2192 Remove Bridge from Home.","reset.bridge_all.list_3":"All your Homebridge to HomeKit accessories, scenes and automations will need to be reconfigured after the unpairing.","reset.bridge_all.list_4":"The pin for pairing your Homebridge bridge to HomeKit will be changed. You can see the new values in your Homebridge config after the unpairing.","reset.bridge_all.title":"Reset All Bridges","reset.bridge_ind.desc":"Reset an individual bridge by removing it from the cache. This may be a child bridge or a bridge for an external accessory like a camera or TV.","reset.bridge_ind.desc_child_active":"Homebridge has detected that these child bridges are in-use. Once removed, their accessories will be removed from the Homebridge cache. If paired with HomeKit, the bridge's accessories will show as 'No Response', and the bridge will need to be removed via the Home app. The child bridge's pairing information will be changed. Once Homebridge has restarted, the plugin will create the new child bridge and accessories. The new bridge will need to be re-paired with HomeKit. You can view the new pairing information from the corresponding plugin's bridge settings page.","reset.bridge_ind.desc_child_stale":"Homebridge has detected that these bridges are not in-use, but double-check before deleting. They could be left-over from previously uninstalled plugins. If paired with HomeKit, the accessories will show as 'No Response', and the bridge will need to be removed via the Home app.","reset.bridge_ind.desc_non_child":"Homebridge has detected that these bridges are in-use. You can remove them from the cache, but they will likely be re-added by the plugin when Homebridge restarts. The pairing information will remain unchanged.","reset.bridge_ind.done":"Finished resetting bridges, check the log for confirmation and/or errors.","reset.bridge_ind.fail":"Failed to reset bridges, check the log for errors.","reset.bridge_ind.head_child_active":"Active Child Bridges","reset.bridge_ind.head_child_stale":"Stale Child Bridges","reset.bridge_ind.head_non_child":"Non Child Bridges","reset.bridge_ind.title":"Reset Individual Bridges","reset.bridges.desc":"If you are having trouble pairing Homebridge, an external accessory or a child bridge to HomeKit, you may need to unpair it from HomeKit to start again.","reset.bridges.empty":"You have no bridges to unpair from HomeKit.","reset.bridges.title":"Bridges","reset.clear_cache_single.list_3":"When removing an accessory from the cache, all its associated HomeKit data will be removed. This includes any associated scenes and automations that use this accessory.","reset.delete_success":"Ponovni zagon Homebridga in \u010Di\u0161\u010Denje predpomnilnika.","reset.error_message":"Accessory cache could not be loaded. You may not have any cached accessories.","reset.failed_to_reset":"Ponastavitve Homebridga ni bilo mogo\u010De. Glejte Dnevniki.","reset.force_restart_hb_help_text":"S tem dejanjem prisili storitev storitve hb, da se v celoti za\u017Eene.","reset.no_accessories":"You have no cached accessories to remove.","restart.child_bridge_list":"Please restart these child bridges for the changes to apply:","restart.child_bridges":"Please restart the plugin's child bridges for the changes to apply.","restart.label_restart_command_executed":"Ponovno za\u017Eenite ukaz","restart.please_wait_while_server_restarts":"Po\u010Dakajte, da se bo ta stran samodejno preusmerila, ko bo stre\u017Enik spet na spletu.","restart.server_is_taking_long_time_to_restart":"Ponovni zagon stre\u017Enika traja dolgo. Storitev Homebridge boste morda morali vnesti ro\u010Dno.","restart.service_ready":"Homebridge Server pripravljen","restart.title_restart":"Ponovni zagon Homebridge-a","restart.toast_server_restart_error":"Pri po\u0161iljanju ukaza za ponovni zagon stre\u017Enika je pri\u0161lo do napake","restart.toast_server_restart_timeout":"Stre\u017Enik se predolgo zaganja","restart.toast_server_restarted":"Stre\u017Enik vnovi\u010D Zagnan","restart.ui_online":"Homebridge uporabni\u0161ki vmesnik je aktiven","rpi.throttled.currently_message":"This Raspberry Pi is reporting it is currently under-voltage; please check it is connected to an appropriate power supply. Under-voltage can result in system instability and SD card corruption.","rpi.throttled.previously_message":"This Raspberry Pi has reported an under-voltage event since it was last rebooted; please check it is connected to an appropriate power supply.","rpi.throttled.undervoltage_title":"Under Voltage","settings.accessory.debug":"Accessory Debug Mode","settings.accessory.debug_desc":"If enabled, the Homebridge UI will log debug level messages to the console.","settings.cache.desc":"Homebridge maintains accessories in cache so they aren't removed and re-added to HomeKit each time Homebridge restarts. Sometimes this cache can become out of sync with the actual accessories in Homebridge.","settings.changes.saved":"Your changes have been saved and require a restart to take effect.","settings.datetime.incorrect":"The date and time on your Homebridge server seem to be incorrect. This may cause unexpected issues. Click here for more information.","settings.display.blue":"Blue","settings.display.bluegrey":"Blue Grey","settings.display.brown":"Brown","settings.display.cyan":"Cyan","settings.display.dark":"Dark","settings.display.deep_purple":"Deep Purple","settings.display.green":"Green","settings.display.grey":"Grey","settings.display.indigo":"Indigo","settings.display.lang":"Language","settings.display.light":"Light","settings.display.lighting_mode":"Lighting Mode","settings.display.menu_default":"Default","settings.display.menu_freeze":"Keep Closed (On Desktop)","settings.display.menu_mode":"Menu Mode","settings.display.orange":"Orange","settings.display.pink":"Pink","settings.display.purple":"Purple","settings.display.red":"Red","settings.display.show_betas":"Prefer Beta Versions","settings.display.teal":"Teal","settings.display.temp_units":"Temperature Units","settings.display.temp_units.c":"Celsius (\xB0C)","settings.display.temp_units.f":"Fahrenheit (\xB0F)","settings.display.theme":"Theme","settings.display.wallpaper":"Wallpaper","settings.display.wallpaper_intro":"Upload a wallpaper for your Homebridge UI. This is currently shown on the login screen.","settings.display.wallpaper_rule":"You can choose an image file which is up to {{ maxFileSizeText }}.","settings.display.wallpaper_rule2":"You will need to click Save to upload the wallpaper to your Homebridge storage directory.","settings.display.wallpaper_success":"Wallpaper was successfully updated.","settings.general.title_display":"Display","settings.general.title_general":"General","settings.linux.restart":"Restart Command","settings.linux.restart_desc":"If no restart command is set the process will terminate with a non-zero exit code.","settings.linux.shutdown":"Shutdown Command","settings.linux.shutdown_desc":"If no shutdown command is set the process will terminate with a non-zero exit code.","settings.linux.temp":"Temperature File Path","settings.linux.temp_desc":"If you are running Homebridge on a Raspberry Pi, you can enter the path to the OS temperature file here. This will display the current temperature on the UI status page.","settings.matter.desc":"Enables Matter accessories on the main bridge. If only using Matter with child bridges, this setting does not need to be enabled - child bridges have independent Matter settings in their plugin bridge settings.","settings.matter.enabled_desc":"Whether to start a Matter instance and allow plugins to expose Matter accessories.","settings.matter.port":"Port","settings.matter.port_desc":"This must be between 1025 and 65533, and unique to any other configured port.","settings.matter.title":"Matter Settings","settings.mdns_advertiser":"mDNS ogla\u0161evalec","settings.mdns_advertiser_exp":"experimental","settings.mdns_advertiser_help":"\u010Ce imate te\u017Eave s povezovanjem z Homebridgeom, poskusite uporabiti enega od nadomestnih ogla\u0161evalcev mDNS.","settings.mdns_advertiser_not_connected":"Not Connected","settings.mdns_advertiser_rec":"recommended","settings.name":"Homebridge Name","settings.network.hb_package":"Homebridge Module Path","settings.network.hb_package_desc":"If you have multiple versions of Homebridge installed, you can specify the path to the version you want to use here.","settings.network.host":"Host IP Address","settings.network.host_desc":"The host IP address to listen on. In most cases this will be <code>::</code> or <code>0.0.0.0</code>.","settings.network.mdns_advertise":"Advertise Via mDNS","settings.network.mdns_advertise_help":"Enable mDNS advertising (using Bonjour) for your Homebridge UI, making it discoverable as an HTTP service on your local network.","settings.network.message_network_interface":"\u010Ce ni izbran noben omre\u017Eni vmesnik, bo Homebridge posku\u0161al samodejno dolo\u010Diti, katere vmesnike ogla\u0161evati.","settings.network.port_end":"End Port","settings.network.port_end_desc":"Control the end of the range of ports that separate accessories (like camera or television) should run on. This must be between 1025 and 65533, and higher than the start port above.","settings.network.port_hb":"Homebridge Port","settings.network.port_hb_desc":"The port number to run the Homebridge bridge on. This must be between 1025 and 65533, and should not be the same as the Homebridge UI port.","settings.network.port_start":"Start Port","settings.network.port_start_desc":"Control the start of the range of ports that separate accessories (like camera or television) should run on. This must be between 1025 and 65533, and lower than the end port below.","settings.network.port_ui":"UI Port","settings.network.port_ui_desc":"The port number to run the Homebridge UI on.","settings.network.proxy":"Reverse Proxy Hostname","settings.network.proxy_desc":"When running behind a reverse proxy you may need to enter the hostname you use to access the UI.","settings.network.title_network":"Omre\u017Eje","settings.network.title_network_interfaces":"Omre\u017Eni vmesniki","settings.network.title_security":"Security","settings.network.title_terminal":"Logging & Terminal","settings.network.webroot":"Webroot Path","settings.network.webroot_desc":"This can be configured if you want to access the Homebridge UI under a specific URL path.","settings.reset_bridge.error":"Failed to reset bridge.","settings.security.auth":"Authentication","settings.security.auth_desc":"Whether to enable authentication for the Homebridge UI with a username and password.","settings.security.cert":"Certificate Path","settings.security.https":"Enable HTTPS","settings.security.https_configure":"Configure HTTPS Settings","settings.security.https_desc":"Enable HTTPS using an auto-generated self-signed certificate or by providing your own certificate files.","settings.security.https_enable":"Enable HTTPS","settings.security.https_enable_desc":"Secure your Homebridge web interface with HTTPS / SSL encryption.","settings.security.https_raspbian":"HTTPS is already enabled by default when running the Homebridge Raspbian image {{ link }}.","settings.security.key":"Private Key Path","settings.security.pass":"PKCS#12 Certificate Passphrase","settings.security.pass_optional":"Optional - only required if your certificate is password protected","settings.security.pfx":"PKCS#12 Certificate Path","settings.security.selfsigned_hostnames":"Certificate Hostnames","settings.security.selfsigned_hostnames_desc":"Comma-separated list of hostnames or IP addresses to include in the certificate (e.g., localhost, 127.0.0.1, homebridge.local, 192.168.1.100)","settings.security.ssl_mode_keycert":"Upload Certificate Files","settings.security.ssl_mode_keycert_desc":"Upload your own private key and certificate files","settings.security.ssl_mode_off":"Disable HTTPS","settings.security.ssl_mode_off_desc":"Turn off SSL encryption.","settings.security.ssl_mode_pfx":"Upload PFX Certificate","settings.security.ssl_mode_pfx_desc":"Upload a PKCS#12 (.pfx or .p12) certificate file","settings.security.ssl_mode_selfsigned":"Self-Signed Certificate","settings.security.ssl_mode_selfsigned_desc":"Automatically generate a free self-signed certificate","settings.security.ui_control":"Accessory Control Lists","settings.security.ui_control_desc":"Define which bridges and bridged accessories can be controlled or blocked by the Homebridge UI.","settings.security.ui_control_desc_2":"Allow the UI to control the accessories on a bridge by toggling on the switch below.","settings.service.debug_tooltip":"Some plugins require you to set the DEBUG environment variable {{ link }} to enable debug level logging.","settings.service.node_tooltip":"Node.js runtime options for this process. This should be kept blank unless you know what you are doing.","settings.startup.debug":"Homebridge Debug Mode","settings.startup.debug_desc_v1":"Enable this if you need Homebridge to output more detailed logs. This setting applies to the main Homebridge bridge as well as all child bridges. Some plugins may also adhere to this setting and output more detailed logs.","settings.startup.debug_desc_v2":"Enable this if you need Homebridge to output more detailed logs. This setting applies to the main Homebridge bridge. The setting for child bridges can be found in the child bridge configuration from the plugins page. Some plugins may also adhere to this setting and output more detailed logs.","settings.startup.insecure":"Enable UI Accessory Control","settings.startup.insecure_desc":"To control your accessories via the Homebridge UI you must be running Homebridge in insecure mode.","settings.startup.keep_accessories":"Keep Accessories Of Uninstalled Plugins","settings.startup.keep_accessories_desc":"If enabled, accessories of platform plugins will remain in the cache even after the plugin is uninstalled. This can be useful if you plan to reinstall the plugin later.","settings.startup.metrics":"Enable Server Metric Monitoring","settings.startup.metrics_desc":"When enabled, the Homebridge UI will collect and show CPU and memory stats on the status page.","settings.startup.scheduled_restart":"Scheduled Restart Cron","settings.startup.scheduled_restart_desc":"Schedule automatic restarts relative to your timezone using a cron expression. Leave empty to disable. Create a cron expression {{ link }}.","settings.startup.scheduled_restart_desc_2":"You can apply this setting per child bridge from the plugin bridge configuration.","settings.startup.session":"Session Timeout","settings.startup.session_days":"days","settings.startup.session_desc":"The number of seconds before a user will be logged out of the UI. Defaults to 8 hours.","settings.startup.session_hours":"hours","settings.startup.session_inactivity_based":"Inactivity-Based Session Refresh","settings.startup.session_inactivity_based_desc":"When enabled, the session will automatically refresh on navigation to prevent logout during active use.","settings.startup.session_minutes":"minutes","settings.terminal.buffer_size":"Terminal Buffer Character Size","settings.terminal.buffer_size_help":"Amount of terminal output to preserve for persistent sessions. Larger values use more memory.","settings.terminal.log_max":"Log Max Size","settings.terminal.log_max_desc":"The max log size (bytes). Set to -1 to disable log truncation.","settings.terminal.log_truncate":"Log Truncate Size","settings.terminal.log_truncate_desc":"The size (bytes) to truncate the log to once it goes over the max size specified above.","settings.terminal.persistence":"Terminal Session Persistence","settings.terminal.persistence_confirm_message":"Disabling terminal session persistence will terminate your current terminal session.","settings.terminal.persistence_confirm_title":"Disable Terminal Session Persistence","settings.terminal.persistence_help":"When enabled, terminal sessions will persist when navigating away and can be resumed when returning to the terminal page (or status page widget). Terminal sessions are shared across Homebridge UI admin users.","settings.terminal.warning":"Hide Terminal Termination Warning","settings.terminal.warning_help":"When enabled, the warning dialog will not be shown before terminating non-persistent terminal sessions.","settings.title_startup_options":"Mo\u017Enosti zagona","settings.unpair_bridge.load_error":"Paired bridges could not be loaded.","settings.warning_pwa":"This setting cannot be changed when accessing the UI from a PWA, please use a regular browser.","settings.warning_webroot":"Homebridge does not have write access to the served <code>index.html</code> file. To set up a webroot, please fix this issue and restart the Homebridge service.","setup.button_get_started":"Get Started","setup.create_account":"Create Account","setup.intro":"If you are setting up for the first time, or if you just need to reset the password for your existing Homebridge setup, then choose <strong>Get Started</strong>.","setup.welcome_to_homebridge":"Welcome to Homebridge",setup_wizard_complete:"Restore Complete!",setup_wizard_complete_title:"Congratulations!",setup_wizard_completed:"The setup procedure is complete and you are now ready to start using Homebridge.",setup_wizard_create_info:"Once Homebridge is set up, you can set up 2FA on your account, or disable the need for authentication altogether.",setup_wizard_page_title:"Setup Homebridge",setup_wizard_restore:"Restore From Backup",setup_wizard_restoring:"Restoring Backup...",setup_wizard_starting:"Starting Homebridge...","status.code_scan":"Skenirajte za dodajanje v HomeKit","status.cpu.load":"Nalo\u017Ei","status.cpu.temp":"Temp","status.cpu.title_cpu":"CPU","status.credits.plugins_thanks":"Homebridge plugins are created by awesome developers in the Homebridge community.","status.credits.supporters":"Supporters","status.credits.title":"Credits","status.credits.translations":"Translations","status.credits.translations_thanks":"Homebridge UI translations are provided by the community, with special thanks to:","status.homebridge.checking":"Preverjanje posodobitev \u2026","status.homebridge.up_to_date":"Posodobljeno","status.memory.label_available":"Na voljo","status.memory.label_total":"Skupaj","status.memory.title_memory":"Spomin","status.network.received_per_second":"Received","status.network.sent_per_second":"Sent","status.network.title_network":"Network Activity","status.readiness.node_no":"Your version of Node.js is not compatible with {{ app }}.","status.readiness.node_yes":"Your version of Node.js is compatible with {{ app }}.","status.readiness.title":"{{ app }} Readiness","status.services.label_not_enabled":"Not Enabled","status.services.label_not_running":"Ne deluje","status.services.label_running":"Proces deluje","status.services.updates":"Update Information","status.uptime.title_uptime":"\u010Cas delovanja","status.widget.accessories.choose_accessories":"Na zavihku Pripomo\u010Dki izberite Pripomo\u010Dki za prikaz v tem pripomo\u010Dku.","status.widget.account_1":"The widget layout is shared among all Homebridge UI users.","status.widget.account_2":"Admin users can modify the layout, while non-admin users cannot make changes.","status.widget.add.label_pairing_code":"Koda seznanitve","status.widget.add.matter_pairing_code":"Matter Pairing Code","status.widget.bridge.restart_error":"Failed to restart child bridge.","status.widget.clock":"Ura","status.widget.clock_dateformat":"Format datuma","status.widget.clock_timeformat":"Format \u010Dasa","status.widget.expand_docker":"Expand Docker Container Information","status.widget.font_size":"Velikost pisave","status.widget.font_weight":"Te\u017Ea pisave","status.widget.hide_node_info":"Hide Node.js Updates","status.widget.hide_npm":"Show npm Version","status.widget.hide_on_mobile":"Skrij v kompaktnem pogledu (mobilni zasloni)","status.widget.homebridge_logs":"Dnevnik Homebridge-a","status.widget.info":"Sistemske informacije","status.widget.info.arch":"Arch.","status.widget.info.config_path":"Konfiguriraj pot","status.widget.info.docker":"Docker","status.widget.info.docker_update_message":"Updating the Docker container requires manually pulling the latest image and restarting the container. Homebridge does not perform this automatically. Refer to your Docker image's documentation for update instructions.","status.widget.info.docker_update_title":"Docker Container Update","status.widget.info.hostname":"Ime gostitelja","status.widget.info.ipv4":"IPv4","status.widget.info.ipv6":"IPv6","status.widget.info.no":"No","status.widget.info.node_major":"Node.js Major Versions","status.widget.info.node_next_no":"Your current architecture ({{ architecture }}) is 32-bit, which is not supported. You will need to migrate to a 64-bit system. Please use Node.js v22 instead, which we will be supporting until April 2027.","status.widget.info.node_next_yes":"Your current architecture ({{ architecture }}) supports Node.js v24, so you can upgrade when you are ready.","status.widget.info.node_unsupp":"Unsupported","status.widget.info.node_unsupp_message":"You are running a version of Node.js that is not officially supported by Homebridge. You should consider changing to a supported version.","status.widget.info.node_update_message":"Homebridge requires Node.js installed on your system to run. From time to time, you will need to update the Node.js runtime to enable support for new features. Homebridge (and verified plugins) support all current Active and Maintenance LTS releases of Node.js.","status.widget.info.node_update_message_2":"For Docker/Synology users, the Node.js version is managed by the Docker image or Synology package. You can hide Node.js update information using the widget settings.","status.widget.info.nodejs_path":"Node.js Path","status.widget.info.os":"OS","status.widget.info.plugin_path":"Pot vti\u010Dnika","status.widget.info.service_user":"Uporabnik","status.widget.info.storage_path":"Shranjevalna pot","status.widget.info.synology_package":"Synology Package","status.widget.info.timezone":"\u010Casovni pas","status.widget.info.yes":"Yes","status.widget.network.history_items":"History Items","status.widget.network.items":"items","status.widget.network.network_interface":"Network Interface","status.widget.network.none_selected":"Using Default","status.widget.network.refresh_interval":"Refresh Interval","status.widget.network.seconds":"seconds","status.widget.qr_paired":"Seznanjen","status.widget.qr_unpaired":"Ne seznanjen","status.widget.show_hide":"Show/Hide Widgets","status.widget.title_manage_widget":"Upravljanje pripomo\u010Dka","status.widget.update_node_no":"{{ pluginName }} is not compatible with Node {{ nodeVersion }}.","status.widget.update_node_unknown":"The developer of {{ pluginName }} has not specified the Node version compatibility.","status.widget.update_node_yes":"{{ pluginName }} is compatible with Node {{ nodeVersion }}.","status.widget.uptime.label_process":"Proces","status.widget.uptime.label_server":"Stre\u017Enik","status.widget.weather.label_config_required_help":"V nastavitvah pripomo\u010Dka izberite svoje mesto.","status.widget.weather.label_search_for_your_city":"Poi\u0161\u010Dite svoje mesto:","status.widget.weather.title_weather":"Vreme","support.dev.api":"Homebridge API","support.dev.api_hap":"HAP-NodeJS API","support.dev.api_hap_sub":"HAP-NodeJS is an implementation of the HomeKit Accessory Server as specified in the HomeKit Accessory Protocol (HAP), which is defined by Apple as part of the HomeKit Framework.","support.dev.api_sub":"Homebridge is a lightweight Node.js server you can run on your home network to emulate the HomeKit Accessory Protocol (HAP).","support.dev.item_swagger":"Swagger Docs","support.dev.item_swagger_sub":"The Homebridge REST API allows you to interact with your Homebridge server using HTTP requests.","support.dev.template":"Plugin Template Repo","support.dev.template_sub":"A template Homebridge plugin that can be used as a base to help you get started developing your own plugin.","support.dev.title":"Developers","support.dev.verified":"Verified By Homebridge","support.dev.verified_sub":"The Verified By Homebridge program allows plugin developers to get their plugins reviewed and endorsed by the Homebridge project team.","support.links.discord":"Discord Server","support.links.discord_sub":"Join the Homebridge Discord chat server to chat with other users and developers.","support.links.documentation":"Documentation","support.links.documentation_sub":"The Homebridge documentation provides a wealth of information on how to get started with Homebridge and common issue resolutions.","support.links.issue":"Report An Issue","support.links.issue_sub":"If you are experiencing an issue with Homebridge, please open a new issue on GitHub. This should not be used for issues with specific plugins.","support.links.reddit":"Reddit Community","support.links.reddit_sub":"The Homebridge subreddit is a great place to share your Homebridge setup and ask for help.","support.links.title":"Useful Links","support.title":"Support","toast.no_auth":"Only administrators may access the requested page.","toast.title_error":"Napaka","toast.title_success":"Uspeh","toast.title_warning":"Opozorilo","users.button_add_user":"Dodaj uporabnika","users.label_admin_user":"Uporabnik Administratorja?","users.label_confirm_password":"potrdi geslo","users.label_full_name":"Polno ime","users.label_new_password":"novo geslo","users.label_password":"Geslo","users.label_username":"Uporabni\u0161ko ime","users.setup_2fa":"Nastavitev 2FA","users.setup_2fa_activate_error":"An error occurred activating 2FA","users.setup_2fa_cannot_setup_2fa":"2FA ni mogo\u010De nastaviti","users.setup_2fa_disable":"Onemogo\u010Di 2FA","users.setup_2fa_disable_current_password":"Vnesite trenutno geslo, da onemogo\u010Dite dvofaktorsko preverjanje pristnosti:","users.setup_2fa_disable_success":"Dvofaktorska overitev je onemogo\u010Dena.","users.setup_2fa_enable":"Omogo\u010Di 2FA","users.setup_2fa_enable_error":"An error occurred setting up 2FA","users.setup_2fa_enabled_success":"Omogo\u010Deno je dvofaktorsko preverjanje pristnosti.","users.setup_2fa_enter_code":"Vnesite kodo iz aplikacije za preverjanje pristnosti:","users.setup_2fa_scan_qr_code":"Spodnjo kodo QR opti\u010Dno preberite z aplikacijo za preverjanje pristnosti:","users.setup_2fa_scan_qr_manual":"If you cannot scan the QR code, you can enter the following secret key manually:","users.setup_2fa_server_time_out":"Ura va\u0161ega stre\u017Enika je napa\u010Dna za {{ timeDiffError }} ms. Najve\u010Dja dovoljena vrednost je +/-5000 ms.","users.setup_2fa_warning":"Dvofaktorska overitev zahteva, da ima stre\u017Enik Homebridge zelo natan\u010Den datum in uro za prijavo. \u010Ce va\u0161 stre\u017Enik ne more natan\u010Dno meriti \u010Dasa, ne smete omogo\u010Diti 2FA ali tvegati, da boste zaklenjeni iz uporabni\u0161kega vmesnika Homebridge.","users.support.acc_1":"There are two types of users that can access the Homebridge UI: admin and non-admin users. Admins can access and control everything available in the UI. Non-admin users have a read-only view of the following pages:","users.support.acc_2":"2FA can only be set up on admin accounts, and must do this via the users page logged in as themselves.","users.support.control":"can be controlled","users.title_add_user":"Dodaj uporabnika","users.title_edit_user":"Urejanje uporabnika","users.title_users":"Uporabniki","users.toast_added_new_user":"Dodan nov uporabnik","users.toast_failed_to_add_user":"Uporabnika ni bilo mogo\u010De dodati","users.toast_failed_to_delete_user":"Ni bil omogo\u010De izbrisati uporabnika","users.toast_updated_user":"Posodobljeni uporabnik","users.toast_user_deleted":"Uporabnik je izbrisan"}});export{s as a};
|