diff --git a/ui-ngx/src/app/core/http/device-profile.service.ts b/ui-ngx/src/app/core/http/device-profile.service.ts index 26e68a2e88..1514b262aa 100644 --- a/ui-ngx/src/app/core/http/device-profile.service.ts +++ b/ui-ngx/src/app/core/http/device-profile.service.ts @@ -24,13 +24,13 @@ import { DeviceProfile, DeviceProfileInfo, DeviceTransportType } from '@shared/m import { deepClone, isDefinedAndNotNull, isEmptyStr } from '@core/utils'; import { ObjectLwM2M, - securityConfigMode, ServerSecurityConfig, ServerSecurityConfigInfo } from '@home/components/profile/device/lwm2m/lwm2m-profile-config.models'; import { SortOrder } from '@shared/models/page/sort-order'; import { OtaPackageService } from '@core/http/ota-package.service'; import { map, mergeMap, tap } from 'rxjs/operators'; +import { Lwm2mSecurityType } from '@shared/models/lwm2m-security-config.models'; @Injectable({ providedIn: 'root' @@ -79,23 +79,23 @@ export class DeviceProfileService { } } - public getLwm2mBootstrapSecurityInfoBySecurityType(isBootstrapServer: boolean, securityMode = securityConfigMode.NO_SEC, + public getLwm2mBootstrapSecurityInfoBySecurityType(isBootstrapServer: boolean, securityMode = Lwm2mSecurityType.NO_SEC, config?: RequestConfig): Observable { return this.getLwm2mBootstrapSecurityInfo(isBootstrapServer, config).pipe( map(securityConfig => { const serverSecurityConfigInfo = deepClone(securityConfig); switch (securityMode) { - case securityConfigMode.PSK: + case Lwm2mSecurityType.PSK: serverSecurityConfigInfo.port = serverSecurityConfigInfo.securityPort; serverSecurityConfigInfo.host = serverSecurityConfigInfo.securityHost; serverSecurityConfigInfo.serverPublicKey = ''; break; - case securityConfigMode.RPK: - case securityConfigMode.X509: + case Lwm2mSecurityType.RPK: + case Lwm2mSecurityType.X509: serverSecurityConfigInfo.port = serverSecurityConfigInfo.securityPort; serverSecurityConfigInfo.host = serverSecurityConfigInfo.securityHost; break; - case securityConfigMode.NO_SEC: + case Lwm2mSecurityType.NO_SEC: serverSecurityConfigInfo.serverPublicKey = ''; break; } diff --git a/ui-ngx/src/app/modules/home/components/device/device-credentials-lwm2m-server.component.html b/ui-ngx/src/app/modules/home/components/device/device-credentials-lwm2m-server.component.html index 3c3806882f..9694faa9ca 100644 --- a/ui-ngx/src/app/modules/home/components/device/device-credentials-lwm2m-server.component.html +++ b/ui-ngx/src/app/modules/home/components/device/device-credentials-lwm2m-server.component.html @@ -27,6 +27,8 @@
{{ 'device.lwm2m-security-config.client-publicKey-or-id' | translate }} + help + required> + {{ 'device-profile.lwm2m.server-public-key-required' | translate }} diff --git a/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-device-config-server.component.ts b/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-device-config-server.component.ts index 93c22d44b1..9492b18114 100644 --- a/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-device-config-server.component.ts +++ b/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-device-config-server.component.ts @@ -28,14 +28,17 @@ import { import { DEFAULT_PORT_BOOTSTRAP_NO_SEC, DEFAULT_PORT_SERVER_NO_SEC, - securityConfigMode, - securityConfigModeNames, ServerSecurityConfig } from './lwm2m-profile-config.models'; import { DeviceProfileService } from '@core/http/device-profile.service'; import { Subject } from 'rxjs'; import { mergeMap, takeUntil, tap } from 'rxjs/operators'; import { Observable } from 'rxjs/internal/Observable'; +import { + Lwm2mPublicKeyOrIdTooltipTranslationsMap, + Lwm2mSecurityType, + Lwm2mSecurityTypeTranslationMap +} from '@shared/models/lwm2m-security-config.models'; @Component({ selector: 'tb-profile-lwm2m-device-config-server', @@ -56,15 +59,16 @@ import { Observable } from 'rxjs/internal/Observable'; export class Lwm2mDeviceConfigServerComponent implements OnInit, ControlValueAccessor, Validator, OnDestroy { - private disabled = false; + public disabled = false; private destroy$ = new Subject(); private isDataLoadedIntoCache = false; serverFormGroup: FormGroup; - securityConfigLwM2MType = securityConfigMode; - securityConfigLwM2MTypes = Object.keys(securityConfigMode); - credentialTypeLwM2MNamesMap = securityConfigModeNames; + securityConfigLwM2MType = Lwm2mSecurityType; + securityConfigLwM2MTypes = Object.keys(Lwm2mSecurityType); + credentialTypeLwM2MNamesMap = Lwm2mSecurityTypeTranslationMap; + publicKeyOrIdTooltipNamesMap = Lwm2mPublicKeyOrIdTooltipTranslationsMap; currentSecurityMode = null; @Input() @@ -81,7 +85,7 @@ export class Lwm2mDeviceConfigServerComponent implements OnInit, ControlValueAcc host: ['', Validators.required], port: [this.isBootstrapServer ? DEFAULT_PORT_BOOTSTRAP_NO_SEC : DEFAULT_PORT_SERVER_NO_SEC, [Validators.required, Validators.min(1), Validators.max(65535), Validators.pattern('[0-9]*')]], - securityMode: [securityConfigMode.NO_SEC], + securityMode: [Lwm2mSecurityType.NO_SEC], serverPublicKey: [''], clientHoldOffTime: ['', [Validators.required, Validators.min(0), Validators.pattern('[0-9]*')]], serverId: ['', [Validators.required, Validators.min(1), Validators.max(65534), Validators.pattern('[0-9]*')]], @@ -136,16 +140,16 @@ export class Lwm2mDeviceConfigServerComponent implements OnInit, ControlValueAcc registerOnTouched(fn: any): void { } - private updateValidate(securityMode: securityConfigMode): void { + private updateValidate(securityMode: Lwm2mSecurityType): void { switch (securityMode) { - case securityConfigMode.NO_SEC: - case securityConfigMode.PSK: + case Lwm2mSecurityType.NO_SEC: + case Lwm2mSecurityType.PSK: this.clearValidators(); break; - case securityConfigMode.RPK: + case Lwm2mSecurityType.RPK: this.setValidators(); break; - case securityConfigMode.X509: + case Lwm2mSecurityType.X509: this.setValidators(); break; } @@ -166,7 +170,7 @@ export class Lwm2mDeviceConfigServerComponent implements OnInit, ControlValueAcc } } - private getLwm2mBootstrapSecurityInfo(securityMode = securityConfigMode.NO_SEC): Observable { + private getLwm2mBootstrapSecurityInfo(securityMode = Lwm2mSecurityType.NO_SEC): Observable { return this.deviceProfileService.getLwm2mBootstrapSecurityInfoBySecurityType(this.isBootstrapServer, securityMode).pipe( tap(() => this.isDataLoadedIntoCache = true) ); diff --git a/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-device-profile-transport-configuration.component.html b/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-device-profile-transport-configuration.component.html index 5e444f8ee2..a042ba5ea3 100644 --- a/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-device-profile-transport-configuration.component.html +++ b/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-device-profile-transport-configuration.component.html @@ -31,24 +31,26 @@ - +
-
+
- {{ 'device-profile.lwm2m.servers' | translate }} + {{ 'device-profile.lwm2m.server' | translate }}
{{ 'device-profile.lwm2m.short-id' | translate }} + help {{ 'device-profile.lwm2m.short-id-required' | translate }} + lwm2mDeviceProfileFormGroup.get('bootstrap.servers.shortId').hasError('max')"> {{ 'device-profile.lwm2m.short-id-range' | translate }} @@ -62,24 +64,28 @@ {{ 'device-profile.lwm2m.lifetime-required' | translate }} + lwm2mDeviceProfileFormGroup.get('bootstrap.servers.lifetime').hasError('min')"> {{ 'device-profile.lwm2m.lifetime-pattern' | translate }} {{ 'device-profile.lwm2m.default-min-period' | translate }} + help {{ 'device-profile.lwm2m.default-min-period-required' | translate }} + lwm2mDeviceProfileFormGroup.get('bootstrap.servers.defaultMinPeriod').hasError('min')"> {{ 'device-profile.lwm2m.default-min-period-pattern' | translate }}
{{ 'device-profile.lwm2m.binding' | translate }} + help {{ bindingModeTypeNamesMap.get(bindingMode) | translate }} diff --git a/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-device-profile-transport-configuration.component.ts b/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-device-profile-transport-configuration.component.ts index 2495a16eff..792aa3c315 100644 --- a/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-device-profile-transport-configuration.component.ts +++ b/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-device-profile-transport-configuration.component.ts @@ -79,8 +79,8 @@ import { takeUntil } from 'rxjs/operators'; }) export class Lwm2mDeviceProfileTransportConfigurationComponent implements ControlValueAccessor, Validator, OnDestroy { + public disabled = false; private requiredValue: boolean; - private disabled = false; private destroy$ = new Subject(); bindingModeTypes = Object.values(BingingMode); diff --git a/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-profile-config.models.ts b/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-profile-config.models.ts index 2845ad75b3..e95d1d22d2 100644 --- a/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-profile-config.models.ts +++ b/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-profile-config.models.ts @@ -15,6 +15,7 @@ /// import { ValidatorFn, Validators } from '@angular/forms'; +import { Lwm2mSecurityType } from '@shared/models/lwm2m-security-config.models'; export const PAGE_SIZE_LIMIT = 50; export const INSTANCES = 'instances'; @@ -32,7 +33,7 @@ export const DEFAULT_CLIENT_HOLD_OFF_TIME = 1; export const DEFAULT_LIFE_TIME = 300; export const DEFAULT_MIN_PERIOD = 1; export const DEFAULT_NOTIF_IF_DESIBLED = true; -export const DEFAULT_BINDING = 'UQ'; +export const DEFAULT_BINDING = 'U'; export const DEFAULT_BOOTSTRAP_SERVER_ACCOUNT_TIME_OUT = 0; export const INSTANCES_ID_VALUE_MIN = 0; export const INSTANCES_ID_VALUE_MAX = 65535; @@ -45,28 +46,30 @@ export const DEFAULT_PAGING_TRANSMISSION_WINDOW = 10000; export enum BingingMode { U = 'U', - UQ = 'UQ', + M = 'M', + H = 'H', T = 'T', - TQ = 'TQ', S = 'S', - SQ = 'SQ', - US = 'US', - TS = 'TS', + N = 'N', + UQ = 'UQ', UQS = 'UQS', - TQS = 'TQS' + TQ = 'TQ', + TQS = 'TQS', + SQ = 'SQ' } export const BingingModeTranslationsMap = new Map( [ [BingingMode.U, 'device-profile.lwm2m.binding-type.u'], - [BingingMode.UQ, 'device-profile.lwm2m.binding-type.uq'], - [BingingMode.US, 'device-profile.lwm2m.binding-type.us'], - [BingingMode.UQS, 'device-profile.lwm2m.binding-type.uqs'], + [BingingMode.M, 'device-profile.lwm2m.binding-type.m'], + [BingingMode.H, 'device-profile.lwm2m.binding-type.h'], [BingingMode.T, 'device-profile.lwm2m.binding-type.t'], - [BingingMode.TQ, 'device-profile.lwm2m.binding-type.tq'], - [BingingMode.TS, 'device-profile.lwm2m.binding-type.ts'], - [BingingMode.TQS, 'device-profile.lwm2m.binding-type.tqs'], [BingingMode.S, 'device-profile.lwm2m.binding-type.s'], + [BingingMode.N, 'device-profile.lwm2m.binding-type.n'], + [BingingMode.UQ, 'device-profile.lwm2m.binding-type.uq'], + [BingingMode.UQS, 'device-profile.lwm2m.binding-type.uqs'], + [BingingMode.TQ, 'device-profile.lwm2m.binding-type.tq'], + [BingingMode.TQS, 'device-profile.lwm2m.binding-type.tqs'], [BingingMode.SQ, 'device-profile.lwm2m.binding-type.sq'] ] ); @@ -93,22 +96,6 @@ export const AttributeNameTranslationMap = new Map( ] ); -export enum securityConfigMode { - PSK = 'PSK', - RPK = 'RPK', - X509 = 'X509', - NO_SEC = 'NO_SEC' -} - -export const securityConfigModeNames = new Map( - [ - [securityConfigMode.PSK, 'Pre-Shared Key'], - [securityConfigMode.RPK, 'Raw Public Key'], - [securityConfigMode.X509, 'X.509 Certificate'], - [securityConfigMode.NO_SEC, 'No Security'] - ] -); - export enum PowerMode { PSM = 'PSM', DRX = 'DRX', @@ -134,7 +121,7 @@ export interface BootstrapServersSecurityConfig { export interface ServerSecurityConfig { host?: string; port?: number; - securityMode: securityConfigMode; + securityMode: Lwm2mSecurityType; serverPublicKey?: string; clientHoldOffTime?: number; serverId?: number; @@ -196,7 +183,7 @@ export function getDefaultBootstrapServerSecurityConfig(): ServerSecurityConfig clientHoldOffTime: DEFAULT_CLIENT_HOLD_OFF_TIME, host: DEFAULT_LOCAL_HOST_NAME, port: DEFAULT_PORT_BOOTSTRAP_NO_SEC, - securityMode: securityConfigMode.NO_SEC, + securityMode: Lwm2mSecurityType.NO_SEC, serverId: DEFAULT_ID_BOOTSTRAP, serverPublicKey: '' }; diff --git a/ui-ngx/src/app/shared/models/lwm2m-security-config.models.ts b/ui-ngx/src/app/shared/models/lwm2m-security-config.models.ts index d3b4171b80..024433b0c7 100644 --- a/ui-ngx/src/app/shared/models/lwm2m-security-config.models.ts +++ b/ui-ngx/src/app/shared/models/lwm2m-security-config.models.ts @@ -30,6 +30,29 @@ export const Lwm2mSecurityTypeTranslationMap = new Map( + [ + [Lwm2mSecurityType.PSK, 'device.lwm2m-security-config.client-publicKey-or-id-tooltip-psk'], + [Lwm2mSecurityType.RPK, 'device.lwm2m-security-config.client-publicKey-or-id-tooltip-rpk'], + [Lwm2mSecurityType.X509, 'device.lwm2m-security-config.client-publicKey-or-id-tooltip-x509'] + ] +); + +export const Lwm2mClientSecretKeyTooltipTranslationsMap = new Map( + [ + [Lwm2mSecurityType.PSK, 'device.lwm2m-security-config.client-secret-key-tooltip-psk'], + [Lwm2mSecurityType.RPK, 'device.lwm2m-security-config.client-secret-key-tooltip-prk'], + [Lwm2mSecurityType.X509, 'device.lwm2m-security-config.client-secret-key-tooltip-x509'] + ] +); + +export const Lwm2mClientKeyTooltipTranslationsMap = new Map( + [ + [Lwm2mSecurityType.PSK, 'device.lwm2m-security-config.client-secret-key-tooltip-psk'], + [Lwm2mSecurityType.RPK, 'device.lwm2m-security-config.client-secret-key-tooltip-prk'] + ] +); + export interface ClientSecurityConfig { securityConfigClientMode: Lwm2mSecurityType; endpoint: string; diff --git a/ui-ngx/src/assets/locale/locale.constant-cs_CZ.json b/ui-ngx/src/assets/locale/locale.constant-cs_CZ.json index 4e1ec64412..0d872dc003 100644 --- a/ui-ngx/src/assets/locale/locale.constant-cs_CZ.json +++ b/ui-ngx/src/assets/locale/locale.constant-cs_CZ.json @@ -1258,7 +1258,6 @@ "view-attribute": "Zobrazit atribut", "remove-attribute": "Odebrat atribut", "mode": "Režim konfigurace bezpečnosti", - "servers": "Servery", "short-id": "Krátké ID", "short-id-required": "Krátké ID je povinné.", "short-id-range": "Krátké ID by mělo být v rozsahu od 1 do 65534.", @@ -1271,21 +1270,7 @@ "default-min-period-pattern": "Minimální interval musí být kladné celé číslo.", "notification-storing": "Ukládání notifikací v případě nedostupnosti", "binding": "Binding", - "binding-type": { - "u": "U: UDP spojení ve standardním režimu", - "uq": "UQ: UDP spojení v queue režimu", - "us": "US: UDP i SMS spojení aktivní, obojí ve standardním režimu", - "uqs": "UQS: UDP i SMS spojení aktivní; UDP v queue režimu, SMS ve standardním režimu", - "t": "T: TCP spojení ve standardním režimu", - "tq": "TQ: TCP spojení v queue režimu", - "ts": "TS: TCP i SMS spojení aktivní, obojí ve standardním režimu", - "tqs": "TQS: TCP i SMS spojení aktivní; TCP v queue režimu, SMS ve standardním režimu", - "s": "S: SMS spojení ve standardním režimu", - "sq": "SQ: SMS spojení v queue režimu" - }, "bootstrap-tab": "Bootstrap", - "bootstrap-server": "Bootstrap server", - "lwm2m-server": "LwM2M server", "server-host": "Host", "server-host-required": "Host je povinný.", "server-port": "Port", diff --git a/ui-ngx/src/assets/locale/locale.constant-en_US.json b/ui-ngx/src/assets/locale/locale.constant-en_US.json index 37a8764808..dcc599bc41 100644 --- a/ui-ngx/src/assets/locale/locale.constant-en_US.json +++ b/ui-ngx/src/assets/locale/locale.constant-en_US.json @@ -985,10 +985,16 @@ "lwm2m-security-config": { "identity": "Client Identity", "identity-required": "Client Identity is required.", + "identity-tooltip": "The PSK identifier is an arbitrary PSK identifier up to 128 bytes, as described in the standard [RFC7925].\nThe PSK identifier MUST first be converted to a character string and then encoded into octets using UTF-8.", "client-key": "Client Key", "client-key-required": "Client Key is required.", + "client-key-tooltip-prk": "RPK public key or id must be in the standard [RFC7250] and encoded to Base64 format!", + "client-key-tooltip-psk": "PSK key must be in the standard [RFC4279] and HexDec format: 32, 64, 128 characters!", "endpoint": "Endpoint Client Name", "endpoint-required": "Endpoint Client Name is required.", + "client-public-key": "Client public key", + "client-public-key-hint": "If client public key is empty, the trusted certificate will be used", + "client-public-key-tooltip": "X509 public key must be in DER-encoded X509v3 format and support exclusively EC algorithm and then encoded to Base64 format!", "mode": "Security config mode", "client-tab": "Client Security Config", "client-certificate": "Client certificate", @@ -997,10 +1003,14 @@ "lwm2m-server": "LwM2M Server", "client-publicKey-or-id": "Client Public Key or Id", "client-publicKey-or-id-required": "Client Public Key or Id is required.", + "client-publicKey-or-id-tooltip-psk": "The PSK identifier is an arbitrary PSK identifier up to 128 bytes, as described in the standard [RFC7925].\nThe PSK identifier MUST first be converted to a character string and then encoded into octets using UTF-8.", + "client-publicKey-or-id-tooltip-rpk": "RPK public key or id must be in the standard [RFC7250] and encoded to Base64 format!", + "client-publicKey-or-id-tooltip-x509": "X509 public key must be in DER-encoded X509v3 format and support exclusively EC algorithm and then encoded to Base64 format", "client-secret-key": "Client Secret Key", "client-secret-key-required": "Client Secret Key is required.", - "client-public-key": "Client public key", - "client-public-key-hint": "If client public key is empty, the trusted certificate will be used" + "client-secret-key-tooltip-psk": "PSK key must be in the standard [RFC4279] and HexDec format: 32, 64, 128 characters!", + "client-secret-key-tooltip-prk": "RPK secret key must be in PKCS_8 format (DER encoding, standard [RFC5958]) and then encoded to Base64 format!", + "client-secret-key-tooltip-x509": "X509 secret key must be in PKCS_8 format (DER encoding, standard [RFC5958]) and then encoded to Base64 format!" }, "client-id": "Client ID", "client-id-pattern": "Contains invalid character.", @@ -1301,32 +1311,38 @@ "view-attribute": "View attribute", "remove-attribute": "Remove attribute", "mode": "Security config mode", - "servers": "Servers", + "bootstrap-tab": "Bootstrap", + "bootstrap-server-legend": "Bootstrap Server (ShortId...)", + "lwm2m-server-legend": "LwM2M Server (ShortId...)", + "server": "Server", "short-id": "Short ID", + "short-id-tooltip": "Server ShortID must be equal Security ShortID ", "short-id-required": "Short ID is required.", "short-id-range": "Short ID should be in a range from 1 to 65534.", "short-id-pattern": "Short ID must be a positive integer.", "lifetime": "Client registration lifetime", "lifetime-required": "Client registration lifetime is required.", "lifetime-pattern": "Client registration lifetime must be a positive integer.", - "default-min-period": "Minimum period between two notifications (s)", + "default-min-period": "Min period between two notifications (s)", + "default-min-period-tooltip": "The default value the LwM2M Client should use for the Minimum Period of an Observation in the absence of this parameter being included in an Observation.", "default-min-period-required": "Minimum period is required.", "default-min-period-pattern": "Minimum period must be a positive integer.", "notification-storing": "Notification storing when disabled or offline", "binding": "Binding", "binding-type": { - "u": "U: UDP connection in standard mode", - "uq": "UQ: UDP connection in queue mode", - "us": "US: both UDP and SMS connections active, both in standard mode", - "uqs": "UQS: both UDP and SMS connections active; UDP in queue mode, SMS in standard mode", - "t": "T: TCP connection in standard mode", - "tq": "TQ: TCP connection in queue mode", - "ts": "TS: both TCP and SMS connections active, both in standard mode", - "tqs": "TQS: both TCP and SMS connections active; TCP in queue mode, SMS in standard mode", - "s": "S: SMS connection in standard mode", - "sq": "SQ: SMS connection in queue mode" + "u": "U: Client is reachable via the UDP binding at any time.", + "m": "M: Client is reachable via the MQTT binding at any time.", + "h": "H: Client is reachable via the HTTP binding at any time.", + "t": "T: Client is reachable via the TCP binding at any time.", + "s": "S: Client is reachable via the SMS binding at any time.", + "n": "N: Client MUST send the response to such a request over the Non-IP binding (is supported since LWM2M 1.1).", + "uq": "UQ: UDP connection in queue mode (is not supported since LWM2M 1.1)", + "uqs": "UQS: both UDP and SMS connections active; UDP in queue mode, SMS in standard mode (is not supported since LWM2M 1.1)", + "tq": "TQ: TCP connection in queue mode (is not supported since LWM2M 1.1)", + "tqs": "TQS: both TCP and SMS connections active; TCP in queue mode, SMS in standard mode (is not supported since LWM2M 1.1)", + "sq": "SQ: SMS connection in queue mode (is not supported since LWM2M 1.1)" }, - "bootstrap-tab": "Bootstrap", + "binding-tooltip": "Tis is the list in the\"binding\" resource of the LwM2M server object - /1/x/7.\nIndicates the supported binding modes in the LwM2M Client.\nThis value SHOULD be the same as the value in the “Supported Binding and Modes” resource in the Device Object (/3/0/16).\nWhile multiple transports are supported, only one transport binding can be used during the entire Transport Session.\nAs an example, when UDP and SMS are both supported, the LwM2M Client and the LwM2M Server can choose to communicate either over UDP or SMS during the entire Transport Session.", "bootstrap-server": "Bootstrap Server", "lwm2m-server": "LwM2M Server", "server-host": "Host", diff --git a/ui-ngx/src/assets/locale/locale.constant-tr_TR.json b/ui-ngx/src/assets/locale/locale.constant-tr_TR.json index c600cb0c9a..432644ae56 100644 --- a/ui-ngx/src/assets/locale/locale.constant-tr_TR.json +++ b/ui-ngx/src/assets/locale/locale.constant-tr_TR.json @@ -1271,7 +1271,6 @@ "view-attribute": "Öznitelik görüntüle", "remove-attribute": "Öznitelik kaldır", "mode": "Güvenlik yapılandırma modu", - "servers": "Sunucular", "short-id": "Kısa ID", "short-id-required": "Kısa ID gerekli.", "short-id-range": "Kısa ID 1 ile 65534 aralığında olmalıdır.", @@ -1284,18 +1283,6 @@ "default-min-period-pattern": "Minimum süre pozitif bir tam sayı olmalıdır.", "notification-storing": "Devre dışı bırakıldığında veya çevrimdışı olduğunda bildirim depolama", "binding": "Bağlama", - "binding-type": { - "u": "U: UDP connection in standard mode", - "uq": "UQ: UDP connection in queue mode", - "us": "US: both UDP and SMS connections active, both in standard mode", - "uqs": "UQS: both UDP and SMS connections active; UDP in queue mode, SMS in standard mode", - "t": "T: TCP connection in standard mode", - "tq": "TQ: TCP connection in queue mode", - "ts": "TS: both TCP and SMS connections active, both in standard mode", - "tqs": "TQS: both TCP and SMS connections active; TCP in queue mode, SMS in standard mode", - "s": "S: SMS connection in standard mode", - "sq": "SQ: SMS connection in queue mode" - }, "bootstrap-tab": "Bootstrap", "bootstrap-server": "Bootstrap Sunucusu", "lwm2m-server": "LwM2M Sunucusu",