ljmotta commented on code in PR #3229:
URL:
https://github.com/apache/incubator-kie-tools/pull/3229#discussion_r2291066027
##########
packages/dmn-editor/src/dataTypes/DataTypePanel.tsx:
##########
@@ -373,20 +375,21 @@ export function DataTypePanel({
<>
<Flex direction={{ default: "row" }} alignItems={{ default:
"alignItemsCenter" }}>
<Title size={"md"} headingLevel="h4">
- Collection constraint
+ {i18n.dataTypes.collectionConstraint}
</Title>
<Popover
showClose={false}
isVisible={isCollectionConstraintPopoverOpen}
shouldClose={() =>
setIsCollectionConstraintPopoverOpen(false)}
- headerContent="Collection Constraints (Type Constraint)"
+
headerContent={i18n.dataTypes.collectionConstrainsTypeConstraint}
headerIcon={<InfoAltIcon />}
headerComponent="h1"
bodyContent={
<p>
- As per the DMN specification, the <b>Type
Constraint</b> attribute lists the possible values
+ {i18n.dataTypes.dmnSpecification}
<b>{i18n.dataTypes.typeConstraint}</b>{" "}
+ {i18n.dataTypes.attributeListsPossibleValues}
<br />
- or ranges of values in the base type that are allowed
in this ItemDefinition.
+ {i18n.dataTypes.rangeOfValuesAllowed}
</p>
Review Comment:
Please, use the `I18nWrapper` component for this case.
##########
packages/dmn-editor/src/dataTypes/ConstraintsExpression.tsx:
##########
@@ -132,11 +134,11 @@ export function ConstraintsExpression({
<HelperText>
{!isReadOnly && (
<HelperTextItem variant="indeterminate" icon={<InfoIcon />}>
- Check the{" "}
+ {i18n.dataTypes.checkThe}
<a target={"_blank"}
href={"https://kiegroup.github.io/dmn-feel-handbook/#feel-values"}>
- FEEL handbook
+ {i18n.dataTypes.feelHandbook}
</a>{" "}
- to help you on creating your expressions.
+ {i18n.dataTypes.creatingAnExpression}
</HelperTextItem>
Review Comment:
Please, use the `I18nWrapper` component for this case.
##########
packages/dmn-editor/src/i18n/locales/en.ts:
##########
@@ -0,0 +1,398 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import { en as en_common } from "@kie-tools/i18n-common-dictionary";
+import { DmnEditorI18n } from "../DmnEditorI18n";
+import { title } from "process";
+
+export const en: DmnEditorI18n = {
+ ...en_common,
+ autoLayout: "Autolayout (beta)",
+ backToDiagram: "Back to Diagram",
+ yourAnnotationsHere: "// Your annotations here",
+ filter: "Filter...",
+ close: "Close",
+ dmn: "DMN",
+ pmml: "PMML",
+ none: "None",
+ noneYet: "None yet",
+ name: "Name",
+ cancel: "Cancel",
+ with: "with",
+ dataTypes: {
+ days: "Days",
+ hours: "Hours",
+ minutes: "Minutes",
+ seconds: "Seconds",
+ tweakTheTimezone: "To tweak the timezone it's necessary to set a time
first",
+ selectTimezone: "Select timezone",
+ years: "Years",
+ months: "Months",
+ dataTypeConstraints: "This data type doesn't support constraints",
+ enumeration: "Enumeration",
+ expression: "Expression",
+ range: "Range",
+ allValuesAllowed: "All values are allowed",
+ addEnumValue: "Add enum value",
+ addValue: "Add value",
+ removeEnumValue: "Remove enum value",
+ equivalentFeelExpression: "Equivalent FEEL expression:",
+ checkThe: "Check the",
+ feelHandbook: "FEEL handbook",
+ creatingAnExpression: "to help you on creating your expressions.",
+ nextValidDate: (value: string, operator: string): string =>
+ `The next valid number is: (${value} ${operator} 1 Day).`,
+ nextValidDateTime: (value: string, operator: string): string =>
+ `The next valid number is: (${value} ${operator} 1 Second).`,
+ nextValidNumber: (value: string, operator: string): string =>
+ `The next valid number is: (${value} ${operator} 2e-52).`,
+ nextValidYearsAndMonths: (value: string, operator: string): string =>
+ `The next valid number is: (${value} ${operator} 1 Month).`,
+ start: "Start",
+ clickToRemoveValue: "Click to remove value from the range",
+ clickToIncludeValue: "Click to include value in the range",
+ startingValueIncluded: "The starting value will be included in the range.",
+ startingValueNotIncluded: "The starting value will not be included in the
range.",
+ clickToRemoveValueFromRange: "Click to remove value from the range",
+ clickToIncludeInRange: "Click to include value in the range",
+ endsWith: "Ends with",
+ endingValueIncludedInRange: "The ending value will be included in the
range.",
+ endingValueNotIncludedInRange: "The ending value will not be included in
the range.",
+ descriptionPlaceholder: "Enter a description...",
+ isStruct: "Is struct?",
+ type: "Type",
+ collectionConstraint: "Collection constraint",
+ collectionConstrainsTypeConstraint: "Collection Constraints (Type
Constraint)",
+ dmnSpecification: "As per the DMN specification, the ",
+ typeConstraint: "Type Constraint",
+ attributeListsPossibleValues: "attribute lists the possible values",
+ rangeOfValuesAllowed: "or ranges of values in the base type that are
allowed in this ItemDefinition.",
+ collectionItemConstraint: "Collection item constraint",
+ collectionItemConstraintAllowedValues: "Collection Item Constraints
(Allowed Values)",
+ allowedValues: "Allowed Values",
+ creatingConstraints:
+ "Creating constraints for the collection items directly on the
collection itself is deprecated since DMN 1.5 and will possibly be removed in
future versions. To prepare your DMN model for future updates, please create a
dedicated Data Type for the items of this list and add constraints there.",
+ noCustomDataTypes: "No custom data types have been defined.",
+ dmnEmptyBody:
+ "Data types are referenced in the input and output values for decision
tables. Custom data types allow you to reference more complex data types,
beyond the simple default types.",
+ duplicateDmnDetected: "Duplicate DMN Data Type Detected",
+ conflictsDetectedMessage:
+ "Conflicts have been detected between imported Java classes and existing
DMN data types. Please review the details below and choose how to proceed.",
+ internalDataTypeConflicts: "Internal Data Type Conflicts",
+ editableDataTypes: "These are editable DMN Types. Choose how to resolve
them.",
+ replaceExistingDmn: "This option will replace the existing DMN type with
the new one.",
+ preserveExistingDmn: "This option will preserve the existing DMN type and
create a new one with a unique name.",
+ replace: "Replace",
+ keepBoth: "Keep Both",
+ startsWith: "Starts with",
+ remove: "Remove",
+ external: "External",
+ id: "ID:",
+ copy: "Copy",
+ isCollection: "Is collection?",
+ deprecated: "Deprecated",
+ newDataType: "New Data Type",
+ paste: "Paste",
+ createCustomDataType: "Create a custom data type",
+ or: "or",
+ pasteDataType: "Paste data type",
+ externalDataTypeConflicts: "External Data Type Conflicts",
+ externalSources: "These types come from external sources and cannot be
replaced.",
+ propertiesInDefinition: (definitionName: string): string => `Properties in
'${definitionName}'`,
+ addItemComponent: "Add item component (at the top)",
+ expandAll: "Expand all",
+ collapseAll: "Collapse all",
+ pasteProperty: "Paste property",
+ expandCollapseItemComponent: "Expand / collapse item component",
+ view: "View",
+ extractDataType: "Extract data type",
+ cut: "Cut",
+ addPropertiesToDefinition: (definitionName: string): string => `Add
property to '${definitionName}'`,
+ builtIn: "Built-in",
+ custom: "Custom",
+ jumpToDefinition: "Jump to definition",
+ selectDataType: "Select a data type...",
+ },
+ nodes: {
+ view: "View",
+ edit: "Edit",
+ output: "OUTPUT",
+ encapsulated: "ENCAPSULATED",
+ doubleClickToName: "Double-click to name",
+ addInformationRequirementEdge: "Add Information Requirement edge",
+ addKnowledgeRequirementEdge: "Add Knowledge Requirement edge",
+ addAuthorityRequirementEdge: "Add Authority Requirement edge",
+ addAssociationEdge: "Add Association edge",
+ addDecisionNode: "Add Decision node",
+ addBkmNode: "Add BKM node",
+ addKnowledgeResourceNode: "Add Knowledge Source node",
+ addTextAnnotationNode: "Add Text Annotation node",
+ emptyDiagram: "Empty Diagram",
+ currentDmnAssociatedDiagram:
+ "The current DMN does not have any Diagram associated with it. Do you
want to auto-generate it?",
+ autoGenerateDiagram: "Auto-generate Diagram",
+ automaticallyPlaceNodes:
+ "Auto generating the diagram will automatically place the nodes with the
default size and shape. You can also manually build your diagram using the DRG
Nodes option from the palette.",
+ dmnDiagramEmpty: "This DMN's Diagram is empty",
+ diagramHasNodesOrOpenAnotherFile: "Make sure the DMN has nodes or try
opening another file",
+ startByDraggingNodes: "Start by dragging nodes from the Palette",
+ newDecisionTable: "New Decision Table...",
+ newDecisionWithInputData: "New Decision with Input Data...",
+ overLays: "Overlays",
+ propertiesPanel: "Properties panel",
+ nodesSelected: (selectedNodesCount: number): string =>
`${selectedNodesCount} nodes selected`,
+ edgesSelected: (selectedEdgesCount: number): string =>
`${selectedEdgesCount} edges selected`,
+ nodeSelected: (nodeCount: number): string => `${nodeCount} node`,
+ edgeSelected: (edgeCount: number): string => `${edgeCount} edge`,
+ nodes: (nodeCount: number): string => `${nodeCount} nodes`,
+ edges: (edgeCount: number): string => `${edgeCount} edges`,
+ selected: "selected",
+ dmnversion: (latestVersion: string): string => `DMN ${latestVersion}`,
+ originallyImportedDmn: (version: string, latestVersion: string): string =>
+ `This DMN was originally imported as DMN ${version}, but was converted
to DMN ${latestVersion} to enable new features.`,
+ drds: "DRDs",
+ newDrd: "new DRD",
+ versionUpgraded: "Version upgraded!",
+ newInDmn: (latestVersion: string): string => `See what's new on DMN
${latestVersion}`,
+ defaultDrd: "You're on the default DRD",
+ addingNodesMakingChanges: "Adding nodes or making changes to the Diagram
will automatically create a DRD for you.",
+ removeDrd: "Remove DRD",
+ remove: "Remove",
+ inputDataNodeShape: "Input Data node shape",
+ classic: "Classic",
+ alternative: "Alternative",
+ noDrgNodes: "No DRG nodes yet",
+ usePaletteLeftHandSide: "Use the Palette on the left-hand-side to drag new
nodes into the Diagram.",
+ drgNodes: "DRG Nodes",
+ selectEditDrd: "Select or edit DRD",
+ inputData: "Input Data",
+ decision: "Decision",
+ businessKnowledgeModel: "Business Knowledge Model",
+ knowledgeSource: "Knowledge Source",
+ decisionService: "Decision Service",
+ group: "Group",
+ textAnnotation: "Text Annotation",
+ externalNodes: "External nodes",
+ drgnodes: "DRG nodes",
+ unknown: "unknown",
+ empty: "<Empty>",
+ input: "Input",
+ },
+ evaluationHightlights: "Evaluation highlights",
+ on: "on",
+ off: "off",
+ externalNodes: {
+ decision: "Decision",
+ inputData: "Input Data",
+ unknown: "Unknown",
+ externalModelTooltip: (nodeTypeTooltipDescription: string, namespace:
string): string =>
+ `This ${nodeTypeTooltipDescription} node is from an external model that
is not included in this one. Namespace: ${namespace}`,
+ noExternalNodesAvailable: "No external nodes available",
+ IncludedModelsHaveNoExportedNodes:
Review Comment:
```suggestion
includedModelsHaveNoExportedNodes:
```
##########
packages/dmn-editor/src/i18n/locales/en.ts:
##########
@@ -0,0 +1,398 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import { en as en_common } from "@kie-tools/i18n-common-dictionary";
+import { DmnEditorI18n } from "../DmnEditorI18n";
+import { title } from "process";
+
+export const en: DmnEditorI18n = {
+ ...en_common,
+ autoLayout: "Autolayout (beta)",
+ backToDiagram: "Back to Diagram",
+ yourAnnotationsHere: "// Your annotations here",
+ filter: "Filter...",
+ close: "Close",
+ dmn: "DMN",
+ pmml: "PMML",
+ none: "None",
+ noneYet: "None yet",
+ name: "Name",
+ cancel: "Cancel",
+ with: "with",
+ dataTypes: {
+ days: "Days",
+ hours: "Hours",
+ minutes: "Minutes",
+ seconds: "Seconds",
+ tweakTheTimezone: "To tweak the timezone it's necessary to set a time
first",
+ selectTimezone: "Select timezone",
+ years: "Years",
+ months: "Months",
+ dataTypeConstraints: "This data type doesn't support constraints",
+ enumeration: "Enumeration",
+ expression: "Expression",
+ range: "Range",
+ allValuesAllowed: "All values are allowed",
+ addEnumValue: "Add enum value",
+ addValue: "Add value",
+ removeEnumValue: "Remove enum value",
+ equivalentFeelExpression: "Equivalent FEEL expression:",
+ checkThe: "Check the",
+ feelHandbook: "FEEL handbook",
+ creatingAnExpression: "to help you on creating your expressions.",
+ nextValidDate: (value: string, operator: string): string =>
+ `The next valid number is: (${value} ${operator} 1 Day).`,
+ nextValidDateTime: (value: string, operator: string): string =>
+ `The next valid number is: (${value} ${operator} 1 Second).`,
+ nextValidNumber: (value: string, operator: string): string =>
+ `The next valid number is: (${value} ${operator} 2e-52).`,
+ nextValidYearsAndMonths: (value: string, operator: string): string =>
+ `The next valid number is: (${value} ${operator} 1 Month).`,
+ start: "Start",
+ clickToRemoveValue: "Click to remove value from the range",
+ clickToIncludeValue: "Click to include value in the range",
+ startingValueIncluded: "The starting value will be included in the range.",
+ startingValueNotIncluded: "The starting value will not be included in the
range.",
+ clickToRemoveValueFromRange: "Click to remove value from the range",
+ clickToIncludeInRange: "Click to include value in the range",
+ endsWith: "Ends with",
+ endingValueIncludedInRange: "The ending value will be included in the
range.",
+ endingValueNotIncludedInRange: "The ending value will not be included in
the range.",
+ descriptionPlaceholder: "Enter a description...",
+ isStruct: "Is struct?",
+ type: "Type",
+ collectionConstraint: "Collection constraint",
+ collectionConstrainsTypeConstraint: "Collection Constraints (Type
Constraint)",
+ dmnSpecification: "As per the DMN specification, the ",
+ typeConstraint: "Type Constraint",
+ attributeListsPossibleValues: "attribute lists the possible values",
+ rangeOfValuesAllowed: "or ranges of values in the base type that are
allowed in this ItemDefinition.",
+ collectionItemConstraint: "Collection item constraint",
+ collectionItemConstraintAllowedValues: "Collection Item Constraints
(Allowed Values)",
+ allowedValues: "Allowed Values",
+ creatingConstraints:
+ "Creating constraints for the collection items directly on the
collection itself is deprecated since DMN 1.5 and will possibly be removed in
future versions. To prepare your DMN model for future updates, please create a
dedicated Data Type for the items of this list and add constraints there.",
+ noCustomDataTypes: "No custom data types have been defined.",
+ dmnEmptyBody:
+ "Data types are referenced in the input and output values for decision
tables. Custom data types allow you to reference more complex data types,
beyond the simple default types.",
+ duplicateDmnDetected: "Duplicate DMN Data Type Detected",
+ conflictsDetectedMessage:
+ "Conflicts have been detected between imported Java classes and existing
DMN data types. Please review the details below and choose how to proceed.",
+ internalDataTypeConflicts: "Internal Data Type Conflicts",
+ editableDataTypes: "These are editable DMN Types. Choose how to resolve
them.",
+ replaceExistingDmn: "This option will replace the existing DMN type with
the new one.",
+ preserveExistingDmn: "This option will preserve the existing DMN type and
create a new one with a unique name.",
+ replace: "Replace",
+ keepBoth: "Keep Both",
+ startsWith: "Starts with",
+ remove: "Remove",
+ external: "External",
+ id: "ID:",
+ copy: "Copy",
+ isCollection: "Is collection?",
+ deprecated: "Deprecated",
+ newDataType: "New Data Type",
+ paste: "Paste",
+ createCustomDataType: "Create a custom data type",
+ or: "or",
+ pasteDataType: "Paste data type",
+ externalDataTypeConflicts: "External Data Type Conflicts",
+ externalSources: "These types come from external sources and cannot be
replaced.",
+ propertiesInDefinition: (definitionName: string): string => `Properties in
'${definitionName}'`,
+ addItemComponent: "Add item component (at the top)",
+ expandAll: "Expand all",
+ collapseAll: "Collapse all",
+ pasteProperty: "Paste property",
+ expandCollapseItemComponent: "Expand / collapse item component",
+ view: "View",
+ extractDataType: "Extract data type",
+ cut: "Cut",
+ addPropertiesToDefinition: (definitionName: string): string => `Add
property to '${definitionName}'`,
+ builtIn: "Built-in",
+ custom: "Custom",
+ jumpToDefinition: "Jump to definition",
+ selectDataType: "Select a data type...",
+ },
+ nodes: {
+ view: "View",
+ edit: "Edit",
+ output: "OUTPUT",
+ encapsulated: "ENCAPSULATED",
+ doubleClickToName: "Double-click to name",
+ addInformationRequirementEdge: "Add Information Requirement edge",
+ addKnowledgeRequirementEdge: "Add Knowledge Requirement edge",
+ addAuthorityRequirementEdge: "Add Authority Requirement edge",
+ addAssociationEdge: "Add Association edge",
+ addDecisionNode: "Add Decision node",
+ addBkmNode: "Add BKM node",
+ addKnowledgeResourceNode: "Add Knowledge Source node",
+ addTextAnnotationNode: "Add Text Annotation node",
+ emptyDiagram: "Empty Diagram",
+ currentDmnAssociatedDiagram:
+ "The current DMN does not have any Diagram associated with it. Do you
want to auto-generate it?",
+ autoGenerateDiagram: "Auto-generate Diagram",
+ automaticallyPlaceNodes:
+ "Auto generating the diagram will automatically place the nodes with the
default size and shape. You can also manually build your diagram using the DRG
Nodes option from the palette.",
+ dmnDiagramEmpty: "This DMN's Diagram is empty",
+ diagramHasNodesOrOpenAnotherFile: "Make sure the DMN has nodes or try
opening another file",
+ startByDraggingNodes: "Start by dragging nodes from the Palette",
+ newDecisionTable: "New Decision Table...",
+ newDecisionWithInputData: "New Decision with Input Data...",
+ overLays: "Overlays",
Review Comment:
```suggestion
overlays: "Overlays",
```
##########
packages/dmn-editor/src/i18n/locales/en.ts:
##########
@@ -0,0 +1,398 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import { en as en_common } from "@kie-tools/i18n-common-dictionary";
+import { DmnEditorI18n } from "../DmnEditorI18n";
+import { title } from "process";
+
+export const en: DmnEditorI18n = {
+ ...en_common,
+ autoLayout: "Autolayout (beta)",
+ backToDiagram: "Back to Diagram",
+ yourAnnotationsHere: "// Your annotations here",
+ filter: "Filter...",
+ close: "Close",
+ dmn: "DMN",
+ pmml: "PMML",
+ none: "None",
+ noneYet: "None yet",
+ name: "Name",
+ cancel: "Cancel",
+ with: "with",
+ dataTypes: {
+ days: "Days",
+ hours: "Hours",
+ minutes: "Minutes",
+ seconds: "Seconds",
+ tweakTheTimezone: "To tweak the timezone it's necessary to set a time
first",
+ selectTimezone: "Select timezone",
+ years: "Years",
+ months: "Months",
+ dataTypeConstraints: "This data type doesn't support constraints",
+ enumeration: "Enumeration",
+ expression: "Expression",
+ range: "Range",
+ allValuesAllowed: "All values are allowed",
+ addEnumValue: "Add enum value",
+ addValue: "Add value",
+ removeEnumValue: "Remove enum value",
+ equivalentFeelExpression: "Equivalent FEEL expression:",
+ checkThe: "Check the",
+ feelHandbook: "FEEL handbook",
+ creatingAnExpression: "to help you on creating your expressions.",
+ nextValidDate: (value: string, operator: string): string =>
+ `The next valid number is: (${value} ${operator} 1 Day).`,
+ nextValidDateTime: (value: string, operator: string): string =>
+ `The next valid number is: (${value} ${operator} 1 Second).`,
+ nextValidNumber: (value: string, operator: string): string =>
+ `The next valid number is: (${value} ${operator} 2e-52).`,
+ nextValidYearsAndMonths: (value: string, operator: string): string =>
+ `The next valid number is: (${value} ${operator} 1 Month).`,
+ start: "Start",
+ clickToRemoveValue: "Click to remove value from the range",
+ clickToIncludeValue: "Click to include value in the range",
+ startingValueIncluded: "The starting value will be included in the range.",
+ startingValueNotIncluded: "The starting value will not be included in the
range.",
+ clickToRemoveValueFromRange: "Click to remove value from the range",
+ clickToIncludeInRange: "Click to include value in the range",
+ endsWith: "Ends with",
+ endingValueIncludedInRange: "The ending value will be included in the
range.",
+ endingValueNotIncludedInRange: "The ending value will not be included in
the range.",
+ descriptionPlaceholder: "Enter a description...",
+ isStruct: "Is struct?",
+ type: "Type",
+ collectionConstraint: "Collection constraint",
+ collectionConstrainsTypeConstraint: "Collection Constraints (Type
Constraint)",
+ dmnSpecification: "As per the DMN specification, the ",
+ typeConstraint: "Type Constraint",
+ attributeListsPossibleValues: "attribute lists the possible values",
+ rangeOfValuesAllowed: "or ranges of values in the base type that are
allowed in this ItemDefinition.",
+ collectionItemConstraint: "Collection item constraint",
+ collectionItemConstraintAllowedValues: "Collection Item Constraints
(Allowed Values)",
+ allowedValues: "Allowed Values",
+ creatingConstraints:
+ "Creating constraints for the collection items directly on the
collection itself is deprecated since DMN 1.5 and will possibly be removed in
future versions. To prepare your DMN model for future updates, please create a
dedicated Data Type for the items of this list and add constraints there.",
+ noCustomDataTypes: "No custom data types have been defined.",
+ dmnEmptyBody:
+ "Data types are referenced in the input and output values for decision
tables. Custom data types allow you to reference more complex data types,
beyond the simple default types.",
+ duplicateDmnDetected: "Duplicate DMN Data Type Detected",
+ conflictsDetectedMessage:
+ "Conflicts have been detected between imported Java classes and existing
DMN data types. Please review the details below and choose how to proceed.",
+ internalDataTypeConflicts: "Internal Data Type Conflicts",
+ editableDataTypes: "These are editable DMN Types. Choose how to resolve
them.",
+ replaceExistingDmn: "This option will replace the existing DMN type with
the new one.",
+ preserveExistingDmn: "This option will preserve the existing DMN type and
create a new one with a unique name.",
+ replace: "Replace",
+ keepBoth: "Keep Both",
+ startsWith: "Starts with",
+ remove: "Remove",
+ external: "External",
+ id: "ID:",
+ copy: "Copy",
+ isCollection: "Is collection?",
+ deprecated: "Deprecated",
+ newDataType: "New Data Type",
+ paste: "Paste",
+ createCustomDataType: "Create a custom data type",
+ or: "or",
+ pasteDataType: "Paste data type",
+ externalDataTypeConflicts: "External Data Type Conflicts",
+ externalSources: "These types come from external sources and cannot be
replaced.",
+ propertiesInDefinition: (definitionName: string): string => `Properties in
'${definitionName}'`,
+ addItemComponent: "Add item component (at the top)",
+ expandAll: "Expand all",
+ collapseAll: "Collapse all",
+ pasteProperty: "Paste property",
+ expandCollapseItemComponent: "Expand / collapse item component",
+ view: "View",
+ extractDataType: "Extract data type",
+ cut: "Cut",
+ addPropertiesToDefinition: (definitionName: string): string => `Add
property to '${definitionName}'`,
+ builtIn: "Built-in",
+ custom: "Custom",
+ jumpToDefinition: "Jump to definition",
+ selectDataType: "Select a data type...",
+ },
+ nodes: {
+ view: "View",
+ edit: "Edit",
+ output: "OUTPUT",
+ encapsulated: "ENCAPSULATED",
+ doubleClickToName: "Double-click to name",
+ addInformationRequirementEdge: "Add Information Requirement edge",
+ addKnowledgeRequirementEdge: "Add Knowledge Requirement edge",
+ addAuthorityRequirementEdge: "Add Authority Requirement edge",
+ addAssociationEdge: "Add Association edge",
+ addDecisionNode: "Add Decision node",
+ addBkmNode: "Add BKM node",
+ addKnowledgeResourceNode: "Add Knowledge Source node",
+ addTextAnnotationNode: "Add Text Annotation node",
+ emptyDiagram: "Empty Diagram",
+ currentDmnAssociatedDiagram:
+ "The current DMN does not have any Diagram associated with it. Do you
want to auto-generate it?",
+ autoGenerateDiagram: "Auto-generate Diagram",
+ automaticallyPlaceNodes:
+ "Auto generating the diagram will automatically place the nodes with the
default size and shape. You can also manually build your diagram using the DRG
Nodes option from the palette.",
+ dmnDiagramEmpty: "This DMN's Diagram is empty",
+ diagramHasNodesOrOpenAnotherFile: "Make sure the DMN has nodes or try
opening another file",
+ startByDraggingNodes: "Start by dragging nodes from the Palette",
+ newDecisionTable: "New Decision Table...",
+ newDecisionWithInputData: "New Decision with Input Data...",
+ overLays: "Overlays",
+ propertiesPanel: "Properties panel",
+ nodesSelected: (selectedNodesCount: number): string =>
`${selectedNodesCount} nodes selected`,
+ edgesSelected: (selectedEdgesCount: number): string =>
`${selectedEdgesCount} edges selected`,
+ nodeSelected: (nodeCount: number): string => `${nodeCount} node`,
+ edgeSelected: (edgeCount: number): string => `${edgeCount} edge`,
+ nodes: (nodeCount: number): string => `${nodeCount} nodes`,
+ edges: (edgeCount: number): string => `${edgeCount} edges`,
+ selected: "selected",
+ dmnversion: (latestVersion: string): string => `DMN ${latestVersion}`,
+ originallyImportedDmn: (version: string, latestVersion: string): string =>
+ `This DMN was originally imported as DMN ${version}, but was converted
to DMN ${latestVersion} to enable new features.`,
+ drds: "DRDs",
+ newDrd: "new DRD",
+ versionUpgraded: "Version upgraded!",
+ newInDmn: (latestVersion: string): string => `See what's new on DMN
${latestVersion}`,
+ defaultDrd: "You're on the default DRD",
+ addingNodesMakingChanges: "Adding nodes or making changes to the Diagram
will automatically create a DRD for you.",
+ removeDrd: "Remove DRD",
+ remove: "Remove",
+ inputDataNodeShape: "Input Data node shape",
+ classic: "Classic",
+ alternative: "Alternative",
+ noDrgNodes: "No DRG nodes yet",
+ usePaletteLeftHandSide: "Use the Palette on the left-hand-side to drag new
nodes into the Diagram.",
+ drgNodes: "DRG Nodes",
+ selectEditDrd: "Select or edit DRD",
+ inputData: "Input Data",
+ decision: "Decision",
+ businessKnowledgeModel: "Business Knowledge Model",
+ knowledgeSource: "Knowledge Source",
+ decisionService: "Decision Service",
+ group: "Group",
+ textAnnotation: "Text Annotation",
+ externalNodes: "External nodes",
+ drgnodes: "DRG nodes",
+ unknown: "unknown",
+ empty: "<Empty>",
+ input: "Input",
+ },
+ evaluationHightlights: "Evaluation highlights",
+ on: "on",
+ off: "off",
+ externalNodes: {
+ decision: "Decision",
+ inputData: "Input Data",
+ unknown: "Unknown",
+ externalModelTooltip: (nodeTypeTooltipDescription: string, namespace:
string): string =>
+ `This ${nodeTypeTooltipDescription} node is from an external model that
is not included in this one. Namespace: ${namespace}`,
+ noExternalNodesAvailable: "No external nodes available",
+ IncludedModelsHaveNoExportedNodes:
+ "Maybe the included models have no exported nodes, or there are no
included models.",
+ includedModels: "Include model...",
+ externalNodesTitle: "External nodes",
+ },
+ includedModels: {
+ errorOccuredParsing: (selectedPathRelativeToThisDmn: string): string =>
+ `An error occurred when parsing the selected model
'${selectedPathRelativeToThisDmn}'. Please double-check it is a non-empty valid
model.`,
+ includeModel: "Include model",
+ cancel: "Cancel",
+ model: "Model",
+ selectModelToInclude: "Select a model to include...",
+ allModelsAvailablewithName: (externalContextName: string): string =>
+ `All models available in '${externalContextName}' are already included.`,
+ noAvailableModelswithName: (externalContextName: string): string =>
+ `There's no available models in '${externalContextName}' to be
included.`,
+ allModelsAvailable: "All models available are already included.",
+ noAvailableModels: "There's no available models to be included.",
+ loading: "Loading...",
+ noExternalModelsIncluded: "No external models have been included.",
+ externalModelsEmptyMessage:
+ "Included models are externally defined models that have been added to
this DMN file. Included DMN models have their decision requirements diagram
(DRD) or decision requirements graph (DRG) components available in this DMN
file. Included PMML models can be invoked through DMN Boxed Functions, usually
inside Business Knowledge Model nodes (BKMs)",
+ actionHaveMajorImpact: "This action have major impact to your model",
+ removeIncludedModel: (extension: string): string => `Yes, remove included
${extension}`,
+ removeDmnMessage:
+ "Removing an included DMN will erase all its imported nodes and
connected edges from your model. The references to item definitions, Business
Knowledge Model functions, and Decision expressions will remain, requiring to
be manually removed.",
+ removePmmlMessage:
+ "Removing an included PMML will not erase references on Boxed Function
expressions, requiring it to be manually removed.",
+ remove: "Remove",
+ default: "<Default>",
+ externalModelNotFound: "External model not found.",
+ namespace: "Namespace",
+ uri: "URI",
+ },
+ overlaysPanel: {
+ snapping: "Snapping",
+ horizontal: "Horizontal",
+ vertical: "Vertical",
+ highlightSelectedNode: "Highlight selected node(s) hierarchy",
+ showDataTypeToolbar: "Show data type toolbar on nodes",
+ enableStyles: "Enable styles",
+ enableEvaluationHighlights: "Enable evaluation highlights",
+ enableHighlightingDecisionTable:
+ "Enable highlighting Decision Table rules and Boxed Conditional
Expression branches based on evaluation results, also showing success/error
status badges on Decision nodes.",
+ },
+ propertiesPanel: {
+ inputExpression: "Input Expression",
+ constraint: "Constraint",
+ inputValues: "Input Values",
+ id: "ID",
+ alternativeFieldName: (name: string): string => `${name} Name`,
+ alternativeFieldType: (name: string): string => `${name} Type`,
+ defaultOutputEntry: "Default Output Entry",
+ outputValues: "Output Values",
+ outputHeaderType: "Output header type",
+ hitPolicy: "Hit Policy",
+ aggregation: "Aggregation",
+ outputLabel: "Output Label",
+ outputLabelPlaceholder: "Enter a output label...",
+ emptyParameters: "Empty parameters list",
+ parameter: "Parameter ",
+ boxedConditional: "Boxed Conditional",
+ functionTobeCalled: "Function to be called",
+ functionNamePlaceholder: "Enter the function name...",
+ variableToItervateOver: "Variable to interate over",
+ variableNamePlaceholder: "Enter the variable name...",
+ selectExpression: "Select expression",
+ selectedCell: "The selected cell still doesn't have an expresison
associate with it.",
+ noPropertiesToDisplay: "No properties to display",
+ dataType: "Data type",
+ description: "Description",
+ descriptionPlaceholder: "Enter a description...",
+ question: "Question",
+ questionPlaceholder: "Enter a question...",
+ allowedAnswers: "Allowed answers",
+ allowedAnswersPlaceholder: "Enter allowed answers...",
+ outputDecisions: "Output decisions",
+ encapsulatedDecisions: "Encapsulated decisions",
+ inputDecisions: "Input decisions",
+ inputData: "Input data",
+ empty: "Empty",
+ invokingDecisionService: "Invoking this Decision Service in FEEL",
+ placeholderUrlTitle: "Enter a title...",
+ placeholderUrl: "https://...",
+ addDocumentationLink: "Add documentation link",
+ emptyUrl: "Empty URL",
+ removeDocumentationLink: "Remove documentation link",
+ expandCollapseDocLink: "Expand / collapse documentation link",
+ content: "Content",
+ contentPlaceholder: "Enter the content...",
+ expressionLanguage: "Expression Language",
+ expressionLanguagePlaceholder: "Enter the expression language...",
+ expressionContentPlaceholder: "Enter the expression content...",
+ font: "Font",
+ resetFont: "Reset font",
+ globalProperties: "Global properties",
+ idAndNamespace: "ID & Namespace",
+ regenerateIdNamespace: "Re-generate ID & Namespace",
+ diagramIdPlaceholder: "Enter a diagram ID...",
+ copied: "Copied",
+ copy: "Copy",
+ namespace: "Namespace",
+ namespacePlaceholder: "Enter a diagram Namespace...",
+ yesRegenerateIdNamespace: "Yes, re-generate ID and Namespace",
+ regeneratingIdNamespaceMessage:
+ "Re-generating the ID and Namespace of a DMN file will potentially break
other DMN files that depend on it.",
+ sureToContinue: "Are you sure you want to continue?",
+ namePlaceholder: "Enter a name...",
+ sourceType: "Source type",
+ sourceTypePlaceHolder: "Enter source type...",
+ locationUri: "Location URI",
+ locationUriPlaceholder: "Enter location URI...",
+ multiplenodesSize: (size: number): string => `Multiple nodes selected
(${size})`,
+ expandCollapseTitle: (title: string): string => `Expand / collapse
${title}`,
+ shape: "Shape",
+ resetShape: "Reset shape",
+ style: "Style",
+ fillColor: "Fill color",
+ strokeColor: "Stroke color",
+ width: "Width",
+ valuePlaceholder: "Enter a value...",
+ height: "Height",
+ xValuePlaceholder: "Enter X value...",
+ position: "Position",
+ yValuePlaceHolder: "Enter Y value...",
+ format: "Format",
+ formatPlaceholder: "Enter a text format...",
+ text: "Text",
+ textPlaceholder: "Enter text...",
+ nodeReferenceMessage: `This node references an external node with a
namespace that is not declared at this DMN.`,
+ externalDmnNodeReference: `This node references an external node from a
namespace that is not provided on this DMN's external DMNs mapping. `,
+ nameNotExists: (name: string): string => `This node references a DRG
element from '${name}' that doesn't exist.`,
+ goToName: (name: string): string => `Go to '${name}'`,
+ reference: "Reference:",
+ unknownNodePlaceholder: "This is a placeholder for an unknown node",
+ expressionLangPlaceholder: "Enter an expression language...",
+ },
+ boxedExpressionPropertiesPanelTitle: {
+ boxedConditional: "Boxed Conditional",
+ boxedContext: "Boxed Context",
+ boxedContextVariable: "Boxed Context Variable",
+ decisionTable: "Decision Table",
+ variable: "Boxed Context Variable",
+ decisionTableInputHeader: "Decision Table Input Header",
+ decisionTableInputCell: "Decision Table Input Cell",
+ decisionTableOutputHeader: "Decision Table Output Header",
+ decisionTableOutputCell: "Decision Table Output Cell",
+ every: "Boxed Every",
+ boxedEveryVariable: "Boxed Every Variable",
+ filter: "Boxed Filter",
+ for: "Boxed For",
+ boxedForvariable: "Boxed For Variable",
+ functionDefinition: "Function Definition",
+ functionParameters: "Function Parameters",
+ boxedInvocation: "Boxed Invocation",
+ boxedInvocationFunction: "Boxed Invocation Called Function",
+ boxedInvocationParameter: "Boxed Invocation Parameter",
+ list: "Boxed List",
+ literalExpresssion: "Literal Expression",
+ boxedRelation: "Boxed Relation",
+ boxedRelationHeader: "Boxed Relation Header",
+ boxedRelationCell: "Boxed Relation Cell",
+ some: "Boxed Some",
+ boxedsomeVariable: "Boxed Some Variable",
Review Comment:
```suggestion
boxedSomeVariable: "Boxed Some Variable",
```
##########
packages/dmn-editor/src/refactor/RefactorConfirmationDialog.tsx:
##########
@@ -44,48 +45,49 @@ export function RefactorConfirmationDialog({
fromName: string | undefined;
toName: string | undefined;
}) {
+ const { i18n } = useDmnEditorI18n();
return (
<Modal
aria-labelledby={"identifier-renamed"}
variant={ModalVariant.small}
isOpen={isRefactorModalOpen}
showClose={true}
onClose={onCancel}
- title={"Renaming identifier"}
+ title={i18n.renamingIdentifier}
actions={[
<Button key="confirm" variant={ButtonVariant.primary}
onClick={onConfirmExpressionRefactor}>
- Yes, rename and replace
+ {i18n.renameAndReplace}
</Button>,
<Button key="rename" variant={ButtonVariant.secondary}
onClick={onConfirmRenameOnly}>
- No, just rename
+ {i18n.justRename}
</Button>,
<Button key="cancel" variant={ButtonVariant.link} onClick={onCancel}>
- Cancel
+ {i18n.cancel}
</Button>,
]}
>
- The identifier{" "}
+ {i18n.theIdentifier}{" "}
<pre style={{ display: "inline" }}>
{'"'}
{fromName ?? "<undefined>"}
{'"'}
</pre>{" "}
- was renamed to{" "}
+ {i18n.renamedTo}{" "}
<pre style={{ display: "inline" }}>
{'"'}
{toName ?? "<undefined>"}
{'"'}
</pre>
- , and it is used by one or more expressions.
+ {i18n.usedByOneOrMoreExpressions}
<br />
<br />
- Would you like to automatically replace all occurrences of{" "}
+ {i18n.automaticallyReplaceAll}{" "}
<pre style={{ display: "inline" }}>
{'"'}
{fromName ?? "<undefined>"}
{'"'}
</pre>{" "}
- with{" "}
+ {i18n.with}{" "}
Review Comment:
Please, use the `I18nWrapper` component here
##########
packages/dmn-editor/src/dataTypes/DataTypePanel.tsx:
##########
@@ -406,20 +409,21 @@ export function DataTypePanel({
<br />
<Flex direction={{ default: "row" }} alignItems={{ default:
"alignItemsCenter" }}>
<Title size={"md"} headingLevel="h4">
- Collection item constraint
+ {i18n.dataTypes.collectionItemConstraint}
</Title>
<Popover
showClose={false}
isVisible={isCollectionItemConstraintPopoverOpen}
shouldClose={() =>
setIsCollectionItemConstraintPopoverOpen(false)}
- headerContent="Collection Item Constraints (Allowed
Values)"
+
headerContent={i18n.dataTypes.collectionItemConstraintAllowedValues}
headerIcon={<InfoAltIcon />}
headerComponent="h1"
bodyContent={
<p>
- As per the DMN specification, the <b>Allowed
Values</b> attribute lists the possible values
+ {i18n.dataTypes.dmnSpecification}
<b>{i18n.dataTypes.allowedValues}</b>{" "}
+ {i18n.dataTypes.attributeListsPossibleValues}
<br />
- or ranges of values in the base type that are allowed
in this ItemDefinition.
+ {i18n.dataTypes.rangeOfValuesAllowed}
</p>
Review Comment:
Please, use the `I18nWrapper` component for this case.
##########
packages/dmn-editor/src/refactor/RefactorConfirmationDialog.tsx:
##########
@@ -44,48 +45,49 @@ export function RefactorConfirmationDialog({
fromName: string | undefined;
toName: string | undefined;
}) {
+ const { i18n } = useDmnEditorI18n();
return (
<Modal
aria-labelledby={"identifier-renamed"}
variant={ModalVariant.small}
isOpen={isRefactorModalOpen}
showClose={true}
onClose={onCancel}
- title={"Renaming identifier"}
+ title={i18n.renamingIdentifier}
actions={[
<Button key="confirm" variant={ButtonVariant.primary}
onClick={onConfirmExpressionRefactor}>
- Yes, rename and replace
+ {i18n.renameAndReplace}
</Button>,
<Button key="rename" variant={ButtonVariant.secondary}
onClick={onConfirmRenameOnly}>
- No, just rename
+ {i18n.justRename}
</Button>,
<Button key="cancel" variant={ButtonVariant.link} onClick={onCancel}>
- Cancel
+ {i18n.cancel}
</Button>,
]}
>
- The identifier{" "}
+ {i18n.theIdentifier}{" "}
<pre style={{ display: "inline" }}>
{'"'}
{fromName ?? "<undefined>"}
{'"'}
</pre>{" "}
- was renamed to{" "}
+ {i18n.renamedTo}{" "}
<pre style={{ display: "inline" }}>
{'"'}
{toName ?? "<undefined>"}
{'"'}
</pre>
- , and it is used by one or more expressions.
+ {i18n.usedByOneOrMoreExpressions}
Review Comment:
Please, use the `I18nWrapper` component here
##########
packages/dmn-editor/src/i18n/locales/en.ts:
##########
@@ -0,0 +1,398 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import { en as en_common } from "@kie-tools/i18n-common-dictionary";
+import { DmnEditorI18n } from "../DmnEditorI18n";
+import { title } from "process";
+
+export const en: DmnEditorI18n = {
+ ...en_common,
+ autoLayout: "Autolayout (beta)",
+ backToDiagram: "Back to Diagram",
+ yourAnnotationsHere: "// Your annotations here",
+ filter: "Filter...",
+ close: "Close",
+ dmn: "DMN",
+ pmml: "PMML",
+ none: "None",
+ noneYet: "None yet",
+ name: "Name",
+ cancel: "Cancel",
+ with: "with",
+ dataTypes: {
+ days: "Days",
+ hours: "Hours",
+ minutes: "Minutes",
+ seconds: "Seconds",
+ tweakTheTimezone: "To tweak the timezone it's necessary to set a time
first",
+ selectTimezone: "Select timezone",
+ years: "Years",
+ months: "Months",
+ dataTypeConstraints: "This data type doesn't support constraints",
+ enumeration: "Enumeration",
+ expression: "Expression",
+ range: "Range",
+ allValuesAllowed: "All values are allowed",
+ addEnumValue: "Add enum value",
+ addValue: "Add value",
+ removeEnumValue: "Remove enum value",
+ equivalentFeelExpression: "Equivalent FEEL expression:",
+ checkThe: "Check the",
+ feelHandbook: "FEEL handbook",
+ creatingAnExpression: "to help you on creating your expressions.",
+ nextValidDate: (value: string, operator: string): string =>
+ `The next valid number is: (${value} ${operator} 1 Day).`,
+ nextValidDateTime: (value: string, operator: string): string =>
+ `The next valid number is: (${value} ${operator} 1 Second).`,
+ nextValidNumber: (value: string, operator: string): string =>
+ `The next valid number is: (${value} ${operator} 2e-52).`,
+ nextValidYearsAndMonths: (value: string, operator: string): string =>
+ `The next valid number is: (${value} ${operator} 1 Month).`,
+ start: "Start",
+ clickToRemoveValue: "Click to remove value from the range",
+ clickToIncludeValue: "Click to include value in the range",
+ startingValueIncluded: "The starting value will be included in the range.",
+ startingValueNotIncluded: "The starting value will not be included in the
range.",
+ clickToRemoveValueFromRange: "Click to remove value from the range",
+ clickToIncludeInRange: "Click to include value in the range",
+ endsWith: "Ends with",
+ endingValueIncludedInRange: "The ending value will be included in the
range.",
+ endingValueNotIncludedInRange: "The ending value will not be included in
the range.",
+ descriptionPlaceholder: "Enter a description...",
+ isStruct: "Is struct?",
+ type: "Type",
+ collectionConstraint: "Collection constraint",
+ collectionConstrainsTypeConstraint: "Collection Constraints (Type
Constraint)",
+ dmnSpecification: "As per the DMN specification, the ",
+ typeConstraint: "Type Constraint",
+ attributeListsPossibleValues: "attribute lists the possible values",
+ rangeOfValuesAllowed: "or ranges of values in the base type that are
allowed in this ItemDefinition.",
+ collectionItemConstraint: "Collection item constraint",
+ collectionItemConstraintAllowedValues: "Collection Item Constraints
(Allowed Values)",
+ allowedValues: "Allowed Values",
+ creatingConstraints:
+ "Creating constraints for the collection items directly on the
collection itself is deprecated since DMN 1.5 and will possibly be removed in
future versions. To prepare your DMN model for future updates, please create a
dedicated Data Type for the items of this list and add constraints there.",
+ noCustomDataTypes: "No custom data types have been defined.",
+ dmnEmptyBody:
+ "Data types are referenced in the input and output values for decision
tables. Custom data types allow you to reference more complex data types,
beyond the simple default types.",
+ duplicateDmnDetected: "Duplicate DMN Data Type Detected",
+ conflictsDetectedMessage:
+ "Conflicts have been detected between imported Java classes and existing
DMN data types. Please review the details below and choose how to proceed.",
+ internalDataTypeConflicts: "Internal Data Type Conflicts",
+ editableDataTypes: "These are editable DMN Types. Choose how to resolve
them.",
+ replaceExistingDmn: "This option will replace the existing DMN type with
the new one.",
+ preserveExistingDmn: "This option will preserve the existing DMN type and
create a new one with a unique name.",
+ replace: "Replace",
+ keepBoth: "Keep Both",
+ startsWith: "Starts with",
+ remove: "Remove",
+ external: "External",
+ id: "ID:",
+ copy: "Copy",
+ isCollection: "Is collection?",
+ deprecated: "Deprecated",
+ newDataType: "New Data Type",
+ paste: "Paste",
+ createCustomDataType: "Create a custom data type",
+ or: "or",
+ pasteDataType: "Paste data type",
+ externalDataTypeConflicts: "External Data Type Conflicts",
+ externalSources: "These types come from external sources and cannot be
replaced.",
+ propertiesInDefinition: (definitionName: string): string => `Properties in
'${definitionName}'`,
+ addItemComponent: "Add item component (at the top)",
+ expandAll: "Expand all",
+ collapseAll: "Collapse all",
+ pasteProperty: "Paste property",
+ expandCollapseItemComponent: "Expand / collapse item component",
+ view: "View",
+ extractDataType: "Extract data type",
+ cut: "Cut",
+ addPropertiesToDefinition: (definitionName: string): string => `Add
property to '${definitionName}'`,
+ builtIn: "Built-in",
+ custom: "Custom",
+ jumpToDefinition: "Jump to definition",
+ selectDataType: "Select a data type...",
+ },
+ nodes: {
+ view: "View",
+ edit: "Edit",
+ output: "OUTPUT",
+ encapsulated: "ENCAPSULATED",
+ doubleClickToName: "Double-click to name",
+ addInformationRequirementEdge: "Add Information Requirement edge",
+ addKnowledgeRequirementEdge: "Add Knowledge Requirement edge",
+ addAuthorityRequirementEdge: "Add Authority Requirement edge",
+ addAssociationEdge: "Add Association edge",
+ addDecisionNode: "Add Decision node",
+ addBkmNode: "Add BKM node",
+ addKnowledgeResourceNode: "Add Knowledge Source node",
+ addTextAnnotationNode: "Add Text Annotation node",
+ emptyDiagram: "Empty Diagram",
+ currentDmnAssociatedDiagram:
+ "The current DMN does not have any Diagram associated with it. Do you
want to auto-generate it?",
+ autoGenerateDiagram: "Auto-generate Diagram",
+ automaticallyPlaceNodes:
+ "Auto generating the diagram will automatically place the nodes with the
default size and shape. You can also manually build your diagram using the DRG
Nodes option from the palette.",
+ dmnDiagramEmpty: "This DMN's Diagram is empty",
+ diagramHasNodesOrOpenAnotherFile: "Make sure the DMN has nodes or try
opening another file",
+ startByDraggingNodes: "Start by dragging nodes from the Palette",
+ newDecisionTable: "New Decision Table...",
+ newDecisionWithInputData: "New Decision with Input Data...",
+ overLays: "Overlays",
+ propertiesPanel: "Properties panel",
+ nodesSelected: (selectedNodesCount: number): string =>
`${selectedNodesCount} nodes selected`,
+ edgesSelected: (selectedEdgesCount: number): string =>
`${selectedEdgesCount} edges selected`,
+ nodeSelected: (nodeCount: number): string => `${nodeCount} node`,
+ edgeSelected: (edgeCount: number): string => `${edgeCount} edge`,
+ nodes: (nodeCount: number): string => `${nodeCount} nodes`,
+ edges: (edgeCount: number): string => `${edgeCount} edges`,
+ selected: "selected",
+ dmnversion: (latestVersion: string): string => `DMN ${latestVersion}`,
+ originallyImportedDmn: (version: string, latestVersion: string): string =>
+ `This DMN was originally imported as DMN ${version}, but was converted
to DMN ${latestVersion} to enable new features.`,
+ drds: "DRDs",
+ newDrd: "new DRD",
+ versionUpgraded: "Version upgraded!",
+ newInDmn: (latestVersion: string): string => `See what's new on DMN
${latestVersion}`,
+ defaultDrd: "You're on the default DRD",
+ addingNodesMakingChanges: "Adding nodes or making changes to the Diagram
will automatically create a DRD for you.",
+ removeDrd: "Remove DRD",
+ remove: "Remove",
+ inputDataNodeShape: "Input Data node shape",
+ classic: "Classic",
+ alternative: "Alternative",
+ noDrgNodes: "No DRG nodes yet",
+ usePaletteLeftHandSide: "Use the Palette on the left-hand-side to drag new
nodes into the Diagram.",
+ drgNodes: "DRG Nodes",
+ selectEditDrd: "Select or edit DRD",
+ inputData: "Input Data",
+ decision: "Decision",
+ businessKnowledgeModel: "Business Knowledge Model",
+ knowledgeSource: "Knowledge Source",
+ decisionService: "Decision Service",
+ group: "Group",
+ textAnnotation: "Text Annotation",
+ externalNodes: "External nodes",
+ drgnodes: "DRG nodes",
+ unknown: "unknown",
+ empty: "<Empty>",
+ input: "Input",
+ },
+ evaluationHightlights: "Evaluation highlights",
+ on: "on",
+ off: "off",
+ externalNodes: {
+ decision: "Decision",
+ inputData: "Input Data",
+ unknown: "Unknown",
+ externalModelTooltip: (nodeTypeTooltipDescription: string, namespace:
string): string =>
+ `This ${nodeTypeTooltipDescription} node is from an external model that
is not included in this one. Namespace: ${namespace}`,
+ noExternalNodesAvailable: "No external nodes available",
+ IncludedModelsHaveNoExportedNodes:
+ "Maybe the included models have no exported nodes, or there are no
included models.",
+ includedModels: "Include model...",
+ externalNodesTitle: "External nodes",
+ },
+ includedModels: {
+ errorOccuredParsing: (selectedPathRelativeToThisDmn: string): string =>
+ `An error occurred when parsing the selected model
'${selectedPathRelativeToThisDmn}'. Please double-check it is a non-empty valid
model.`,
+ includeModel: "Include model",
+ cancel: "Cancel",
+ model: "Model",
+ selectModelToInclude: "Select a model to include...",
+ allModelsAvailablewithName: (externalContextName: string): string =>
+ `All models available in '${externalContextName}' are already included.`,
+ noAvailableModelswithName: (externalContextName: string): string =>
+ `There's no available models in '${externalContextName}' to be
included.`,
+ allModelsAvailable: "All models available are already included.",
+ noAvailableModels: "There's no available models to be included.",
+ loading: "Loading...",
+ noExternalModelsIncluded: "No external models have been included.",
+ externalModelsEmptyMessage:
+ "Included models are externally defined models that have been added to
this DMN file. Included DMN models have their decision requirements diagram
(DRD) or decision requirements graph (DRG) components available in this DMN
file. Included PMML models can be invoked through DMN Boxed Functions, usually
inside Business Knowledge Model nodes (BKMs)",
+ actionHaveMajorImpact: "This action have major impact to your model",
+ removeIncludedModel: (extension: string): string => `Yes, remove included
${extension}`,
+ removeDmnMessage:
+ "Removing an included DMN will erase all its imported nodes and
connected edges from your model. The references to item definitions, Business
Knowledge Model functions, and Decision expressions will remain, requiring to
be manually removed.",
+ removePmmlMessage:
+ "Removing an included PMML will not erase references on Boxed Function
expressions, requiring it to be manually removed.",
+ remove: "Remove",
+ default: "<Default>",
+ externalModelNotFound: "External model not found.",
+ namespace: "Namespace",
+ uri: "URI",
+ },
+ overlaysPanel: {
+ snapping: "Snapping",
+ horizontal: "Horizontal",
+ vertical: "Vertical",
+ highlightSelectedNode: "Highlight selected node(s) hierarchy",
+ showDataTypeToolbar: "Show data type toolbar on nodes",
+ enableStyles: "Enable styles",
+ enableEvaluationHighlights: "Enable evaluation highlights",
+ enableHighlightingDecisionTable:
+ "Enable highlighting Decision Table rules and Boxed Conditional
Expression branches based on evaluation results, also showing success/error
status badges on Decision nodes.",
+ },
+ propertiesPanel: {
+ inputExpression: "Input Expression",
+ constraint: "Constraint",
+ inputValues: "Input Values",
+ id: "ID",
+ alternativeFieldName: (name: string): string => `${name} Name`,
+ alternativeFieldType: (name: string): string => `${name} Type`,
+ defaultOutputEntry: "Default Output Entry",
+ outputValues: "Output Values",
+ outputHeaderType: "Output header type",
+ hitPolicy: "Hit Policy",
+ aggregation: "Aggregation",
+ outputLabel: "Output Label",
+ outputLabelPlaceholder: "Enter a output label...",
+ emptyParameters: "Empty parameters list",
+ parameter: "Parameter ",
+ boxedConditional: "Boxed Conditional",
+ functionTobeCalled: "Function to be called",
Review Comment:
```suggestion
functionToBeCalled: "Function to be called",
```
##########
packages/dmn-editor/src/i18n/locales/en.ts:
##########
@@ -0,0 +1,398 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import { en as en_common } from "@kie-tools/i18n-common-dictionary";
+import { DmnEditorI18n } from "../DmnEditorI18n";
+import { title } from "process";
+
+export const en: DmnEditorI18n = {
+ ...en_common,
+ autoLayout: "Autolayout (beta)",
+ backToDiagram: "Back to Diagram",
+ yourAnnotationsHere: "// Your annotations here",
+ filter: "Filter...",
+ close: "Close",
+ dmn: "DMN",
+ pmml: "PMML",
+ none: "None",
+ noneYet: "None yet",
+ name: "Name",
+ cancel: "Cancel",
+ with: "with",
+ dataTypes: {
+ days: "Days",
+ hours: "Hours",
+ minutes: "Minutes",
+ seconds: "Seconds",
+ tweakTheTimezone: "To tweak the timezone it's necessary to set a time
first",
+ selectTimezone: "Select timezone",
+ years: "Years",
+ months: "Months",
+ dataTypeConstraints: "This data type doesn't support constraints",
+ enumeration: "Enumeration",
+ expression: "Expression",
+ range: "Range",
+ allValuesAllowed: "All values are allowed",
+ addEnumValue: "Add enum value",
+ addValue: "Add value",
+ removeEnumValue: "Remove enum value",
+ equivalentFeelExpression: "Equivalent FEEL expression:",
+ checkThe: "Check the",
+ feelHandbook: "FEEL handbook",
+ creatingAnExpression: "to help you on creating your expressions.",
+ nextValidDate: (value: string, operator: string): string =>
+ `The next valid number is: (${value} ${operator} 1 Day).`,
+ nextValidDateTime: (value: string, operator: string): string =>
+ `The next valid number is: (${value} ${operator} 1 Second).`,
+ nextValidNumber: (value: string, operator: string): string =>
+ `The next valid number is: (${value} ${operator} 2e-52).`,
+ nextValidYearsAndMonths: (value: string, operator: string): string =>
+ `The next valid number is: (${value} ${operator} 1 Month).`,
+ start: "Start",
+ clickToRemoveValue: "Click to remove value from the range",
+ clickToIncludeValue: "Click to include value in the range",
+ startingValueIncluded: "The starting value will be included in the range.",
+ startingValueNotIncluded: "The starting value will not be included in the
range.",
+ clickToRemoveValueFromRange: "Click to remove value from the range",
+ clickToIncludeInRange: "Click to include value in the range",
+ endsWith: "Ends with",
+ endingValueIncludedInRange: "The ending value will be included in the
range.",
+ endingValueNotIncludedInRange: "The ending value will not be included in
the range.",
+ descriptionPlaceholder: "Enter a description...",
+ isStruct: "Is struct?",
+ type: "Type",
+ collectionConstraint: "Collection constraint",
+ collectionConstrainsTypeConstraint: "Collection Constraints (Type
Constraint)",
+ dmnSpecification: "As per the DMN specification, the ",
+ typeConstraint: "Type Constraint",
+ attributeListsPossibleValues: "attribute lists the possible values",
+ rangeOfValuesAllowed: "or ranges of values in the base type that are
allowed in this ItemDefinition.",
+ collectionItemConstraint: "Collection item constraint",
+ collectionItemConstraintAllowedValues: "Collection Item Constraints
(Allowed Values)",
+ allowedValues: "Allowed Values",
+ creatingConstraints:
+ "Creating constraints for the collection items directly on the
collection itself is deprecated since DMN 1.5 and will possibly be removed in
future versions. To prepare your DMN model for future updates, please create a
dedicated Data Type for the items of this list and add constraints there.",
+ noCustomDataTypes: "No custom data types have been defined.",
+ dmnEmptyBody:
+ "Data types are referenced in the input and output values for decision
tables. Custom data types allow you to reference more complex data types,
beyond the simple default types.",
+ duplicateDmnDetected: "Duplicate DMN Data Type Detected",
+ conflictsDetectedMessage:
+ "Conflicts have been detected between imported Java classes and existing
DMN data types. Please review the details below and choose how to proceed.",
+ internalDataTypeConflicts: "Internal Data Type Conflicts",
+ editableDataTypes: "These are editable DMN Types. Choose how to resolve
them.",
+ replaceExistingDmn: "This option will replace the existing DMN type with
the new one.",
+ preserveExistingDmn: "This option will preserve the existing DMN type and
create a new one with a unique name.",
+ replace: "Replace",
+ keepBoth: "Keep Both",
+ startsWith: "Starts with",
+ remove: "Remove",
+ external: "External",
+ id: "ID:",
+ copy: "Copy",
+ isCollection: "Is collection?",
+ deprecated: "Deprecated",
+ newDataType: "New Data Type",
+ paste: "Paste",
+ createCustomDataType: "Create a custom data type",
+ or: "or",
+ pasteDataType: "Paste data type",
+ externalDataTypeConflicts: "External Data Type Conflicts",
+ externalSources: "These types come from external sources and cannot be
replaced.",
+ propertiesInDefinition: (definitionName: string): string => `Properties in
'${definitionName}'`,
+ addItemComponent: "Add item component (at the top)",
+ expandAll: "Expand all",
+ collapseAll: "Collapse all",
+ pasteProperty: "Paste property",
+ expandCollapseItemComponent: "Expand / collapse item component",
+ view: "View",
+ extractDataType: "Extract data type",
+ cut: "Cut",
+ addPropertiesToDefinition: (definitionName: string): string => `Add
property to '${definitionName}'`,
+ builtIn: "Built-in",
+ custom: "Custom",
+ jumpToDefinition: "Jump to definition",
+ selectDataType: "Select a data type...",
+ },
+ nodes: {
+ view: "View",
+ edit: "Edit",
+ output: "OUTPUT",
+ encapsulated: "ENCAPSULATED",
+ doubleClickToName: "Double-click to name",
+ addInformationRequirementEdge: "Add Information Requirement edge",
+ addKnowledgeRequirementEdge: "Add Knowledge Requirement edge",
+ addAuthorityRequirementEdge: "Add Authority Requirement edge",
+ addAssociationEdge: "Add Association edge",
+ addDecisionNode: "Add Decision node",
+ addBkmNode: "Add BKM node",
+ addKnowledgeResourceNode: "Add Knowledge Source node",
+ addTextAnnotationNode: "Add Text Annotation node",
+ emptyDiagram: "Empty Diagram",
+ currentDmnAssociatedDiagram:
+ "The current DMN does not have any Diagram associated with it. Do you
want to auto-generate it?",
+ autoGenerateDiagram: "Auto-generate Diagram",
+ automaticallyPlaceNodes:
+ "Auto generating the diagram will automatically place the nodes with the
default size and shape. You can also manually build your diagram using the DRG
Nodes option from the palette.",
+ dmnDiagramEmpty: "This DMN's Diagram is empty",
+ diagramHasNodesOrOpenAnotherFile: "Make sure the DMN has nodes or try
opening another file",
+ startByDraggingNodes: "Start by dragging nodes from the Palette",
+ newDecisionTable: "New Decision Table...",
+ newDecisionWithInputData: "New Decision with Input Data...",
+ overLays: "Overlays",
+ propertiesPanel: "Properties panel",
+ nodesSelected: (selectedNodesCount: number): string =>
`${selectedNodesCount} nodes selected`,
+ edgesSelected: (selectedEdgesCount: number): string =>
`${selectedEdgesCount} edges selected`,
+ nodeSelected: (nodeCount: number): string => `${nodeCount} node`,
+ edgeSelected: (edgeCount: number): string => `${edgeCount} edge`,
+ nodes: (nodeCount: number): string => `${nodeCount} nodes`,
+ edges: (edgeCount: number): string => `${edgeCount} edges`,
+ selected: "selected",
+ dmnversion: (latestVersion: string): string => `DMN ${latestVersion}`,
+ originallyImportedDmn: (version: string, latestVersion: string): string =>
+ `This DMN was originally imported as DMN ${version}, but was converted
to DMN ${latestVersion} to enable new features.`,
+ drds: "DRDs",
+ newDrd: "new DRD",
+ versionUpgraded: "Version upgraded!",
+ newInDmn: (latestVersion: string): string => `See what's new on DMN
${latestVersion}`,
+ defaultDrd: "You're on the default DRD",
+ addingNodesMakingChanges: "Adding nodes or making changes to the Diagram
will automatically create a DRD for you.",
+ removeDrd: "Remove DRD",
+ remove: "Remove",
+ inputDataNodeShape: "Input Data node shape",
+ classic: "Classic",
+ alternative: "Alternative",
+ noDrgNodes: "No DRG nodes yet",
+ usePaletteLeftHandSide: "Use the Palette on the left-hand-side to drag new
nodes into the Diagram.",
+ drgNodes: "DRG Nodes",
+ selectEditDrd: "Select or edit DRD",
+ inputData: "Input Data",
+ decision: "Decision",
+ businessKnowledgeModel: "Business Knowledge Model",
+ knowledgeSource: "Knowledge Source",
+ decisionService: "Decision Service",
+ group: "Group",
+ textAnnotation: "Text Annotation",
+ externalNodes: "External nodes",
+ drgnodes: "DRG nodes",
+ unknown: "unknown",
+ empty: "<Empty>",
+ input: "Input",
+ },
+ evaluationHightlights: "Evaluation highlights",
+ on: "on",
+ off: "off",
+ externalNodes: {
+ decision: "Decision",
+ inputData: "Input Data",
+ unknown: "Unknown",
+ externalModelTooltip: (nodeTypeTooltipDescription: string, namespace:
string): string =>
+ `This ${nodeTypeTooltipDescription} node is from an external model that
is not included in this one. Namespace: ${namespace}`,
+ noExternalNodesAvailable: "No external nodes available",
+ IncludedModelsHaveNoExportedNodes:
+ "Maybe the included models have no exported nodes, or there are no
included models.",
+ includedModels: "Include model...",
+ externalNodesTitle: "External nodes",
+ },
+ includedModels: {
+ errorOccuredParsing: (selectedPathRelativeToThisDmn: string): string =>
+ `An error occurred when parsing the selected model
'${selectedPathRelativeToThisDmn}'. Please double-check it is a non-empty valid
model.`,
+ includeModel: "Include model",
+ cancel: "Cancel",
+ model: "Model",
+ selectModelToInclude: "Select a model to include...",
+ allModelsAvailablewithName: (externalContextName: string): string =>
+ `All models available in '${externalContextName}' are already included.`,
+ noAvailableModelswithName: (externalContextName: string): string =>
+ `There's no available models in '${externalContextName}' to be
included.`,
+ allModelsAvailable: "All models available are already included.",
+ noAvailableModels: "There's no available models to be included.",
+ loading: "Loading...",
+ noExternalModelsIncluded: "No external models have been included.",
+ externalModelsEmptyMessage:
+ "Included models are externally defined models that have been added to
this DMN file. Included DMN models have their decision requirements diagram
(DRD) or decision requirements graph (DRG) components available in this DMN
file. Included PMML models can be invoked through DMN Boxed Functions, usually
inside Business Knowledge Model nodes (BKMs)",
+ actionHaveMajorImpact: "This action have major impact to your model",
+ removeIncludedModel: (extension: string): string => `Yes, remove included
${extension}`,
+ removeDmnMessage:
+ "Removing an included DMN will erase all its imported nodes and
connected edges from your model. The references to item definitions, Business
Knowledge Model functions, and Decision expressions will remain, requiring to
be manually removed.",
+ removePmmlMessage:
+ "Removing an included PMML will not erase references on Boxed Function
expressions, requiring it to be manually removed.",
+ remove: "Remove",
+ default: "<Default>",
+ externalModelNotFound: "External model not found.",
+ namespace: "Namespace",
+ uri: "URI",
+ },
+ overlaysPanel: {
+ snapping: "Snapping",
+ horizontal: "Horizontal",
+ vertical: "Vertical",
+ highlightSelectedNode: "Highlight selected node(s) hierarchy",
+ showDataTypeToolbar: "Show data type toolbar on nodes",
+ enableStyles: "Enable styles",
+ enableEvaluationHighlights: "Enable evaluation highlights",
+ enableHighlightingDecisionTable:
+ "Enable highlighting Decision Table rules and Boxed Conditional
Expression branches based on evaluation results, also showing success/error
status badges on Decision nodes.",
+ },
+ propertiesPanel: {
+ inputExpression: "Input Expression",
+ constraint: "Constraint",
+ inputValues: "Input Values",
+ id: "ID",
+ alternativeFieldName: (name: string): string => `${name} Name`,
+ alternativeFieldType: (name: string): string => `${name} Type`,
+ defaultOutputEntry: "Default Output Entry",
+ outputValues: "Output Values",
+ outputHeaderType: "Output header type",
+ hitPolicy: "Hit Policy",
+ aggregation: "Aggregation",
+ outputLabel: "Output Label",
+ outputLabelPlaceholder: "Enter a output label...",
+ emptyParameters: "Empty parameters list",
+ parameter: "Parameter ",
+ boxedConditional: "Boxed Conditional",
+ functionTobeCalled: "Function to be called",
+ functionNamePlaceholder: "Enter the function name...",
+ variableToItervateOver: "Variable to interate over",
Review Comment:
```suggestion
variableToIterateOver: "Variable to interate over",
```
##########
packages/dmn-editor/src/i18n/locales/en.ts:
##########
@@ -0,0 +1,398 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import { en as en_common } from "@kie-tools/i18n-common-dictionary";
+import { DmnEditorI18n } from "../DmnEditorI18n";
+import { title } from "process";
+
+export const en: DmnEditorI18n = {
+ ...en_common,
+ autoLayout: "Autolayout (beta)",
+ backToDiagram: "Back to Diagram",
+ yourAnnotationsHere: "// Your annotations here",
+ filter: "Filter...",
+ close: "Close",
+ dmn: "DMN",
+ pmml: "PMML",
+ none: "None",
+ noneYet: "None yet",
+ name: "Name",
+ cancel: "Cancel",
+ with: "with",
+ dataTypes: {
+ days: "Days",
+ hours: "Hours",
+ minutes: "Minutes",
+ seconds: "Seconds",
+ tweakTheTimezone: "To tweak the timezone it's necessary to set a time
first",
+ selectTimezone: "Select timezone",
+ years: "Years",
+ months: "Months",
+ dataTypeConstraints: "This data type doesn't support constraints",
+ enumeration: "Enumeration",
+ expression: "Expression",
+ range: "Range",
+ allValuesAllowed: "All values are allowed",
+ addEnumValue: "Add enum value",
+ addValue: "Add value",
+ removeEnumValue: "Remove enum value",
+ equivalentFeelExpression: "Equivalent FEEL expression:",
+ checkThe: "Check the",
+ feelHandbook: "FEEL handbook",
+ creatingAnExpression: "to help you on creating your expressions.",
+ nextValidDate: (value: string, operator: string): string =>
+ `The next valid number is: (${value} ${operator} 1 Day).`,
+ nextValidDateTime: (value: string, operator: string): string =>
+ `The next valid number is: (${value} ${operator} 1 Second).`,
+ nextValidNumber: (value: string, operator: string): string =>
+ `The next valid number is: (${value} ${operator} 2e-52).`,
+ nextValidYearsAndMonths: (value: string, operator: string): string =>
+ `The next valid number is: (${value} ${operator} 1 Month).`,
+ start: "Start",
+ clickToRemoveValue: "Click to remove value from the range",
+ clickToIncludeValue: "Click to include value in the range",
+ startingValueIncluded: "The starting value will be included in the range.",
+ startingValueNotIncluded: "The starting value will not be included in the
range.",
+ clickToRemoveValueFromRange: "Click to remove value from the range",
+ clickToIncludeInRange: "Click to include value in the range",
+ endsWith: "Ends with",
+ endingValueIncludedInRange: "The ending value will be included in the
range.",
+ endingValueNotIncludedInRange: "The ending value will not be included in
the range.",
+ descriptionPlaceholder: "Enter a description...",
+ isStruct: "Is struct?",
+ type: "Type",
+ collectionConstraint: "Collection constraint",
+ collectionConstrainsTypeConstraint: "Collection Constraints (Type
Constraint)",
+ dmnSpecification: "As per the DMN specification, the ",
+ typeConstraint: "Type Constraint",
+ attributeListsPossibleValues: "attribute lists the possible values",
+ rangeOfValuesAllowed: "or ranges of values in the base type that are
allowed in this ItemDefinition.",
+ collectionItemConstraint: "Collection item constraint",
+ collectionItemConstraintAllowedValues: "Collection Item Constraints
(Allowed Values)",
+ allowedValues: "Allowed Values",
+ creatingConstraints:
+ "Creating constraints for the collection items directly on the
collection itself is deprecated since DMN 1.5 and will possibly be removed in
future versions. To prepare your DMN model for future updates, please create a
dedicated Data Type for the items of this list and add constraints there.",
+ noCustomDataTypes: "No custom data types have been defined.",
+ dmnEmptyBody:
+ "Data types are referenced in the input and output values for decision
tables. Custom data types allow you to reference more complex data types,
beyond the simple default types.",
+ duplicateDmnDetected: "Duplicate DMN Data Type Detected",
+ conflictsDetectedMessage:
+ "Conflicts have been detected between imported Java classes and existing
DMN data types. Please review the details below and choose how to proceed.",
+ internalDataTypeConflicts: "Internal Data Type Conflicts",
+ editableDataTypes: "These are editable DMN Types. Choose how to resolve
them.",
+ replaceExistingDmn: "This option will replace the existing DMN type with
the new one.",
+ preserveExistingDmn: "This option will preserve the existing DMN type and
create a new one with a unique name.",
+ replace: "Replace",
+ keepBoth: "Keep Both",
+ startsWith: "Starts with",
+ remove: "Remove",
+ external: "External",
+ id: "ID:",
+ copy: "Copy",
+ isCollection: "Is collection?",
+ deprecated: "Deprecated",
+ newDataType: "New Data Type",
+ paste: "Paste",
+ createCustomDataType: "Create a custom data type",
+ or: "or",
+ pasteDataType: "Paste data type",
+ externalDataTypeConflicts: "External Data Type Conflicts",
+ externalSources: "These types come from external sources and cannot be
replaced.",
+ propertiesInDefinition: (definitionName: string): string => `Properties in
'${definitionName}'`,
+ addItemComponent: "Add item component (at the top)",
+ expandAll: "Expand all",
+ collapseAll: "Collapse all",
+ pasteProperty: "Paste property",
+ expandCollapseItemComponent: "Expand / collapse item component",
+ view: "View",
+ extractDataType: "Extract data type",
+ cut: "Cut",
+ addPropertiesToDefinition: (definitionName: string): string => `Add
property to '${definitionName}'`,
+ builtIn: "Built-in",
+ custom: "Custom",
+ jumpToDefinition: "Jump to definition",
+ selectDataType: "Select a data type...",
+ },
+ nodes: {
+ view: "View",
+ edit: "Edit",
+ output: "OUTPUT",
+ encapsulated: "ENCAPSULATED",
+ doubleClickToName: "Double-click to name",
+ addInformationRequirementEdge: "Add Information Requirement edge",
+ addKnowledgeRequirementEdge: "Add Knowledge Requirement edge",
+ addAuthorityRequirementEdge: "Add Authority Requirement edge",
+ addAssociationEdge: "Add Association edge",
+ addDecisionNode: "Add Decision node",
+ addBkmNode: "Add BKM node",
+ addKnowledgeResourceNode: "Add Knowledge Source node",
+ addTextAnnotationNode: "Add Text Annotation node",
+ emptyDiagram: "Empty Diagram",
+ currentDmnAssociatedDiagram:
+ "The current DMN does not have any Diagram associated with it. Do you
want to auto-generate it?",
+ autoGenerateDiagram: "Auto-generate Diagram",
+ automaticallyPlaceNodes:
+ "Auto generating the diagram will automatically place the nodes with the
default size and shape. You can also manually build your diagram using the DRG
Nodes option from the palette.",
+ dmnDiagramEmpty: "This DMN's Diagram is empty",
+ diagramHasNodesOrOpenAnotherFile: "Make sure the DMN has nodes or try
opening another file",
+ startByDraggingNodes: "Start by dragging nodes from the Palette",
+ newDecisionTable: "New Decision Table...",
+ newDecisionWithInputData: "New Decision with Input Data...",
+ overLays: "Overlays",
+ propertiesPanel: "Properties panel",
+ nodesSelected: (selectedNodesCount: number): string =>
`${selectedNodesCount} nodes selected`,
+ edgesSelected: (selectedEdgesCount: number): string =>
`${selectedEdgesCount} edges selected`,
+ nodeSelected: (nodeCount: number): string => `${nodeCount} node`,
+ edgeSelected: (edgeCount: number): string => `${edgeCount} edge`,
+ nodes: (nodeCount: number): string => `${nodeCount} nodes`,
+ edges: (edgeCount: number): string => `${edgeCount} edges`,
+ selected: "selected",
+ dmnversion: (latestVersion: string): string => `DMN ${latestVersion}`,
+ originallyImportedDmn: (version: string, latestVersion: string): string =>
+ `This DMN was originally imported as DMN ${version}, but was converted
to DMN ${latestVersion} to enable new features.`,
+ drds: "DRDs",
+ newDrd: "new DRD",
+ versionUpgraded: "Version upgraded!",
+ newInDmn: (latestVersion: string): string => `See what's new on DMN
${latestVersion}`,
+ defaultDrd: "You're on the default DRD",
+ addingNodesMakingChanges: "Adding nodes or making changes to the Diagram
will automatically create a DRD for you.",
+ removeDrd: "Remove DRD",
+ remove: "Remove",
+ inputDataNodeShape: "Input Data node shape",
+ classic: "Classic",
+ alternative: "Alternative",
+ noDrgNodes: "No DRG nodes yet",
+ usePaletteLeftHandSide: "Use the Palette on the left-hand-side to drag new
nodes into the Diagram.",
+ drgNodes: "DRG Nodes",
+ selectEditDrd: "Select or edit DRD",
+ inputData: "Input Data",
+ decision: "Decision",
+ businessKnowledgeModel: "Business Knowledge Model",
+ knowledgeSource: "Knowledge Source",
+ decisionService: "Decision Service",
+ group: "Group",
+ textAnnotation: "Text Annotation",
+ externalNodes: "External nodes",
+ drgnodes: "DRG nodes",
+ unknown: "unknown",
+ empty: "<Empty>",
+ input: "Input",
+ },
+ evaluationHightlights: "Evaluation highlights",
+ on: "on",
+ off: "off",
+ externalNodes: {
+ decision: "Decision",
+ inputData: "Input Data",
+ unknown: "Unknown",
+ externalModelTooltip: (nodeTypeTooltipDescription: string, namespace:
string): string =>
+ `This ${nodeTypeTooltipDescription} node is from an external model that
is not included in this one. Namespace: ${namespace}`,
+ noExternalNodesAvailable: "No external nodes available",
+ IncludedModelsHaveNoExportedNodes:
+ "Maybe the included models have no exported nodes, or there are no
included models.",
+ includedModels: "Include model...",
+ externalNodesTitle: "External nodes",
+ },
+ includedModels: {
+ errorOccuredParsing: (selectedPathRelativeToThisDmn: string): string =>
+ `An error occurred when parsing the selected model
'${selectedPathRelativeToThisDmn}'. Please double-check it is a non-empty valid
model.`,
+ includeModel: "Include model",
+ cancel: "Cancel",
+ model: "Model",
+ selectModelToInclude: "Select a model to include...",
+ allModelsAvailablewithName: (externalContextName: string): string =>
+ `All models available in '${externalContextName}' are already included.`,
+ noAvailableModelswithName: (externalContextName: string): string =>
+ `There's no available models in '${externalContextName}' to be
included.`,
+ allModelsAvailable: "All models available are already included.",
+ noAvailableModels: "There's no available models to be included.",
+ loading: "Loading...",
+ noExternalModelsIncluded: "No external models have been included.",
+ externalModelsEmptyMessage:
+ "Included models are externally defined models that have been added to
this DMN file. Included DMN models have their decision requirements diagram
(DRD) or decision requirements graph (DRG) components available in this DMN
file. Included PMML models can be invoked through DMN Boxed Functions, usually
inside Business Knowledge Model nodes (BKMs)",
+ actionHaveMajorImpact: "This action have major impact to your model",
+ removeIncludedModel: (extension: string): string => `Yes, remove included
${extension}`,
+ removeDmnMessage:
+ "Removing an included DMN will erase all its imported nodes and
connected edges from your model. The references to item definitions, Business
Knowledge Model functions, and Decision expressions will remain, requiring to
be manually removed.",
+ removePmmlMessage:
+ "Removing an included PMML will not erase references on Boxed Function
expressions, requiring it to be manually removed.",
+ remove: "Remove",
+ default: "<Default>",
+ externalModelNotFound: "External model not found.",
+ namespace: "Namespace",
+ uri: "URI",
+ },
+ overlaysPanel: {
+ snapping: "Snapping",
+ horizontal: "Horizontal",
+ vertical: "Vertical",
+ highlightSelectedNode: "Highlight selected node(s) hierarchy",
+ showDataTypeToolbar: "Show data type toolbar on nodes",
+ enableStyles: "Enable styles",
+ enableEvaluationHighlights: "Enable evaluation highlights",
+ enableHighlightingDecisionTable:
+ "Enable highlighting Decision Table rules and Boxed Conditional
Expression branches based on evaluation results, also showing success/error
status badges on Decision nodes.",
+ },
+ propertiesPanel: {
+ inputExpression: "Input Expression",
+ constraint: "Constraint",
+ inputValues: "Input Values",
+ id: "ID",
+ alternativeFieldName: (name: string): string => `${name} Name`,
+ alternativeFieldType: (name: string): string => `${name} Type`,
+ defaultOutputEntry: "Default Output Entry",
+ outputValues: "Output Values",
+ outputHeaderType: "Output header type",
+ hitPolicy: "Hit Policy",
+ aggregation: "Aggregation",
+ outputLabel: "Output Label",
+ outputLabelPlaceholder: "Enter a output label...",
+ emptyParameters: "Empty parameters list",
+ parameter: "Parameter ",
+ boxedConditional: "Boxed Conditional",
+ functionTobeCalled: "Function to be called",
+ functionNamePlaceholder: "Enter the function name...",
+ variableToItervateOver: "Variable to interate over",
+ variableNamePlaceholder: "Enter the variable name...",
+ selectExpression: "Select expression",
+ selectedCell: "The selected cell still doesn't have an expresison
associate with it.",
+ noPropertiesToDisplay: "No properties to display",
+ dataType: "Data type",
+ description: "Description",
+ descriptionPlaceholder: "Enter a description...",
+ question: "Question",
+ questionPlaceholder: "Enter a question...",
+ allowedAnswers: "Allowed answers",
+ allowedAnswersPlaceholder: "Enter allowed answers...",
+ outputDecisions: "Output decisions",
+ encapsulatedDecisions: "Encapsulated decisions",
+ inputDecisions: "Input decisions",
+ inputData: "Input data",
+ empty: "Empty",
+ invokingDecisionService: "Invoking this Decision Service in FEEL",
+ placeholderUrlTitle: "Enter a title...",
+ placeholderUrl: "https://...",
+ addDocumentationLink: "Add documentation link",
+ emptyUrl: "Empty URL",
+ removeDocumentationLink: "Remove documentation link",
+ expandCollapseDocLink: "Expand / collapse documentation link",
+ content: "Content",
+ contentPlaceholder: "Enter the content...",
+ expressionLanguage: "Expression Language",
+ expressionLanguagePlaceholder: "Enter the expression language...",
+ expressionContentPlaceholder: "Enter the expression content...",
+ font: "Font",
+ resetFont: "Reset font",
+ globalProperties: "Global properties",
+ idAndNamespace: "ID & Namespace",
+ regenerateIdNamespace: "Re-generate ID & Namespace",
+ diagramIdPlaceholder: "Enter a diagram ID...",
+ copied: "Copied",
+ copy: "Copy",
+ namespace: "Namespace",
+ namespacePlaceholder: "Enter a diagram Namespace...",
+ yesRegenerateIdNamespace: "Yes, re-generate ID and Namespace",
+ regeneratingIdNamespaceMessage:
+ "Re-generating the ID and Namespace of a DMN file will potentially break
other DMN files that depend on it.",
+ sureToContinue: "Are you sure you want to continue?",
+ namePlaceholder: "Enter a name...",
+ sourceType: "Source type",
+ sourceTypePlaceHolder: "Enter source type...",
+ locationUri: "Location URI",
+ locationUriPlaceholder: "Enter location URI...",
+ multiplenodesSize: (size: number): string => `Multiple nodes selected
(${size})`,
+ expandCollapseTitle: (title: string): string => `Expand / collapse
${title}`,
+ shape: "Shape",
+ resetShape: "Reset shape",
+ style: "Style",
+ fillColor: "Fill color",
+ strokeColor: "Stroke color",
+ width: "Width",
+ valuePlaceholder: "Enter a value...",
+ height: "Height",
+ xValuePlaceholder: "Enter X value...",
+ position: "Position",
+ yValuePlaceHolder: "Enter Y value...",
+ format: "Format",
+ formatPlaceholder: "Enter a text format...",
+ text: "Text",
+ textPlaceholder: "Enter text...",
+ nodeReferenceMessage: `This node references an external node with a
namespace that is not declared at this DMN.`,
+ externalDmnNodeReference: `This node references an external node from a
namespace that is not provided on this DMN's external DMNs mapping. `,
+ nameNotExists: (name: string): string => `This node references a DRG
element from '${name}' that doesn't exist.`,
+ goToName: (name: string): string => `Go to '${name}'`,
+ reference: "Reference:",
+ unknownNodePlaceholder: "This is a placeholder for an unknown node",
+ expressionLangPlaceholder: "Enter an expression language...",
+ },
+ boxedExpressionPropertiesPanelTitle: {
+ boxedConditional: "Boxed Conditional",
+ boxedContext: "Boxed Context",
+ boxedContextVariable: "Boxed Context Variable",
+ decisionTable: "Decision Table",
+ variable: "Boxed Context Variable",
+ decisionTableInputHeader: "Decision Table Input Header",
+ decisionTableInputCell: "Decision Table Input Cell",
+ decisionTableOutputHeader: "Decision Table Output Header",
+ decisionTableOutputCell: "Decision Table Output Cell",
+ every: "Boxed Every",
+ boxedEveryVariable: "Boxed Every Variable",
+ filter: "Boxed Filter",
+ for: "Boxed For",
+ boxedForvariable: "Boxed For Variable",
+ functionDefinition: "Function Definition",
+ functionParameters: "Function Parameters",
+ boxedInvocation: "Boxed Invocation",
+ boxedInvocationFunction: "Boxed Invocation Called Function",
+ boxedInvocationParameter: "Boxed Invocation Parameter",
+ list: "Boxed List",
+ literalExpresssion: "Literal Expression",
+ boxedRelation: "Boxed Relation",
+ boxedRelationHeader: "Boxed Relation Header",
+ boxedRelationCell: "Boxed Relation Cell",
+ some: "Boxed Some",
+ boxedsomeVariable: "Boxed Some Variable",
+ },
+ letters: {
+ s: "S",
+ u: "U",
+ i: "I",
+ b: "B",
+ x: "X",
+ y: "Y",
+ },
Review Comment:
Plase, place those on the common dictionary.
##########
packages/dmn-editor/src/i18n/locales/en.ts:
##########
@@ -0,0 +1,398 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import { en as en_common } from "@kie-tools/i18n-common-dictionary";
+import { DmnEditorI18n } from "../DmnEditorI18n";
+import { title } from "process";
+
+export const en: DmnEditorI18n = {
+ ...en_common,
+ autoLayout: "Autolayout (beta)",
+ backToDiagram: "Back to Diagram",
+ yourAnnotationsHere: "// Your annotations here",
+ filter: "Filter...",
+ close: "Close",
+ dmn: "DMN",
+ pmml: "PMML",
+ none: "None",
+ noneYet: "None yet",
+ name: "Name",
+ cancel: "Cancel",
+ with: "with",
+ dataTypes: {
+ days: "Days",
+ hours: "Hours",
+ minutes: "Minutes",
+ seconds: "Seconds",
+ tweakTheTimezone: "To tweak the timezone it's necessary to set a time
first",
+ selectTimezone: "Select timezone",
+ years: "Years",
+ months: "Months",
+ dataTypeConstraints: "This data type doesn't support constraints",
+ enumeration: "Enumeration",
+ expression: "Expression",
+ range: "Range",
+ allValuesAllowed: "All values are allowed",
+ addEnumValue: "Add enum value",
+ addValue: "Add value",
+ removeEnumValue: "Remove enum value",
+ equivalentFeelExpression: "Equivalent FEEL expression:",
+ checkThe: "Check the",
+ feelHandbook: "FEEL handbook",
+ creatingAnExpression: "to help you on creating your expressions.",
+ nextValidDate: (value: string, operator: string): string =>
+ `The next valid number is: (${value} ${operator} 1 Day).`,
+ nextValidDateTime: (value: string, operator: string): string =>
+ `The next valid number is: (${value} ${operator} 1 Second).`,
+ nextValidNumber: (value: string, operator: string): string =>
+ `The next valid number is: (${value} ${operator} 2e-52).`,
+ nextValidYearsAndMonths: (value: string, operator: string): string =>
+ `The next valid number is: (${value} ${operator} 1 Month).`,
+ start: "Start",
+ clickToRemoveValue: "Click to remove value from the range",
+ clickToIncludeValue: "Click to include value in the range",
+ startingValueIncluded: "The starting value will be included in the range.",
+ startingValueNotIncluded: "The starting value will not be included in the
range.",
+ clickToRemoveValueFromRange: "Click to remove value from the range",
+ clickToIncludeInRange: "Click to include value in the range",
+ endsWith: "Ends with",
+ endingValueIncludedInRange: "The ending value will be included in the
range.",
+ endingValueNotIncludedInRange: "The ending value will not be included in
the range.",
+ descriptionPlaceholder: "Enter a description...",
+ isStruct: "Is struct?",
+ type: "Type",
+ collectionConstraint: "Collection constraint",
+ collectionConstrainsTypeConstraint: "Collection Constraints (Type
Constraint)",
+ dmnSpecification: "As per the DMN specification, the ",
+ typeConstraint: "Type Constraint",
+ attributeListsPossibleValues: "attribute lists the possible values",
+ rangeOfValuesAllowed: "or ranges of values in the base type that are
allowed in this ItemDefinition.",
+ collectionItemConstraint: "Collection item constraint",
+ collectionItemConstraintAllowedValues: "Collection Item Constraints
(Allowed Values)",
+ allowedValues: "Allowed Values",
+ creatingConstraints:
+ "Creating constraints for the collection items directly on the
collection itself is deprecated since DMN 1.5 and will possibly be removed in
future versions. To prepare your DMN model for future updates, please create a
dedicated Data Type for the items of this list and add constraints there.",
+ noCustomDataTypes: "No custom data types have been defined.",
+ dmnEmptyBody:
+ "Data types are referenced in the input and output values for decision
tables. Custom data types allow you to reference more complex data types,
beyond the simple default types.",
+ duplicateDmnDetected: "Duplicate DMN Data Type Detected",
+ conflictsDetectedMessage:
+ "Conflicts have been detected between imported Java classes and existing
DMN data types. Please review the details below and choose how to proceed.",
+ internalDataTypeConflicts: "Internal Data Type Conflicts",
+ editableDataTypes: "These are editable DMN Types. Choose how to resolve
them.",
+ replaceExistingDmn: "This option will replace the existing DMN type with
the new one.",
+ preserveExistingDmn: "This option will preserve the existing DMN type and
create a new one with a unique name.",
+ replace: "Replace",
+ keepBoth: "Keep Both",
+ startsWith: "Starts with",
+ remove: "Remove",
+ external: "External",
+ id: "ID:",
+ copy: "Copy",
+ isCollection: "Is collection?",
+ deprecated: "Deprecated",
+ newDataType: "New Data Type",
+ paste: "Paste",
+ createCustomDataType: "Create a custom data type",
+ or: "or",
+ pasteDataType: "Paste data type",
+ externalDataTypeConflicts: "External Data Type Conflicts",
+ externalSources: "These types come from external sources and cannot be
replaced.",
+ propertiesInDefinition: (definitionName: string): string => `Properties in
'${definitionName}'`,
+ addItemComponent: "Add item component (at the top)",
+ expandAll: "Expand all",
+ collapseAll: "Collapse all",
+ pasteProperty: "Paste property",
+ expandCollapseItemComponent: "Expand / collapse item component",
+ view: "View",
+ extractDataType: "Extract data type",
+ cut: "Cut",
+ addPropertiesToDefinition: (definitionName: string): string => `Add
property to '${definitionName}'`,
+ builtIn: "Built-in",
+ custom: "Custom",
+ jumpToDefinition: "Jump to definition",
+ selectDataType: "Select a data type...",
+ },
+ nodes: {
+ view: "View",
+ edit: "Edit",
+ output: "OUTPUT",
+ encapsulated: "ENCAPSULATED",
+ doubleClickToName: "Double-click to name",
+ addInformationRequirementEdge: "Add Information Requirement edge",
+ addKnowledgeRequirementEdge: "Add Knowledge Requirement edge",
+ addAuthorityRequirementEdge: "Add Authority Requirement edge",
+ addAssociationEdge: "Add Association edge",
+ addDecisionNode: "Add Decision node",
+ addBkmNode: "Add BKM node",
+ addKnowledgeResourceNode: "Add Knowledge Source node",
+ addTextAnnotationNode: "Add Text Annotation node",
+ emptyDiagram: "Empty Diagram",
+ currentDmnAssociatedDiagram:
+ "The current DMN does not have any Diagram associated with it. Do you
want to auto-generate it?",
+ autoGenerateDiagram: "Auto-generate Diagram",
+ automaticallyPlaceNodes:
+ "Auto generating the diagram will automatically place the nodes with the
default size and shape. You can also manually build your diagram using the DRG
Nodes option from the palette.",
+ dmnDiagramEmpty: "This DMN's Diagram is empty",
+ diagramHasNodesOrOpenAnotherFile: "Make sure the DMN has nodes or try
opening another file",
+ startByDraggingNodes: "Start by dragging nodes from the Palette",
+ newDecisionTable: "New Decision Table...",
+ newDecisionWithInputData: "New Decision with Input Data...",
+ overLays: "Overlays",
+ propertiesPanel: "Properties panel",
+ nodesSelected: (selectedNodesCount: number): string =>
`${selectedNodesCount} nodes selected`,
+ edgesSelected: (selectedEdgesCount: number): string =>
`${selectedEdgesCount} edges selected`,
+ nodeSelected: (nodeCount: number): string => `${nodeCount} node`,
+ edgeSelected: (edgeCount: number): string => `${edgeCount} edge`,
+ nodes: (nodeCount: number): string => `${nodeCount} nodes`,
+ edges: (edgeCount: number): string => `${edgeCount} edges`,
+ selected: "selected",
+ dmnversion: (latestVersion: string): string => `DMN ${latestVersion}`,
+ originallyImportedDmn: (version: string, latestVersion: string): string =>
+ `This DMN was originally imported as DMN ${version}, but was converted
to DMN ${latestVersion} to enable new features.`,
+ drds: "DRDs",
+ newDrd: "new DRD",
+ versionUpgraded: "Version upgraded!",
+ newInDmn: (latestVersion: string): string => `See what's new on DMN
${latestVersion}`,
+ defaultDrd: "You're on the default DRD",
+ addingNodesMakingChanges: "Adding nodes or making changes to the Diagram
will automatically create a DRD for you.",
+ removeDrd: "Remove DRD",
+ remove: "Remove",
+ inputDataNodeShape: "Input Data node shape",
+ classic: "Classic",
+ alternative: "Alternative",
+ noDrgNodes: "No DRG nodes yet",
+ usePaletteLeftHandSide: "Use the Palette on the left-hand-side to drag new
nodes into the Diagram.",
+ drgNodes: "DRG Nodes",
+ selectEditDrd: "Select or edit DRD",
+ inputData: "Input Data",
+ decision: "Decision",
+ businessKnowledgeModel: "Business Knowledge Model",
+ knowledgeSource: "Knowledge Source",
+ decisionService: "Decision Service",
+ group: "Group",
+ textAnnotation: "Text Annotation",
+ externalNodes: "External nodes",
+ drgnodes: "DRG nodes",
Review Comment:
```suggestion
drgNodes: "DRG nodes",
```
##########
packages/dmn-editor/src/i18n/locales/en.ts:
##########
@@ -0,0 +1,398 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import { en as en_common } from "@kie-tools/i18n-common-dictionary";
+import { DmnEditorI18n } from "../DmnEditorI18n";
+import { title } from "process";
+
+export const en: DmnEditorI18n = {
+ ...en_common,
+ autoLayout: "Autolayout (beta)",
+ backToDiagram: "Back to Diagram",
+ yourAnnotationsHere: "// Your annotations here",
+ filter: "Filter...",
+ close: "Close",
+ dmn: "DMN",
+ pmml: "PMML",
Review Comment:
Should use the common dictionary instead of creating new entries.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]