@duckduckgo/autoconsent 16.6.0 → 16.8.0

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.
@@ -7,7 +7,6 @@ export const DETECT_PATTERNS = [
7
7
  /only necessary cookies/gi, // "only necessary" is probably too broad
8
8
  /(?:by continuing.{0,100}cookie)|(?:cookie.{0,100}by continuing)/gi,
9
9
  /(?:by continuing.{0,100}privacy)|(?:privacy.{0,100}by continuing)/gi,
10
- /by clicking.{0,100}(?:accept|agree|allow)/gi,
11
10
  /we (?:use|serve)(?: optional)? cookies/gi,
12
11
  /we are using cookies/gi,
13
12
  /use of cookies/gi,
@@ -27,12 +26,8 @@ export const DETECT_PATTERNS = [
27
26
 
28
27
  // FR
29
28
  /utilisons.{0,100}des.{0,100}cookies/gi,
30
- /nous.{0,100}utilisons.{0,100}des/gi,
31
29
  /des.{0,100}cookies.{0,100}pour/gi,
32
- /des.{0,100}informations.{0,100}sur/gi,
33
30
  /retirer.{0,100}votre.{0,100}consentement/gi,
34
- /accéder.{0,100}à.{0,100}des/gi,
35
- /à.{0,100}des.{0,100}informations/gi,
36
31
  /et.{0,100}nos.{0,100}partenaires/gi,
37
32
  /publicités.{0,100}et.{0,100}du.{0,100}contenu/gi,
38
33
  /utilise.{0,100}des.{0,100}cookies/gi,
@@ -95,7 +90,6 @@ export const DETECT_PATTERNS = [
95
90
  /\b(hacemos|hace) uso de cookies\b/i,
96
91
  /\busa cookies de google\b/i,
97
92
  /acepta.{0,80} uso de cookies/i,
98
- /al hacer clic.{0,80}aceptar/i,
99
93
  /al utilizar nuestro sitio web.{0,80}cookie/i,
100
94
  /almacenar la información en un dispositivo y\/?o acceder a ella/i,
101
95
  /cookie.{0,30} utiliza/i,
@@ -105,7 +99,6 @@ export const DETECT_PATTERNS = [
105
99
  /navegando.{0,100}cookie/i,
106
100
  /nosotros y nuestros( \d+)? (socios|proveedores).{0,180} cookies/gi,
107
101
  /recopilamos y almacenamos datos de usted y de su dispositivo/gi,
108
- /si haces? clic.{0,20}acept/i,
109
102
  /utilizamos tecnolog[ií]as como las cookies/i,
110
103
 
111
104
  // Polish (PL)
@@ -165,440 +158,122 @@ export const DETECT_PATTERNS = [
165
158
  ];
166
159
 
167
160
  const REJECT_PATTERNS_ENGLISH = [
168
- // e.g. "i reject cookies", "reject all", "reject all cookies", "reject cookies", "deny all", "deny all cookies", "refuse", "refuse all", "refuse cookies", "refuse all cookies", "deny", "reject all and close", "deny all and close", "reject non-essential cookies", "reject all non-essential cookies and continue", "reject optional cookies", "reject additional cookies", "reject targeting cookies", "reject marketing cookies", "reject analytics cookies", "reject tracking cookies", "reject advertising cookies", "reject all and close", "deny all and close", "i reject all (except strictly necessary)"
169
- // note that "reject and subscribe" and "reject and pay" are excluded
170
- /^\s*(i)?\s*(reject|deny|refuse|decline|disable)\s*(all)?\s*(non-essential|optional|additional|targeting|analytics|marketing|unrequired|non-necessary|extra|tracking|advertising)?\s*(cookies)?\s*(\(?\s*except\s+(strictly\s+)?(necessary|essential)\s*\)?)?\s*$/is,
161
+ // e.g. "reject", "reject all", "reject all cookies", "deny all", "refuse cookies", "decline",
162
+ // "reject non-essential cookies", "reject unnecessary cookies", "reject all but necessary", "reject all and close"
163
+ // note that "reject and subscribe" and "reject and pay" are excluded via NEVER_MATCH_PATTERNS
164
+ /^\s*(no,?\s*)?(i\s+)?(reject|deny|refuse|decline|disable)\s*(all)?\s*(but|except)?\s*(non[- ]?essential|un(necessary|required)|optional|additional|targeting|analytics|marketing|non[- ]?necessary|extra|tracking|advertising|necessary|essential)?\s*(cookies)?\s*(and\s+close)?\s*$/is,
171
165
 
172
- // e.g. "i do not accept", "i do not accept cookies", "do not accept", "do not accept cookies"
173
- /^\s*(i)?\s*do\s+not\s+accept\s*(cookies)?\s*$/is,
166
+ // e.g. "i do not accept", "do not accept cookies"
167
+ /^\s*(i\s+)?do\s+not\s+accept\s*(cookies)?\s*$/is,
174
168
 
175
169
  // e.g. "continue without accepting", "continue without agreeing", "continue without agreeing →"
176
170
  /^\s*(continue|proceed|continue\s+browsing)\s+without\s+(accepting|agreeing|consent|cookies|tracking)(\s*→)?\s*$/is,
177
171
 
178
- // e.g. "strictly necessary cookies only", "essential cookies only", "required only", "use necessary cookies only", "essentials only"
179
- // note that "only" is required
180
- /^\s*(use|accept|allow|continue\s+with)?\s*(strictly)?\s*(necessary|essentials?|required)?\s*(cookies)?\s*only\s*$/is,
172
+ // essential/necessary/functional-only, e.g. "essential cookies only", "accept only essential cookies",
173
+ // "allow necessary cookies continue", "use essential cookies only", "functional only", "i confirm necessary"
174
+ // note that a necessary/essential/functional word is required
175
+ /^\s*(i\s+)?(want\s+to\s+)?(only\s+)?(use|accept|allow|keep|enable|choose|continue\s+with|i\s+confirm)?\s*(only\s+)?(strictly\s+)?(necessary|essential|essentials|functional|required|minimal)\s*(only\s+)?(cookies)?\s*(continue|only)?\s*$/is,
181
176
 
182
- // e.g. "allow essential cookies", "allow necessary", "allow essentials", "allow essentials only"
183
- // note that "essential" is required
184
- /^\s*(use|accept|allow|continue\s+with)?\s*(strictly)?\s*(necessary|essentials?|required)\s*(cookies)?\s*$/is,
177
+ // e.g. "do not sell or share my personal information", "opt out of sale ..." (CCPA)
178
+ /do\s+not\s+sell|opt\s+out\s+of\s+sale/is,
185
179
 
186
- // e.g. "accept only essential cookies", "use only necessary cookies", "allow only essential", "only essentials", "continue with only essential cookies"
187
- // note that "only" is required
188
- /^\s*(use|accept|allow|continue\s+with)?\s*only\s*(strictly)?\s*(necessary|essentials?|required)?\s*(cookies)?\s*$/is,
180
+ // e.g. "opt-out of sale/share or targeted advertising", "opt-out of advertising/social media cookies"
181
+ /^opt[ -]?out of /is,
189
182
 
190
- // e.g. "do not sell or share my personal information", "do not sell my personal information"
191
- // often used in CCPA
192
- /^\s*do\s+not\s+sell(\s+or\s+share)?\s*my\s*personal\s*info(rmation)?\s*$/is,
183
+ // e.g. "reject all except strictly necessary", "reject all (except necessary cookies)"
184
+ /except\s+(strictly\s+)?necessary/is,
193
185
 
194
- 'allow selection',
195
- 'disagree and close',
186
+ // e.g. "disagree", "i disagree", "disagree and close"
187
+ /^(i\s+)?disagree\s*(and\s+close)?$/i,
196
188
 
197
- // These are impactful, but look error-prone
198
- // // e.g. "disagree"
199
- /^(i)?\s*disagree\s*(and\s+close)?$/i,
200
- // // e.g. "i do not agree"
201
- // /^\s*(i\s+)?do\s+not\s+agree\s*$/i,
202
189
  'no',
203
- /^no,? thanks$/is,
190
+ /^no,? thank(s| you)$/is,
204
191
  /^opt[ -]out$/is,
192
+ 'dont enable',
193
+ 'withdraw consent',
194
+ 'i do not agree',
205
195
  ];
206
196
 
207
197
  const REJECT_PATTERNS_DUTCH = [
208
- 'weigeren',
209
- 'alles afwijzen',
210
- 'alleen noodzakelijke cookies',
211
- 'afwijzen',
212
- 'alles weigeren',
213
- 'cookies weigeren',
214
- 'alleen noodzakelijk',
215
- 'weiger',
216
- 'weiger cookies',
217
- 'selectie toestaan',
218
- 'doorgaan zonder te accepteren',
219
- 'alleen functionele cookies',
220
- 'alleen functioneel',
221
- 'alleen noodzakelijke',
222
- 'alleen essentiële cookies',
223
- 'functioneel',
224
- 'alle cookies verwerpen',
225
- 'doorgaan zonder akkoord te gaan',
226
- 'weiger alles',
227
- 'nee, bedankt',
228
- 'alle cookies weigeren',
229
- 'weiger alle cookies',
230
- 'alleen noodzakelijke cookies accepteren',
231
- 'alleen strikt noodzakelijk',
232
- 'ik weiger',
233
- 'optionele cookies weigeren',
234
- 'alle weigeren',
235
- 'accepteer alleen noodzakelijke cookies',
236
- 'alleen functionele cookies accepteren',
237
- 'enkel noodzakelijke cookies',
198
+ // weigeren / afwijzen / verwerpen (reject verbs, any position)
199
+ /weiger|afwijz|verwerp/is,
200
+
201
+ // "wijs (alles/ze) af" (reject verb with split particle)
202
+ /wijs\b.*\baf\b/is,
203
+
204
+ // "alleen/enkel/uitsluitend ... (noodzakelijk|functioneel|essentieel|...)"
205
+ /(^|\s)(alleen|enkel|uitsluitend)\s+.{0,20}(noodzakelijk|functione|essenti|vereiste|verplichte|strikt|minimale|basis|basic|standaard)/is,
206
+
207
+ // essential/necessary-only nouns
208
+ /^\s*(accepteer\s+|aanvaard\s+|gebruik\s+|sta\s+|ik wil\s+)?(alleen\s+|enkel\s+|uitsluitend\s+|strikt\s+)?(de\s+)?(noodzakelijke?|functionele?|functioneel|essentiële|essentieel|vereiste|verplichte|minimale|basiscookies|basis|standaard)\s*(cookies?)?\s*(accepteren|toestaan|aanvaarden)?\s*$/is,
209
+
210
+ // continue without accepting / consent
211
+ /(doorgaan|ga door|ga verder|verder)\s+.{0,15}(zonder|aanvaard)/is,
212
+
213
+ // "nee" refusals (but not "nee, sluiten" → acknowledge)
214
+ /^nee(,?\s+(bedankt|dank je|dankje|liever niet|liever geen cookies|geen persoonlijke cookies|geen cookies.*|weigeren?))?$/is,
215
+
238
216
  'niet accepteren',
239
- 'weiger niet-essentiële cookies',
240
- 'weiger niet-noodzakelijke cookies',
241
- 'wijs alles af',
242
- 'alle cookies afwijzen',
243
- 'alleen vereiste cookies',
244
- 'cookies afwijzen',
245
- 'doorgaan zonder accepteren',
246
- 'hier weigeren',
247
- 'weiger alle',
248
- 'aanvaard enkel essentiële cookies',
249
- 'aanvullende cookies weigeren',
250
- 'accepteren weigeren',
251
- 'alle afwijzen',
252
- 'alle niet functionele afwijzen',
253
- 'alle optionele weigeren',
254
- 'alleen noodzakelijke accepteren',
255
- 'alleen strikt noodzakelijke cookies',
256
- 'allen afwijzen',
257
- 'clear weigeren',
258
- 'enkel functioneel',
259
- 'enkel noodzakelijke cookies aanvaarden',
260
- 'functioneel altijd actief',
261
- 'nee, accepteer alleen de noodzakelijke',
262
- 'nee, geen cookies a.u.b.',
263
- 'nee, weiger cookies',
264
- 'nee, weigeren',
265
- 'niet-noodzakelijke cookies weigeren',
266
- 'optioneel afwijzen',
267
- 'tracking cookies weigeren',
268
- 'weigeren cookies',
269
- 'weigeren?',
270
- 'weigeren.',
271
- 'strikt noodzakelijk',
272
- 'weiger optionele cookies',
273
- 'noodzakelijke cookies',
274
- 'essentiële cookies',
275
- 'ga verder zonder aanvaarden',
276
- 'doorgaan zonder cookies',
277
- 'accepteer noodzakelijke cookies',
278
- 'noodzakelijke',
279
- 'indien je enkel technisch noodzakelijke cookies wenst te accepteren, klik dan hier',
280
- 'weiger',
281
- 'alleen de noodzakelijke cookies',
282
- 'alleen noodzakelijk',
283
- 'alleen verplichte cookies',
284
- 'ik wil alleen minimale cookies',
285
- 'doorgaan zonder te accepteren',
217
+ 'niet akkoord',
218
+ 'ik ga niet akkoord',
219
+ 'liever niet',
286
220
  'geen cookies toestaan',
287
221
  'liever geen cookies',
288
- 'nee, geen persoonlijke cookies',
289
- 'nee, liever geen cookies',
290
- 'ga door zonder te accepteren',
291
- 'verder zonder accepteren',
292
- 'essentiële accepteren',
293
- 'functionele cookies',
294
- 'strikt noodzakelijke cookies',
295
- 'alleen basic cookies',
296
- 'alleen basiscookies',
297
- 'alleen standaard cookies',
298
- 'alle cookies verwerpen',
299
- 'noodzakelijk',
300
- 'noodzakelijk cookies accepteren',
301
- 'noodzakelijke cookies accepteren',
302
- 'accepteer alleen noodzakelijk',
303
- 'enkel noodzakelijke toestaan',
304
- 'enkel strikt noodzakelijke cookies',
305
- 'ik wijs ze liever af',
306
- 'ik weiger cookies',
307
- 'ik weiger optionele cookies',
308
- 'weiger alle cookies',
309
- 'weiger alle niet-noodzakelijke cookies',
310
- 'weiger alle onnodige cookies',
311
- 'weiger alle optionele',
312
- 'weiger alles',
313
- 'weiger targeting en third party cookies.',
222
+ 'functioneel altijd actief',
314
223
  ];
315
224
 
316
225
  const REJECT_PATTERNS_FRENCH = [
317
- 'continuer sans accepter',
318
- 'tout refuser',
319
- 'refuser',
320
- 'refuser tous les cookies',
321
- 'non merci',
322
- 'interdire tous les cookies',
323
- 'je refuse',
324
- 'refuser tout',
325
- 'tout rejeter',
326
- 'refuser et continuer',
327
- 'rejeter',
328
- 'refuser les cookies',
329
- 'cookies nécessaires uniquement',
330
- 'seulement nécessaires',
331
- 'rejeter tout',
332
- 'refuser les cookies optionnels',
333
- 'je désactive les finalités non essentielles',
334
- 'refuser les cookies non nécessaires',
335
- 'rejeter tous les cookies',
336
- 'cookies essentiels uniquement',
337
- 'nécessaires uniquement',
338
- 'refuser les cookies non essentiels',
339
- 'tout refuser et fermer',
340
- 'tout refuser sauf les cookies techniques',
341
- 'continuer sans accepter x',
342
- 'je refuse lutilisation de cookies',
343
- 'non merci, seulement des cookies techniques',
344
- 'non, tout refuser',
345
- 'refuser tous les cookies non nécessaires',
346
- 'rejeter les cookies',
347
- 'uniquement les essentiels',
348
- 'refuser tous',
349
- 'accepter uniquement les nécessaires',
350
- 'allow anonymous analytics',
351
- 'autoriser les cookies essentiels uniquement',
352
- 'autoriser uniquement les nécessaires',
353
- 'cookies essentiels seulement',
354
- 'cookies nécessaires seulement',
355
- 'cookies techniques uniquement',
356
- 'je préfère les rejeter',
357
- 'je refuse :(',
358
- 'je refuse les cookies',
359
- 'je refuse tous les cookies',
360
- 'je refuse tout',
361
- 'ne pas accepter',
362
- 'non, accepter les nécessaires uniquement',
363
- 'refuser (sauf cookies nécessaires)',
364
- 'refuser ce cookie',
365
- 'refuser les coockies',
366
- 'refuser les cookies facultatifs',
367
- 'refuser tout, sauf les cookies techniques',
368
- 'refuser toutes',
369
- 'refuser toutes les options',
370
- 'rejeter la bannière',
371
- 'rejeter les cookies non essentiels',
372
- 'rejeter les cookies optionnels',
373
- 'rejeter tous les non fonctionnels',
374
- 'rejeter tout optionnel',
375
- 'tout refuser, sauf les cookies techniques',
376
- 'uniquement nécessaires',
377
- 'x continuer sans accepter',
378
- 'strictement nécessaires',
379
- 'utiliser uniquement les cookies nécessaires',
380
- 'cookies nécessaires',
381
- 'accepter uniquement les cookies essentiels',
382
- 'accepter les cookies nécessaires',
383
- 'uniquement les cookies nécessaires',
384
- 'autoriser uniquement les cookies essentiels',
385
- 'autoriser uniquement les cookies nécessaires',
386
- 'si vous ne souhaitez pas accepter les cookies à lexception des cookies techniquement nécessaires, veuillez cliquer ici',
387
- 'cookies strictement nécessaires',
388
- 'accepter les cookies strictement nécessaires',
389
- 'autoriser les cookies essentiels',
390
- 'non, merci, uniquement les cookies nécessaires',
391
- 'indispensable uniquement',
392
- 'uniquement autoriser les cookies essentiels',
393
- 'utiliser que les cookies nécessaires',
394
- 'uniquement les sdk nécessaires',
395
- 'uniquement nécessaire',
396
- 'utiliser uniquement les cookies fonctionnels',
397
- 'refus',
398
- 'refusez',
399
- 'naccepter que les cookies indispensables',
400
- 'naccepter que les cookies nécessaires',
401
- 'naccepter que les cookies techniques',
402
- 'nécessaires seulement',
403
- 'je naccepte rien',
226
+ // refuser / rejeter / interdire / décliner (reject verbs, any position)
227
+ // "refuser et s'abonner" / "refuser et payer" are excluded via NEVER_MATCH_PATTERNS
228
+ /(^|\s)(refus|rejet|rejeter|interdire|interdis|déclin|declin)/is,
229
+
230
+ // only necessary / essential / technical / functional
231
+ /(uniquement|seulement|indispensable|strictement nécessaire|que les cookies\s+(nécessaires|techniques|essentiels|indispensables|fonctionnels))/is,
232
+
233
+ // continue/proceed without accepting; refuse everything; disable purposes
234
+ /(sans accepter|ne pas accepter|je naccepte rien|je désactive)/is,
235
+
236
+ // "non" / "non, merci"
237
+ /^non(,?\s+merci\.?)?$/is,
404
238
  ];
405
239
 
406
240
  const REJECT_PATTERNS_GERMAN = [
407
- 'ablehnen',
408
- 'alle ablehnen',
409
- 'nur notwendige cookies',
410
- 'nur essenzielle cookies akzeptieren',
411
- 'nur notwendige cookies verwenden',
412
- 'nur technisch notwendige',
413
- 'nur essentielle cookies akzeptieren',
414
- 'alles ablehnen',
415
- 'nur notwendige',
416
- 'alle cookies ablehnen',
417
- 'weiter ohne einwilligung',
418
- 'mit diesem button wird der dialog geschlossen. seine funktionalität ist identisch mit der des buttons nur essenzielle cookies akzeptieren.',
419
- 'cookies ablehnen',
420
- 'optionale cookies ablehnen',
421
- 'nur erforderliche cookies',
422
- 'einwilligung ablehnen',
423
- 'nur erforderliche',
424
- 'nur notwendige cookies zulassen',
425
- 'nur funktionale cookies akzeptieren',
426
- 'nur notwendige cookies akzeptieren',
427
- 'nur notwendige technologien',
428
- 'verweigern',
429
- 'webanalyse ablehnen',
430
- 'weiter ohne zustimmung',
431
- 'optionale ablehnen',
432
- 'nur notwendige akzeptieren',
433
- 'nur funktionale cookies',
434
- 'mit diesem button wird der dialog geschlossen. seine funktionalität ist identisch mit der des buttons ablehnen.',
435
- 'nur notwendige cookies erlauben',
436
- 'zustimmung verweigern',
241
+ // "... ablehnen" / "ablehnen ..." (reject/decline). Exclude the settings-list phrase "einstell(ungen|en) oder ablehnen".
242
+ /^(?!einstell(ungen|en) oder ablehnen$).*ablehnen/is,
243
+
244
+ // verweigern / verweigere / verweigert (refuse)
245
+ /verweiger/is,
246
+
247
+ // essential/necessary/functional-only variants (accepting only necessary → reject)
248
+ /^\s*(nur|ausschließlich|lediglich|weiter\s+mit|mit|akzeptiere?n?|unbedingt|es\s+werden\s+nur)?\s*(technisch\s+)?(notwendige?[nrs]?|essenzielle?[nrs]?|essentielle?[nrs]?|erforderliche?[nrs]?|funktionale?[nrs]?|funktionelle?[nrs]?|wesentliche?[nrs]?)\s*(cookies?|technologien|funktionscookies|dienste)?\s*(akzeptieren|erlauben|zulassen|verwenden|annehmen|setzen|speichern|zustimmen|auswählen)?\.?\s*$/is,
249
+
250
+ // continue without consent
251
+ /(^|\s)(ohne\s+(einwilligung|zustimmung|einverständnis|annahme)|(weiter|fortfahren)\s+ohne)/is,
252
+
253
+ // negations / refusals not covered by the regexes above
437
254
  'nein, danke',
438
- 'nur erforderliche cookies akzeptieren',
439
- 'zusätzliche cookies ablehnen',
440
- 'ablehnen und nur essenzielle cookies akzeptieren',
441
- 'nicht erforderliche ablehnen',
442
- 'nicht essenzielle cookies daten ablehnen',
443
- 'nur technisch notwendige cookies',
444
- 'nur technisch notwendige cookies akzeptieren',
445
- 'ablehnen speichern',
446
- 'alle funktionen ablehnen',
447
- 'alle optionalen cookies ablehnen',
448
- 'alles verweigern',
449
- 'mit erforderlichen einstellungen fortfahren',
450
- 'nicht notwendige ablehnen',
451
- 'notwendige cookies akzeptieren',
452
- 'nur erforderliche technologien',
453
- 'nur essenzielle cookies',
454
- 'nur essenzielle cookies erlauben',
455
- 'technisch nicht notwendige cookies ablehnen',
456
- 'tippen sie zum ablehnen bitte hier',
457
- 'ablehnen deny',
458
- 'fortfahren ohne zu akzeptieren',
459
- 'nur erforderliche akzeptieren',
460
- 'nur notwendige erlauben',
461
- 'ablehnen ...nur technisch notwendige cookies verwendet werden',
462
- 'ablehnen (außer notwendige cookies)',
463
- 'ablehnen und fortfahren',
464
- 'ablehnen und schließen',
465
- 'ablehnen: nur grundfunktionen',
466
- 'akzeptieren nur notwendige cookies',
467
- 'alle ablehnen (außer notwendige cookies)',
468
- 'alle nicht essenziellen cookies ablehnen',
469
- 'alle nicht notwendigen cookies ablehnen',
470
- 'alle optionale ablehnen',
471
- 'alle optionalen ablehnen',
472
- 'alle verweigern',
473
- 'analyse cookies ablehnen',
474
- 'cookie einstellungenablehnen',
475
- 'erforderliche cookies akzeptieren',
476
- 'erforderliche cookies zulassen',
477
- 'externe inhalte ablehnen',
478
- 'mit diesem button wird der dialog geschlossen. seine funktionalität ist identisch mit der des buttons ablehnen und nur essenzielle cookies akzeptieren.',
479
- 'mit diesem button wird der dialog geschlossen. seine funktionalität ist identisch mit der des buttons nicht-essenzielle cookies verweigern.',
480
- 'mit diesem button wird der dialog geschlossen. seine funktionalität ist identisch mit der des buttons nur essenzielle akzeptieren.',
481
- 'mit erforderlichen cookies fortfahren',
482
- 'mit notwendigen fortfahren',
483
255
  'nein, bitte nicht',
484
256
  'nein, ich stimme nicht zu',
485
- 'nicht funktionale cookies ablehnen',
486
- 'nicht notwendige cookies ablehnen',
487
- 'nicht-essenzielle cookies ablehnen',
488
- 'nicht-essenzielle cookies verweigern',
489
- 'notwendige cookies zulassen',
490
- 'nur erforderliche cookies erlauben',
491
- 'nur erforderliche cookies setzen',
492
- 'nur erforderliche cookies verwenden',
493
- 'nur essenzielle akzeptieren',
494
- 'nur notwendige cookies annehmen',
495
- 'nur notwendige cookies speichern',
496
- 'nur notwendige cookies verwenden.',
497
- 'nur notwendige funktionscookies akzeptieren',
498
- 'nur notwendigen cookies zustimmen',
499
- 'nur notwendiges akzeptieren',
500
- 'nur wesentliche cookies annehmen',
501
- 'opt. cookies ablehnen',
502
- 'optionale dienste ablehnen',
503
- 'optionale tools ablehnen',
504
- 'sie alle cookies ablehnen',
505
- 'technisch notwendige annehmen',
506
- 'nur essentielle cookies',
507
- 'nur essentielle',
508
- 'nur funktionale akzeptieren',
509
- 'nur technisch notwendige akzeptieren',
510
- 'nur technisch notwendige daten und cookies ...',
511
- 'nur technisch notwendige zulassen',
512
- 'nur wesentliche',
513
- 'ohne einverständnis fortfahren',
514
- 'ohne einwilligung',
515
- 'ohne zustimmung fortfahren',
516
- 'ohne zustimmung weiter',
517
- 'weiter mit essentiellen cookies',
518
- 'weiter ohne annahme',
519
- 'weiter ohne statistische analyse-cookies',
520
- 'weiter ohne statistische cookies',
521
- 'wesentliche cookies',
522
- 'fortfahren ohne zustimmung',
257
+ 'nicht zustimmen',
258
+ 'nicht einverstanden',
523
259
  'ich lehne ab',
524
- 'nicht technische cookies ablehnen',
260
+ 'widerrufen',
261
+ 'mit erforderlichen einstellungen fortfahren',
262
+ 'mit erforderlichen cookies fortfahren',
263
+ 'mit notwendigen fortfahren',
525
264
  ];
526
265
 
527
266
  const REJECT_PATTERNS_ITALIAN = [
528
- 'rifiuta',
529
- 'rifiuta cookies',
530
- 'rifiuta i cookie',
531
- 'rifiuta i cookies',
532
- 'rifiuta tutti i cookie',
533
- 'rifiuta tutti i cookies',
534
- 'rifiuta cookie non necessari',
535
- 'rifiuta i cookie non tecnici',
536
- 'rifiuta non necessari',
537
- 'rifiuta tutto',
538
- 'rifiuta tutti',
539
- 'rifiuta e chiudi',
540
- 'chiudi rifiuta tutti i cookie',
541
- 'chiudi e rifiuta tutti i cookie',
542
- 'chiudi e rifiuta tutto',
543
- 'nega',
544
- 'nega tutti',
545
- 'negare',
267
+ // rifiuta / rifiutare / rifiuto / nega / negare / blocca (reject verbs)
268
+ /(^|\s)(rifiut|neg(a|are|hi)|blocca i cookie)/is,
269
+
270
+ // accept/use only necessary / essential / technical
271
+ /^\s*(accetta|accettare|usa|installa|consenti|chiudi e prosegui( solo con)?)?\s*(solo|soltanto|unicamente)?\s*(i\s+|gli\s+)?(cookies?\s+)?(strettamente\s+)?(necessari|necessary|essenziali|tecnici|di navigazione)\s*(necessari|tecnici|essenziali)?\s*$/is,
272
+
273
+ // continue without accepting
274
+ /continua(re)? senza accettare/is,
275
+
546
276
  'non accetto',
547
- 'accetta solo i necessari',
548
- 'usa solo i cookie necessari',
549
- 'accetta solo necessari',
550
- 'solo necessari',
551
- 'continua senza accettare x',
552
- 'continua senza accettare',
553
- 'rifiutare',
554
- 'rifiutare i cookie',
555
- 'rifiutare tutti i cookie',
556
- 'rifiutare tutti',
557
- 'rifiutare e continuare',
558
- 'installa solo i cookie strettamente necessari',
559
- 'solo cookies tecnici',
560
- 'accetta necessari',
561
- 'solo cookie tecnici',
562
- 'solo cookie necessari',
563
- 'strettamente necessari',
564
- 'tecnici',
565
- 'accetta solo cookie di navigazione',
566
- 'chiudi e prosegui solo con i cookies tecnici necessari',
567
- 'consenti solo i cookie tecnici',
568
- 'solo cookie essenziali',
569
- 'blocca i cookie non essenziali',
570
- 'accetta i cookie necessari',
571
- 'accetta solo cookie tecnici',
572
- 'accetta solo i cookie essenziali',
573
- 'accetta solo i cookie necessari',
574
- 'accetta solo i necessary',
575
- 'accetta i cookie essenziali',
576
- 'accetta cookie tecnici',
577
- 'necessari',
578
- 'usa solo i cookie tecnici',
579
- 'usa solo i necessari',
580
- 'rifiuto',
581
- 'essenziali',
582
- 'accetta cookie essenziali',
583
- 'accetta cookie necessari',
584
- 'accetta solo cookie essenziali',
585
- 'accetta solo cookie necessari',
586
- 'rifiuta cookie non necessari',
587
- 'rifiuta cookie non essenziali',
588
- 'rifiuta i cookie non necessari',
589
- 'rifiuta i cookie non essenziali',
590
- 'rifiuta tutti i cookie e chiudi',
591
- 'rifiuta tutto e chiudi',
592
- 'rifiuta tutti i cookie chiudi',
593
- 'continuare senza accettare',
594
- 'rifiutare cookies',
595
- 'rifiutare i cookies',
596
- 'rifiutare non necessari',
597
- 'rifiutare tutto',
598
- 'rifiutare e chiudere',
599
- 'solo essenziali',
600
- 'solo tecnici',
601
- 'negare tutti',
602
277
  ];
603
278
 
604
279
  const REJECT_PATTERNS_BRAZILIAN_PORTUGUESE = [
@@ -622,280 +297,72 @@ const REJECT_PATTERNS_BRAZILIAN_PORTUGUESE = [
622
297
  ];
623
298
 
624
299
  const REJECT_PATTERNS_SPANISH = [
625
- 'rechazar',
626
- 'rechazar todo',
627
- 'rechazar todas',
628
- 'denegar',
629
- 'rechazar cookies',
630
- 'rechazarlas todas',
631
- 'no acepto',
632
- 'rechazar todas las cookies',
633
- 'rechazar y cerrar',
634
- 'denegar todas',
635
- 'solo necesarias',
636
- 'rechazar cookies opcionales',
637
- 'rechazar opcionales',
638
- 'cookies estrictamente necesarias',
639
- 'aceptar sólo necesarias',
640
- 'continuar sin aceptar',
641
- 'denegar todo',
642
- 'clear rechazar cookies',
643
- 'configurar rechazar cookies',
644
- 'denegar cookies',
645
- 'rechazar y continuar',
646
- 'rechazar las cookies',
647
- 'clear rechazar',
648
- 'denegar todas las cookies',
649
- 'rechazar cookies no esenciales',
650
- 'rechazarlas',
651
- 'no, no acepto',
652
- 'permitir sólo necesarias',
653
- 'rechazar cookies adicionales',
654
- 'rechazar cookies analíticas',
655
- 'rechazar no necesarias',
656
- 'rechazar opcional',
657
- 'rechazar todo lo opcional',
658
- 'solo cookies estrictamente necesarias',
659
- 'solo esenciales',
660
- 'x rechazar todas las cookies',
661
- 'solo usar cookies necesarias',
662
- 'solo cookies necesarias',
663
- 'declinar',
664
- 'aceptar solo las cookies esenciales',
665
- 'necesarias',
666
- 'aceptar solo lo necesario',
667
- 'solo funcionales',
668
- 'declinar y cerrar',
669
- 'déclin',
670
- 'declina',
671
- 'declinar consentimiento',
672
- 'declinar todas',
673
- 'solo las cookies necesarias',
674
- 'només sutilitzen cookies quan és necessari',
675
- 'no, sólo las estrictamente necesarias',
676
- 'solo las necesarias',
300
+ // rechazar / denegar / declinar / negar (reject verbs, any position)
301
+ // "rechazar y pagar" / "rechazar y suscribirse" are excluded via NEVER_MATCH_PATTERNS
302
+ /(^|\s)(rechaz|recház|deneg|negar|declin)/is,
303
+
304
+ // accept/allow/use (only) necessary / essential / technical / functional / own
305
+ /^\s*(aceptar?|acepta|permitir|permite|usar|utilizar)?\s*(solo|sólo|només|únicamente)?\s*(las?\s+|los\s+)?(cookies?\s+)?(estrictamente\s+)?(necesari\w*|esencial\w*|técnic\w*|obligatori\w*|funcional\w*|propias)\s*$/is,
306
+
307
+ // "solo/sólo/no, sólo ... necessary/essential"
308
+ /^(no,?\s+)?(solo|sólo|només)\s+(usar\s+|las?\s+|los\s+|lo\s+)?.{0,20}(necesari|esencial|estrictamente)/is,
309
+
310
+ // refusals / opt-outs
311
+ /^(no acept|no consentir|no permitir|no estoy de acuerdo|no,? gracias|sin consentimiento|revocar consentimiento|continuar sin aceptar|prefiero rechazarlas|descartar todas)/is,
312
+
677
313
  'acceptar només les necessàries',
678
- 'acepta solo las necesarias',
679
- 'aceptar solo lo esencial',
680
- 'aceptar las obligatorias',
681
- 'permitir solo cookies técnicas',
682
- 'cookies técnicas',
683
- 'permitir solo cookies técnicas',
684
- 'usar solo cookies técnicas',
685
- 'aceptar solo las esenciales',
686
- 'aceptar cookies esenciales',
687
- 'aceptar esenciales',
688
- 'aceptar necesarias',
689
- 'aceptar necesario',
690
- 'aceptar solo cookies necesarias',
691
- 'aceptar solo funcionales',
692
- 'aceptar sólo las necesarias',
693
- 'descartar todas',
694
- 'negar todas',
695
- 'no aceptar',
696
- 'no consentir',
697
- 'no estoy de acuerdo',
698
- 'no gracias',
699
- 'no permitir',
700
- 'no, gracias',
701
- 'prefiero rechazarlas',
314
+ 'només sutilitzen cookies quan és necessari',
702
315
  'pulsa aquí para desactivar las cookies opcionales',
703
- /^rechazar cookies \(menos las necesarias\)$/,
704
- 'rechazar innecesarias',
705
- 'rechazar la política de cookies',
706
- 'rechazar todas cookies',
707
- 'rechazar todos',
708
- 'rechazarlas todas las cookies',
709
- 'rechazo las cookies',
710
- 'rechazo',
711
- 'recházalo',
712
- 'revocar consentimiento',
713
- 'sin consentimiento',
714
- 'solo cookies esenciales',
715
- 'solo las cookies esenciales',
716
- 'solo lo esencial',
717
- 'sólo cookies propias',
718
- 'sólo funcionales',
719
- 'sólo las cookies necesarias',
720
- 'usar solo las cookies esenciales',
721
- 'usar solo las necesarias',
722
316
  ];
723
317
 
724
318
  const REJECT_PATTERNS_SWEDISH = [
725
- 'avvisa',
726
- 'endast nödvändiga',
727
- 'avvisa alla',
728
- 'endast nödvändiga cookies',
729
- 'neka',
730
- 'neka alla',
731
- 'avvisa allt',
732
- 'avvisa alla cookies',
733
- 'tillåt bara nödvändiga cookies',
734
- 'bara nödvändiga',
735
- 'bara nödvändiga cookies',
736
- 'tillåt bara nödvändiga kakor',
737
- 'endast nödvändiga kakor',
738
- 'tillåt endast nödvändiga',
739
- 'fortsätt utan att acceptera',
740
- 'godkänn endast nödvändiga',
741
- 'acceptera endast nödvändiga',
742
- 'avvisa cookies',
743
- 'tillåt endast nödvändiga kakor',
744
- 'acceptera endast nödvändiga cookies',
745
- 'neka kakor',
746
- 'bara nödvändiga kakor',
747
- 'neka alla cookies',
748
- 'använd endast nödvändiga',
749
- 'avvisa alla utom nödvändiga',
750
- 'hantera eller avvisa',
751
- 'neka alla utom nödvändiga kakor',
752
- 'neka och stäng',
753
- 'tillåt bara nödvändiga tjänster',
754
- 'avvisa alla utom nödvändiga kakor',
755
- 'avvisa alla valfria',
756
- 'godkänn bara nödvändiga cookies',
757
- 'acceptera endast nödvändiga kakor',
758
- 'använd endast nödvändiga cookies',
759
- 'avvisa alla kakor',
760
- 'avvisa alla valmöjligheter',
761
- 'avvisa ej nödvändiga',
762
- 'avvisa icke-nödvändiga',
763
- 'förneka',
764
- 'godkänn bara nödvändiga',
765
- 'godkänn bara nödvändiga kakor',
766
- 'godkänn endast nödvändiga cookies',
767
- 'godkänn endast nödvändiga kakor',
768
- 'godta endast nödvändiga',
769
- 'jag godkänner bara nödvändiga kakor',
770
- 'nej, avvisa alla',
771
- 'nej, bara nödvändiga',
772
- 'nej, bara nödvändiga cookies',
773
- 'neka alla utom nödvändiga',
774
- 'neka alla.',
775
- 'neka cookies',
776
- 'neka samtliga',
777
- 'ok, endast nödvändiga',
778
- 'spara endast nödvändiga',
779
- 'stäng och avvisa',
780
- 'tillåt bara nödvändiga',
781
- 'godkänn nödvändiga kakor',
782
- 'godkänn nödvändiga',
783
- 'acceptera nödvändiga',
784
- 'strikt nödvändigt',
785
- 'tillåt nödvändiga',
786
- 'nödvändiga',
787
- 'enbart nödvändiga',
788
- 'jag godkänner nödvändiga kakor',
789
- 'acceptera nödvändiga kakor',
790
- 'godkänn enbart nödvändiga kakor',
791
- 'godkänn nödvändiga cookies',
792
- 'om du inte vill acceptera andra cookies än de som är tekniskt nödvändiga klickar du här',
793
- 'acceptera enbart nödvändiga',
794
- 'nödvändiga cookies',
795
- 'jag godkänner enbart att ni använder nödvändiga cookies',
796
- '+ strikt nödvändiga cookies',
797
- 'använd enbart nödvändiga cookies',
798
- 'enbart nödvändiga cookies',
799
- 'godkänn nödvändiga kakor stäng',
800
- 'ok till nödvändiga',
801
- 'strikt nödvändiga',
802
- 'fortsätt utan att godkänna',
803
- 'avböj alla cookies',
804
- 'jag accepterar endast grundläggande kakor',
805
- 'nej, jag avböjer',
319
+ // avvisa / avböj / neka / förneka (reject verbs)
320
+ /(^|\s)(avvisa|avböj|neka|nekar|förneka)/is,
321
+
322
+ // (allow/accept/use) only necessary cookies/kakor
323
+ /(bara|endast|enbart)\s+nödvändig/is,
324
+
325
+ // "godkänn/acceptera/använd/tillåt (bara/endast/enbart) nödvändiga (cookies/kakor)"
326
+ /^(ok,?\s+|nej,?\s+)?(jag\s+)?(godkänn\w*|godta|acceptera\w*|använd\w*|tillåt|spara)?\s*(bara|endast|enbart)?\s*(strikt\s+)?nödvändiga?t?( (cookies|kakor|tjänster))?\.?$/is,
327
+
328
+ // continue without accepting
329
+ /fortsätt utan att (acceptera|godkänna)/is,
330
+
331
+ /strikt nödvändig/is,
332
+
806
333
  'tillåt inte cookies',
334
+ 'jag accepterar endast grundläggande kakor',
807
335
  ];
808
336
 
809
- const REJECT_PATTERNS_CATALAN = [
810
- 'denega',
811
- 'denega-les',
812
- 'no accepto',
813
- 'no, gràcies',
814
- 'rebutja-ho tot',
815
- 'rebutja-les totes',
816
- 'rebutja-les',
817
- 'rebutjar cookies',
818
- 'rebutjar tot',
819
- 'rebutjar totes',
820
- 'rebutjar',
821
- 'rebutjar-les totes',
822
- 'refusar i tancar',
823
- ];
337
+ const REJECT_PATTERNS_CATALAN = [/(^|\s)rebutj/is, 'no accepto', 'no, gràcies'];
824
338
 
825
- const REJECT_PATTERNS_GALICIAN = ['rexeitar cookies', 'rexeitar opcionais', 'rexeitar optativas', 'rexeitar todas', 'rexeitar'];
339
+ const REJECT_PATTERNS_GALICIAN = [/(^|\s)rexeitar/is];
826
340
 
827
- const REJECT_PATTERNS_BASQUE = [
828
- /^(denak? baztertu|ukatu guztiak)$/,
829
- 'baztertu cookie-ak',
830
- 'guztiak ukatu',
831
- 'ukatu cookieak',
832
- 'ukatu dena',
833
- /^ukatu guztiak \(cookie\)$/,
834
- 'ukatu',
835
- ];
341
+ const REJECT_PATTERNS_BASQUE = [/(^|\s)(baztertu|ukatu)/is];
836
342
 
837
343
  const REJECT_PATTERNS_PORTUGUESE = [/^aceitar apenas cookies essenciais\.$/];
838
344
 
839
345
  const REJECT_PATTERNS_CZECH = ['povolit pouze nezbytné cookie'];
840
346
 
841
347
  const REJECT_PATTERNS_POLISH = [
842
- // examples:
843
- // odrzuć (Reject)
844
- // odrzuć wszystkie (Reject all)
845
- // odrzuć wszystkie pliki cookie (Reject all cookies)
846
- /^(odrzuć|odrzucenie|odrzucam) ?(wszystkie|wszystko|wszystkich)?( pliki)?( cookies?)?.?$/s,
847
- /^(zaakceptuj )?tylko niezbędne$/,
848
- 'akceptuj niezbędne',
849
- 'akceptuj tylko niezbędne pliki cookie',
850
- 'akceptuj tylko niezbędne',
851
- 'akceptuj tylko wymagane',
852
- 'akceptuj wymagane',
853
- 'akceptuję niezbędne zgody',
854
- 'akceptuję wymagane',
855
- 'blokuj wszystkie',
856
- /^funkcjonalne pliki cookie \(wymagane\)$/,
857
- 'kontynuuj bez akceptacji plików cookie',
858
- 'kontynuuj bez akceptacji',
859
- 'kontynuuj bez akceptowania opcjonalnych cookie',
860
- 'kontynuuj bez akceptowania',
861
- 'kontynuuj bez wyrażania zgody',
862
- 'korzystaj wyłącznie z niezbędnych plików cookie',
863
- 'nie akceptuję',
864
- 'nie potwierdzam',
865
- 'nie wyrażaj zgody i zamknij',
866
- 'nie wyrażam zgody',
867
- 'nie zezwalaj',
868
- 'nie zgadzam się',
869
- 'nie',
870
- 'nie, dziękuję',
871
- 'nie, nie zgadzam się na pliki cookie',
872
- 'niezbędne pliki cookie',
348
+ // odrzuć / odrzucam / odmawiam / rezygnuję / blokuj wszystkie (reject verbs)
349
+ /odrzu(ć|cam|cenie|cać|canie|cić)|odmaw|odmowa|odmów|rezygnuj|blokuj wszystk/is,
350
+
351
+ // (accept) only necessary / required
352
+ /(^|\s)tylko\s+(bezwzględnie\s+)?(niezbędn\w*|wymagan\w*|konieczne)/is,
353
+ /(akceptuj|akceptuję|zaakceptuj|zatwierdź|potwierdzam|zezwól)\s+(tylko\s+)?(na\s+)?(niezbędn\w*|wymagan\w*|konieczne)/is,
354
+ /korzystaj wyłącznie z niezbędn/is,
355
+
356
+ // continue without accepting / consent
357
+ /kontynuuj bez (akceptacj|akceptowani|wyrażania zgody)/is,
358
+
359
+ // refusals
360
+ /nie (akceptuję|zgadzam|wyrażam zgody|wyrażaj zgody|zezwalaj|potwierdzam)/is,
361
+ /^nie(,?\s+(dziękuję|nie zgadzam.*))?$/is,
362
+
873
363
  'niezbędne',
874
- 'odmawiam',
875
- 'odmowa',
876
- 'odmów',
877
- 'odmówić',
878
- 'odrzucam i chcę dowiedzieć się więcej',
879
- /^odrzucam wszystkie \*$/,
880
- 'odrzucanie niepotrzebnych plików cookie',
881
- 'odrzucać',
882
- 'odrzuć nieistotne',
883
- 'odrzuć niewymagane',
884
- 'odrzuć opcjonalne pliki cookie',
885
- 'odrzuć opcjonalne',
886
- 'odrzuć wszystkie zgody',
887
- 'potwierdzam wymagane',
888
- 'rezygnuję',
889
- 'tylko bezwzględnie konieczne',
890
- 'tylko konieczne',
891
- 'tylko niezbędne pliki cookie',
892
- 'tylko wymagane pliki cookie',
893
- 'tylko wymagane',
894
- 'zaakceptuj niezbędne',
895
- 'zaakceptuj wymagane',
896
- 'zatwierdź tylko wymagane',
897
- 'zezwól na niezbędne',
898
- 'zezwól tylko na niezbędne',
364
+ 'niezbędne pliki cookie',
365
+ /^funkcjonalne pliki cookie \(wymagane\)$/,
899
366
  ];
900
367
 
901
368
  const REJECT_PATTERNS_RUSSIAN = ['принимать только необходимые файлы cookie'];
@@ -952,58 +419,44 @@ export const NEVER_MATCH_PATTERNS = [
952
419
  ];
953
420
 
954
421
  export const SETTINGS_PATTERNS = [
422
+ // Multilingual "open customization" patterns: a customization verb next to a
423
+ // cookie/preference/settings/options/details/purposes noun (both word orders).
424
+ // The negative lookahead avoids policy links and save/confirm/accept phrases (those are accept/acknowledge/other).
425
+ /^(?!.*\b(policy|policies|notice|statement|impressum|richtlinie|beleid|politique|política|polityk|speichern|guardar|opslaan|zapisz|enregistrer|sauvegarder|bevestig|bestätig|confirm|save|submit|akzeptier|accept|zaakcept)\b)(customi[sz]e|manage|adjust|configure|personali[sz]e|let me choose|edit|change|set|select|view|see|review|update|open|show|choose|anpassen|verwalten|konfigurieren|bearbeiten|öffnen|anzeigen|einblenden|festlegen|auswählen|wählen|aanpassen|beheren|instellen|wijzig\w*|personaliseren|personaliseer|kies|bekijk|toon|personnaliser|paramétrer|gérer|configurer|choisir|afficher|définir|modifier|configurar|personalizar|gestionar|administrar|ajustar|seleccionar|modificar|establecer|dostosuj|zarządzaj|personalizuj|ustaw\w*|zmień|pokaż|wybierz)\b.{0,20}(cookies?|preferences?|settings?|options?|choices?|controls?|details?|purposes?|services?|consent|einstellung\w*|optionen|präferenzen|einzelheiten|zwecke|dienste|datenschutz\w*|auswahl|voorkeur\w*|instelling\w*|opties|diensten|préférences|paramètres|réglages|choix|détails|finalités|témoins|preferencia\w*|opciones|ajustes|configuraci\w*|detalles|servicios|elección|preferencj\w*|ustawie\w*|opcje|szczegół\w*|cele|galetes)\b/is,
426
+ /^(?!.*\b(policy|policies|notice|statement|impressum|richtlinie|beleid|politique|política|polityk|speichern|guardar|opslaan|zapisz|enregistrer|sauvegarder|bevestig|bestätig|confirm|save|submit|akzeptier|accept|zaakcept)\b)(cookies?|preferences?|settings?|options?|choices?|controls?|details?|purposes?|services?|consent|einstellung\w*|optionen|präferenzen|einzelheiten|zwecke|dienste|datenschutz\w*|auswahl|voorkeur\w*|instelling\w*|opties|diensten|préférences|paramètres|réglages|choix|détails|finalités|témoins|preferencia\w*|opciones|ajustes|configuraci\w*|detalles|servicios|elección|preferencj\w*|ustawie\w*|opcje|szczegół\w*|cele|galetes)\b.{0,15}(customi[sz]e|manage|adjust|configure|personali[sz]e|let me choose|edit|change|set|select|view|see|review|update|open|show|choose|anpassen|verwalten|konfigurieren|bearbeiten|öffnen|anzeigen|einblenden|festlegen|auswählen|wählen|aanpassen|beheren|instellen|wijzig\w*|personaliseren|personaliseer|kies|bekijk|toon|personnaliser|paramétrer|gérer|configurer|choisir|afficher|définir|modifier|configurar|personalizar|gestionar|administrar|ajustar|seleccionar|modificar|establecer|dostosuj|zarządzaj|personalizuj|ustaw\w*|zmień|pokaż|wybierz)\b/is,
427
+
955
428
  'settings',
956
429
  'preferences',
957
430
  /customi(s|z)e/is,
958
- 'show details',
959
431
  'more options',
960
432
  /(manage|configure) (my|your) (preferences|choices|cookies)/is,
961
- 'manage choices',
962
433
  /(cookie )?preference center/is,
963
- 'change settings',
964
434
  'configure',
965
- 'change my preferences',
966
435
  'cookie manager',
967
436
  'cookie preference',
968
437
  'let me choose',
969
438
  'cookieconsent preferences',
970
439
  /privacy choices/is,
971
- /(privacy|cookie|custom) settings/is,
972
- /cookies? (settings|preferences|setting)/is,
440
+ /^(privacy|cookie|custom) settings$/is,
441
+ /^cookies? (settings|preferences|setting)$/is,
973
442
  /(manage|customize|customise|opt-out|edit).*(cookies|preferences|settings|options)/is,
974
443
  'cookie consent options',
975
444
  'privacy controls',
976
- 'show purposes',
977
445
  // German
978
446
  'einstellungen',
979
447
 
980
448
  // Spanish (ES)
981
449
  /^(configurar|configuración|administrar)$/,
982
450
  /^(gestionar|ver|establecer) preferencias$/,
983
- 'administrar cookies',
984
- 'administrar las cookies',
985
- 'administrar mis preferencias de cookies',
986
- 'administrar opciones',
987
- 'administrar preferencias',
988
- 'ajustar cookies',
989
- 'ajustes de cookies',
990
451
  'ajustes',
991
452
  'centro de preferencias',
992
453
  'configura',
993
454
  /^configuración( de( las)?)? cookies?( y servicios)?$/,
994
- 'configurar cookies',
995
- 'configurar las cookies',
996
- 'configurar mis preferencias',
997
- 'configurar preferencias',
998
- 'configurar tus preferencias aquí',
999
455
  /^configurar\.\.\.$/,
1000
456
  'configurarlas',
1001
457
  'detalles',
1002
- 'editar la configuración de cookies',
1003
458
  'gestiona tus preferencias',
1004
- 'gestionar configuración de privacidad',
1005
459
  /^gestionar ?(las?|mis)? ?(configuración|preferencias)?(( de)? cookies?)?$/,
1006
- 'gestionar opciones',
1007
460
  'gestión cookies',
1008
461
  'gestión de cookies',
1009
462
  'mis preferencias',
@@ -1012,15 +465,10 @@ export const SETTINGS_PATTERNS = [
1012
465
  'más opciones',
1013
466
  'no, ajustar',
1014
467
  'obtener más información y configuración',
1015
- 'opciones de cookies',
1016
468
  'opciones de gestión',
1017
469
  'panel de configuración de cookies',
1018
470
  'personalice',
1019
- 'personalizar cookies',
1020
- 'personalizar elección',
1021
- 'personalizar mis preferencias',
1022
471
  'personalizar',
1023
- 'preferencias de cookies',
1024
472
  'preferencias de privacidad',
1025
473
  'preferencias',
1026
474
  'quiero configurarlas',
@@ -1043,20 +491,42 @@ export const SETTINGS_PATTERNS = [
1043
491
 
1044
492
  // French (FR)
1045
493
  'paramétrage des cookies',
1046
- 'paramétrer les cookies',
1047
- 'paramétrer vos choix',
494
+ 'paramétrer',
1048
495
  'personnaliser',
496
+ 'paramètres',
497
+ 'préférences',
1049
498
  'réglages',
499
+ 'détails',
500
+ 'gestion des cookies',
501
+ /^gérer (les |mes )?cookies$/,
502
+ 'je choisis',
503
+ 'voir les préférences',
1050
504
 
1051
505
  // German (DE)
1052
- 'datenschutzeinstellungen',
506
+ 'abschnitt einzelheiten',
507
+ 'cookie-details',
508
+ /^datenschutz-?einstellungen$/,
509
+ 'cookie-einstellungen',
510
+ /^einstell(ungen|en) oder ablehnen$/,
511
+ 'auswählen',
512
+ /^einstellungen (anpassen|ansehen|verwalten|ändern)$/,
513
+ 'erweiterte einstellungen',
514
+ 'individuelle datenschutz-präferenzen',
515
+ 'individuelle datenschutzeinstellungen',
516
+ 'konfigurieren',
517
+ 'mehr optionen',
518
+ 'präferenzen',
1053
519
  'individuelle einstellungen',
1054
520
  'privatsphäre einstellungen',
1055
521
 
1056
522
  // Dutch (NL)
523
+ /^(aan|an)passen$/,
524
+ /^cookie[- ]instellingen$/,
1057
525
  'cookiestatement instellingen',
526
+ /^details (tonen|weergeven)$/,
1058
527
  'instellingen',
1059
- 'voorkeuren beheren',
528
+ 'meer opties',
529
+ 'zelf instellen',
1060
530
 
1061
531
  // Czech (CS)
1062
532
  'podrobné nastavení',
@@ -1070,7 +540,6 @@ export const SETTINGS_PATTERNS = [
1070
540
  /^(ustawienia|zmień ustawienia|zmiana ustawień|zarządzaj opcjami)$/,
1071
541
  'centrum preferencji',
1072
542
  /^chcę dokonać ustawień cookies\.$/,
1073
- 'dostosuj ustawienia',
1074
543
  'dostosuj wybór',
1075
544
  'edytuj ustawienia',
1076
545
  'konfiguracja zgód',
@@ -1078,19 +547,15 @@ export const SETTINGS_PATTERNS = [
1078
547
  'personalizacja',
1079
548
  'pokaż cele',
1080
549
  'pokaż szczegóły',
550
+ 'szczegóły',
1081
551
  'pozwól mi wybrać',
1082
- 'preferencje cookies',
1083
552
  /^przejdź do ustawień plików cookies\.$/,
1084
553
  'przejdź do ustawień prywatności',
1085
554
  'przejdź do ustawień',
1086
555
  'skonfiguruj',
1087
- 'ustaw preferencje',
1088
556
  'ustaw swoje wybory',
1089
557
  'ustawienia ciasteczek',
1090
- 'ustawienia dotyczące plików cookie i usług',
1091
- 'ustawienia preferencji',
1092
558
  'ustawienia prywatności',
1093
- 'ustawienia szczegółowe',
1094
559
  'ustawienia zaawansowane',
1095
560
  'ustawienia zgody',
1096
561
  /^ustawienia(ch)?( plików)? cookies?$/,
@@ -1098,11 +563,8 @@ export const SETTINGS_PATTERNS = [
1098
563
  'ustawień zaawansowanych',
1099
564
  'więcej opcji',
1100
565
  'więcej ustawień',
1101
- 'wybierz poszczególne cele',
1102
566
  /^wybierz, jakie pliki cookies chcesz zaakceptować\.$/,
1103
567
  'zaawansowane',
1104
- 'zarządzaj indywidualnymi preferencjami',
1105
- 'zarządzaj plikami cookie i dowiedz się więcej',
1106
568
  'zarządzaj zgodami dotyczącymi plików cookies',
1107
569
  'zarządzaj zgodami',
1108
570
  'zarządzania zgodami',
@@ -1122,33 +584,54 @@ export const SETTINGS_PATTERNS = [
1122
584
 
1123
585
  // Italian (IT)
1124
586
  'personalizza cookie',
587
+
588
+ // English (EN)
589
+ 'advanced settings',
590
+ 'consent settings',
591
+ /^details (anzeigen|zeigen|section)$/,
592
+ 'no, adjust',
593
+ 'personalize',
594
+ 'plus doptions',
595
+ 'privacy manager',
1125
596
  ];
1126
597
 
1127
598
  export const ACCEPT_PATTERNS = [
1128
- /^(accept|allow)( all)?( cookies)?$/is,
599
+ // EN accept/agree/allow/consent/enable (+ all/cookies/selection/continue/close/proceed...).
600
+ // The negative lookahead avoids essential-only/reject wording (those are reject).
601
+ /^(?!.*\b(essential|necessary|required|functional|minimal|reject|deny|refuse|decline|only|dismiss)\b)(?!.*all cookies continue)(yes,?\s+)?(i\s+)?(accept|agree|allow|consent|enable)(\s+(to\s+)?(all( cookies)?|cookies|selection|selected( cookies)?|everything|recommended( cookies| settings)?|optional( cookies)?|additional cookies|analytics cookies))?(\s+(and\s+)?(continue|close|proceed|save))?\s*$/is,
602
+ /^continue (and accept|using cookies|with (all|recommended cookies|cookies))$/is,
603
+
604
+ // DE accept verbs
605
+ /^(alle[sn]?\s+|allem\s+|ich\s+|cookies\s+|ausgewählte\s+|webanalyse\s+)?(cookies?\s+)?(akzeptieren|annehmen|zustimmen|zulassen|erlauben|einwilligen|aktivieren|auswählen)(\s+(und\s+)?(weiter|schließen))?\s*$/is,
606
+ /^((meine\s+)?auswahl|alle)\s+(bestätigen|akzeptieren|auswählen)$/is,
607
+ /^(alle[nm]?\s+)?(zustimmen|einverstanden|einwilligung|zustimmung)$/is,
608
+ /^ich (bin einverstanden|akzeptiere( alle)?|stimme zu)$/is,
609
+
610
+ // NL accept verbs
611
+ /^(ja,?\s+)?(alle[s]?\s+|ik\s+)?(cookies?\s+)?(accepteer|accepteren|toestaan|aanvaard|aanvaarden|ga akkoord|akkoord)(\s+(en\s+(sluiten|doorgaan|verdergaan)|cookies|alle))?\s*$/is,
612
+ /^(selectie (accepteren|toestaan)|accepteer (selectie|alle)|alle (toestaan|accepteren|aanvaarden)|ja, (dat is prima|prima|alles toestaan|accepteren|ik accepteer cookies|ik ga akkoord)|is goed)$/is,
613
+
614
+ // FR accept verbs
615
+ /^(oui,?\s+)?(je\s+)?(tout\s+)?(accepter|jaccepte|autoriser)(\s+(tout|tous les (cookies|témoins)|les (cookies|témoins)|la sélection|et (continuer|fermer|poursuivre)))?\s*$/is,
616
+ /^(oui, (jaccepte|je suis daccord)|jaccepte (les cookies|lutilisation de cookies)|accepter (continuer|et poursuivre)|continuer et accepter|fermer et accepter)$/is,
617
+
618
+ // ES/CA accept verbs
619
+ /^(sí,?\s+|si,?\s+)?(aceptar|acepta|permitir|permitirlas|consentir|estoy de acuerdo|de acuerdo|estic dacord)(\s+(todo|todas( las cookies)?|cookies|la selección|selección|y (cerrar|continuar|seguir( leyendo)?|leer gratis)))?\s*$/is,
620
+
621
+ // save / submit selection / preferences (accept semantics; acknowledge catches "guardar configuración/selección" first)
622
+ /^(save|store|submit|guardar|sauvegarder|zapisz|opslaan|bewaar)\b.{0,25}(preference|setting|selection|choice|mes choix|cookie|voorkeur|keuze|ustawien|zgod)/is,
623
+ /^((meine\s+)?auswahl|einstellungen|einwilligung|voorkeuren|instellingen|selectie|keuzes)\s+(speichern|opslaan)$/is,
624
+
1129
625
  /i (accept|allow)( all)?/is,
1130
626
  'yes',
1131
- /^(i )?agree$/is,
1132
- 'continue with all',
1133
- 'accept and continue',
1134
627
  /accept all above/is,
1135
- /^(accept|agree) and close/is,
1136
- 'accept continue',
1137
- 'agree proceed',
1138
- 'allow and continue',
1139
628
  'close and accept',
1140
629
  /accept all$/is,
1141
630
  'im ok with that',
1142
- 'accept optional cookies',
1143
-
1144
- /^alle (cookies )?akzeptieren$/is,
1145
631
 
1146
632
  // Spanish (ES)
1147
- /^(aceptar?|permitir) tod(o|as)$/,
1148
633
  /^acept(ar|o)( cookies)?$/,
1149
634
  /^acept(o|ar) todas las cookies$/,
1150
- 'acepta cookies',
1151
- 'acepta',
1152
635
  'aceptar cookies opcionales',
1153
636
  'aceptar gratis',
1154
637
  'aceptar las cookies',
@@ -1157,19 +640,10 @@ export const ACCEPT_PATTERNS = [
1157
640
  'aceptar todas y continuar',
1158
641
  'aceptar todo y cerrar',
1159
642
  /^aceptar y (continuar|seguir|navegar)( gratis)?$/,
1160
- 'aceptar y cerrar',
1161
643
  'aceptar y seguir navegando',
1162
644
  'aceptarlas todas',
1163
- 'consentir todo',
1164
- 'consentir',
1165
- 'de acuerdo y cerrar',
1166
- 'de acuerdo',
1167
- 'estoy de acuerdo',
645
+ 'guardar preferencias',
1168
646
  'ok, las acepto',
1169
- 'permitir cookies',
1170
- 'permitir todas las cookies',
1171
- 'permitir',
1172
- 'permitirlas todas',
1173
647
  /^s[íi], acepto todas las cookies$/,
1174
648
  /^s[íi], acepto$/,
1175
649
  /^s[íi], estoy de acuerdo$/,
@@ -1187,6 +661,7 @@ export const ACCEPT_PATTERNS = [
1187
661
  'acepta-les totes',
1188
662
  'permet-les totes',
1189
663
  'permetre totes les cookies',
664
+ 'permetre la selecció',
1190
665
 
1191
666
  // Basque (EU)
1192
667
  /^denak? onartu$/,
@@ -1200,20 +675,13 @@ export const ACCEPT_PATTERNS = [
1200
675
  'de acordo',
1201
676
 
1202
677
  // French (FR)
1203
- 'accepter et continuer',
1204
- 'accepter',
1205
- 'tout accepter',
678
+ /^accepter (tout|tous les cookies|fermer)$/,
1206
679
 
1207
680
  // German (DE)
1208
- 'akzeptieren schließen',
1209
- 'akzeptieren und weiter',
1210
- 'akzeptieren weiter',
1211
- 'akzeptieren',
1212
- 'annehmen',
1213
- 'ich stimme zu',
681
+ /^(alles akzeptieren|alle zulassen|auswahl erlauben|cookies zulassen|einverstanden|einwilligung|zustimmen|zustimmung)$/,
1214
682
 
1215
683
  // Dutch (NL)
1216
- 'accepteren',
684
+ /^(accepteer (alles|alle cookies)|alles (accepteren|toestaan)|alle cookies (accepteren|toestaan))$/,
1217
685
 
1218
686
  // Czech (CS)
1219
687
  'souhlasím',
@@ -1224,6 +692,7 @@ export const ACCEPT_PATTERNS = [
1224
692
  // akceptuj wszystkie pliki cookie (Accept all cookies)
1225
693
  /^(zaakceptuj|akceptuj[eę]|akceptuj) ?(wszystkie|wszystko)?( pliki)? ?(zgody|ciasteczka|cookies?)?$/,
1226
694
  'akceptowanie plików cookie',
695
+ 'akceptuj wybrane',
1227
696
  'akceptuj i zamknij',
1228
697
  'akceptuj wszystkie i przejdź do serwisu',
1229
698
  'akceptuję i przechodzę do serwisu',
@@ -1252,11 +721,15 @@ export const ACCEPT_PATTERNS = [
1252
721
  'zezwól na wszystkie cookies',
1253
722
  'zezwól na wszystkie pliki cookies',
1254
723
  'zezwól na wszystkie',
724
+ 'zezwól na wybór',
1255
725
  'zezwól',
1256
726
  'zgadzam się na wszystkie',
1257
727
  'zgadzam się',
1258
728
  'zgoda na wszystkie',
1259
729
  'zgoda',
730
+ 'zaakceptuj wybrane',
731
+ 'zezwól na wybrane',
732
+ 'zgoda na wybrane',
1260
733
 
1261
734
  // Russian (RU)
1262
735
  'принять все файлы cookie',
@@ -1271,65 +744,64 @@ export const ACCEPT_PATTERNS = [
1271
744
  ];
1272
745
 
1273
746
  export const ACKNOWLEDGE_PATTERNS = [
1274
- 'ok',
1275
- 'close',
747
+ // close / dismiss the banner/dialog/message (multilingual). The negative lookahead avoids
748
+ // accept/save phrases (e.g. "agree and close", "akkoord en sluiten", "speichern schließen").
749
+ /^(?!.*\b(accept\w*|accepter|accepteer|accepteren|agree|allow|akkoord|aanvaard\w*|zustimm\w*|annehm\w*|akzeptier\w*|aceptar|acepta|permit\w*|consent\w*|einverstanden|zezw\w*|zgadzam|zgoda|guardar|opslaan|enregistrer|speicher\w*|zapisz)\b)(x\s+|nee,?\s+)?(close|dismiss|schlie(ß|ss)en|sluiten|afsluiten|fermer|cerrar|tanca|beenden|masquer|zamknij)( (this|the|ce|le|el|de|des|het|la|een)?\s*(banner|bandeau|banier|bar|dialog|dialogue|window|okno|melding|message|notification|informa\w*|notificaci\w*|cookie\w*|bannière|rgpd|gdpr|hier|des cookies|de cookies|x))*\.?\s*$/is,
750
+
751
+ // "ok" / "okay" / "oké" (optionally followed by a short acknowledgement)
752
+ /^(ok|okay|oké|okey|k)([ .!,]*)(got it|verstanden|compris|rozumiem|thanks|gracias|ik begrijp( dat| het)?|continue to website|pour moi|fermer)?[ .!]*$/is,
753
+
754
+ // "understood" / "got it" / "that's ok" (multilingual)
755
+ /^(i understand|understood|got it|thats (ok|fine|okay)|alright|alles klar|in ordnung|verstanden|begrepen|jai compris|je comprends|compris|ik begrijp het|ik snap het|entendido|c(e)?st ok pour moi)[ !.,]*(merci|bedankt|dismiss this banner)?[ !.]*$/is,
756
+
757
+ // confirm
758
+ /^(confirm|bestätigen|bevestigen|confirmar|potwierdź)[ !.]*$/is,
759
+
760
+ // neutral "continue" without accept/reject wording
761
+ /^(continuer|doorgaan|ga verder)$/is,
762
+
1276
763
  'continue',
1277
764
  'x',
1278
765
  /^got it!?$/,
1279
- 'i understand',
1280
- 'dismiss',
1281
- 'okay',
1282
766
  'acknowledge',
1283
767
  /^close (banner|cookie notification)$/is,
1284
768
  /understood$/is,
1285
769
  'confirm my choices',
1286
770
 
771
+ // French (FR)
772
+ 'accepter fermer',
773
+
774
+ // German (DE)
775
+ 'akzeptieren schließen',
776
+ 'speichern schließen',
777
+
1287
778
  // Spanish (ES)
1288
779
  /^.?( lo)?(entendido|entiendo).?$/s,
1289
780
  'aceptar seleccionadas',
1290
- 'aceptar selección',
1291
- 'cerrar',
1292
- 'confirmar',
1293
781
  'continuar',
1294
782
  'guardar configuración',
1295
- 'guardar preferencias',
1296
783
  'guardar selección',
1297
784
  'guardar y cerrar',
1298
785
  'ir al contenido principal',
1299
- 'ok, gracias',
1300
- 'permitir la selección',
1301
786
  'seguir',
1302
787
  'vale',
1303
788
  '¡vamos!',
1304
789
 
1305
790
  // Catalan (CA)
1306
791
  'dacord',
1307
- 'permetre la selecció',
1308
792
 
1309
793
  // Polish (PL)
1310
- 'akceptuj wybrane',
1311
794
  'kontynuuj',
1312
795
  'ok, zrozumiałem',
1313
796
  /^ok.? rozumiem.?$/s,
1314
- 'potwierdzam wybrane',
1315
- 'potwierdzam',
1316
- 'potwierdź',
797
+
1317
798
  'rozumiem!',
1318
799
  'rozumiem',
1319
800
  'rozumiem, nie pokazuj więcej',
1320
801
  'w porządku!',
1321
802
  'w porządku',
1322
- 'zaakceptuj wybrane',
1323
803
  /^zamknij informację o( plikach)? cookies$/,
1324
- 'zamknij okno',
1325
- 'zamknij x',
1326
- 'zamknij',
1327
804
  'zapisz i zamknij',
1328
- 'zapisz ustawienia i zamknij',
1329
- 'zapisz ustawienia',
1330
- 'zezwól na wybrane',
1331
- 'zezwól na wybór',
1332
- 'zgoda na wybrane',
1333
805
 
1334
806
  // Russian (RU)
1335
807
  'понятно',