Browse Source

UI: Finish form, added responsive and locale translation

pull/5671/head
ArtemDzhereleiko 5 years ago
parent
commit
85be2745c9
  1. 206
      ui-ngx/src/app/modules/home/components/sms/smpp-sms-provider-configuration.component.html
  2. 96
      ui-ngx/src/app/modules/home/components/sms/smpp-sms-provider-configuration.component.ts
  3. 236
      ui-ngx/src/app/shared/models/settings.models.ts
  4. 58
      ui-ngx/src/assets/locale/locale.constant-en_US.json
  5. 29
      ui-ngx/src/assets/locale/locale.constant-ru_RU.json
  6. 27
      ui-ngx/src/assets/locale/locale.constant-uk_UA.json

206
ui-ngx/src/app/modules/home/components/sms/smpp-sms-provider-configuration.component.html

@ -1,101 +1,145 @@
<form [formGroup]="smppSmsProviderConfigurationFormGroup" style="padding-bottom: 16px;">
<mat-form-field class="mat-block">
<mat-label>SMPP version</mat-label>
<input required matInput formControlName="protocolVersion">
<mat-error *ngIf="smppSmsProviderConfigurationFormGroup.get('protocolVersion').hasError('required')">
SMPP version is required
</mat-error>
<div fxLayout="row wrap" fxLayoutGap="6px">
<mat-form-field fxFlex.lt-sm="100" fxFlex.gt-sm="15" class="mat-block">
<mat-label translate>admin.smpp-provider.smpp-version</mat-label>
<mat-select formControlName="protocolVersion">
<mat-option *ngFor="let smppVersion of smppVersions" [value]="smppVersion.value">
{{smppVersion.value}}
</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field fxFlex class="mat-block">
<mat-label>SMPP host</mat-label>
<mat-label translate>admin.smpp-provider.smpp-host</mat-label>
<input required matInput formControlName="host">
<mat-error *ngIf="smppSmsProviderConfigurationFormGroup.get('host').hasError('required')">
SMPP host is required
{{'admin.smpp-provider.smpp-host-required' | translate}}
</mat-error>
</mat-form-field>
<mat-form-field fxFlex class="mat-block" style="margin-right: 8px;">
<mat-label>SMPP port</mat-label>
<mat-form-field fxFlex.lt-sm="100" fxFlex.gt-sm="30" class="mat-block">
<mat-label translate>admin.smpp-provider.smpp-port</mat-label>
<input required matInput type="number" formControlName="port">
<mat-error *ngIf="smppSmsProviderConfigurationFormGroup.get('port').hasError('required')">
SMPP port is required
{{'admin.smpp-provider.smpp-port-required' | translate}}
</mat-error>
</mat-form-field>
</div>
<div fxLayout="row wrap" fxLayoutGap="6px">
<mat-form-field fxFlex class="mat-block">
<mat-label>System ID</mat-label>
<mat-label translate>admin.smpp-provider.system-id</mat-label>
<input required matInput formControlName="systemId">
<mat-error *ngIf="smppSmsProviderConfigurationFormGroup.get('systemId').hasError('required')">
System ID is required
{{'admin.smpp-provider.system-id-required' | translate}}
</mat-error>
</mat-form-field>
<mat-form-field class="mat-block">
<mat-label>Password</mat-label>
<input required matInput formControlName="password">
<mat-form-field fxFlex class="mat-block">
<mat-label translate>admin.smpp-provider.password</mat-label>
<input required matInput type="password" autocomplete="new-password" formControlName="password">
<tb-toggle-password matSuffix></tb-toggle-password>
<mat-error *ngIf="smppSmsProviderConfigurationFormGroup.get('password').hasError('required')">
Password is required
{{'admin.smpp-provider.password-required' | translate}}
</mat-error>
</mat-form-field>
<mat-form-field class="mat-block">
<mat-label>System type</mat-label>
<input matInput formControlName="systemType">
</mat-form-field>
<mat-form-field class="mat-block">
<mat-label>Bind type</mat-label>
<mat-select formControlName="bindType">
<mat-option *ngFor="let bindType of bindTypes" [value]="bindType.value">
{{bindType.name}}
</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field class="mat-block">
<mat-label>Service type</mat-label>
<input matInput formControlName="serviceType">
</mat-form-field>
<mat-form-field class="mat-block">
<mat-label>Source address</mat-label>
<input matInput formControlName="sourceAddress">
</mat-form-field>
<mat-form-field class="mat-block">
<mat-label>Source TON</mat-label>
<mat-select formControlName="sourceTon">
<mat-option *ngFor="let sourceTon of sourcesTon" [value]="sourceTon.value">
{{sourceTon.name}}
</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field class="mat-block">
<mat-label>Source NPI</mat-label>
<mat-select formControlName="sourceNpi">
<mat-option *ngFor="let sourceNpi of sourcesNpi" [value]="sourceNpi.value">
{{sourceNpi.name}}
</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field class="mat-block">
<mat-label translate>Destination TON (Type of Number)</mat-label>
<mat-select formControlName="destinationTon">
<mat-option *ngFor="let destinationTon of destinationsTon" [value]="destinationTon.value">
{{destinationTon.name}}
</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field class="mat-block">
<mat-label>Destination NPI (Numbering Plan Identification)</mat-label>
<mat-select formControlName="destinationNpi">
<mat-option *ngFor="let destinationNpi of destinationsNpi" [value]="destinationNpi.value">
{{destinationNpi.name}}
</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field class="mat-block">
<mat-label>Address range</mat-label>
<input matInput formControlName="addressRange">
</mat-form-field>
<mat-form-field class="mat-block">
<mat-label>Coding Scheme</mat-label>
<mat-select formControlName="codingScheme">
<mat-option *ngFor="let codingScheme of codingSchemes" [value]="codingScheme.value">
{{codingScheme.name}}
</mat-option>
</mat-select>
</mat-form-field>
</div>
<mat-accordion multi>
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-panel-title translate>
admin.smpp-provider.type-settings
</mat-panel-title>
</mat-expansion-panel-header>
<ng-template matExpansionPanelContent>
<mat-form-field class="mat-block">
<mat-label translate>admin.smpp-provider.system-type</mat-label>
<input matInput formControlName="systemType">
</mat-form-field>
<mat-form-field class="mat-block">
<mat-label translate>admin.smpp-provider.bind-type</mat-label>
<mat-select formControlName="bindType">
<mat-option *ngFor="let bindType of bindTypes" [value]="bindType">
{{bindTypesTranslation.get(bindType) | translate}}
</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field class="mat-block">
<mat-label translate>admin.smpp-provider.service-type</mat-label>
<input matInput formControlName="serviceType">
</mat-form-field>
</ng-template>
</mat-expansion-panel>
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-panel-title translate>
admin.smpp-provider.source-settings
</mat-panel-title>
</mat-expansion-panel-header>
<ng-template matExpansionPanelContent>
<mat-form-field class="mat-block">
<mat-label translate>admin.smpp-provider.source-address</mat-label>
<input matInput formControlName="sourceAddress">
</mat-form-field>
<mat-form-field class="mat-block">
<mat-label translate>admin.smpp-provider.source-ton</mat-label>
<mat-select formControlName="sourceTon">
<mat-option *ngFor="let sourceTon of typeOfNumber" [value]="typeOfNumberMap.get(sourceTon).value">
{{typeOfNumberMap.get(sourceTon).name | translate}}
</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field class="mat-block">
<mat-label translate>admin.smpp-provider.source-npi</mat-label>
<mat-select formControlName="sourceNpi">
<mat-option *ngFor="let sourceNpi of numberingPlanIdentification" [value]="numberingPlanIdentificationMap.get(sourceNpi).value">
{{numberingPlanIdentificationMap.get(sourceNpi).name | translate}}
</mat-option>
</mat-select>
</mat-form-field>
</ng-template>
</mat-expansion-panel>
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-panel-title translate>
admin.smpp-provider.destination-settings
</mat-panel-title>
</mat-expansion-panel-header>
<ng-template matExpansionPanelContent>
<mat-form-field class="mat-block">
<mat-label translate>admin.smpp-provider.destination-ton</mat-label>
<mat-select formControlName="destinationTon">
<mat-option *ngFor="let destinationTon of typeOfNumber" [value]="typeOfNumberMap.get(destinationTon).value">
{{typeOfNumberMap.get(destinationTon).name | translate}}
</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field class="mat-block">
<mat-label translate>admin.smpp-provider.destination-npi</mat-label>
<mat-select formControlName="destinationNpi">
<mat-option *ngFor="let destinationNpi of numberingPlanIdentification" [value]="numberingPlanIdentificationMap.get(destinationNpi).value">
{{numberingPlanIdentificationMap.get(destinationNpi).name | translate}}
</mat-option>
</mat-select>
</mat-form-field>
</ng-template>
</mat-expansion-panel>
<mat-expansion-panel>
<mat-expansion-panel-header>
<mat-panel-title translate>
admin.smpp-provider.additional-settings
</mat-panel-title>
</mat-expansion-panel-header>
<ng-template matExpansionPanelContent>
<mat-form-field class="mat-block">
<mat-label translate>admin.smpp-provider.address-range</mat-label>
<input matInput formControlName="addressRange">
</mat-form-field>
<mat-form-field class="mat-block">
<mat-label translate>admin.smpp-provider.coding-scheme</mat-label>
<mat-select formControlName="codingScheme">
<mat-option *ngFor="let codingScheme of codingSchemes" [value]="codingSchemesMap.get(codingScheme).value">
{{codingSchemesMap.get(codingScheme).name | translate}}
</mat-option>
</mat-select>
</mat-form-field>
</ng-template>
</mat-expansion-panel>
</mat-accordion>
</form>

96
ui-ngx/src/app/modules/home/components/sms/smpp-sms-provider-configuration.component.ts

@ -1,9 +1,19 @@
import { Component, forwardRef, Input, OnInit } from '@angular/core';
import { ControlValueAccessor, FormBuilder, FormGroup, NG_VALUE_ACCESSOR, Validators } from '@angular/forms';
import {
AwsSnsSmsProviderConfiguration, SmppSmsProviderConfiguration,
AwsSnsSmsProviderConfiguration,
BindTypes,
bindTypesTranslationMap,
CodingSchemes,
codingSchemesMap,
NumberingPlanIdentification,
numberingPlanIdentificationMap,
SmppSmsProviderConfiguration,
smppVersions,
SmsProviderConfiguration,
SmsProviderType
SmsProviderType,
TypeOfNumber,
typeOfNumberMap
} from '@shared/models/settings.models';
import { isDefinedAndNotNull } from '@core/utils';
import { coerceBooleanProperty } from '@angular/cdk/coercion';
@ -18,6 +28,7 @@ import { coerceBooleanProperty } from '@angular/cdk/coercion';
multi: true
}]
})
export class SmppSmsProviderConfigurationComponent implements ControlValueAccessor, OnInit{
constructor(private fb: FormBuilder) {
}
@ -35,73 +46,20 @@ export class SmppSmsProviderConfigurationComponent implements ControlValueAcces
disabled: boolean;
smppSmsProviderConfigurationFormGroup: FormGroup;
bindTypes = [
{value: 'TX', name: 'Transmitter'},
{value: 'RX', name: 'Receiver'},
{value: 'TRX', name: 'Transciever'},
]
sourcesTon = [
{value: 0, name: 'Unknown'},
{value: 1, name: 'International'},
{value: 2, name: 'National'},
{value: 3, name: 'Network Specific'},
{value: 4, name: 'Subscriber Number'},
{value: 5, name: 'Alphanumeric'},
{value: 6, name: 'Abbreviated'}
]
sourcesNpi = [
{value: 0, name: 'Unknown'},
{value: 1, name: 'ISDN/telephone numbering plan (E163/E164)'},
{value: 3, name: 'Data numbering plan (X.121)'},
{value: 4, name: 'Telex numbering plan (F.69)'},
{value: 5, name: 'Land Mobile (E.212)'},
{value: 8, name: 'National numbering plan'},
{value: 9, name: 'Private numbering plan'},
{value: 10, name: 'ERMES numbering plan (ETSI DE/PS 3 01-3)'},
{value: 13, name: 'Internet (IP)'},
{value: 18, name: 'WAP Client Id (to be defined by WAP Forum)'},
]
destinationsTon = [
{value: 0, name: 'Unknown'},
{value: 1, name: 'International'},
{value: 2, name: 'National'},
{value: 3, name: 'Network Specific'},
{value: 4, name: 'Subscriber Number'},
{value: 5, name: 'Alphanumeric'},
{value: 6, name: 'Abbreviated'},
]
destinationsNpi = [
{value: 0, name: 'Unknown'},
{value: 1, name: 'ISDN/telephone numbering plan (E163/E164)'},
{value: 3, name: 'Data numbering plan (X.121)'},
{value: 4, name: 'Telex numbering plan (F.69)'},
{value: 6, name: 'Land Mobile (E.212)'},
{value: 8, name: 'National numbering plan'},
{value: 9, name: 'Private numbering plan'},
{value: 10, name: 'ERMES numbering plan (ETSI DE/PS 3 01-3)'},
{value: 13, name: 'Internet (IP)'},
{value: 18, name: 'WAP Client Id (to be defined by WAP Forum)'},
]
codingSchemes = [
{value: 0, name: 'SMSC Default Alphabet (ASCII for short and long code and to GSM for toll-free)'},
{value: 1, name: 'IA5 (ASCII for short and long code, Latin 9 for toll-free (ISO-8859-9))'},
{value: 2, name: 'Octet Unspecified (8-bit binary)'},
{value: 3, name: 'Latin 1 (ISO-8859-1)'},
{value: 4, name: 'Octet Unspecified (8-bit binary)'},
{value: 5, name: 'JIS (X 0208-1990)'},
{value: 6, name: 'Cyrillic (ISO-8859-5)'},
{value: 7, name: 'Latin/Hebrew (ISO-8859-8)'},
{value: 8, name: 'UCS2/UTF-16 (ISO/IEC-10646)'},
{value: 9, name: 'Pictogram Encoding'},
{value: 10, name: 'Music Codes (ISO-2022-JP)'},
{value: 13, name: 'Extended Kanji JIS (X 0212-1990)'},
{value: 14, name: 'Korean Graphic Character Set (KS C 5601/KS X 1001)'},
]
smppVersions = smppVersions;
bindTypes = Object.keys(BindTypes);
bindTypesTranslation = bindTypesTranslationMap;
typeOfNumber = Object.keys(TypeOfNumber);
typeOfNumberMap = typeOfNumberMap;
numberingPlanIdentification = Object.keys(NumberingPlanIdentification);
numberingPlanIdentificationMap = numberingPlanIdentificationMap;
codingSchemes = Object.keys(CodingSchemes);
codingSchemesMap = codingSchemesMap;
private propagateChange = (v: any) => { };

236
ui-ngx/src/app/shared/models/settings.models.ts

@ -97,25 +97,215 @@ export interface TwilioSmsProviderConfiguration {
}
export interface SmppSmsProviderConfiguration {
protocolVersion?: string,
host?: string,
port?: number,
systemId?: string,
password?: string,
systemType?: string,
bindType?: string,
serviceType?: string,
sourceAddress?: string,
sourceTon?: number,
sourceNpi?: number,
destinationTon?: number,
destinationNpi?: number,
addressRange?: string,
codingScheme?: number
}
export type SmsProviderConfigurations = SmppSmsProviderConfiguration & AwsSnsSmsProviderConfiguration & TwilioSmsProviderConfiguration;
protocolVersion: number;
host: string;
port: number;
systemId: string;
password: string;
systemType?: string;
bindType?: string;
serviceType?: string;
sourceAddress?: string;
sourceTon?: number;
sourceNpi?: number;
destinationTon?: number;
destinationNpi?: number;
addressRange?: string;
codingScheme?: number;
}
export const smppVersions = [
{value: 3.3},
{value: 3.4}
];
export enum BindTypes {
TX = 'TX',
RX = 'RX',
TRX = 'TRX'
}
export const bindTypesTranslationMap = new Map<BindTypes, string>([
[BindTypes.TX, 'admin.smpp-provider.bind-type-tx'],
[BindTypes.RX, 'admin.smpp-provider.bind-type-rx'],
[BindTypes.TRX, 'admin.smpp-provider.bind-type-trx']
]);
export enum TypeOfNumber {
Unknown = 'Unknown',
International = 'International',
National = 'National',
NetworkSpecific = 'NetworkSpecific',
SubscriberNumber = 'SubscriberNumber',
Alphanumeric = 'Alphanumeric',
Abbreviated = 'Abbreviated'
}
interface TypeDescriptor {
name: string;
value: number;
}
export const typeOfNumberMap = new Map<TypeOfNumber, TypeDescriptor>([
[TypeOfNumber.Unknown, {
name: 'admin.smpp-provider.ton-unknown',
value: 0
}],
[TypeOfNumber.International, {
name: 'admin.smpp-provider.ton-international',
value: 1
}],
[TypeOfNumber.National, {
name: 'admin.smpp-provider.ton-national',
value: 2
}],
[TypeOfNumber.NetworkSpecific, {
name: 'admin.smpp-provider.ton-network-specific',
value: 3
}],
[TypeOfNumber.SubscriberNumber, {
name: 'admin.smpp-provider.ton-subscriber-number',
value: 4
}],
[TypeOfNumber.Alphanumeric, {
name: 'admin.smpp-provider.ton-alphanumeric',
value: 5
}],
[TypeOfNumber.Abbreviated, {
name: 'admin.smpp-provider.ton-abbreviated',
value: 6
}],
]);
export enum NumberingPlanIdentification {
Unknown = 'Unknown',
ISDN = 'ISDN',
DataNumberingPlan = 'DataNumberingPlan',
TelexNumberingPlan = 'TelexNumberingPlan',
LandMobile = 'LandMobile',
NationalNumberingPlan = 'NationalNumberingPlan',
PrivateNumberingPlan = 'PrivateNumberingPlan',
ERMESNumberingPlan = 'ERMESNumberingPlan',
Internet = 'Internet',
WAPClientId = 'WAPClientId',
}
export const numberingPlanIdentificationMap = new Map<NumberingPlanIdentification, TypeDescriptor>([
[NumberingPlanIdentification.Unknown, {
name: 'admin.smpp-provider.npi-unknown',
value: 0
}],
[NumberingPlanIdentification.ISDN, {
name: 'admin.smpp-provider.npi-isdn',
value: 1
}],
[NumberingPlanIdentification.DataNumberingPlan, {
name: 'admin.smpp-provider.npi-data-numbering-plan',
value: 3
}],
[NumberingPlanIdentification.TelexNumberingPlan, {
name: 'admin.smpp-provider.npi-telex-numbering-plan',
value: 4
}],
[NumberingPlanIdentification.LandMobile, {
name: 'admin.smpp-provider.npi-land-mobile',
value: 5
}],
[NumberingPlanIdentification.NationalNumberingPlan, {
name: 'admin.smpp-provider.npi-national-numbering-plan',
value: 8
}],
[NumberingPlanIdentification.PrivateNumberingPlan, {
name: 'admin.smpp-provider.npi-private-numbering-plan',
value: 9
}],
[NumberingPlanIdentification.ERMESNumberingPlan, {
name: 'admin.smpp-provider.npi-ermes-numbering-plan',
value: 10
}],
[NumberingPlanIdentification.Internet, {
name: 'admin.smpp-provider.npi-internet',
value: 13
}],
[NumberingPlanIdentification.WAPClientId, {
name: 'admin.smpp-provider.npi-wap-client-id',
value: 18
}],
]);
export enum CodingSchemes {
SMSC = 'SMSC',
IA5 = 'IA5',
OctetUnspecified2 = 'OctetUnspecified2',
Latin1 = 'Latin1',
OctetUnspecified4 = 'OctetUnspecified4',
JIS = 'JIS',
Cyrillic = 'Cyrillic',
LatinHebrew = 'LatinHebrew',
UCS2UTF16 = 'UCS2UTF16',
PictogramEncoding = 'PictogramEncoding',
MusicCodes = 'MusicCodes',
ExtendedKanjiJIS = 'ExtendedKanjiJIS',
KoreanGraphicCharacterSet = 'KoreanGraphicCharacterSet',
}
export const codingSchemesMap = new Map<CodingSchemes, TypeDescriptor>([
[CodingSchemes.SMSC, {
name: 'admin.smpp-provider.scheme-smsc',
value: 0
}],
[CodingSchemes.IA5, {
name: 'admin.smpp-provider.scheme-ia5',
value: 1
}],
[CodingSchemes.OctetUnspecified2, {
name: 'admin.smpp-provider.scheme-octet-unspecified-2',
value: 2
}],
[CodingSchemes.Latin1, {
name: 'admin.smpp-provider.scheme-latin-1',
value: 3
}],
[CodingSchemes.OctetUnspecified4, {
name: 'admin.smpp-provider.scheme-octet-unspecified-4',
value: 4
}],
[CodingSchemes.JIS, {
name: 'admin.smpp-provider.scheme-jis',
value: 5
}],
[CodingSchemes.Cyrillic, {
name: 'admin.smpp-provider.scheme-cyrillic',
value: 6
}],
[CodingSchemes.LatinHebrew, {
name: 'admin.smpp-provider.scheme-latin-hebrew',
value: 7
}],
[CodingSchemes.UCS2UTF16, {
name: 'admin.smpp-provider.scheme-ucs-utf',
value: 8
}],
[CodingSchemes.PictogramEncoding, {
name: 'admin.smpp-provider.scheme-pictogram-encoding',
value: 9
}],
[CodingSchemes.MusicCodes, {
name: 'admin.smpp-provider.scheme-music-codes',
value: 10
}],
[CodingSchemes.ExtendedKanjiJIS, {
name: 'admin.smpp-provider.scheme-extended-kanji-jis',
value: 13
}],
[CodingSchemes.KoreanGraphicCharacterSet, {
name: 'admin.smpp-provider.scheme-korean-graphic-character-set',
value: 14
}],
]);
export type SmsProviderConfigurations =
Partial<SmppSmsProviderConfiguration> & AwsSnsSmsProviderConfiguration & TwilioSmsProviderConfiguration;
export interface SmsProviderConfiguration extends SmsProviderConfigurations {
type: SmsProviderType;
@ -140,9 +330,9 @@ export function smsProviderConfigurationValidator(required: boolean): ValidatorF
&& isNotEmptyStr(twilioConfiguration.accountToken);
break;
case SmsProviderType.SMPP:
const smppConfiguration: SmppSmsProviderConfiguration = configuration;
valid = isNotEmptyStr(smppConfiguration.protocolVersion) && isNotEmptyStr(smppConfiguration.host)
&& isNumber(smppConfiguration.port) && isNotEmptyStr(smppConfiguration.systemId) && isNotEmptyStr(smppConfiguration.password);
const smppConfiguration = configuration as SmppSmsProviderConfiguration;
valid = isNotEmptyStr(smppConfiguration.host) && isNumber(smppConfiguration.port)
&& isNotEmptyStr(smppConfiguration.systemId) && isNotEmptyStr(smppConfiguration.password);
break;
}
}
@ -184,7 +374,7 @@ export function createSmsProviderConfiguration(type: SmsProviderType): SmsProvid
break;
case SmsProviderType.SMPP:
const smppSmsProviderConfiguration: SmppSmsProviderConfiguration = {
protocolVersion: '',
protocolVersion: 3.3,
host: '',
port: null,
systemId: '',

58
ui-ngx/src/assets/locale/locale.constant-en_US.json

@ -253,6 +253,64 @@
"platform-ios": "iOS",
"all-platforms": "All platforms",
"allowed-platforms": "Allowed platforms"
},
"smpp-provider": {
"smpp-version": "SMPP version",
"smpp-host": "SMPP host",
"smpp-host-required": "SMPP host is required",
"smpp-port": "SMPP port",
"smpp-port-required": "SMPP port is required",
"system-id": "System ID",
"system-id-required": "System ID is required",
"password": "Password",
"password-required": "Password is required",
"type-settings": "Type settings",
"source-settings": "Source settings",
"destination-settings": "Destination settings",
"additional-settings": "Additional settings",
"system-type": "System type",
"bind-type": "Bind type",
"service-type": "Service type",
"source-address": "Source address",
"source-ton": "Source TON",
"source-npi": "Source NPI",
"destination-ton": "Destination TON (Type of Number)",
"destination-npi": "Destination NPI (Numbering Plan Identification)",
"address-range": "Address range",
"coding-scheme": "Coding scheme",
"bind-type-tx": "Transmitter",
"bind-type-rx": "Receiver",
"bind-type-trx": "Transciever",
"ton-unknown": "Unknown",
"ton-international": "International",
"ton-national": "National",
"ton-network-specific": "Network Specific",
"ton-subscriber-number": "Subscriber Number",
"ton-alphanumeric": "Alphanumeric",
"ton-abbreviated": "Abbreviated",
"npi-unknown": "0 - Unknown",
"npi-isdn": "1 - ISDN/telephone numbering plan (E163/E164)",
"npi-data-numbering-plan": "3 - Data numbering plan (X.121)",
"npi-telex-numbering-plan": "4 - Telex numbering plan (F.69)",
"npi-land-mobile": "6 - Land Mobile (E.212)",
"npi-national-numbering-plan": "8 - National numbering plan",
"npi-private-numbering-plan": "9 - Private numbering plan",
"npi-ermes-numbering-plan": "10 - ERMES numbering plan (ETSI DE/PS 3 01-3)",
"npi-internet": "13 - Internet (IP)",
"npi-wap-client-id": "18 - WAP Client Id (to be defined by WAP Forum)",
"scheme-smsc": "0 - SMSC Default Alphabet (ASCII for short and long code and to GSM for toll-free)",
"scheme-ia5": "1 - IA5 (ASCII for short and long code, Latin 9 for toll-free (ISO-8859-9))",
"scheme-octet-unspecified-2": "2 - Octet Unspecified (8-bit binary)",
"scheme-latin-1": "3 - Latin 1 (ISO-8859-1)",
"scheme-octet-unspecified-4": "4 - Octet Unspecified (8-bit binary)",
"scheme-jis": "5 - JIS (X 0208-1990)",
"scheme-cyrillic": "6 - Cyrillic (ISO-8859-5)",
"scheme-latin-hebrew": "7 - Latin/Hebrew (ISO-8859-8)",
"scheme-ucs-utf": "8 - UCS2/UTF-16 (ISO/IEC-10646)",
"scheme-pictogram-encoding": "9 - Pictogram Encoding",
"scheme-music-codes": "10 - Music Codes (ISO-2022-JP)",
"scheme-extended-kanji-jis": "13 - Extended Kanji JIS (X 0212-1990)",
"scheme-korean-graphic-character-set": "14 - Korean Graphic Character Set (KS C 5601/KS X 1001)"
}
},
"alarm": {

29
ui-ngx/src/assets/locale/locale.constant-ru_RU.json

@ -107,8 +107,33 @@
"general-policy": "Общая политика",
"max-failed-login-attempts": "Максимальное количество неудачных попыток входа в систему, прежде чем учетная запись заблокирована",
"minimum-max-failed-login-attempts-range": "Максимальное количество неудачных попыток входа в систему не может быть отрицательным",
"user-lockout-notification-email": "В случае блокировки учетной записи пользователя отправьте уведомление на электронную почту"
},
"user-lockout-notification-email": "В случае блокировки учетной записи пользователя отправьте уведомление на электронную почту",
"smpp-provider": {
"smpp-version": "SMPP версия",
"smpp-host": "SMPP хост",
"smpp-host-required": "SMPP хост обязателен.",
"smpp-port": "SMPP порт",
"smpp-port-required": "SMPP порт обязателен.",
"system-id": "ИД системи",
"system-id-required": "ИД системи обязателен.",
"password": "Пароль",
"password-required": "Пароль обязателен.",
"type-settings": "Настройки типов",
"source-settings": "Настройки источника",
"destination-settings": "Настройки назначения",
"additional-settings": "Дополнительные настройки",
"system-type": "Тип системы",
"bind-type": "Тип привязки",
"service-type": "Тип обслуживания",
"source-address": "Адрес источника",
"source-ton": "Тип номера источника",
"source-npi": "Идентификация плана нумерации источника",
"destination-ton": "Тип номера назничения",
"destination-npi": "Идентификация плана нумерации назначения",
"address-range": "Диапазон адресов",
"coding-scheme": "Схема кодирования"
}
},
"alarm": {
"alarm": "Оповещение",
"alarms": "Оповещения",

27
ui-ngx/src/assets/locale/locale.constant-uk_UA.json

@ -123,7 +123,32 @@
"general-policy": "Загальна політика",
"max-failed-login-attempts": "Максимальна кількість невдалих спроб входу, перш ніж обліковий запис заблоковано",
"minimum-max-failed-login-attempts-range": "Максимальна кількість невдалих спроб входу не може бути негативною",
"user-lockout-notification-email": "У разі блокування облікового запису користувача, надішліть сповіщення на електронну пошту"
"user-lockout-notification-email": "У разі блокування облікового запису користувача, надішліть сповіщення на електронну пошту",
"smpp-provider": {
"smpp-version": "SMPP верія",
"smpp-host": "SMPP хост",
"smpp-host-required": "Хост SMPP обов'язковий.",
"smpp-port": "SMPP порт",
"smpp-port-required": "Порт SMPP обов'язковий.",
"system-id": "Id системи",
"system-id-required": "Id системи обязателен.",
"password": "Пароль",
"password-required": "Пароль обязателен.",
"type-settings": "Налаштування типів",
"source-settings": "Налаштування джерела",
"destination-settings": "Налаштування призначення",
"additional-settings": "Додаткові налаштування",
"system-type": "Тип системи",
"bind-type": "Тип зв'язування",
"service-type": "Тип обслуговування",
"source-address": "Адреса джерела",
"source-ton": "Тип номера джерела",
"source-npi": "Идентификация плана нумерации джерела",
"destination-ton": "Тип номера призначення",
"destination-npi": "Ідентифікація плану нумерації призначення",
"address-range": "Діапазон адрес",
"coding-scheme": "Схема кодування"
}
},
"alarm": {
"alarm": "Сигнал тривоги",

Loading…
Cancel
Save