# Liblouis: Persian 8 dot computer Braille table
#
# -----------
#-index-name: Persian, computer
#-display-name: Persian computer braille
#
#+locale:fa
#+type:computer
#+dots:8
#
# TODO: Please correct the metadata above. It is not meant to be
# accurate nor complete. It hasn't been verified by the table
# author yet. It is merely an attempt by the liblouis maintainers
# to get some sensible initial values in place.
#
# TODO: Please add a reference to official documentation about
# the implemented braille code. Preferably submit the documents
# to https://github.com/liblouis/braille-specs.
# -----------
#
# Copyright (C) 2017 by Mohammadreza Rashad <mohammadreza5712@gmail.com>
#
#  This file is part of liblouis.
#
#  liblouis is free software: you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as
#  published by the Free Software Foundation, either version 2.1 of the
#  License, or (at your option) any later version.
#
#  liblouis is distributed in the hope that it will be useful, but
#  WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
#  Lesser General Public License for more details.
#
#  You should have received a copy of the GNU Lesser General Public
#  License along with liblouis. If not, see
#  <http://www.gnu.org/licenses/>.

space \t 67 tab
space \s 0 blank
space \x00a0 a unbreakable space
sign \x000a 78 newline
space \x000d 0 carriage return
sign \x200C 68 (نیم‌فاصله)

# Persian alphabets and diacritics 

sign \x0621 3 (ء)
sign \x0622 345 (آ)
sign \x0623 34 (أ)
sign \x0624 1256 (ؤ)
sign \x0625 347 (إ)
sign \x0626 13456 (ئ)
sign \x0627 1 (ا)
sign \x0628 12 (ب)
sign \x067E 1234 (پ)
sign \x0629 16 (ة)
sign \x062A 2345 (ت)
sign \x062B 1456 (ث)
sign \x062C 245 (ج)
sign \x0686 14 (چ)
sign \x062D 156 (ح)
sign \x062E 1346 (خ)
sign \x062F 145 (د)
sign \x0630 2346 (ذ)
sign \x0631 1235 (ر)
sign \x0632 1356 (ز)
sign \x0698 346 (ژ)
sign \x0633 234 (س)
sign \x0634 146 (ش)
sign \x0635 12346 (ص)
sign \x0636 1246 (ض)
sign \x0637 23456 (ط)
sign \x0638 123456 (ظ)
sign \x0639 12356 (ع)
sign \x063A 126 (غ)
sign \x0641 124 (ف)
sign \x0642 12345 (ق)
sign \x06A9 13 (ک)
sign \x0643 1378 (ك عربی)
sign \x06AF 1245 (گ)
sign \x0644 123 (ل)
sign \x0645 134 (م)
sign \x0646 1345 (ن)
sign \x0648 2456 (و)
sign \x0647 125 (ه)
sign \x06CC 24 (ی)
sign \x064A 24678 (ي عربی)
sign \x0649 135 (الف مقصوره)
sign \x064E 2 (َ)
sign \x0650 15 (ِ)
sign \x064F 136 (ُ)
sign \x064B 23 (ً)
sign \x064D 35 (ٍ)
sign \x064C 26 (ٌ)
sign \x0651 6 (ّ)
sign \x0652 25 (ْ)
sign \x0640 4567 (ـ)

# Persian Numerals

digit \x06F0 24578 (۰)
digit \x06F1 178 (۱)
digit \x06F2 1278 (۲)
digit \x06F3 1478 (۳)
digit \x06F4 14578 (۴)
digit \x06F5 1578 (۵)
digit \x06F6 12478 (۶)
digit \x06F7 124578 (۷)
digit \x06F8 12578 (۸)
digit \x06F9 2478 (۹)

# English letters

uplow Aa 17,18
uplow Bb 127,128
uplow Cc 147,148
uplow Dd 1457,1458
uplow Ee 157,158
uplow Ff 1247,1248
uplow Gg 12457,12458
uplow Hh 1257,1258
uplow Ii 247,248
uplow Jj 2457,2458
uplow Kk 137,138
uplow Ll 1237,1238
uplow Mm 1347,1348
uplow Nn 13457,13458
uplow Oo 1357,1358
uplow Pp 12347,12348
uplow Qq 123457,123458
uplow Rr 12357,12358
uplow Ss 2347,2348
uplow Tt 23457,23458
uplow Uu 1367,1368
uplow Vv 12367,12368
uplow Ww 24567,24568
uplow Xx 13467,13468
uplow Yy 134567,134568
uplow Zz 13567,13568

# Latin numerals

digit 0 35678
digit 1 278
digit 2 2378
digit 3 2578
digit 4 25678
digit 5 2678
digit 6 23578
digit 7 235678
digit 8 23678
digit 9 3578

# Other symbols

punctuation \x0021 235 (!)
sign \x0022 58 (")
sign \x0023 3456 (#)
sign \x0024 124678 ($)
math \x0025 1468 (%)
sign \x0026 123468 (&)
sign \x0027 38 (')
sign \x0028 23567 (()
sign \x0029 23568 ())
sign \x002A 168 (*)
math \x002B 2358 (+)
punctuation \x002C 28 (,)
sign \x002D 36 (-)
punctuation \x002E 256 (.)
math \x002F 348 (/)
punctuation \x003A 258 (:)
punctuation \x003B 238 (;)
math \x003C 1268 (<)
math \x003D 2356 (=)
math \x003E 3458 (>)
punctuation \x003F 14568 (?)
sign \x0040 47 (@)
punctuation \x005B 123567 ([)
sign \x005C 12568 (\)
punctuation \x005D 234568 (])
sign \x005E 457 (^)
sign \x005F 456 (_)
sign \x0060 48 (`)
sign \x007B 2468 ({)
sign \x007C 4568 (|)
sign \x007D 124568 (})
math \x007E 458 (~)
sign \x00A2 14678 (¢)
sign \x00A3 12378 (£)
sign \x00A5 1345678 (¥)
sign \x00A6 1567 (¦)
sign \x00A7 12345678 (§)
sign \x00A9 134678 (©)
punctuation \x00AB 236 («)
math \x00AC 134578 (¬)
sign \x00AE 234578 (®)
math \x00B0 34568 (°)
math \x00B1 34678 (±)
punctuation \x00BB 356 (»)
sign \x00B6 45678 (¶)
math \x00D7 2368 (×)
math \x00F7 2568 (÷)
punctuation \x060C 27 (،)
punctuation \x061B 237 (؛)
punctuation \x061F 14567 (؟)
math \x066A 1467 (٪)
math \x066B 5 (٫)
math \x066C 37 (٬)
sign \x2010 367 (‐)
sign \x201C 378 (“)
sign \x201D 678 (”)
sign \x2022 2467 (•)
sign \x2026 468 (…)
sign \x2030 145678 (‰)
sign \x20AC 13678 (€)
math \x2212 368 (−)
sign \x25E6 358 (◦)
sign \x25FE 3568 (◾)
sign \xFDFC 123578 (﷼)
noback sign \x25CF 168 (●) # 9679 black circle
