diff --git a/plugins/plugin-i18n/src/index.mjs b/plugins/plugin-i18n/src/index.mjs index 0a11050daf1..0b6c439c726 100644 --- a/plugins/plugin-i18n/src/index.mjs +++ b/plugins/plugin-i18n/src/index.mjs @@ -5,10 +5,11 @@ export const plugin = { version, hooks: { insertText: (locale, text, t, pattern) => { - if (t instanceof Function) return t(text) + if (t instanceof Function) return t(text, locale) + else if (typeof t[locale] === 'object') return t[locale][text] || text else { const msg = - "No translation method was passed to the i18n plugin. This plugin won't do anything without a translation method" + "No translation method or object was passed to the i18n plugin. This plugin won't do anything without that" if (pattern?.store?.log?.warning) { if (!pattern.store.get(['plugins', 'plugin-i18n', 'missingMethodWarning'])) { pattern.store.set(['plugins', 'plugin-i18n', 'missingMethodWarning'], true) diff --git a/plugins/plugin-i18n/tests/plugin.test.mjs b/plugins/plugin-i18n/tests/plugin.test.mjs index 75ce66c7339..b05abdb24d0 100644 --- a/plugins/plugin-i18n/tests/plugin.test.mjs +++ b/plugins/plugin-i18n/tests/plugin.test.mjs @@ -5,10 +5,8 @@ import { plugin } from '../src/index.mjs' const expect = chai.expect const content = { - strings: { - en: { - testString: 'This is a test string for the i18n plugin', - }, + en: { + testString: 'This is a test string for the i18n plugin', }, } @@ -31,6 +29,6 @@ describe('I18n Plugin Tests', () => { const Pattern = new Design({ parts: [part] }) const pattern = new Pattern() const svg = pattern.draft().render() - expect(svg).to.contain(content.strings.en.testString) + expect(svg).to.contain(content.en.testString) }) })