@valueerror/ltjs-lang-en 0.0.0-stage → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/LICENSE +232 -0
  2. package/NOTICE +10 -0
  3. package/README.md +25 -2
  4. package/index.js +34 -0
  5. package/licenses/LGPL-2.1.txt +504 -0
  6. package/licenses/english-pos-dict.pom.xml +135 -0
  7. package/licenses/resource_en_12dicts-readme.html +738 -0
  8. package/licenses/resource_en_agid-readme.txt +340 -0
  9. package/licenses/resource_en_pos-readme.txt +115 -0
  10. package/package.json +60 -4
  11. package/resource-root.js +4 -0
  12. package/resources/META-INF/org/languagetool/language-module.properties +1 -0
  13. package/resources/en-chunker.bin +0 -0
  14. package/resources/en-pos-maxent.bin +0 -0
  15. package/resources/en-token.bin +0 -0
  16. package/resources/org/languagetool/resource/en/12dicts-readme.html +738 -0
  17. package/resources/org/languagetool/resource/en/added.txt +446 -0
  18. package/resources/org/languagetool/resource/en/added_custom.txt +4 -0
  19. package/resources/org/languagetool/resource/en/agid-readme.txt +340 -0
  20. package/resources/org/languagetool/resource/en/compounds.txt +9059 -0
  21. package/resources/org/languagetool/resource/en/confusion_sets.txt +871 -0
  22. package/resources/org/languagetool/resource/en/disambiguation.xml +17238 -0
  23. package/resources/org/languagetool/resource/en/do-not-synthesize.txt +13 -0
  24. package/resources/org/languagetool/resource/en/en-US-GB.txt +4804 -0
  25. package/resources/org/languagetool/resource/en/en.sor +211 -0
  26. package/resources/org/languagetool/resource/en/english.dict +0 -0
  27. package/resources/org/languagetool/resource/en/english.info +8 -0
  28. package/resources/org/languagetool/resource/en/english_synth.dict +0 -0
  29. package/resources/org/languagetool/resource/en/english_synth.info +7 -0
  30. package/resources/org/languagetool/resource/en/english_tags.txt +88 -0
  31. package/resources/org/languagetool/resource/en/hunspell/en_AU.dict +0 -0
  32. package/resources/org/languagetool/resource/en/hunspell/en_AU.info +16 -0
  33. package/resources/org/languagetool/resource/en/hunspell/en_CA.dict +0 -0
  34. package/resources/org/languagetool/resource/en/hunspell/en_CA.info +13 -0
  35. package/resources/org/languagetool/resource/en/hunspell/en_GB.dict +0 -0
  36. package/resources/org/languagetool/resource/en/hunspell/en_GB.info +15 -0
  37. package/resources/org/languagetool/resource/en/hunspell/en_NZ.dict +0 -0
  38. package/resources/org/languagetool/resource/en/hunspell/en_NZ.info +18 -0
  39. package/resources/org/languagetool/resource/en/hunspell/en_US.dict +0 -0
  40. package/resources/org/languagetool/resource/en/hunspell/en_US.info +15 -0
  41. package/resources/org/languagetool/resource/en/hunspell/en_ZA.dict +0 -0
  42. package/resources/org/languagetool/resource/en/hunspell/en_ZA.info +16 -0
  43. package/resources/org/languagetool/resource/en/hunspell/ignore.txt +11070 -0
  44. package/resources/org/languagetool/resource/en/hunspell/prohibit.txt +383 -0
  45. package/resources/org/languagetool/resource/en/hunspell/prohibit_custom.txt +1 -0
  46. package/resources/org/languagetool/resource/en/hunspell/spelling.txt +477 -0
  47. package/resources/org/languagetool/resource/en/hunspell/spelling_custom.txt +1 -0
  48. package/resources/org/languagetool/resource/en/hunspell/spelling_en-AU.txt +34 -0
  49. package/resources/org/languagetool/resource/en/hunspell/spelling_en-CA.txt +28 -0
  50. package/resources/org/languagetool/resource/en/hunspell/spelling_en-GB.txt +44 -0
  51. package/resources/org/languagetool/resource/en/hunspell/spelling_en-NZ.txt +31 -0
  52. package/resources/org/languagetool/resource/en/hunspell/spelling_en-US.txt +41 -0
  53. package/resources/org/languagetool/resource/en/hunspell/spelling_en-ZA.txt +32 -0
  54. package/resources/org/languagetool/resource/en/hunspell/spelling_merged.txt +0 -0
  55. package/resources/org/languagetool/resource/en/multiwords.txt +8210 -0
  56. package/resources/org/languagetool/resource/en/pos-readme.txt +115 -0
  57. package/resources/org/languagetool/resource/en/removed.txt +31 -0
  58. package/resources/org/languagetool/resource/en/removed_custom.txt +4 -0
  59. package/resources/org/languagetool/resource/en/specific_case.txt +5621 -0
  60. package/resources/org/languagetool/resource/en/word_definitions.txt +1510 -0
  61. package/resources/org/languagetool/rules/en/coherency.txt +2501 -0
  62. package/resources/org/languagetool/rules/en/contractions.txt +198 -0
  63. package/resources/org/languagetool/rules/en/det_a.txt +959 -0
  64. package/resources/org/languagetool/rules/en/det_an.txt +4080 -0
  65. package/resources/org/languagetool/rules/en/diacritics.txt +1415 -0
  66. package/resources/org/languagetool/rules/en/en-AU/grammar.xml +171 -0
  67. package/resources/org/languagetool/rules/en/en-CA/grammar.xml +197 -0
  68. package/resources/org/languagetool/rules/en/en-GB/grammar.xml +555 -0
  69. package/resources/org/languagetool/rules/en/en-GB/replace.txt +104 -0
  70. package/resources/org/languagetool/rules/en/en-GB/style.xml +302 -0
  71. package/resources/org/languagetool/rules/en/en-NZ/grammar.xml +171 -0
  72. package/resources/org/languagetool/rules/en/en-NZ/replace.txt +5 -0
  73. package/resources/org/languagetool/rules/en/en-US/grammar.xml +913 -0
  74. package/resources/org/languagetool/rules/en/en-US/replace.txt +74 -0
  75. package/resources/org/languagetool/rules/en/en-US/style.xml +524 -0
  76. package/resources/org/languagetool/rules/en/grammar-l2-de.xml +227 -0
  77. package/resources/org/languagetool/rules/en/grammar-l2-fr.xml +39 -0
  78. package/resources/org/languagetool/rules/en/grammar.xml +142537 -0
  79. package/resources/org/languagetool/rules/en/redundancies.txt +866 -0
  80. package/resources/org/languagetool/rules/en/remote-rule-filters.xml +3622 -0
  81. package/resources/org/languagetool/rules/en/replace.txt +221 -0
  82. package/resources/org/languagetool/rules/en/replace_custom.txt +7 -0
  83. package/resources/org/languagetool/rules/en/replace_profanity.txt +540 -0
  84. package/resources/org/languagetool/rules/en/style.xml +12556 -0
  85. package/resources/org/languagetool/rules/en/synonyms.txt +42 -0
  86. package/resources/org/languagetool/rules/en/wordiness.txt +1061 -0
  87. package/resources/org/languagetool/rules/en/wrongWordInContext.txt +14 -0
  88. package/src/lang/en/chunking/EnglishChunkFilter.js +108 -0
  89. package/src/lang/en/chunking/EnglishChunker.js +135 -0
  90. package/src/lang/en/language/AmericanEnglish.js +73 -0
  91. package/src/lang/en/language/AustralianEnglish.js +42 -0
  92. package/src/lang/en/language/BritishEnglish.js +91 -0
  93. package/src/lang/en/language/CanadianEnglish.js +70 -0
  94. package/src/lang/en/language/English.js +398 -0
  95. package/src/lang/en/language/NewZealandEnglish.js +44 -0
  96. package/src/lang/en/language/SouthAfricanEnglish.js +40 -0
  97. package/src/lang/en/language/id2prioBritishEnglish.js +6 -0
  98. package/src/lang/en/language/id2prioEnglish.js +333 -0
  99. package/src/lang/en/rules/AbstractEnglishSpellerRule.js +677 -0
  100. package/src/lang/en/rules/AbstractEnglishSpellerRuleData.js +778 -0
  101. package/src/lang/en/rules/AdvancedSynthesizerFilter.js +12 -0
  102. package/src/lang/en/rules/AdverbFilter.js +538 -0
  103. package/src/lang/en/rules/AmericanReplaceRule.js +57 -0
  104. package/src/lang/en/rules/AvsAnData.js +37 -0
  105. package/src/lang/en/rules/AvsAnRule.js +182 -0
  106. package/src/lang/en/rules/BritishReplaceRule.js +57 -0
  107. package/src/lang/en/rules/CompoundRule.js +150 -0
  108. package/src/lang/en/rules/ConsistentApostrophesRule.js +87 -0
  109. package/src/lang/en/rules/ContractionSpellingRule.js +64 -0
  110. package/src/lang/en/rules/DateCheckFilter.js +58 -0
  111. package/src/lang/en/rules/DateFilterHelper.js +51 -0
  112. package/src/lang/en/rules/EnglishConvertToSentenceCaseFilter.js +17 -0
  113. package/src/lang/en/rules/EnglishDashRule.js +42 -0
  114. package/src/lang/en/rules/EnglishDiacriticsRule.js +67 -0
  115. package/src/lang/en/rules/EnglishMultitokenSpeller.js +15 -0
  116. package/src/lang/en/rules/EnglishNumberInWordFilter.js +38 -0
  117. package/src/lang/en/rules/EnglishPartialPosTagFilter.js +29 -0
  118. package/src/lang/en/rules/EnglishPlainEnglishRule.js +67 -0
  119. package/src/lang/en/rules/EnglishRedundancyRule.js +67 -0
  120. package/src/lang/en/rules/EnglishRepeatedWordsRule.js +212 -0
  121. package/src/lang/en/rules/EnglishSpecificCaseRule.js +47 -0
  122. package/src/lang/en/rules/EnglishSuppressMisspelledSuggestionsFilter.js +12 -0
  123. package/src/lang/en/rules/EnglishUnpairedBracketsRule.js +25 -0
  124. package/src/lang/en/rules/EnglishUnpairedQuotesRule.js +41 -0
  125. package/src/lang/en/rules/EnglishWordRepeatBeginningRule.js +107 -0
  126. package/src/lang/en/rules/EnglishWordRepeatRule.js +126 -0
  127. package/src/lang/en/rules/EnglishWrongWordInContextRule.js +50 -0
  128. package/src/lang/en/rules/FindSuggestionsFilter.js +41 -0
  129. package/src/lang/en/rules/FutureDateFilter.js +25 -0
  130. package/src/lang/en/rules/LongSentenceRule.js +19 -0
  131. package/src/lang/en/rules/MorfologikAmericanSpellerRule.js +69 -0
  132. package/src/lang/en/rules/MorfologikAustralianSpellerRule.js +45 -0
  133. package/src/lang/en/rules/MorfologikBritishSpellerRule.js +47 -0
  134. package/src/lang/en/rules/MorfologikCanadianSpellerRule.js +45 -0
  135. package/src/lang/en/rules/MorfologikNewZealandSpellerRule.js +45 -0
  136. package/src/lang/en/rules/MorfologikSouthAfricanSpellerRule.js +45 -0
  137. package/src/lang/en/rules/NewYearDateFilter.js +25 -0
  138. package/src/lang/en/rules/NewZealandReplaceRule.js +56 -0
  139. package/src/lang/en/rules/NoDisambiguationEnglishPartialPosTagFilter.js +24 -0
  140. package/src/lang/en/rules/OrdinalSuffixFilter.js +33 -0
  141. package/src/lang/en/rules/SimpleReplaceProfanityRule.js +55 -0
  142. package/src/lang/en/rules/SimpleReplaceRule.js +46 -0
  143. package/src/lang/en/rules/StyleTooOftenUsedAdjectiveRule.js +58 -0
  144. package/src/lang/en/rules/StyleTooOftenUsedNounRule.js +58 -0
  145. package/src/lang/en/rules/StyleTooOftenUsedVerbRule.js +58 -0
  146. package/src/lang/en/rules/UnitConversionRule.js +47 -0
  147. package/src/lang/en/rules/UnitConversionRuleImperial.js +57 -0
  148. package/src/lang/en/rules/UnitConversionRuleUS.js +62 -0
  149. package/src/lang/en/rules/VariantInfo.js +23 -0
  150. package/src/lang/en/rules/WordCoherencyRule.js +40 -0
  151. package/src/lang/en/rules/YMDDateCheckFilter.js +25 -0
  152. package/src/lang/en/rules/YMDNewYearDateFilter.js +25 -0
  153. package/src/lang/en/rules/translation/BeoLingusTranslator.js +357 -0
  154. package/src/lang/en/rules/translation/Inflector.js +72 -0
  155. package/src/lang/en/synthesis/EnglishSynthesizer.js +109 -0
  156. package/src/lang/en/tagging/EnglishHybridDisambiguator.js +28 -0
  157. package/src/lang/en/tagging/EnglishTagger.js +78 -0
  158. package/src/lang/en/tokenizers/EnglishWordTokenizer.js +113 -0
@@ -0,0 +1,104 @@
1
+ #American words confused with British ones
2
+ #(c) 2012 Marcin Milkowski
3
+ #Licensed under LGPL
4
+ #The list includes mostly words from http://www.learnenglish.de/mistakes/USvsBrEnglish.html
5
+ # en-US -> en-GB
6
+ airplane=aeroplane
7
+ airplanes=aeroplanes
8
+ #stroller=pram
9
+ automaker=carmaker
10
+ automakers=carmakers
11
+ #bathroom=toilet #to be researched
12
+ #bellboy=page
13
+ candy apple=toffee apple
14
+ checking account=current account
15
+ checking accounts=current accounts
16
+ #chips=crisps
17
+ corrections officer=prison officer
18
+ corrections officers=prison officers
19
+ cotton candy=candy floss
20
+ diapers=nappies
21
+ drapes=curtains
22
+ drunk driving=drink-driving
23
+ elevator=lift #exception: grain elevator [AE=BE], verb "to lift"
24
+ elevators=lifts
25
+ emcee=compere
26
+ emcees=comperes
27
+ eraser=rubber
28
+ erasers=rubbers
29
+ faucet=tap
30
+ faucets=taps
31
+ Ferris wheel=big wheel
32
+ fish sticks=fish fingers
33
+ flashlight=torch
34
+ freeway=motorway
35
+ freeways=motorways
36
+ turnpike=motorway
37
+ turnpikes=motorways
38
+ #French fries=chips #chips is too polysemous, also "fish and chips" must not be corrected
39
+ #garbage=rubbish
40
+ garters=suspenders
41
+ gasoline=petrol
42
+ grippe=flu
43
+ #highway=main road #to be researched
44
+ #hood=bonnet #careful, those are also hats in AE and BE
45
+ #jelly=jam #possible problems with verb "jam" and non-food jelly
46
+ knapsack=rucksack
47
+ knapsacks=rucksacks
48
+ moving van=removal van
49
+ moving vans=removal vans
50
+ #movie=film
51
+ #oatmeal=porridge
52
+ #pacifier=dummy #dummy has other meanings in BE
53
+ pantyhose=tights
54
+ parking lot=car park
55
+ parking lots=car parks
56
+ parking enforcement officer=traffic warden
57
+ parking enforcement officers=traffic wardens
58
+ #pitcher=jug
59
+ at recess=during breaktime
60
+ #report card=school report #to be researched
61
+ galoshes=wellingtons
62
+ #run=ladder #make into rule: only nylon context
63
+ scallion=spring onion
64
+ scallions=spring onions
65
+ sedan=saloon
66
+ sidewalk=pavement
67
+ sidewalks=pavements
68
+ bathroom sink=washbasin
69
+ bathroom sinks=washbasins
70
+ skillet=frying-pan
71
+ skillets=frying-pans
72
+ slicker=mackintosh
73
+ streetcar=tram
74
+ streetcars=trams
75
+ #suspenders=braces
76
+ sweater=jumper
77
+ sweaters=jumpers
78
+ thumbtack=drawing-pin
79
+ thumbtacks=drawing-pins
80
+ #toilet=!toilet #to be researched
81
+ trash=rubbish
82
+ trash can=dustbin
83
+ trolley car=tram
84
+ trolley cars=trams
85
+ #trunk=boot #make a rule! trunks and boots are a thing in both AE and BE
86
+ undershirt=vest
87
+ vacation=holiday
88
+ vacations=holidays
89
+ vacationing=holidaying
90
+ vacationed=holidayed
91
+ windshield=windscreen
92
+ windshields=windscreens
93
+ zipper=zip
94
+ zippers=zips
95
+ mom=mum
96
+ moms=mums
97
+ burglarize=burgle
98
+ burglarizes=burgles
99
+ burglarized=burgled
100
+ burglarizing=burgling
101
+ countertop=worktop|work surface
102
+ countertops=worktops|work surfaces
103
+ clothespin=clothes peg
104
+ clothespins=clothes pegs
@@ -0,0 +1,302 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <?xml-stylesheet type="text/xsl" href="../../../../../../../../../languagetool-core/src/main/resources/org/languagetool/rules/print.xsl" title="Pretty print" ?>
3
+ <?xml-stylesheet type="text/css" href="../../../../../../../../../languagetool-core/src/main/resources/org/languagetool/rules/rules.css" title="Easy editing stylesheet" ?>
4
+ <!--
5
+ English Style Rules for LanguageTool
6
+ See tagset.txt for the meaning of the POS tags
7
+ Copyright (C) 2001-2023 Daniel Naber (http://www.danielnaber.de),
8
+ Marcin Miłkowski, and the LanguageTool contributors
9
+
10
+ This library is free software; you can redistribute it and/or
11
+ modify it under the terms of the GNU Lesser General Public
12
+ License as published by the Free Software Foundation; either
13
+ version 2.1 of the License, or (at your option) any later version.
14
+
15
+ This library is distributed in the hope that it will be useful,
16
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
17
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18
+ Lesser General Public License for more details.
19
+
20
+ You should have received a copy of the GNU Lesser General Public
21
+ License along with this library; if not, write to the Free Software
22
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
23
+ USA
24
+ -->
25
+
26
+ <!DOCTYPE rules [
27
+ <!ENTITY apostrophe "['’`´‘ʻ]">
28
+
29
+ <!ENTITY hyphen "(?:[-‑])">
30
+
31
+ <!ENTITY ambiguous_date '
32
+ <token regexp="yes">0?[1-9]|1[0-2]</token>
33
+ <token>/</token>
34
+ <token regexp="yes">0?[1-9]|1[0-2]</token>
35
+ <token>/</token>
36
+ <token regexp="yes">\d\d\d\d</token>
37
+ '>
38
+ <!-- "7 October 2014" and "7th October 2014" -->
39
+ <!ENTITY date_dmy '
40
+ <token regexp="yes">\d\d?(th)?</token>
41
+ <token regexp="yes">&months;|&abbrevMonths;</token>
42
+ <token regexp="yes">\d\d\d\d</token>
43
+ '>
44
+ <!ENTITY date_dmy_skip '
45
+ <token regexp="yes">\d\d?</token>
46
+ <token regexp="yes">&months;|&abbrevMonths;</token>
47
+ <token regexp="yes" skip="-1">\d\d\d\d</token>
48
+ '>
49
+ <!-- "October 7, 2014" -->
50
+ <!ENTITY date_mdy '
51
+ <token regexp="yes">&months;|&abbrevMonths;</token>
52
+ <token regexp="yes">\d\d?</token>
53
+ <token>,</token>
54
+ <token regexp="yes">\d\d\d\d</token>
55
+ '>
56
+ <!ENTITY date_mdy_skip '
57
+ <token regexp="yes">&months;|&abbrevMonths;</token>
58
+ <token regexp="yes">\d\d?</token>
59
+ <token>,</token>
60
+ <token regexp="yes" skip="-1">\d\d\d\d</token>
61
+ '>
62
+ <!-- "31/10/2014" -->
63
+ <!ENTITY date_dmy_numbers '
64
+ <token regexp="yes">0?[1-9]|[12][0-9]|3[01]</token>
65
+ <token>/</token>
66
+ <token regexp="yes">0?[1-9]|1[0-2]</token>
67
+ <token>/</token>
68
+ <token regexp="yes">\d\d\d\d</token>
69
+ '>
70
+ <!ENTITY date_dmy_numbers_skip '
71
+ <token regexp="yes">0?[1-9]|[12][0-9]|3[01]</token>
72
+ <token>/</token>
73
+ <token regexp="yes">0?[1-9]|1[0-2]</token>
74
+ <token>/</token>
75
+ <token regexp="yes" skip="-1">\d\d\d\d</token>
76
+ '>
77
+ <!-- "10/31/2014" -->
78
+ <!ENTITY date_mdy_numbers '
79
+ <token regexp="yes">0?[1-9]|1[0-2]</token>
80
+ <token>/</token>
81
+ <token regexp="yes">0?[1-9]|[12][0-9]|3[01]</token>
82
+ <token>/</token>
83
+ <token regexp="yes">\d\d\d\d</token>
84
+ '>
85
+ <!ENTITY date_mdy_numbers_skip '
86
+ <token regexp="yes">0?[1-9]|1[0-2]</token>
87
+ <token>/</token>
88
+ <token regexp="yes">0?[1-9]|[12][0-9]|3[01]</token>
89
+ <token>/</token>
90
+ <token regexp="yes" skip="-1">\d\d\d\d</token>
91
+ '>
92
+ ]>
93
+
94
+ <rules lang="en" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/languagetool-org/languagetool/master/languagetool-core/src/main/resources/org/languagetool/rules/rules.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema">
95
+ <category id="STYLE" name="Style" type="style">
96
+ <rule id="FOR_EVER_CA" name="for ever (forever)">
97
+ <antipattern>
98
+ <token>ever</token>
99
+ <token regexp="yes">since|one|body|thing|glades?|bloomers?|changing</token>
100
+ </antipattern>
101
+ <antipattern>
102
+ <token>ever</token>
103
+ <token postag="JJR" />
104
+ </antipattern>
105
+ <antipattern>
106
+ <token>ever</token>
107
+ <token regexp="yes">and|&amp;|or</token>
108
+ <token>ever</token>
109
+ </antipattern>
110
+ <pattern>
111
+ <token>for</token>
112
+ <token>ever</token>
113
+ </pattern>
114
+ <message>It is more common to spell this adverb as one word.</message>
115
+ <suggestion>forever</suggestion>
116
+ <url>https://www.lexico.com/definition/forever</url>
117
+ <example correction="forever">Your texts are stored <marker>for ever</marker>.</example>
118
+ </rule>
119
+
120
+ <rule id="AWAKED" name="awaked (awoke, awoken)"><!-- Premium #1795 -->
121
+ <pattern>
122
+ <token>awaked</token>
123
+ </pattern>
124
+ <message>Although '\1' is British English, the usual spelling is <suggestion>awoke</suggestion> (past tense) or <suggestion>awoken</suggestion> (past participle).</message>
125
+ <url>https://www.collinsdictionary.com/dictionary/english/awaked</url>
126
+ <short>Style: unusual spelling</short>
127
+ <example correction="awoke|awoken">Such a noise might have <marker>awaked</marker> the dead.</example>
128
+ <example>Such a noise might have <marker>awoken</marker> the dead.</example>
129
+ </rule>
130
+
131
+ </category>
132
+ <category id="BRE_STYLE_OXFORD_SPELLING" name="British English, Oxford spelling (~iz~ not ~is~)" type="style">
133
+ <rulegroup id="OXFORD_SPELLING_GRAM" name="Oxford spelling of 'gram' (not 'gramme')">
134
+ <rule><!-- nouns. Nouns and adjectives have separate rules to prevent incorrect suggestions for incorrect adjectives such as '5-grammes'. -->
135
+ <pattern>
136
+ <token regexp="yes">(yotta|zetta|exa|peta|tera|giga|mega|kilo|hecto|deca|deci|centi|milli|micro|nano|pico|femto|atto|zepto|yocto)?grammes?<exception postag="NNP"/></token>
137
+ </pattern>
138
+ <message>Oxford Manual of Style, 2002, gives 'gram' as the preferred spelling of these: gram, kilogram, and other units of measurement. Also, UK Weights and Measures Act 1985, section 92 shows that both 'gram' and 'gramme' are permitted in British English, and this spelling is applicable to other units that are compounds of 'gram'. Use <suggestion><match no="1" regexp_match="gramme" regexp_replace="gram"/></suggestion>.</message>
139
+ <url>http://www.legislation.gov.uk/ukpga/1985/72/section/92</url>
140
+ <short>Oxford spelling: gram, not gramme</short>
141
+ <example correction="milligrams">Use 3 <marker>milligrammes</marker> of surfactant.</example>
142
+ <example>Use 3 <marker>milligrams</marker> of surfactant.</example>
143
+ <example>The television <marker>programme</marker> is scheduled for 17:00.</example>
144
+ <example>If the distance is less than 2 <marker>millimeters</marker>, ...</example>
145
+ <example>A <marker>6-gramme</marker> force is sufficient.</example>
146
+ <example correction="gram">The weight must be less than 1 <marker>gramme</marker>.</example>
147
+ <example correction="kilograms">The weight must be more than 20 <marker>kilogrammes</marker>.</example>
148
+ <example correction="yottagram">One <marker>yottagramme</marker> is a lotta grams!</example>
149
+ <example correction="Centigrams">'<marker>Centigrammes</marker>' is an alternative spelling of 'centigrams'.</example>
150
+ <example correction="KILOgrams">Add 2 <marker>KILOgrammes</marker> of the powder.</example><!-- The default spelling rules find this non-standard typography. -->
151
+ <example type="triggers_error">Did you read "<marker>The Teragramme Terror from Tangiers</marker>"? I think it's a good book.</example>
152
+ </rule>
153
+ <rule><!-- adjectives -->
154
+ <pattern>
155
+ <token regexp="yes">([0-9]+-)(yotta|zetta|exa|peta|tera|giga|mega|kilo|hecto|deca|deci|centi|milli|micro|nano|pico|femto|atto|zepto|yocto)?gramme<exception postag="NNP"/></token>
156
+ </pattern>
157
+ <message>Oxford Manual of Style, 2002, gives 'gram' as the preferred spelling of these: gram, kilogram, and other units of measurement. Also, UK Weights and Measures Act 1985, section 92 shows that both 'gram' and 'gramme' are permitted in British English, and this spelling is applicable to other units that are compounds of 'gram'. Use <suggestion><match no="1" regexp_match="gramme" regexp_replace="gram"/></suggestion>.</message>
158
+ <url>http://www.legislation.gov.uk/ukpga/1985/72/section/92</url>
159
+ <short>Oxford spelling: 2-gram, not 2-gramme</short>
160
+ <example correction="6-gram">A <marker>6-gramme</marker> force is sufficient.</example>
161
+ <example>A <marker>6-gram</marker> force is sufficient.</example>
162
+ <example>Use a <marker>five-kilogramme</marker> weight.</example><!-- TODO -->
163
+ <example correction="10-microgram">A <marker>10-microgramme</marker> difference is not sufficient.</example>
164
+ <example correction="5-yoctogram">A <marker>5-yoctogramme</marker> error is not important.</example>
165
+ </rule>
166
+ </rulegroup>
167
+ <!-- <rulegroup id="OXFORD_SPELLING_IZE" name="Oxford spelling of 'iz' (not 'is')">
168
+ Created by Tiago F. Santos, based on the coherency list created by Mike Unwalla, 2018-11-15
169
+ MFU removed 2019-05-02. Refer to https://forum.languagetool.org/t/remove-oxford-spelling-ize/3805
170
+ -->
171
+
172
+ <rulegroup id="OXFORD_SPELLING_Z_NOT_S" name="Oxford spelling is/iz">
173
+ <!-- For general notes and design decisions, refer to OXFORD_SPELLING_ISE_VERBS. Rules developed by Mike Unwalla. -->
174
+ <!-- Not uppercase: https://github.com/languagetool-org/languagetool/issues/1292 -->
175
+ <!-- No suggestions: https://github.com/languagetool-org/languagetool/issues/2764 -->
176
+ <url>https://quillbot.com/blog/category/uk-vs-us/</url>
177
+ <antipattern><!-- Dans l'organisation de ces autonomies... -->
178
+ <token>l</token>
179
+ <token spacebefore="no" regexp="yes">&apostrophe;</token>
180
+ <token spacebefore="no" postag_regexp="yes" postag="NN.*"/>
181
+ </antipattern>
182
+ <antipattern><!-- If the token before or the token after is a proper noun, then the target token is probably part of a proper name, and not a common noun. Example: Organisation of Islamic Cooperation. -->
183
+ <token postag_regexp="yes" postag="NNPS?"/>
184
+ <token postag_regexp="yes" postag="NNPS?"/>
185
+ </antipattern>
186
+ <rule><!-- id="OXFORD_SPELLING_NOUNS" name="Oxford spelling of nouns (~iz not ~is), **but not CAPITALISATIONS of nouns**"> Always ~isement not ~izement. Always ~ision, not ~izion. -->
187
+ <!-- For the suggestion, regexp_match and regexp_replace are sufficient. The token finds an ~is noun that has a singular or plural postag. If the ~is noun has a postag, then the ~iz noun should have that postag. (Possibly, the pairs of words are used differently in different locales, and thus they have different postags.) -->
188
+ <pattern>
189
+ <token postag_regexp="yes" postag="NN(:UN?)?|NNS" inflected="yes" regexp="yes">([a-z]+?-?[a-z]+?)is(ation|er|ability)
190
+ <exception regexp="yes">(?-i)[A-Z-]+</exception>
191
+ <exception regexp="yes">advertisers?|merchandisers?</exception><!-- LT gives a spelling error for ~z, but without this exception, the rule finds the ~s word -->
192
+ </token>
193
+ </pattern>
194
+ <message suppress_misspelled="yes">Would you like to use the Oxford spelling <suggestion><match no="1" regexp_match="([a-z]+?-?[a-z]+?)is(ations?|ers?|ability|abilities)" regexp_replace="$1iz$2"/></suggestion>? The spelling '\1' is also correct.</message>
195
+ <short>Oxford spelling: nouns</short>
196
+ <!-- ~isation--><example correction="organization">The word '<marker>organisation</marker>' is not the Oxford spelling.</example>
197
+ <example correction="Organizations">The word '<marker>Organisations</marker>' is not the Oxford spelling.</example>
198
+ <example>The word '<marker>organization</marker>' is the Oxford spelling.</example>
199
+ <example>The word '<marker>organizations</marker>' is the Oxford spelling.</example>
200
+ <example correction="Americanization">'<marker>Americanisation</marker>' is NNP.</example>
201
+ <example correction="Americanizations">'<marker>Americanisations</marker>' is NNPS.</example>
202
+ <example>'<marker>ORGANISATION</marker>. All capitalised nouns are out of scope because the suggestion is ~ise.</example>
203
+ <example correction="naturalizations">Most of the surviving paperwork, up until 1986, for successful <marker>naturalisations</marker> is now held at The National Archives (www.nationalarchives.gov.uk/help-with-your-research/research-guides/naturalisation-british-citizenship/).</example>
204
+ <example correction="Demutualizations">'<marker>Demutualisations</marker>: LT gives a spelling warning for demutualizations. BUT LT also suggests the Oxford spelling although the suggestion uses suppress_misspelled="yes". Why?</example>
205
+ <example>These words are always spelled with ~isation: improvisation/improvisations</example>
206
+ <example correction="de-energization"><marker>de-energisation</marker></example>
207
+ <example>Dans <marker>l'organisation</marker> de ces autonomies, la Belgique a réalisé...</example>
208
+ <example>year=2009 |publisher=<marker>L'Organisation</marker> internationale de la Francophonie</example>
209
+ <example correction="de-energizations"><marker>de-energisations</marker> has no postag.</example>
210
+ <!--<example>Make sure that the regexp is correct. Always ~isation: catheterisations, componentisations, demonisations, depoliticisations, depressurisations, immortalisations, incentivisations, intellectualisations, legitimisations, lionisations, memorialisations, militarisations, neutralisations, nominalisations, parameterisations, particularisations, passivisations, photosensitisations, plagiarisations, productisations, professionalisations, proselytisations, repressurisations, satirisations, scandalisations, schematisations, sensualisations, sodomisations, spiritualisations, tenderisations, universalisations, vandalisations</example>--><!-- TODO: Add plural POS for these words. Are all the plurals standard BrE? -->
211
+ <example>'World Health Organization' uses ~z, but the '<marker>Organisation of Islamic Cooperation</marker>' uses ~s.</example>
212
+ <example type="triggers_error">For information about the <marker>Shanghai Cooperation Organisation</marker>, refer to http://eng.sectsco.org/about_sco/.</example>
213
+ <example type="triggers_error">File:<marker>Panneau de signalisation multilingue à Issers (Algérie).jpg</marker></example>
214
+ <!-- ~iser --> <example correction="modernizer">The word '<marker>moderniser</marker>' is not the Oxford spelling.</example>
215
+ <example correction="Modernizers">The word '<marker>Modernisers</marker>' is not the Oxford spelling.</example>
216
+ <example correction="Americanizer">The word '<marker>Americaniser</marker>' has the postag NNP (and NN). Thus, do not use an NNP exception.</example>
217
+ <example>The word '<marker>modernizer</marker>' is the Oxford spelling.</example>
218
+ <example>The word '<marker>Modernizers</marker>' is the Oxford spelling.</example>
219
+ <example>Make sure that the regexp is correct. These are all ~iser nouns: advertiser, advertisers, adviser, advisers, appraiser, appraisers, battlecruiser, battlecruisers, bruiser, bruisers, chastiser, chastisers, circumciser, circumcisers, compromiser, compromisers, curtain-raiser, curtain-raisers, despiser, despisers, deviser, devisers, disfranchiser, disfranchisers, disguiser, disguisers, dispraiser, dispraisers, enfranchiser, enfranchisers, exerciser, exercisers, franchiser, franchisers, fundraiser, fundraisers, hellraiser, hell-raiser, hellraisers, hell-raisers, improviser, improvisers, kaiser, kaisers, merchandiser, merchandisers, mortiser, mortisers, paralyser, paralysers, poiser, poisers, practiser, practisers, praiser, praisers, promiser, promisers, raiser, raisers, reappraiser, reappraisers, repriser, reprisers, reviser, revisers, riser, risers, surmiser, surmisers, surpriser, surprisers, upraiser, upraisers, upriser, uprisers</example>
220
+ <example>'<marker>MODERNISER</marker>. All capitalised nouns are out of scope because the suggestion is ~ise.</example>
221
+ <example>The <marker>Stratocruiser</marker> set a new standard for luxurious air travel (www.boeing.com/history/products/model-377-stratocruiser.page).</example>
222
+ <example type="triggers_error">The first Liquid only events were <marker>Liquidiser</marker> at Bristol Academy.</example>
223
+ <!-- ~isability--><example correction="magnetizability">The word '<marker>magnetisability</marker>' is not the Oxford spelling.</example>
224
+ <example correction="Magnetizability">The word '<marker>Magnetisability</marker>' is not the Oxford spelling.</example>
225
+ <!-- <example correction="Magnetizabilities">The word '<marker>Magnetisabilities</marker>' is not the Oxford spelling.</example> TODO. Find a plural example. -->
226
+ <example correction="polarizability">This effect (<marker>polarisability</marker>) is shown to be...</example>
227
+ <example>The word '<marker>magnetizability</marker>' is the Oxford spelling.</example>
228
+ <example>Refer to <marker>www.example.com/polarisability.html</marker>.</example>
229
+ <example>Make sure that the regexp is correct. These are all ~isability nouns: advisability, disability, disabilities, inadvisability</example>
230
+ <example>'<marker>MAGNETISABILITY</marker>. All capitalised nouns are out of scope because the suggestion is ~ise.</example>
231
+ </rule>
232
+ <rule><!-- id="OXFORD_SPELLING_ISE_VERBS" name="Oxford spelling of verbs (~ize not ~ise), **but not CAPITALISED verbs**"> ~yse verbs are not ~yze in BrE: https://www.lexico.com/grammar/ize-ise-or-yse -->
233
+ <pattern>
234
+ <token postag_regexp="yes" postag="VB.*" inflected="yes" regexp="yes">([a-z]+?-?[a-z]+?)ise
235
+ <exception regexp="yes">(?-i)[A-Z-]+</exception>
236
+ <exception inflected="yes" regexp="yes">advertise|arise|braise|chastise|merchandise|misadvise|noise[sd]?|prise|raise|uprise</exception><!-- suppress_misspelled does not work with these verbs. Aside: some z spellings are not verbs but are correct spellings: example 'braize' is a fish. -->
237
+ </token>
238
+ <!-- Remove uppercase from the rule: case_sensitive="yes" in the token does not work; (?-i)([a-zA-Z][a-z]+... in the regexp does not work. Use an exception. -->
239
+ </pattern>
240
+ <message suppress_misspelled="yes">Would you like to use the Oxford spelling <suggestion><match no="1" regexp_match="([a-z]+?-?[a-z]+?)is(e|es|ed|ing)" regexp_replace="$1iz$2" /></suggestion>? The spelling '\1' is also correct.</message><!-- Cannot use postag_regexp="yes" postag="(VB.*)" postag_replace="$1" because it causes the suggestion to be the same as the target token. -->
241
+ <short>Oxford spelling: ~ise verbs</short>
242
+ <example correction="organize">The verb '<marker>organise</marker>' is not the Oxford spelling.</example>
243
+ <example>The word '<marker>organize</marker>' is the Oxford spelling.</example>
244
+ <example correction="organizes">Who usually <marker>organises</marker> the meetings?</example>
245
+ <example correction="Organized"><marker>Organised</marker> the meeting? Ha!</example>
246
+ <example correction="organizing">Basic <marker>organising</marker> principles are...</example>
247
+ <example correction="de-energize"><marker>de-energise</marker></example>
248
+ <example correction="De-energizes"><marker>De-energises</marker></example>
249
+ <example correction="de-energized"><marker>de-energised</marker></example>
250
+ <example correction="de-energizing"><marker>de-energising</marker></example>
251
+ <example>The word '<marker>otherwise</marker>' is not a verb.</example>
252
+ <example>In tests, the words 'surprise' and 'Surprise' caused no warning, but <marker>SURPRISE</marker> and all its uppercase inflections caused a warning. This problem occurs with other verbs also. Solution: put all ~ise-only base verbs in an exception. [Keep this note for reference. Refer to the next example/comment.]</example>
253
+ <example><marker>CAPITALISED</marker> verbs are out of scope. In tests, for all verbs, the suggestion for the capitalised verb was the ~ise spelling.</example>
254
+ <example>The rule finds verbs that are only all lowercase or initial caps. Not: <marker>ORGANise</marker></example>
255
+ <example>All ~ise-only verbs are in an exception. As a fail-safe test, keep this list of inflections that previously caused incorrect warnings: alias [aliased], arise [arose], porpoise [aviation slang], trellis [VBZ = trellises]</example>
256
+ <example>These rare/obsolete ~ise-only verbs have no postag: annalise, bepraise, debruise, disseise, grandise, grise, hoise, marmalise, misprise, remise, re-rise, rerise, seise, sensibilise, unpromise, </example>
257
+ <example correction="recentralize"><marker>recentralise</marker> is found because 'recentralize' has a pos.</example>
258
+ <example>These verbs are always ~ise: abscise, abscised, abscises, abscising, advertise, advertised, advertises, advertising, advise, advised, advises, advising, affranchise, affranchised, affranchises, affranchising, alias, aliased, aliases, aliasing, appraise, appraised, appraises, appraising, arise, arose, arises, arising, braise, braised, braises, braising, bruise, bruised, bruises, bruising, chastise, chastised, chastises, chastising, circumcise, circumcised, circumcises, circumcising, comprise, comprised, comprises, comprising, compromise, compromised, compromises, compromising, counterpoise, counterpoised, counterpoises, counterpoising, cruise, cruised, cruises, cruising, demise, demised, demises, demising, despise, despised, despises, despising, devise, devised, devises, devising, disenfranchise, disenfranchised, disenfranchises, disenfranchising, disfranchise, disfranchised, disfranchises, disfranchising, disguise, disguised, disguises, disguising, dispraise, dispraised, dispraises, dispraising, enfranchise, enfranchised, enfranchises, enfranchising, equipoise, equipoised, equipoises, equipoising, excise, excised, excises, excising, exercise, exercised, exercises, exercising, franchise, franchised, franchises, franchising, fundraise, fundraised, fundraises, fundraising, improvise, improvised, improvises, improvising, incise, incised, incises, incising, liaise, liaised, liaises, liaising, merchandise, merchandised, merchandises, merchandising, misadvise, misadvised, misadvises, misadvising, misraise, misraised, misraises, misraising, mortise, mortised, mortises, mortising, noise, noised, noises, noising, outraise, outraised, outraises, outraising, overexercise, overexercised, overexercises, overexercising, overpraise, overpraised, overpraises, overpraising, overpromise, overpromised, overpromises, overpromising, paralyse, paralysed, paralyses, paralysing, poise, poised, poises, poising, porpoise, porpoised, porpoises, porpoising, practise, practised, practises, practising, praise, praised, praises, praising, premise, premised, premises, premising, previse, prevised, previses, prevising, prise, prised, prises, prising, promise, promised, promises, promising, raise, Raise (#4744), raised, raises, raising, readvertise, readvertised, readvertises, readvertising, readvise, readvised, readvises, readvising, reappraise, reappraised, reappraises, reappraising, rearise, rearised, rearises, rearising, reprise, reprised, reprises, reprising, repromise, repromised, repromises, repromising, reraise, reraised, reraises, reraising, re-raise, re-raised, re-raises, re-raising, revise, revised, revises, revising, rise, rose, rises, rising, supervise, supervised, supervises, supervising, surmise, surmised, surmises, surmising, surprise, surprised, surprises, surprising, televise, televised, televises, televising, trellis, trellised, trellises, trellising, underpraise, underpraised, underpraises, underpraising, upraise, upraised, upraises, upraising, uprise, uprose, uprises, uprising, wise, wised, wises, wising</example>
259
+ <example>Noise</example>
260
+ </rule>
261
+ <rule><!-- id="OXFORD_SPELLING_ADJECTIVES" name="Oxford spelling of adjectives (~iz not ~is), **but not adjectives in CAPITALS**"> ~isable, ~isational, ~ised, ~ising -->
262
+ <pattern>
263
+ <token postag="JJ" regexp="yes">([a-z]+?-?[a-z]+?)is(able|ational|ed|ing)
264
+ <exception regexp="yes">rais(ed|ing)</exception>
265
+ <exception regexp="yes">(?-i)[A-Z-]+</exception>
266
+ </token>
267
+ </pattern>
268
+ <message suppress_misspelled="yes">Would you like to use the Oxford spelling <suggestion><match no="1" regexp_match="([a-z]+?-?[a-z]+?)is(able|ational|ed|ing)" regexp_replace="$1iz$2"/></suggestion>? The spelling '\1' is also correct.</message>
269
+ <short>Oxford spelling: adjectives</short>
270
+ <example correction="magnetizable">The adjective '<marker>magnetisable</marker>' is not the Oxford spelling.</example>
271
+ <example correction="Magnetizable">The adjective '<marker>Magnetisable</marker>' is not the Oxford spelling.</example>
272
+ <example correction="organizational">Her <marker>organisational</marker> ability is good.</example>
273
+ <example correction="randomized">These <marker>randomised</marker> controlled trials are...</example>
274
+ <example correction="unappetizing">This food is <marker>unappetising</marker>.</example>
275
+ <example>The word '<marker>magnetizable</marker>' is the Oxford spelling.</example>
276
+ <example>'<marker>MAGNETISABLE</marker>. All capitalised adjectives are out of scope because the suggestion is ~is.</example>
277
+ <example>...as a parody of modern DJs' own soundbites and <marker>self-advertising</marker> pieces.</example>
278
+ <example>These words are always spelled with ~s (possibly some are AmE only): advisable, advised, advising, bruised, bruising, circumcised, circumcising, compromised, compromising, despisable, devised, devising, disenfranchised, disenfranchising, disguised, disguising, divisible, enfranchised, enfranchising, enterprising, excised, excising, exercisable, exercised, exercising, franchised, franchising, hair-raising, ill-advised, immunocompromised, immunocompromising, improvisational, improvised, improvising, inadvisable, incised, incising, indivisible, invisible, noncompromised, noncompromising, poised, poising, practised, practising, promised, promising, raisable, raised, raising, revised, revising, self-advertising, self-raising, self-rising, supervised, supervising, surprised, surprising, televised, televising, unadvertised, unadvisable, unadvised, unbruised, uncircumcised, uncompromised, uncompromising, undevised, undisguised, unenfranchised, unexcised, unexercised, unfranchised, unimprovised, unincised, unpoised, unpractised, unpromised, unraisable, unraised, unrevised, unsupervised, unsurprised, unsurprising, untelevised, well-advertised</example>
279
+ <example>For information about the <marker>Conference of Specialised Ministers</marker> refer to www.coe.int/en/web/cm/iguide-chapter6</example><!-- Refer to disambiguation.xml CONFERENCE_OF_SPECIALISED_MINISTERS -->
280
+ <example>I am also a Texan, Born and Raised.</example>
281
+ <example>This Raising Agent is contaminated.</example><!-- #5266 -->
282
+ <example>These Enterprising Young People are a boon to this country.</example><!-- #5266 -->
283
+ </rule>
284
+ <rule><!-- id="OXFORD_SPELLING_ADVERBS" name="Oxford spelling of adverbs (~iz not ~is), **but not adverbs in CAPITALS**"> ~isably, ~isationally) -->
285
+ <pattern>
286
+ <token postag="RB" regexp="yes">([a-z]+?-?[a-z]+?)is(ably|ationally)
287
+ <exception regexp="yes">(?-i)[A-Z-]+</exception>
288
+ </token>
289
+ </pattern>
290
+ <message suppress_misspelled="yes">Would you like to use the Oxford spelling <suggestion><match no="1" regexp_match="([a-z]+?-?[a-z]+?)is(ably|ationally)" regexp_replace="$1iz$2"/></suggestion>? The spelling '\1' is also correct.</message>
291
+ <short>Oxford spelling: adverbs</short>
292
+ <example correction="organizationally">The adverb '<marker>organisationally</marker>' is not the Oxford spelling.</example>
293
+ <example correction="Organizationally">The adverb '<marker>Organisationally</marker>' is not the Oxford spelling.</example>
294
+ <example>The word '<marker>organizationally</marker>' is the Oxford spelling.</example>
295
+ <example>Not an adverb in standard English: ...he came to an opening, choked with timbers and bars of iron; <marker>surmisably</marker> the front portal at present in disuse.</example>
296
+ <example>'<marker>ORGANISATIONALLY</marker>. All capitalised adjectives are out of scope because the suggestion is ~is.</example>
297
+ <example>These adverbs are always ~isably: advisably, inadvisably.</example>
298
+ </rule>
299
+ </rulegroup>
300
+
301
+ </category>
302
+ </rules>
@@ -0,0 +1,171 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <?xml-stylesheet type="text/xsl" href="../../../../../../../../../languagetool-core/src/main/resources/org/languagetool/rules/print.xsl" ?>
3
+ <?xml-stylesheet type="text/css" href="../../../../../../../../../languagetool-core/src/main/resources/org/languagetool/rules/rules.css"
4
+ title="Easy editing stylesheet" ?>
5
+ <!--
6
+ British English Grammar and Typo Rules for LanguageTool
7
+ See tagset.txt for the meaning of the POS tags
8
+ Copyright (C) 2012 Marcin Miłkowski (https://www.languagetool.org)
9
+
10
+ This library is free software; you can redistribute it and/or
11
+ modify it under the terms of the GNU Lesser General Public
12
+ License as published by the Free Software Foundation; either
13
+ version 2.1 of the License, or (at your option) any later version.
14
+
15
+ This library is distributed in the hope that it will be useful,
16
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
17
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18
+ Lesser General Public License for more details.
19
+
20
+ You should have received a copy of the GNU Lesser General Public
21
+ License along with this library; if not, write to the Free Software
22
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
23
+ USA
24
+ -->
25
+
26
+ <!DOCTYPE rules [
27
+ <!ENTITY hyphen "(?:[-‑])">
28
+
29
+ <!ENTITY ambiguous_date '
30
+ <token regexp="yes">0?[1-9]|1[0-2]</token>
31
+ <token>/</token>
32
+ <token regexp="yes">0?[1-9]|1[0-2]</token>
33
+ <token>/</token>
34
+ <token regexp="yes">\d\d\d\d</token>
35
+ '>
36
+ <!-- "7 October 2014" and "7th October 2014" -->
37
+ <!ENTITY date_dmy '
38
+ <token regexp="yes">\d\d?(th)?</token>
39
+ <token regexp="yes">&months;|&abbrevMonths;</token>
40
+ <token regexp="yes">\d\d\d\d</token>
41
+ '>
42
+ <!ENTITY date_dmy_skip '
43
+ <token regexp="yes">\d\d?</token>
44
+ <token regexp="yes">&months;|&abbrevMonths;</token>
45
+ <token regexp="yes" skip="-1">\d\d\d\d</token>
46
+ '>
47
+ <!-- "October 7, 2014" -->
48
+ <!ENTITY date_mdy '
49
+ <token regexp="yes">&months;|&abbrevMonths;</token>
50
+ <token regexp="yes">\d\d?</token>
51
+ <token>,</token>
52
+ <token regexp="yes">\d\d\d\d</token>
53
+ '>
54
+ <!ENTITY date_mdy_skip '
55
+ <token regexp="yes">&months;|&abbrevMonths;</token>
56
+ <token regexp="yes">\d\d?</token>
57
+ <token>,</token>
58
+ <token regexp="yes" skip="-1">\d\d\d\d</token>
59
+ '>
60
+ <!-- "31/10/2014" -->
61
+ <!ENTITY date_dmy_numbers '
62
+ <token regexp="yes">0?[1-9]|[12][0-9]|3[01]</token>
63
+ <token>/</token>
64
+ <token regexp="yes">0?[1-9]|1[0-2]</token>
65
+ <token>/</token>
66
+ <token regexp="yes">\d\d\d\d</token>
67
+ '>
68
+ <!ENTITY date_dmy_numbers_skip '
69
+ <token regexp="yes">0?[1-9]|[12][0-9]|3[01]</token>
70
+ <token>/</token>
71
+ <token regexp="yes">0?[1-9]|1[0-2]</token>
72
+ <token>/</token>
73
+ <token regexp="yes" skip="-1">\d\d\d\d</token>
74
+ '>
75
+ <!-- "10/31/2014" -->
76
+ <!ENTITY date_mdy_numbers '
77
+ <token regexp="yes">0?[1-9]|1[0-2]</token>
78
+ <token>/</token>
79
+ <token regexp="yes">0?[1-9]|[12][0-9]|3[01]</token>
80
+ <token>/</token>
81
+ <token regexp="yes">\d\d\d\d</token>
82
+ '>
83
+ <!ENTITY date_mdy_numbers_skip '
84
+ <token regexp="yes">0?[1-9]|1[0-2]</token>
85
+ <token>/</token>
86
+ <token regexp="yes">0?[1-9]|[12][0-9]|3[01]</token>
87
+ <token>/</token>
88
+ <token regexp="yes" skip="-1">\d\d\d\d</token>
89
+ '>
90
+ ]>
91
+
92
+ <rules lang="en-GB" xsi:noNamespaceSchemaLocation="../../../../../../../../../../languagetool-core/src/main/resources/org/languagetool/rules/rules.xsd"
93
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
94
+ <category id="SEMANTICS" name="Semantics" type="inconsistency">
95
+ <rulegroup id="DATE_FUTURE_VERB_PAST_US" name="Future date, but verb in past tense (UK)">
96
+ <rule> <!-- We have visited the client on 27/10/2040 -->
97
+ <pattern>
98
+ <token inflected="yes" postag="VBD?" postag_regexp="yes" skip="-1">have</token>
99
+ <token postag="VBN" skip="-1" chunk_re=".-VP">
100
+ <exception>scheduled</exception>
101
+ <exception regexp="yes">wed|sat</exception>
102
+ <exception scope='next' regexp='yes'>before|until|will</exception></token>
103
+ <marker> &date_dmy_numbers; </marker>
104
+ </pattern>
105
+ <filter class="org.languagetool.rules.en.FutureDateFilter" args="year:\7 month:\5 day:\3"/>
106
+ <message>The given date is in the future, but the verb is in past tense.</message>
107
+ <example correction="">We have visited the client on <marker>27/10/2040</marker>.</example>
108
+ <example correction="">I had already informed the customer on <marker>27/10/2040</marker>.</example>
109
+ <example>We have visited the client on <marker>27/10/2010</marker>.</example>
110
+ <example>I had already informed the customer on <marker>27/10/2010</marker>.</example>
111
+ <example>We will inform the client on 27/10/2010.</example>
112
+ <example>He promised to do it before 30/08/2020.</example>
113
+ <example>The data collected from 8/12/2019 to 8/29/2019 contained a lot of errors.</example><!-- XXX US standard style dates -->
114
+ </rule>
115
+ <rule> <!-- On 27/10/2040, we have visited the client -->
116
+ <pattern>
117
+ <token>
118
+ <exception regexp='yes'>before|until</exception></token>
119
+ <marker> &date_dmy_numbers_skip; </marker>
120
+ <token inflected="yes" postag="VBD?" postag_regexp="yes" skip="-1">have</token>
121
+ <token postag="VBN" skip="-1" chunk_re=".-VP">
122
+ <exception regexp="yes">wed|sat</exception>
123
+ </token>
124
+ </pattern>
125
+ <filter class="org.languagetool.rules.en.FutureDateFilter" args="year:\6 month:\4 day:\2"/>
126
+ <message>The given date is in the future, but the verb is in past tense.</message>
127
+ <example correction="">On <marker>27/10/2040</marker>, we have visited the client.</example>
128
+ <example correction="">On <marker>27/10/2040</marker>, I had already informed the customer.</example>
129
+ <example>On <marker>27/10/2010</marker>, we have visited the client.</example>
130
+ <example>On <marker>27/10/2010</marker>, I had already informed the customer.</example>
131
+ <example>On 27/10/2010, we will inform the client.</example>
132
+ <example>He promised to do it before 30/08/2020.</example>
133
+ </rule>
134
+ <rule> <!-- We visited the client on 27/10/2040 -->
135
+ <pattern>
136
+ <token postag="VBD" skip="-1" chunk_re=".-VP">
137
+ <exception scope='next' regexp='yes'>before|until|will</exception>
138
+ <exception regexp="yes">wed|sat</exception>
139
+ </token>
140
+ <marker> &date_dmy_numbers; </marker>
141
+ </pattern>
142
+ <filter class="org.languagetool.rules.en.FutureDateFilter" args="year:\6 month:\4 day:\2"/>
143
+ <message>The given date is in the future, but the verb is in past tense.</message>
144
+ <example correction="">We visited the client on <marker>27/10/2040</marker>.</example>
145
+ <example correction="">I already informed the customer on <marker>27/10/2040</marker>.</example>
146
+ <example>We visited the client on <marker>27/10/2010</marker>.</example>
147
+ <example>I already informed the customer on <marker>27/10/2010</marker>.</example>
148
+ <example>We will inform the client on 27/10/2010.</example>
149
+ <example>He promised to do it before 30/08/2020.</example>
150
+ </rule>
151
+ <rule> <!-- On 27/10/2040, we visited the client -->
152
+ <pattern>
153
+ <token>
154
+ <exception regexp='yes'>before|until</exception></token>
155
+ <marker> &date_dmy_numbers_skip; </marker>
156
+ <token postag="VBD" skip="-1" chunk_re=".-VP">
157
+ <exception regexp="yes">wed|sat</exception>
158
+ </token>
159
+ </pattern>
160
+ <filter class="org.languagetool.rules.en.FutureDateFilter" args="year:\6 month:\4 day:\2"/>
161
+ <message>The given date is in the future, but the verb is in past tense.</message>
162
+ <example correction="">On <marker>27/10/2040</marker>, we visited the client.</example>
163
+ <example correction="">On <marker>27/10/2040</marker>, I already informed the customer.</example>
164
+ <example>On <marker>27/10/2010</marker>, we visited the client.</example>
165
+ <example>On <marker>27/10/2010</marker>, I already informed the customer.</example>
166
+ <example>On 27/10/2010, we will inform the client.</example>
167
+ <example>He promised to do it before 30/08/2020.</example>
168
+ </rule>
169
+ </rulegroup>
170
+ </category>
171
+ </rules>
@@ -0,0 +1,5 @@
1
+ #Incorrect New Zealand words
2
+ #(c) 2012 Marcin Milkowski
3
+ #Licensed under LGPL
4
+ #http://en.wikipedia.org/wiki/Sidewalk
5
+ sidewalk=footpath