diff --git a/package-lock.json b/package-lock.json index a7e375cb..ffc35643 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "5.13.1", "license": "MIT", "dependencies": { - "@draggable/formeo-languages": "^3.7.0", + "@draggable/formeo-languages": "^3.8.0", "@draggable/i18n": "^1.0.7", "@draggable/tooltip": "^1.2.2", "lodash": "^4.17.21", @@ -912,9 +912,9 @@ } }, "node_modules/@draggable/formeo-languages": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@draggable/formeo-languages/-/formeo-languages-3.7.0.tgz", - "integrity": "sha512-p1jwfFM3Lo+RAnSAbYz8SgXlqMXHRORFgKXc9nyD4zysj9gp7FkRMpUYwoQqEekF3ce5dF73+upX3PnKa2xexQ==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@draggable/formeo-languages/-/formeo-languages-3.8.0.tgz", + "integrity": "sha512-Ou3lv9n40dM4D30YoITnKB5B8CfOimP96UW42Igpw5wk5veu9T4PsCj5ZiAvVzBdh2uFyeZV5xCZTaMknVlIUA==", "license": "MIT", "dependencies": { "@draggable/i18n": "1.1.1" diff --git a/package.json b/package.json index 124645c7..b978dd47 100644 --- a/package.json +++ b/package.json @@ -139,7 +139,7 @@ "zod": "^4.4.3" }, "dependencies": { - "@draggable/formeo-languages": "^3.7.0", + "@draggable/formeo-languages": "^3.8.0", "@draggable/i18n": "^1.0.7", "@draggable/tooltip": "^1.2.2", "lodash": "^4.17.21", diff --git a/src/lib/js/i18n-fallbacks.test.mjs b/src/lib/js/i18n-fallbacks.test.mjs new file mode 100644 index 00000000..a6404b52 --- /dev/null +++ b/src/lib/js/i18n-fallbacks.test.mjs @@ -0,0 +1,24 @@ +import { strict as assert } from 'node:assert' +import { describe, it } from 'node:test' +import { enUS } from '@draggable/formeo-languages' + +/** + * Keys used as `i18n.get(key, vars) || ''` across the editor, until + * @draggable/formeo-languages ships them. Each ships from 3.8.0 (Draggable/formeo-languages#87, refs #331). + * `duplicateFieldName`'s fallback is a template literal in code (duplicate-name-hint.js); the `{name}` form + * below is the token the shipped translation carries and `i18n.get` fills at call time. + */ +const FALLBACKS = { + reorderOption: 'Drag to reorder', // edit-panel-item.mjs + attributeNameRequired: 'Enter an attribute name', // common/actions.js + selectConfigKey: 'Select Configuration Key', // edit-panel/edit-panel.js + duplicateFieldName: 'Another field is also named "{name}", so their answers will share one key.', // edit-panel/duplicate-name-hint.js +} + +describe('i18n fallbacks (#331)', () => { + it('@draggable/formeo-languages ships reorderOption, attributeNameRequired, selectConfigKey and duplicateFieldName, matching the English fallback', () => { + for (const [key, text] of Object.entries(FALLBACKS)) { + assert.equal(enUS[key], text, key) + } + }) +})