|  | @@ -11,6 +11,7 @@ import {
 | 
	
		
			
				|  |  |    RiArrowDownSLine,
 | 
	
		
			
				|  |  |    RiMenu4Line,
 | 
	
		
			
				|  |  |  } from '@remixicon/react'
 | 
	
		
			
				|  |  | +import { useTranslation } from 'react-i18next'
 | 
	
		
			
				|  |  |  import NodePanel from './node'
 | 
	
		
			
				|  |  |  import {
 | 
	
		
			
				|  |  |    BlockEnum,
 | 
	
	
		
			
				|  | @@ -37,7 +38,7 @@ type TracingNodeProps = {
 | 
	
		
			
				|  |  |    hideNodeProcessDetail?: boolean
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -function buildLogTree(nodes: NodeTracing[]): TracingNodeProps[] {
 | 
	
		
			
				|  |  | +function buildLogTree(nodes: NodeTracing[], t: (key: string) => string): TracingNodeProps[] {
 | 
	
		
			
				|  |  |    const rootNodes: TracingNodeProps[] = []
 | 
	
		
			
				|  |  |    const parallelStacks: { [key: string]: TracingNodeProps } = {}
 | 
	
		
			
				|  |  |    const levelCounts: { [key: string]: number } = {}
 | 
	
	
		
			
				|  | @@ -58,7 +59,7 @@ function buildLogTree(nodes: NodeTracing[]): TracingNodeProps[] {
 | 
	
		
			
				|  |  |      const parentTitle = parentId ? parallelStacks[parentId]?.parallelTitle : ''
 | 
	
		
			
				|  |  |      const levelNumber = parentTitle ? parseInt(parentTitle.split('-')[1]) + 1 : 1
 | 
	
		
			
				|  |  |      const letter = parallelChildCounts[levelKey]?.size > 1 ? String.fromCharCode(64 + levelCounts[levelKey]) : ''
 | 
	
		
			
				|  |  | -    return `PARALLEL-${levelNumber}${letter}`
 | 
	
		
			
				|  |  | +    return `${t('workflow.common.parallel')}-${levelNumber}${letter}`
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    const getBranchTitle = (parentId: string | null, branchNum: number): string => {
 | 
	
	
		
			
				|  | @@ -67,7 +68,7 @@ function buildLogTree(nodes: NodeTracing[]): TracingNodeProps[] {
 | 
	
		
			
				|  |  |      const levelNumber = parentTitle ? parseInt(parentTitle.split('-')[1]) + 1 : 1
 | 
	
		
			
				|  |  |      const letter = parallelChildCounts[levelKey]?.size > 1 ? String.fromCharCode(64 + levelCounts[levelKey]) : ''
 | 
	
		
			
				|  |  |      const branchLetter = String.fromCharCode(64 + branchNum)
 | 
	
		
			
				|  |  | -    return `BRANCH-${levelNumber}${letter}-${branchLetter}`
 | 
	
		
			
				|  |  | +    return `${t('workflow.common.branch')}-${levelNumber}${letter}-${branchLetter}`
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    // Count parallel children (for figuring out if we need to use letters)
 | 
	
	
		
			
				|  | @@ -163,7 +164,8 @@ const TracingPanel: FC<TracingPanelProps> = ({
 | 
	
		
			
				|  |  |    hideNodeInfo = false,
 | 
	
		
			
				|  |  |    hideNodeProcessDetail = false,
 | 
	
		
			
				|  |  |  }) => {
 | 
	
		
			
				|  |  | -  const treeNodes = buildLogTree(list)
 | 
	
		
			
				|  |  | +  const { t } = useTranslation()
 | 
	
		
			
				|  |  | +  const treeNodes = buildLogTree(list, t)
 | 
	
		
			
				|  |  |    const [collapsedNodes, setCollapsedNodes] = useState<Set<string>>(new Set())
 | 
	
		
			
				|  |  |    const [hoveredParallel, setHoveredParallel] = useState<string | null>(null)
 | 
	
		
			
				|  |  |  
 |