With a set of rules that specifies which glyphs correspond to which letters, you can translate from words written with the normal alphabet to words written with glyphs. Each rule looks something like this:
"A" -> \!\(\*
GraphicsBox[
{AbsoluteThickness[5],
BSplineCurveBox[{{0.4987640325753826, 0.03522112143894818}, {
0.010385474885092894`, 0.506093796370255}, {0.2031651297296817,
0.27707917882476796`}, {0.7794878961873593,
0.07259744469065543}, {0.2202419352025109,
0.7526782436876707}, {0.9267225956920517, 0.8457783797241891}}]},
ImageSize->{30, 30}]\)
This gives the 26 capital letters in the alphabet. Give it the name letters:
letters = CharacterRange["A", "Z"]
This expression from the previous step gives 26 random glyphs. Give it the name glyphs:
glyphs = Table[
Graphics[{AbsoluteThickness[5],
BSplineCurve[RandomReal[1, {RandomInteger[{3, 6}], 2}]]},
ImageSize -> {30, 30}], {26}]
Make rules from the letters to the glyphs using Thread. Thread changes a rule between lists to a list of rules between the elements of the lists:
Thread[{"A", "B", "C"} -> {1, 2, 3}]
This gives the translation rules from letters to glyphs:
Thread[letters -> glyphs]
We need one more rule to translate spaces to empty glyphs:
" " -> Graphics[ImageSize -> {30, 30}]
Append that rule to the other rules to get a complete set of translation rules. Call it alphabet:
alphabet =
Append[Thread[letters -> glyphs],
" " -> Graphics[ImageSize -> {30, 30}]]
letters = CharacterRange["A", "Z"];
glyphs = Table[
Graphics[{AbsoluteThickness[5],
BSplineCurve[RandomReal[1, {RandomInteger[{3, 6}], 2}]]},
ImageSize -> {30, 30}], {26}];
alphabet =
Append[Thread[letters -> glyphs],
" " -> Graphics[ImageSize -> {30, 30}]]