@scrabble-solver/scrabble-solver 2.12.4 → 2.13.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.
Files changed (44) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +4 -4
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/cache/eslint/.cache_8dgz12 +1 -1
  5. package/.next/cache/next-server.js.nft.json +1 -1
  6. package/.next/cache/webpack/client-production/0.pack +0 -0
  7. package/.next/cache/webpack/client-production/index.pack +0 -0
  8. package/.next/cache/webpack/edge-server-production/0.pack +0 -0
  9. package/.next/cache/webpack/edge-server-production/index.pack +0 -0
  10. package/.next/cache/webpack/server-production/0.pack +0 -0
  11. package/.next/cache/webpack/server-production/index.pack +0 -0
  12. package/.next/next-server.js.nft.json +1 -1
  13. package/.next/prerender-manifest.json +1 -1
  14. package/.next/routes-manifest.json +1 -1
  15. package/.next/server/chunks/277.js +126 -39
  16. package/.next/server/chunks/44.js +68 -19
  17. package/.next/server/chunks/865.js +16 -4
  18. package/.next/server/chunks/911.js +45 -1
  19. package/.next/server/middleware-build-manifest.js +1 -1
  20. package/.next/server/pages/404.html +1 -1
  21. package/.next/server/pages/404.js.nft.json +1 -1
  22. package/.next/server/pages/500.html +1 -1
  23. package/.next/server/pages/_app.js.nft.json +1 -1
  24. package/.next/server/pages/_document.js.nft.json +1 -1
  25. package/.next/server/pages/api/dictionary/[locale]/[word].js +48 -1
  26. package/.next/server/pages/api/solve.js +8 -4
  27. package/.next/server/pages/index.html +1 -1
  28. package/.next/server/pages/index.js +9 -9
  29. package/.next/server/pages/index.js.nft.json +1 -1
  30. package/.next/server/pages/index.json +1 -1
  31. package/.next/server/pages-manifest.json +2 -2
  32. package/.next/static/{8oRk1nUMQYFWmhu4SExQI → CltG6_MGtxzoDJ0EuX7kt}/_buildManifest.js +1 -1
  33. package/.next/static/chunks/pages/_app-9c8edd7786319b76.js +32 -0
  34. package/.next/static/chunks/pages/{index-82b2939158c7729f.js → index-f56eaa969a831c70.js} +1 -1
  35. package/.next/trace +51 -51
  36. package/package.json +9 -9
  37. package/src/i18n/constants.ts +12 -1
  38. package/src/i18n/i18n.ts +2 -0
  39. package/src/i18n/ro.json +70 -0
  40. package/src/icons/FlagRo.svg +5 -0
  41. package/src/icons/index.ts +1 -0
  42. package/src/lib/detectLocale.ts +10 -4
  43. package/.next/static/chunks/pages/_app-e7f3d1c9c09c8f91.js +0 -32
  44. /package/.next/static/{8oRk1nUMQYFWmhu4SExQI → CltG6_MGtxzoDJ0EuX7kt}/_ssgManifest.js +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scrabble-solver/scrabble-solver",
3
- "version": "2.12.4",
3
+ "version": "2.13.0",
4
4
  "description": "Scrabble Solver 2 - App",
5
5
  "engines": {
6
6
  "node": ">=16"
@@ -31,13 +31,13 @@
31
31
  "@floating-ui/react": "^0.22.3",
32
32
  "@kamilmielnik/trie": "^2.0.1",
33
33
  "@reduxjs/toolkit": "^1.9.3",
34
- "@scrabble-solver/configs": "^2.12.4",
35
- "@scrabble-solver/constants": "^2.12.4",
36
- "@scrabble-solver/dictionaries": "^2.12.4",
37
- "@scrabble-solver/logger": "^2.12.4",
38
- "@scrabble-solver/solver": "^2.12.4",
39
- "@scrabble-solver/types": "^2.12.4",
40
- "@scrabble-solver/word-definitions": "^2.12.4",
34
+ "@scrabble-solver/configs": "^2.13.0",
35
+ "@scrabble-solver/constants": "^2.13.0",
36
+ "@scrabble-solver/dictionaries": "^2.13.0",
37
+ "@scrabble-solver/logger": "^2.13.0",
38
+ "@scrabble-solver/solver": "^2.13.0",
39
+ "@scrabble-solver/types": "^2.13.0",
40
+ "@scrabble-solver/word-definitions": "^2.13.0",
41
41
  "classnames": "^2.3.2",
42
42
  "include-media": "^2.0.0",
43
43
  "include-media-query-builder": "^1.1.0",
@@ -74,5 +74,5 @@
74
74
  "sass": "^1.61.0",
75
75
  "workbox-webpack-plugin": "^6.5.4"
76
76
  },
77
- "gitHead": "b7af635998fc55dcfb05c009d856819550cb20d8"
77
+ "gitHead": "fb2e1c0ef099ea8983162ed9f0067d626ebdfaff"
78
78
  }
@@ -2,7 +2,7 @@ import { COMMA_ARABIC, COMMA_LATIN } from '@scrabble-solver/constants';
2
2
  import { Locale } from '@scrabble-solver/types';
3
3
  import { FunctionComponent, SVGAttributes } from 'react';
4
4
 
5
- import { FlagDe, FlagEs, FlagFa, FlagFr, FlagGb, FlagPl, FlagUs } from 'icons';
5
+ import { FlagDe, FlagEs, FlagFa, FlagFr, FlagGb, FlagPl, FlagRo, FlagUs } from 'icons';
6
6
 
7
7
  interface LocaleFeatures {
8
8
  comma: string;
@@ -94,4 +94,15 @@ export const LOCALE_FEATURES: Record<Locale, LocaleFeatures> = {
94
94
  separator: `${COMMA_LATIN} `,
95
95
  vowels: true,
96
96
  },
97
+ [Locale.RO_RO]: {
98
+ comma: COMMA_LATIN,
99
+ consonants: true,
100
+ direction: 'ltr',
101
+ Icon: FlagRo,
102
+ label: 'Română',
103
+ locale: Locale.RO_RO,
104
+ name: 'Romanian',
105
+ separator: `${COMMA_LATIN} `,
106
+ vowels: true,
107
+ },
97
108
  };
package/src/i18n/i18n.ts CHANGED
@@ -8,6 +8,7 @@ import es from './es.json';
8
8
  import fa from './fa.json';
9
9
  import fr from './fr.json';
10
10
  import pl from './pl.json';
11
+ import ro from './ro.json';
11
12
 
12
13
  const i18n: Record<Locale, Translations> = {
13
14
  [Locale.DE_DE]: de,
@@ -17,6 +18,7 @@ const i18n: Record<Locale, Translations> = {
17
18
  [Locale.FA_IR]: fa,
18
19
  [Locale.FR_FR]: fr,
19
20
  [Locale.PL_PL]: pl,
21
+ [Locale.RO_RO]: ro,
20
22
  };
21
23
 
22
24
  export default i18n;
@@ -0,0 +1,70 @@
1
+ {
2
+ "cell.enter-word": "Introducere cuvant",
3
+ "cell.filter-cell": "Destinatia",
4
+ "cell.set-blank": "Marcare camp liber",
5
+ "cell.set-not-blank": "Marcare camp ocupat ",
6
+ "cell.tile.location": "Tabla: camp ({{x}}, {{y}})",
7
+ "cell.toggle-direction": "Directie scriere",
8
+ "common.blanks": "Campuri libere",
9
+ "common.clear": "Stergere",
10
+ "common.close": "Inchidere",
11
+ "common.consonants": "Consoane",
12
+ "common.loading": "Incarcare",
13
+ "common.next": "Pasul urmator",
14
+ "common.points": "Puncte",
15
+ "common.previous": "Pasul anterior",
16
+ "common.tiles": "Piese",
17
+ "common.two-letter-tiles": "2 litere",
18
+ "common.vowels": "Vocale",
19
+ "common.word": "Cuvant",
20
+ "common.words": "Cuvinte",
21
+ "dictionary": "Dictionar",
22
+ "dictionary.empty-state.no-definitions": "Cuvantul exista in dictionar dar nu are o definitie.",
23
+ "dictionary.empty-state.no-results": "Definitia nu a fost gasita in dictionar",
24
+ "dictionary.empty-state.not-allowed": "Cuvantul nu este permis.",
25
+ "dictionary.empty-state.uninitialized": "Aici va fi definitia cuvantului.",
26
+ "dictionary.input.placeholder": "Cautare dictionar…",
27
+ "dictionary.input.title": "Cuvinte separate prin virgula",
28
+ "empty-state.error": "Eroare",
29
+ "empty-state.info": "Informatii",
30
+ "empty-state.success": "Succes",
31
+ "empty-state.warning": "Atentionare",
32
+ "github": "Vezi acest proiect pe GitHub",
33
+ "keyMap": "Comanda rapida la tastatura",
34
+ "keyMap.board": "Tabla joc",
35
+ "keyMap.board.toggle-blank": "Marcheaza/Deselecteaza campul ca liber",
36
+ "keyMap.board.toggle-direction": "Schimbati directia de tastare",
37
+ "keyMap.board-and-rack": "Tabla si literele extrase",
38
+ "keyMap.board-and-rack.insert-two-letter-tile": "Introducere piesa 2 litere",
39
+ "keyMap.board-and-rack.navigate": "Navigare",
40
+ "keyMap.board-and-rack.remove-tile": "Indeparteaza piesa",
41
+ "keyMap.board-and-rack.submit": "Pornire cautare",
42
+ "keyMap.rack": "Grupa litere",
43
+ "keyMap.rack.insert-blank": "Introduce camp liber (spacebar)",
44
+ "menu": "Meniu",
45
+ "rack.placeholder": "Litere…",
46
+ "rack.tile.location": "Grupa litere: piesa ({{index}})",
47
+ "rack.touchscreen.placeholder": "Litere…",
48
+ "remaining-tiles": "Litere ramase",
49
+ "results": "Rezultate",
50
+ "results.empty-state.no-results": "Nu a fost gasit nici un rezultat.",
51
+ "results.empty-state.outdated": "Rezultatele nu sunt actuale.",
52
+ "results.empty-state.uninitialized": "Cuvintele formate din literele tale vor fi afisate aici.",
53
+ "results.input.placeholder": "Cautare solutii... (RegExp)",
54
+ "results.insert": "Introducere",
55
+ "results.preview": "Previzualizare",
56
+ "results.solve": "Gasire solutii",
57
+ "settings": "Setari",
58
+ "settings.autoGroupTiles": "Litere ramase",
59
+ "settings.autoGroupTiles.left": "In partea stanga",
60
+ "settings.autoGroupTiles.right": "In partea dreapta",
61
+ "settings.autoGroupTiles.null": "Nu se grupeaza",
62
+ "settings.game": "Joc",
63
+ "settings.inputMode": "Mod introducere",
64
+ "settings.inputMode.keyboard": "Tastatura",
65
+ "settings.inputMode.touchscreen": "Ecran",
66
+ "settings.language": "Limba",
67
+ "words": "Cuvinte create",
68
+ "words.invalid": "Invalid",
69
+ "words.valid": "Valid"
70
+ }
@@ -0,0 +1,5 @@
1
+ <svg viewBox="0 0 3 2" xmlns="http://www.w3.org/2000/svg">
2
+ <rect width="3" height="2" fill="#002B7F" />
3
+ <rect width="2" height="2" x="1" fill="#FCD116" />
4
+ <rect width="1" height="2" x="2" fill="#CE1126" />
5
+ </svg>
@@ -27,6 +27,7 @@ export { default as FlagFill } from './FlagFill.svg';
27
27
  export { default as FlagFr } from './FlagFr.svg';
28
28
  export { default as FlagGb } from './FlagGb.svg';
29
29
  export { default as FlagPl } from './FlagPl.svg';
30
+ export { default as FlagRo } from './FlagRo.svg';
30
31
  export { default as FlagUs } from './FlagUs.svg';
31
32
  export { default as Github } from './Github.svg';
32
33
  export { default as InfoCircleFill } from './InfoCircleFill.svg';
@@ -1,22 +1,28 @@
1
1
  import { Locale } from '@scrabble-solver/types';
2
2
 
3
3
  const detectLocale = (): Locale => {
4
- if (window.navigator.languages.includes('pl') || window.navigator.languages.includes('pl-PL')) {
4
+ const languages = window.navigator.languages;
5
+
6
+ if (languages.includes('pl') || languages.includes('pl-PL')) {
5
7
  return Locale.PL_PL;
6
8
  }
7
9
 
8
- if (window.navigator.languages.includes('en-GB')) {
10
+ if (languages.includes('en-GB')) {
9
11
  return Locale.EN_GB;
10
12
  }
11
13
 
12
- if (window.navigator.languages.includes('fa') || window.navigator.languages.includes('fa-IR')) {
14
+ if (languages.includes('fa') || languages.includes('fa-IR')) {
13
15
  return Locale.FA_IR;
14
16
  }
15
17
 
16
- if (window.navigator.languages.includes('fr-FR')) {
18
+ if (languages.includes('fr-FR')) {
17
19
  return Locale.FR_FR;
18
20
  }
19
21
 
22
+ if (languages.includes('ro') || languages.includes('ro-RO')) {
23
+ return Locale.RO_RO;
24
+ }
25
+
20
26
  return Locale.EN_US;
21
27
  };
22
28