Revision: 5946
http://languagetool.svn.sourceforge.net/languagetool/?rev=5946&view=rev
Author: dominikoeo
Date: 2011-11-20 17:01:03 +0000 (Sun, 20 Nov 2011)
Log Message:
-----------
[br] - updated the Breton lexicon: enriched tags for proper names.
- fixed several false positives.
Modified Paths:
--------------
trunk/JLanguageTool/CHANGES.txt
trunk/JLanguageTool/src/resource/br/breton.dict
trunk/JLanguageTool/src/resource/br/create-lexicon.pl
trunk/JLanguageTool/src/rules/br/grammar.xml
Modified: trunk/JLanguageTool/CHANGES.txt
===================================================================
--- trunk/JLanguageTool/CHANGES.txt 2011-11-20 14:35:37 UTC (rev 5945)
+++ trunk/JLanguageTool/CHANGES.txt 2011-11-20 17:01:03 UTC (rev 5946)
@@ -10,7 +10,8 @@
-Breton:
-updated dictionary from Apertium.
-several new rules
- -corrected and improve styles of messages, thanks to Fulup Jakez.
+ -corrected and improve style of messages, translated all messages
+ thanks to Fulup Jakez.
-French:
-updated dictionary to use Dicollecte-4.3
-fixed false positives
Modified: trunk/JLanguageTool/src/resource/br/breton.dict
===================================================================
(Binary files differ)
Modified: trunk/JLanguageTool/src/resource/br/create-lexicon.pl
===================================================================
--- trunk/JLanguageTool/src/resource/br/create-lexicon.pl 2011-11-20
14:35:37 UTC (rev 5945)
+++ trunk/JLanguageTool/src/resource/br/create-lexicon.pl 2011-11-20
17:01:03 UTC (rev 5946)
@@ -58,14 +58,15 @@
"bleinerien", "vleinerien", "pleinerien",
"bleinerion", "vleinerion", "pleinerion",
"breudeur", "vreudeur", "preudeur",
+ "breutaerien", "vreutaerien", "preutaerien",
"brezhonegerien", "vrezhonegerien", "prezhonegerien",
"bugale", "vugale", "pugale",
- "butuner", "vutuner", "putuner",
+ "butunerien", "vutunerien", "putunerien",
+ "butunerion", "vutunerion", "putunerion",
"dañserien", "tañserien",
"gaouidi", "c’haouidi", "kaouidi",
"genaoueien", "c’henaoueien", "kenaoueien",
- "girzien", "c’hirzien", "kirzien",
- "gouizieien", "c’houiziein", "kouizieien",
+ "gouizieien", "c’houizieien", "kouizieien",
"gourdonerien", "c’hourdonerien", "kourdonerien",
"goved", "c’hoved", "koved",
"gwazed", "wazed", "kwazed",
@@ -89,11 +90,9 @@
"kenskriverien", "genskriverien", "c’henskriverien",
"kenwerzherien", "genwerzherien", "c’henwerzherien",
"kereon", "gereon", "c’hereon",
- "kevendirvi", "gevendirvi", "c’hevendirvi",
- "kevnianted", "gevnianted", "c’hevnianted",
"kigerien", "gigerien", "c’higerien",
"klañvdiourien", "glañvdiourien", "c’hlañvdiourien",
- "konversañted", "gonversañted", "c’honversañted",
+ "koñversanted", "goñversanted", "c’hoñversanted",
"krennarded", "grennarded", "c’hrennarded",
"kristenien", "gristenien", "c’hristenien",
"kristenion", "gristenion", "c’hristenion",
@@ -125,7 +124,7 @@
"prefeded", "brefeded", "frefeded",
"prizonidi", "brizonidi", "frizonidi",
"priñsed", "briñsed", "friñsed",
- "taihanterien", "daihanterien", "zaihanterien",
+ "tailhanterien", "dailhanterien", "zailhanterien",
"toerien", "doerien", "zoerien",
"tommerien", "dommerien", "zommerien",
"tontoned", "dontoned", "zontoned",
@@ -142,6 +141,8 @@
# Count how many words handled and unhandled.
my ($out_count, $err_count) = (0, 0);
+my %all_words;
+my %all_lemmas;
while (<LT_EXPAND>) {
chomp;
@@ -152,6 +153,9 @@
$tags =~ s/(<vblex><pri><p.><..>)\+.*/$1/;
$lemma = $word if ($lemma eq 'direct' or $lemma eq 'prpers');
+ $all_lemmas{$lemma} = 1;
+ $all_words{$word} = 1;
+
my $tag = '';
if ($tags eq '<det><def><sp>') { $tag = "D e sp" } # an, ar, al
@@ -260,17 +264,17 @@
elsif ($tags eq '<n><m><sp>') { $tag = "N m sp" }
# Proper nouns.
- elsif ($tags eq '<np><top><sg>') { $tag = "Z e s" } # Aostria
- elsif ($tags eq '<np><top><pl>') { $tag = "Z e p" } # Azorez
- elsif ($tags eq '<np><top><m><sg>') { $tag = "Z m s" } # Kreiz-Breizh
- elsif ($tags eq '<np><cog><mf><sg>') { $tag = "Z e s" }
- elsif ($tags eq '<np><ant><m><sg>') { $tag = "Z m s" } # Alan
- elsif ($tags eq '<np><ant><f><sg>') { $tag = "Z f s" } # Youna
- elsif ($tags eq '<np><al><mf><sg>') { $tag = "Z e s" } # Leclerc
- elsif ($tags eq '<np><al><m><sg>') { $tag = "Z m s" } # Ofis
- elsif ($tags eq '<np><al><f><sg>') { $tag = "Z f s" } # Bibl
+ elsif ($tags eq '<np><top><sg>') { $tag = "Z e s top" } # Aostria
+ elsif ($tags eq '<np><top><pl>') { $tag = "Z e p top" } # Azorez
+ elsif ($tags eq '<np><top><m><sg>') { $tag = "Z m s top" } # Kreiz-Breizh
+ elsif ($tags eq '<np><cog><mf><sg>') { $tag = "Z e s cog" }
+ elsif ($tags eq '<np><ant><m><sg>') { $tag = "Z m s ant" } # Alan
+ elsif ($tags eq '<np><ant><f><sg>') { $tag = "Z f s ant" } # Youna
+ elsif ($tags eq '<np><al><mf><sg>') { $tag = "Z e s al" } # Leclerc
+ elsif ($tags eq '<np><al><m><sg>') { $tag = "Z m s al" } # Ofis
+ elsif ($tags eq '<np><al><f><sg>') { $tag = "Z f s al" } # Bibl
- elsif ($tags eq '<n><acr><m><sg>') { $tag = "S m s" } # TER
+ elsif ($tags eq '<n><acr><m><sg>') { $tag = "S m s" } # TER
# Verbs.
elsif ($tags eq '<vblex><inf>') { $tag = "V inf" } # komz
@@ -391,35 +395,57 @@
$first_letter_lemma = lc $first_letter_lemma;
$first_letter_word = lc $first_letter_word;
- if ($first_letter_lemma and $first_letter_word and
- $first_letter_lemma ne $first_letter_word) {
+ if ($lemma eq 'kaout') { }
+ elsif ($word eq 'tud') { }
+ elsif ($word eq 'dud') { $tag .= "M:1:1a" }
+ elsif ($word eq 'zud') { $tag .= "M:2:" }
+ elsif ($word eq 'diweuz') { }
+ elsif ($word eq 'tiweuz') { $tag .= "M:3:" }
+ elsif ($word eq 'ziweuz') { $tag .= "M:1:1b:" }
+ elsif ($word =~ '^kezeg-?(koad|mor|blein)?$') { }
+ elsif ($word =~ '^gezeg-?(koad|mor|blein)?$') { $tag .= "M:1:1a:" }
+ elsif ($word =~ '^c’hezeg-?(koad|mor|blein)?$') { $tag .= "M:2:" }
+ elsif ($word =~ '^daou(lin|lagad)$') { }
+ elsif ($word =~ '^taou(lin|lagad)$') { $tag .= "M:3:" }
+ elsif ($word =~ '^zaou(lin|lagad)$') { $tag .= "M:1:1b:" }
+ elsif ($word =~ '^div(c’har|esker|rec’h|ronn|orzhed|jod|skouarn)$') { }
+ elsif ($word =~ '^tiv(c’har|esker|rec’h|ronn|orzhed|jod|skouarn)$') { $tag
.= "M:3:" }
+ elsif ($word =~ '^ziv(c’har|esker|rec’h|ronn|orzhed|jod|skouarn)$') { $tag
.= "M:1:1b:" }
+ elsif ($first_letter_lemma and
+ $first_letter_word and
+ $first_letter_lemma ne $first_letter_word and
+ !($first_letter_lemma eq 'k' and $first_letter_word eq 'kw')) {
# Add mutation tag.
- if ($first_letter_lemma eq 'k') {
- if ($first_letter_word eq 'c’h') { $tag .= " M:a0:2:"; }
- elsif ($first_letter_word eq 'g') { $tag .= " M:1:1a:"; }
- } elsif ($first_letter_lemma eq 't') {
- if ($first_letter_word eq 'd') { $tag .= " M:1:1a:"; }
- elsif ($first_letter_word eq 'z') { $tag .= " M:2:"; }
- } elsif ($first_letter_lemma eq 'p') {
- if ($first_letter_word eq 'b') { $tag .= " M:1:1a:"; }
- elsif ($first_letter_word eq 'f') { $tag .= " M:2:"; }
- } elsif ($first_letter_lemma eq 'g') {
- if ($first_letter_word eq 'c’h') { $tag .= " M:1:1a:1b:4:"; }
- elsif ($first_letter_word eq 'k') { $tag .= " M:3:"; }
- } elsif ($first_letter_lemma eq 'gw') {
- if ($first_letter_word eq 'w') { $tag .= " M:1:1a:1b:4:"; }
- elsif ($first_letter_word eq 'kw') { $tag .= " M:3:"; }
- } elsif ($first_letter_lemma eq 'd') {
- if ($first_letter_word eq 'z') { $tag .= " M:1:1b:4:"; }
- elsif ($first_letter_word eq 't') { $tag .= " M:3:4:"; }
- } elsif ($first_letter_lemma eq 'b') {
- if ($first_letter_word eq 'v') { $tag .= " M:1:1a:1b:4:"; }
- elsif ($first_letter_word eq 'p') { $tag .= " M:3:"; }
- } elsif ($first_letter_lemma eq 'm') {
- if ($first_letter_word eq 'v') { $tag .= " M:1:1a:1b:4:"; }
+ if ($first_letter_lemma eq 'k') {
+ if ($first_letter_word eq 'c’h') { $tag .= " M:a0:2:" }
+ elsif ($first_letter_word eq 'g') { $tag .= " M:1:1a:" }
+ elsif ($first_letter_word eq 'gw') { $tag .= " M:1:1a:" }
+ } elsif ($first_letter_lemma eq 't') {
+ if ($first_letter_word eq 'd') { $tag .= " M:1:1a:" }
+ elsif ($first_letter_word eq 'z') { $tag .= " M:2:" }
+ } elsif ($first_letter_lemma eq 'p') {
+ if ($first_letter_word eq 'b') { $tag .= " M:1:1a:" }
+ elsif ($first_letter_word eq 'f') { $tag .= " M:2:" }
+ } elsif ($first_letter_lemma eq 'g') {
+ if ($first_letter_word eq 'c’h') { $tag .= " M:1:1a:1b:4:" }
+ elsif ($first_letter_word eq 'k') { $tag .= " M:3:" }
+ } elsif ($first_letter_lemma eq 'gw') {
+ if ($first_letter_word eq 'w') { $tag .= " M:1:1a:1b:4:" }
+ elsif ($first_letter_word eq 'kw') { $tag .= " M:3:" }
+ elsif ($first_letter_word eq 'c’h') { $tag .= " M:4:" }
+ } elsif ($first_letter_lemma eq 'd') {
+ if ($first_letter_word eq 'z') { $tag .= " M:1:1b:4:" }
+ elsif ($first_letter_word eq 't') { $tag .= " M:3:4:" }
+ } elsif ($first_letter_lemma eq 'b') {
+ if ($first_letter_word eq 'v') { $tag .= " M:1:1a:1b:4:" }
+ elsif ($first_letter_word eq 'p') { $tag .= " M:3:" }
+ } elsif ($first_letter_lemma eq 'm') {
+ if ($first_letter_word eq 'v') { $tag .= " M:1:1a:1b:4:" }
}
unless ($tag =~ /:$/) {
- print STDERR "*** unexpected mutation [$first_letter_lemma] ->
[$first_letter_word] lemma=[$lemma] -> word=[$word] tag=[$tag]\n";
+ print STDERR "*** unexpected mutation [$first_letter_lemma] -> "
+ . "[$first_letter_word] lemma=[$lemma][$first_letter_lemma]
"
+ . "-> word=[$word][$first_letter_word] tag=[$tag]\n";
}
}
if ($tag) {
@@ -433,6 +459,9 @@
}
print "handled [$out_count] words, unhandled [$err_count] words\n";
+print "Lemma words missing from dicitionary:\n";
+foreach (sort keys %all_lemmas) { print "$_\n" unless (exists $all_words{$_});
}
+
# Check whether some words in anv_lies_tud have are missing in dictionary.
foreach (sort keys %anv_lies_tud) {
print STDERR "*** plural noun [$_] is missing in Apertium dictionary.\n"
unless ($anv_lies_tud{$_});
Modified: trunk/JLanguageTool/src/rules/br/grammar.xml
===================================================================
--- trunk/JLanguageTool/src/rules/br/grammar.xml 2011-11-20 14:35:37 UTC
(rev 5945)
+++ trunk/JLanguageTool/src/rules/br/grammar.xml 2011-11-20 17:01:03 UTC
(rev 5946)
@@ -182,17 +182,14 @@
<exception postag="P|L e" postag_regexp="yes">e</exception>
</token>
<and>
- <token regexp="yes">(k|c’h).*</token>
- <token regexp="yes" inflected="yes">k.*<exception regexp="yes"
inflected="yes">c’h.*</exception></token>
+ <token regexp="yes">k.*<exception>kant</exception></token>
+ <token regexp="yes" inflected="yes">k.*</token>
</and>
</pattern>
- <message>Ur c’hemmadur dre vlotaat a zlefe bezañ goude ar ger «\1». Ha
fellout a rae deoc’h skrivañ <suggestion><match no="2"
regexp_match="(k|c’h)(.*)" regexp_replace="g$1"/></suggestion>?</message>
+ <message>Ur c’hemmadur dre vlotaat a zlefe bezañ goude ar ger «\1». Ha
fellout a rae deoc’h skrivañ <suggestion><match no="2" regexp_match=".(.*)"
regexp_replace="g$1"/></suggestion>?</message>
<example type="incorrect">Gwall <marker>kozh</marker> eo da
garr.</example>
<example type="correct">Gwall gozh eo da garr.</example>
<example type="correct">N’a ket mat en-dro an urzhiataer.</example>
- <example type="correct">C’hoant am eus da c’hoari.</example>
- <example type="correct">Ne c’hell ket bezañ.</example>
- <example type="correct">Ne c’hall ket bezañ.</example>
</rule>
<rule>
<pattern mark_from="1">
@@ -279,6 +276,7 @@
<and>
<token regexp="yes">b.*
<exception inflected="yes" regexp="yes">p.*</exception>
+ <exception postag="UNKNOWN"/>
</token>
<token regexp="yes" inflected="yes">b.*</token>
</and>
@@ -312,7 +310,9 @@
<exception postag="P|L e" postag_regexp="yes">e</exception>
</token>
<and>
- <token regexp="yes">c’h.*<exception inflected="yes"
regexp="yes">(g|c’h).*</exception>
+ <token regexp="yes">c’h.*
+ <exception inflected="yes" regexp="yes">(g|c’h).*</exception>
+ <exception>c’hant</exception>
</token>
<token regexp="yes" inflected="yes">k.*</token>
</and>
@@ -322,6 +322,8 @@
<example type="correct">Niver a gentelioù-noz</example>
<example type="correct">C’hoant en deus da c’hoari.</example>
<example type="correct">Ne c’hell ket bezañ.</example>
+ <example type="correct">Ne c’hall ket bezañ.</example>
+ <example type="correct">Daou c’hant</example>
</rule>
<rule>
<pattern mark_from="1">
@@ -410,6 +412,18 @@
</rule>
</rulegroup>
+ <rulegroup id="KEMM_KANT" name="daou kant → daou c’hant">
+ <rule>
+ <pattern mark_from="1">
+ <token regexp="yes">daou|div</token>
+ <token>kant</token>
+ </pattern>
+ <message>Ha fellout a rae deoc’h skrivañ
<suggestion>c’hant</suggestion>?</message>
+ <example type="incorrect">Daou <marker>kant</marker></example>
+ <example type="correct">Daou c’hant</example>
+ </rule>
+ </rulegroup>
+
<!-- Mutations renforçantes -->
<rulegroup id="KEMM_DRE_GALETAAT" name="kemmedur dre galetaat">
<rule>
@@ -524,7 +538,9 @@
<exception postag="C sub">ma</exception>
</token>
<and>
- <token regexp="yes" inflected="yes">p.*</token>
+ <token regexp="yes" inflected="yes">p.*
+ <exception regexp="yes" inflected="yes">b.*</exception>
+ </token>
<token regexp="yes">[pb].*</token>
</and>
</pattern>
@@ -532,6 +548,7 @@
<example type="incorrect">Re ziwezhat out va
<marker>paotr</marker>!</example>
<example type="incorrect">Re ziwezhat out va
<marker>baotr</marker>!</example>
<example type="correct">Re ziwezhat out va faotr!</example>
+ <example type="correct">Va beg digor</example>
</rule>
<rule>
<pattern mark_from="2">
@@ -1170,6 +1187,7 @@
<token
regexp="yes">a-benn|arabat|abaoe|eus|evel(-se)?|hag?|hep|ke[nt]|krenn|lies|mard?|nemet|nebeu(dig)?|pas|pep|pebezh|pegen|pere|petvet|peseurt|petore|setu</token>
<token postag="[^M]*M:.*" postag_regexp="yes">
<exception negate_pos="yes" postag="[^M]*M:.*" postag_regexp="yes"/>
+ <exception>vad</exception>
</token>
</pattern>
<message>Ne zlefe ket bezañ ur c’hemmadur er ger «\2» goude ar ger
«\1».</message>
@@ -1181,6 +1199,7 @@
<example type="correct">Redek a ra vad.</example>
<example type="incorrect">Ken <marker>vras</marker> eo!</example>
<example type="correct">Ken bras eo!</example>
+ <example type="correct">Ha vad a ra din bezañ du-hont.</example>
</rule>
<rulegroup id="KEMM_N_J" name="Kemmadur en anv-gwan o tont warlec’h an
anv">
@@ -1214,7 +1233,7 @@
<token postag="N f p.*|N m s.*" postag_regexp="yes">
<exception postag="N f s.*|N m p t.*" postag_regexp="yes"/>
<exception postag="N f s.*|N m p t.*" postag_regexp="yes"/>
- <exception regexp="yes"
inflected="yes">.|re|aer|avel|brud|c’hoari|c’hwezh|gwall|lur|revr|tra|war</exception>
+ <exception regexp="yes"
inflected="yes">.|re|aer|avel|brud|c’hoari|c’hwezh|gwall|lur|revr|seul|tra|war</exception>
</token>
<token postag="J[^M]*M:.*" postag_regexp="yes">
<exception negate_pos="yes" postag="J[^M]*M:.*|SENT_END"
postag_regexp="yes"/>
@@ -1338,6 +1357,40 @@
</rule>
</category>
+ <category name="ELISION">
+ <rule id="DA_M" name="d’am → da‘m">
+ <pattern>
+ <token regexp="yes">[dmp]’</token>
+ <token regexp="yes">a[mz]</token>
+ </pattern>
+ <message>Ha fellout a rae deoc’h skrivañ <suggestion><match no="1"
regexp_match="^(.).*" regexp_replace="$1a"/>’m</suggestion>?</message>
+ <example type="incorrect">Ur pok <marker>d'am</marker> gwaz</example>
+ <example type="correct">Ur pok da'm gwaz</example>
+ <example type="incorrect"><marker>P’az</marker> eer d’ar
marc’had</example>
+ <example type="correct">Pa’z eer d’ar marc’had</example>
+ <example type="incorrect">Abaoe <marker>m’az</marker> on yac‘h
en-dro</example>
+ <example type="correct">Abaoe ma’z on yac‘h en-dro</example>
+ </rule>
+ <rule id="D_AR" name="da’r → d’ar">
+ <pattern>
+ <token>da’</token>
+ <token regexp="yes">[lnr]</token>
+ </pattern>
+ <message>Ha fellout a rae deoc’h skrivañ <suggestion><match no="1"
regexp_match="^(.).*" regexp_replace="$1"/>’a\2</suggestion>?</message>
+ <example type="incorrect"><marker>Da’r</marker> mare ma oan o tigeriñ an
nor</example>
+ <example type="correct">D’ar mare ma oan o tigeriñ an nor</example>
+ </rule>
+ <rule id="M_EUS" name="m’eus → ’m eus">
+ <pattern>
+ <token>m’</token>
+ <token>eus</token>
+ </pattern>
+ <message>Ha fellout a rae deoc’h skrivañ <suggestion>’m
eus</suggestion>?</message>
+ <example type="incorrect">Amzer a-walc’h
<marker>m’eus</marker>.</example>
+ <example type="correct">Amzer a-walc’h ’m eus.</example>
+ </rule>
+ </category>
+
<category name="Niver">
<rule id="DAOU" name="daou">
<pattern mark_to="-1">
@@ -1787,7 +1840,7 @@
<token>bet</token>
<token inflected="yes">bezañ</token>
<token>da</token>
- <token postag="Z .*" postag_regexp="yes"
regexp="yes">[^aeiou].*</token>
+ <token postag="Z[^:]* top.*" postag_regexp="yes"
regexp="yes">[^aeiou].*</token>
</pattern>
<message>Ha fellout a rae deoc’h skrivañ
<suggestion>e</suggestion>?</message>
<example type="incorrect">Bet out <marker>da</marker> Bariz
c’hoazh?</example>
@@ -1798,7 +1851,7 @@
<token>bet</token>
<token inflected="yes">bezañ</token>
<token>da</token>
- <token postag="Z .*" postag_regexp="yes"
regexp="yes">[aeiou].*</token>
+ <token postag="Z[^:]* top.*" postag_regexp="yes"
regexp="yes">[aeiou].*</token>
</pattern>
<message>Ha fellout a rae deoc’h skrivañ
<suggestion>en</suggestion>?</message>
<example type="incorrect">Bet out <marker>da</marker> Iwerzhon
c’hoazh?</example>
@@ -1807,7 +1860,7 @@
<rule>
<pattern mark_to="-3">
<token>da</token>
- <token postag="Z .*" postag_regexp="yes"
regexp="yes">[^aeiou].*</token>
+ <token postag="Z[^:]* top.*" postag_regexp="yes"
regexp="yes">[^aeiou].*</token>
<token inflected="yes">bezañ</token>
<token>bet</token>
</pattern>
@@ -1818,7 +1871,7 @@
<rule>
<pattern mark_to="-3">
<token>da</token>
- <token postag="Z .*" postag_regexp="yes"
regexp="yes">[aeiou].*</token>
+ <token postag="Z[^:]* top.*" postag_regexp="yes"
regexp="yes">[aeiou].*</token>
<token inflected="yes">bezañ</token>
<token>bet</token>
</pattern>
@@ -1831,18 +1884,19 @@
<token inflected="yes">bezañ</token>
<token>bet</token>
<token>da</token>
- <token postag="Z .*" postag_regexp="yes"
regexp="yes">[^aeiou].*</token>
+ <token postag="Z[^:]* top.*" postag_regexp="yes"
regexp="yes">[^aeiou].*</token>
</pattern>
<message>Ha fellout a rae deoc’h skrivañ
<suggestion>en</suggestion>?</message>
<example type="incorrect">Me zo bet <marker>da</marker>
Gemper.</example>
<example type="correct">Me zo bet e Gemper.</example>
+ <example type="correct">Ret e oa bet da Fañch lavarout ar
wirionez.</example>
</rule>
<rule>
<pattern mark_from="2" mark_to="-1">
<token inflected="yes">bezañ</token>
<token>bet</token>
<token>da</token>
- <token postag="Z .*" postag_regexp="yes"
regexp="yes">[aeiou].*</token>
+ <token postag="Z[^:]* top.*" postag_regexp="yes"
regexp="yes">[aeiou].*</token>
</pattern>
<message>Ha fellout a rae deoc’h skrivañ
<suggestion>en</suggestion>?</message>
<example type="incorrect">Te zo bet <marker>da</marker> Iwerzhon
c’hoazh?</example>
@@ -2218,7 +2272,7 @@
<token>re</token>
<token postag="N .*p.*" postag_regexp="yes">
<exception postag="J.*" postag_regexp="yes"/>
- <exception>a</exception>
+ <exception regexp="yes">[ao]</exception>
</token>
</pattern>
<message>«\1 a» a implijer dirak un anv. Ha fellout a rae deoc’h
skrivañ <suggestion>\1 a \2</suggestion>?</message>
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure
contains a definitive record of customers, application performance,
security threats, fraudulent activity, and more. Splunk takes this
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
Languagetool-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/languagetool-cvs