# This file is obsolete. Do not use!

# liblouis: de-de.dis
#
# Copyright (C) 1995-2004 by The BRLTTY Team. All rights reserved.
# Copyright (C) 2004 ViewPlus Technologies, inc., www.viewplustech.com
# Copyright (C) 2004 Computers to Help People, Inc., www.chpi.org

# This file 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.

# This file 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 this file; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA

# Maintained by John J. Boyer, director@chpi.org, www.chpi.org

# This is to be used with German translation tables.


        #Hex   Dots				Dec		Char Description
display \x0020 0					#32					space
display \x0021   5				#33		!			exclamation mark
display \x0022    4				#34		"			quotation mark
display \x0023   3456			#35		#			number sign
display \x0024 46					#36		$			dollar sign
display \x0025 123456			#37		%			percent sign
display \x0026 12346			#38		&			ampersand
display \x0027  6					#39		'			apostrophe
display \x0028	236		#40	(			left parenthesis
display \x0029  356		#41	)			right parenthesis
display \x002A	35		#42	*			asterisk
display \x002B	235		#43	+			plus sign
display \x002C      2		#44 ,			comma
display \x002D	36		#45	-			hyphen-minus
display \x002E	3			#46 .			full stop
display \x002F	256		#47	/			solidus

display \x0030	346		#480			digit zero
display \x0031	16		#491			digit one
display \x0032	126		#502			digit two
display \x0033	146		#513			digit three
display \x0034  1456	#524			digit four
display \x0035  156		#535			digit five
display \x0036  1246	#546			digit six
display \x0037  12456 #557			digit seven
display \x0038  1256	#568			digit eight
display \x0039	246		#579			digit nine
display \x003A	25		#58 :			colon
display \x003B  23		#59 ;			semicolon
display \x003C 56			#60  <	less-than sign
# display \x003D 156		#61  =	equals sign
display \x003D 2356		#61  =	equals sign
display \x003E 45			#62  >	greater-than sign
display \x003F  26		#63 ?			question mark
display \x0040 345				#64  @	commercial at

        #Hex   Dots		Dec	Char Description
display \x0041 17				#65	A Latin capital letter a
display \x0042 127			#66	B Latin capital letter b
display \x0043 147			#67	C Latin capital letter c
display \x0044 1457			#68	D Latin capital letter d
display \x0045 157			#69	E Latin capital letter e
display \x0046 1247			#70	F Latin capital letter f
display \x0047 12457		#71	G Latin capital letter g
display \x0048 1257			#72	H Latin capital letter h
display \x0049 247			#73	I Latin capital letter i
display \x004A 2457			#74	J Latin capital letter j
display \x004B 137			#75	K Latin capital letter k
display \x004C 1237			#76	L Latin capital letter l
display \x004D 1347			#77	M Latin capital letter m
display \x004E 13457		#78	N Latin capital letter n
display \x004F 1357			#79	O Latin capital letter o
display \x0050 12347		#80	P Latin capital letter p
display \x0051 123457		#81	Q Latin capital letter q
display \x0052 12357		#82	R Latin capital letter r
display \x0053 2347			#83	S Latin capital letter s
display \x0054 23457		#84	T Latin capital letter t
display \x0055 1367			#85	U Latin capital letter u
display \x0056 12367		#86	V Latin capital letter v
display \x0057 24567		#87	W Latin capital letter w
display \x0058 13467		#88	X Latin capital letter x
display \x0059 134567		#89	Y Latin capital letter y
display \x005A 13567		#90	Z Latin capital letter z

display \x005B 12356	#	91  [	left square bracket
display \x005C 347		#	92	\	reverse solidus
display \x005D 23456	# 93  ]	right square bracket
display \x005E 2346		# 94 ^	circumflex accent
display \x005F 456		# 95 _	low line
display \x0060 345		# 96 `	grave accent

display \x0061 1			#97  a  Latin small letter a
display \x0062 12			#98  b Latin small letter b
display \x0063 14			#99  c Latin small letter c
display \x0064 145		#100 d Latin small letter d
display \x0065 15			#101 e Latin small letter e
display \x0066 124		#102 f Latin small letter f
display \x0067 1245		#103 g Latin small letter g
display \x0068 125		#104 h Latin small letter h
display \x0069  24		#105 i Latin small letter i
display \x006A  245		#106 j Latin small letter j
display \x006B 13			#107 k Latin small letter k
display \x006C 123		#108 l Latin small letter l
display \x006D 134		#109 m Latin small letter m
display \x006E 1345		#110 n Latin small letter n
display \x006F 135		#111 o Latin small letter o
display \x0070 1234		#112 p Latin small letter p
display \x0071 12345	#113 q Latin small letter q
display \x0072 1235		#114 r Latin small letter r
display \x0073 234		#115 s Latin small letter s
display \x0074  2345	#116 t Latin small letter t
display \x0075 136		#117 u Latin small letter u
display \x0076 1236		#118 v Latin small letter v
display \x0077  2456	#119 w Latin small letter w
display \x0078 1346		#120 x Latin small letter x
display \x0079 13456	#121 y Latin small letter y
display \x007A 1356		#122 z Latin small letter z

display \x007B  12356			# 123 {		left curly bracket
display \x007C 34					# 124 |		vertical line
display \x007D 23456			#	125 }		right curly bracket
display \x007E   2356     #	126 ~   tilde
display \x007F 4568				# 127	^		?delete

#Hex Dots Dec Char Description
display \x0080 48 # 128~@<control>
display \x0081 18 # 129~A<control>
display \x0082 128 # 130~Bbreak permitted here
display \x0083 148 # 131~Cno break here
display \x0084 1458 # 132~D<control>
display \x0085 158 # 133~Enext line
display \x0086 1248 # 134~Fstart of selected area
display \x0087 12458 # 135~Gend of selected area
display \x0088 1258 # 136~Hcharacter tabulation set
display \x0089  248 # 137~Icharacter tabulation with justification
display \x008A  2458 # 138~Jline tabulation set
display \x008B 138 # 139~Kpartial line down
display \x008C 1238 # 140~Lpartial line up
display \x008D 1348 # 141~Mreverse line feed
display \x008E 13458 # 142~Nsingle shift two
display \x008F 1358 # 143~Osingle shift three
display \x0090 12348 # 144~Pdevice control string
display \x0091 123458 # 145~Qprivate use one
display \x0092 12358 # 146~Rprivate use two
display \x0093 2348 # 147~Sset transmit state
display \x0094  23458 # 148~Tcancel character
display \x0095 1368 # 149~Umessage waiting
display \x0096 12368 # 150~Vstart of guarded area
display \x0097  24568 # 151~Wend of guarded area
display \x0098 13468 # 152~Xstart of string
display \x0099 134568 # 153~Y<control>
display \x009A 13568 # 154~Zsingle character introducer
display \x009B  2468 # 155~[control sequence introducer
display \x009C 12568 # 156~\string terminator
display \x009D 124568 # 157~]operating system command
display \x009E 458 # 158~^privacy message
display \x009F 4568		# 159				~_application program command
display \x00A0 0			#160			no-break space

#Hex Dots Dec Char Description
display \x0000 478 #0^@null
display \x0001 178 #1^Astart of heading
display \x0002 1278 #2^Bstart of text
display \x0003 1478 #3^Cend of text
display \x0004 14578 #4^Dend of transmission
display \x0005 1578 #5^Eenquiry
display \x0006 12478 #6^Facknowledge
display \x0007 124578 #7^Gbell
display \x0008 12578 #8^Hbackspace
display \x0009  2478 #9^Ihorizontal tabulation
display \x000A  24578 #10^Jline feed
display \x000B 1378 #11^Kvertical tabulation
display \x000C 12378 #12^Lform feed
display \x000D 13478 #13^Mcarriage return
display \x000E 134578 #14^Nshift out
display \x000F 13578 #15^Oshift in
display \x0010 123478 #16^Pdata link escape
display \x0011 1234578 #17^Qdevice control one
display \x0012 123578 #18^Rdevice control two
display \x0013 23478 #19^Sdevice control three
display \x0014  234578 #20^Tdevice control four
display \x0015 13678 #21^Unegative acknowledge
display \x0016 123678 #22^Vsynchronous idle
display \x0017  245678 #23^Wend of transmission block
display \x0018 134678 #24^Xcancel
display \x0019 1345678 #25^Yend of medium
display \x001A 135678 #26^Zsubstitute
display \x001B  24678 #27^[escape
display \x001C 125678 #28^\file separator
display \x001D 1245678 #29^]group separator
display \x001E 4578 #30^^record separator
display \x001F 45678 #31^_unit separator

				#Hex	 Dots			Dec	Char	Description
display \x00A1 23467  #	161 ¡			inverted exclamation mark
display \x00A2 58			#162	¢			cent sign 
display \x00A3 34567  # 163	£			pound sign
display \x00A4 1467		# 164	¤			currency sign
display \x00A5 123467 # 165	¥			yen sign
display \x00A6 1567		# 166	¦			broken bar
display \x00A7 357		# 167	§			section sign
display \x00A8  57		# 168	¨			diaeresis
display \x00A9  23567 # 169	©			copyright sign
display \x00AA 8			# 170	ª			feminine ordinal indicator
display \x00AB 1267		# 171	«			left-pointing double angle quotation mark
display \x00AC  2567  # 172	¬			not sign
display \x00AD 367		# 173	­			soft hyphen
display \x00AE  2367  # 174	®			registered sign
display \x00AF  267		# 175	¯			macron
display \x00B0 3567		# 176	°			degree sign

display \x00C0  23578		# 192		À		Latin capital letter a with grave
display \x00C1	1678		# 193		Á		Latin capital letter a with acute
display \x00C2	16			# 194		Â		Latin capital letter a with circumflex
display \x00C3	578 # 195Ã Latin capital letter a with tilde
display \x00C4	1234678 # 196Ä Latin capital letter a with diaeresis
display \x00C5	34578 # 197Å Latin capital letter a with ring above
display \x00C6	378 # 198Æ Latin capital letter ae
display \x00C7	34678 # 199Ç Latin capital letter c with cedilla
display \x00C8  23567		#	200		È		Latin capital letter e with grave
display \x00C9	12678		# 201É Latin capital letter e with acute
display \x00CA  2378	# 202		Ê		Latin capital letter e with circumflex
display \x00CB 12345678 # 203Ë Latin capital letter e with diaeresis
display \x00CC  23678 # 204Ì Latin capital letter i with grave
display \x00CD 14678 # 205Í Latin capital letter i with acute
display \x00CE  2578	# 206		Î		Latin capital letter i with circumflex
display \x00CF 1235678 # 207Ï Latin capital letter i with diaeresis
display \x00D0 678 # 208Ð Latin capital letter eth
display \x00D1 4678 # 209Ñ Latin capital letter n with tilde
display \x00D2 3578 # 210Ò Latin capital letter o with grave
display \x00D3 145678 # 211Ó Latin capital letter o with acute
display \x00D4  25678 # 212		Ô		Latin capital letter o with circumflex
display \x00D5  5678 # 213Õ Latin capital letter o with tilde
display \x00D6  234678 # 214Ö Latin capital letter o with diaeresis
display \x00D7 167  # 215×multiplication sign
display \x00D8 3478 # 216Ø Latin capital letter o with stroke
display \x00D9 35678 # 217Ù Latin capital letter u with grave
display \x00DA 15678 # 218Ú Latin capital letter u with acute
display \x00DB  2678	# 219		Û		Latin capital letter u with circumflex
display \x00DC  2345678 # 220Ü Latin capital letter u with diaeresis
display \x00DD 124678 # 221Ý Latin capital letter y with acute
display \x00DE 3678 # 222Þ Latin capital letter thorn
display \x00DF 345678 # 223ß Latin small letter sharp s
display \x00E0  2358 # 224à Latin small letter a with grave
display \x00E1 168 # 225á Latin small letter a with acute
display \x00E2	16		# 226		â		Latin small letter a with circumflex
display \x00E3 58 # 227ã Latin small letter a with tilde
display \x00E4 123468 # 228ä Latin small letter a with diaeresis
display \x00E5 3458 # 229å Latin small letter a with ring above
display \x00E6 38 # 230æ Latin small letter ae
display \x00E7 3468 # 231ç Latin small letter c with cedilla
display \x00E8  23568 # 232è Latin small letter e with grave
display \x00E9 1268 # 233é Latin small letter e with acute
display \x00EA  238		# 234		ê		Latin small letter e with circumflex
display \x00EB 1234568 # 235ë Latin small letter e with diaeresis
display \x00EC  2368 # 236ì Latin small letter i with grave
display \x00ED 1468 # 237í Latin small letter i with acute
display \x00EE  258		# 238		î		Latin small letter i with circumflex
display \x00EF 123568 # 239ï Latin small letter i with diaeresis
display \x00F0 68 # 240ð Latin small letter eth
display \x00F1 468 # 241ñ Latin small letter n with tilde
display \x00F2 358 # 242ò Latin small letter o with grave
display \x00F3 14568 # 243ó Latin small letter o with acute
display \x00F4  2568	# 244		ô		Latin small letter o with circumflex
display \x00F5  568 # 245õ Latin small letter o with tilde
display \x00F6  23468 # 246ö Latin small letter o with diaeresis
display \x00F7 347  # 247÷division sign
display \x00F8 348 # 248ø Latin small letter o with stroke
display \x00F9 3568 # 249ù Latin small letter u with grave
display \x00FA 1568 # 250ú Latin small letter u with acute
display \x00FB  268		# 251		û		Latin small letter u with circumflex
display \x00FC  234568 # 252ü Latin small letter u with diaeresis
display \x00FD 12468 # 253ý Latin small letter y with acute
display \x00FE 368 # 254þ Latin small letter thorn
display \x00FF 34568 # 255ÿ Latin small letter y with diaeresis


display \x00BB 3457  # 187»right-pointing double angle quotation mark
display \x00B9  27  # 185¹superscript one
display \x00B2 237  # 178²superscript two
display \x00B3 257  # 179³superscript three
display \x00B1 3467  # 177±plus-minus sign
display \x00D7 167  # 215×multiplication sign

display \x00B7 467  # 183·middle dot

display \x00BF 14567  # 191¿inverted question mark


display \x00B6  2357  # 182¶pilcrow sign


#Hex Dots Dec Char Description
display \x00BC 123567  # 188¼vulgar fraction one quarter
display \x00BD 1234567  # 189½vulgar fraction one half
display \x00BE  234567  # 190¾vulgar fraction three quarters

# Each of the three extended accent characters is the same as its conventional
# compose character but with dot7 added:

#Hex Dots Dec Char Description
display \x00B4 37  # 180´acute accent
display \x00B8 67  # 184¸cedilla


# The two gender symbols are:

#Hex Dots Dec Char Description
display \x00BA 7  # 186ºmasculine ordinal indicator


# The three remaining characters are:

#Hex Dots Dec Char Description

display \x00B5  567  # 181µmicro sign


# The nonbreaking space is dots 7 and 8 because this presents a sequence of
# nonbreaking spaces as a smooth low line segment.

#Hex Dots Dec Char Description

