# -----------
#-index-name: Mongolian, uncontracted
#-display-name: Mongolian uncontracted braille
#
#+locale:mn
#+type:literary
#+contraction:no
#+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) 2015  Tsengel Maidar Innovation Development center of the blind at idcbinnovation@gmail.com
# Copyright (C) 2018 Tsengel Maidar EBraillesoftLLC
# Copyright (C) 2017, 2018, 2019 Angaragerdene at angaragerdene.b@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/>.
#

# This table contains braille codes and rules for Mongolian script.
# Contributors: Dipendra Manocha, Sreeja, Tsengel, Angaragerdene
# To report any bugs or any suggestion, please write to tsengel.braille.dev@gmail.com and angaragerdene.b@gmail.com

include mn-MN-common.cti
include en-ueb-g1.ctb

	
