@gamepark/react-game 7.7.0 → 7.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,6 +8,7 @@ import HttpBackend from 'i18next-http-backend';
8
8
  import ICU from 'i18next-icu';
9
9
  import { initReactI18next } from 'react-i18next';
10
10
  let translationInitialized = false;
11
+ const reportedKeys = new Set();
11
12
  /**
12
13
  * Setup i18next global instance.
13
14
  * @param gameId The game identifier used as the default namespace
@@ -34,22 +35,26 @@ export const setupTranslation = (gameId, options) => {
34
35
  if (ns === gameId) {
35
36
  return `/translation/{{lng}}.json`;
36
37
  }
37
- return 'https://translations.game-park.com/{{lng}}/{{ns}}.json';
38
+ return `${PLATFORM_URI}/translations/{{ns}}/{{lng}}.json`;
38
39
  }
39
40
  },
40
- saveMissing: process.env.NODE_ENV === 'production',
41
- missingKeyHandler: (lngs, namespace, key, defaultValue) => {
41
+ saveMissing: true,
42
+ missingKeyHandler: (lngs, namespace, key) => {
42
43
  const locale = lngs[0];
43
44
  if (!locale || !namespace || !key)
44
45
  return;
45
46
  if (/_zero|_one|_two|_few|_many|_other$/.test(key))
46
47
  return;
47
- try {
48
- const body = JSON.stringify({ locale, namespace, key, defaultValue, origin: window.location.href });
49
- navigator.sendBeacon(`${PLATFORM_URI}/api/translations/missing`, new Blob([body], { type: 'text/plain' }));
48
+ const cacheKey = `${locale}:${namespace}:${key}`;
49
+ if (reportedKeys.has(cacheKey))
50
+ return;
51
+ reportedKeys.add(cacheKey);
52
+ const msg = `[Translation] Missing key: ${namespace}|${key} (locale: ${locale})`;
53
+ if (process.env.NODE_ENV === 'production') {
54
+ console.error(msg);
50
55
  }
51
- catch (error) {
52
- console.error('[Translation] Failed to report missing key:', error);
56
+ else {
57
+ console.warn(msg);
53
58
  }
54
59
  },
55
60
  ...options
@@ -1 +1 @@
1
- {"version":3,"file":"translation.util.js","sourceRoot":"","sources":["../../src/utilities/translation.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,iBAAiB,CAAA;AACxB,OAAO,iBAAiB,CAAA;AACxB,OAAO,iBAAiB,CAAA;AACxB,OAAO,OAAwB,MAAM,SAAS,CAAA;AAC9C,OAAO,WAAW,MAAM,sBAAsB,CAAA;AAC9C,OAAO,GAAG,MAAM,aAAa,CAAA;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAEhD,IAAI,sBAAsB,GAAG,KAAK,CAAA;AAElC;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAE,OAAqB,EAAE,EAAE;IACxE,IAAI,sBAAsB,EAAE,CAAC;QAC3B,OAAM;IACR,CAAC;IAED,sBAAsB,GAAG,IAAI,CAAA;IAE7B,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;IAEvD,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IACzD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAA;IAC1C,QAAQ,CAAC,eAAe,CAAC,IAAI,GAAG,MAAM,CAAA;IAEtC,OAAO,CAAC,IAAI,CAAC;QACX,GAAG,EAAE,MAAM;QACX,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,KAAK,MAAM;QACjD,WAAW,EAAE,IAAI;QACjB,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC;QACjC,SAAS,EAAE,MAAM;QACjB,OAAO,EAAE;YACP,QAAQ,EAAE,CAAC,KAAe,EAAE,UAAoB,EAAE,EAAE;gBAClD,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;gBACxB,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;oBAClB,OAAO,2BAA2B,CAAA;gBACpC,CAAC;gBACD,OAAO,wDAAwD,CAAA;YACjE,CAAC;SACF;QACD,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;QAClD,iBAAiB,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE;YACxD,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YACtB,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG;gBAAE,OAAM;YACzC,IAAI,oCAAoC,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,OAAM;YAC1D,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;gBACnG,SAAS,CAAC,UAAU,CAAC,GAAG,YAAY,2BAA2B,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAA;YAC5G,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,KAAK,CAAC,CAAA;YACrE,CAAC;QACH,CAAC;QACD,GAAG,OAAO;KACX,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;IAEvC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AACtB,CAAC,CAAA"}
1
+ {"version":3,"file":"translation.util.js","sourceRoot":"","sources":["../../src/utilities/translation.util.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gamepark/react-game",
3
- "version": "7.7.0",
3
+ "version": "7.7.1",
4
4
  "type": "module",
5
5
  "description": "React components & tools to create a Board Game user interface for Game Park",
6
6
  "author": "Romain Fromi <romain@game-park.com> (https://game-park.com/)",