For a VBA solution, if your translations don't change that often, you could populate a Dictionary (add a reference via Tools -> References... to Microsoft Scripting Runtime) to hold the translations.
Then you could pass in the value of the cell, split it, and return the corresponding translation for each part:
Dim dict As Dictionary
Function Translations(s As String) As String
    If dict Is Nothing Then
        Set dict = New Dictionary
        Dim arr() As Variant
        arr = Worksheets("Sheet1").Range("A1:B25").Value
        
        Dim rowCount As Integer
        rowCount = UBound(arr, 1)
    
        Dim row As Integer
        For row = 1 To rowCount
            dict(arr(row, 1)) = arr(row, 2)
        Next
    End If
    Dim temp() As String ' holds both the keys from the current input, and the results
    temp = Split(s, ",")
    
    Dim ubnd As Integer
    ubnd = UBound(temp)
    
    Dim i As Integer
    For i = 0 To ubnd
        Dim key As String
        key = temp(i)
        If dict.Exists(key) Then
            temp(i) = dict(key)
        Else
            temp(i) = ""
        End If
    Next
    
    Translations = Join(temp, ",")
End Function
and you could call it from a cell like this:
=Translations(A1)
Note that for efficiency, the dictionary is not recreated on each function call, but stored in memory. Therefore, if your translations change, you'll need to reset the dictionary. This can be done in a number of ways:
- Close and reopen the workbook 
- In the VBA editor, click Run -> Reset from the menus 
- Write a special method that clears the dictionary: - Sub ClearDict
    Set dict = Nothing
End Sub
 - and call it (e.g. from the Immediate pane) after changes have been made.