You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kie.apache.org by "Kusuma04-dev (via GitHub)" <gi...@apache.org> on 2025/08/18 08:50:39 UTC

[PR] kie-issues#2063: Add i18n for dmn-editor package [incubator-kie-tools]

Kusuma04-dev opened a new pull request, #3229:
URL: https://github.com/apache/incubator-kie-tools/pull/3229

   closes https://github.com/apache/incubator-kie-issues/issues/2063
   
   Added i18n for dmn-editor package.


-- 
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: commits-unsubscribe@kie.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@kie.apache.org
For additional commands, e-mail: commits-help@kie.apache.org


Re: [PR] kie-issues#2063: Add i18n for dmn-editor package [incubator-kie-tools]

Posted by "ljmotta (via GitHub)" <gi...@apache.org>.
ljmotta commented on PR #3229:
URL: https://github.com/apache/incubator-kie-tools/pull/3229#issuecomment-3268216697

   @Kusuma04-dev Please solve the conflicts


-- 
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: commits-unsubscribe@kie.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@kie.apache.org
For additional commands, e-mail: commits-help@kie.apache.org


Re: [PR] kie-issues#2063: Add i18n for dmn-editor package [incubator-kie-tools]

Posted by "ljmotta (via GitHub)" <gi...@apache.org>.
ljmotta commented on code in PR #3229:
URL: https://github.com/apache/incubator-kie-tools/pull/3229#discussion_r2299296965


##########
packages/i18n-common-dictionary/src/CommonI18n.ts:
##########
@@ -79,6 +79,14 @@ export type CommonDictionary = {
   uninstall: string;
   username: string;
   validation: string;
+  letters: {

Review Comment:
   this will be under `keyboardKeys` from the https://github.com/apache/incubator-kie-tools/pull/3223



##########
packages/dmn-editor/src/propertiesPanel/BoxedExpressionPropertiesPanelComponents/FunctionDefinitionParametersCell.tsx:
##########
@@ -85,7 +87,7 @@ export function FunctionDefinitionParameterCell(props: {
             }
             title={
               <p>
-                Parameter <b>{parameter["@_name"]}</b>
+                {i18n.propertiesPanel.parameter} <b>{parameter["@_name"]}</b>

Review Comment:
   I believe we should use the I18nWrapper component here as well.



-- 
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: commits-unsubscribe@kie.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@kie.apache.org
For additional commands, e-mail: commits-help@kie.apache.org


Re: [PR] kie-issues#2063: Add i18n for dmn-editor package [incubator-kie-tools]

Posted by "ljmotta (via GitHub)" <gi...@apache.org>.
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: commits-unsubscribe@kie.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@kie.apache.org
For additional commands, e-mail: commits-help@kie.apache.org


Re: [PR] kie-issues#2063: Add i18n for dmn-editor package [incubator-kie-tools]

Posted by "ljmotta (via GitHub)" <gi...@apache.org>.
ljmotta commented on PR #3229:
URL: https://github.com/apache/incubator-kie-tools/pull/3229#issuecomment-3271317040

   @Kusuma04-dev The CI is breaking on the `dmn-editor`, could you please take a look?


-- 
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: commits-unsubscribe@kie.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@kie.apache.org
For additional commands, e-mail: commits-help@kie.apache.org


Re: [PR] kie-issues#2063: Add i18n for dmn-editor package [incubator-kie-tools]

Posted by "tiagobento (via GitHub)" <gi...@apache.org>.
tiagobento merged PR #3229:
URL: https://github.com/apache/incubator-kie-tools/pull/3229


-- 
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: commits-unsubscribe@kie.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@kie.apache.org
For additional commands, e-mail: commits-help@kie.apache.org