Hi,
I’m almost surely reinventing the wheel, but I’ve come up with a weird idea that
I will explain next.
There is a demanding problem in adapting Ben System to Romance Languages like spanish and Italian one.
For instance, in Italian there is no striking phonemic distinction between long and short vowels.
As a matter of fact there are only 5 Italian vowel sounds suitable for mnemonic use compared to the 10
contemplated by Ben system.
The question seems to be quite hopeless.
So what should we do?
Here you are my working hypothesis to face this issue.
FIRST/SECOND | VOWEL
CONSONANT |
(digit # 1;3) | (digit # 2)
0 = s | 0=O + suffix A after Second consonant
1 = t | 1=A + suffix A after Second consonant
2 = n | 2=E + suffix A after Second consonant
3 = m | 3=I + suffix A after Second consonant
4 = r | 4=U + suffix A after Second consonant
5 = l | 5=A + suffix O after Second consonant
6 = g | 6=E + suffix O after Second consonant
7 = c | 7=I + suffix O after Second consonant
8 = f | 8=O + suffix O after Second consonant
9 = p | 9=U + suffix O after Second consonant
e.g.
811=FATA (fairy) / 851=FATO (destiny)
What do you think about it?
According to me it works fine.
I’ve already implemented a VBA function that converts the numbers according to this idea.
You could paste it in a excel Module in order to use it as a formula.
Public Function LatinEncode(number As Integer) As String
Dim intDigitPosition As Integer
Dim strTemp As String
Dim strNumber As String
Dim ConversionTable(10, 1 To 3) As String
Dim Vowels(10) As String
Dim strSuffix As String
Dim intDigit As Integer
Vowels(0) = "o"
Vowels(1) = "a"
Vowels(2) = "e"
Vowels(3) = "i"
Vowels(4) = "u"
Vowels(5) = "a"
Vowels(6) = "e"
Vowels(7) = "i"
Vowels(8) = "o"
Vowels(9) = "u"
ConversionTable(0, 1) = "S": ConversionTable(0, 2) = Vowels(0): ConversionTable(0, 3) = "s"
ConversionTable(1, 1) = "T": ConversionTable(1, 2) = Vowels(1): ConversionTable(1, 3) = "t"
ConversionTable(2, 1) = "N": ConversionTable(2, 2) = Vowels(2): ConversionTable(2, 3) = "n"
ConversionTable(3, 1) = "M": ConversionTable(3, 2) = Vowels(3): ConversionTable(3, 3) = "m"
ConversionTable(4, 1) = "R": ConversionTable(4, 2) = Vowels(4): ConversionTable(4, 3) = "r"
ConversionTable(5, 1) = "L": ConversionTable(5, 2) = Vowels(5): ConversionTable(5, 3) = "l"
ConversionTable(6, 1) = "G": ConversionTable(6, 2) = Vowels(6): ConversionTable(6, 3) = "g"
ConversionTable(7, 1) = "C": ConversionTable(7, 2) = Vowels(7): ConversionTable(7, 3) = "c"
ConversionTable(8, 1) = "F": ConversionTable(8, 2) = Vowels(8): ConversionTable(8, 3) = "f"
ConversionTable(9, 1) = "P": ConversionTable(9, 2) = Vowels(9): ConversionTable(9, 3) = "p"
strNumber = Format(number, "000")
strTemp = vbNullString
For intDigitPosition = 1 To 3
intDigit = CInt(Mid(strNumber, intDigitPosition, 1))
strTemp = strTemp & ConversionTable(intDigit, intDigitPosition)
If intDigitPosition = 2 Then
If intDigit < 5 Then
strSuffix = "a"
Else
strSuffix = "o"
End If
End If
Next
LatinEncode = strTemp & strSuffix
End Function
Thanks,
Stolcius AKA Michele Collatina