@zhin.js/plugin-lottery 1.1.9 → 1.1.10

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 (93) hide show
  1. package/README.md +8 -0
  2. package/commands/lottery/[[game]]/index.js +5 -4
  3. package/commands/lottery/[[game]]/index.ts +5 -4
  4. package/commands/lottery-backtest/[[game]]/index.js +9 -4
  5. package/commands/lottery-backtest/[[game]]/index.ts +8 -4
  6. package/commands/lottery-history/[game]/index.js +6 -4
  7. package/commands/lottery-history/[game]/index.ts +6 -4
  8. package/commands/lottery-stats/[game]/index.js +11 -6
  9. package/commands/lottery-stats/[game]/index.ts +11 -5
  10. package/commands/lottery-today/index.js +8 -4
  11. package/commands/lottery-today/index.ts +8 -3
  12. package/commands/lottery-train/[[game]]/index.js +4 -3
  13. package/commands/lottery-train/[[game]]/index.ts +4 -3
  14. package/lib/command-helpers.d.ts +2 -1
  15. package/lib/command-helpers.d.ts.map +1 -1
  16. package/lib/command-helpers.js +2 -1
  17. package/lib/command-helpers.js.map +1 -1
  18. package/lib/evaluate/backtest.d.ts +3 -2
  19. package/lib/evaluate/backtest.d.ts.map +1 -1
  20. package/lib/evaluate/backtest.js +12 -11
  21. package/lib/evaluate/backtest.js.map +1 -1
  22. package/lib/evaluate/tracker.d.ts +2 -1
  23. package/lib/evaluate/tracker.d.ts.map +1 -1
  24. package/lib/evaluate/tracker.js +9 -8
  25. package/lib/evaluate/tracker.js.map +1 -1
  26. package/lib/evaluate/train-weights.d.ts +3 -2
  27. package/lib/evaluate/train-weights.d.ts.map +1 -1
  28. package/lib/evaluate/train-weights.js +12 -11
  29. package/lib/evaluate/train-weights.js.map +1 -1
  30. package/lib/games/kl8-groups.d.ts +2 -0
  31. package/lib/games/kl8-groups.d.ts.map +1 -1
  32. package/lib/games/kl8-groups.js +2 -1
  33. package/lib/games/kl8-groups.js.map +1 -1
  34. package/lib/i18n.d.ts +2 -0
  35. package/lib/i18n.d.ts.map +1 -0
  36. package/lib/i18n.js +222 -0
  37. package/lib/i18n.js.map +1 -0
  38. package/lib/lottery-tool-handlers.d.ts +4 -3
  39. package/lib/lottery-tool-handlers.d.ts.map +1 -1
  40. package/lib/lottery-tool-handlers.js +12 -7
  41. package/lib/lottery-tool-handlers.js.map +1 -1
  42. package/lib/pipeline.d.ts +3 -1
  43. package/lib/pipeline.d.ts.map +1 -1
  44. package/lib/pipeline.js +9 -7
  45. package/lib/pipeline.js.map +1 -1
  46. package/lib/recommend/game-pick.d.ts +4 -2
  47. package/lib/recommend/game-pick.d.ts.map +1 -1
  48. package/lib/recommend/game-pick.js +39 -28
  49. package/lib/recommend/game-pick.js.map +1 -1
  50. package/lib/recommend/report.d.ts +4 -2
  51. package/lib/recommend/report.d.ts.map +1 -1
  52. package/lib/recommend/report.js +17 -10
  53. package/lib/recommend/report.js.map +1 -1
  54. package/lib/runtime-state.d.ts +2 -0
  55. package/lib/runtime-state.d.ts.map +1 -1
  56. package/lib/runtime-state.js.map +1 -1
  57. package/lib/stats/pro-analysis.d.ts +3 -2
  58. package/lib/stats/pro-analysis.d.ts.map +1 -1
  59. package/lib/stats/pro-analysis.js +10 -9
  60. package/lib/stats/pro-analysis.js.map +1 -1
  61. package/lib/sync/run-sync.d.ts +2 -1
  62. package/lib/sync/run-sync.d.ts.map +1 -1
  63. package/lib/sync/run-sync.js +4 -3
  64. package/lib/sync/run-sync.js.map +1 -1
  65. package/lib/types.d.ts +2 -0
  66. package/lib/types.d.ts.map +1 -1
  67. package/lib/types.js.map +1 -1
  68. package/package.json +8 -8
  69. package/plugin.js +4 -0
  70. package/skills/lottery/tools/compute-recommend/index.js +1 -1
  71. package/skills/lottery/tools/compute-recommend/index.ts +1 -1
  72. package/skills/lottery/tools/history/index.js +2 -1
  73. package/skills/lottery/tools/history/index.ts +2 -1
  74. package/skills/lottery/tools/save-prediction/index.js +1 -1
  75. package/skills/lottery/tools/save-prediction/index.ts +1 -1
  76. package/skills/lottery/tools/stats-snapshot/index.js +1 -1
  77. package/skills/lottery/tools/stats-snapshot/index.ts +1 -1
  78. package/skills/lottery/tools/sync/index.js +1 -1
  79. package/skills/lottery/tools/sync/index.ts +1 -0
  80. package/src/command-helpers.ts +3 -0
  81. package/src/evaluate/backtest.ts +13 -11
  82. package/src/evaluate/tracker.ts +10 -8
  83. package/src/evaluate/train-weights.ts +13 -11
  84. package/src/games/kl8-groups.ts +4 -1
  85. package/src/i18n.ts +222 -0
  86. package/src/lottery-tool-handlers.ts +12 -7
  87. package/src/pipeline.ts +10 -7
  88. package/src/recommend/game-pick.ts +40 -28
  89. package/src/recommend/report.ts +18 -8
  90. package/src/runtime-state.ts +2 -0
  91. package/src/stats/pro-analysis.ts +11 -7
  92. package/src/sync/run-sync.ts +5 -2
  93. package/src/types.ts +2 -0
package/lib/pipeline.js CHANGED
@@ -1,3 +1,5 @@
1
+ import { resolveLocale } from 'zhin.js/i18n';
2
+ import { messages as t } from './i18n.js';
1
3
  import { syncGame } from './db.js';
2
4
  import { buildDailyReport, formatDailyReportText, hydrateReportPickWeights, resolveTodayReport, saveDailyReport, } from './recommend/report.js';
3
5
  import { evaluatePendingPredictions, gamesNeedingPrediction } from './evaluate/review-pending.js';
@@ -20,7 +22,7 @@ async function attachBacktestOverview(db, gameIds, deps, holdoutSummaries = [])
20
22
  const summaries = holdoutSummaries.length
21
23
  ? holdoutSummaries
22
24
  : await runBacktestForGames(db, gameIds, backtestOpts(deps));
23
- return formatBacktestSection(summaries);
25
+ return formatBacktestSection(summaries, deps.locale);
24
26
  }
25
27
  export async function runLotteryPipeline(deps, options = {}) {
26
28
  const { db } = deps;
@@ -63,11 +65,11 @@ export async function runLotteryPipeline(deps, options = {}) {
63
65
  let reportText = '';
64
66
  let recommendText;
65
67
  if (!needPredict.length) {
66
- const existing = await resolveTodayReport(db, gameIds);
68
+ const existing = await resolveTodayReport(db, gameIds, new Date(), deps.locale);
67
69
  if (existing) {
68
70
  recommendText = 'reused today picks';
69
71
  existing.weightFallbackGames = weightPlan.fallbacks.length ? weightPlan.fallbacks : undefined;
70
- existing.backtestOverview = await attachBacktestOverview(db, gameIds, deps, holdoutSummaries);
72
+ existing.backtestOverview = await attachBacktestOverview(db, gameIds, { ...deps, locale: resolveLocale(existing.locale) }, holdoutSummaries);
71
73
  reportText = formatDailyReportText(existing, '');
72
74
  }
73
75
  else {
@@ -75,11 +77,11 @@ export async function runLotteryPipeline(deps, options = {}) {
75
77
  }
76
78
  }
77
79
  else {
78
- const report = await buildDailyReport(db, needPredict, { pickCount: deps.pickCount, historyLimit: deps.historyLimit, kl8: deps.kl8 }, new Date(), true, weightPlan.overrides);
80
+ const report = await buildDailyReport(db, needPredict, { pickCount: deps.pickCount, historyLimit: deps.historyLimit, kl8: deps.kl8, locale: deps.locale }, new Date(), true, weightPlan.overrides);
79
81
  report.weightFallbackGames = weightPlan.fallbacks.length ? weightPlan.fallbacks : undefined;
80
82
  report.backtestOverview = await attachBacktestOverview(db, gameIds, deps, holdoutSummaries);
81
83
  if (needPredict.length < gameIds.length) {
82
- const existing = await resolveTodayReport(db, gameIds);
84
+ const existing = await resolveTodayReport(db, gameIds, new Date(), deps.locale);
83
85
  if (existing?.picks?.length) {
84
86
  const regen = new Set(needPredict);
85
87
  report.picks = [
@@ -109,9 +111,9 @@ export async function runLotteryPipeline(deps, options = {}) {
109
111
  reportText,
110
112
  };
111
113
  }
112
- export function formatPipelineReply(result) {
114
+ export function formatPipelineReply(result, locale) {
113
115
  if (result.reportText.trim())
114
116
  return result.reportText.trim();
115
- return '暂无推荐号码,请确认已同步开奖数据。';
117
+ return t(locale, 'noPicks');
116
118
  }
117
119
  //# sourceMappingURL=pipeline.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
+ import { type Locale } from 'zhin.js/i18n';
1
2
  import { type GameId, type GamePick, type NormalizedDraw, type ScoreWeights, type AccuracySnapshot } from '../types.js';
2
3
  import { type Kl8Config } from '../games/kl8-groups.js';
3
4
  export interface RecommendOptions {
5
+ locale?: Locale;
4
6
  pickCount: number;
5
7
  tieSeed: string;
6
8
  weights?: ScoreWeights;
@@ -8,6 +10,6 @@ export interface RecommendOptions {
8
10
  kl8?: Kl8Config;
9
11
  }
10
12
  export declare function recommendGame(gameId: GameId, draws: NormalizedDraw[], options: RecommendOptions): GamePick;
11
- export declare function formatPickLine(pick: GamePick): string;
12
- export declare function formatPickStats(pick: GamePick): string;
13
+ export declare function formatPickLine(pick: GamePick, locale?: Locale): string;
14
+ export declare function formatPickStats(pick: GamePick, locale?: Locale): string;
13
15
  //# sourceMappingURL=game-pick.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"game-pick.d.ts","sourceRoot":"","sources":["../../src/recommend/game-pick.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAsB,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE9J,OAAO,EAAwC,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AA6B9F,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,GAAG,CAAC,EAAE,SAAS,CAAC;CACjB;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,EAAE,gBAAgB,GACxB,QAAQ,CA8JV;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAwBrD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAkBtD"}
1
+ {"version":3,"file":"game-pick.d.ts","sourceRoot":"","sources":["../../src/recommend/game-pick.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAoB,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAsB,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE9J,OAAO,EAAwC,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AA6B9F,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,GAAG,CAAC,EAAE,SAAS,CAAC;CACjB;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,EAAE,gBAAgB,GACxB,QAAQ,CAuKV;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAE,MAAmC,GAAG,MAAM,CAwBlG;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAE,MAAmC,GAAG,MAAM,CAkBnG"}
@@ -1,3 +1,5 @@
1
+ import { resolveLocale } from 'zhin.js/i18n';
2
+ import { messages as t } from '../i18n.js';
1
3
  import { getGameMeta } from '../games/registry.js';
2
4
  import { recommendKl8Groups, resolveKl8Config } from '../games/kl8-groups.js';
3
5
  import { pad2, pickTopUnique, scoreDigits, scorePool } from '../stats/engine.js';
@@ -17,7 +19,9 @@ function poolDraws(draws, extract) {
17
19
  return draws.map((d) => extract(d.numbers)).filter((a) => a.length > 0);
18
20
  }
19
21
  export function recommendGame(gameId, draws, options) {
22
+ const locale = resolveLocale(options.locale);
20
23
  const meta = getGameMeta(gameId);
24
+ const name = locale === 'en' ? t(locale, `game.${gameId}`) : meta.name;
21
25
  const tieSeed = `${options.tieSeed}:${gameId}`;
22
26
  const weights = options.weights ?? { freq: 0.4, omit: 0.35, trend: 0.25 };
23
27
  switch (gameId) {
@@ -29,13 +33,14 @@ export function recommendGame(gameId, draws, options) {
29
33
  const pick = pickTopUnique(scores, kl8.pickCount);
30
34
  const hot = scores.slice(0, 5).map((s) => s.value);
31
35
  const cold = [...scores].reverse().slice(0, 5).map((s) => s.value);
32
- const pro = computeProMetrics(gameId, pick, draws, weights, 1, 80, 40);
36
+ const pro = computeProMetrics(gameId, pick, draws, weights, 1, 80, 40, locale);
33
37
  return {
34
38
  gameId,
35
- label: `${meta.name}(选${pick.length})`,
39
+ locale,
40
+ label: t(locale, 'pickLabel', { name, count: pick.length }),
36
41
  numbers: { main: pick },
37
42
  weights,
38
- stats: buildSnapshot(gameId, draws, hot, cold, `频率+遗漏+趋势 | 和值${pro.sum} 跨度${pro.span}`, pro, options.accuracy, weights),
43
+ stats: buildSnapshot(gameId, draws, hot, cold, t(locale, 'basicDetail', { sum: pro.sum, span: pro.span }), pro, options.accuracy, weights),
39
44
  };
40
45
  }
41
46
  const multi = recommendKl8Groups(draws, {
@@ -44,19 +49,21 @@ export function recommendGame(gameId, draws, options) {
44
49
  strategies: kl8.groupStrategies,
45
50
  tieSeed,
46
51
  baseWeights: weights,
52
+ locale,
47
53
  });
48
54
  const primary = multi.groups[0]?.numbers ?? [];
49
55
  const hot = multi.scores.slice(0, 5).map((s) => s.value);
50
56
  const cold = [...multi.scores].reverse().slice(0, 5).map((s) => s.value);
51
- const pro = computeProMetrics(gameId, primary, draws, weights, 1, 80, 40);
57
+ const pro = computeProMetrics(gameId, primary, draws, weights, 1, 80, 40, locale);
52
58
  const strategyNote = multi.groups.map((g) => g.label).join('/');
53
59
  return {
54
60
  gameId,
55
- label: `${meta.name}(选${kl8.pickCount}·${multi.groups.length}组)`,
61
+ locale,
62
+ label: t(locale, 'pickGroupsLabel', { name, count: kl8.pickCount, groups: multi.groups.length }),
56
63
  numbers: { main: primary },
57
64
  weights,
58
65
  kl8Groups: multi.groups,
59
- stats: buildSnapshot(gameId, draws, hot, cold, `多策略 ${strategyNote} | 和值${pro.sum} 跨度${pro.span}`, pro, options.accuracy, weights),
66
+ stats: buildSnapshot(gameId, draws, hot, cold, t(locale, 'multiDetail', { strategies: strategyNote, sum: pro.sum, span: pro.span }), pro, options.accuracy, weights),
60
67
  };
61
68
  }
62
69
  case 'ssq': {
@@ -66,13 +73,14 @@ export function recommendGame(gameId, draws, options) {
66
73
  const blueScores = scorePool(blueRows, 1, 16, `${tieSeed}:blue`, weights);
67
74
  const red = pickTopUnique(redScores, 6);
68
75
  const blue = pickTopUnique(blueScores, 1);
69
- const pro = computeProMetrics(gameId, red, draws, weights, 1, 33, 17);
76
+ const pro = computeProMetrics(gameId, red, draws, weights, 1, 33, 17, locale);
70
77
  return {
71
78
  gameId,
72
- label: meta.name,
79
+ locale,
80
+ label: name,
73
81
  numbers: { red, blue },
74
82
  weights,
75
- stats: buildSnapshot(gameId, draws, redScores.slice(0, 5).map((s) => s.value), redScores.slice(-5).map((s) => s.value), `红球 ${pro.oddEven} ${pro.bigSmall} | 蓝 ${blue.map(pad2).join(' ')}`, pro, options.accuracy, weights),
83
+ stats: buildSnapshot(gameId, draws, redScores.slice(0, 5).map((s) => s.value), redScores.slice(-5).map((s) => s.value), t(locale, 'redDetail', { oddEven: pro.oddEven, bigSmall: pro.bigSmall, blue: blue.map(pad2).join(' ') }), pro, options.accuracy, weights),
76
84
  };
77
85
  }
78
86
  case 'dlt': {
@@ -82,71 +90,74 @@ export function recommendGame(gameId, draws, options) {
82
90
  const backScores = scorePool(backRows, 1, 12, `${tieSeed}:back`, weights);
83
91
  const front = pickTopUnique(frontScores, 5);
84
92
  const back = pickTopUnique(backScores, 2);
85
- const pro = computeProMetrics(gameId, front, draws, weights, 1, 35, 18);
93
+ const pro = computeProMetrics(gameId, front, draws, weights, 1, 35, 18, locale);
86
94
  return {
87
95
  gameId,
88
- label: meta.name,
96
+ locale,
97
+ label: name,
89
98
  numbers: { front, back },
90
99
  weights,
91
- stats: buildSnapshot(gameId, draws, frontScores.slice(0, 5).map((s) => s.value), frontScores.slice(-5).map((s) => s.value), `前区 ${pro.oddEven} ${pro.zones ?? ''}`.trim(), pro, options.accuracy, weights),
100
+ stats: buildSnapshot(gameId, draws, frontScores.slice(0, 5).map((s) => s.value), frontScores.slice(-5).map((s) => s.value), t(locale, 'frontDetail', { oddEven: pro.oddEven, zones: pro.zones ?? '' }).trim(), pro, options.accuracy, weights),
92
101
  };
93
102
  }
94
103
  case 'fc3d':
95
104
  case 'pl3': {
96
105
  const rows = poolDraws(draws, (n) => n.digits ?? []);
97
106
  const digits = scoreDigits(rows, 3, tieSeed, weights);
98
- const pro = computeDigitProMetrics(digits, draws, weights);
107
+ const pro = computeDigitProMetrics(digits, draws, weights, locale);
99
108
  return {
100
109
  gameId,
101
- label: meta.name,
110
+ locale,
111
+ label: name,
102
112
  numbers: { digits },
103
113
  weights,
104
- stats: buildSnapshot(gameId, draws, digits, [], `直选 ${pro.digitPos} | 和值${pro.sum}`, pro, options.accuracy, weights),
114
+ stats: buildSnapshot(gameId, draws, digits, [], t(locale, 'digitDetail', { positions: pro.digitPos ?? '', sum: pro.sum }), pro, options.accuracy, weights),
105
115
  };
106
116
  }
107
117
  case 'pl5': {
108
118
  const rows = poolDraws(draws, (n) => n.digits ?? []);
109
119
  const digits = scoreDigits(rows, 5, tieSeed, weights);
110
- const pro = computeDigitProMetrics(digits, draws, weights);
120
+ const pro = computeDigitProMetrics(digits, draws, weights, locale);
111
121
  return {
112
122
  gameId,
113
- label: meta.name,
123
+ locale,
124
+ label: name,
114
125
  numbers: { digits },
115
126
  weights,
116
- stats: buildSnapshot(gameId, draws, digits, [], `直选 ${pro.digitPos} | 和值${pro.sum}`, pro, options.accuracy, weights),
127
+ stats: buildSnapshot(gameId, draws, digits, [], t(locale, 'digitDetail', { positions: pro.digitPos ?? '', sum: pro.sum }), pro, options.accuracy, weights),
117
128
  };
118
129
  }
119
130
  default:
120
131
  throw new Error(`Unsupported game ${gameId}`);
121
132
  }
122
133
  }
123
- export function formatPickLine(pick) {
134
+ export function formatPickLine(pick, locale = resolveLocale(pick.locale)) {
124
135
  const n = pick.numbers;
125
136
  switch (pick.gameId) {
126
137
  case 'kl8': {
127
138
  if (pick.kl8Groups?.length) {
128
139
  const header = `■ ${pick.label}`;
129
- const rows = pick.kl8Groups.map((g) => ` 组${g.index}·${g.label}:${g.numbers.map(pad2).join(' ')}`);
140
+ const rows = pick.kl8Groups.map((g) => t(locale, 'groupLine', { index: g.index, label: g.label, numbers: g.numbers.map(pad2).join(' ') }));
130
141
  return [header, ...rows].join('\n');
131
142
  }
132
- return `■ ${pick.label}:${(n.main ?? []).map(pad2).join(' ')}`;
143
+ return t(locale, 'pickLine', { label: pick.label, numbers: (n.main ?? []).map(pad2).join(' ') });
133
144
  }
134
145
  case 'ssq':
135
- return `■ ${pick.label}:红 ${(n.red ?? []).map(pad2).join(' ')} + 蓝 ${(n.blue ?? []).map(pad2).join(' ')}`;
146
+ return t(locale, 'redLine', { label: pick.label, red: (n.red ?? []).map(pad2).join(' '), blue: (n.blue ?? []).map(pad2).join(' ') });
136
147
  case 'dlt':
137
- return `■ ${pick.label}:前 ${(n.front ?? []).map(pad2).join(' ')} + 后 ${(n.back ?? []).map(pad2).join(' ')}`;
148
+ return t(locale, 'frontLine', { label: pick.label, front: (n.front ?? []).map(pad2).join(' '), back: (n.back ?? []).map(pad2).join(' ') });
138
149
  case 'fc3d':
139
150
  case 'pl3':
140
151
  case 'pl5':
141
- return `■ ${pick.label}:${(n.digits ?? []).join(' ')}`;
152
+ return t(locale, 'pickLine', { label: pick.label, numbers: (n.digits ?? []).join(' ') });
142
153
  default:
143
154
  return `■ ${pick.label}`;
144
155
  }
145
156
  }
146
- export function formatPickStats(pick) {
157
+ export function formatPickStats(pick, locale = resolveLocale(pick.locale)) {
147
158
  const parts = [];
148
- const hot = pick.stats.hot.length ? `热号 ${pick.stats.hot.join(',')}` : '';
149
- const cold = pick.stats.cold.length ? `冷号 ${pick.stats.cold.join(',')}` : '';
159
+ const hot = pick.stats.hot.length ? t(locale, 'hot', { numbers: pick.stats.hot.join(',') }) : '';
160
+ const cold = pick.stats.cold.length ? t(locale, 'cold', { numbers: pick.stats.cold.join(',') }) : '';
150
161
  if (hot)
151
162
  parts.push(hot);
152
163
  if (cold)
@@ -161,7 +172,7 @@ export function formatPickStats(pick) {
161
172
  }
162
173
  if (pick.stats.accuracy) {
163
174
  const a = pick.stats.accuracy;
164
- parts.push(`历史命中 ${(a.avgHitRate * 100).toFixed(1)}% (${a.evalCount}期) 近5期 ${a.recent5}`);
175
+ parts.push(t(locale, 'accuracy', { rate: (a.avgHitRate * 100).toFixed(1), count: a.evalCount, recent: a.recent5 }));
165
176
  }
166
177
  parts.push(pick.stats.detail);
167
178
  return ` ${parts.filter(Boolean).join('\n ')}`;
@@ -1 +1 @@
1
- {"version":3,"file":"game-pick.js","sourceRoot":"","sources":["../../src/recommend/game-pick.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"game-pick.js","sourceRoot":"","sources":["../../src/recommend/game-pick.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
+ import { type Locale } from 'zhin.js/i18n';
1
2
  import { type DailyReport, type GameId, type GamePick, type ScoreWeights } from '../types.js';
2
3
  import { type Kl8Config } from '../games/kl8-groups.js';
3
4
  import { type LotteryDb } from '../db.js';
4
5
  export interface LotteryConfigSlice {
6
+ locale?: Locale;
5
7
  pickCount: number;
6
8
  historyLimit: number;
7
9
  kl8?: Kl8Config;
@@ -11,9 +13,9 @@ export declare function formatDailyReportText(report: DailyReport, aiExplanation
11
13
  export declare function saveDailyReport(db: LotteryDb, report: DailyReport, aiExplanation: string): Promise<void>;
12
14
  export declare function loadTodayReport(db: LotteryDb, date?: Date): Promise<DailyReport | null>;
13
15
  /** Today's pending rows as displayable picks (when report table is empty). */
14
- export declare function loadTodayPendingPicks(db: LotteryDb, gameIds: GameId[], date?: Date): Promise<GamePick[]>;
16
+ export declare function loadTodayPendingPicks(db: LotteryDb, gameIds: GameId[], date?: Date, locale?: Locale): Promise<GamePick[]>;
15
17
  /** Saved daily report, or reconstruct from today's pending picks. */
16
- export declare function resolveTodayReport(db: LotteryDb, gameIds: GameId[], date?: Date): Promise<DailyReport | null>;
18
+ export declare function resolveTodayReport(db: LotteryDb, gameIds: GameId[], date?: Date, locale?: Locale): Promise<DailyReport | null>;
17
19
  /** Backfill missing pick weights from DB (saved reports may omit weights). */
18
20
  export declare function hydrateReportPickWeights(db: LotteryDb, picks: GamePick[]): Promise<GamePick[]>;
19
21
  //# sourceMappingURL=report.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/recommend/report.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,WAAW,EAAoB,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAG7I,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAE1E,OAAO,EAA6C,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAIrF,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,SAAS,CAAC;CACjB;AAED,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,MAAM,EAAE,EACjB,MAAM,EAAE,kBAAkB,EAC1B,IAAI,OAAa,EACjB,eAAe,UAAO,EACtB,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GAC1C,OAAO,CAAC,WAAW,CAAC,CA8BtB;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAgCzF;AAED,wBAAsB,eAAe,CACnC,EAAE,EAAE,SAAS,EACb,MAAM,EAAE,WAAW,EACnB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAWf;AAED,wBAAsB,eAAe,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,OAAa,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAkBnG;AAED,8EAA8E;AAC9E,wBAAsB,qBAAqB,CACzC,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,OAAa,GAChB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAoBrB;AAED,qEAAqE;AACrE,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,OAAa,GAChB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAU7B;AAED,8EAA8E;AAC9E,wBAAsB,wBAAwB,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAUpG"}
1
+ {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/recommend/report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAmB,KAAK,WAAW,EAAoB,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAGjI,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAE1E,OAAO,EAA6C,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAIrF,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,SAAS,CAAC;CACjB;AAED,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,MAAM,EAAE,EACjB,MAAM,EAAE,kBAAkB,EAC1B,IAAI,OAAa,EACjB,eAAe,UAAO,EACtB,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GAC1C,OAAO,CAAC,WAAW,CAAC,CAgCtB;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAiCzF;AAED,wBAAsB,eAAe,CACnC,EAAE,EAAE,SAAS,EACb,MAAM,EAAE,WAAW,EACnB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAWf;AAED,wBAAsB,eAAe,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,OAAa,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAkBnG;AAED,8EAA8E;AAC9E,wBAAsB,qBAAqB,CACzC,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,OAAa,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,QAAQ,EAAE,CAAC,CAqBrB;AAED,qEAAqE;AACrE,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,OAAa,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAW7B;AAED,8EAA8E;AAC9E,wBAAsB,wBAAwB,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAUpG"}
@@ -1,4 +1,6 @@
1
- import { DEFAULT_WEIGHTS, DISCLAIMER } from '../types.js';
1
+ import { resolveLocale } from 'zhin.js/i18n';
2
+ import { messages as t } from '../i18n.js';
3
+ import { DEFAULT_WEIGHTS } from '../types.js';
2
4
  import { recommendGame, formatPickLine, formatPickStats } from './game-pick.js';
3
5
  import { resolveKl8Config } from '../games/kl8-groups.js';
4
6
  import { loadDraws, REPORTS_TABLE, parseStoredJson } from '../db.js';
@@ -15,6 +17,7 @@ export async function buildDailyReport(db, gameIds, config, date = new Date(), s
15
17
  const accuracy = await loadAccuracySnapshot(db, gameId);
16
18
  const kl8 = config.kl8 ?? resolveKl8Config(config.pickCount);
17
19
  const pick = recommendGame(gameId, draws, {
20
+ locale: config.locale,
18
21
  pickCount: gameId === 'kl8' ? kl8.pickCount : config.pickCount,
19
22
  tieSeed,
20
23
  weights,
@@ -31,27 +34,29 @@ export async function buildDailyReport(db, gameIds, config, date = new Date(), s
31
34
  .join(' | ');
32
35
  return {
33
36
  date: dateStr,
37
+ locale: resolveLocale(config.locale),
34
38
  picks,
35
- disclaimer: DISCLAIMER,
39
+ disclaimer: t(config.locale, 'disclaimer'),
36
40
  accuracyOverview: accuracyOverview || undefined,
37
41
  };
38
42
  }
39
43
  export function formatDailyReportText(report, aiExplanation) {
44
+ const locale = resolveLocale(report.locale);
40
45
  if (report.body?.trim()) {
41
46
  const extra = aiExplanation?.trim();
42
47
  return extra ? `${report.body.trim()}\n\n${extra}` : report.body.trim();
43
48
  }
44
- const lines = [`【彩票每日推荐】${report.date}`, ''];
49
+ const lines = [t(locale, 'dailyTitle', { date: report.date }), ''];
45
50
  if (report.backtestOverview?.trim()) {
46
51
  lines.push(report.backtestOverview.trim());
47
52
  lines.push('');
48
53
  }
49
54
  if (report.weightFallbackGames?.length) {
50
- lines.push(`【权重保护】近端 holdout 调优未跑赢随机,已回退默认 F40/O35/T25:${report.weightFallbackGames.join(', ')}`);
55
+ lines.push(t(locale, 'weightFallback', { games: report.weightFallbackGames.join(', ') }));
51
56
  lines.push('');
52
57
  }
53
58
  if (report.accuracyOverview) {
54
- lines.push(`【模型复盘】累计平均命中 ${report.accuracyOverview}`);
59
+ lines.push(t(locale, 'accuracyOverview', { overview: report.accuracyOverview }));
55
60
  lines.push('');
56
61
  }
57
62
  for (const pick of report.picks) {
@@ -64,7 +69,7 @@ export function formatDailyReportText(report, aiExplanation) {
64
69
  lines.push('');
65
70
  }
66
71
  else {
67
- lines.push('【统计说明】号码由频率+遗漏+近期趋势综合打分,并根据历史命中自动调权。');
72
+ lines.push(t(locale, 'statsExplanation'));
68
73
  lines.push('');
69
74
  }
70
75
  lines.push(report.disclaimer);
@@ -105,13 +110,14 @@ export async function loadTodayReport(db, date = new Date()) {
105
110
  return report;
106
111
  }
107
112
  /** Today's pending rows as displayable picks (when report table is empty). */
108
- export async function loadTodayPendingPicks(db, gameIds, date = new Date()) {
113
+ export async function loadTodayPendingPicks(db, gameIds, date = new Date(), locale) {
109
114
  const today = date.toISOString().slice(0, 10);
110
115
  const picks = [];
111
116
  for (const gameId of gameIds) {
112
117
  const pending = (await listPendingPredictions(db, gameId));
113
118
  for (const row of pending.filter((p) => p.predict_date === today)) {
114
119
  picks.push({
120
+ locale: resolveLocale(locale),
115
121
  gameId,
116
122
  label: gameId,
117
123
  numbers: parseStoredJson(row.numbers, {}),
@@ -123,17 +129,18 @@ export async function loadTodayPendingPicks(db, gameIds, date = new Date()) {
123
129
  return picks;
124
130
  }
125
131
  /** Saved daily report, or reconstruct from today's pending picks. */
126
- export async function resolveTodayReport(db, gameIds, date = new Date()) {
132
+ export async function resolveTodayReport(db, gameIds, date = new Date(), locale) {
127
133
  const saved = await loadTodayReport(db, date);
128
134
  if (saved)
129
135
  return saved;
130
- const picks = await loadTodayPendingPicks(db, gameIds, date);
136
+ const picks = await loadTodayPendingPicks(db, gameIds, date, locale);
131
137
  if (!picks.length)
132
138
  return null;
133
139
  return {
134
140
  date: date.toISOString().slice(0, 10),
141
+ locale: resolveLocale(locale),
135
142
  picks,
136
- disclaimer: DISCLAIMER,
143
+ disclaimer: t(locale, 'disclaimer'),
137
144
  };
138
145
  }
139
146
  /** Backfill missing pick weights from DB (saved reports may omit weights). */
@@ -1 +1 @@
1
- {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/recommend/report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/recommend/report.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
+ import type { Locale } from 'zhin.js/i18n';
1
2
  import type { LotteryConfig } from './config.js';
2
3
  import type { LotteryDb } from './db.js';
3
4
  import type { GameId } from './types.js';
4
5
  export interface LotteryRuntime {
6
+ readonly locale?: Locale;
5
7
  readonly db: LotteryDb;
6
8
  readonly config: Readonly<LotteryConfig>;
7
9
  readonly enabledGames: readonly GameId[];
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-state.d.ts","sourceRoot":"","sources":["../src/runtime-state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;CAC7D;AAED,eAAO,MAAM,mBAAmB,yCAG/B,CAAC"}
1
+ {"version":3,"file":"runtime-state.d.ts","sourceRoot":"","sources":["../src/runtime-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;CAC7D;AAED,eAAO,MAAM,mBAAmB,yCAG/B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-state.js","sourceRoot":"","sources":["../src/runtime-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAYtC,MAAM,CAAC,MAAM,mBAAmB,GAAG,WAAW,CAC5C,sBAAsB,EACtB,8BAA8B,CAC/B,CAAC"}
1
+ {"version":3,"file":"runtime-state.js","sourceRoot":"","sources":["../src/runtime-state.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAatC,MAAM,CAAC,MAAM,mBAAmB,GAAG,WAAW,CAC5C,sBAAsB,EACtB,8BAA8B,CAC/B,CAAC"}
@@ -1,7 +1,8 @@
1
+ import type { Locale } from 'zhin.js/i18n';
1
2
  import { type GameId, type NormalizedDraw, type ScoreWeights } from '../types.js';
2
3
  export declare function affinityOfNumbers(nums: number[], freqMap: Map<number, number>, omitMap: Map<number, number>, trendMap: Map<number, number>): ScoreWeights;
3
4
  export declare function buildOmitMap(draws: number[][], poolMin: number, poolMax: number): Map<number, number>;
4
5
  export declare function buildFreqMap(draws: number[][], poolMin: number, poolMax: number): Map<number, number>;
5
- export declare function computeProMetrics(gameId: GameId, pick: number[], draws: NormalizedDraw[], weights: ScoreWeights, poolMin?: number, poolMax?: number, mid?: number): import('../types.js').ProMetrics;
6
- export declare function computeDigitProMetrics(digits: number[], draws: NormalizedDraw[], weights: ScoreWeights): import('../types.js').ProMetrics;
6
+ export declare function computeProMetrics(gameId: GameId, pick: number[], draws: NormalizedDraw[], weights: ScoreWeights, poolMin?: number, poolMax?: number, mid?: number, locale?: Locale): import('../types.js').ProMetrics;
7
+ export declare function computeDigitProMetrics(digits: number[], draws: NormalizedDraw[], weights: ScoreWeights, locale?: Locale): import('../types.js').ProMetrics;
7
8
  //# sourceMappingURL=pro-analysis.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pro-analysis.d.ts","sourceRoot":"","sources":["../../src/stats/pro-analysis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,KAAK,MAAM,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAOrH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,YAAY,CAYd;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAYrG;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAWrG;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,aAAa,EAAE,UAAU,CAuClC;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EAAE,EAChB,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,EAAE,YAAY,GACpB,OAAO,aAAa,EAAE,UAAU,CAsBlC"}
1
+ {"version":3,"file":"pro-analysis.d.ts","sourceRoot":"","sources":["../../src/stats/pro-analysis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAqC,KAAK,MAAM,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAOrH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,YAAY,CAYd;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAYrG;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAWrG;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,GAAG,CAAC,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,aAAa,EAAE,UAAU,CAuClC;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EAAE,EAChB,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,EAAE,YAAY,EACrB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,aAAa,EAAE,UAAU,CAsBlC"}
@@ -1,3 +1,4 @@
1
+ import { messages as t } from '../i18n.js';
1
2
  import { DEFAULT_WEIGHTS } from '../types.js';
2
3
  import { formatWeights, normalizeWeights } from './weights.js';
3
4
  import { stableHash } from './engine.js';
@@ -47,7 +48,7 @@ export function buildFreqMap(draws, poolMin, poolMax) {
47
48
  freq.set(k, v / max);
48
49
  return freq;
49
50
  }
50
- export function computeProMetrics(gameId, pick, draws, weights, poolMin, poolMax, mid) {
51
+ export function computeProMetrics(gameId, pick, draws, weights, poolMin, poolMax, mid, locale) {
51
52
  const odd = pick.filter((n) => n % 2 === 1).length;
52
53
  const even = pick.length - odd;
53
54
  const m = mid ?? (poolMax && poolMin ? Math.floor((poolMin + poolMax) / 2) : 5);
@@ -63,7 +64,7 @@ export function computeProMetrics(gameId, pick, draws, weights, poolMin, poolMax
63
64
  const idx = Math.min(2, Math.floor((n - poolMin) / size));
64
65
  z[idx] = (z[idx] ?? 0) + 1;
65
66
  }
66
- zones = `三区 ${z.join(':')}`;
67
+ zones = t(locale, 'zones', { zones: z.join(':') });
67
68
  }
68
69
  const rows = draws.map((d) => extractFlat(d.numbers, gameId)).filter((a) => a.length);
69
70
  const recent = rows.slice(0, 10).flat();
@@ -76,16 +77,16 @@ export function computeProMetrics(gameId, pick, draws, weights, poolMin, poolMax
76
77
  .map(([n]) => String(n))
77
78
  .join(',');
78
79
  return {
79
- oddEven: `奇偶 ${odd}:${even}`,
80
- bigSmall: `大小 ${big}:${small}`,
80
+ oddEven: t(locale, 'oddEven', { odd, even }),
81
+ bigSmall: t(locale, 'bigSmall', { big, small }),
81
82
  sum,
82
83
  span,
83
84
  zones,
84
- recentHot: recentHot ? `近10期热号 ${recentHot}` : '',
85
- modelWeights: `权重 ${formatWeights(weights)}`,
85
+ recentHot: recentHot ? t(locale, 'recentHot', { numbers: recentHot }) : '',
86
+ modelWeights: t(locale, 'weights', { weights: formatWeights(weights) }),
86
87
  };
87
88
  }
88
- export function computeDigitProMetrics(digits, draws, weights) {
89
+ export function computeDigitProMetrics(digits, draws, weights, locale) {
89
90
  const sum = digits.reduce((a, b) => a + b, 0);
90
91
  const span = digits.length ? Math.max(...digits) - Math.min(...digits) : 0;
91
92
  const posHints = [];
@@ -97,7 +98,7 @@ export function computeDigitProMetrics(digits, draws, weights) {
97
98
  freq.set(d, 0);
98
99
  col.slice(0, RECENT_WINDOW).forEach((n) => freq.set(n, (freq.get(n) ?? 0) + 1));
99
100
  const top = [...freq.entries()].sort((a, b) => b[1] - a[1]).slice(0, 3).map(([d]) => d);
100
- posHints.push(`第${pos + 1}位[${top.join(',')}]`);
101
+ posHints.push(t(locale, 'digitPos', { position: pos + 1, numbers: top.join(',') }));
101
102
  }
102
103
  return {
103
104
  oddEven: '',
@@ -106,7 +107,7 @@ export function computeDigitProMetrics(digits, draws, weights) {
106
107
  span,
107
108
  digitPos: posHints.join(' '),
108
109
  recentHot: '',
109
- modelWeights: `权重 ${formatWeights(weights)}`,
110
+ modelWeights: t(locale, 'weights', { weights: formatWeights(weights) }),
110
111
  };
111
112
  }
112
113
  function extractFlat(n, gameId) {