Revision d6a250c513c826a1ed639315131be9b96e33279b authored by Murat Sariyar on 09 February 2011, 00:00:00 UTC, committed by Gabor Csardi on 09 February 2011, 00:00:00 UTC
1 parent 7851ce8
Raw File
phonet.h
/*
 * phonet.h
 * --------
 *
 * Phonetic rules for "phonet.c".
 *
 * Copyright (c):
 * 1999-2003:  Joerg MICHAEL, Adalbert-Stifter-Str. 11, 30655 Hannover, Germany
 *     and
 * (version 1.0) 1999:  Heise Verlag, Helstorfer Str. 7, 30625 Hannover, Germany
 *
 * SCCS: @(#) phonet.h  1.3.4  2003-08-16
 *
 * This program is subject to the GNU Lesser General Public License (LGPL)
 * (formerly known as GNU Library General Public Licence)
 * as published by the Free Software Foundation; either version 2 of the
 * License, or (at your option) any later version.
 * This program 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.
 *
 * You should have received a copy of the GNU Library General Public License
 * along with this program; if not, write to the
 * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 *
 * Actually, the LGPL is __less__ restrictive than the better known GNU General
 * Public License (GPL). See the GNU Library General Public License or the file
 * COPYING.LIB for more details and for a DISCLAIMER OF ALL WARRANTIES.
 *
 * There is one important restriction: If you modify this program in any way
 * (e.g. add or change phonetic rules or modify the underlying logic or
 * translate this program into another programming language), you must also
 * release the changes under the terms of the LGPL.
 * That means you have to give out the source code to your changes,
 * and a very good way to do so is mailing them to the address given below.
 * I think this is the best way to promote further development and use
 * of this software.
 *
 * If you have any remarks, feel free to e-mail to:
 *     ct@ct.heise.de
 */


#ifndef _PHONET_H_
#define _PHONET_H_

#include <stdio.h>
#include <stdlib.h>

#include "ph_ext.h"


#define  PHONET_VERSION  "version 1.3.4, 2003-08-16"
/****  char set = iso8859-1  ****/


/****  we assume 1 byte chars  ****/
#define  HASH_COUNT    256

/****  macro to make the rules easier readable  ****/
#define  null  NULL

/****  list of "normal" letters and umlauts, with upper case  ****/
#define letters_a_to_z  "abcdefghijklmnopqrstuvwxyz"
#define letters_A_to_Z  "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
#define umlaut_lower  "����������������������������������"
#define umlaut_upper  "����������������������،֊������ݟ"


/****  end marker for string table  ****/
static char PHONET_END[] = "";

static char *phonet_language = "unknown";
static int  *phonet_init = NULL;
static int  *phonet_hash = NULL;
static int  (*phonet_hash_1)[26][28] = NULL;   /***  these are pointers  ***/
static int  (*phonet_hash_2)[26][28] = NULL;   /***  to  array[26][28]   ***/
static char **phonet_rules = NULL;


/****  Syntax for phonetic rules:               ****/
/****    <search_string>  <1.rule>  <2.rule>    ****/
/****  Syntax for search strings:               ****/
/****    <word> [<->..] [<] [<0-9>] [^[^]] [$]  ****/

/****  Remarks:                                 ****/
/****  a) All phonetic rules must be written    ****/
/****     in upper case.                        ****/
/****  b) The end of <word> may contain as an   ****/
/****     optional simple regular expression    ****/
/****     one array of letters (or umlaut's)    ****/
/****     enclosed in '(' and ')'.              ****/
/****  c) Rules with a '<' demand that the      ****/
/****     replacement string may not be longer  ****/
/****     than the search string.               ****/
/****  d) The placement of rules determines     ****/
/****     their priority. Therefore, the rules  ****/
/****     for "SH" must be placed before the    ****/
/****     rules for "S"                         ****/
/****     (otherwise, a conversion error will   ****/
/****      occur for "SH").                     ****/



#ifdef PHONET_ENGLISH

/*
 *
 * UNDER CONSTRUCTION
 * (no rules available at this time)
 *
 */

#endif    /****  PHONET_ENGLISH  ****/




#ifdef PHONET_GERMAN

static char *phonet_language_german = "German";
static int  phonet_init_german = 0;
static int  phonet_hash_german [HASH_COUNT];
static int  phonet_hash_german_1 [26][28];
static int  phonet_hash_german_2 [26][28];

/****  Phonetic rules for German.     ****/
/****  First Rules:                   ****/
/****    The letters �,�,C,J,Q,V,Y    ****/
/****    will "disappear".            ****/
/****  Second Rules (less accurate):  ****/
/****    The letters �,�,�,C,D,       ****/
/****    G,H,J,O,P,Q,S,V,W,X,Y        ****/
/****    will "disappear".            ****/

static char *phonet_rules_german[] =
  {
/****  separator chars  ****/
    "�",               "",        "",
    "'",               "",        "",
    "`$",              "",        "",
    "\"",              " ",       " ",
    ",",               " ",       " ",
    "-",               " ",       " ",
    " ",               " ",       " ",
    ".",               ".",       ".",
    ":",               ".",       ".",
/****  German umlauts  ****/
    "�ER-",            "E",       "E",
    "�U<",             "EU",      "EU",
    "�V(AEOU)-<",      "EW",      null,
    "�$",              "�",       null,
    "�<",              null,      "E",
    "�",               "E",       null,
    "�ER-",            "�",       "�",
    "�U",              "�",       "�",
    "�VER--<",         "�W",      null,
    "�V(AOU)-",        "�W",      null,
    "�BEL(GNRW)-^^",   "�BL ",    "IBL ",
    "�BER^^",          "�BA",     "IBA",
    "�ER-",            "�",       "I",
    "�VER--<",         "�W",      null,
    "�V(AOU)-",        "�W",      null,
    "�",               null,      "I",
    "�CH<",            null,      "Z",
    "�<",              "S",       "Z",
/****  international umlauts  ****/
    "�<",              "A",       "A",
    "�<",              "A",       "A",
    "�<",              "A",       "A",
    "�<",              "A",       "A",
    "�<",              "A",       "A",
    "�ER-",            "E",       "E",
    "�U<",             "EU",      "EU",
    "�V(AEOU)-<",      "EW",      null,
    "�$",              "�",       null,
    "�<",              null,      "E",
    "�",               "E",       null,
    "�",               "Z",       "Z",
    "��-",             "",        "",
    "�",               "DI",      "TI",
    "�<",              "E",       "E",
    "�<",              "E",       "E",
    "�<",              "E",       "E",
    "�",               "E",       "E",
    "�<",              "I",       "I",
    "�<",              "I",       "I",
    "�<",              "I",       "I",
    "�",               "I",       "I",
    "��-",             "",        "",
    "�",               "NI",      "NI",
    "�<",              "O",       "U",
    "�<",              "O",       "U",
    "�<",              "O",       "U",
    "�<",              "O",       "U",
    "�<",              "�",       "�",
    "�(IJY)-<",        "E",       "E",
    "�<",              "�",       "�",
    "�<",              "S",       "Z",
    "�",               "T",       "T",
    "�<",              "U",       "U",
    "�<",              "U",       "U",
    "�<",              "U",       "U",
    "�<",              "I",       "I",
    "�<",              "I",       "I",
/****  "normal" letters (A-Z)  ****/
    "ABELLE$",         "ABL",     "ABL",
    "ABELL$",          "ABL",     "ABL",
    "ABIENNE$",        "ABIN",    "ABIN",
    "ACEY$",           "AZI",     "AZI",
    "ADV",             "ATW",     null,
    "AEGL-",           "EK",      null,
    "AEU<",            "EU",      "EU",
    "AE2",             "E",       "E",
    "AFTRAUBEN------", "AFT ",    "AFT ",
    "AGL-1",           "AK",      null,
    "AGNI-^",          "AKN",     "AKN",
    "AGNIE-",          "ANI",     "ANI",
    "AGN(AEOU)-$",     "ANI",     "ANI",
    "AH(AIO�U�Y)-",    "AH",      null,
    "AIA2",            "AIA",     "AIA",
    "AIE$",            "E",       "E",
    "AILL(EOU)-",      "ALI",     "ALI",
    "AINE$",           "EN",      "EN",
    "AIRE$",           "ER",      "ER",
    "AIR-",            "E",       "E",
    "AISE$",           "ES",      "EZ",
    "AISSANCE$",       "ESANS",   "EZANZ",
    "AISSE$",          "ES",      "EZ",
    "AIX$",            "EX",      "EX",
    "AJ(A�E���IO�U�)--", "A",     "A",
    "AKTIE",           "AXIE",    "AXIE",
    "AKTUEL",          "AKTUEL",  null,
    "ALOI^",           "ALOI",    "ALUI",  /** Do NOT merge these rules  **/
    "ALOY^",           "ALOI",    "ALUI",  /** (needed by "check_rules") **/
    "AMATEU(RS)-",     "AMAT�",   "ANAT�",
    "ANCH(OEI)-",      "ANSH",    "ANZ",
    "ANDERGEGANG----", "ANDA GE", "ANTA KE",
    "ANDERGEHE----",   "ANDA ",   "ANTA ",
    "ANDERGESETZ----", "ANDA GE", "ANTA KE",
    "ANDERGING----",   "ANDA ",   "ANTA ",
    "ANDERSETZ(ET)-----", "ANDA ", "ANTA ",
    "ANDERZUGEHE----", "ANDA ZU ", "ANTA ZU ",
    "ANDERZUSETZE-----", "ANDA ZU ", "ANTA ZU ",
    "ANER(BKO)---^^",  "AN",      null,
    "ANHAND---^$",     "AN H",    "AN ",
    "ANH(A�EIO�U�Y)--^^", "AN",   null,
    "ANIELLE$",        "ANIEL",   "ANIL",
    "ANIEL",           "ANIEL",   null,
    "ANSTELLE----^$",  "AN ST",   "AN ZT",
    "ANTI^^",          "ANTI",    "ANTI",
    "ANVER^^",         "ANFA",    "ANFA",
    "ATIA$",           "ATIA",    "ATIA",
    "ATIA(NS)--",      "ATI",     "ATI",
    "ATI(A�O�U�)-",    "AZI",     "AZI",
    "AUAU--",          "",        "",
    "AUERE$",          "AUERE",   null,
    "AUERE(NS)-$",     "AUERE",   null,
    "AUERE(AIOUY)--",  "AUER",    null,
    "AUER(A�IO�U�Y)-", "AUER",    null,
    "AUER<",           "AUA",     "AUA",
    "AUF^^",           "AUF",     "AUF",
    "AULT$",           "O",       "U",
    "AUR(BCDFGKLMNQSTVWZ)-", "AUA", "AUA",
    "AUR$",            "AUA",     "AUA",
    "AUSSE$",          "OS",      "UZ",
    "AUS(ST)-^",       "AUS",     "AUS",
    "AUS^^",           "AUS",     "AUS",
    "AUTOFAHR----",    "AUTO ",   "AUTU ",
    "AUTO^^",          "AUTO",    "AUTU",
    "AUX(IY)-",        "AUX",     "AUX",
    "AUX",             "O",       "U",
    "AU",              "AU",      "AU",
    "AVER--<",         "AW",      null,
    "AVIER$",          "AWIE",    "AFIE",
    "AV(E���I)-^",     "AW",      null,
    "AV(AOU)-",        "AW",      null,
    "AYRE$",           "EIRE",    "EIRE",
    "AYRE(NS)-$",      "EIRE",    "EIRE",
    "AYRE(AIOUY)--",   "EIR",     "EIR",
    "AYR(A�IO�U�Y)-",  "EIR",     "EIR",
    "AYR<",            "EIA",     "EIA",
    "AYER--<",         "EI",      "EI",
    "AY(A�EIO�U�Y)--", "A",       "A",
    "A(IJY)<",         "EI",      "EI",
    "BABY^$",          "BEBI",    "BEBI",
    "BAB(IY)^",        "BEBI",    "BEBI",
    "BEAU^$",          "BO",      null,
    "BEA(BCMNRU)-^",   "BEA",     "BEA",
    "BEAT(AEIMORU)-^", "BEAT",    "BEAT",
    "BEE$",            "BI",      "BI",
    "BEIGE^$",         "BESH",    "BEZ",
    "BER(DT)-",        "BER",     null,
    "BERN(DT)-",       "BERN",    null,
    "BE(LMNRST)-^",    "BE",      "BE",
    "BETTE$",          "BET",     "BET",
    "BEVOR^$",         "BEFOR",   null,
    "BIC$",            "BIZ",     "BIZ",
    "BOWL(EI)-",       "BOL",     "BUL",
    "BP(A�E���I���O�RU�Y)-", "B", "B",
    "BRINGEND-----^",  "BRI",     "BRI",
    "BRINGEND-----",   " BRI",    " BRI",
    "BROW(NS)-",       "BRAU",    "BRAU",
    "BUDGET7",         "B�GE",    "BIKE",
    "BUFFET7",         "B�FE",    "BIFE",
    "BYLLE$",          "BILE",    "BILE",
    "BYLL$",           "BIL",     "BIL",
    "BYPA--^",         "BEI",     "BEI",
    "BYTE<",           "BEIT",    "BEIT",
    "BY9^",            "B�",      null,
    "B(S�Z)$",         "BS",      null,
    "CACH(EI)-^",      "KESH",    "KEZ",
    "CAE--",           "Z",       "Z",
    "CA(IY)$",         "ZEI",     "ZEI",
    "CE(EIJUY)--",     "Z",       "Z",
    "CENT<",           "ZENT",    "ZENT",
    "CERST(EI)----^",  "KE",      "KE",
    "CER$",            "ZA",      "ZA",
    "CE3",             "ZE",      "ZE",
    "CH'S$",           "X",       "X",
    "CH�S$",           "X",       "X",
    "CHAO(ST)-",       "KAO",     "KAU",
    "CHAMPIO-^",       "SHEMPI",  "ZENBI",
    "CHAR(AI)-^",      "KAR",     "KAR",
    "CHAU(CDFSVWXZ)-", "SHO",     "ZU",
    "CHE(CF)-",        "SHE",     "ZE",
    "CHEM-^",          "KE",      "KE",    /**  or: "CHE", "KE" **/
    "CHEQUE<",         "SHEK",    "ZEK",
    "CHI(CFGPVW)-",    "SHI",     "ZI",
    "CH(AEUY)-<^",     "SH",      "Z",
    "CHK-",            "",        "",
    "CHO(CKPS)-^",     "SHO",     "ZU",
    "CHRIS-",          "KRI",     null,
    "CHRO-",           "KR",      null,
    "CH(LOR)-<^",      "K",       "K",
    "CHST-",           "X",       "X",
    "CH(S�XZ)3",       "X",       "X",
    "CHTNI-3",         "CHN",     "KN",
    "CH^",             "K",       "K",     /**  or: "CH", "K"  **/
    "CH",              "CH",      "K",
    "CIC$",            "ZIZ",     "ZIZ",
    "CIENCEFICT----",  "EIENS ",  "EIENZ ",
    "CIENCE$",         "EIENS",   "EIENZ",
    "CIER$",           "ZIE",     "ZIE",
    "CYB-^",           "ZEI",     "ZEI",
    "CY9^",            "Z�",      "ZI",
    "C(IJY)-<3",       "Z",       "Z",
    "CLOWN-",          "KLAU",    "KLAU",
    "CCH",             "Z",       "Z",
    "CCE-",            "X",       "X",
    "C(CK)-",          "",        "",
    "CLAUDET---",      "KLO",     "KLU",
    "CLAUDINE^$",      "KLODIN",  "KLUTIN",
    "COACH",           "KOSH",    "KUZ",
    "COLE$",           "KOL",     "KUL",
    "COUCH",           "KAUSH",   "KAUZ",
    "COW",             "KAU",     "KAU",
    "CQUES$",          "K",       "K",
    "CQUE",            "K",       "K",
    "CRASH--9",        "KRE",     "KRE",
    "CREAT-^",         "KREA",    "KREA",
    "CST",             "XT",      "XT",
    "CS<^",            "Z",       "Z",
    "C(S�X)",          "X",       "X",
    "CT'S$",           "X",       "X",
    "CT(S�XZ)",        "X",       "X",
    "CZ<",             "Z",       "Z",
    "C(�������)3",     "Z",       "Z",
    "C.^",             "C.",      "C.",
    "C�-",             "Z",       "Z",
    "C�$",             "Z�",      "ZI",
    "C'S$",            "X",       "X",
    "C<",              "K",       "K",
    "DAHER^$",         "DAHER",   null,
    "DARAUFFOLGE-----", "DARAUF ", "TARAUF ",
    "DAVO(NR)-^$",     "DAFO",    "TAFU",
    "DD(SZ)--<",       "",        "",
    "DD9",             "D",       null,
    "DEPOT7",          "DEPO",    "TEBU",
    "DESIGN",          "DISEIN",  "TIZEIN",
    "DE(LMNRST)-3^",   "DE",      "TE",
    "DETTE$",          "DET",     "TET",
    "DH$",             "T",       null,
    "DIC$",            "DIZ",     "TIZ",
    "DIDR-^",          "DIT",     null,
    "DIEDR-^",         "DIT",     null,
    "DJ(AEIOU)-^",     "I",       "I",
    "DRY9^",           "DR�",     null,
    "DT-",             "",        "",
    "DUIS-^",          "D�",      "TI",
    "DURCH^^",         "DURCH",   "TURK",
    "DVA$",            "TWA",     null,
    "DY9^",            "D�",      null,
    "DYS$",            "DIS",     null,
    "DS(CH)--<",       "T",       "T",
    "DST",             "ZT",      "ZT",
    "DZS(CH)--",       "T",       "T",
    "D(S�Z)",          "Z",       "Z",
    "D(A�EIO�RU�Y)-",  "D",       null,
    "D(��������������)-", "D",    null,
    "D'H^",            "D",       "T",
    "D�H^",            "D",       "T",
    "D`H^",            "D",       "T",
    "D'S3$",           "Z",       "Z",
    "D�S3$",           "Z",       "Z",
    "D^",              "D",       null,
    "D",               "T",       "T",
    "EAULT$",          "O",       "U",
    "EAUX$",           "O",       "U",
    "EAU",             "O",       "U",
    "EAV",             "IW",      "IF",
    "EAS3$",           "EAS",     null,
    "EA(A�EIO��Y)-3",  "EA",      "EA",
    "EA3$",            "EA",      "EA",
    "EA3",             "I",       "I",
    "EBENSO^$",        "EBNSO",   "EBNZU",
    "EBENSO^^",        "EBNSO ",  "EBNZU ",
    "EBEN^^",          "EBN",     "EBN",
    "EE9",             "E",       "E",
    "EGL-1",           "EK",      null,
    "EHE(IUY)--1",     "EH",      null,
    "EHUNG---1",       "E",       null,
    "EH(A�IO�U�Y)-1",  "EH",      null,
    "EIEI--",          "",        "",
    "EIERE^$",         "EIERE",   null,
    "EIERE$",          "EIERE",   null,
    "EIERE(NS)-$",     "EIERE",   null,
    "EIERE(AIOUY)--",  "EIER",    null,
    "EIER(A�IO�U�Y)-", "EIER",    null,
    "EIER<",           "EIA",     null,
    "EIGL-1",          "EIK",     null,
    "EIGH$",           "EI",      "EI",
    "EIH--",           "E",       "E",
    "EILLE$",          "EI",      "EI",
    "EIR(BCDFGKLMNQSTVWZ)-", "EIA", "EIA",
    "EIR$",            "EIA",     "EIA",
    "EITRAUBEN------", "EIT ",    "EIT ",
    "EI",              "EI",      "EI",
    "EJE(VW)--",       "",        "",
    "EJ$",             "EI",      "EI",
    "ELIZ^",           "ELIS",    null,
    "ELZ^",            "ELS",     null,
    "EL-^",            "E",       "E",
    "ELANG----1",      "E",       "E",
    "EL(DKL)--1",      "E",       "E",
    "EL(MNT)--1$",     "E",       "E",
    "ELYNE$",          "ELINE",   "ELINE",
    "ELYN$",           "ELIN",    "ELIN",
    "EL(A�E���I���O�U�Y)-1", "EL", "EL",
    "EL-1",            "L",       "L",
    "EM-^",            null,      "E",
    "EM(DFKMPQT)--1",  null,      "E",
    "EM(A�E���I���O�U�Y)--1", null, "E",
    "EM-1",            null,      "N",
    "ENGAG-^",         "ANGA",    "ANKA",
    "EN-^",            "E",       "E",
    "ENTUEL",          "ENTUEL",  null,
    "EN(CDGKQSTZ)--1", "E",       "E",
    "EN(A�E���I���NO�U�Y)-1", "EN", "EN",
    "EN-1",            "",        "",
    "ERH(A�EIO�U�)-^", "ERH",     "ER",
    "ER-^",            "E",       "E",
    "ERREGEND-----",   " ER",     " ER",
    "ERT1$",           "AT",      null,
    "ER(DGLKMNRQTZ�)-1", "ER",    null,
    "ER(A�E���I���O�U�Y)-1", "ER", "A",
    "ER1$",            "A",       "A",
    "ER<1",            "A",       "A",
    "ETAT7",           "ETA",     "ETA",
    "ETI(A�O��U)-",    "EZI",     "EZI",
    "EUERE$",          "EUERE",   null,
    "EUERE(NS)-$",     "EUERE",   null,
    "EUERE(AIOUY)--",  "EUER",    null,
    "EUER(A�IO�U�Y)-", "EUER",    null,
    "EUER<",           "EUA",     null,
    "EUEU--",          "",        "",
    "EUILLE$",         "�",       "�",
    "EUR$",            "�R",      "�R",
    "EUX",             "�",       "�",
    "EUSZ$",           "EUS",     null,
    "EUTZ$",           "EUS",     null,
    "EUYS$",           "EUS",     "EUZ",
    "EUZ$",            "EUS",     null,
    "EU",              "EU",      "EU",
    "EVER--<1",        "EW",      null,
    "EV(�O�U�)-1",     "EW",      null,
    "EYER<",           "EIA",     "EIA",
    "EYE(VW)--",       "",        "",
    "EY<",             "EI",      "EI",
    "FANS--^$",        "FE",      "FE",
    "FAN-^$",          "FE",      "FE",
    "FAULT-",          "FOL",     "FUL",
    "FEE(DL)-",        "FI",      "FI",
    "FEHLER",          "FELA",    "FELA",
    "FE(LMNRST)-3^",   "FE",      "FE",
    "FOERDERN---^",    "F�RD",    "F�RT",
    "FOERDERN---",     " F�RD",   " F�RT",
    "FOND7",           "FON",     "FUN",
    "FRAIN$",          "FRA",     "FRA",
    "FRISEU(RS)-",     "FRIS�",   "FRIZ�",
    "FY9^",            "F�",      null,
    "F�RDERN---^",     "F�RD",    "F�RT",
    "F�RDERN---",      " F�RD",   " F�RT",
    "GAGS^$",          "GEX",     "KEX",
    "GAG^$",           "GEK",     "KEK",
    "GD",              "KT",      "KT",
    "GEGEN^^",         "GEGN",    "KEKN",
    "GEGENGEKOM-----", "GEGN ",   "KEKN ",
    "GEGENGESET-----", "GEGN ",   "KEKN ",
    "GEGENKOMME-----", "GEGN ",   "KEKN ",
    "GEGENZUKOM---",  "GEGN ZU ", "KEKN ZU ",
    "GENDETWAS-----$", "GENT ",   "KENT ",
    "GENRE",           "IORE",    "IURE",
    "GE(LMNRST)-3^",   "GE",      "KE",
    "GER(DKT)-",       "GER",     null,
    "GETTE$",          "GET",     "KET",
    "GGF.",            "GF.",     null,
    "GG-",             "",        "",
    "GH",              "G",       null,
    "GI(AOU)-^",       "I",       "I",
    "GION-3",          "KIO",     "KIU",
    "G(CK)-",          "",        "",
    "GMBH^$",          "GMBH",    "GMBH",
    "GNAC$",           "NIAK",    "NIAK",
    "GNON$",           "NION",    "NIUN",
    "GN$",             "N",       "N",
    "GONCAL-^",        "GONZA",   "KUNZA",
    "GRY9^",           "GR�",     null,
    "G(S�XZ)-<",       "K",       "K",
    "GUCK-",           "KU",      "KU",
    "GUI-^",           "G",       "K",
    "GUTAUSSEH------^", "GUT ",   "KUT ",
    "GUTGEHEND------^", "GUT ",   "KUT ",
    "GY9^",            "G�",      null,
    "G(A�EILO�RU�Y)-", "G",       null,
    "G(��������������)-", "G",    null,
    "G'S$",            "X",       "X",
    "G�S$",            "X",       "X",
    "G^",              "G",       null,
    "G",               "K",       "K",
    "HA(HIUY)--1",     "H",       null,
    "HANDVOL---^",     "HANT ",   "ANT ",
    "HANNOVE-^",       "HANOF",   null,
    "HAVEN7$",         "HAFN",    null,
    "HEAD-",           "HE",      "E",
    "HELIEGEN------",  "E ",      "E ",
    "HESTEHEN------",  "E ",      "E ",
    "HE(LMNRST)-3^",   "HE",      "E",
    "HE(LMN)-1",       "E",       "E",
    "HEUR1$",          "�R",      "�R",
    "HE(HIUY)--1",     "H",       null,
    "HIH(A�EIO�U�Y)-1", "IH",     null,
    "HLH(A�EIO�U�Y)-1", "LH",     null,
    "HMH(A�EIO�U�Y)-1", "MH",     null,
    "HNH(A�EIO�U�Y)-1", "NH",     null,
    "HOBBY9^",          "HOBI",   null,
    "HOCHBEGAB-----^",  "HOCH ",  "UK ",
    "HOCHTALEN-----^",  "HOCH ",  "UK ",
    "HOCHZUFRI-----^",  "HOCH ",  "UK ",
    "HO(HIY)--1",       "H",      null,
    "HRH(A�EIO�U�Y)-1", "RH",     null,
    "HUH(A�EIO�U�Y)-1", "UH",     null,
    "HUI--1",          "H",       null,
    "HYGIEN^",         "H�KIEN",  null,
    "HY9^",            "H�",      null,
    "HY(BDGMNPST)-",   "�",       null,
    "H.^",             null,      "H.",
    "H�U--1",          "H",       null,
    "H^",              "H",       "",
    "H",               "",        "",
    "ICHELL---",       "ISH",     "IZ",
    "IEC$",            "IZ",      "IZ",
    "IEDENSTELLE------", "IDN ",  "ITN ",
    "IEI-3",           "",        "",
    "IELL3",           "IEL",     "IEL",
    "IENNE$",          "IN",      "IN",
    "IERRE$",          "IER",     "IER",
    "IERZULAN---",     "IR ZU ",  "IR ZU ",
    "IETTE$",          "IT",      "IT",
    "IEU",             "I�",      "I�",
    "IE<4",            "I",       "I",
    "IGL-1",           "IK",      null,
    "IGHT3$",          "EIT",     "EIT",
    "IGNI(EO)-",       "INI",     "INI",
    "IGN(AEOU)-$",     "INI",     "INI",
    "IHER(DGLKRT)--1", "IHE",     null,
    "IHE(IUY)--",      "IH",      null,
    "IH(AIO�U�Y)-",    "IH",      null,
    "IJ(AOU)-",        "I",       "I",
    "IJ$",             "I",       "I",
    "IJ<",             "EI",      "EI",
    "IKOLE$",          "IKOL",    "IKUL",
    "ILLAN(STZ)--4",   "ILIA",    "ILIA",
    "ILLAR(DT)--4",    "ILIA",    "ILIA",
    "IMSTAN----^",     "IM ",     "IN ",
    "INDELERREGE------", "INDL ", "INTL ",
    "INFRAGE-----^$",  "IN ",     "IN ",
    "INTERN(AOU)-^",   "INTAN",   "INTAN",
    "INVER-",          "INWE",    "INFE",
    "ITI(A�IO�U�)-",   "IZI",     "IZI",
    "IUSZ$",           "IUS",     null,
    "IUTZ$",           "IUS",     null,
    "IUZ$",            "IUS",     null,
    "IVER--<",         "IW",      null,
    "IVIER$",          "IWIE",    "IFIE",
    "IV(�O�U�)-",      "IW",      null,
    "IV<3",            "IW",      null,
    "IY2",             "I",       null,
    "I(���)<4",        "I",       "I",
    "JAVIE---<^",      "ZA",      "ZA",
    "JEANS^$",         "JINS",    "INZ",
    "JEAN^$",          "IA",      "IA",
    "JEAN-^",          "IA",      "IA",
    "JER-^",           "IE",      "IE",
    "JE(LMNST)-",      "IE",      "IE",
    "JI^",             "JI",      null,
    "JOR(GK)^$",       "I�RK",    "I�RK",
    "J",               "I",       "I",
    "KC(�EIJ)-",       "X",       "X",
    "KD",              "KT",      null,
    "KE(LMNRST)-3^",   "KE",      "KE",
    "KG(A�EILO�RU�Y)-", "K",      null,
    "KH<^",            "K",       "K",
    "KIC$",            "KIZ",     "KIZ",
    "KLE(LMNRST)-3^",  "KLE",     "KLE",
    "KOTELE-^",        "KOTL",    "KUTL",
    "KREAT-^",         "KREA",    "KREA",
    "KR�S(TZ)--^",     "KRI",     null,
    "KRYS(TZ)--^",     "KRI",     null,
    "KRY9^",           "KR�",     null,
    "KSCH---",         "K",       "K",
    "KSH--",           "K",       "K",
    "K(S�XZ)7",        "X",       "X",    /**** implies "KST" -> "XT" ****/
    "KT'S$",           "X",       "X",
    "KTI(AIOU)-3",     "XI",      "XI",
    "KT(S�XZ)",        "X",       "X",
    "KY9^",            "K�",      null,
    "K'S$",            "X",       "X",
    "K�S$",            "X",       "X",
    "LANGES$",         " LANGES", " LANKEZ",
    "LANGE$",          " LANGE",  " LANKE",
    "LANG$",           " LANK",   " LANK",
    "LARVE-",          "LARF",    "LARF",
    "LD(S�Z)$",        "LS",      "LZ",
    "LD'S$",           "LS",      "LZ",
    "LD�S$",           "LS",      "LZ",
    "LEAND-^",         "LEAN",    "LEAN",
    "LEERSTEHE-----^", "LER ",    "LER ",
    "LEICHBLEIB-----", "LEICH ",  "LEIK ",
    "LEICHLAUTE-----", "LEICH ",  "LEIK ",
    "LEIDERREGE------", "LEIT ",  "LEIT ",
    "LEIDGEPR----^",   "LEIT ",   "LEIT ",
    "LEINSTEHE-----",  "LEIN ",   "LEIN ",
    "LEL-",            "LE",      "LE",
    "LE(MNRST)-3^",    "LE",      "LE",
    "LETTE$",          "LET",     "LET",
    "LFGNAG-",         "LFGAN",   "LFKAN",
    "LICHERWEISE-----", "LICHA ", "LIKA ",
    "LIC$",            "LIZ",     "LIZ",
    "LIVE^$",          "LEIF",    "LEIF",
    "LT(S�Z)$",        "LS",      "LZ",
    "LT'S$",           "LS",      "LZ",
    "LT�S$",           "LS",      "LZ",
    "LUI(GS)--",       "LU",      "LU",
    "LV(AIO)-",        "LW",      null,
    "LY9^",            "L�",      null,
    "LSTS$",           "LS",      "LZ",
    "LZ(BDFGKLMNPQRSTVWX)-", "LS", null,
    "L(S�Z)$",         "LS",      null,
    "MAIR-<",          "MEI",     "NEI",
    "MANAG-",          "MENE",    "NENE",
    "MANUEL",          "MANUEL",  null,
    "MASSEU(RS)-",     "MAS�",    "NAZ�",
    "MATCH",           "MESH",    "NEZ",
    "MAURICE",         "MORIS",   "NURIZ",
    "MBH^$",           "MBH",     "MBH",
    "MB(�Z)$",         "MS",       null,
    "MB(S�TZ)-",       "M",       "N",
    "MC9^",            "MAK",     "NAK",
    "MEMOIR-^",        "MEMOA",   "NENUA",
    "MERHAVEN$",       "MAHAFN",  null,
    "ME(LMNRST)-3^",   "ME",      "NE",
    "MEN(STZ)--3",     "ME",      null,
    "MEN$",            "MEN",     null,
    "MIGUEL-",         "MIGE",    "NIKE",
    "MIKE^$",          "MEIK",    "NEIK",
    "MITHILFE----^$",  "MIT H",   "NIT ",
    "MN$",             "M",       null,
    "MN",              "N",       "N",
    "MPJUTE-",         "MPUT",    "NBUT",
    "MP(�Z)$",         "MS",      null,
    "MP(S�TZ)-",       "M",       "N",
    "MP(BDJLMNPQVW)-", "MB",      "NB",
    "MY9^",            "M�",      null,
    "M(�Z)$",          "MS",      null,
    "M�^",             "MAK",     "NAK",
    "M'^",             "MAK",     "NAK",
    "M",               null,      "N",
    "NACH^^",          "NACH",    "NAK",
    "NADINE",          "NADIN",   "NATIN",
    "NAIV--",          "NA",      "NA",
    "NAISE$",          "NESE",    "NEZE",
    "NAUGENOMM------", "NAU ",    "NAU ",
    "NAUSOGUT$",     "NAUSO GUT", "NAUZU KUT",
    "NCH$",            "NSH",     "NZ",
    "NCOISE$",         "SOA",     "ZUA",
    "NCOIS$",          "SOA",     "ZUA",
    "NDAR$",           "NDA",     "NTA",
    "NDERINGEN------", "NDE ",    "NTE ",
    "NDRO(CDKTZ)-",    "NTRO",    null,
    "ND(BFGJLMNPQVW)-", "NT",     null,
    "ND(S�Z)$",        "NS",      "NZ",
    "ND'S$",           "NS",      "NZ",
    "ND�S$",           "NS",      "NZ",
    "NEBEN^^",         "NEBN",    "NEBN",
    "NENGELERN------", "NEN ",    "NEN ",
    "NENLERN(ET)---",  "NEN LE",  "NEN LE",
    "NENZULERNE---", "NEN ZU LE", "NEN ZU LE",
    "NE(LMNRST)-3^",   "NE",      "NE",
    "NEN-3",           "NE",      "NE",
    "NETTE$",          "NET",     "NET",
    "NG(BDFJLMNPQRTVW)-", "NK",   "NK",
    "NH(AUO)-$",       "NI",      "NI",
    "NICHTSAHNEN-----", "NIX ",   "NIX ",
    "NICHTSSAGE----",  "NIX ",    "NIX ",
    "NICHTS^^",        "NIX",     "NIX",
    "NICHT^^",         "NICHT",   "NIKT",
    "NINE$",           "NIN",     "NIN",
    "NON^^",           "NON",     "NUN",
    "NOTLEIDE-----^",  "NOT ",   "NUT ",
    "NOT^^",           "NOT",     "NUT",
    "NTI(AIOU)-3",     "NZI",     "NZI",
    "NTIEL--3",        "NZI",     "NZI",
    "NT(S�Z)$",        "NS",      "NZ",
    "NT'S$",           "NS",      "NZ",
    "NT�S$",           "NS",      "NZ",
    "NYLON",           "NEILON",  "NEILUN",
    "NY9^",            "N�",      null,
    "NSTZUNEH---",     "NST ZU ", "NZT ZU ",
    "NSZ-",            "NS",      null,
    "NSTS$",           "NS",      "NZ",
    "NZ(BDFGKLMNPQRSTVWX)-", "NS", null,
    "N(S�Z)$",         "NS",      null,
    "OBERE-",          "OBER",    null,
    "OBER^^",          "OBA",     "UBA",
    "OEU2",            "�",       "�",
    "OE<2",            "�",       "�",
    "OGL-",            "OK",      null,
    "OGNIE-",          "ONI",     "UNI",
    "OGN(AEOU)-$",     "ONI",     "UNI",
    "OH(AIO�U�Y)-",    "OH",      null,
    "OIE$",            "�",       "�",
    "OIRE$",           "OAR",     "UAR",
    "OIR$",            "OAR",     "UAR",
    "OIX",             "OA",      "UA",
    "OI<3",            "EU",      "EU",
    "OKAY^$",          "OKE",     "UKE",
    "OLYN$",           "OLIN",    "ULIN",
    "OO(DLMZ)-",       "U",       null,
    "OO$",             "U",       null,
    "OO-",             "",        "",
    "ORGINAL-----",    "ORI",     "URI",
    "OTI(A�O�U�)-",    "OZI",     "UZI",
    "OUI^",            "WI",      "FI",
    "OUILLE$",         "ULIE",    "ULIE",
    "OU(DT)-^",        "AU",      "AU",
    "OUSE$",           "AUS",     "AUZ",
    "OUT-",            "AU",      "AU",
    "OU",              "U",       "U",
    "O(FV)$",          "AU",      "AU",  /****  due to "OW$" -> "AU"  ****/
    "OVER--<",         "OW",      null,
    "OV(AOU)-",        "OW",      null,
    "OW$",             "AU",      "AU",
    "OWS$",            "OS",      "UZ",
    "OJ(A�EIO�U�)--",  "O",       "U",
    "OYER",            "OIA",     null,
    "OY(A�EIO�U�)--",  "O",       "U",
    "O(JY)<",          "EU",      "EU",
    "OZ$",             "OS",      null,
    "O",               null,      "U",
    "PATIEN--^",       "PAZI",    "PAZI",
    "PENSIO-^",        "PANSI",   "PANZI",
    "PE(LMNRST)-3^",   "PE",      "PE",
    "PFER-^",          "FE",      "FE",
    "P(FH)<",          "F",       "F",
    "PIC^$",           "PIK",     "PIK",
    "PIC$",            "PIZ",     "PIZ",
    "PIPELINE",       "PEIBLEIN", "PEIBLEIN",
    "POLYP-",          "POL�",    null,
    "POLY^^",          "POLI",    "PULI",
    "PORTRAIT7",       "PORTRE",  "PURTRE",
    "POWER7",          "PAUA",    "PAUA",
    "PP(FH)--<",       "B",       "B",
    "PP-",             "",        "",
    "PRODUZ-^",        "PRODU",   "BRUTU",
    "PRODUZI--",       " PRODU",  " BRUTU",
    "PRIX^$",          "PRI",     "PRI",
    "PS-^^",           "P",       null,
    "P(S�Z)^",         null,      "Z",
    "P(S�Z)$",         "BS",      null,
    "PTI(A�O�U�)-3",   "BZI",     "BZI",
    "PY9^",            "P�",      null,
    "P(A�EIO�RU�Y)-",  "P",       "P",
    "P(��������������)-", "P",    null,
    "P.^",             null,      "P.",
    "P^",              "P",       null,
    "P",               "B",       "B",
    "QUARANT--",       "KARA",    "KARA",
    "QUE(LMNRST)-3",   "KWE",     "KFE",
    "QUE$",            "K",       "K",
    "QUI(NS)$",        "KI",      "KI",
    "QUIZ7",           "KWIS",    null,
    "Q(UV)7",          "KW",      "KF",
    "Q<",              "K",       "K",
    "RADFAHR----",     "RAT ",    "RAT ",
    "RAEFTEZEHRE-----", "REFTE ", "REFTE ",
    "RCH",             "RCH",     "RK",
    "REA(DU)---3^",    "R",       null,
    "REBSERZEUG------", "REBS ",  "REBZ ",
    "RECHERCH^",       "RESHASH", "REZAZ",
    "RECYCL--",        "RIZEI",  "RIZEI",
    "RE(ALST)-3^",     "RE",      null,
    "REE$",            "RI",      "RI",
    "RER$",            "RA",      "RA",
    "RE(MNR)-4",       "RE",      "RE",
    "RETTE$",          "RET",     "RET",
    "REUZ$",           "REUZ",    null,
    "REW$",            "RU",      "RU",
    "RH<^",            "R",       "R",
    "RJA(MN)--",       "RI",      "RI",
    "ROWD-^",          "RAU",     "RAU",
    "RTEMONNAIE-",     "RTMON",   "RTNUN",
    "RTI(A�O�U�)-3",   "RZI",     "RZI",
    "RTIEL--3",        "RZI",     "RZI",
    "RV(AEOU)-3",      "RW",      null,
    "RY(KN)-$",        "RI",      "RI",
    "RY9^",            "R�",      null,
    "R�FTEZEHRE-----", "REFTE ",  "REFTE ",
    "SAISO-^",         "SES",     "ZEZ",
    "SAFE^$",          "SEIF",    "ZEIF",
    "SAUCE-^",         "SOS",     "ZUZ",
    "SCHLAGGEBEN-----<", "SHLAK ", "ZLAK ",
    "SCHSCH---7",      "",        "",
    "SCHTSCH",         "SH",      "Z",
    "SC(HZ)<",         "SH",      "Z",
    "SC",              "SK",      "ZK",
    "SELBSTST--7^^",   "SELB",    "ZELB",
    "SELBST7^^",       "SELBST",  "ZELBZT",
    "SERVICE7^",       "S�RWIS",  "Z�RFIZ",
    "SERVI-^",         "SERW",    null,
    "SE(LMNRST)-3^",   "SE",      "ZE",
    "SETTE$",          "SET",     "ZET",
    "SHP-^",           "S",       "Z",
    "SHST",            "SHT",     "ZT",
    "SHTSH",           "SH",      "Z",
    "SHT",             "ST",      "Z",
    "SHY9^",           "SH�",     null,
    "SH^^",            "SH",      null,
    "SH3",             "SH",      "Z",
    "SICHERGEGAN-----^", "SICHA ", "ZIKA ",
    "SICHERGEHE----^", "SICHA ",  "ZIKA ",
    "SICHERGESTEL------^", "SICHA ", "ZIKA ",
    "SICHERSTELL-----^", "SICHA ", "ZIKA ",
    "SICHERZU(GS)--^", "SICHA ZU ", "ZIKA ZU ",
    "SIEGLI-^",        "SIKL",    "ZIKL",
    "SIGLI-^",         "SIKL",    "ZIKL",
    "SIGHT",           "SEIT",    "ZEIT",
    "SIGN",            "SEIN",    "ZEIN",
    "SKI(NPZ)-",       "SKI",     "ZKI",
    "SKI<^",           "SHI",     "ZI",
    "SODASS^$",        "SO DAS",  "ZU TAZ",
    "SODA�^$",         "SO DAS",  "ZU TAZ",
    "SOGENAN--^",      "SO GEN",  "ZU KEN",
    "SOUND-",          "SAUN",    "ZAUN",
    "STAATS^^",        "STAZ",    "ZTAZ",
    "STADT^^",         "STAT",    "ZTAT",
    "STANDE$",         " STANDE", " ZTANTE",
    "START^^",         "START",   "ZTART",
    "STAURANT7",       "STORAN",  "ZTURAN",
    "STEAK-",          "STE",     "ZTE",
    "STERN",           "STERN",   null,
    "STRAF^^",         "STRAF",   "ZTRAF",
    "ST'S$",           "Z",       "Z",
    "ST�S$",           "Z",       "Z",
    "STST--",          "",        "",
    "STS(ACE���HI���OU���)--", "ST", "ZT",
    "ST(SZ)",          "Z",       "Z",
    "SPAREN---^",      "SPA",     "ZPA",
    "SPAREND----",     " SPA",    " ZPA",
    "S(PTW)-^^",       "S",       null,
    "SP",              "SP",      null,
    "STYN(AE)-$",      "STIN",    "ZTIN",
    "ST",              "ST",      "ZT",
    "SUITE<",          "SIUT",    "ZIUT",
    "SURF(EI)-",       "S�RF",    "Z�RF",
    "SV(AE���I���OU)-<^", "SW",   null,
    "SYB(IY)--^",      "SIB",     null,
    "SYL(KVW)--^",     "SI",      null,
    "SY9^",            "S�",      null,
    "SZE(NPT)-^",      "ZE",      "ZE",
    "SZI(ELN)-^",      "ZI",      "ZI",
    "SZCZ<",           "SH",      "Z",
    "SZT<",            "ST",      "ZT",
    "SZ<3",            "SH",      "Z",
    "S�L(KVW)--^",     "SI",      null,
    "S",               null,      "Z",
    "TCH",             "SH",      "Z",
    "TD(A�EIO�RU�Y)-", "T",       null,
    "TD(���������������������ݟ)-", "T", null,
    "TEAT-^",          "TEA",     "TEA",
    "TERRAI7^",        "TERA",    "TERA",
    "TE(LMNRST)-3^",   "TE",      "TE",
    "TH<",             "T",       "T",
    "TICHT-",          "TIK",     "TIK",
    "TICH$",           "TIK",     "TIK",
    "TIC$",            "TIZ",     "TIZ",
    "TIGGESTELL-------", "TIK ",  "TIK ",
    "TIGSTELL-----",   "TIK ",    "TIK ",
    "TOAS-^",          "TO",      "TU",
    "TOILET-",         "TOLE",    "TULE",
    "TOIN-",           "TOA",     "TUA",
    "TRAECHTI-^",      "TRECHT",  "TREKT",
    "TRAECHTIG--",     " TRECHT", " TREKT",
    "TRAINI-",         "TREN",    "TREN",
    "TR�CHTI-^",       "TRECHT",  "TREKT",
    "TR�CHTIG--",      " TRECHT", " TREKT",
    "TSCH",            "SH",      "Z",
    "TSH",             "SH",      "Z",
    "TST",             "ZT",      "ZT",
    "T(S�)",           "Z",       "Z",
    "TT(SZ)--<",       "",        "",
    "TT9",             "T",       "T",
    "TV^$",            "TV",      "TV",
    "TX(AEIOU)-3",     "SH",      "Z",
    "TY9^",            "T�",      null,
    "TZ-",             "",        "",
    "T'S3$",           "Z",       "Z",
    "T�S3$",           "Z",       "Z",
    "UEBEL(GNRW)-^^",  "�BL ",    "IBL ",
    "UEBER^^",         "�BA",     "IBA",
    "UE2",             "�",       "I",
    "UGL-",            "UK",      null,
    "UH(AO�U�Y)-",     "UH",      null,
    "UIE$",            "�",       "I",
    "UM^^",            "UM",      "UN",
    "UNTERE--3",       "UNTE",    "UNTE",
    "UNTER^^",         "UNTA",    "UNTA",
    "UNVER^^",         "UNFA",    "UNFA",
    "UN^^",            "UN",      "UN",
    "UTI(A�O�U�)-",    "UZI",     "UZI",
    "UVE-4",           "UW",      null,
    "UY2",             "UI",      null,
    "UZZ",             "AS",      "AZ",
    "VACL-^",          "WAZ",     "FAZ",
    "VAC$",            "WAZ",     "FAZ",
    "VANES-^",         "WANE",    null,
    "VATRO-",          "WATR",    null,
    "VA(DHJNT)--^",    "F",       null,
    "VEDD-^",          "FE",      "FE",
    "VE(BEHIU)--^",    "F",       null,
    "VEL(BDLMNT)-^",   "FEL",     null,
    "VENTZ-^",         "FEN",     null,
    "VEN(NRSZ)-^",     "FEN",     null,
    "VER(AB)-^$",      "WER",     null,
    "VERBAL^$",        "WERBAL",  null,
    "VERBAL(EINS)-^",  "WERBAL",  null,
    "VERTEBR--",       "WERTE",   null,
    "VEREIN-----",     "F",       null,
    "VEREN(AEIOU)-^",  "WEREN",   null,
    "VERIFI",          "WERIFI",  null,
    "VERON(AEIOU)-^",  "WERON",   null,
    "VERSEN^",         "FERSN",   "FAZN",
    "VERSIERT--^",     "WERSI",   null,
    "VERSIO--^",       "WERS",    null,
    "VERSUS",          "WERSUS",  null,
    "VERTI(GK)-",      "WERTI",   null,
    "VER^^",           "FER",     "FA",
    "VERSPRECHE-------", " FER",  " FA",
    "VER$",            "WA",      null,
    "VER",             "FA",      "FA",
    "VET(HT)-^",       "FET",     "FET",
    "VETTE$",          "WET",     "FET",
    "VE^",             "WE",      null,
    "VIC$",            "WIZ",     "FIZ",
    "VIELSAGE----",    "FIL ",    "FIL ",
    "VIEL",            "FIL",     "FIL",
    "VIEW",            "WIU",     "FIU",
    "VILL(AE)-",       "WIL",     null,
    "VIS(ACEIKUVWZ)-<^", "WIS",   null,
    "VI(ELS)--^",      "F",       null,
    "VILLON--",        "WILI",    "FILI",
    "VIZE^^",          "FIZE",    "FIZE",
    "VLIE--^",         "FL",      null,
    "VL(AEIOU)--",     "W",       null,
    "VOKA-^",          "WOK",     null,
    "VOL(ATUVW)--^",   "WO",      null,
    "VOR^^",           "FOR",     "FUR",
    "VR(AEIOU)--",     "W",       null,
    "VV9",             "W",       null,
    "VY9^",            "W�",      "FI",
    "V(�Y)-",          "W",       null,
    "V(��������������)-",  "W",   null,
    "V(AEIJLRU)-<",    "W",       null,
    "V.^",             "V.",      null,
    "V<",              "F",       "F",
    "WEITERENTWI-----^", "WEITA ", "FEITA ",
    "WEITREICH-----^", "WEIT ",   "FEIT ",
    "WEITVER^",       "WEIT FER", "FEIT FA",
    "WE(LMNRST)-3^",   "WE",      "FE",
    "WER(DST)-",       "WER",     null,
    "WIC$",            "WIZ",     "FIZ",
    "WIEDERU--",       "WIDE",    "FITE",
    "WIEDER^$",        "WIDA",    "FITA",
    "WIEDER^^",        "WIDA ",   "FITA ",
    "WIEVIEL",         "WI FIL",  "FI FIL",
    "WISUEL",          "WISUEL",  null,
    "WR-^",            "W",       null,
    "WY9^",            "W�",      "FI",
    "W(BDFGJKLMNPQRSTZ)-", "F",   null,
    "W$",              "F",       null,
    "W",               null,      "F",
    "X<^",             "Z",       "Z",
    "XHAVEN$",         "XAFN",    null,
    "X(CSZ)",          "X",       "X",
    "XTS(CH)--",       "XT",      "XT",
    "XT(SZ)",          "Z",       "Z",
    "YE(LMNRST)-3^",   "IE",      "IE",
    "YE3$",            "I",       "I",
    "YE-3",            "I",       "I",
    "YOR(GK)^$",       "I�RK",    "I�RK",
    "Y(AOU)-<7",       "I",       "I",
    "Y(BKLMNPRSTX)-1", "�",       null,
    "YVES^$",          "IF",      "IF",
    "YVONNE^$",        "IWON",    "IFUN",
    "Y.^",             "Y.",      null,
    "Y",               "I",       "I",
    "ZC(AOU)-",        "SK",      "ZK",
    "ZE(LMNRST)-3^",   "ZE",      "ZE",
    "ZIEJ$",           "ZI",      "ZI",
    "ZIGERJA(HR)-3",   "ZIGA IA", "ZIKA IA",
    "ZL(AEIOU)-",      "SL",      null,
    "ZS(CHT)--",       "",        "",
    "ZS",              "SH",      "Z",
    "ZUERST",          "ZUERST",  "ZUERST",
    "ZUGRUNDE^$",    "ZU GRUNDE", "ZU KRUNTE",
    "ZUGRUNDE",     "ZU GRUNDE ", "ZU KRUNTE ",
    "ZUGUNSTEN",     "ZU GUNSTN", "ZU KUNZTN",
    "ZUHAUSE-",        "ZU HAUS", "ZU AUZ",
    "ZULASTEN^$",     "ZU LASTN", "ZU LAZTN",
    "ZURUECK^^",       "ZUR�K",   "ZURIK",
    "ZURZEIT",        "ZUR ZEIT", "ZUR ZEIT",
    "ZUR�CK^^",        "ZUR�K",   "ZURIK",
    "ZUSTANDE",      "ZU STANDE", "ZU ZTANTE",
    "ZUTAGE",          "ZU TAGE", "ZU TAKE",
    "ZUVER^^",         "ZUFA",    "ZUFA",
    "ZUVIEL",          "ZU FIL",  "ZU FIL",
    "ZUWENIG",        "ZU WENIK", "ZU FENIK",
    "ZY9^",            "Z�",      null,
    "ZYK3$",           "ZIK",     null,
    "Z(VW)7^",         "SW",      null,
    PHONET_END,      PHONET_END,  PHONET_END
  };

#endif    /****  PHONET_GERMAN  ****/



static int set_phonet_language (int rule_set)
/****  result:  0 :  success             ****/
/****          -1 :  language not found  ****/
{
 switch (rule_set)
   {
    #ifdef PHONET_ENGLISH
         case PHONET_ENGLISH :
                   phonet_language = phonet_language_english;
                   phonet_init   = & phonet_init_english;
                   phonet_hash   = phonet_hash_english;
                   phonet_hash_1 = & phonet_hash_english_1;
                   phonet_hash_2 = & phonet_hash_english_2;
                   phonet_rules  = phonet_rules_english;
             return (0);
    #endif

    #ifdef PHONET_GERMAN
         case PHONET_GERMAN  :
                   phonet_language = phonet_language_german;
                   phonet_init   = & phonet_init_german;
                   phonet_hash   = phonet_hash_german;
                   phonet_hash_1 = & phonet_hash_german_1;
                   phonet_hash_2 = & phonet_hash_german_2;
                   phonet_rules  = phonet_rules_german;
             return (0);
    #endif
   }
 return (-1);
}

#endif     /****  _PHONET_H_  ****/
back to top