Changes of com.discord v1181

This commit is contained in:
root 2020-07-08 16:44:49 +00:00
parent f52990c3c2
commit 5a8adcbf82
29917 changed files with 1840412 additions and 1765629 deletions

View file

@ -1,3 +0,0 @@
fabric-identifier=com.crashlytics.sdk.android:answers
fabric-version=1.4.7
fabric-build-type=source

View file

@ -1,3 +0,0 @@
fabric-identifier=com.crashlytics.sdk.android:beta
fabric-version=1.2.10
fabric-build-type=source

View file

@ -1,3 +0,0 @@
fabric-identifier=com.crashlytics.sdk.android.crashlytics-core
fabric-version=2.7.0
fabric-build-type=source

View file

@ -1,3 +0,0 @@
fabric-identifier=com.crashlytics.sdk.android.crashlytics-ndk
fabric-version=2.1.0
fabric-build-type=source

View file

@ -1,3 +0,0 @@
fabric-identifier=com.crashlytics.sdk.android:crashlytics
fabric-version=2.10.0
fabric-build-type=source

View file

@ -1,20 +0,0 @@
#
# Copyright (C) 2015 Twitter, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
fabric-identifier=io.fabric.sdk.android:fabric
fabric-version=1.4.8
fabric-build-type=source

View file

@ -1,3 +1,3 @@
version=17.2.2
version=17.4.2
client=firebase-analytics
firebase-analytics_client=17.2.2
firebase-analytics_client=17.4.2

View file

@ -1,3 +0,0 @@
version=17.2.2
client=firebase-core
firebase-core_client=17.2.2

View file

@ -0,0 +1,3 @@
version=17.0.1
client=firebase-crashlytics-ndk
firebase-crashlytics-ndk_client=17.0.1

View file

@ -0,0 +1,3 @@
version=17.0.1
client=firebase-crashlytics
firebase-crashlytics_client=17.0.1

View file

@ -1,3 +1,3 @@
version=19.0.0
version=19.1.0
client=firebase-dynamic-links
firebase-dynamic-links_client=19.0.0
firebase-dynamic-links_client=19.1.0

View file

@ -1,3 +1,3 @@
version=16.0.0
version=16.1.0
client=firebase-encoders-json
firebase-encoders-json_client=16.0.0
firebase-encoders-json_client=16.1.0

View file

@ -1,3 +1,3 @@
version=20.0.2
version=20.2.0
client=firebase-iid
firebase-iid_client=20.0.2
firebase-iid_client=20.2.0

View file

@ -0,0 +1,3 @@
version=16.0.0
client=firebase-installations-interop
firebase-installations-interop_client=16.0.0

View file

@ -0,0 +1,3 @@
version=16.3.1
client=firebase-installations
firebase-installations_client=16.3.1

View file

@ -1,3 +1,3 @@
version=20.1.0
version=20.2.0
client=firebase-messaging
firebase-messaging_client=20.1.0
firebase-messaging_client=20.2.0

View file

@ -1,3 +1,3 @@
version=19.0.5
version=19.0.7
client=firebase-perf
firebase-perf_client=19.0.5
firebase-perf_client=19.0.7

View file

@ -15,139 +15,141 @@
* limitations under the License.
*/
// CONSTONANTS
"ph" "" "" "f" // foreign
"sh" "" "" "S" // foreign
"kh" "" "" "x" // foreign
// ASHKENAZIC
"gli" "" "" "(gli|l[italian])"
"gni" "" "" "(gni|ni[italian+french])"
"gn" "" "[aeou]" "(n[italian+french]|nj[italian+french]|gn)
"gh" "" "" "g" // It + translit. from Arabic
"dh" "" "" "d" // translit. from Arabic
"bh" "" "" "d" // translit. from Arabic
"th" "" "" "t" // translit. from Arabic
"lh" "" "" "l" // Port
"nh" "" "" "nj" // Port
// A, E, I, O, P, U should create variants, but a, e, i, o, u should not create any new variant
// Q = ü ; Y = ä = ö
// H = initial "H" in German/English
"ig" "[aeiou]" "" "(ig|tS[spanish])"
"ix" "[aeiou]" "" "S" // Sp
"tx" "" "" "tS" // Sp
"tj" "" "$" "tS" // Sp
"tj" "" "" "dZ" // Sp
"tg" "" "" "(tg|dZ[spanish])"
// CONSONANTS
"b" "" "" "(b|v[spanish])"
"J" "" "" "z" // Argentina Spanish: "ll" = /Z/, but approximately /Z/ = /z/
// VOWELS
// "ALL" DIPHTHONGS are interchangeable BETWEEN THEM and with monophthongs of which they are composed ("D" means "diphthong")
// {a,o} are totally interchangeable if non-stressed; in German "a/o" can actually be from "ä/ö" (that are equivalent to "e")
// {i,e} are interchangeable if non-stressed, while in German "u" can actually be from "ü" (that is equivalent to "i")
"aiB" "" "[bp]" "(D|Dm)"
"AiB" "" "[bp]" "(D|Dm)"
"oiB" "" "[bp]" "(D|Dm)"
"OiB" "" "[bp]" "(D|Dm)"
"uiB" "" "[bp]" "(D|Dm)"
"UiB" "" "[bp]" "(D|Dm)"
"eiB" "" "[bp]" "(D|Dm)"
"EiB" "" "[bp]" "(D|Dm)"
"iiB" "" "[bp]" "(D|Dm)"
"IiB" "" "[bp]" "(D|Dm)"
"aiB" "" "[dgkstvz]" "(D|Dn)"
"AiB" "" "[dgkstvz]" "(D|Dn)"
"oiB" "" "[dgkstvz]" "(D|Dn)"
"OiB" "" "[dgkstvz]" "(D|Dn)"
"uiB" "" "[dgkstvz]" "(D|Dn)"
"UiB" "" "[dgkstvz]" "(D|Dn)"
"eiB" "" "[dgkstvz]" "(D|Dn)"
"EiB" "" "[dgkstvz]" "(D|Dn)"
"iiB" "" "[dgkstvz]" "(D|Dn)"
"IiB" "" "[dgkstvz]" "(D|Dn)"
"B" "" "[bp]" "(o|om[polish]|im[polish])"
"B" "" "[dgkstvz]" "(a|o|on[polish]|in[polish])"
"B" "" "" "(a|o)"
"aiF" "" "[bp]" "(D|Dm)"
"AiF" "" "[bp]" "(D|Dm)"
"oiF" "" "[bp]" "(D|Dm)"
"OiF" "" "[bp]" "(D|Dm)"
"uiF" "" "[bp]" "(D|Dm)"
"UiF" "" "[bp]" "(D|Dm)"
"eiF" "" "[bp]" "(D|Dm)"
"EiF" "" "[bp]" "(D|Dm)"
"iiF" "" "[bp]" "(D|Dm)"
"IiF" "" "[bp]" "(D|Dm)"
"aiF" "" "[dgkstvz]" "(D|Dn)"
"AiF" "" "[dgkstvz]" "(D|Dn)"
"oiF" "" "[dgkstvz]" "(D|Dn)"
"OiF" "" "[dgkstvz]" "(D|Dn)"
"uiF" "" "[dgkstvz]" "(D|Dn)"
"UiF" "" "[dgkstvz]" "(D|Dn)"
"eiF" "" "[dgkstvz]" "(D|Dn)"
"EiF" "" "[dgkstvz]" "(D|Dn)"
"iiF" "" "[dgkstvz]" "(D|Dn)"
"IiF" "" "[dgkstvz]" "(D|Dn)"
"F" "" "[bp]" "(i|im[polish]|om[polish])"
"F" "" "[dgkstvz]" "(i|in[polish]|on[polish])"
"F" "" "" "i"
"P" "" "" "(o|u)"
"I" "[aeiouAEIBFOUQY]" "" "i"
"I" "" "[^aeiouAEBFIOU]e" "(Q[german]|i|D[english])" // "line"
"I" "" "$" "i"
"I" "" "[^k]$" "i"
"Ik" "[lr]" "$" "(ik|Qk[german])"
"Ik" "" "$" "ik"
"sIts" "" "$" "(sits|sQts[german])"
"Its" "" "$" "its"
"I" "" "" "(Q[german]|i)"
"lE" "[bdfgkmnprsStvzZ]" "$" "(li|il[english])" // Apple < Appel
"lE" "[bdfgkmnprsStvzZ]" "" "(li|il[english]|lY[german])" // Applebaum < Appelbaum
"au" "" "" "(D|a|u)"
"ou" "" "" "(D|o|u)"
"ai" "" "" "(D|a|i)"
"Ai" "" "" "(D|a|i)"
"oi" "" "" "(D|o|i)"
"Oi" "" "" "(D|o|i)"
"ui" "" "" "(D|u|i)"
"Ui" "" "" "(D|u|i)"
"ei" "" "" "(D|i)"
"Ei" "" "" "(D|i)"
"iA" "" "$" "(ia|io)"
"iA" "" "" "(ia|io|iY[german])"
"A" "" "[^aeiouAEBFIOU]e" "(a|o|Y[german]|D[english])" // "plane"
"E" "i[^aeiouAEIOU]" "" "(i|Y[german]|[english])" // Wineberg (vineberg/vajneberg) --> vajnberg
"E" "a[^aeiouAEIOU]" "" "(i|Y[german]|[english])" // Shaneberg (shaneberg/shejneberg) --> shejnberg
"e" "" "[fklmnprstv]$" "i"
"e" "" "ts$" "i"
"e" "" "$" "i"
"e" "[DaoiuAOIUQY]" "" "i"
"e" "" "[aoAOQY]" "i"
"e" "" "" "(i|Y[german])"
"E" "" "[fklmnprst]$" "i"
"E" "" "ts$" "i"
"E" "" "$" "i"
"E" "[DaoiuAOIUQY]" "" "i"
"E" "" "[aoAOQY]" "i"
"E" "" "" "(i|Y[german])"
"a" "" "" "(a|o)"
"O" "" "[fklmnprstv]$" "o"
"O" "" "ts$" "o"
"O" "" "$" "o"
"O" "[oeiuQY]" "" "o"
"O" "" "" "(o|Y[german])"
"A" "" "[fklmnprst]$" "(a|o)"
"A" "" "ts$" "(a|o)"
"A" "" "$" "(a|o)"
"A" "[oeiuQY]" "" "(a|o)"
"A" "" "" "(a|o|Y[german])"
"gi" "" "[aeou]" "dZ" // Italian
"g" "" "y" "Z" // French
"gg" "" "[ei]" "(gZ[portuguese+french]|dZ[italian+spanish]|x[spanish])"
"g" "" "[ei]" "(Z[portuguese+french]|dZ[italian+spanish]|x[spanish])"
"guy" "" "" "gi"
"gue" "" "$" "(k[french]|ge)"
"gu" "" "[ei]" "(g|gv") // not It
"gu" "" "[ao]" "gv" // not It
"ñ" "" "" "(n|nj)"
"ny" "" "" "nj"
"sc" "" "[ei]" "(s|S[italian])"
"sç" "" "[aeiou]" "s" // not It
"ss" "" "" "s"
"ç" "" "" "s" // not It
"ch" "" "[ei]" "(k[italian]|S[portuguese+french]|tS[spanish]|dZ[spanish])"
"ch" "" "" "(S|tS[spanish]|dZ[spanish])"
"ci" "" "[aeou]" "(tS[italian]|si)"
"cc" "" "[eiyéèê]" "(tS[italian]|ks[portuguese+french+spanish])"
"c" "" "[eiyéèê]" "(tS[italian]|s[portuguese+french+spanish])"
//array("c" "" "[aou]" "(k|C[".($portuguese+$spanish)."])" // "C" means that the actual letter could be "ç" (cedille omitted)
"s" "^" "" "s"
"s" "[aáuiíoóeéêy]" "[aáuiíoóeéêy]" "(s[spanish]|z[portuguese+french+italian])"
"s" "" "[dglmnrv]" "(z|Z[portuguese])"
"z" "" "$" "(s|ts[italian]|S[portuguese])" // ts It, s/S/Z Port, s in Sp, z Fr
"z" "" "[bdgv]" "(z|dz[italian]|Z[portuguese])" // dz It, Z/z Port, z Sp & Fr
"z" "" "[ptckf]" "(s|ts[italian]|S[portuguese])" // ts It, s/S/z Port, z/s Sp
"z" "" "" "(z|dz[italian]|ts[italian]|s[spanish])" // ts/dz It, z Port & Fr, z/s Sp
"que" "" "$" "(k[french]|ke)"
"qu" "" "[eiu]" "k"
"qu" "" "[ao]" "(kv|k)" // k is It
"ex" "" "[aáuiíoóeéêy]" "(ez[portuguese]|eS[portuguese]|eks|egz)"
"ex" "" "[cs]" "(e[portuguese]|ek)"
"m" "" "[cdglnrst]" "(m|n[portuguese])"
"m" "" "[bfpv]" "(m|n[portuguese+spanish])"
"m" "" "$" "(m|n[portuguese])"
"b" "^" "" "(b|V[spanish])"
"v" "^" "" "(v|B[spanish])"
// VOWELS
"eau" "" "" "o" // Fr
"ouh" "" "[aioe]" "(v[french]|uh)"
"uh" "" "[aioe]" "(v|uh)"
"ou" "" "[aioe]" "v" // french
"uo" "" "" "(vo|o)"
"u" "" "[aie]" "v"
"i" "[aáuoóeéê]" "" "j"
"i" "" "[aeou]" "j"
"y" "[aáuiíoóeéê]" "" "j"
"y" "" "[aeiíou]" "j"
"e" "" "$" "(e|E[$french])"
"ão" "" "" "(au|an)" // Port
"ãe" "" "" "(aj|an)" // Port
"ãi" "" "" "(aj|an)" // Port
"õe" "" "" "(oj|on)" // Port
"où" "" "" "u" // Fr
"ou" "" "" "(ou|u[french])"
"â" "" "" "a" // Port & Fr
"à" "" "" "a" // Port
"á" "" "" "a" // Port & Sp
"ã" "" "" "(a|an)" // Port
"é" "" "" "e"
"ê" "" "" "e" // Port & Fr
"è" "" "" "e" // Sp & Fr & It
"í" "" "" "i" // Port & Sp
"î" "" "" "i" // Fr
"ô" "" "" "o" // Port & Fr
"ó" "" "" "o" // Port & Sp & It
"õ" "" "" "(o|on)" // Port
"ò" "" "" "o" // Sp & It
"ú" "" "" "u" // Port & Sp
"ü" "" "" "u" // Port & Sp
// LATIN ALPHABET
"a" "" "" "a"
"b" "" "" "(b|v[spanish])"
"c" "" "" "k"
"d" "" "" "d"
"e" "" "" "e"
"f" "" "" "f"
"g" "" "" "g"
"h" "" "" "h"
"i" "" "" "i"
"j" "" "" "(x[spanish]|Z)" // not It
"k" "" "" "k"
"l" "" "" "l"
"m" "" "" "m"
"n" "" "" "n"
"o" "" "" "o"
"p" "" "" "p"
"q" "" "" "k"
"r" "" "" "r"
"s" "" "" "(s|S[portuguese])"
"t" "" "" "t"
"u" "" "" "u"
"v" "" "" "(v|b[spanish])"
"w" "" "" "v" // foreign
"x" "" "" "(ks|gz|S[portuguese+spanish])" // S/ks Port & Sp, gz Sp, It only ks
"y" "" "" "i"
"z" "" "" "z"
"U" "" "$" "u"
"U" "[DoiuQY]" "" "u"
"U" "" "[^k]$" "u"
"Uk" "[lr]" "$" "(uk|Qk[german])"
"Uk" "" "$" "uk"
"sUts" "" "$" "(suts|sQts[german])"
"Uts" "" "$" "uts"
"U" "" "" "(u|Q[german])"

View file

@ -201,7 +201,13 @@
"lEndEr" "" "$" "lYnder"
"lendEr" "" "$" "lYnder"
"lEnder" "" "$" "lYnder"
// burg = berg
"bUrk" "" "$" "(burk|berk)"
"burk" "" "$" "(burk|berk)"
"bUrg" "" "$" "(burk|berk)"
"burg" "" "$" "(burk|berk)"
// CONSONANTS {z & Z; s & S} are approximately interchangeable
"s" "" "[rmnl]" "z"
"S" "" "[rmnl]" "z"

View file

@ -16,4 +16,4 @@
*/
"E" "" "" "e"
"I "" "" "i"
"I" "" "" "i"

View file

@ -24,6 +24,7 @@
"b" "^" "" "b"
"b" "" "" "(b|v)"
"J" "" "" "l"
"ja" "" "" "i"
"jA" "" "" "i"
"jB" "" "" "i"
@ -75,17 +76,20 @@
"ou" "^" "" "(u|v|1)"
"o" "^" "" "(u|v|1)"
"O" "^" "" "(u|v|1)"
"P" "^" "" "(u|v|1)"
"U" "^" "" "(u|v|1)"
"u" "^" "" "(u|v|1)"
"o" "" "$" "(u|1)"
"O" "" "$" "(u|1)"
"P" "" "$" "(u|1)"
"u" "" "$" "(u|1)"
"U" "" "$" "(u|1)"
"ou" "" "" "u"
"o" "" "" "u"
"O" "" "" "u"
"P" "" "" "u"
"U" "" "" "u"
"VV" "" "" "u" // alef/ayin + vov from ruleshebrew
@ -102,8 +106,9 @@
//"z" "" "" "(z|Z)"
//"d" "" "" "(d|dZ)"
"TB" "" "$" "(t|s)" // tav from ruleshebrew; only Ashkenazic
"TB" "" "" "t" // tav from ruleshebrew; only Ashkenazic
"TB" "^" "" "t" // tav from ruleshebrew; only Ashkenazic
"TB" "" "$" "s" // tav from ruleshebrew; only Ashkenazic
"TB" "" "" "(t|s)" // tav from ruleshebrew; only Ashkenazic
"T" "" "" "t" // tet from ruleshebrew
//"k" "" "" "(k|x)"

View file

@ -0,0 +1,206 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// ASHKENAZIC
// 1. following are rules to accept the language
// 1.1 Special letter combinations
zh polish+russian+german+english true
eau french true
[aoeiuäöü]h german true
^vogel german, true
vogel$ german true
witz german true
tz$ german+russian+english true
^tz russian+english true
güe spanish true
güi spanish true
ghe romanian true
ghi romanian true
vici$ romanian true
schi$ romanian true
chsch german true
tsch german true
ssch german true
sch$ german+russian true
^sch german+russian true
^rz polish true
rz$ polish+german true
[^aoeiuäöü]rz polish true
rz[^aoeiuäöü] polish true
cki$ polish true
ska$ polish true
cka$ polish true
ue german+russian true
ae german+russian+english true
oe german+french+russian+english true
th$ german true
^th german true
th[^aoeiu] german true
mann german true
cz polish true
cy polish true
niew polish true
stein german true
heim$ german true
heimer$ german true
ii$ russian true
iy$ russian true
yy$ russian true
yi$ russian true
yj$ russian true
ij$ russian true
gaus$ russian true
gauz$ russian true
gauz$ russian true
goltz$ russian true
gol'tz$ russian true
golts$ russian true
gol'ts$ russian true
^goltz russian true
^gol'tz russian true
^golts russian true
^gol'ts russian true
gendler$ russian true
gejmer$ russian true
gejm$ russian true
geimer$ russian true
geim$ russian true
geymer russian true
geym$ russian true
gof$ russian true
thal german true
zweig german true
ck$ german+english true
c$ polish+romanian+hungarian true
sz polish+hungarian true
gue spanish+french true
gui spanish+french true
guy french true
cs$ hungarian true
^cs hungarian true
dzs hungarian true
zs$ hungarian true
^zs hungarian true
^wl polish true
^wr polish+english+german true
gy$ hungarian true
gy[aeou] hungarian true
gy hungarian+russian true
ly hungarian+russian+polish true
ny hungarian+russian+polish true
ty hungarian+russian+polish true
// 1.2 special characters
â romanian+french true
ă romanian true
à french true
ä german true
á hungarian+spanish true
ą polish true
ć polish true
ç french true
ę polish true
é french+hungarian+spanish true
è french true
ê french true
í hungarian+spanish true
î romanian+french true
ł polish true
ń polish true
ñ spanish true
ó polish+hungarian+spanish true
ö german+hungarian true
õ hungarian true
ş romanian true
ś polish true
ţ romanian true
ü german+hungarian true
ù french true
ű hungarian true
ú hungarian+spanish true
ź polish true
ż polish true
ß german true
// Every Cyrillic word has at least one Cyrillic vowel (аёеоиуыэюя)
а cyrillic true
ё cyrillic true
о cyrillic true
е cyrillic true
и cyrillic true
у cyrillic true
ы cyrillic true
э cyrillic true
ю cyrillic true
я cyrillic true
// Hebrew
א hebrew true
ב hebrew true
ג ebrew true
ד hebrew true
ה hebrew true
ו hebrew true
ז hebrew true
ח hebrew true
ט hebrew true
י hebrew true
כ hebrew true
ל hebrew true
מ hebrew true
נ hebrew true
ס hebrew true
ע hebrew true
פ hebrew true
צ hebrew true
ק hebrew true
ר hebrew true
ש hebrew true
ת hebrew true
// 2. following are rules to reject the language
// Every Latin character word has at least one Latin vowel
a cyrillic+hebrew false
o cyrillic+hebrew false
e cyrillic+hebrew false
i cyrillic+hebrew false
y cyrillic+hebrew+romanian false
u cyrillic+hebrew false
v[^aoeiuäüö] german false // in german "v" can be found before a vowel only
y[^aoeiu] german false // in german "y" usually appears only in the last position; sometimes before a vowel
c[^aohk] german false
dzi german+english+french false
ou german false
aj german+english+french false
ej german+english+french false
oj german+english+french false
uj german+english+french false
k romanian false
v polish false
ky polish false
eu russian+polish false
w french+romanian+spanish+hungarian+russian false
kie french+spanish false
gie french+romanian+spanish false
q hungarian+polish+russian+romanian false
sch hungarian+polish+french+spanish false
^h russian false

View file

@ -55,11 +55,11 @@
"sh" "" "[äöü]" "sh" // german
"sh" "" "[aeiou]" "(S[russian+english]|sh)"
"sh" "" "" "S" // russian+english
"kh" "" "" "(x[russian+english]|kh)"
"chs" "" "" "(ks[german]|xs|tSs[russian+english])"
// French "ch" is currently disabled
//array("ch" "" "[ei]" "(x|tS|k[romanian]|S[french])"
//array("ch" "" "" "(x|tS[russian+english]|S[french])"
@ -84,7 +84,7 @@
"cz" "" "" "tS" // Polish
"cia" "" "[bcdgkpstwzż]" "(tSB[polish]|tsB)"
"cia" "" "" "(tSa[$polish]|tsa)"
"cia" "" "" "(tSa[polish]|tsa)"
"cią" "" "[bp]" "(tSom[polish]|tsom)"
"cią" "" "" "(tSon[polish]|tson)"
"cię" "" "[bp]" "(tSem[polish]|tsem)"
@ -212,8 +212,8 @@
"v" "^" "" "(v|f[german])"
"h" "[aeiouyäöü]" "" "" //german
"h" "" "" "(h|x[".(romanian+polish)."])"
"h" "^" "" "(h|H[".(english+german)."])" // H can be exact "h" or approximate "kh"
"h" "" "" "(h|x[romanian+polish])"
"h" "^" "" "(h|H[english+german])" // H can be exact "h" or approximate "kh"
// VOWELS
"yi" "^" "" "i"
@ -275,7 +275,7 @@
"ą" "" "[bp]" "om" // polish
"ą" "" "" "on" // polish
"ä" "" "" "Y" // german
"ä" "" "" "(Y|e)" // german
"á" "" "" "a" // hungarian
"ă" "" "" "(e[romanian]|a)" //romanian
"à" "" "" "a" // french

View file

@ -81,7 +81,7 @@
"ae" "" "" "Y"
"oe" "" "" "Y"
"ü" "" "" "Q"
"ä" "" "" "Y"
"ä" "" "" "(Y|e)"
"ö" "" "" "Y"
"ei" "" "" "aj"
"ey" "" "" "aj"

View file

@ -29,6 +29,12 @@
"mp" "" "" "(mp|b[greeklatin])"
"ng" "" "" "(ng|g[greeklatin])"
"B" "" "[fktSs]" "(p|f[spanish])"
"B" "" "p" ""
"B" "" "$" "(p|f[spanish])"
"V" "" "[pktSs]" "(f|p[spanish])"
"V" "" "f" ""
"V" "" "$" "(f|p[spanish])"
"B" "" "" "(b|v[spanish])"
"V" "" "" "(v|b[spanish])"
@ -41,7 +47,7 @@
"s" "" "$" "(s|[french])"
"t" "[aeiouAEIOU]" "[^aeiouAEIOU]" "(t|[french])" // Petitjean
"s" "[aeiouAEIOU]" "[^aeiouAEIOU]" "(s|[french])" // Groslot, Grosleau
//array("p" "[aeiouAEIOU]" "[^aeiouAEIOU]" "(p|[$french])"
//array("p" "[aeiouAEIOU]" "[^aeiouAEIOU]" "(p|[french])"
"I" "[aeiouAEIBFOUQY]" "" "i"
"I" "" "[^aeiouAEBFIOU]e" "(Q[german]|i|D[english])" // "line"
@ -58,6 +64,7 @@
"lE" "[bdfgkmnprsStvzZ]" "" "(li|il[english]|lY[german])" // Applebaum < Appelbaum
"rE" "[bdfgkmnprsStvzZ]" "" "(ri|ir[english]|rY[german])"
"EE" "" "" "(i|)"
"ea" "" "" "(D|a|i)"
"au" "" "" "(D|a|u)"
@ -86,7 +93,7 @@
"E" "" "$" "i"
"E" "[DaoiuAOIUQY]" "" "i"
"E" "" "[aoAOQY]" "i"
"E" "" "" "(i|Y[$german])"
"E" "" "" "(i|Y[german])"
"P" "" "" "(o|u)"
@ -94,14 +101,14 @@
"O" "" "ts$" "o"
"O" "" "$" "o"
"O" "[oeiuQY]" "" "o"
"O" "" "" "(o|Y[$german])"
"O" "" "" "(o|Y[german])"
"O" "" "" "o"
"A" "" "[fklmnprst]$" "(a|o)"
"A" "" "ts$" "(a|o)"
"A" "" "$" "(a|o)"
"A" "[oeiuQY]" "" "(a|o)"
"A" "" "" "(a|o|Y[$german])"
"A" "" "" "(a|o|Y[german])"
"A" "" "" "(a|o)"
"U" "" "$" "u"

View file

@ -15,6 +15,9 @@
* limitations under the License.
*/
"1a" "" "" "(D|a)"
"1i" "" "" "(D|i|e)"
"1u" "" "" "(D|u|o)"
"j1" "" "" "(ja|je|jo|ju|j)"
"1" "" "" "(a|e|i|o|u|)"
"u" "" "" "(o|u)"

View file

@ -37,19 +37,19 @@
"sEn" "[rmnl]" "$" "(zn|zon)"
"sEn" "" "$" "(sn|son)"
"e" "[bdfgklmnprsStvzZ]" "[ln]$" ""
"i" "[bdfgklmnprsStvzZ]" "[ln]$" ""
"E" "[bdfgklmnprsStvzZ]" "[ln]$" ""
"I" "[bdfgklmnprsStvzZ]" "[ln]$" ""
"Q" "[bdfgklmnprsStvzZ]" "[ln]$" ""
"Y" "[bdfgklmnprsStvzZ]" "[ln]$" ""
"e" "[BbdfgklmnprsStvzZ]" "[ln]$" ""
"i" "[BbdfgklmnprsStvzZ]" "[ln]$" ""
"E" "[BbdfgklmnprsStvzZ]" "[ln]$" ""
"I" "[BbdfgklmnprsStvzZ]" "[ln]$" ""
"Q" "[BbdfgklmnprsStvzZ]" "[ln]$" ""
"Y" "[BbdfgklmnprsStvzZ]" "[ln]$" ""
"e" "[bdfgklmnprsStvzZ]" "[ln][bdfgklmnprsStvzZ]" ""
"i" "[bdfgklmnprsStvzZ]" "[ln][bdfgklmnprsStvzZ]" ""
"E" "[bdfgklmnprsStvzZ]" "[ln][bdfgklmnprsStvzZ]" ""
"I" "[bdfgklmnprsStvzZ]" "[ln][bdfgklmnprsStvzZ]" ""
"Q" "[bdfgklmnprsStvzZ]" "[ln][bdfgklmnprsStvzZ]" ""
"Y" "[bdfgklmnprsStvzZ]" "[ln][bdfgklmnprsStvzZ]" ""
"e" "[BbdfgklmnprsStvzZ]" "[ln][BbdfgklmnprsStvzZ]" ""
"i" "[BbdfgklmnprsStvzZ]" "[ln][BbdfgklmnprsStvzZ]" ""
"E" "[BbdfgklmnprsStvzZ]" "[ln][BbdfgklmnprsStvzZ]" ""
"I" "[BbdfgklmnprsStvzZ]" "[ln][BbdfgklmnprsStvzZ]" ""
"Q" "[BbdfgklmnprsStvzZ]" "[ln][BbdfgklmnprsStvzZ]" ""
"Y" "[BbdfgklmnprsStvzZ]" "[ln][BbdfgklmnprsStvzZ]" ""
"lEs" "" "" "(lEs|lz)" // Applebaum < Appelbaum (English + blend English-something forms as Finklestein)
"lE" "[bdfgkmnprStvzZ]" "" "(lE|l)" // Applebaum < Appelbaum (English + blend English-something forms as Finklestein)
@ -205,7 +205,17 @@
"lEndEr" "" "$" "lYnder"
"lendEr" "" "$" "lYnder"
"lEnder" "" "$" "lYnder"
// burg = berg
"burk" "" "$" "(burk|berk)"
"bUrk" "" "$" "(burk|berk)"
"burg" "" "$" "(burk|berk)"
"bUrg" "" "$" "(burk|berk)"
"Burk" "" "$" "(burk|berk)"
"BUrk" "" "$" "(burk|berk)"
"Burg" "" "$" "(burk|berk)"
"BUrg" "" "$" "(burk|berk)"
// CONSONANTS {z & Z; s & S} are approximately interchangeable
"s" "" "[rmnl]" "z"
"S" "" "[rmnl]" "z"

View file

@ -28,6 +28,13 @@
"O" "" "" "o"
"P" "" "" "o"
"U" "" "" "u"
"B" "" "[fktSs]" "p"
"B" "" "p" ""
"B" "" "$" "p"
"V" "" "[pktSs]" "f"
"V" "" "f" ""
"V" "" "$" "f"
"B" "" "" "b"
"V" "" "" "v"

View file

@ -15,4 +15,4 @@
* limitations under the License.
*/
"l" "" "" ""
"1" "" "" ""

View file

@ -23,7 +23,10 @@
"p" "" "" "f"
"b" "^" "" "b"
"b" "" "" "(b|v)"
"B" "" "" "(b|v)" // Spanish "b"
"V" "" "" "v" // Spanish "v"
"EE" "" "" "(1|)" // final "e" (english & french)
"ja" "" "" "i"
"jA" "" "" "i"
"je" "" "" "i"
@ -64,17 +67,20 @@
"ou" "^" "" "(u|v|1)"
"o" "^" "" "(u|v|1)"
"O" "^" "" "(u|v|1)"
"P" "^" "" "(u|v|1)"
"U" "^" "" "(u|v|1)"
"u" "^" "" "(u|v|1)"
"o" "" "$" "(u|1)"
"O" "" "$" "(u|1)"
"P" "" "$" "(u|1)"
"u" "" "$" "(u|1)"
"U" "" "$" "(u|1)"
"ou" "" "" "u"
"o" "" "" "u"
"O" "" "" "u"
"P" "" "" "u"
"U" "" "" "u"
"VV" "" "" "u" // alef/ayin + vov from ruleshebrew
@ -91,8 +97,8 @@
//"z" "" "" "(z|Z)"
//"d" "" "" "(d|dZ)"
"TB" "" "$" "(t|s)" // tav from ruleshebrew; only Ashkenazic
"TB" "" "" "t" // tav from ruleshebrew; only Ashkenazic
"TB" "^" "" "t" // tav from ruleshebrew
"TB" "" "" "(t|s)" // tav from ruleshebrew; s is only Ashkenazic
"T" "" "" "t" // tet from ruleshebrew
//"k" "" "" "(k|x)"

View file

@ -0,0 +1,295 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// GENERIC
// 1. following are rules to accept the language
// 1.1 Special letter combinations
^o english true
^o' english true
^mc english true
^fitz english true
ceau french+romanian true
eau romanian true
eau$ french true // mp: I've added this
eaux$ french true // mp: I've added this
ault$ french true
oult$ french true
eux$ french true
eix$ french true
glou$ greeklatin true
uu dutch true
tx spanish true
witz german true
tz$ german+russian+english true
^tz russian+english true
poulos$ greeklatin true
pulos$ greeklatin true
iou greeklatin true
sj$ dutch true
^sj dutch true
güe spanish true
güi spanish true
ghe romanian+greeklatin true
ghi romanian+greeklatin true
escu$ romanian true
esco$ romanian true
vici$ romanian true
schi$ romanian true
ii$ russian true
iy$ russian true
yy$ russian true
yi$ russian true
^rz polish true
rz$ polish+german true
[bcdfgklmnpstwz]rz polish true
rz[bcdfghklmnpstw] polish true
cki$ polish true
ska$ polish true
cka$ polish true
ae german+russian+english true
oe german+french+russian+english+dutch true
th$ german+english true
^th german+english+greeklatin true
mann german true
cz polish true
cy polish+greeklatin true
niew polish true
etti$ italian true
eti$ italian true
ati$ italian true
ato$ italian true
[aoei]no$ italian true
[aoei]ni$ italian true
esi$ italian true
oli$ italian true
field$ english true
stein german true
heim$ german true
heimer$ german true
thal german true
zweig german true
[aeou]h german true
äh german true
öh german true
üh german true
[ln]h[ao]$ portuguese true
[ln]h[aou] portuguese+french+german+dutch+czech+spanish+turkish true
chsch german true
tsch german true
sch$ german+russian true
^sch german+russian true
ck$ german+english true
c$ polish+romanian+hungarian+czech+turkish true
sz polish+hungarian true
cs$ hungarian true
^cs hungarian true
dzs hungarian true
zs$ hungarian true
^zs hungarian true
^wl polish true
^wr polish+english+german+dutch true
gy$ hungarian true
gy[aeou] hungarian true
gy hungarian+russian+french+greeklatin true
guy french true
gu[ei] spanish+french+portuguese true
gu[ao] spanish+portuguese true
gi[aou] italian+greeklatin true
ly hungarian+russian+polish+greeklatin true
ny hungarian+russian+polish+spanish+greeklatin true
ty hungarian+russian+polish+greeklatin true
// 1.2 special characters
ć polish true
ç french+spanish+portuguese+turkish true
č czech true
ď czech true
ğ turkish true
ł polish true
ń polish true
ñ spanish true
ň czech true
ř czech true
ś polish true
ş romanian+turkish true
š czech true
ţ romanian true
ť czech true
ź polish true
ż polish true
ß german true
ä german true
á hungarian+spanish+portuguese+czech+greeklatin true
â romanian+french+portuguese true
ă romanian true
ą polish true
à portuguese true
ã portuguese true
ę polish true
é french+hungarian+czech+greeklatin true
è french+spanish+italian true
ê french true
ě czech true
ê french+portuguese true
í hungarian+spanish+portuguese+czech+greeklatin true
î romanian+french true
ı turkish true
ó polish+hungarian+spanish+italian+portuguese+czech+greeklatin true
ö german+hungarian+turkish true
ô french+portuguese true
õ portuguese+hungarian true
ò italian+spanish true
ű hungarian true
ú hungarian+spanish+portuguese+czech+greeklatin true
ü german+hungarian+spanish+portuguese+turkish true
ù french true
ů czech true
ý czech+greeklatin true
// Every Cyrillic word has at least one Cyrillic vowel (аёеоиуыэюя)
а cyrillic true
ё cyrillic true
о cyrillic true
е cyrillic true
и cyrillic true
у cyrillic true
ы cyrillic true
э cyrillic true
ю cyrillic true
я cyrillic true
// Every Greek word has at least one Greek vowel
α greek true
ε greek true
η greek true
ι greek true
ο greek true
υ greek true
ω greek true
// Arabic (only initial)
ا arabic true // alif (isol + init)
ب arabic true // ba'
ت arabic true // ta'
ث arabic true // tha'
ج arabic true // jim
ح arabic true // h.a'
خ' arabic true // kha'
د arabic true // dal (isol + init)
ذ arabic true // dhal (isol + init)
ر arabic true // ra' (isol + init)
ز arabic true // za' (isol + init)
س arabic true // sin
ش arabic true // shin
ص arabic true // s.ad
ض arabic true // d.ad
ط arabic true // t.a'
ظ arabic true // z.a'
ع arabic true // 'ayn
غ arabic true // ghayn
ف arabic true // fa'
ق arabic true // qaf
ك arabic true // kaf
ل arabic true // lam
م arabic true // mim
ن arabic true // nun
ه arabic true // ha'
و arabic true // waw (isol + init)
ي arabic true // ya'
آ arabic true // alif madda
إ arabic true // alif + diacritic
أ arabic true // alif + hamza
ؤ arabic true // waw + hamza
ئ arabic true // ya' + hamza
لا arabic true // ligature l+a
// Hebrew
א hebrew true
ב hebrew true
ג hebrew true
ד hebrew true
ה hebrew true
ו hebrew true
ז hebrew true
ח hebrew true
ט hebrew true
י hebrew true
כ hebrew true
ל hebrew true
מ hebrew true
נ hebrew true
ס hebrew true
ע hebrew true
פ hebrew true
צ hebrew true
ק hebrew true
ר hebrew true
ש hebrew true
ת hebrew true
// 2. following are rules to reject the language
// Every Latin character word has at least one Latin vowel
a cyrillic+hebrew+greek+arabic false
o cyrillic+hebrew+greek+arabic false
e cyrillic+hebrew+greek+arabic false
i cyrillic+hebrew+greek+arabic false
y cyrillic+hebrew+greek+arabic+romanian+dutch false
u cyrillic+hebrew+greek+arabic false
j italian false
j[^aoeiuy] french+spanish+portuguese+greeklatin false
g czech false
k romanian+spanish+portuguese+french+italian false
q hungarian+polish+russian+romanian+czech+dutch+turkish+greeklatin false
v polish false
w french+romanian+spanish+hungarian+russian+czech+turkish+greeklatin false
x czech+hungarian+dutch+turkish false // polish excluded from the list
dj spanish+turkish false
v[^aoeiu] german false // in german, "v" can be found before a vowel only
y[^aoeiu] german false // in german, "y" usually appears only in the last position; sometimes before a vowel
c[^aohk] german false
dzi german+english+french+turkish false
ou german false
a[eiou] turkish false // no diphthongs in Turkish
ö[eaiou] turkish false
ü[eaiou] turkish false
e[aiou] turkish false
i[aeou] turkish false
o[aieu] turkish false
u[aieo] turkish false
aj german+english+french+dutch false
ej german+english+french+dutch false
oj german+english+french+dutch false
uj german+english+french+dutch false
eu russian+polish false
ky polish false
kie french+spanish+greeklatin false
gie portuguese+romanian+spanish+greeklatin false
ch[aou] italian false
ch turkish false
son$ german false
sc[ei] french false
sch hungarian+polish+french+spanish false
^h russian false

View file

@ -81,7 +81,7 @@
"ck" "" "" "(k|tsk[polish+czech])"
"cz" "" "" "(tS|tsz[czech])" // Polish
//Proceccing of "h" in various combinations
//Processing of "h" in various combinations
"rh" "^" "" "r"
"dh" "^" "" "d"
"bh" "^" "" "b"
@ -124,7 +124,7 @@
"ouh" "" "[aioe]" "(v[french]|uh)"
"uh" "" "[aioe]" "(v|uh)"
"h" "." "$" "" // match h at the end of words, but not as a single letter
"h" "." "$" "" // match h at the end of words, but not as a single letter: difference to the original version
"h" "[aeiouyäöü]" "" "" // german
"h" "^" "" "(h|x[romanian+greeklatin]|H[english+romanian+polish+french+portuguese+italian+spanish])"
@ -288,7 +288,7 @@
// LANGUAGE SPECIFIC CHARACTERS
"ą" "" "[bp]" "om" // polish
"ą" "" "" "on" // polish
"ä" "" "" "Y"
"ä" "" "" "(Y|e)"
"á" "" "" "a" // Port & Sp
"à" "" "" "a"
"â" "" "" "a"

View file

@ -15,60 +15,62 @@
* limitations under the License.
*/
"ا" "" "" "a" // alif isol & init
// General
"ا" "" "" "a" // alif isol & init
"ب" "" "$" "b"
"ب" "" "" "b1" // ba' isol
"ت" "" "$" "t"
"ت" "" "" "t1" // ta' isol
"ث" "" "$" "t"
"ث" "" "" "t1" // tha' isol
"ج" "" "$" "(dZ|Z)"
"ج" "" "" "(dZ1|Z1)" // jim isol
"ح" "^" "" "1"
"ح" "" "$" "1"
"ح" "" "" "(h1|1)" // h.a' isol
"خ" "" "$" "x"
"خ" "" "" "x1" // kha' isol
"د" "" "$" "d"
"د" "" "" "d1" // dal isol & init
"ذ" "" "$" "d"
"ذ" "" "" "d1" // dhal isol & init
"ر" "" "" "r1" // dhal isol & init
"ر" "" "$" "r"
"ر" "" "" "r1" // ra' isol & init
"ز" "" "$" "z"
"ز" "" "" "z1" // za' isol & init
"س" "" "$" "s"
"س" "" "" "s1" // sin isol
"ش" "" "$" "S"
"ش" "" "" "S1" // shin isol
"ص" "" "$" "s"
"ص" "" "" "s1" // s.ad isol
"ض" "" "$" "d"
"ض" "" "" "d1" // d.ad isol
"ط" "" "$" "t"
"ط" "" "" "t1" // t.a' isol
"ظ" "" "$" "z"
"ظ" "" "" "z1" // z.a' isol
"ع" "" "" "(h1|1)" // ayin isol
"ع" "^" "" "1"
"ع" "" "$" "1"
"ع" "" "" "(h1|1)" // ayin isol
"غ" "" "$" "g"
"غ" "" "" "g1" // ghayin isol
"ف" "" "$" "f"
"ف" "" "" "f1" // fa' isol
"ق" "" "$" "k"
"ق" "" "" "k1" // qaf isol
"ك" "" "$" "k"
"ك" "" "" "k1" // kaf isol
"ل" "" "$" "l"
"ل" "" "" "l1" // lam isol
"م" "" "$" "m"
"م" "" "" "m1" // mim isol
"ن" "" "$" "n"
"ن" "" "" "n1" // nun isol
"ه" "^" "" "1"
"ه" "" "$" "1"
"ه" "" "" "(h1|1)" // h isol
"و" "" "$" "(u|v)"
"و" "" "" "(u|v1)" // waw, isol + init
"ي‎" "" "$" "(i|j)"
"ي‎" "" "" "(i|j1)" // ya' isol

View file

@ -82,7 +82,7 @@
"ae" "" "" "Y"
"oe" "" "" "Y"
"ü" "" "" "Q"
"ä" "" "" "Y"
"ä" "" "" "(Y|e)"
"ö" "" "" "Y"
"ei" "" "" "(aj|ej)"
"ey" "" "" "(aj|ej)"

View file

@ -51,8 +51,8 @@
"y" "[aáuiíoóeéê]" "" "j"
"y" "" "[aeiíou]" "j"
"m" "" "[bcdfglnprstv]" "(m|n)" // maybe to add a rule for m/n before a consonant that disappears [preceeding vowel becomes nasalized]
"m" "" "$" "(m|n)" // maybe to add a rule for final m/n that disappears [preceeding vowel becomes nasalized]
"m" "" "[bcdfglnprstv]" "(m|n)" // maybe to add a rule for m/n before a consonant that disappears [preceding vowel becomes nasalized]
"m" "" "$" "(m|n)" // maybe to add a rule for final m/n that disappears [preceding vowel becomes nasalized]
"ão" "" "" "(au|an|on)"
"ãe" "" "" "(aj|an)"

View file

@ -1,293 +1,16 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// 1. following are rules to accept the language
// 1.1 Special letter combinations
^o english true
^o' english true
^mc english true
^fitz english true
ceau french+romanian true
eau$ french true // mp: I've added this
eaux$ french true // mp: I've added this
ault$ french true
oult$ french true
eux$ french true
eix$ french true
glou$ greeklatin true
uu dutch true
tx spanish true
witz german true
tz$ german+russian+english true
^tz russian+english true
poulos$ greeklatin true
pulos$ greeklatin true
iou greeklatin true
sj$ dutch true
^sj dutch true
güe spanish true
güi spanish true
ghe romanian+greeklatin true
ghi romanian+greeklatin true
escu$ romanian true
esco$ romanian true
vici$ romanian true
schi$ romanian true
ii$ russian true
iy$ russian true
yy$ russian true
yi$ russian true
^rz polish true
rz$ polish+german true
[bcdfgklmnpstwz]rz polish true
rz[bcdfghklmnpstw] polish true
etti$ italian true
eti$ italian true
ati$ italian true
ato$ italian true
[aoei]no$ italian true
[aoei]ni$ italian true
esi$ italian true
oli$ italian true
field$ english true
cki$ polish true
ska$ polish true
cka$ polish true
ae german+russian+english true
oe german+french+russian+english+dutch true
th$ german+english true
^th german+english+greeklatin true
mann german true
cz polish true
cy polish+greeklatin true
niew polish true
stein german true
heim$ german true
heimer$ german true
thal german true
zweig german true
[aeou]h german true
äh german true
öh german true
üh german true
[ln]h[ao]$ portuguese true
[ln]h[aou] portuguese+french+german+dutch+czech+spanish+turkish true
chsch german true
tsch german true
sch$ german+russian true
^sch german+russian true
ck$ german+english true
c$ polish+romanian+hungarian+czech+turkish true
sz polish+hungarian true
cs$ hungarian true
^cs hungarian true
dzs hungarian true
zs$ hungarian true
^zs hungarian true
^wl polish true
^wr polish+english+german+dutch true
gy$ hungarian true
gy[aeou] hungarian true
gy hungarian+russian+french+greeklatin true
guy french true
gu[ei] spanish+french+portuguese true
gu[ao] spanish+portuguese true
gi[aou] italian+greeklatin true
ly hungarian+russian+polish+greeklatin true
ny hungarian+russian+polish+spanish+greeklatin true
ty hungarian+russian+polish+greeklatin true
// 1.2 special characters
ć polish true
ç french+spanish+portuguese+turkish true
č czech true
ď czech true
ğ turkish true
ł polish true
ń polish true
ñ spanish true
ň czech true
ř czech true
ś polish true
ş romanian+turkish true
š czech true
ţ romanian true
ť czech true
ź polish true
ż polish true
ß german true
ä german true
á hungarian+spanish+portuguese+czech+greeklatin true
â romanian+french+portuguese true
ă romanian true
ą polish true
à portuguese true
ã portuguese true
ę polish true
é french+hungarian+czech+greeklatin true
è french+spanish+italian true
ê french true
ě czech true
ê french+portuguese true
í hungarian+spanish+portuguese+czech+greeklatin true
î romanian+french true
ı turkish true
ó polish+hungarian+spanish+italian+portuguese+czech+greeklatin true
ö german+hungarian+turkish true
ô french+portuguese true
õ portuguese+hungarian true
ò italian+spanish true
ű hungarian true
ú hungarian+spanish+portuguese+czech+greeklatin true
ü german+hungarian+spanish+portuguese+turkish true
ù french true
ů czech true
ý czech+greeklatin true
// Every Cyrillic word has at least one Cyrillic vowel (аёеоиуыэюя)
а cyrillic true
ё cyrillic true
о cyrillic true
е cyrillic true
и cyrillic true
у cyrillic true
ы cyrillic true
э cyrillic true
ю cyrillic true
я cyrillic true
// Every Greek word has at least one Greek vowel
α greek true
ε greek true
η greek true
ι greek true
ο greek true
υ greek true
ω greek true
// Arabic (only initial)
ا arabic true // alif (isol + init)
ب arabic true // ba'
ت arabic true // ta'
ث arabic true // tha'
ج arabic true // jim
ح arabic true // h.a'
خ' arabic true // kha'
د arabic true // dal (isol + init)
ذ arabic true // dhal (isol + init)
ر arabic true // ra' (isol + init)
ز arabic true // za' (isol + init)
س arabic true // sin
ش arabic true // shin
ص arabic true // s.ad
ض arabic true // d.ad
ط arabic true // t.a'
ظ arabic true // z.a'
ع arabic true // 'ayn
غ arabic true // ghayn
ف arabic true // fa'
ق arabic true // qaf
ك arabic true // kaf
ل arabic true // lam
م arabic true // mim
ن arabic true // nun
ه arabic true // ha'
و arabic true // waw (isol + init)
ي arabic true // ya'
آ arabic true // alif madda
إ arabic true // alif + diacritic
أ arabic true // alif + hamza
ؤ arabic true // waw + hamza
ئ arabic true // ya' + hamza
// Hebrew
א hebrew true
ב hebrew true
ג hebrew true
ד hebrew true
ה hebrew true
ו hebrew true
ז hebrew true
ח hebrew true
ט hebrew true
י hebrew true
כ hebrew true
ל hebrew true
מ hebrew true
נ hebrew true
ס hebrew true
ע hebrew true
פ hebrew true
צ hebrew true
ק hebrew true
ר hebrew true
ש hebrew true
ת hebrew true
// 2. following are rules to reject the language
// Every Latin character word has at least one Latin vowel
a cyrillic+hebrew+greek+arabic false
o cyrillic+hebrew+greek+arabic false
e cyrillic+hebrew+greek+arabic false
i cyrillic+hebrew+greek+arabic false
y cyrillic+hebrew+greek+arabic+romanian+dutch false
u cyrillic+hebrew+greek+arabic false
j italian false
j[^aoeiuy] french+spanish+portuguese+greeklatin false
g czech false
k romanian+spanish+portuguese+french+italian false
q hungarian+polish+russian+romanian+czech+dutch+turkish+greeklatin false
v polish false
w french+romanian+spanish+hungarian+russian+czech+turkish+greeklatin false
x czech+hungarian+dutch+turkish false // polish excluded from the list
dj spanish+turkish false
v[^aoeiu] german false // in german, "v" can be found before a vowel only
y[^aoeiu] german false // in german, "y" usually appears only in the last position; sometimes before a vowel
c[^aohk] german false
dzi german+english+french+turkish false
ou german false
a[eiou] turkish false // no diphthongs in Turkish
ö[eaio] turkish false
ü[eaio] turkish false
e[aiou] turkish false
i[aeou] turkish false
o[aieu] turkish false
u[aieo] turkish false
aj german+english+french+dutch false
ej german+english+french+dutch false
oj german+english+french+dutch false
uj german+english+french+dutch false
eu russian+polish false
ky polish false
kie french+spanish+greeklatin false
gie portuguese+romanian+spanish+greeklatin false
ch[aou] italian false
ch turkish false
son$ german false
sc[ei] french false
sch hungarian+polish+french+spanish false
^h russian false
etti$ greeklatin false
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

View file

@ -0,0 +1,105 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// SEPHARDIC
// 1. following are rules to accept the language
// 1.1 Special letter combinations
eau french true
ou french true
gni italian+french true
tx spanish true
tj spanish true
gy french true
guy french true
sh spanish+portuguese true // English, but no sign for /sh/ in these languages
lh portuguese true
nh portuguese true
ny spanish true
gue spanish+french true
gui spanish+french true
gia italian true
gie italian true
gio italian true
giu italian true
// 1.2 special characters
ñ spanish true
â portuguese+french true
á portuguese+spanish true
à portuguese true
ã portuguese true
ê french+portuguese true
í portuguese+spanish true
î french true
ô french+portuguese true
õ portuguese true
ò italian+spanish true
ú portuguese+spanish true
ù french true
ü portuguese+spanish true
// Hebrew
א hebrew true
ב hebrew true
ג hebrew true
ד hebrew true
ה hebrew true
ו hebrew true
ז hebrew true
ח hebrew true
ט hebrew true
י hebrew true
כ hebrew true
ל hebrew true
מ hebrew true
נ hebrew true
ס hebrew true
ע hebrew true
פ hebrew true
צ hebrew true
ק hebrew true
ר hebrew true
ש hebrew true
ת hebrew true
// 2. following are rules to reject the language
// Every Latin character word has at least one Latin vowel
a hebrew false
o hebrew false
e hebrew false
i hebrew false
y hebrew false
u hebrew false
kh spanish false
gua italian false
guo italian false
ç italian false
cha italian false
cho italian false
chu italian false
j italian false
dj spanish false
sce french false
sci french false
ó french false
è portuguese false

View file

@ -50,8 +50,8 @@
"y" "[aáuiíoóeéê]" "" "j"
"y" "" "[aeiíou]" "j"
"m" "" "[bcdfglnprstv]" "(m|n)" // maybe to add a rule for m/n before a consonant that disappears [preceeding vowel becomes nasalized]
"m" "" "$" "(m|n)" // maybe to add a rule for final m/n that disappears [preceeding vowel becomes nasalized]
"m" "" "[bcdfglnprstv]" "(m|n)" // maybe to add a rule for m/n before a consonant that disappears [preceding vowel becomes nasalized]
"m" "" "$" "(m|n)" // maybe to add a rule for final m/n that disappears [preceding vowel becomes nasalized]
"ão" "" "" "(au|an|on)"
"ãe" "" "" "(aj|an)"

View file

@ -0,0 +1,200 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// Format
// "pattern" "replacement at start of word" "replacement before a vowel" "replacement in other cases"
// Vowels
"a" "0" "" ""
"e" "0" "" ""
"i" "0" "" ""
"o" "0" "" ""
"u" "0" "" ""
// Consonants
"b" "7" "7" "7"
"d" "3" "3" "3"
"f" "7" "7" "7"
"g" "5" "5" "5"
"h" "5" "5" ""
"k" "5" "5" "5"
"l" "8" "8" "8"
"m" "6" "6" "6"
"n" "6" "6" "6"
"p" "7" "7" "7"
"q" "5" "5" "5"
"r" "9" "9" "9"
"s" "4" "4" "4"
"t" "3" "3" "3"
"v" "7" "7" "7"
"w" "7" "7" "7"
"x" "5" "54" "54"
"y" "1" "" ""
"z" "4" "4" "4"
// Romanian t-cedilla and t-comma should be equivalent
"ţ" "3|4" "3|4" "3|4"
"ț" "3|4" "3|4" "3|4"
// Polish characters (e-ogonek and a-ogonek): default case branch either not coded or 6
"ę" "" "" "|6"
"ą" "" "" "|6"
// Other terms
"schtsch" "2" "4" "4"
"schtsh" "2" "4" "4"
"schtch" "2" "4" "4"
"shtch" "2" "4" "4"
"shtsh" "2" "4" "4"
"stsch" "2" "4" "4"
"ttsch" "4" "4" "4"
"zhdzh" "2" "4" "4"
"shch" "2" "4" "4"
"scht" "2" "43" "43"
"schd" "2" "43" "43"
"stch" "2" "4" "4"
"strz" "2" "4" "4"
"strs" "2" "4" "4"
"stsh" "2" "4" "4"
"szcz" "2" "4" "4"
"szcs" "2" "4" "4"
"ttch" "4" "4" "4"
"tsch" "4" "4" "4"
"ttsz" "4" "4" "4"
"zdzh" "2" "4" "4"
"zsch" "4" "4" "4"
"chs" "5" "54" "54"
"csz" "4" "4" "4"
"czs" "4" "4" "4"
"drz" "4" "4" "4"
"drs" "4" "4" "4"
"dsh" "4" "4" "4"
"dsz" "4" "4" "4"
"dzh" "4" "4" "4"
"dzs" "4" "4" "4"
"sch" "4" "4" "4"
"sht" "2" "43" "43"
"szt" "2" "43" "43"
"shd" "2" "43" "43"
"szd" "2" "43" "43"
"tch" "4" "4" "4"
"trz" "4" "4" "4"
"trs" "4" "4" "4"
"tsh" "4" "4" "4"
"tts" "4" "4" "4"
"ttz" "4" "4" "4"
"tzs" "4" "4" "4"
"tsz" "4" "4" "4"
"zdz" "2" "4" "4"
"zhd" "2" "43" "43"
"zsh" "4" "4" "4"
"ai" "0" "1" ""
"aj" "0" "1" ""
"ay" "0" "1" ""
"au" "0" "7" ""
"cz" "4" "4" "4"
"cs" "4" "4" "4"
"ds" "4" "4" "4"
"dz" "4" "4" "4"
"dt" "3" "3" "3"
"ei" "0" "1" ""
"ej" "0" "1" ""
"ey" "0" "1" ""
"eu" "1" "1" ""
"fb" "7" "7" "7"
"ia" "1" "" ""
"ie" "1" "" ""
"io" "1" "" ""
"iu" "1" "" ""
"ks" "5" "54" "54"
"kh" "5" "5" "5"
"mn" "66" "66" "66"
"nm" "66" "66" "66"
"oi" "0" "1" ""
"oj" "0" "1" ""
"oy" "0" "1" ""
"pf" "7" "7" "7"
"ph" "7" "7" "7"
"sh" "4" "4" "4"
"sc" "2" "4" "4"
"st" "2" "43" "43"
"sd" "2" "43" "43"
"sz" "4" "4" "4"
"th" "3" "3" "3"
"ts" "4" "4" "4"
"tc" "4" "4" "4"
"tz" "4" "4" "4"
"ui" "0" "1" ""
"uj" "0" "1" ""
"uy" "0" "1" ""
"ue" "0" "1" ""
"zd" "2" "43" "43"
"zh" "4" "4" "4"
"zs" "4" "4" "4"
// Branching cases
"c" "4|5" "4|5" "4|5"
"ch" "4|5" "4|5" "4|5"
"ck" "5|45" "5|45" "5|45"
"rs" "4|94" "4|94" "4|94"
"rz" "4|94" "4|94" "4|94"
"j" "1|4" "|4" "|4"
// ASCII foldings
ß=s
à=a
á=a
â=a
ã=a
ä=a
å=a
æ=a
ç=c
è=e
é=e
ê=e
ë=e
ì=i
í=i
î=i
ï=i
ð=d
ñ=n
ò=o
ó=o
ô=o
õ=o
ö=o
ø=o
ù=u
ú=u
û=u
ý=y
ý=y
þ=b
ÿ=y
ć=c
ł=l
ś=s
ż=z
ź=z

View file

@ -1,3 +1,3 @@
version=17.2.2
version=17.4.2
client=play-services-measurement-api
play-services-measurement-api_client=17.2.2
play-services-measurement-api_client=17.4.2

View file

@ -1,3 +1,3 @@
version=17.2.2
version=17.4.2
client=play-services-measurement-base
play-services-measurement-base_client=17.2.2
play-services-measurement-base_client=17.4.2

View file

@ -1,3 +1,3 @@
version=17.2.2
version=17.4.2
client=play-services-measurement-impl
play-services-measurement-impl_client=17.2.2
play-services-measurement-impl_client=17.4.2

View file

@ -1,3 +1,3 @@
version=17.2.2
version=17.4.2
client=play-services-measurement-sdk-api
play-services-measurement-sdk-api_client=17.2.2
play-services-measurement-sdk-api_client=17.4.2

View file

@ -1,3 +1,3 @@
version=17.2.2
version=17.4.2
client=play-services-measurement-sdk
play-services-measurement-sdk_client=17.2.2
play-services-measurement-sdk_client=17.4.2

View file

@ -1,3 +1,3 @@
version=17.2.2
version=17.4.2
client=play-services-measurement
play-services-measurement_client=17.2.2
play-services-measurement_client=17.4.2

View file

@ -1,3 +1,3 @@
version=2.2.0
version=2.2.3
client=transport-backend-cct
transport-backend-cct_client=2.2.0
transport-backend-cct_client=2.2.3

View file

@ -1,3 +1,3 @@
version=2.2.0
version=2.2.3
client=transport-runtime
transport-runtime_client=2.2.0
transport-runtime_client=2.2.3