Support multi language (#131)
### Motivation
This pulsar-manager should support multiple languages, which is very necessary.
### Modifications
* Add common language configuration
* The update content is suitable for multi-language display.
diff --git a/front-end/src/lang/en.js b/front-end/src/lang/en.js
index e93946c..3a0caef 100644
--- a/front-end/src/lang/en.js
+++ b/front-end/src/lang/en.js
@@ -141,7 +141,7 @@
cancel: 'Cancel',
confirm: 'Confirm',
name: 'Name',
- serviceUrl: 'ServiceUrl',
+ serviceUrl: 'Service Url',
brokerServiceUrl: 'BrokerServiceUrl',
tenant: 'Tenants',
namespace: 'Namespaces',
@@ -209,6 +209,13 @@
},
tabs: {
config: 'CONFIG',
+ broker: 'BROKER',
+ bookie: 'BOOKIE',
+ namespace: 'NAMESPACE',
+ overview: 'OVERVIEW',
+ topic: 'TOPIC',
+ policies: 'POLICIES',
+ configuration: 'CONFIGURATION',
failuredomains: 'FAILURE DOMAINS',
isolationpolicies: 'ISOLATION POLICIES'
},
@@ -217,18 +224,248 @@
actions: 'Actions',
clusterLabel: 'Cluster',
namespacesLabel: 'Namespaces',
- regex: 'Regex'
+ regex: 'Regex',
+ inMsg: 'In - msg/s',
+ outMsg: 'Out - msg/s',
+ inBytes: 'In - bytes/s',
+ outBytes: 'Out - bytes/s',
+ storageSize: 'Storage Size',
+ enabled: 'Enabled',
+ disabled: 'Disabled'
},
tenant: {
+ label: 'Tenant',
+ name: 'Tenant Name',
searchTenant: 'Search Tenants',
newTenant: 'New Tenant',
+ deleteTenant: 'Delete Tenant',
nameLabel: 'Tenant Name',
adminRolesLabel: 'Admin Roles',
- allowedClustersLabel: 'Allowed Clusters'
+ allowedClustersLabel: 'Allowed Clusters',
+ selectTenantMessage: 'Please select tenant',
+ deleteTenantMessage: 'Are you sure you want to delete this tenant?',
+ tenantInfo: 'Tenant Info',
+ allowedClustersContent: 'This is Allowed Clusters Content',
+ adminRolesContent: 'This is Admin Roles Content',
+ permissions: 'Permissions',
+ newRole: '+ New Role'
},
namespace: {
+ label: 'Namespace',
+ name: 'Namespace Name',
+ namespaceNumber: 'Namespace Number',
+ newNamespace: 'New Namespace',
+ deleteNamespace: 'Delete Namespace',
+ inputNamespaceMessage: 'Please input namespace',
newTopic: 'New Topic',
- searchTopics: 'Search Topics'
+ searchTopics: 'Search Topics',
+ deleteNamespaceMessage: 'Are you sure you want to delete this namespace?',
+ policy: {
+ label: 'Policy',
+ name: 'Policy Name',
+ cluster: 'Clusters',
+ replicatedCluster: 'Replicated Clusters',
+ replicatedClustersContent: 'This is replicatedClustersContent',
+ authorization: 'Authorization',
+ authorizationContent: 'This is authorizationContent',
+ selectRole: 'Please select role',
+ deleteRole: 'Delete Role',
+ addRole: 'Add Role',
+ subscriptionAuthentication: 'Subscription Authentication',
+ subscriptionAuthenticationMode: 'Subscription Authentication Mode',
+ subscriptionAuthenticationModeContent: 'This is subscriptionAuthenticationModeContent',
+ storage: 'Storage',
+ replicationFactor: 'Replication Factor',
+ replicationFactorContent: 'This is replicationFactorContent',
+ ensembelSize: 'Ensembel Size',
+ inputEnsemble: 'Please input ensembel',
+ writeQuorumSize: 'Write Quorum Size',
+ inputWriteQuorumSize: 'Please input Write Quorum Size',
+ readQuorumSize: 'Read Quorum Size',
+ inputReadQuorumSize: 'Please input Read Quorum Size',
+ markDeleteRate: 'Mark Delete Rate',
+ markDeleteRateContent: 'This is markDeleteRateContent',
+ inputDeleteMaxRate: 'Please input Delete Max Rate',
+ encryptionRequire: 'Encryption Require',
+ encryptionRequireContent: 'This is encryptionRequireContent',
+ deduplication: 'Deduplication',
+ deduplicationContent: 'This is deduplicationContent',
+ backlog: 'Backlog',
+ backlogQuotasLimit: 'Backlog Quotas Limit',
+ backlogQuotasLimitContent: 'This is backlogQuotasLimitContent',
+ inputBacklogQuotasLimit: 'Please input Backlog Quotas Limit',
+ backlogRententionPolicy: 'Backlog Retention Policy',
+ backlogRententionPolicyContent: 'This is backlogRententionPolicyContent',
+ inputBacklogRententionPolicyContent: 'Please select backlog rentention policy',
+ schema: 'Schema',
+ autoUpdateStrategy: 'AutoUpdate Strategy',
+ autoUpdateStrategyContent: 'This is autoUpdateStrategyContent',
+ inputAutoUpdateStrategy: 'Please select backlog autoUpdate strategy',
+ schemaValidationEnforced: 'Schema Validation Enforced',
+ schemaValidationEnforcedContent: 'This is schemaValidationEnforcedContent',
+ cleanupPolicy: 'Cleanup Policy',
+ messageTTL: 'Message TTL(Unit Second)',
+ messageTTLContent: 'This is messageTTLContent',
+ inputMessageTTL: 'Please input Backlog Quotas Limit',
+ retentionSize: 'Retention Size',
+ retentionSizeContent: 'This is retentionSizeContent',
+ inputRententionSize: 'Please input retention size',
+ retentionTime: 'Retention Time(Unit Minutes)',
+ retentionTimeContent: 'This is retentionTimeContent',
+ inputRetentionTime: 'Please input Retention Time',
+ compactionThreshold: 'Compaction Threshold',
+ compactionThresholdContent: 'This is compactionThresholdContent',
+ inputCompactionThreshold: 'Please input compaction threshold',
+ offloadThreshold: 'Offload Threshold',
+ offloadThresholdContent: 'This is offloadThresholdContent',
+ inputOffloadThreshold: 'Please input Offload Threshold',
+ offloadDeletionLag: 'Offload Deletion Lag',
+ offloadDeletionLagContent: 'This is offloadDeletionLagContent',
+ inputOffloadDeleteLag: 'Please input offload delete lag',
+ throttling: 'Throttling',
+ maxProducersPerTopic: 'Max Producers Per Topic',
+ maxProducersPerTopicContent: 'This is maxProducersPerTopicContent',
+ inputMaxProducersPerTopic: 'Please input max Producers',
+ maxConsumersPerTopic: 'Max Consumers Per Topic',
+ maxConsumersPerTopicContent: 'This is maxConsumersPerTopicContent',
+ inputMaxConsumersForTopic: 'Please input max Consumers for topic',
+ maxConsumerPerSubscription: 'Max Consumers Per Subscription',
+ maxConsumerPerSubContent: 'This is maxConsumerPerSubContent',
+ inputMaxConsumersForSub: 'Please input max consumer for sub',
+ dispatchRate: 'Dispatch Rate',
+ dispatchRatePerTopic: 'Dispatch Rate Per Topic',
+ dispatchRatePerTopicContent: 'This is dispatchRatePerTopicContent',
+ dispatchRatePerTopicBytes: 'bytes/second',
+ inputDispatchRateBytes: 'Please input dispatch rate',
+ dispatchRatePerTopicMessage: 'message/second',
+ inputDispatchRatePerTopicMessage: 'Please input dispatch rate',
+ dispatchRatePerTopicPeriod: 'period(Unit second)',
+ inputDispatchPerTopicPerPeriod: 'Please input dispatch rate',
+ dispatchRateForSub: 'Dispatch Rate Per Subscription',
+ dispatchRatePerSubContent: 'This is dispatchRatePerSubContent',
+ inputDispatchRatePerSubBytes: 'Please input dispatch rate',
+ dispatchRatePerSubBytes: 'bytes/second',
+ dispatchRatePerSubMessage: 'message/second',
+ inputDispatchRatePerSubMessage: 'Please input dispatch rate',
+ dispatchRatePerSubPeriod: 'period(Unit Second)',
+ inputDispatchRatePerSubPeriod: 'Please input dispatch rate',
+ subscribeRatePerConsumer: 'Subscribe Rate Per Consumer',
+ subscribeRatePerConsumerSub: 'message/second',
+ inputSubscribeRate: 'Please input subscribe rate',
+ subscribeRatePerConsumerContent: 'This is subscribeRatePerConsumerContent',
+ subscribeRatePerConsumerPeriod: 'period(Unit Second)',
+ antiAffinity: 'Anti Affinity',
+ antiAffinityGroup: 'Anti Affinity Group',
+ antiAffinityGroupContent: 'This is antiAffinityGroupContent',
+ inputAntiAffinityGroup: 'Please input Anti Affinity Group'
+ },
+ clearBacklog: 'Clear Backlog',
+ bundle: {
+ label: 'Bundle',
+ name: 'Bundle Name',
+ operation: 'Operation',
+ split: 'Split',
+ unload: 'Unload',
+ bundleInfoContent: 'This is Bundle Info'
+ }
+ },
+ topic: {
+ label: 'Topic',
+ name: 'Topic Name',
+ topicNumber: 'Topic Number',
+ newTopic: 'New Topic',
+ deleteTopic: 'Delete Topic',
+ delete: 'Delete',
+ persistent: 'Persistent',
+ nonPersistent: 'Non-persistent',
+ partition: 'Partition',
+ partitions: 'Partitions',
+ partitionNumber: 'Partition Number',
+ topicDomain: 'Topic Domain',
+ addRole: 'Add Role',
+ producer: {
+ label: 'Producer',
+ name: 'Producer Name',
+ producers: 'Producers',
+ producerId: 'Producer Id',
+ producerName: 'Producer Name',
+ producerNumber: 'Producer Number',
+ avgMsgSize: 'Avg Msg Size',
+ address: 'Address',
+ since: 'Since'
+ },
+ subscription: {
+ label: 'Subscription',
+ name: 'Subscription Name',
+ subscriptions: 'Subscriptions',
+ type: 'Type',
+ subscriptionNumber: 'Subscription Number',
+ msgExpired: 'Msg Expired',
+ backlog: 'Backlog',
+ skip: 'SKIP',
+ skipMessage: 'Messages',
+ expire: 'EXPIRE',
+ expireMessage: 'messages older than timestamp (in seconds)',
+ clear: 'CLEAR',
+ clearMessage: 'Clear Message',
+ reset: 'RESET',
+ resetByTimeMessage: 'Reset By Time',
+ resetById: 'Reset By Message Id',
+ messageId: 'Message ID',
+ mins: 'Mins',
+ storage: 'STORAGE',
+ storageSize: 'Storage Size',
+ entries: 'Entries',
+ segments: 'Segments'
+ },
+ segment: {
+ label: 'Segment',
+ name: 'Segment Name',
+ ledgerId: 'Ledger Id',
+ entries: 'Entries',
+ size: 'Size',
+ status: 'Status',
+ offload: 'Offload'
+ },
+ cursor: {
+ label: 'Cursor',
+ name: 'Cursor Name',
+ cursors: 'Cursors',
+ markDeletePosition: 'Mark Delete Position',
+ readPosition: 'Read Position',
+ waitingReadOp: 'Waiting Read Op',
+ pendingReadOp: 'Pending Read Op',
+ numberOfEntriesSinceFirstNotAckedMessage: 'Entries Since First Not AckedMessage'
+ },
+ policy: {
+ label: 'policy',
+ name: 'Policy Name',
+ policies: 'Policies',
+ authentication: 'Authorization',
+ authorizationContent: 'This is authorizationContent'
+ },
+ consumer: {
+ label: 'Consumer',
+ name: 'Consumer Name',
+ consumers: 'Consumers',
+ avgMsgSize: 'Avg Msg Size',
+ address: 'Address',
+ since: 'Since'
+ },
+ info: 'INFO',
+ column: 'column',
+ data: 'data',
+ terminate: 'terminate',
+ compactionName: 'COMPACTION',
+ compaction: 'compaction',
+ offloadName: 'OFFLOAD',
+ offload: 'offload',
+ status: 'STATUS',
+ unload: 'Unload',
+ deleteTopicMessage: 'Are you sure you want to delete this topic?',
+ partitionedTopicName: 'Partitioned Topic Name',
+ selectRoleMessage: 'Please Select Role',
+ backlogOpeartion: 'Backlog Operation'
},
cluster: {
label: 'Cluster',
@@ -237,15 +474,36 @@
updateCluster: 'Update Cluster',
deleteCluster: 'Delete Cluster',
searchClusters: 'Search Clusters',
- selectCluster: 'Select Cluster',
+ selectCluster: 'Please select cluster',
+ serviceUrl: 'Service Url',
+ selectClusterMessage: 'Please select clusters',
webServiceUrlPrefix: 'Http Service Url',
webServiceUrlTlsPrefix: 'Https Service Url',
brokerServiceUrlPrefix: 'Broker Service Url',
- brokerServiceUrlTlsPrefix: 'Broker Service Url (TLS)'
+ brokerServiceUrlTlsPrefix: 'Broker Service Url (TLS)',
+ deleteClusterMessage: 'Are you sure you want to delete this policy?',
+ replicatedCluster: 'Replicated Clusters'
+ },
+ broker: {
+ label: 'Broker',
+ name: 'Broker Name',
+ brokerNumber: 'Broker Number',
+ ownedNamespaceNumber: 'Owned Namespace Number',
+ throughput: 'Throughput',
+ bandwidth: 'Bandwidth',
+ placeholderSelectBroker: 'Please select brokers',
+ brokerContent: 'This is Broker Content'
+ },
+ bookie: {
+ label: 'Bookie',
+ name: 'Bookie Name',
+ state: 'Bookie state',
+ storage: 'Bookie storage'
},
// failure domain
fd: {
label: 'Failure Domain',
+ failureDomainNumber: 'Failure Domain Number',
createFdTitle: 'Add a New Failure Domain',
name: 'Domain Name',
brokerList: 'Broker List',
@@ -253,7 +511,8 @@
searchFds: 'Search Failure Domains',
newFd: 'New FailureDomain',
updateFd: 'Update Failure Domain',
- deleteFd: 'Delete Failure Domain'
+ deleteFd: 'Delete Failure Domain',
+ deleteFdMessage: 'Are you sure you want to delete this domain?'
},
// isolation policies
ip: {
@@ -278,6 +537,7 @@
brokerUsageThresholdLabel: 'Broker Usage Threshold',
brokerUsageThresholdPh: 'Please input broker usage threshold',
minimalAvailableBrokerLabel: 'Minimal Available Brokers',
- minimalAvailableBrokerPh: 'Please input minimalAvailableBroker'
+ minimalAvailableBrokerPh: 'Please input minimalAvailableBroker',
+ deletePolicyMessage: 'Are you sure you want to delete this policy?'
}
}
diff --git a/front-end/src/lang/zh.js b/front-end/src/lang/zh.js
index 1c92c21..c5ae412 100644
--- a/front-end/src/lang/zh.js
+++ b/front-end/src/lang/zh.js
@@ -206,5 +206,338 @@
close: '关闭',
closeOthers: '关闭其它',
closeAll: '关闭所有'
+ },
+ tabs: {
+ config: 'CONFIG',
+ broker: 'BROKER',
+ bookie: 'BOOKIE',
+ namespace: 'NAMESPACE',
+ overview: 'OVERVIEW',
+ topic: 'TOPIC',
+ policies: 'POLICIES',
+ configuration: 'CONFIGURATION',
+ failuredomains: 'FAILURE DOMAINS',
+ isolationpolicies: 'ISOLATION POLICIES'
+ },
+ common: {
+ dangerZone: 'Danger Zone',
+ actions: 'Actions',
+ clusterLabel: 'Cluster',
+ namespacesLabel: 'Namespaces',
+ regex: 'Regex',
+ inMsg: 'In - msg/s',
+ outMsg: 'Out - msg/s',
+ inBytes: 'In - bytes/s',
+ outBytes: 'Out - bytes/s',
+ storageSize: 'Storage Size',
+ enabled: 'Enabled',
+ disabled: 'Disabled'
+ },
+ tenant: {
+ label: 'Tenant',
+ name: 'Tenant Name',
+ searchTenant: 'Search Tenants',
+ newTenant: 'New Tenant',
+ deleteTenant: 'Delete Tenant',
+ nameLabel: 'Tenant Name',
+ adminRolesLabel: 'Admin Roles',
+ allowedClustersLabel: 'Allowed Clusters',
+ selectTenantMessage: 'Please select tenant',
+ deleteTenantMessage: 'Are you sure you want to delete this tenant?',
+ tenantInfo: 'Tenant Info',
+ allowedClustersContent: 'This is Allowed Clusters Content',
+ adminRolesContent: 'This is Admin Roles Content',
+ permissions: 'Permissions',
+ newRole: '+ New Role'
+ },
+ namespace: {
+ label: 'Namespace',
+ name: 'Namespace Name',
+ namespaceNumber: 'Namespace Number',
+ newNamespace: 'New Namespace',
+ deleteNamespace: 'Delete Namespace',
+ inputNamespaceMessage: 'Please input namespace',
+ newTopic: 'New Topic',
+ searchTopics: 'Search Topics',
+ deleteNamespaceMessage: 'Are you sure you want to delete this namespace?',
+ policy: {
+ label: 'Policy',
+ name: 'Policy Name',
+ cluster: 'Clusters',
+ replicatedCluster: 'Replicated Clusters',
+ replicatedClustersContent: 'This is replicatedClustersContent',
+ authorization: 'Authorization',
+ authorizationContent: 'This is authorizationContent',
+ selectRole: 'Please select role',
+ deleteRole: 'Delete Role',
+ addRole: 'Add Role',
+ subscriptionAuthentication: 'Subscription Authentication',
+ subscriptionAuthenticationMode: 'Subscription Authentication Mode',
+ subscriptionAuthenticationModeContent: 'This is subscriptionAuthenticationModeContent',
+ storage: 'Storage',
+ replicationFactor: 'Replication Factor',
+ replicationFactorContent: 'This is replicationFactorContent',
+ ensembelSize: 'Ensembel Size',
+ inputEnsemble: 'Please input ensembel',
+ writeQuorumSize: 'Write Quorum Size',
+ inputWriteQuorumSize: 'Please input Write Quorum Size',
+ readQuorumSize: 'Read Quorum Size',
+ inputReadQuorumSize: 'Please input Read Quorum Size',
+ markDeleteRate: 'Mark Delete Rate',
+ markDeleteRateContent: 'This is markDeleteRateContent',
+ inputDeleteMaxRate: 'Please input Delete Max Rate',
+ encryptionRequire: 'Encryption Require',
+ encryptionRequireContent: 'This is encryptionRequireContent',
+ deduplication: 'Deduplication',
+ deduplicationContent: 'This is deduplicationContent',
+ backlog: 'Backlog',
+ backlogQuotasLimit: 'Backlog Quotas Limit',
+ backlogQuotasLimitContent: 'This is backlogQuotasLimitContent',
+ inputBacklogQuotasLimit: 'Please input Backlog Quotas Limit',
+ backlogRententionPolicy: 'Backlog Retention Policy',
+ backlogRententionPolicyContent: 'This is backlogRententionPolicyContent',
+ inputBacklogRententionPolicyContent: 'Please select backlog rentention policy',
+ schema: 'Schema',
+ autoUpdateStrategy: 'AutoUpdate Strategy',
+ autoUpdateStrategyContent: 'This is autoUpdateStrategyContent',
+ inputAutoUpdateStrategy: 'Please select backlog autoUpdate strategy',
+ schemaValidationEnforced: 'Schema Validation Enforced',
+ schemaValidationEnforcedContent: 'This is schemaValidationEnforcedContent',
+ cleanupPolicy: 'Cleanup Policy',
+ messageTTL: 'Message TTL(Unit Second)',
+ messageTTLContent: 'This is messageTTLContent',
+ inputMessageTTL: 'Please input Backlog Quotas Limit',
+ retentionSize: 'Retention Size',
+ retentionSizeContent: 'This is retentionSizeContent',
+ inputRententionSize: 'Please input retention size',
+ retentionTime: 'Retention Time(Unit Minutes)',
+ retentionTimeContent: 'This is retentionTimeContent',
+ inputRetentionTime: 'Please input Retention Time',
+ compactionThreshold: 'Compaction Threshold',
+ compactionThresholdContent: 'This is compactionThresholdContent',
+ inputCompactionThreshold: 'Please input compaction threshold',
+ offloadThreshold: 'Offload Threshold',
+ offloadThresholdContent: 'This is offloadThresholdContent',
+ inputOffloadThreshold: 'Please input Offload Threshold',
+ offloadDeletionLag: 'Offload Deletion Lag',
+ offloadDeletionLagContent: 'This is offloadDeletionLagContent',
+ inputOffloadDeleteLag: 'Please input offload delete lag',
+ throttling: 'Throttling',
+ maxProducersPerTopic: 'Max Producers Per Topic',
+ maxProducersPerTopicContent: 'This is maxProducersPerTopicContent',
+ inputMaxProducersPerTopic: 'Please input max Producers',
+ maxConsumersPerTopic: 'Max Consumers Per Topic',
+ maxConsumersPerTopicContent: 'This is maxConsumersPerTopicContent',
+ inputMaxConsumersForTopic: 'Please input max Consumers for topic',
+ maxConsumerPerSubscription: 'Max Consumers Per Subscription',
+ maxConsumerPerSubContent: 'This is maxConsumerPerSubContent',
+ inputMaxConsumersForSub: 'Please input max consumer for sub',
+ dispatchRate: 'Dispatch Rate',
+ dispatchRatePerTopic: 'Dispatch Rate Per Topic',
+ dispatchRatePerTopicContent: 'This is dispatchRatePerTopicContent',
+ dispatchRatePerTopicBytes: 'bytes/second',
+ inputDispatchRateBytes: 'Please input dispatch rate',
+ dispatchRatePerTopicMessage: 'message/second',
+ inputDispatchRatePerTopicMessage: 'Please input dispatch rate',
+ dispatchRatePerTopicPeriod: 'period(Unit second)',
+ inputDispatchPerTopicPerPeriod: 'Please input dispatch rate',
+ dispatchRateForSub: 'Dispatch Rate Per Subscription',
+ dispatchRatePerSubContent: 'This is dispatchRatePerSubContent',
+ inputDispatchRatePerSubBytes: 'Please input dispatch rate',
+ dispatchRatePerSubBytes: 'bytes/second',
+ dispatchRatePerSubMessage: 'message/second',
+ inputDispatchRatePerSubMessage: 'Please input dispatch rate',
+ dispatchRatePerSubPeriod: 'period(Unit Second)',
+ inputDispatchRatePerSubPeriod: 'Please input dispatch rate',
+ subscribeRatePerConsumer: 'Subscribe Rate Per Consumer',
+ subscribeRatePerConsumerSub: 'message/second',
+ inputSubscribeRate: 'Please input subscribe rate',
+ subscribeRatePerConsumerContent: 'This is subscribeRatePerConsumerContent',
+ subscribeRatePerConsumerPeriod: 'period(Unit Second)',
+ antiAffinity: 'Anti Affinity',
+ antiAffinityGroup: 'Anti Affinity Group',
+ antiAffinityGroupContent: 'This is antiAffinityGroupContent',
+ inputAntiAffinityGroup: 'Please input Anti Affinity Group'
+ },
+ clearBacklog: 'Clear Backlog',
+ bundle: {
+ label: 'Bundle',
+ name: 'Bundle Name',
+ operation: 'Operation',
+ split: 'Split',
+ unload: 'Unload',
+ bundleInfoContent: 'This is Bundle Info'
+ }
+ },
+ topic: {
+ label: 'Topic',
+ name: 'Topic Name',
+ topicNumber: 'Topic Number',
+ newTopic: 'New Topic',
+ deleteTopic: 'Delete Topic',
+ delete: 'Delete',
+ persistent: 'Persistent',
+ nonPersistent: 'Non-persistent',
+ partition: 'Partition',
+ partitions: 'Partitions',
+ partitionNumber: 'Partition Number',
+ topicDomain: 'Topic Domain',
+ addRole: 'Add Role',
+ producer: {
+ label: 'Producer',
+ name: 'Producer Name',
+ producers: 'Producers',
+ producerId: 'Producer Id',
+ producerName: 'Producer Name',
+ producerNumber: 'Producer Number',
+ avgMsgSize: 'Avg Msg Size',
+ address: 'Address',
+ since: 'Since'
+ },
+ subscription: {
+ label: 'Subscription',
+ name: 'Subscription Name',
+ subscriptions: 'Subscriptions',
+ type: 'Type',
+ subscriptionNumber: 'Subscription Number',
+ msgExpired: 'Msg Expired',
+ backlog: 'Backlog',
+ skip: 'SKIP',
+ skipMessage: 'Messages',
+ expire: 'EXPIRE',
+ expireMessage: 'messages older than timestamp (in seconds)',
+ clear: 'CLEAR',
+ clearMessage: 'Clear Message',
+ reset: 'RESET',
+ resetByTimeMessage: 'Reset By Time',
+ resetById: 'Reset By Message Id',
+ messageId: 'Message ID',
+ mins: 'Mins',
+ storage: 'STORAGE',
+ storageSize: 'Storage Size',
+ entries: 'Entries',
+ segments: 'Segments'
+ },
+ segment: {
+ label: 'Segment',
+ name: 'Segment Name',
+ ledgerId: 'Ledger Id',
+ entries: 'Entries',
+ size: 'Size',
+ status: 'Status',
+ offload: 'Offload'
+ },
+ cursor: {
+ label: 'Cursor',
+ name: 'Cursor Name',
+ cursors: 'Cursors',
+ markDeletePosition: 'Mark Delete Position',
+ readPosition: 'Read Position',
+ waitingReadOp: 'Waiting Read Op',
+ pendingReadOp: 'Pending Read Op',
+ numberOfEntriesSinceFirstNotAckedMessage: 'Entries Since First Not AckedMessage'
+ },
+ policy: {
+ label: 'policy',
+ name: 'Policy Name',
+ policies: 'Policies',
+ authentication: 'Authorization',
+ authorizationContent: 'This is authorizationContent'
+ },
+ consumer: {
+ label: 'Consumer',
+ name: 'Consumer Name',
+ consumers: 'Consumers',
+ avgMsgSize: 'Avg Msg Size',
+ address: 'Address',
+ since: 'Since'
+ },
+ info: 'INFO',
+ column: 'column',
+ data: 'data',
+ terminate: 'terminate',
+ compactionName: 'COMPACTION',
+ compaction: 'compaction',
+ offloadName: 'OFFLOAD',
+ offload: 'offload',
+ status: 'STATUS',
+ unload: 'Unload',
+ deleteTopicMessage: 'Are you sure you want to delete this topic?',
+ partitionedTopicName: 'Partitioned Topic Name',
+ selectRoleMessage: 'Please Select Role',
+ backlogOpeartion: 'Backlog Operation'
+ },
+ cluster: {
+ label: 'Cluster',
+ name: 'Cluster Name',
+ addCluster: 'Add Cluster',
+ updateCluster: 'Update Cluster',
+ deleteCluster: 'Delete Cluster',
+ searchClusters: 'Search Clusters',
+ selectCluster: 'Please select cluster',
+ serviceUrl: 'Service Url',
+ selectClusterMessage: 'Please select clusters',
+ webServiceUrlPrefix: 'Http Service Url',
+ webServiceUrlTlsPrefix: 'Https Service Url',
+ brokerServiceUrlPrefix: 'Broker Service Url',
+ brokerServiceUrlTlsPrefix: 'Broker Service Url (TLS)',
+ deleteClusterMessage: 'Are you sure you want to delete this policy?',
+ replicatedCluster: 'Replicated Clusters'
+ },
+ broker: {
+ label: 'Broker',
+ name: 'Broker Name',
+ brokerNumber: 'Broker Number',
+ ownedNamespaceNumber: 'Owned Namespace Number',
+ throughput: 'Throughput',
+ bandwidth: 'Bandwidth',
+ placeholderSelectBroker: 'Please select brokers',
+ brokerContent: 'This is Broker Content'
+ },
+ bookie: {
+ label: 'Bookie',
+ name: 'Bookie Name',
+ state: 'Bookie state',
+ storage: 'Bookie storage'
+ },
+ // failure domain
+ fd: {
+ label: 'Failure Domain',
+ failureDomainNumber: 'Failure Domain Number',
+ createFdTitle: 'Add a New Failure Domain',
+ name: 'Domain Name',
+ brokerList: 'Broker List',
+ selectBrokers: 'Please select brokers',
+ searchFds: 'Search Failure Domains',
+ newFd: 'New FailureDomain',
+ updateFd: 'Update Failure Domain',
+ deleteFd: 'Delete Failure Domain',
+ deleteFdMessage: 'Are you sure you want to delete this domain?'
+ },
+ // isolation policies
+ ip: {
+ label: 'Policy',
+ heading: 'Namespace Isolation Policy',
+ name: 'Policy Name',
+ searchIps: 'Search Isolation Policies',
+ selectIp: 'Select Isolation Policy',
+ newIp: 'New Isolation Policy',
+ nameLabel: 'Isolation Policy',
+ numPBLabel: 'Number of Primary Brokers',
+ numSBLabel: 'Number of Secondary Brokers',
+ newIpName: 'Please input policy name',
+ selectNsLabel: 'Select Namespaces',
+ selectPbLabel: 'Select Brokers',
+ selectSbLabel: 'Select Brokers',
+ selectAfpPh: 'Please select auto failover policy',
+ pbHeading: 'Primary Brokers',
+ sbHeading: 'Secondary Brokers',
+ afpHeading: 'Auto Failover Policy',
+ ptHeading: 'Policy Type',
+ brokerUsageThresholdLabel: 'Broker Usage Threshold',
+ brokerUsageThresholdPh: 'Please input broker usage threshold',
+ minimalAvailableBrokerLabel: 'Minimal Available Brokers',
+ minimalAvailableBrokerPh: 'Please input minimalAvailableBroker',
+ deletePolicyMessage: 'Are you sure you want to delete this policy?'
}
}
diff --git a/front-end/src/views/management/clusters/cluster.vue b/front-end/src/views/management/clusters/cluster.vue
index c6f902a..7c5348d 100644
--- a/front-end/src/views/management/clusters/cluster.vue
+++ b/front-end/src/views/management/clusters/cluster.vue
@@ -3,14 +3,14 @@
<div class="createPost-container">
<el-form :inline="true" :model="postForm" class="form-container">
<el-form-item class="postInfo-container-item" label="Cluster">
- <el-select v-model="postForm.cluster" placeholder="select cluster" @change="getClusterInfo()">
+ <el-select v-model="postForm.cluster" :placeholder="$t('cluster.selectCluster')" @change="getClusterInfo()">
<el-option v-for="(item,index) in clustersListOptions" :key="item+index" :label="item" :value="item"/>
</el-select>
</el-form-item>
</el-form>
</div>
<el-tabs v-model="activeName" @tab-click="handleClick">
- <el-tab-pane label="BROKERS" name="brokers">
+ <el-tab-pane :label="$t('tabs.broker')" name="brokers">
<el-row :gutter="24">
<el-col :xs="{span: 24}" :sm="{span: 24}" :md="{span: 24}" :lg="{span: 24}" :xl="{span: 24}">
<el-table
@@ -20,29 +20,29 @@
fit
highlight-current-row
style="width: 100%;">
- <el-table-column label="Brokers" min-width="50px" align="center">
+ <el-table-column :label="$t('broker.name')" min-width="50px" align="center">
<template slot-scope="scope">
<router-link :to="'/management/brokers/' + scope.row.cluster + '/' + scope.row.broker + '/broker'" class="link-type">
<span>{{ scope.row.broker }}</span>
</router-link>
</template>
</el-table-column>
- <el-table-column label="Failure Domains" align="center" min-width="100px">
+ <el-table-column :label="$t('fd.failureDomainNumber')" align="center" min-width="100px">
<template slot-scope="scope">
<span>{{ scope.row.failureDomain }}</span>
</template>
</el-table-column>
- <el-table-column label="Owned Namespaces" align="center" min-width="100px">
+ <el-table-column :label="$t('broker.ownedNamespaceNumber')" align="center" min-width="100px">
<template slot-scope="scope">
<span>{{ scope.row.ownedNamespaces }}</span>
</template>
</el-table-column>
- <el-table-column label="Throughput" align="center" min-width="100px">
+ <el-table-column :label="$t('broker.throughput')" align="center" min-width="100px">
<template slot-scope="scope">
<span>In:{{ scope.row.throughputIn }}<br>Out:{{ scope.row.throughputOut }}</span>
</template>
</el-table-column>
- <el-table-column label="Bandwidth" align="center" min-width="100px">
+ <el-table-column :label="$t('broker.bandwidth')" align="center" min-width="100px">
<template slot-scope="scope">
<span>In: {{ scope.row.bandwidthIn }}<br>Out: {{ scope.row.bandwidthOut }}</span>
</template>
@@ -51,7 +51,7 @@
</el-col>
</el-row>
</el-tab-pane>
- <el-tab-pane label="BOOKIES" name="bookies">
+ <el-tab-pane :label="$t('tabs.bookie')" name="bookies">
<el-row :gutter="24">
<el-col :xs="{span: 24}" :sm="{span: 24}" :md="{span: 24}" :lg="{span: 24}" :xl="{span: 24}" style="padding-right:8px;margin-bottom:30px;">
<el-table
@@ -61,17 +61,17 @@
fit
highlight-current-row
style="width: 100%;">
- <el-table-column label="Bookies" min-width="50px" align="center">
+ <el-table-column :label="$t('bookie.name')" min-width="50px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.bookie }}</span>
</template>
</el-table-column>
- <el-table-column label="State" align="center" min-width="100px">
+ <el-table-column :label="$t('bookie.state')" align="center" min-width="100px">
<template slot-scope="scope">
<span>{{ scope.row.status }}</span>
</template>
</el-table-column>
- <el-table-column label="Storage" align="center" min-width="100px">
+ <el-table-column :label="$t('bookie.storage')" align="center" min-width="100px">
<template slot-scope="scope">
<span>{{ scope.row.storage }}%</span>
</template>
@@ -194,9 +194,9 @@
<el-form-item :label="$t('fd.brokerList')" prop="brokerList">
<el-select
v-model="temp.brokerValue"
+ :placeholder="$t('broker.placeholderSelectBroker')"
style="width:254px;"
- multiple
- placeholder="Please select brokers">
+ multiple>
<el-option v-for="item in brokerOptions" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
@@ -207,7 +207,7 @@
</div>
<div v-if="dialogStatus==='deleteCluster'">
<el-form-item>
- <h4>Are you sure you want to delete this cluster?</h4>
+ <h4>{{ deleteClusterMessage }}</h4>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="deleteCluster()">{{ $t('table.confirm') }}</el-button>
@@ -216,7 +216,7 @@
</div>
<div v-if="dialogStatus==='deleteDomain'">
<el-form-item>
- <h4>Are you sure you want to delete this domain?</h4>
+ <h4>{{ deleteFdMessage }}</h4>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="deleteDomain()">{{ $t('table.confirm') }}</el-button>
@@ -225,7 +225,7 @@
</div>
<div v-if="dialogStatus==='deletePolicy'">
<el-form-item>
- <h4>Are you sure you want to delete this policy?</h4>
+ <h4>{{ deletePolicyMessage }}</h4>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="deletePolicy()">{{ $t('table.confirm') }}</el-button>
@@ -307,7 +307,10 @@
deletePolicy: 'Delete Policy'
},
tempIsolationPolicyList: [],
- tempFailureDomainList: []
+ tempFailureDomainList: [],
+ deleteClusterMessage: this.$i18n.t('cluster.deleteClusterMessage'),
+ deleteFdMessage: this.$i18n.t('fd.deleteFdMessage'),
+ deletePolicyMessage: this.$i18n.t('ip.deletePolicyMessage')
}
},
created() {
diff --git a/front-end/src/views/management/clusters/failureDomain.vue b/front-end/src/views/management/clusters/failureDomain.vue
index 665df76..31a79cf 100644
--- a/front-end/src/views/management/clusters/failureDomain.vue
+++ b/front-end/src/views/management/clusters/failureDomain.vue
@@ -35,7 +35,7 @@
<el-form label-position="top">
<div v-if="dialogStatus==='delete'">
<el-form-item>
- <h4>Are you sure you want to delete this domain?</h4>
+ <h4>{{ deleteFdMessage }}</h4>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="deleteDomain()">{{ $t('table.confirm') }}</el-button>
@@ -71,16 +71,17 @@
return {
postForm: Object.assign({}, defaultForm),
clustersListOptions: [],
- brokersContent: 'This is BrokersContent',
+ brokersContent: this.$i18n.t('broker.brokerContent'),
brokerValue: [],
brokerOptions: [],
failureDomainListOptions: [],
firstInit: false,
textMap: {
- delete: 'Delete Failure Domain'
+ delete: this.$i18n.t('fd.deleteFd')
},
dialogStatus: '',
- dialogFormVisible: false
+ dialogFormVisible: false,
+ deleteFdMessage: this.$i18n.t('fd.deleteFdMessage')
}
},
created() {
diff --git a/front-end/src/views/management/clusters/index.vue b/front-end/src/views/management/clusters/index.vue
index d0f81f1..33312da 100644
--- a/front-end/src/views/management/clusters/index.vue
+++ b/front-end/src/views/management/clusters/index.vue
@@ -16,21 +16,21 @@
fit
highlight-current-row
style="width: 100%;">
- <el-table-column :label="$t('table.cluster')" min-width="150px" align="center">
+ <el-table-column :label="$t('cluster.name')" min-width="150px" align="center">
<template slot-scope="scope">
<router-link :to="'/management/clusters/' + scope.row.cluster + '/cluster?tab=config'" class="link-type">
<span>{{ scope.row.cluster }}</span>
</router-link>
</template>
</el-table-column>
- <el-table-column label="Brokers" min-width="150px" align="center">
+ <el-table-column :label="$t('broker.brokerNumber')" min-width="150px" align="center">
<template slot-scope="scope">
<router-link :to="'/management/clusters/' + scope.row.cluster + '/cluster?tab=brokers'" class="link-type">
<span>{{ scope.row.brokers }}</span>
</router-link>
</template>
</el-table-column>
- <el-table-column label="Service Urls" min-width="150px" align="center">
+ <el-table-column :label="$t('cluster.serviceUrl')" min-width="150px" align="center">
<template slot-scope="scope">
<span>
data: {{ scope.row.brokerServiceUrl }}
@@ -80,7 +80,7 @@
</div>
<div v-if="dialogStatus==='delete'">
<el-form-item>
- <h4>Are you sure you want to delete this cluster?</h4>
+ <h4>{{ deleteClusterMessage }}</h4>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="deleteCluster()">{{ $t('table.confirm') }}</el-button>
@@ -155,8 +155,8 @@
dialogFormVisible: false,
dialogStatus: '',
textMap: {
- delete: 'Delete Cluster',
- create: 'Add a new cluster'
+ delete: this.$i18n.t('cluster.deleteCluster'),
+ create: this.$i18n.t('cluster.addCluster')
},
dialogPvVisible: false,
rules: {
@@ -164,7 +164,8 @@
serviceUrl: [{ required: true, message: 'serviceUrl is required', trigger: 'change' }],
domainName: [{ required: true, message: 'domainName is required', trigger: 'change' }],
domainNames: [{ required: true, message: 'domainNames is required', trigger: 'change' }]
- }
+ },
+ deleteClusterMessage: this.$i18n.t('cluster.deleteClusterMessage')
}
},
created() {
diff --git a/front-end/src/views/management/namespaces/namespace.vue b/front-end/src/views/management/namespaces/namespace.vue
index f0ee0e8..b70b4f5 100644
--- a/front-end/src/views/management/namespaces/namespace.vue
+++ b/front-end/src/views/management/namespaces/namespace.vue
@@ -2,28 +2,28 @@
<div class="app-container">
<div class="createPost-container">
<el-form :inline="true" :model="postForm" class="form-container">
- <el-form-item class="postInfo-container-item" label="Tenant">
- <el-select v-model="postForm.tenant" placeholder="select tenant" @change="getNamespacesList(postForm.tenant)">
+ <el-form-item :label="$t('tenant.label')" class="postInfo-container-item">
+ <el-select v-model="postForm.tenant" :placeholder="$t('tenant.name')" @change="getNamespacesList(postForm.tenant)">
<el-option v-for="(item,index) in tenantsListOptions" :key="item+index" :label="item" :value="item"/>
</el-select>
</el-form-item>
- <el-form-item class="postInfo-container-item" label="Namespace">
- <el-select v-model="postForm.namespace" placeholder="select namespace" @change="getNamespaceInfo(postForm.tenant, postForm.namespace)">
+ <el-form-item :label="$t('namespace.label')" class="postInfo-container-item">
+ <el-select v-model="postForm.namespace" :placeholder="$t('namespace.name')" @change="getNamespaceInfo(postForm.tenant, postForm.namespace)">
<el-option v-for="(item,index) in namespacesListOptions" :key="item+index" :label="item" :value="item"/>
</el-select>
</el-form-item>
</el-form>
</div>
<el-tabs v-model="activeName" @tab-click="handleClick">
- <el-tab-pane label="OVERVIEW" name="overview">
+ <el-tab-pane :label="$t('tabs.overview')" name="overview">
<el-table
:data="namespaceStats"
border
style="width: 100%">
- <el-table-column prop="inMsg" label="In - msg/s"/>
- <el-table-column prop="outMsg" label="Out - msg/s"/>
- <el-table-column prop="inBytes" label="In - bytes/s"/>
- <el-table-column prop="outBytes" label="Out - bytes/s"/>
+ <el-table-column :label="$t('common.inMsg')" prop="inMsg"/>
+ <el-table-column :label="$t('common.outMsg')" prop="outMsg"/>
+ <el-table-column :label="$t('common.inBytes')" prop="inBytes"/>
+ <el-table-column :label="$t('common.outBytes')" prop="outBytes"/>
</el-table>
<h4>
Bundles
@@ -43,22 +43,22 @@
fit
highlight-current-row
style="width: 100%;">
- <el-table-column label="Bundle" align="center" min-width="100px">
+ <el-table-column :label="$t('namespace.bundle.label')" align="center" min-width="100px">
<template slot-scope="scope">
<span>{{ scope.row.bundle }}</span>
</template>
</el-table-column>
- <el-table-column label="Operations" align="center" class-name="small-padding fixed-width">
+ <el-table-column :label="$t('namespace.bundle.operation')" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
- <el-button size="medium" style="margin-left: 10px;" type="danger" icon="el-icon-share" @click="handleSplitBundle(scope.row)">Split</el-button>
- <el-button size="medium" style="margin-left: 10px;" type="danger" icon="el-icon-download" @click="handleUnloadBundle(scope.row)">Unload</el-button>
- <el-button size="medium" style="margin-left: 10px;" type="danger" icon="el-icon-close" @click="handleClearBundleBacklog(scope.row)">Clear Backlog</el-button>
+ <el-button size="medium" style="margin-left: 10px;" type="danger" icon="el-icon-share" @click="handleSplitBundle(scope.row)">{{ $t('namespace.bundle.split') }}</el-button>
+ <el-button size="medium" style="margin-left: 10px;" type="danger" icon="el-icon-download" @click="handleUnloadBundle(scope.row)">{{ $t('namespace.bundle.unload') }}</el-button>
+ <el-button size="medium" style="margin-left: 10px;" type="danger" icon="el-icon-close" @click="handleClearBundleBacklog(scope.row)">{{ $t('namespace.clearBacklog') }}</el-button>
</template>
</el-table-column>
</el-table>
<!-- <pagination v-show="total>0" :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit"/> -->
</el-tab-pane>
- <el-tab-pane label="TOPICS" name="topics">
+ <el-tab-pane :label="$t('tabs.topic')" name="topics">
<el-input v-model="searchTopic" :placeholder="$t('namespace.searchTopics')" style="width: 200px;" @keyup.enter.native="handleFilterTopic"/>
<el-button type="primary" icon="el-icon-search" @click="handleFilterTopic"/>
<el-button type="primary" icon="el-icon-plus" @click="handleCreateTopic">{{ $t('namespace.newTopic') }}</el-button>
@@ -72,54 +72,54 @@
fit
highlight-current-row
style="width: 100%;">
- <el-table-column label="Topic" min-width="50px" align="center">
+ <el-table-column :label="$t('topic.label')" min-width="50px" align="center">
<template slot-scope="scope">
<router-link :to="scope.row.topicLink" class="link-type">
<span>{{ scope.row.topic }}</span>
</router-link>
</template>
</el-table-column>
- <el-table-column label="Partitions" min-width="30px" align="center">
+ <el-table-column :label="$t('topic.partitionNumber')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.partitions }}</span>
</template>
</el-table-column>
- <el-table-column label="Persistent" min-width="30px" align="center">
+ <el-table-column :label="$t('topic.persistent')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.persistent }}</span>
</template>
</el-table-column>
- <el-table-column label="Producers" min-width="30px" align="center">
+ <el-table-column :label="$t('topic.producer.producerNumber')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.producers }}</span>
</template>
</el-table-column>
- <el-table-column label="Subscriptions" min-width="30px" align="center">
+ <el-table-column :label="$t('topic.subscription.subscriptionNumber')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.subscriptions }}</span>
</template>
</el-table-column>
- <el-table-column label="In - msg/s" min-width="30px" align="center">
+ <el-table-column :label="$t('common.inMsg')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.inMsg }}</span>
</template>
</el-table-column>
- <el-table-column label="Out - msg/s" min-width="30px" align="center">
+ <el-table-column :label="$t('common.outMsg')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.outMsg }}</span>
</template>
</el-table-column>
- <el-table-column label="In - bytes/s" min-width="30px" align="center">
+ <el-table-column :label="$t('common.inBytes')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.inBytes }}</span>
</template>
</el-table-column>
- <el-table-column label="Out - bytes/s" min-width="30px" align="center">
+ <el-table-column :label="$t('common.outBytes')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.outBytes }}</span>
</template>
</el-table-column>
- <el-table-column label="Storage Size" min-width="30px" align="center">
+ <el-table-column :label="$t('common.storageSize')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.storageSize }}</span>
</template>
@@ -128,26 +128,26 @@
</el-col>
</el-row>
</el-tab-pane>
- <el-tab-pane label="POLICIES" name="policies">
- <h4>Clusters</h4>
+ <el-tab-pane :label="$t('tabs.policies')" name="policies">
+ <h4>{{ $t('namespace.policy.cluster') }}</h4>
<hr class="split-line">
<div class="component-item">
<div class="section-title">
- <span>Replicated Clusters</span>
+ <span>{{ $t('namespace.policy.replicatedCluster') }}</span>
<el-tooltip :content="replicatedClustersContent" class="item" effect="dark" placement="top">
<i class="el-icon-info"/>
</el-tooltip>
</div>
<el-select
v-model="replicationClustersValue"
+ :placeholder="$t('cluster.selectClusterMessage')"
style="width:500px;margin-top:20px"
multiple
- placeholder="Please Select Cluster"
@change="handleReplicationsClusters()">
<el-option v-for="item in replicationClustersOptions" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</div>
- <h4>Authorization
+ <h4>{{ $t('namespace.policy.authorization') }}
<el-tooltip :content="authorizationContent" class="item" effect="dark" placement="top">
<i class="el-icon-info"/>
</el-tooltip>
@@ -166,8 +166,8 @@
</div>
<el-select
v-model="roleMap[tag]"
+ :placeholder="$t('namespace.policy.selectRole')"
multiple
- placeholder="Please Select Options"
style="width:300px;"
@change="handleChangeOptions()">
<el-option
@@ -177,7 +177,7 @@
:value="item.value"
style="width:300px"/>
</el-select>
- <el-button @click.prevent="handleClose(tag)">删除</el-button>
+ <el-button @click.prevent="handleClose(tag)">{{ $t('namespace.policy.deleteRole') }}</el-button>
</el-tag>
<el-form-item style="margin-top:30px">
<el-input
@@ -190,14 +190,14 @@
@keyup.enter.native="handleInputConfirm"
@blur="handleInputConfirm"
/>
- <el-button @click="showInput()">Add Role</el-button>
+ <el-button @click="showInput()">{{ $t('namespace.policy.addRole') }}</el-button>
<!-- <el-button @click="revokeAllRole()">Revoke All</el-button> -->
</el-form-item>
</el-form>
- <h4>Subscription Authentication</h4>
+ <h4>{{ $t('namespace.policy.subscriptionAuthentication') }}</h4>
<hr class="split-line">
<div class="section-title">
- <span>Subscription Authentication Mode</span>
+ <span>{{ $t('namespace.policy.subscriptionAuthenticationMode') }}</span>
<el-tooltip :content="subscriptionAuthenticationModeContent" class="item" effect="dark" placement="top">
<i class="el-icon-info"/>
</el-tooltip>
@@ -213,60 +213,60 @@
:label="item.label"
:value="item.value"/>
</el-select>
- <h4>Storage</h4>
+ <h4>{{ $t('namespace.policy.storage') }}</h4>
<hr class="split-line">
<div class="section-title">
- <span>Replication Factor</span>
+ <span>{{ $t('namespace.policy.replicationFactor') }}</span>
<el-tooltip :content="replicationFactorContent" class="item" effect="dark" placement="top">
<i class="el-icon-info"/>
</el-tooltip>
</div>
<el-form :inline="true" :model="form" :rules="rules">
<el-form-item prop="ensembelSize">
- <span>Ensemble Size</span>
+ <span>{{ $t('namespace.policy.ensembelSize') }}</span>
<md-input
v-model="form.ensembleSize"
+ :placeholder="$t('namespace.policy.inputEnsemble')"
class="md-input-style"
name="ensembelSize"
- placeholder="Please input Ensemble"
@keyup.enter.native="handlePersistence"/>
</el-form-item>
<el-form-item prop="writeQuorumSize">
- <span>Write Quorum Size</span>
+ <span>{{ $t('namespace.policy.writeQuorumSize') }}</span>
<md-input
v-model="form.writeQuorumSize"
+ :placeholder="$t('namespace.policy.inputWriteQuorumSize')"
class="md-input-style"
name="writeQuorumSize"
- placeholder="Please input Write Quorum Size"
@keyup.enter.native="handlePersistence"/>
</el-form-item>
<el-form-item prop="readQuorumSize">
- <span>Read Quorum Size</span>
+ <span>{{ $t('namespace.policy.readQuorumSize') }}</span>
<md-input
v-model="form.readQuorumSize"
+ :placeholder="$t('namespace.policy.inputReadQuorumSize')"
class="md-input-style"
name="readQuorumSize"
- placeholder="Please input Read Quorum Size"
@keyup.enter.native="handlePersistence"/>
</el-form-item>
</el-form>
<el-form :inline="true" :model="form" :rules="rules">
<el-form-item prop="markDeleteMaxRate">
- <span>Mark Delete Rate</span>
+ <span>{{ $t('namespace.policy.markDeleteRate') }}</span>
<el-tooltip :content="markDeleteRateContent" class="item" effect="dark" placement="top">
<i class="el-icon-info"/>
</el-tooltip>
<md-input
v-model="form.markDeleteMaxRate"
+ :placeholder="$t('namespace.policy.inputDeleteMaxRate')"
class="md-input-style"
name="markDeleteMaxRate"
- placeholder="Please input Delete Max Rate"
@keyup.enter.native="handlePersistence"/>
</el-form-item>
</el-form>
<el-form :inline="true" :model="form" :rules="rules">
<el-form-item prop="encryptionRequire">
- <span>Encryption Require</span>
+ <span>{{ $t('namespace.policy.encryptionRequire') }}</span>
<el-tooltip :content="encryptionRequireContent" class="item" effect="dark" placement="top">
<i class="el-icon-info"/>
</el-tooltip>
@@ -276,12 +276,12 @@
size="medium"
style="margin-top:8px;width:300px"
@change="handleEncryption()">
- <el-radio label="Enabled"/>
- <el-radio label="Disabled"/>
+ <el-radio :label="$t('common.enabled')"/>
+ <el-radio :label="$t('common.disabled')"/>
</el-radio-group>
</el-form-item>
<el-form-item prop="deduplication">
- <span>Deduplication</span>
+ <span>{{ $t('namespace.policy.deduplication') }}</span>
<el-tooltip :content="deduplicationContent" class="item" effect="dark" placement="top">
<i class="el-icon-info"/>
</el-tooltip>
@@ -291,35 +291,35 @@
size="medium"
style="margin-top:8px;width:300px"
@change="handleDeduplication()">
- <el-radio label="Enabled"/>
- <el-radio label="Disabled"/>
+ <el-radio :label="$t('common.enabled')"/>
+ <el-radio :label="$t('common.disabled')"/>
</el-radio-group>
</el-form-item>
</el-form>
- <h4>Backlog</h4>
+ <h4>{{ $t('namespace.policy.backlog') }}</h4>
<hr class="split-line">
<el-form :inline="true" :model="form" :rules="rules">
<el-form-item prop="backlogQuotasLimit">
- <span>Backlog Quotas Limit</span>
+ <span>{{ $t('namespace.policy.backlogQuotasLimit') }}</span>
<el-tooltip :content="backlogQuotasLimitContent" class="item" effect="dark" placement="top">
<i class="el-icon-info"/>
</el-tooltip>
<md-input
v-model="form.backlogQuotasLimit"
+ :placeholder="$t('namespace.policy.inputBacklogQuotasLimit')"
class="md-input-style"
name="backlogQuotasLimit"
- placeholder="Please input Backlog Quotas Limit"
@keyup.enter.native="handleBacklogQuota"/>
</el-form-item>
<el-form-item style="width:300px">
- <span>Backlog Retention Policy</span>
+ <span>{{ $t('namespace.policy.backlogRententionPolicy') }}</span>
<el-tooltip :content="backlogRententionPolicyContent" class="item" effect="dark" placement="top">
<i class="el-icon-info"/>
</el-tooltip>
<br>
<el-select
v-model="form.backlogRententionPolicy"
- placeholder="Please select backlog rentention policy"
+ :placeholder="$t('namespace.policy.inputBacklogRententionPolicyContent')"
style="margin-top:8px;width:400px"
@change="handleBacklogQuota()">
<el-option
@@ -330,18 +330,18 @@
</el-select>
</el-form-item>
</el-form>
- <h4>Schema</h4>
+ <h4>{{ $t('namespace.policy.schema') }}</h4>
<hr class="split-line">
<el-form :inline="true" :model="form" :rules="rules">
<el-form-item prop="autoUpdateStrategy">
- <span>AutoUpdate Strategy</span>
+ <span>{{ $t('namespace.policy.autoUpdateStrategy') }}</span>
<el-tooltip :content="autoUpdateStrategyContent" class="item" effect="dark" placement="top">
<i class="el-icon-info"/>
</el-tooltip>
<br>
<el-select
v-model="form.autoUpdateStrategy"
- placeholder="Please select backlog autoUpdate strategy"
+ :placeholder="$t('namespace.policy.inputAutoUpdateStrategy')"
style="margin-top:8px;width:300px"
@change="handleSchemaAutoUpdateStrategy()">
<el-option
@@ -352,7 +352,7 @@
</el-select>
</el-form-item>
<el-form-item prop="schemaValidationEnforced">
- <span>Schema Validation Enforced</span>
+ <span>{{ $t('namespace.policy.schemaValidationEnforced') }}</span>
<el-tooltip :content="schemaValidationEnforcedContent" class="item" effect="dark" placement="top">
<i class="el-icon-info"/>
</el-tooltip>
@@ -362,263 +362,263 @@
size="medium"
style="margin-top:8px;width:300px"
@change="handleSchemaValidationEnforced()">
- <el-radio label="Enabled"/>
- <el-radio label="Disabled"/>
+ <el-radio :label="$t('common.enabled')"/>
+ <el-radio :label="$t('common.disabled')"/>
</el-radio-group>
</el-form-item>
</el-form>
- <h4>Cleanup Policy</h4>
+ <h4>{{ $t('namespace.policy.cleanupPolicy') }}</h4>
<hr class="split-line">
<el-form :inline="true" :model="form" :rules="rules">
<el-form-item prop="messageTTL">
- <span>Message TTL(Unit Second)</span>
+ <span>{{ $t('namespace.policy.messageTTL') }}</span>
<el-tooltip :content="messageTTLContent" class="item" effect="dark" placement="top">
<i class="el-icon-info"/>
</el-tooltip>
<md-input
v-model="form.messageTTL"
+ :placeholder="$t('namespace.policy.inputMessageTTL')"
class="md-input-style"
name="messageTTL"
- placeholder="Please input Backlog Quotas Limit"
@keyup.enter.native="handleMessageTTL"/>
</el-form-item>
</el-form>
<el-form :inline="true" :model="form" :rules="rules">
<el-form-item prop="retentionSize">
- <span>Retention Size</span>
+ <span>{{ $t('namespace.policy.retentionSize') }}</span>
<el-tooltip :content="retentionSizeContent" class="item" effect="dark" placement="top">
<i class="el-icon-info"/>
</el-tooltip>
<md-input
v-model="form.retentionSize"
+ :placeholder="$t('namespace.policy.inputRententionSize')"
class="md-input-style"
name="retentionSize"
- placeholder="Please input retention size"
@keyup.enter.native="handleRetention"/>
</el-form-item>
<el-form-item prop="retentionTime">
- <span>Retention Time(Unit Minutes)</span>
+ <span>{{ $t('namespace.policy.retentionTime') }}</span>
<el-tooltip :content="retentionTimeContent" class="item" effect="dark" placement="top">
<i class="el-icon-info"/>
</el-tooltip>
<md-input
v-model="form.retentionTime"
+ :placeholder="$t('namespace.policy.inputRetentionTime')"
class="md-input-style"
name="retentionTime"
- placeholder="Please input Retention Time"
@keyup.enter.native="handleRetention"/>
</el-form-item>
</el-form>
<el-form :inline="true" :model="form" :rules="rules">
<el-form-item prop="compactionThreshold">
- <span>Compaction Threshold</span>
+ <span>{{ $t('namespace.policy.compactionThreshold') }}</span>
<el-tooltip :content="compactionThresholdContent" class="item" effect="dark" placement="top">
<i class="el-icon-info"/>
</el-tooltip>
<md-input
v-model="form.compactionThreshold"
+ :placeholder="$t('namespace.policy.inputCompactionThreshold')"
class="md-input-style"
name="compactionThreshold"
- placeholder="Please input retention size"
@keyup.enter.native="handleCompactionThreshold"/>
</el-form-item>
</el-form>
<el-form :inline="true" :model="form" :rules="rules">
<el-form-item prop="offloadThreshold">
- <span>Offload Threshold</span>
+ <span>{{ $t('namespace.policy.offloadThreshold') }}</span>
<el-tooltip :content="offloadThresholdContent" class="item" effect="dark" placement="top">
<i class="el-icon-info"/>
</el-tooltip>
<md-input
v-model="form.offloadThreshold"
+ :placeholder="$t('namespace.policy.inputOffloadThreshold')"
class="md-input-style"
name="offloadThreshold"
- placeholder="Please input Offload Threshold"
@keyup.enter.native="handleOffloadThreshold"/>
</el-form-item>
<el-form-item prop="offloadDeletionLag">
- <span>Offload Deletion Lag</span>
+ <span>{{ $t('namespace.policy.offloadDeletionLag') }}</span>
<el-tooltip :content="offloadDeletionLagContent" class="item" effect="dark" placement="top">
<i class="el-icon-info"/>
</el-tooltip>
<md-input
v-model="form.offloadDeletionLag"
+ :placeholder="$t('namespace.policy.inputOffloadDeleteLag')"
class="md-input-style"
name="offloadDeletionLag"
- placeholder="Please input Retention Time"
@keyup.enter.native="handleOffloadDeletionLag"/>
</el-form-item>
</el-form>
- <h4>Throttling</h4>
+ <h4>{{ $t('namespace.policy.throttling') }}</h4>
<hr class="split-line">
<el-form :inline="true" :model="form" :rules="rules">
<el-form-item prop="maxProducersPerTopic">
- <span>Max Producers Per Topic</span>
+ <span>{{ $t('namespace.policy.maxProducersPerTopic') }}</span>
<el-tooltip :content="maxProducersPerTopicContent" class="item" effect="dark" placement="top">
<i class="el-icon-info"/>
</el-tooltip>
<md-input
v-model="form.maxProducersPerTopic"
+ :placeholder="$t('namespace.policy.inputMaxProducersPerTopic')"
class="md-input-style"
name="maxProducersPerTopic"
- placeholder="Please input max Producers"
@keyup.enter.native="handleMaxProducersPerTopic"/>
</el-form-item>
<el-form-item prop="maxConsumersPerTopic">
- <span>Max Consumers Per Topic</span>
+ <span>{{ $t('namespace.policy.maxConsumersPerTopic') }}</span>
<el-tooltip :content="maxConsumersPerTopicContent" class="item" effect="dark" placement="top">
<i class="el-icon-info"/>
</el-tooltip>
<md-input
v-model="form.maxConsumersPerTopic"
+ :placeholder="$t('namespace.policy.inputMaxConsumersForTopic')"
class="md-input-style"
name="maxConsumersPerTopic"
- placeholder="Please input max Consumers"
@keyup.enter.native="handleMaxConsumersPerTopic"/>
</el-form-item>
</el-form>
<el-form :inline="true" :model="form" :rules="rules" @submit.native.prevent>
<el-form-item prop="maxConsumerPerSub">
- <span>Max Consumers Per Subscription</span>
+ <span>{{ $t('namespace.policy.maxConsumerPerSubscription') }}</span>
<el-tooltip :content="maxConsumerPerSubContent" class="item" effect="dark" placement="top">
<i class="el-icon-info"/>
</el-tooltip>
<md-input
v-model="form.maxConsumerPerSub"
+ :placeholder="$t('namespace.policy.inputMaxConsumersForSub')"
class="md-input-style"
name="maxConsumerPerSub"
- placeholder="Please input max Consumers"
@keyup.enter.native="handleMaxConsuemrsPerSubscription"/>
</el-form-item>
</el-form>
- <h4>Dispatch Rate</h4>
+ <h4>{{ $t('namespace.policy.dispatchRate') }}</h4>
<hr class="split-line">
- <span>Dispatch Rate Per Topic</span>
+ <span>{{ $t('namespace.policy.dispatchRatePerTopic') }}</span>
<el-tooltip :content="dispatchRatePerTopicContent" class="item" effect="dark" placement="top">
<i class="el-icon-info"/>
</el-tooltip>
<el-form :inline="true" :model="form" :rules="rules">
<el-form-item prop="dispatchRatePerTopicBytes">
- <span>bytes/second</span>
+ <span>{{ $t('namespace.policy.dispatchRatePerTopicBytes') }}</span>
<md-input
v-model="form.dispatchRatePerTopicBytes"
+ :placeholder="$t('namespace.policy.inputDispatchRateBytes')"
class="md-input-style"
name="dispatchRatePerTopicBytes"
- placeholder="Please input dispatch rate"
@keyup.enter.native="handleDispatchRatePerTopic"/>
</el-form-item>
<el-form-item prop="dispatchRatePerTopicMessage">
- <span>message/second</span>
+ <span>{{ $t('namespace.policy.dispatchRatePerTopicMessage') }}</span>
<md-input
v-model="form.dispatchRatePerTopicMessage"
+ :placeholder="$t('namespace.policy.inputDispatchRatePerTopicMessage')"
class="md-input-style"
name="dispatchRatePerTopicMessage"
- placeholder="Please input dispatch rate"
@keyup.enter.native="handleDispatchRatePerTopic"/>
</el-form-item>
<el-form-item prop="dispatchRatePerTopicPeriod">
- <span>period(Unit second)</span>
+ <span>{{ $t('namespace.policy.dispatchRatePerTopicPeriod') }}</span>
<md-input
v-model="form.dispatchRatePerTopicPeriod"
+ :placeholder="$t('namespace.policy.inputDispatchPerTopicPerPeriod')"
class="md-input-style"
name="dispatchRatePerTopicPeriod"
- placeholder="Please input dispatch rate"
@keyup.enter.native="handleDispatchRatePerTopic"/>
</el-form-item>
</el-form>
- <span>Dispatch Rate Per Subscription</span>
+ <span>{{ $t('namespace.policy.dispatchRateForSub') }}</span>
<el-tooltip :content="dispatchRatePerSubContent" class="item" effect="dark" placement="top">
<i class="el-icon-info"/>
</el-tooltip>
<el-form :inline="true" :model="form" :rules="rules" @submit.native.prevent>
<el-form-item prop="dispatchRatePerSubBytes">
- <span>bytes/second</span>
+ <span>{{ $t('namespace.policy.dispatchRatePerSubBytes') }}</span>
<md-input
v-model="form.dispatchRatePerSubBytes"
+ :placeholder="$t('namespace.policy.inputDispatchRatePerSubBytes')"
class="md-input-style"
name="dispatchRatePerSubBytes"
- placeholder="Please input dispatch rate"
@keyup.enter.native="handleDispatchRatePerSub"/>
</el-form-item>
<el-form-item prop="dispatchRatePerSubMessage">
- <span>message/second</span>
+ <span>{{ $t('namespace.policy.dispatchRatePerSubMessage') }}</span>
<md-input
v-model="form.dispatchRatePerSubMessage"
+ :placeholder="$t('namespace.policy.inputDispatchRatePerSubMessage')"
class="md-input-style"
name="dispatchRatePerSubMessage"
- placeholder="Please input dispatch rate"
@keyup.enter.native="handleDispatchRatePerSub"/>
</el-form-item>
<el-form-item prop="dispatchRatePerSubPeriod">
- <span>period(Unit Second)</span>
+ <span>{{ $t('namespace.policy.dispatchRatePerSubPeriod') }}</span>
<md-input
v-model="form.dispatchRatePerSubPeriod"
+ :placeholder="$t('namespace.policy.inputDispatchRatePerSubPeriod')"
class="md-input-style"
name="dispatchRatePerSubPeriod"
- placeholder="Please input dispatch rate"
@keyup.enter.native="handleDispatchRatePerSub"/>
</el-form-item>
</el-form>
- <span>Subscribe Rate Per Consumer</span>
+ <span>{{ $t('namespace.policy.subscribeRatePerConsumer') }}</span>
<el-tooltip :content="subscribeRatePerConsumerContent" class="item" effect="dark" placement="top">
<i class="el-icon-info"/>
</el-tooltip>
<el-form :inline="true" :model="form" :rules="rules" @submit.native.prevent>
<el-form-item prop="subscribeRatePerConsumerSub">
- <span>message/second</span>
+ <span>{{ $t('namespace.policy.subscribeRatePerConsumerSub') }}</span>
<md-input
v-model="form.subscribeRatePerConsumerSub"
+ :placeholder="$t('namespace.policy.inputSubscribeRate')"
class="md-input-style"
name="subscribeRatePerConsumerSub"
- placeholder="Please input subscribe rate"
@keyup.enter.native="handleSubscribeRate"/>
</el-form-item>
<el-form-item prop="subscribeRatePerConsumerPeriod">
- <span>period(Unit Second)</span>
+ <span>{{ $t('namespace.policy.subscribeRatePerConsumerPeriod') }}</span>
<md-input
v-model="form.subscribeRatePerConsumerPeriod"
+ :placeholder="$t('namespace.policy.inputSubscribeRate')"
class="md-input-style"
name="subscribeRatePerConsumerPeriod"
- placeholder="Please input subscribe rate"
@keyup.enter.native="handleSubscribeRate"/>
</el-form-item>
</el-form>
- <h4>Anti Affinity</h4>
+ <h4>{{ $t('namespace.policy.antiAffinity') }}</h4>
<hr class="split-line">
<el-form :inline="true" :model="form" :rules="rules" @submit.native.prevent>
<el-form-item prop="antiAffinityGroup">
- <span>Anti Affinity Group</span>
+ <span>{{ $t('namespace.policy.antiAffinityGroup') }}</span>
<el-tooltip :content="antiAffinityGroupContent" class="item" effect="dark" placement="top">
<i class="el-icon-info"/>
</el-tooltip>
<md-input
v-model="form.antiAffinityGroup"
+ :placeholder="$t('namespace.policy.inputAntiAffinityGroup')"
class="md-input-style"
name="antiAffinityGroup"
- placeholder="Please input Anti Affinity Group"
@keyup.enter.native="handleAntiAffinityGroup"/>
</el-form-item>
</el-form>
- <h4 style="color:#E57470">Danger Zone</h4>
+ <h4 style="color:#E57470">{{ $t('common.dangerZone') }}</h4>
<hr class="danger-line">
- <el-button type="danger" class="button" @click="handleDeleteNamespace">Delete Namespace</el-button>
+ <el-button type="danger" class="button" @click="handleDeleteNamespace">{{ $t('namespace.deleteNamespace') }}</el-button>
</el-tab-pane>
</el-tabs>
<el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible" width="30%">
<el-form ref="form" :rules="rules" :model="form" label-position="top">
<div v-if="dialogStatus==='create'">
- <el-form-item label="Topic Domain">
+ <el-form-item :label="$t('topic.topicDomain')">
<el-radio-group
v-model="form.isPersistent"
size="medium">
- <el-radio label="Persistent"/>
- <el-radio label="Non-persistent"/>
+ <el-radio :label="$t('topic.persistent')"/>
+ <el-radio :label="$t('topic.nonPersistent')"/>
</el-radio-group>
</el-form-item>
- <el-form-item :label="$t('table.topic')" prop="topic">
+ <el-form-item :label="$t('topic.name')" prop="topic">
<el-input v-model="form.topic"/>
</el-form-item>
- <el-form-item :label="$t('table.partition')" prop="partition">
+ <el-form-item :label="$t('topic.partition')" prop="partition">
<el-input v-model="form.partitions"/>
</el-form-item>
<el-form-item>
@@ -627,7 +627,7 @@
</el-form-item>
</div>
<el-form-item v-if="dialogStatus==='delete'">
- <h4>Are you sure you want to delete this namespace?</h4>
+ <h4>{{ $t('namespace.deleteNamespaceMessage') }}</h4>
</el-form-item>
<el-form-item v-if="dialogStatus==='delete'">
<el-button type="primary" @click="deleteNamespace()">{{ $t('table.confirm') }}</el-button>
@@ -703,7 +703,7 @@
inBytes: 0,
outBytes: 0
}],
- replicatedClustersContent: 'This is Allowed Clusters',
+ replicatedClustersContent: this.$i18n.t('namespace.replicatedClustersContent'),
replicationClustersValue: [],
replicationClustersOptions: [],
dynamicValidateForm: {
@@ -728,9 +728,9 @@
value: 'functions',
label: 'functions'
}],
- authorizationContent: 'This is AuthorizationContent',
+ authorizationContent: this.$i18n.t('namespace.policy.authorizationContent'),
subscriptionAuthenticationMode: '',
- subscriptionAuthenticationModeContent: 'This is subscriptionAuthenticationMode',
+ subscriptionAuthenticationModeContent: this.$i18n.t('namespace.policy.subscriptionAuthenticationModeContent'),
subscriptionAuthenticationModeOptions: [{
value: 'None',
label: 'None'
@@ -738,7 +738,7 @@
value: 'Prefix',
label: 'Prefix'
}],
- replicationFactorContent: 'This is replicationFactorContent',
+ replicationFactorContent: this.$i18n.t('namespace.policy.replicationFactorContent'),
form: {
ensembelSize: '',
writeQuorumSize: '',
@@ -772,9 +772,9 @@
topic: [{ required: true, message: 'topic is required', trigger: 'blur' }]
// ensembelSize: [{ required: true, message: 'EnsembelSize is greater more than 0', trigger: 'blur' }]
},
- markDeleteRateContent: 'This is markDeleteRateContent',
- backlogQuotasLimitContent: 'This is backlogQuotasLimitContent',
- backlogRententionPolicyContent: 'This is backlogRententionPolicyContent',
+ markDeleteRateContent: this.$i18n.t('namespace.policy.markDeleteRateContent'),
+ backlogQuotasLimitContent: this.$i18n.t('namespace.policy.backlogQuotasLimitContent'),
+ backlogRententionPolicyContent: this.$i18n.t('namespace.policy.backlogRententionPolicyContent'),
backlogRententionPolicyRadio: 'consumer_backlog_eviction',
backlogRententionPolicyOption: [{
value: 'consumer_backlog_eviction',
@@ -786,7 +786,7 @@
value: 'producer_request_hold',
lable: 'producer_request_hold'
}],
- encryptionRequireContent: 'This is encryptionRequireContent',
+ encryptionRequireContent: this.$i18n.t('namespace.policy.encryptionRequireContent'),
encryptionRequireOption: [{
value: 'Enabled',
label: 'Enabled'
@@ -794,7 +794,7 @@
value: 'Disabled',
label: 'Disabled'
}],
- deduplicationContent: 'This is deduplicationContent',
+ deduplicationContent: this.$i18n.t('namespace.policy.deduplicationContent'),
deduplication: '',
deduplicationOption: [{
value: 'Enabled',
@@ -803,7 +803,7 @@
value: 'Disabled',
label: 'Disabled'
}],
- autoUpdateStrategyContent: 'This is schemaValidationEnforced',
+ autoUpdateStrategyContent: this.$i18n.t('namespace.policy.autoUpdateStrategyContent'),
autoUpdateStrategyOption: [{
value: 'Full',
label: 'Full'
@@ -829,21 +829,21 @@
value: 'FullTransitive',
label: 'FullTransitive'
}],
- schemaValidationEnforcedContent: 'This is schemaValidationEnforcedContent',
+ schemaValidationEnforcedContent: this.$i18n.t('namespace.policy.schemaValidationEnforcedContent'),
schemaValidationEnforced: '',
- messageTTLContent: 'This is messageTTLContent',
- retentionSizeContent: 'This is retentionSizeContent',
- retentionTimeContent: 'This is retentionTimeContent',
- compactionThresholdContent: 'This is compactionThresholdContent',
- offloadThresholdContent: 'This is offloadThresholdContent',
- offloadDeletionLagContent: 'This is offloadDeletionLagContent',
- maxProducersPerTopicContent: 'This is maxProducersPerTopicContent',
- maxConsumersPerTopicContent: 'This is maxConsumersPerTopicContent',
- maxConsumerPerSubContent: 'This is maxConsumerPerSubContent',
- dispatchRatePerTopicContent: 'This is dispatchRatePerTopicContent',
- dispatchRatePerSubContent: 'This is dispatchRatePerSubContent',
- subscribeRatePerConsumerContent: 'This is subscribeRatePerConsumerContent',
- antiAffinityGroupContent: 'This is antiAffinityGroupContent',
+ messageTTLContent: this.$i18n.t('namespace.policy.messageTTLContent'),
+ retentionSizeContent: this.$i18n.t('namespace.policy.retentionSizeContent'),
+ retentionTimeContent: this.$i18n.t('namespace.policy.retentionTimeContent'),
+ compactionThresholdContent: this.$i18n.t('namespace.policy.compactionThresholdContent'),
+ offloadThresholdContent: this.$i18n.t('namespace.policy.offloadThresholdContent'),
+ offloadDeletionLagContent: this.$i18n.t('namespace.policy.offloadDeletionLagContent'),
+ maxProducersPerTopicContent: this.$i18n.t('namespace.policy.maxProducersPerTopicContent'),
+ maxConsumersPerTopicContent: this.$i18n.t('namespace.policy.maxConsumersPerTopicContent'),
+ maxConsumerPerSubContent: this.$i18n.t('namespace.policy.maxConsumerPerSubContent'),
+ dispatchRatePerTopicContent: this.$i18n.t('namespace.policy.dispatchRatePerTopicContent'),
+ dispatchRatePerSubContent: this.$i18n.t('namespace.policy.dispatchRatePerSubContent'),
+ subscribeRatePerConsumerContent: this.$i18n.t('namespace.policy.subscribeRatePerConsumerContent'),
+ antiAffinityGroupContent: this.$i18n.t('namespace.policy.antiAffinityGroupContent'),
tableKey: 0,
topicsListLoading: true,
topicsTableKey: 0,
@@ -863,10 +863,10 @@
dialogFormVisible: false,
dialogStatus: '',
textMap: {
- create: 'Create Topic'
+ create: this.$i18n.t('topic.newTopic')
},
currentTabName: '',
- bundleInfoContent: 'This is bundleInfoContent'
+ bundleInfoContent: this.$i18n.t('bundleInfoContent')
}
},
created() {
diff --git a/front-end/src/views/management/subscriptions/subscription.vue b/front-end/src/views/management/subscriptions/subscription.vue
index 039fb15..9a0c2fa 100644
--- a/front-end/src/views/management/subscriptions/subscription.vue
+++ b/front-end/src/views/management/subscriptions/subscription.vue
@@ -2,27 +2,27 @@
<div class="app-container">
<div class="createPost-container">
<el-form :inline="true" :model="postForm" class="form-container">
- <el-form-item label="Tenant">
+ <el-form-item :label="$t('tenant.label')">
<el-select v-model="postForm.tenant" placeholder="select tenant" style="width: 150px;" @change="getNamespacesList(postForm.tenant)">
<el-option v-for="(item,index) in tenantsListOptions" :key="item+index" :label="item" :value="item"/>
</el-select>
</el-form-item>
- <el-form-item label="Namespace">
+ <el-form-item :label="$t('namespace.label')">
<el-select v-model="postForm.namespace" placeholder="select namespace" style="width: 150px;" @change="getTopicsList()">
<el-option v-for="(item,index) in namespacesListOptions" :key="item+index" :label="item" :value="item"/>
</el-select>
</el-form-item>
- <el-form-item label="Topic">
+ <el-form-item :label="$t('topic.label')">
<el-select v-model="postForm.topic" placeholder="select topic" style="width: 150px;" @change="generatePartitions()">
<el-option v-for="(item,index) in topicsListOptions" :key="item+index" :label="item" :value="item"/>
</el-select>
</el-form-item>
- <el-form-item label="Partition">
+ <el-form-item :label="$t('topic.partition')">
<el-select v-model="postForm.partition" :disabled="partitionDisabled" placeholder="select partition" style="width: 150px;" @change="getSubscriptionsList()">
<el-option v-for="(item,index) in partitionsListOptions" :key="item+index" :label="item" :value="item"/>
</el-select>
</el-form-item>
- <el-form-item label="Subscription">
+ <el-form-item :label="$t('topic.subscription.Subscription')">
<el-select v-model="postForm.subscription" placeholder="select subscription" style="width: 150px;" @change="getSubscriptionsInfo()">
<el-option v-for="(item,index) in subscriptionsListOptions" :key="item+index" :label="item" :value="item"/>
</el-select>
@@ -30,7 +30,7 @@
</el-form>
</div>
<el-tabs v-model="topActiveName" @tab-click="handleClick">
- <el-tab-pane label="Consumers" name="consumers">
+ <el-tab-pane :label="$t('topic.consumer.consumers')" name="consumers">
<el-row :gutter="24">
<el-col :xs="{span: 24}" :sm="{span: 24}" :md="{span: 24}" :lg="{span: 24}" :xl="{span: 24}">
<el-table
@@ -41,32 +41,32 @@
fit
highlight-current-row
style="width: 100%;">
- <el-table-column label="Consumer Name" min-width="30px" align="center">
+ <el-table-column :label="$t('topic.consumer.name')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.consumerName }}</span>
</template>
</el-table-column>
- <el-table-column label="Out - msg/s" min-width="30px" align="center">
+ <el-table-column :label="$t('common.outMsg')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.outMsg }}</span>
</template>
</el-table-column>
- <el-table-column label="Out - bytes/s" min-width="30px" align="center">
+ <el-table-column :label="$t('common.outBytes')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.outBytes }}</span>
</template>
</el-table-column>
- <el-table-column label="Avg Msg Size" min-width="30px" align="center">
+ <el-table-column :label="$t('topic.consumer.avgMsgSize')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.avgMsgSize }}</span>
</template>
</el-table-column>
- <el-table-column label="Address" min-width="30px" align="center">
+ <el-table-column :label="$t('topic.consumer.address')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.address }}</span>
</template>
</el-table-column>
- <el-table-column label="Since" min-width="30px" align="center">
+ <el-table-column :label="$t('topic.consumer.since')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.since }}</span>
</template>
@@ -75,7 +75,7 @@
</el-col>
</el-row>
</el-tab-pane>
- <el-tab-pane label="Backlog Operation" name="backlogOperation">
+ <el-tab-pane :label="$t('topic.backlogOpeartion')" name="backlogOperation">
<el-tabs v-model="leftActiveName" :tab-position="tabPosition" @tab-click="handleLeftTabClick">
<!-- <el-tab-pane label="INSPECT" name="inspect">
<el-form :inline="true" :model="form">
@@ -109,50 +109,50 @@
</el-col>
</el-row>
</el-tab-pane> -->
- <el-tab-pane label="SKIP" name="skip">
+ <el-tab-pane :label="$t('topic.subscription.skip')" name="skip">
<el-form :inline="true" :model="form">
- <el-button type="primary" @click="handleSkipMessages">Skip</el-button>
+ <el-button type="primary" @click="handleSkipMessages">{{ $t('topic.subscription.skip') }}</el-button>
<el-form-item>
<el-input v-model="form.skipNumMessages" placeholder="messages"/>
</el-form-item>
- <span>messages</span>
+ <span>{{ $t('topic.subscription.skipMessage') }}</span>
</el-form>
</el-tab-pane>
- <el-tab-pane label="EXPIRE" name="expire">
+ <el-tab-pane :label="$t('topic.subscription.expire')" name="expire">
<el-form :inline="true" :model="form">
- <el-button type="primary" @click="handleExpireMessages">Expire</el-button>
+ <el-button type="primary" @click="handleExpireMessages">{{ $t('topic.subscription.expire') }}</el-button>
<el-form-item>
<el-input v-model="form.expireNumMessages" placeholder="messages"/>
</el-form-item>
- <span>messages older than timestamp (in seconds)</span>
+ <span>{{ $t('topic.subscription.expireMessage') }}</span>
</el-form>
</el-tab-pane>
- <el-tab-pane label="CLEAR" name="clear">
+ <el-tab-pane :label="$t('topic.subscription.clear')" name="clear">
<el-form :inline="true" :model="form">
- <el-button type="primary" @click="handleClearBacklog">Clear</el-button>
- <span>the backlog</span>
+ <el-button type="primary" @click="handleClearBacklog">{{ $t('topic.subscription.clear') }}</el-button>
+ <span>{{ $t('topic.subscription.clearMessage') }}</span>
</el-form>
</el-tab-pane>
- <el-tab-pane label="RESET" name="reset">
+ <el-tab-pane :label="$t('topic.subscription.reset')" name="reset">
<el-form :inline="true" :model="form">
- <el-button type="primary" @click="handleResetCursorByTime">Reset By Time</el-button>
+ <el-button type="primary" @click="handleResetCursorByTime">{{ $t('topic.subscription.resetByTimeMessage') }}</el-button>
<span>The cursor to</span>
<el-form-item>
<el-input v-model="form.minutes" placeholder="minutes"/>
</el-form-item>
- <span>mins</span>
+ <span>{{ $t('topic.subscription.mins') }}</span>
<br>
- <el-button type="primary" @click="handleResetCursorByMessageId">Reset By Message Id</el-button>
- <span>Message ID</span>
+ <el-button type="primary" @click="handleResetCursorByMessageId">{{ $t('topic.subscription.resetById') }}</el-button>
+ <span>{{ $t('topic.subscription.messageId') }}</span>
<el-form-item>
- <el-select v-model="form.ledgerValue" style="width:150px" placeholder="LedgerId">
+ <el-select v-model="form.ledgerValue" :placeholder="$t('topic.subscription.ledgerId')" style="width:150px">
<el-option
v-for="item in ledgerOptions"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
- <el-input v-model="form.messagesId" style="width: 150px" placeholder="Message id"/>
+ <el-input v-model="form.messagesId" :placeholder="$t('topic.subscription.messageId')" style="width: 150px"/>
</el-form-item>
</el-form>
</el-tab-pane>
diff --git a/front-end/src/views/management/tenants/index.vue b/front-end/src/views/management/tenants/index.vue
index a5c9614..ef8fd21 100644
--- a/front-end/src/views/management/tenants/index.vue
+++ b/front-end/src/views/management/tenants/index.vue
@@ -16,26 +16,26 @@
fit
highlight-current-row
style="width: 100%;">
- <el-table-column :label="$t('table.tenant')" min-width="50px" align="center">
+ <el-table-column :label="$t('tenant.name')" min-width="50px" align="center">
<template slot-scope="scope">
<router-link :to="'/management/tenants/tenantInfo/' + scope.row.tenant + '?tab=namespaces'" class="link-type">
<span>{{ scope.row.tenant }}</span>
</router-link>
</template>
</el-table-column>
- <el-table-column :label="$t('table.namespace')" align="center" min-width="100px">
+ <el-table-column :label="$t('namespace.namespaceNumber')" align="center" min-width="100px">
<template slot-scope="scope">
<router-link :to="'/management/tenants/tenantInfo/' + scope.row.tenant + '?tab=namespaces'" class="link-type">
<span>{{ scope.row.namespace }}</span>
</router-link>
</template>
</el-table-column>
- <el-table-column :label="$t('table.allowedClusters')" align="center" min-width="100px">
+ <el-table-column :label="$t('tenant.allowedClustersLabel')" align="center" min-width="100px">
<template slot-scope="scope">
<span>{{ scope.row.allowedClusters }}</span>
</template>
</el-table-column>
- <el-table-column :label="$t('table.adminRoles')" align="center" min-width="100px">
+ <el-table-column :label="$t('tenant.adminRolesLabel')" align="center" min-width="100px">
<template slot-scope="scope">
<span>{{ scope.row.adminRoles }}</span>
</template>
@@ -55,14 +55,14 @@
<el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible" width="30%">
<el-form ref="form" :rules="rules" :model="form" label-position="top">
<el-form-item v-if="dialogStatus==='create'" :label="$t('table.tenant')" prop="tenant">
- <el-input v-model="form.tenant" placeholder="Please input tenant"/>
+ <el-input v-model="form.tenant" :placeholder="$t('tenant.selectTenantMessage')"/>
</el-form-item>
- <el-form-item v-if="dialogStatus==='create'" label="Allowed Clusters" prop="clusters">
- <el-select v-model="form.clusters" multiple placeholder="Please select clusters" style="width:100%">
+ <el-form-item v-if="dialogStatus==='create'" :label="$t('tenant.allowedClustersLabel')" prop="clusters">
+ <el-select v-model="form.clusters" :placeholder="$t('cluster.selectClusterMessage')" multiple style="width:100%">
<el-option v-for="item in clusterListOptions" :label="item.label" :value="item.value" :key="item.value" />
</el-select>
</el-form-item>
- <el-form-item v-if="dialogStatus==='create'" label="Allowed Roles" prop="roles">
+ <el-form-item v-if="dialogStatus==='create'" :label="$t('tenant.adminRolesLabel')" prop="roles">
<el-tag
v-for="tag in form.dynamicRoles"
:key="tag"
@@ -81,7 +81,7 @@
<el-button v-else class="button-new-tag" size="small" @click="showInput">+ New Role</el-button>
</el-form-item>
<el-form-item v-if="dialogStatus==='delete'">
- <h4>Are you sure you want to delete this tenant?</h4>
+ <h4>{{ deleteTenantMessage }}</h4>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="handleOptions()">{{ $t('table.confirm') }}</el-button>
@@ -128,15 +128,16 @@
dialogFormVisible: false,
dialogStatus: '',
textMap: {
- create: 'New Tenant',
- delete: 'Delete Tenant'
+ create: this.$i18n.t('tenant.newTenant'),
+ delete: this.$i18n.t('tenant.deleteTenant')
},
rules: {
tenant: [{ required: true, message: 'Tenant is required', trigger: 'blur' }],
clusters: [{ required: true, message: 'Cluster is required', trigger: 'blur' }]
},
inputVisible: false,
- inputValue: ''
+ inputValue: '',
+ deleteTenantMessage: this.$i18n.t('tenant.deleteTenantMessage')
}
},
created() {
diff --git a/front-end/src/views/management/tenants/tenant.vue b/front-end/src/views/management/tenants/tenant.vue
index bbf9ae7..9393cbd 100644
--- a/front-end/src/views/management/tenants/tenant.vue
+++ b/front-end/src/views/management/tenants/tenant.vue
@@ -3,14 +3,14 @@
<div class="createPost-container">
<el-form :inline="true" :model="postForm" class="form-container">
<el-form-item class="postInfo-container-item" label="Tenant">
- <el-select v-model="postForm.tenant" placeholder="select tenant" @change="getNamespacesList(postForm.tenant)">
+ <el-select v-model="postForm.tenant" :placeholder="$t('tenant.selectTenantMessage')" @change="getNamespacesList(postForm.tenant)">
<el-option v-for="(item,index) in tenantsListOptions" :key="item+index" :label="item" :value="item"/>
</el-select>
</el-form-item>
</el-form>
</div>
<el-tabs v-model="activeName" @tab-click="handleClick">
- <el-tab-pane label="Namespaces" name="namespaces">
+ <el-tab-pane :label="$t('tabs.namespace')" name="namespaces">
<div class="filter-container">
<el-input
:placeholder="$t('table.namespace')"
@@ -18,7 +18,7 @@
style="width: 200px;"
@keyup.enter.native="handleFilterNamespace"/>
<el-button type="primary" icon="el-icon-search" @click="handleFilterNamespace"/>
- <el-button type="primary" icon="el-icon-plus" @click="handleCreateNamespace">New Namespace</el-button>
+ <el-button type="primary" icon="el-icon-plus" @click="handleCreateNamespace">{{ $t('namespace.newNamespace') }}</el-button>
</div>
<el-row :gutter="24">
<el-col :xs="{span: 24}" :sm="{span: 24}" :md="{span: 24}" :lg="{span: 24}" :xl="{span: 24}">
@@ -30,14 +30,14 @@
fit
highlight-current-row
style="width: 100%;">
- <el-table-column :label="$t('table.namespace')" align="center">
+ <el-table-column :label="$t('namespace.name')" align="center">
<template slot-scope="scope">
<router-link :to="'/management/namespaces/' + scope.row.tenant +'/' + scope.row.namespace + '/namespace?tab=overview'" class="link-type">
<span>{{ scope.row.namespace }}</span>
</router-link>
</template>
</el-table-column>
- <el-table-column label="topics" align="center">
+ <el-table-column :label="$t('topic.topicNumber')" align="center">
<template slot-scope="scope">
<router-link :to="'/management/namespaces/' + scope.row.tenant + '/' + scope.row.namespace + '/namespace?tab=topics'" class="link-type">
<span>{{ scope.row.topics }}</span>
@@ -56,35 +56,35 @@
</el-col>
</el-row>
</el-tab-pane>
- <el-tab-pane label="Configuration" name="configuration">
+ <el-tab-pane :label="$t('tabs.configuration')" name="configuration">
<el-row :gutter="24">
<el-col :span="24">
<div slot="header" class="clearfix">
- <h2>Tenant Info</h2>
+ <h2>{{ $t('tenant.tenantInfo') }}</h2>
</div>
<h4>Clusters</h4>
<hr class="split-line">
<div class="component-item">
<div class="section-title">
- <span>Allowed Clusters</span>
+ <span>{{ $t('tenant.allowedClustersLabel') }}</span>
<el-tooltip :content="allowedClustersContent" class="item" effect="dark" placement="top">
<i class="el-icon-info"/>
</el-tooltip>
</div>
<el-select
v-model="clusterValue"
+ :placeholder="$t('cluster.selectCluster')"
style="width:500px;margin-top:20px"
multiple
- placeholder="Please Select Cluster"
@change="handleSelectClusters()">
<el-option v-for="item in clusterOptions" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</div>
- <h4>Permissions</h4>
+ <h4>{{ $t('tenant.permissions') }}</h4>
<hr class="split-line">
<div class="component-item">
<div class="section-title">
- <span>Admin Roles</span>
+ <span>{{ $t('tenant.adminRolesLabel') }}</span>
<el-tooltip :content="adminRolesContent" class="item" effect="dark" placement="top">
<i class="el-icon-info"/>
</el-tooltip>
@@ -105,12 +105,12 @@
size="small"
class="input-new-tag"
@keyup.enter.native="handleInputConfirm"/>
- <el-button v-else class="button-new-tag" size="small" @click="showInput">+ New Role</el-button>
+ <el-button v-else class="button-new-tag" size="small" @click="showInput">{{ $t('tenant.newRole') }}</el-button>
</div>
</div>
- <h4 style="color:#E57470">Danger Zone</h4>
+ <h4 style="color:#E57470">{{ $t('common.dangerZone') }}</h4>
<hr class="danger-line">
- <el-button type="danger" class="button" @click="handleDeleteTenant">Delete Tenant</el-button>
+ <el-button type="danger" class="button" @click="handleDeleteTenant">{{ $t('tenant.deleteTenant') }}</el-button>
</el-col>
</el-row>
</el-tab-pane>
@@ -118,13 +118,13 @@
<el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible" width="30%">
<el-form ref="temp" :model="temp" :rules="rules" label-position="top">
<el-form-item v-if="dialogStatus==='createNamespace'" :label="$t('table.namespace')" prop="namespace">
- <el-input v-model="temp.namespace" placeholder="Please input namespace"/>
+ <el-input v-model="temp.namespace" :placeholder="$t('namespace.inputNamespaceMessage')"/>
</el-form-item>
<el-form-item v-if="dialogStatus==='deleteNamespace'">
- <h4>Are you sure you want to delete this namespace {{ temp.tenant }}/{{ temp.namespace }}?</h4>
+ <h4>{{ $t('namespace.deleteNamespaceMessage') }}</h4>
</el-form-item>
<el-form-item v-if="dialogStatus==='deleteTenant'">
- <h4>Are you sure you want to delete this tenant?</h4>
+ <h4>{{ $t('tenant.deleteTenantMessage') }}</h4>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="handleOptions()">{{ $t('table.confirm') }}</el-button>
@@ -158,8 +158,8 @@
inputVisible: false,
inputValue: '',
adminRoles: '',
- allowedClustersContent: 'This is Allowed Clusters',
- adminRolesContent: 'This is Admin Roles',
+ allowedClustersContent: this.$i18n.t('tenant.allowedClustersContent'),
+ adminRolesContent: this.$i18n.t('tenant.adminRolesContent'),
clusterValue: [],
clusterOptions: [],
activeName: 'configuration',
@@ -187,9 +187,9 @@
},
currentTabName: '',
textMap: {
- createNamespace: 'New Namespace',
- deleteNamespace: 'Delete Namespace',
- deleteTenant: 'Delete Tenant'
+ createNamespace: this.$i18n.t('namespace.newNamespace'),
+ deleteNamespace: this.$i18n.t('namespace.deleteNamespace'),
+ deleteTenant: this.$i18n.t('tenant.deleteTenant')
},
tempNamespacesList: [],
searchNamespace: '',
diff --git a/front-end/src/views/management/topics/partitionedTopic.vue b/front-end/src/views/management/topics/partitionedTopic.vue
index aa2fe25..8d164e3 100644
--- a/front-end/src/views/management/topics/partitionedTopic.vue
+++ b/front-end/src/views/management/topics/partitionedTopic.vue
@@ -2,17 +2,17 @@
<div class="app-container">
<div class="createPost-container">
<el-form :inline="true" :model="postForm" label-position="top" class="form-container">
- <el-form-item class="postInfo-container-item" label="Tenant">
+ <el-form-item :label="$t('tenant.label')">
<el-select v-model="postForm.tenant" placeholder="select tenant" @change="getNamespacesList(postForm.tenant)">
<el-option v-for="(item,index) in tenantsListOptions" :key="item+index" :label="item" :value="item"/>
</el-select>
</el-form-item>
- <el-form-item class="postInfo-container-item" label="Namespace">
+ <el-form-item :label="$t('namespace.label')">
<el-select v-model="postForm.namespace" placeholder="select namespace" @change="getTopicsList()">
<el-option v-for="(item,index) in namespacesListOptions" :key="item+index" :label="item" :value="item"/>
</el-select>
</el-form-item>
- <el-form-item class="postInfo-container-item" label="Topic">
+ <el-form-item :label="$t('topic.label')">
<el-select v-model="postForm.topic" placeholder="select topic" @change="getPartitionTopicInfo()">
<el-option v-for="(item,index) in topicsListOptions" :key="item+index" :label="item" :value="item"/>
</el-select>
@@ -20,17 +20,17 @@
</el-form>
</div>
<el-tabs v-model="activeName" @tab-click="handleClick">
- <el-tab-pane label="OVERVIEW" name="overview">
+ <el-tab-pane :label="$t('tabs.overview')" name="overview">
<el-table
:data="partitionTopicStats"
border
style="width: 100%">
- <el-table-column prop="inMsg" label="In - msg/s"/>
- <el-table-column prop="outMsg" label="Out - msg/s"/>
- <el-table-column prop="inBytes" label="In - bytes/s"/>
- <el-table-column prop="outBytes" label="Out - bytes/s"/>
+ <el-table-column :label="$t('common.inMsg')" prop="inMsg"/>
+ <el-table-column :label="$t('common.outMsg')" prop="outMsg"/>
+ <el-table-column :label="$t('common.inBytes')" prop="inBytes"/>
+ <el-table-column :label="$t('common.outBytes')" prop="outBytes"/>
</el-table>
- <h4>Partitions</h4>
+ <h4>{{ $t('topic.partitions') }}</h4>
<hr class="split-line">
<el-row :gutter="24">
<el-col :xs="{span: 24}" :sm="{span: 24}" :md="{span: 24}" :lg="{span: 24}" :xl="{span: 24}">
@@ -41,44 +41,44 @@
fit
highlight-current-row
style="width: 100%;">
- <el-table-column label="Partition" min-width="50px" align="center">
+ <el-table-column :label="$t('topic.partition')" min-width="50px" align="center">
<template slot-scope="scope">
<router-link :to="scope.row.partitionTopicLink" class="link-type">
<span>{{ scope.row.partition }}</span>
</router-link>
</template>
</el-table-column>
- <el-table-column label="Producers" min-width="30px" align="center">
+ <el-table-column :label="$t('topic.producer.producerNumber')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.producers }}</span>
</template>
</el-table-column>
- <el-table-column label="Subscriptions" min-width="30px" align="center">
+ <el-table-column :label="$t('topic.subscription.subscriptionNumber')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.subscriptions }}</span>
</template>
</el-table-column>
- <el-table-column label="In - msg/s" min-width="30px" align="center">
+ <el-table-column :label="$t('common.inMsg')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.inMsg }}</span>
</template>
</el-table-column>
- <el-table-column label="Out - msg/s" min-width="30px" align="center">
+ <el-table-column :label="$t('common.outMsg')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.outMsg }}</span>
</template>
</el-table-column>
- <el-table-column label="In - bytes/s" min-width="30px" align="center">
+ <el-table-column :label="$t('common.inBytes')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.inBytes }}</span>
</template>
</el-table-column>
- <el-table-column label="Out - bytes/s" min-width="30px" align="center">
+ <el-table-column :label="$t('common.outBytes')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.outBytes }}</span>
</template>
</el-table-column>
- <el-table-column label="Storage Size" min-width="30px" align="center">
+ <el-table-column :label="$t('common.storageSize')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.storageSize }}</span>
</template>
@@ -88,10 +88,10 @@
</el-row>
</el-tab-pane>
<el-tab-pane label="POLICIES" name="policies">
- <h4>Partitioned Topic Name</h4>
+ <h4>{{ $t('topic.partitionedTopicName') }}</h4>
<hr class="split-line">
<span>{{ partitionedTopicName }}</span>
- <h4>Authorization
+ <h4>{{ $t('topic.policy.authentication') }}
<el-tooltip :content="authorizationContent" class="item" effect="dark" placement="top">
<i class="el-icon-info"/>
</el-tooltip>
@@ -110,8 +110,8 @@
</div>
<el-select
v-model="roleMap[tag]"
+ :placeholder="$t('topic.selectRoleMessage')"
multiple
- placeholder="Please Select Options"
style="width:300px;"
@change="handleChangeOptions()">
<el-option
@@ -121,7 +121,7 @@
:value="item.value"
style="width:300px"/>
</el-select>
- <el-button @click.prevent="handleClose(tag)">删除</el-button>
+ <el-button @click.prevent="handleClose(tag)">{{ $t('topic.delete') }}</el-button>
</el-tag>
<el-form-item style="margin-top:30px">
<el-input
@@ -134,11 +134,11 @@
@keyup.enter.native="handleInputConfirm"
@blur="handleInputConfirm"
/>
- <el-button @click="showInput()">Add Role</el-button>
+ <el-button @click="showInput()">{{ $t('topic.addRole') }}</el-button>
<!-- <el-button @click="revokeAllRole()">Revoke All</el-button> -->
</el-form-item>
</el-form>
- <h4 style="color:#E57470">Danager Zone</h4>
+ <h4 style="color:#E57470">{{ $t('common.dangerZone') }}</h4>
<hr class="danger-line">
<el-button type="danger" class="button" @click="handleDeletePartitionTopic">Delete Topic</el-button>
</el-tab-pane>
@@ -146,7 +146,7 @@
<el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible" width="30%">
<el-form label-position="top">
<el-form-item v-if="dialogStatus==='delete'">
- <h4>Are you sure you want to delete this topic?</h4>
+ <h4>{{ $t('topic.deleteTopicMessage') }}</h4>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="deleteParititionTopic">{{ $t('table.confirm') }}</el-button>
@@ -204,13 +204,13 @@
value: 'functions',
label: 'functions'
}],
- authorizationContent: 'This is authorizationContent',
+ authorizationContent: this.$i18n.t('topic.policy.authorizationContent'),
partitionedTopicName: '',
firstInit: false,
firstInitTopic: false,
currentTabName: '',
textMap: {
- delete: 'Delete Topic'
+ delete: this.$i18n.t('topic.deleteTopic')
},
dialogFormVisible: false,
dialogStatus: ''
diff --git a/front-end/src/views/management/topics/topic.vue b/front-end/src/views/management/topics/topic.vue
index 9e48321..55ca9ca 100644
--- a/front-end/src/views/management/topics/topic.vue
+++ b/front-end/src/views/management/topics/topic.vue
@@ -2,22 +2,22 @@
<div class="app-container">
<div class="createPost-container">
<el-form :inline="true" :model="postForm" class="form-container">
- <el-form-item label="Tenant">
+ <el-form-item :label="$t('tenant.label')">
<el-select v-model="postForm.tenant" placeholder="select tenant" @change="getNamespacesList(postForm.tenant)">
<el-option v-for="(item,index) in tenantsListOptions" :key="item+index" :label="item" :value="item"/>
</el-select>
</el-form-item>
- <el-form-item label="Namespace">
+ <el-form-item :label="$t('namespace.label')">
<el-select v-model="postForm.namespace" placeholder="select namespace" @change="getTopicsList()">
<el-option v-for="(item,index) in namespacesListOptions" :key="item+index" :label="item" :value="item"/>
</el-select>
</el-form-item>
- <el-form-item label="Topic">
+ <el-form-item :label="$t('topic.label')">
<el-select v-model="postForm.topic" placeholder="select topic" @change="generatePartitions()">
<el-option v-for="(item,index) in topicsListOptions" :key="item+index" :label="item" :value="item"/>
</el-select>
</el-form-item>
- <el-form-item label="Partition">
+ <el-form-item :label="$t('topic.partition')">
<el-select v-model="postForm.partition" :disabled="partitionDisabled" placeholder="select partition" @change="getTopicInfo()">
<el-option v-for="(item,index) in partitionsListOptions" :key="item+index" :label="item" :value="item"/>
</el-select>
@@ -25,41 +25,41 @@
</el-form>
</div>
<el-tabs v-model="activeName" @tab-click="handleClick">
- <el-tab-pane label="OVERVIEW" name="overview">
+ <el-tab-pane :label="$t('tabs.overview')" name="overview">
<el-row :gutter="12">
<el-col :span="12">
<el-card style="height: 305px">
- <h4>INFO</h4>
+ <h4>{{ $t('topic.info') }}</h4>
<el-table
:data="infoData"
:show-header="false"
border
style="width: 100%">
- <el-table-column prop="infoColumn" label="column"/>
- <el-table-column prop="data" label="data"/>
+ <el-table-column :label="$t('topic.column')" prop="infoColumn"/>
+ <el-table-column :label="$t('topic.data')" prop="data"/>
</el-table>
- <el-button class="filter-item" type="primary" style="margin-top:15px;" @click="handleUnload">Unload</el-button>
+ <el-button class="filter-item" type="primary" style="margin-top:15px;" @click="handleUnload">{{ $t('topic.unload') }}</el-button>
</el-card>
</el-col>
<el-col v-if="nonPersistent===false" :span="4">
<el-card>
- <h4>STATUS</h4>
+ <h4>{{ $t('topic.status') }}</h4>
<el-button type="primary" circle class="circle"><span class="circle-font">{{ terminateStatus }}</span></el-button>
- <el-button type="primary" style="display:block;margin-top:15px;margin-left:auto;margin-right:auto;" @click="handleTerminate">terminate</el-button>
+ <el-button type="primary" style="display:block;margin-top:15px;margin-left:auto;margin-right:auto;" @click="handleTerminate">{{ $t('topic.terminate') }}</el-button>
</el-card>
</el-col>
<el-col v-if="nonPersistent===false" :span="4">
<el-card>
- <h4>COMPACTION</h4>
+ <h4>{{ $t('topic.compactionName') }}</h4>
<el-button type="primary" circle class="circle"><span class="circle-font">{{ compaction }}</span></el-button>
- <el-button type="primary" style="display:block;margin-top:15px;margin-left:auto;margin-right:auto;" @click="handleCompaction">compaction</el-button>
+ <el-button type="primary" style="display:block;margin-top:15px;margin-left:auto;margin-right:auto;" @click="handleCompaction">{{ $t('topic.compaction') }}</el-button>
</el-card>
</el-col>
<el-col v-if="nonPersistent===false" :span="4">
<el-card>
- <h4>OFFLOAD</h4>
+ <h4>{{ $t('topic.offloadName') }}</h4>
<el-button type="primary" circle class="circle"><span class="circle-font">{{ offload }}</span></el-button>
- <el-button type="primary" style="display:block;margin-top:15px;margin-left:auto;margin-right:auto;" @click="handleOffload">offload</el-button>
+ <el-button type="primary" style="display:block;margin-top:15px;margin-left:auto;margin-right:auto;" @click="handleOffload">{{ $t('topic.offload') }}</el-button>
</el-card>
</el-col>
</el-row>
@@ -67,12 +67,12 @@
:data="topicStats"
border
style="width: 100%">
- <el-table-column prop="inMsg" label="In - msg/s"/>
- <el-table-column prop="outMsg" label="Out - msg/s"/>
- <el-table-column prop="inBytes" label="In - bytes/s"/>
- <el-table-column prop="outBytes" label="Out - bytes/s"/>
+ <el-table-column :label="$t('common.inMsg')" prop="inMsg"/>
+ <el-table-column :label="$t('common.outMsg')" prop="outMsg"/>
+ <el-table-column :label="$t('common.inBytes')" prop="inBytes"/>
+ <el-table-column :label="$t('common.outBytes')" prop="outBytes"/>
</el-table>
- <h4>Producers</h4>
+ <h4>{{ $t('topic.producer.producers') }}</h4>
<el-row :gutter="24">
<el-col :xs="{span: 24}" :sm="{span: 24}" :md="{span: 24}" :lg="{span: 24}" :xl="{span: 24}">
<el-table
@@ -83,37 +83,37 @@
fit
highlight-current-row
style="width: 100%;">
- <el-table-column label="Producer Id" min-width="50px" align="center">
+ <el-table-column :label="$t('topic.producer.producerId')" min-width="50px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.producerId }}</span>
</template>
</el-table-column>
- <el-table-column label="Producer Name" min-width="30px" align="center">
+ <el-table-column :label="$t('topic.producer.producerName')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.producerName }}</span>
</template>
</el-table-column>
- <el-table-column label="In - msg/s" min-width="30px" align="center">
+ <el-table-column :label="$t('common.inMsg')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.inMsg }}</span>
</template>
</el-table-column>
- <el-table-column label="In - bytes/s" min-width="30px" align="center">
+ <el-table-column :label="$t('common.inBytes')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.inBytes }}</span>
</template>
</el-table-column>
- <el-table-column label="Avg Msg Size" min-width="30px" align="center">
+ <el-table-column :label="$t('topic.producer.avgMsgSize')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.avgMsgSize }}</span>
</template>
</el-table-column>
- <el-table-column label="Address" min-width="30px" align="center">
+ <el-table-column :label="$t('topic.producer.address')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.address }}</span>
</template>
</el-table-column>
- <el-table-column label="Since" min-width="30px" align="center">
+ <el-table-column :label="$t('topic.producer.since')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.since }}</span>
</template>
@@ -121,7 +121,7 @@
</el-table>
</el-col>
</el-row>
- <h4>Subscriptions</h4>
+ <h4>{{ $t('topic.subscription.subscriptions') }}</h4>
<el-row :gutter="24">
<el-col :xs="{span: 24}" :sm="{span: 24}" :md="{span: 24}" :lg="{span: 24}" :xl="{span: 24}">
<el-table
@@ -132,50 +132,50 @@
fit
highlight-current-row
style="width: 100%;">
- <el-table-column label="Subscription" min-width="50px" align="center">
+ <el-table-column :label="$t('topic.subscription.name')" min-width="50px" align="center">
<template slot-scope="scope">
<router-link :to="scope.row.subscriptionLink" class="link-type">
<span>{{ scope.row.subscription }}</span>
</router-link>
</template>
</el-table-column>
- <el-table-column label="type" min-width="30px" align="center">
+ <el-table-column :label="$t('topic.subscription.type')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.type }}</span>
</template>
</el-table-column>
- <el-table-column label="Out - msg/s" min-width="30px" align="center">
+ <el-table-column :label="$t('common.outMsg')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.outMsg }}</span>
</template>
</el-table-column>
- <el-table-column label="outBytes" min-width="30px" align="center">
+ <el-table-column :label="$t('common.outBytes')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.outBytes }}</span>
</template>
</el-table-column>
- <el-table-column label="Msg Expired" min-width="30px" align="center">
+ <el-table-column :label="$t('topic.subscription.msgExpired')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.msgExpired }}</span>
</template>
</el-table-column>
- <el-table-column label="Backlog" min-width="30px" align="center">
+ <el-table-column :label="$t('topic.subscription.backlog')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.backlog }}</span>
<el-dropdown>
<span class="el-dropdown-link"><i class="el-icon-more"/></span>
<el-dropdown-menu slot="dropdown">
<router-link :to="scope.row.subscriptionLink + '?topTab=backlogOperation&leftTab=skip'" class="link-type">
- <el-dropdown-item command="skip">SKIP</el-dropdown-item>
+ <el-dropdown-item command="skip">{{ $t('topic.subscription.skip') }}</el-dropdown-item>
</router-link>
<router-link :to="scope.row.subscriptionLink + '?topTab=backlogOperation&leftTab=expire'" class="link-type">
- <el-dropdown-item command="expire">EXPIRE</el-dropdown-item>
+ <el-dropdown-item command="expire">{{ $t('topic.subscription.expire') }}</el-dropdown-item>
</router-link>
<router-link :to="scope.row.subscriptionLink + '?topTab=backlogOperation&leftTab=clear'" class="link-type">
- <el-dropdown-item command="clear">CLEAR</el-dropdown-item>
+ <el-dropdown-item command="clear">{{ $t('topic.subscription.clear') }}</el-dropdown-item>
</router-link>
<router-link :to="scope.row.subscriptionLink + '?topTab=backlogOperation&leftTab=reset'" class="link-type">
- <el-dropdown-item command="reset">RESET</el-dropdown-item>
+ <el-dropdown-item command="reset">{{ $t('topic.subscription.reset') }}</el-dropdown-item>
</router-link>
</el-dropdown-menu>
</el-dropdown>
@@ -185,25 +185,25 @@
</el-col>
</el-row>
</el-tab-pane>
- <el-tab-pane v-if="nonPersistent===false" label="STORAGE" name="storage">
+ <el-tab-pane v-if="nonPersistent===false" :label="$t('topic.subscription.storage')" name="storage">
<el-row :gutter="12">
<el-col :span="8">
<el-card>
- <el-button type="primary" class="circle"><span>Storage Size <br>{{ storageSize }}</span></el-button>
+ <el-button type="primary" class="circle"><span>{{ $t('topic.subscription.storageSize') }} <br>{{ storageSize }}</span></el-button>
</el-card>
</el-col>
<el-col :span="8">
<el-card>
- <el-button type="primary" class="circle"><span>Entries <br>{{ entries }}</span></el-button>
+ <el-button type="primary" class="circle"><span>{{ $t('topic.subscription.entries') }} <br>{{ entries }}</span></el-button>
</el-card>
</el-col>
<el-col :span="8">
<el-card>
- <el-button type="primary" class="circle"><span>Segments<br>{{ segments }}</span></el-button>
+ <el-button type="primary" class="circle"><span>{{ $t('topic.subscription.segments') }}<br>{{ segments }}</span></el-button>
</el-card>
</el-col>
</el-row>
- <h4>Segments</h4>
+ <h4>{{ $t('topic.segment.label') }}</h4>
<el-row :gutter="24">
<el-col :xs="{span: 24}" :sm="{span: 24}" :md="{span: 24}" :lg="{span: 24}" :xl="{span: 24}">
<el-table
@@ -214,27 +214,27 @@
fit
highlight-current-row
style="width: 100%;">
- <el-table-column label="Ledger Id" min-width="50px" align="center">
+ <el-table-column :label="$t('topic.segment.ledgerId')" min-width="50px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.ledgerId }}</span>
</template>
</el-table-column>
- <el-table-column label="Entries" min-width="30px" align="center">
+ <el-table-column :label="$t('topic.segment.entries')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.entries }}</span>
</template>
</el-table-column>
- <el-table-column label="Size" min-width="30px" align="center">
+ <el-table-column :label="$t('topic.segment.size')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.size }}</span>
</template>
</el-table-column>
- <el-table-column label="Status" min-width="30px" align="center">
+ <el-table-column :label="$t('topic.segment.status')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.status }}</span>
</template>
</el-table-column>
- <el-table-column label="Offload" min-width="30px" align="center">
+ <el-table-column :label="$t('topic.segment.offload')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.offload }}</span>
</template>
@@ -242,7 +242,7 @@
</el-table>
</el-col>
</el-row>
- <h4>Cursors</h4>
+ <h4>{{ $t('topic.cursor.cursors') }}</h4>
<el-row :gutter="24">
<el-col :xs="{span: 24}" :sm="{span: 24}" :md="{span: 24}" :lg="{span: 24}" :xl="{span: 24}">
<el-table
@@ -253,32 +253,32 @@
fit
highlight-current-row
style="width: 100%;">
- <el-table-column label="Name" min-width="50px" align="center">
+ <el-table-column :label="$t('topic.cursor.label')" min-width="50px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.name }}</span>
</template>
</el-table-column>
- <el-table-column label="Mark Delete Position" min-width="30px" align="center">
+ <el-table-column :label="$t('topic.cursor.markDeletePosition')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.markDeletePosition }}</span>
</template>
</el-table-column>
- <el-table-column label="Read Position" min-width="30px" align="center">
+ <el-table-column :label="$t('topic.cursor.readPosition')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.readPosition }}</span>
</template>
</el-table-column>
- <el-table-column label="Waiting Read Op" min-width="30px" align="center">
+ <el-table-column :label="$t('topic.cursor.waitingReadOp')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.waitingReadOp }}</span>
</template>
</el-table-column>
- <el-table-column label="Pending Read Ops" min-width="30px" align="center">
+ <el-table-column :label="$t('topic.cursor.pendingReadOp')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.pendingReadOps }}</span>
</template>
</el-table-column>
- <el-table-column label="Entries Since First Not AckedMessage" min-width="30px" align="center">
+ <el-table-column :label="$t('topic.cursor.numberOfEntriesSinceFirstNotAckedMessage')" min-width="30px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.numberOfEntriesSinceFirstNotAckedMessage }}</span>
</template>
@@ -287,9 +287,9 @@
</el-col>
</el-row>
</el-tab-pane>
- <el-tab-pane label="POLICIES" name="policies">
+ <el-tab-pane :label="$t('topic.policy.policies')" name="policies">
<span>{{ topicName }}</span>
- <h4>Authorization
+ <h4>{{ $t('topic.policy.authentication') }}
<el-tooltip :content="authorizationContent" class="item" effect="dark" placement="top">
<i class="el-icon-info"/>
</el-tooltip>
@@ -319,7 +319,7 @@
:value="item.value"
style="width:300px"/>
</el-select>
- <el-button @click.prevent="handleClose(tag)">删除</el-button>
+ <el-button @click.prevent="handleClose(tag)">{{ $t('topic.delete') }}</el-button>
</el-tag>
<el-form-item style="margin-top:30px">
<el-input
@@ -332,19 +332,19 @@
@keyup.enter.native="handleInputConfirm"
@blur="handleInputConfirm"
/>
- <el-button @click="showInput()">Add Role</el-button>
+ <el-button @click="showInput()">{{ $t('topic.addRole') }}</el-button>
<!-- <el-button @click="revokeAllRole()">Revoke All</el-button> -->
</el-form-item>
</el-form>
- <h4 style="color:#E57470">Danager Zone</h4>
+ <h4 style="color:#E57470">{{ $t('common.dangerZone') }}</h4>
<hr class="danger-line">
- <el-button type="danger" class="button" @click="handleDeleteTopic">Delete Topic</el-button>
+ <el-button type="danger" class="button" @click="handleDeleteTopic">{{ $t('topic.deleteTopic') }}</el-button>
</el-tab-pane>
</el-tabs>
<el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible" width="30%">
<el-form label-position="top">
<el-form-item v-if="dialogStatus==='delete'">
- <h4>Are you sure you want to delete this topic?</h4>
+ <h4>{{ $t(topic.deleteTopicMessage) }}</h4>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="deleteTopic">{{ $t('table.confirm') }}</el-button>
@@ -435,7 +435,7 @@
value: 'functions',
label: 'functions'
}],
- authorizationContent: 'This is authorizationContent',
+ authorizationContent: this.$i18n.t('topic.policy.authorizationContent'),
topicName: '',
firstInit: false,
firstInitTopic: false,
@@ -445,7 +445,7 @@
currentTabName: '',
nonPersistent: false,
textMap: {
- delete: 'Delete Topic'
+ delete: this.$i18n.t('topic.deleteTopic')
},
dialogFormVisible: false,
dialogStatus: '',