Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Use translate table + spec chars solution in Clear category for English to Braille Translator by vl.ev.ba
def convert(code: int) -> list[list[int]]:
bin_code = bin(code)[2:].zfill(6)[::-1]
return [[int(bin_code[j + i * 3]) for i in range(2)] for j in range(3)]
# Translate table
# special chars
# N = number case
# C - capital case
trn = {' ': [[0, 0], [0, 0], [0, 0]],
'!': [[0, 0], [1, 1], [1, 0]],
'#': [[0, 1], [1, 0], [1, 1]],
',': [[0, 0], [1, 0], [0, 0]],
'-': [[0, 0], [1, 1], [0, 0]],
'.': [[0, 0], [1, 1], [0, 1]],
'0': [[0, 1], [1, 1], [0, 0]],
'1': [[1, 0], [0, 0], [0, 0]],
'2': [[1, 0], [1, 0], [0, 0]],
'3': [[1, 1], [0, 0], [0, 0]],
'4': [[1, 1], [0, 1], [0, 0]],
'5': [[1, 0], [0, 1], [0, 0]],
'6': [[1, 1], [1, 0], [0, 0]],
'7': [[1, 1], [1, 1], [0, 0]],
'8': [[1, 0], [1, 1], [0, 0]],
'9': [[0, 1], [1, 0], [0, 0]],
'?': [[0, 0], [1, 0], [1, 1]],
'C': [[0, 0], [0, 0], [0, 1]],
'N': [[0, 1], [0, 1], [1, 1]],
'_': [[0, 0], [0, 0], [1, 1]],
'a': [[1, 0], [0, 0], [0, 0]],
'b': [[1, 0], [1, 0], [0, 0]],
'c': [[1, 1], [0, 0], [0, 0]],
'd': [[1, 1], [0, 1], [0, 0]],
'e': [[1, 0], [0, 1], [0, 0]],
'f': [[1, 1], [1, 0], [0, 0]],
'g': [[1, 1], [1, 1], [0, 0]],
'h': [[1, 0], [1, 1], [0, 0]],
'i': [[0, 1], [1, 0], [0, 0]],
'j': [[0, 1], [1, 1], [0, 0]],
'k': [[1, 0], [0, 0], [1, 0]],
'l': [[1, 0], [1, 0], [1, 0]],
'm': [[1, 1], [0, 0], [1, 0]],
'n': [[1, 1], [0, 1], [1, 0]],
'o': [[1, 0], [0, 1], [1, 0]],
'p': [[1, 1], [1, 0], [1, 0]],
'q': [[1, 1], [1, 1], [1, 0]],
'r': [[1, 0], [1, 1], [1, 0]],
's': [[0, 1], [1, 0], [1, 0]],
't': [[0, 1], [1, 1], [1, 0]],
'u': [[1, 0], [0, 0], [1, 1]],
'v': [[1, 0], [1, 0], [1, 1]],
'w': [[0, 1], [1, 1], [1, 1]],
'x': [[1, 1], [0, 0], [1, 1]],
'y': [[1, 1], [0, 1], [1, 1]],
'z': [[1, 0], [0, 1], [1, 1]]}
def braille_page(text: str) -> list[list[int]]:
c = ''.join(['C' + l.lower() if l.isupper() else 'N' +
l if l.isdigit() else l for l in text])
L = len(c)
if L > 10:
c = c + ' ' * (10 - L % 10)
ans = []
i = 0
while i < L:
for n in range(3):
line = []
for l in c[i:i + 10]:
line.extend(trn[l][n] + [0])
line.pop()
#print(line)
ans.append(line)
if i < L - 10:
ans.append([0] * 29)
i += 10
return ans
Sept. 2, 2026
Comments: