@wordpress/i18n 4.2.3 → 4.2.4
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.
- package/build/create-i18n.js +17 -4
- package/build/create-i18n.js.map +1 -1
- package/build/default-i18n.js +1 -1
- package/build/index.js +28 -26
- package/build/index.js.map +1 -1
- package/build/sprintf.js +5 -1
- package/build/sprintf.js.map +1 -1
- package/build-module/create-i18n.js +17 -4
- package/build-module/create-i18n.js.map +1 -1
- package/build-module/sprintf.js +5 -1
- package/build-module/sprintf.js.map +1 -1
- package/package.json +4 -4
package/build/create-i18n.js
CHANGED
|
@@ -190,14 +190,18 @@ const createI18n = (initialData, initialDomain, hooks) => {
|
|
|
190
190
|
/** @type {GetLocaleData} */
|
|
191
191
|
|
|
192
192
|
|
|
193
|
-
const getLocaleData = (
|
|
193
|
+
const getLocaleData = function () {
|
|
194
|
+
let domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';
|
|
195
|
+
return tannin.data[domain];
|
|
196
|
+
};
|
|
194
197
|
/**
|
|
195
198
|
* @param {LocaleData} [data]
|
|
196
199
|
* @param {string} [domain]
|
|
197
200
|
*/
|
|
198
201
|
|
|
199
202
|
|
|
200
|
-
const doSetLocaleData = (data
|
|
203
|
+
const doSetLocaleData = function (data) {
|
|
204
|
+
let domain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';
|
|
201
205
|
tannin.data[domain] = { ...DEFAULT_LOCALE_DATA,
|
|
202
206
|
...tannin.data[domain],
|
|
203
207
|
...data
|
|
@@ -242,7 +246,13 @@ const createI18n = (initialData, initialDomain, hooks) => {
|
|
|
242
246
|
*/
|
|
243
247
|
|
|
244
248
|
|
|
245
|
-
const dcnpgettext = (
|
|
249
|
+
const dcnpgettext = function () {
|
|
250
|
+
let domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';
|
|
251
|
+
let context = arguments.length > 1 ? arguments[1] : undefined;
|
|
252
|
+
let single = arguments.length > 2 ? arguments[2] : undefined;
|
|
253
|
+
let plural = arguments.length > 3 ? arguments[3] : undefined;
|
|
254
|
+
let number = arguments.length > 4 ? arguments[4] : undefined;
|
|
255
|
+
|
|
246
256
|
if (!tannin.data[domain]) {
|
|
247
257
|
// use `doSetLocaleData` to set silently, without notifying listeners
|
|
248
258
|
doSetLocaleData(undefined, domain);
|
|
@@ -253,7 +263,10 @@ const createI18n = (initialData, initialDomain, hooks) => {
|
|
|
253
263
|
/** @type {GetFilterDomain} */
|
|
254
264
|
|
|
255
265
|
|
|
256
|
-
const getFilterDomain = (
|
|
266
|
+
const getFilterDomain = function () {
|
|
267
|
+
let domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';
|
|
268
|
+
return domain;
|
|
269
|
+
};
|
|
257
270
|
/** @type {__} */
|
|
258
271
|
|
|
259
272
|
|
package/build/create-i18n.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/i18n/src/create-i18n.js"],"names":["DEFAULT_LOCALE_DATA","plural_forms","n","I18N_HOOK_REGEXP","createI18n","initialData","initialDomain","hooks","tannin","Tannin","listeners","Set","notifyListeners","forEach","listener","subscribe","callback","add","delete","getLocaleData","domain","data","doSetLocaleData","setLocaleData","resetLocaleData","pluralForms","dcnpgettext","context","single","plural","number","undefined","getFilterDomain","__","text","translation","applyFilters","_x","_n","_nx","isRTL","hasTranslation","key","result","onHookAddedOrRemoved","hookName","test","addAction"],"mappings":";;;;;;;;;AAGA;;AAHA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMA,mBAAmB,GAAG;AAC3B,MAAI;AACH;AACAC,IAAAA,YAAY,CAAEC,CAAF,EAAM;AACjB,aAAOA,CAAC,KAAK,CAAN,GAAU,CAAV,GAAc,CAArB;AACA;;AAJE;AADuB,CAA5B;AASA;AACA;AACA;AACA;;AACA,MAAMC,gBAAgB,GAAG,yCAAzB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;AACA;;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,MAAMC,UAAU,GAAG,CAAEC,WAAF,EAAeC,aAAf,EAA8BC,KAA9B,KAAyC;AAClE;AACD;AACA;AACA;AACA;AACC,QAAMC,MAAM,GAAG,IAAIC,eAAJ,CAAY,EAAZ,CAAf;AAEA,QAAMC,SAAS,GAAG,IAAIC,GAAJ,EAAlB;;AAEA,QAAMC,eAAe,GAAG,MAAM;AAC7BF,IAAAA,SAAS,CAACG,OAAV,CAAqBC,QAAF,IAAgBA,QAAQ,EAA3C;AACA,GAFD;AAIA;AACD;AACA;AACA;AACA;AACA;;;AACC,QAAMC,SAAS,GAAKC,QAAF,IAAgB;AACjCN,IAAAA,SAAS,CAACO,GAAV,CAAeD,QAAf;AACA,WAAO,MAAMN,SAAS,CAACQ,MAAV,CAAkBF,QAAlB,CAAb;AACA,GAHD;AAKA;;;AACA,QAAMG,aAAa,GAAG,CAAEC,MAAM,GAAG,SAAX,KAA0BZ,MAAM,CAACa,IAAP,CAAaD,MAAb,CAAhD;AAEA;AACD;AACA;AACA;;;AACC,QAAME,eAAe,GAAG,CAAED,IAAF,EAAQD,MAAM,GAAG,SAAjB,KAAgC;AACvDZ,IAAAA,MAAM,CAACa,IAAP,CAAaD,MAAb,IAAwB,EACvB,GAAGpB,mBADoB;AAEvB,SAAGQ,MAAM,CAACa,IAAP,CAAaD,MAAb,CAFoB;AAGvB,SAAGC;AAHoB,KAAxB,CADuD,CAOvD;AACA;;AACAb,IAAAA,MAAM,CAACa,IAAP,CAAaD,MAAb,EAAuB,EAAvB,IAA8B,EAC7B,GAAGpB,mBAAmB,CAAE,EAAF,CADO;AAE7B,SAAGQ,MAAM,CAACa,IAAP,CAAaD,MAAb,EAAuB,EAAvB;AAF0B,KAA9B;AAIA,GAbD;AAeA;;;AACA,QAAMG,aAAa,GAAG,CAAEF,IAAF,EAAQD,MAAR,KAAoB;AACzCE,IAAAA,eAAe,CAAED,IAAF,EAAQD,MAAR,CAAf;AACAR,IAAAA,eAAe;AACf,GAHD;AAKA;;;AACA,QAAMY,eAAe,GAAG,CAAEH,IAAF,EAAQD,MAAR,KAAoB;AAC3C;AACAZ,IAAAA,MAAM,CAACa,IAAP,GAAc,EAAd,CAF2C,CAI3C;;AACAb,IAAAA,MAAM,CAACiB,WAAP,GAAqB,EAArB;AAEAF,IAAAA,aAAa,CAAEF,IAAF,EAAQD,MAAR,CAAb;AACA,GARD;AAUA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACC,QAAMM,WAAW,GAAG,CACnBN,MAAM,GAAG,SADU,EAEnBO,OAFmB,EAGnBC,MAHmB,EAInBC,MAJmB,EAKnBC,MALmB,KAMf;AACJ,QAAK,CAAEtB,MAAM,CAACa,IAAP,CAAaD,MAAb,CAAP,EAA+B;AAC9B;AACAE,MAAAA,eAAe,CAAES,SAAF,EAAaX,MAAb,CAAf;AACA;;AAED,WAAOZ,MAAM,CAACkB,WAAP,CAAoBN,MAApB,EAA4BO,OAA5B,EAAqCC,MAArC,EAA6CC,MAA7C,EAAqDC,MAArD,CAAP;AACA,GAbD;AAeA;;;AACA,QAAME,eAAe,GAAG,CAAEZ,MAAM,GAAG,SAAX,KAA0BA,MAAlD;AAEA;;;AACA,QAAMa,EAAE,GAAG,CAAEC,IAAF,EAAQd,MAAR,KAAoB;AAC9B,QAAIe,WAAW,GAAGT,WAAW,CAAEN,MAAF,EAAUW,SAAV,EAAqBG,IAArB,CAA7B;;AACA,QAAK,CAAE3B,KAAP,EAAe;AACd,aAAO4B,WAAP;AACA;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;AACEA,IAAAA,WAAW;AAAG;;AACb;AAAiB5B,IAAAA,KAAK,CAAC6B,YAAN,CAChB,cADgB,EAEhBD,WAFgB,EAGhBD,IAHgB,EAIhBd,MAJgB,CADlB;AAQA;AAAO;;AACN;AAAiBb,MAAAA,KAAK,CAAC6B,YAAN,CAChB,kBAAkBJ,eAAe,CAAEZ,MAAF,CADjB,EAEhBe,WAFgB,EAGhBD,IAHgB,EAIhBd,MAJgB;AADlB;AAQA,GA7BD;AA+BA;;;AACA,QAAMiB,EAAE,GAAG,CAAEH,IAAF,EAAQP,OAAR,EAAiBP,MAAjB,KAA6B;AACvC,QAAIe,WAAW,GAAGT,WAAW,CAAEN,MAAF,EAAUO,OAAV,EAAmBO,IAAnB,CAA7B;;AACA,QAAK,CAAE3B,KAAP,EAAe;AACd,aAAO4B,WAAP;AACA;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;AACEA,IAAAA,WAAW;AAAG;;AACb;AAAiB5B,IAAAA,KAAK,CAAC6B,YAAN,CAChB,2BADgB,EAEhBD,WAFgB,EAGhBD,IAHgB,EAIhBP,OAJgB,EAKhBP,MALgB,CADlB;AASA;AAAO;;AACN;AAAiBb,MAAAA,KAAK,CAAC6B,YAAN,CAChB,+BAA+BJ,eAAe,CAAEZ,MAAF,CAD9B,EAEhBe,WAFgB,EAGhBD,IAHgB,EAIhBP,OAJgB,EAKhBP,MALgB;AADlB;AASA,GAhCD;AAkCA;;;AACA,QAAMkB,EAAE,GAAG,CAAEV,MAAF,EAAUC,MAAV,EAAkBC,MAAlB,EAA0BV,MAA1B,KAAsC;AAChD,QAAIe,WAAW,GAAGT,WAAW,CAC5BN,MAD4B,EAE5BW,SAF4B,EAG5BH,MAH4B,EAI5BC,MAJ4B,EAK5BC,MAL4B,CAA7B;;AAOA,QAAK,CAAEvB,KAAP,EAAe;AACd,aAAO4B,WAAP;AACA;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACEA,IAAAA,WAAW;AAAG;;AACb;AAAiB5B,IAAAA,KAAK,CAAC6B,YAAN,CAChB,eADgB,EAEhBD,WAFgB,EAGhBP,MAHgB,EAIhBC,MAJgB,EAKhBC,MALgB,EAMhBV,MANgB,CADlB;AAUA;AAAO;;AACN;AAAiBb,MAAAA,KAAK,CAAC6B,YAAN,CAChB,mBAAmBJ,eAAe,CAAEZ,MAAF,CADlB,EAEhBe,WAFgB,EAGhBP,MAHgB,EAIhBC,MAJgB,EAKhBC,MALgB,EAMhBV,MANgB;AADlB;AAUA,GAzCD;AA2CA;;;AACA,QAAMmB,GAAG,GAAG,CAAEX,MAAF,EAAUC,MAAV,EAAkBC,MAAlB,EAA0BH,OAA1B,EAAmCP,MAAnC,KAA+C;AAC1D,QAAIe,WAAW,GAAGT,WAAW,CAC5BN,MAD4B,EAE5BO,OAF4B,EAG5BC,MAH4B,EAI5BC,MAJ4B,EAK5BC,MAL4B,CAA7B;;AAOA,QAAK,CAAEvB,KAAP,EAAe;AACd,aAAO4B,WAAP;AACA;AAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACEA,IAAAA,WAAW;AAAG;;AACb;AAAiB5B,IAAAA,KAAK,CAAC6B,YAAN,CAChB,4BADgB,EAEhBD,WAFgB,EAGhBP,MAHgB,EAIhBC,MAJgB,EAKhBC,MALgB,EAMhBH,OANgB,EAOhBP,MAPgB,CADlB;AAYA;AAAO;;AACN;AAAiBb,MAAAA,KAAK,CAAC6B,YAAN,CAChB,gCAAgCJ,eAAe,CAAEZ,MAAF,CAD/B,EAEhBe,WAFgB,EAGhBP,MAHgB,EAIhBC,MAJgB,EAKhBC,MALgB,EAMhBH,OANgB,EAOhBP,MAPgB;AADlB;AAWA,GA7CD;AA+CA;;;AACA,QAAMoB,KAAK,GAAG,MAAM;AACnB,WAAO,UAAUH,EAAE,CAAE,KAAF,EAAS,gBAAT,CAAnB;AACA,GAFD;AAIA;;;AACA,QAAMI,cAAc,GAAG,CAAEb,MAAF,EAAUD,OAAV,EAAmBP,MAAnB,KAA+B;AAAA;;AACrD,UAAMsB,GAAG,GAAGf,OAAO,GAAGA,OAAO,GAAG,QAAV,GAAqBC,MAAxB,GAAiCA,MAApD;AACA,QAAIe,MAAM,GAAG,CAAC,kBAAEnC,MAAM,CAACa,IAAT,0DAAE,aAAeD,MAAf,aAAeA,MAAf,cAAeA,MAAf,GAAyB,SAAzB,CAAF,0CAAE,cAAwCsB,GAAxC,CAAF,CAAd;;AACA,QAAKnC,KAAL,EAAa;AACZ;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACGoC,MAAAA,MAAM;AAAG;;AACR;AAAiBpC,MAAAA,KAAK,CAAC6B,YAAN,CAChB,sBADgB,EAEhBO,MAFgB,EAGhBf,MAHgB,EAIhBD,OAJgB,EAKhBP,MALgB,CADlB;AAUAuB,MAAAA,MAAM;AAAG;;AACR;AAAiBpC,MAAAA,KAAK,CAAC6B,YAAN,CAChB,0BAA0BJ,eAAe,CAAEZ,MAAF,CADzB,EAEhBuB,MAFgB,EAGhBf,MAHgB,EAIhBD,OAJgB,EAKhBP,MALgB,CADlB;AASA;;AACD,WAAOuB,MAAP;AACA,GAjCD;;AAmCA,MAAKtC,WAAL,EAAmB;AAClBkB,IAAAA,aAAa,CAAElB,WAAF,EAAeC,aAAf,CAAb;AACA;;AAED,MAAKC,KAAL,EAAa;AACZ;AACF;AACA;AACE,UAAMqC,oBAAoB,GAAKC,QAAF,IAAgB;AAC5C,UAAK1C,gBAAgB,CAAC2C,IAAjB,CAAuBD,QAAvB,CAAL,EAAyC;AACxCjC,QAAAA,eAAe;AACf;AACD,KAJD;;AAMAL,IAAAA,KAAK,CAACwC,SAAN,CAAiB,WAAjB,EAA8B,WAA9B,EAA2CH,oBAA3C;AACArC,IAAAA,KAAK,CAACwC,SAAN,CAAiB,aAAjB,EAAgC,WAAhC,EAA6CH,oBAA7C;AACA;;AAED,SAAO;AACNzB,IAAAA,aADM;AAENI,IAAAA,aAFM;AAGNC,IAAAA,eAHM;AAINT,IAAAA,SAJM;AAKNkB,IAAAA,EALM;AAMNI,IAAAA,EANM;AAONC,IAAAA,EAPM;AAQNC,IAAAA,GARM;AASNC,IAAAA,KATM;AAUNC,IAAAA;AAVM,GAAP;AAYA,CAvUM","sourcesContent":["/**\n * External dependencies\n */\nimport Tannin from 'tannin';\n\n/**\n * @typedef {Record<string,any>} LocaleData\n */\n\n/**\n * Default locale data to use for Tannin domain when not otherwise provided.\n * Assumes an English plural forms expression.\n *\n * @type {LocaleData}\n */\nconst DEFAULT_LOCALE_DATA = {\n\t'': {\n\t\t/** @param {number} n */\n\t\tplural_forms( n ) {\n\t\t\treturn n === 1 ? 0 : 1;\n\t\t},\n\t},\n};\n\n/*\n * Regular expression that matches i18n hooks like `i18n.gettext`, `i18n.ngettext`,\n * `i18n.gettext_domain` or `i18n.ngettext_with_context` or `i18n.has_translation`.\n */\nconst I18N_HOOK_REGEXP = /^i18n\\.(n?gettext|has_translation)(_|$)/;\n\n/**\n * @typedef {(domain?: string) => LocaleData} GetLocaleData\n *\n * Returns locale data by domain in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n/**\n * @typedef {(data?: LocaleData, domain?: string) => void} SetLocaleData\n *\n * Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n/**\n * @typedef {(data?: LocaleData, domain?: string) => void} ResetLocaleData\n *\n * Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n/** @typedef {() => void} SubscribeCallback */\n/** @typedef {() => void} UnsubscribeCallback */\n/**\n * @typedef {(callback: SubscribeCallback) => UnsubscribeCallback} Subscribe\n *\n * Subscribes to changes of locale data\n */\n/**\n * @typedef {(domain?: string) => string} GetFilterDomain\n * Retrieve the domain to use when calling domain-specific filters.\n */\n/**\n * @typedef {(text: string, domain?: string) => string} __\n *\n * Retrieve the translation of text.\n *\n * @see https://developer.wordpress.org/reference/functions/__/\n */\n/**\n * @typedef {(text: string, context: string, domain?: string) => string} _x\n *\n * Retrieve translated string with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_x/\n */\n/**\n * @typedef {(single: string, plural: string, number: number, domain?: string) => string} _n\n *\n * Translates and retrieves the singular or plural form based on the supplied\n * number.\n *\n * @see https://developer.wordpress.org/reference/functions/_n/\n */\n/**\n * @typedef {(single: string, plural: string, number: number, context: string, domain?: string) => string} _nx\n *\n * Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_nx/\n */\n/**\n * @typedef {() => boolean} IsRtl\n *\n * Check if current locale is RTL.\n *\n * **RTL (Right To Left)** is a locale property indicating that text is written from right to left.\n * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common\n * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages,\n * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`).\n */\n/**\n * @typedef {(single: string, context?: string, domain?: string) => boolean} HasTranslation\n *\n * Check if there is a translation for a given string in singular form.\n */\n/** @typedef {import('@wordpress/hooks').Hooks} Hooks */\n\n/**\n * An i18n instance\n *\n * @typedef I18n\n * @property {GetLocaleData} getLocaleData Returns locale data by domain in a Jed-formatted JSON object shape.\n * @property {SetLocaleData} setLocaleData Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n * @property {ResetLocaleData} resetLocaleData Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n * @property {Subscribe} subscribe Subscribes to changes of Tannin locale data.\n * @property {__} __ Retrieve the translation of text.\n * @property {_x} _x Retrieve translated string with gettext context.\n * @property {_n} _n Translates and retrieves the singular or plural form based on the supplied\n * number.\n * @property {_nx} _nx Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n * @property {IsRtl} isRTL Check if current locale is RTL.\n * @property {HasTranslation} hasTranslation Check if there is a translation for a given string.\n */\n\n/**\n * Create an i18n instance\n *\n * @param {LocaleData} [initialData] Locale data configuration.\n * @param {string} [initialDomain] Domain for which configuration applies.\n * @param {Hooks} [hooks] Hooks implementation.\n *\n * @return {I18n} I18n instance.\n */\nexport const createI18n = ( initialData, initialDomain, hooks ) => {\n\t/**\n\t * The underlying instance of Tannin to which exported functions interface.\n\t *\n\t * @type {Tannin}\n\t */\n\tconst tannin = new Tannin( {} );\n\n\tconst listeners = new Set();\n\n\tconst notifyListeners = () => {\n\t\tlisteners.forEach( ( listener ) => listener() );\n\t};\n\n\t/**\n\t * Subscribe to changes of locale data.\n\t *\n\t * @param {SubscribeCallback} callback Subscription callback.\n\t * @return {UnsubscribeCallback} Unsubscribe callback.\n\t */\n\tconst subscribe = ( callback ) => {\n\t\tlisteners.add( callback );\n\t\treturn () => listeners.delete( callback );\n\t};\n\n\t/** @type {GetLocaleData} */\n\tconst getLocaleData = ( domain = 'default' ) => tannin.data[ domain ];\n\n\t/**\n\t * @param {LocaleData} [data]\n\t * @param {string} [domain]\n\t */\n\tconst doSetLocaleData = ( data, domain = 'default' ) => {\n\t\ttannin.data[ domain ] = {\n\t\t\t...DEFAULT_LOCALE_DATA,\n\t\t\t...tannin.data[ domain ],\n\t\t\t...data,\n\t\t};\n\n\t\t// Populate default domain configuration (supported locale date which omits\n\t\t// a plural forms expression).\n\t\ttannin.data[ domain ][ '' ] = {\n\t\t\t...DEFAULT_LOCALE_DATA[ '' ],\n\t\t\t...tannin.data[ domain ][ '' ],\n\t\t};\n\t};\n\n\t/** @type {SetLocaleData} */\n\tconst setLocaleData = ( data, domain ) => {\n\t\tdoSetLocaleData( data, domain );\n\t\tnotifyListeners();\n\t};\n\n\t/** @type {ResetLocaleData} */\n\tconst resetLocaleData = ( data, domain ) => {\n\t\t// Reset all current Tannin locale data.\n\t\ttannin.data = {};\n\n\t\t// Reset cached plural forms functions cache.\n\t\ttannin.pluralForms = {};\n\n\t\tsetLocaleData( data, domain );\n\t};\n\n\t/**\n\t * Wrapper for Tannin's `dcnpgettext`. Populates default locale data if not\n\t * otherwise previously assigned.\n\t *\n\t * @param {string|undefined} domain Domain to retrieve the translated text.\n\t * @param {string|undefined} context Context information for the translators.\n\t * @param {string} single Text to translate if non-plural. Used as\n\t * fallback return value on a caught error.\n\t * @param {string} [plural] The text to be used if the number is\n\t * plural.\n\t * @param {number} [number] The number to compare against to use\n\t * either the singular or plural form.\n\t *\n\t * @return {string} The translated string.\n\t */\n\tconst dcnpgettext = (\n\t\tdomain = 'default',\n\t\tcontext,\n\t\tsingle,\n\t\tplural,\n\t\tnumber\n\t) => {\n\t\tif ( ! tannin.data[ domain ] ) {\n\t\t\t// use `doSetLocaleData` to set silently, without notifying listeners\n\t\t\tdoSetLocaleData( undefined, domain );\n\t\t}\n\n\t\treturn tannin.dcnpgettext( domain, context, single, plural, number );\n\t};\n\n\t/** @type {GetFilterDomain} */\n\tconst getFilterDomain = ( domain = 'default' ) => domain;\n\n\t/** @type {__} */\n\tconst __ = ( text, domain ) => {\n\t\tlet translation = dcnpgettext( domain, undefined, text );\n\t\tif ( ! hooks ) {\n\t\t\treturn translation;\n\t\t}\n\n\t\t/**\n\t\t * Filters text with its translation.\n\t\t *\n\t\t * @param {string} translation Translated text.\n\t\t * @param {string} text Text to translate.\n\t\t * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n\t\t */\n\t\ttranslation = /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.gettext',\n\t\t\t\ttranslation,\n\t\t\t\ttext,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\t\treturn /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.gettext_' + getFilterDomain( domain ),\n\t\t\t\ttranslation,\n\t\t\t\ttext,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\t};\n\n\t/** @type {_x} */\n\tconst _x = ( text, context, domain ) => {\n\t\tlet translation = dcnpgettext( domain, context, text );\n\t\tif ( ! hooks ) {\n\t\t\treturn translation;\n\t\t}\n\n\t\t/**\n\t\t * Filters text with its translation based on context information.\n\t\t *\n\t\t * @param {string} translation Translated text.\n\t\t * @param {string} text Text to translate.\n\t\t * @param {string} context Context information for the translators.\n\t\t * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n\t\t */\n\t\ttranslation = /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.gettext_with_context',\n\t\t\t\ttranslation,\n\t\t\t\ttext,\n\t\t\t\tcontext,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\t\treturn /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.gettext_with_context_' + getFilterDomain( domain ),\n\t\t\t\ttranslation,\n\t\t\t\ttext,\n\t\t\t\tcontext,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\t};\n\n\t/** @type {_n} */\n\tconst _n = ( single, plural, number, domain ) => {\n\t\tlet translation = dcnpgettext(\n\t\t\tdomain,\n\t\t\tundefined,\n\t\t\tsingle,\n\t\t\tplural,\n\t\t\tnumber\n\t\t);\n\t\tif ( ! hooks ) {\n\t\t\treturn translation;\n\t\t}\n\n\t\t/**\n\t\t * Filters the singular or plural form of a string.\n\t\t *\n\t\t * @param {string} translation Translated text.\n\t\t * @param {string} single The text to be used if the number is singular.\n\t\t * @param {string} plural The text to be used if the number is plural.\n\t\t * @param {string} number The number to compare against to use either the singular or plural form.\n\t\t * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n\t\t */\n\t\ttranslation = /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.ngettext',\n\t\t\t\ttranslation,\n\t\t\t\tsingle,\n\t\t\t\tplural,\n\t\t\t\tnumber,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\t\treturn /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.ngettext_' + getFilterDomain( domain ),\n\t\t\t\ttranslation,\n\t\t\t\tsingle,\n\t\t\t\tplural,\n\t\t\t\tnumber,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\t};\n\n\t/** @type {_nx} */\n\tconst _nx = ( single, plural, number, context, domain ) => {\n\t\tlet translation = dcnpgettext(\n\t\t\tdomain,\n\t\t\tcontext,\n\t\t\tsingle,\n\t\t\tplural,\n\t\t\tnumber\n\t\t);\n\t\tif ( ! hooks ) {\n\t\t\treturn translation;\n\t\t}\n\n\t\t/**\n\t\t * Filters the singular or plural form of a string with gettext context.\n\t\t *\n\t\t * @param {string} translation Translated text.\n\t\t * @param {string} single The text to be used if the number is singular.\n\t\t * @param {string} plural The text to be used if the number is plural.\n\t\t * @param {string} number The number to compare against to use either the singular or plural form.\n\t\t * @param {string} context Context information for the translators.\n\t\t * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n\t\t */\n\t\ttranslation = /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.ngettext_with_context',\n\t\t\t\ttranslation,\n\t\t\t\tsingle,\n\t\t\t\tplural,\n\t\t\t\tnumber,\n\t\t\t\tcontext,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\n\t\treturn /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.ngettext_with_context_' + getFilterDomain( domain ),\n\t\t\t\ttranslation,\n\t\t\t\tsingle,\n\t\t\t\tplural,\n\t\t\t\tnumber,\n\t\t\t\tcontext,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\t};\n\n\t/** @type {IsRtl} */\n\tconst isRTL = () => {\n\t\treturn 'rtl' === _x( 'ltr', 'text direction' );\n\t};\n\n\t/** @type {HasTranslation} */\n\tconst hasTranslation = ( single, context, domain ) => {\n\t\tconst key = context ? context + '\\u0004' + single : single;\n\t\tlet result = !! tannin.data?.[ domain ?? 'default' ]?.[ key ];\n\t\tif ( hooks ) {\n\t\t\t/**\n\t\t\t * Filters the presence of a translation in the locale data.\n\t\t\t *\n\t\t\t * @param {boolean} hasTranslation Whether the translation is present or not..\n\t\t\t * @param {string} single The singular form of the translated text (used as key in locale data)\n\t\t\t * @param {string} context Context information for the translators.\n\t\t\t * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n\t\t\t */\n\t\t\tresult = /** @type { boolean } */ (\n\t\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t\t'i18n.has_translation',\n\t\t\t\t\tresult,\n\t\t\t\t\tsingle,\n\t\t\t\t\tcontext,\n\t\t\t\t\tdomain\n\t\t\t\t)\n\t\t\t);\n\n\t\t\tresult = /** @type { boolean } */ (\n\t\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t\t'i18n.has_translation_' + getFilterDomain( domain ),\n\t\t\t\t\tresult,\n\t\t\t\t\tsingle,\n\t\t\t\t\tcontext,\n\t\t\t\t\tdomain\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\treturn result;\n\t};\n\n\tif ( initialData ) {\n\t\tsetLocaleData( initialData, initialDomain );\n\t}\n\n\tif ( hooks ) {\n\t\t/**\n\t\t * @param {string} hookName\n\t\t */\n\t\tconst onHookAddedOrRemoved = ( hookName ) => {\n\t\t\tif ( I18N_HOOK_REGEXP.test( hookName ) ) {\n\t\t\t\tnotifyListeners();\n\t\t\t}\n\t\t};\n\n\t\thooks.addAction( 'hookAdded', 'core/i18n', onHookAddedOrRemoved );\n\t\thooks.addAction( 'hookRemoved', 'core/i18n', onHookAddedOrRemoved );\n\t}\n\n\treturn {\n\t\tgetLocaleData,\n\t\tsetLocaleData,\n\t\tresetLocaleData,\n\t\tsubscribe,\n\t\t__,\n\t\t_x,\n\t\t_n,\n\t\t_nx,\n\t\tisRTL,\n\t\thasTranslation,\n\t};\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/i18n/src/create-i18n.js"],"names":["DEFAULT_LOCALE_DATA","plural_forms","n","I18N_HOOK_REGEXP","createI18n","initialData","initialDomain","hooks","tannin","Tannin","listeners","Set","notifyListeners","forEach","listener","subscribe","callback","add","delete","getLocaleData","domain","data","doSetLocaleData","setLocaleData","resetLocaleData","pluralForms","dcnpgettext","context","single","plural","number","undefined","getFilterDomain","__","text","translation","applyFilters","_x","_n","_nx","isRTL","hasTranslation","key","result","onHookAddedOrRemoved","hookName","test","addAction"],"mappings":";;;;;;;;;AAGA;;AAHA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMA,mBAAmB,GAAG;AAC3B,MAAI;AACH;AACAC,IAAAA,YAAY,CAAEC,CAAF,EAAM;AACjB,aAAOA,CAAC,KAAK,CAAN,GAAU,CAAV,GAAc,CAArB;AACA;;AAJE;AADuB,CAA5B;AASA;AACA;AACA;AACA;;AACA,MAAMC,gBAAgB,GAAG,yCAAzB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;AACA;;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,MAAMC,UAAU,GAAG,CAAEC,WAAF,EAAeC,aAAf,EAA8BC,KAA9B,KAAyC;AAClE;AACD;AACA;AACA;AACA;AACC,QAAMC,MAAM,GAAG,IAAIC,eAAJ,CAAY,EAAZ,CAAf;AAEA,QAAMC,SAAS,GAAG,IAAIC,GAAJ,EAAlB;;AAEA,QAAMC,eAAe,GAAG,MAAM;AAC7BF,IAAAA,SAAS,CAACG,OAAV,CAAqBC,QAAF,IAAgBA,QAAQ,EAA3C;AACA,GAFD;AAIA;AACD;AACA;AACA;AACA;AACA;;;AACC,QAAMC,SAAS,GAAKC,QAAF,IAAgB;AACjCN,IAAAA,SAAS,CAACO,GAAV,CAAeD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","sourcesContent":["/**\n * External dependencies\n */\nimport Tannin from 'tannin';\n\n/**\n * @typedef {Record<string,any>} LocaleData\n */\n\n/**\n * Default locale data to use for Tannin domain when not otherwise provided.\n * Assumes an English plural forms expression.\n *\n * @type {LocaleData}\n */\nconst DEFAULT_LOCALE_DATA = {\n\t'': {\n\t\t/** @param {number} n */\n\t\tplural_forms( n ) {\n\t\t\treturn n === 1 ? 0 : 1;\n\t\t},\n\t},\n};\n\n/*\n * Regular expression that matches i18n hooks like `i18n.gettext`, `i18n.ngettext`,\n * `i18n.gettext_domain` or `i18n.ngettext_with_context` or `i18n.has_translation`.\n */\nconst I18N_HOOK_REGEXP = /^i18n\\.(n?gettext|has_translation)(_|$)/;\n\n/**\n * @typedef {(domain?: string) => LocaleData} GetLocaleData\n *\n * Returns locale data by domain in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n/**\n * @typedef {(data?: LocaleData, domain?: string) => void} SetLocaleData\n *\n * Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n/**\n * @typedef {(data?: LocaleData, domain?: string) => void} ResetLocaleData\n *\n * Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n/** @typedef {() => void} SubscribeCallback */\n/** @typedef {() => void} UnsubscribeCallback */\n/**\n * @typedef {(callback: SubscribeCallback) => UnsubscribeCallback} Subscribe\n *\n * Subscribes to changes of locale data\n */\n/**\n * @typedef {(domain?: string) => string} GetFilterDomain\n * Retrieve the domain to use when calling domain-specific filters.\n */\n/**\n * @typedef {(text: string, domain?: string) => string} __\n *\n * Retrieve the translation of text.\n *\n * @see https://developer.wordpress.org/reference/functions/__/\n */\n/**\n * @typedef {(text: string, context: string, domain?: string) => string} _x\n *\n * Retrieve translated string with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_x/\n */\n/**\n * @typedef {(single: string, plural: string, number: number, domain?: string) => string} _n\n *\n * Translates and retrieves the singular or plural form based on the supplied\n * number.\n *\n * @see https://developer.wordpress.org/reference/functions/_n/\n */\n/**\n * @typedef {(single: string, plural: string, number: number, context: string, domain?: string) => string} _nx\n *\n * Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_nx/\n */\n/**\n * @typedef {() => boolean} IsRtl\n *\n * Check if current locale is RTL.\n *\n * **RTL (Right To Left)** is a locale property indicating that text is written from right to left.\n * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common\n * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages,\n * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`).\n */\n/**\n * @typedef {(single: string, context?: string, domain?: string) => boolean} HasTranslation\n *\n * Check if there is a translation for a given string in singular form.\n */\n/** @typedef {import('@wordpress/hooks').Hooks} Hooks */\n\n/**\n * An i18n instance\n *\n * @typedef I18n\n * @property {GetLocaleData} getLocaleData Returns locale data by domain in a Jed-formatted JSON object shape.\n * @property {SetLocaleData} setLocaleData Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n * @property {ResetLocaleData} resetLocaleData Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n * @property {Subscribe} subscribe Subscribes to changes of Tannin locale data.\n * @property {__} __ Retrieve the translation of text.\n * @property {_x} _x Retrieve translated string with gettext context.\n * @property {_n} _n Translates and retrieves the singular or plural form based on the supplied\n * number.\n * @property {_nx} _nx Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n * @property {IsRtl} isRTL Check if current locale is RTL.\n * @property {HasTranslation} hasTranslation Check if there is a translation for a given string.\n */\n\n/**\n * Create an i18n instance\n *\n * @param {LocaleData} [initialData] Locale data configuration.\n * @param {string} [initialDomain] Domain for which configuration applies.\n * @param {Hooks} [hooks] Hooks implementation.\n *\n * @return {I18n} I18n instance.\n */\nexport const createI18n = ( initialData, initialDomain, hooks ) => {\n\t/**\n\t * The underlying instance of Tannin to which exported functions interface.\n\t *\n\t * @type {Tannin}\n\t */\n\tconst tannin = new Tannin( {} );\n\n\tconst listeners = new Set();\n\n\tconst notifyListeners = () => {\n\t\tlisteners.forEach( ( listener ) => listener() );\n\t};\n\n\t/**\n\t * Subscribe to changes of locale data.\n\t *\n\t * @param {SubscribeCallback} callback Subscription callback.\n\t * @return {UnsubscribeCallback} Unsubscribe callback.\n\t */\n\tconst subscribe = ( callback ) => {\n\t\tlisteners.add( callback );\n\t\treturn () => listeners.delete( callback );\n\t};\n\n\t/** @type {GetLocaleData} */\n\tconst getLocaleData = ( domain = 'default' ) => tannin.data[ domain ];\n\n\t/**\n\t * @param {LocaleData} [data]\n\t * @param {string} [domain]\n\t */\n\tconst doSetLocaleData = ( data, domain = 'default' ) => {\n\t\ttannin.data[ domain ] = {\n\t\t\t...DEFAULT_LOCALE_DATA,\n\t\t\t...tannin.data[ domain ],\n\t\t\t...data,\n\t\t};\n\n\t\t// Populate default domain configuration (supported locale date which omits\n\t\t// a plural forms expression).\n\t\ttannin.data[ domain ][ '' ] = {\n\t\t\t...DEFAULT_LOCALE_DATA[ '' ],\n\t\t\t...tannin.data[ domain ][ '' ],\n\t\t};\n\t};\n\n\t/** @type {SetLocaleData} */\n\tconst setLocaleData = ( data, domain ) => {\n\t\tdoSetLocaleData( data, domain );\n\t\tnotifyListeners();\n\t};\n\n\t/** @type {ResetLocaleData} */\n\tconst resetLocaleData = ( data, domain ) => {\n\t\t// Reset all current Tannin locale data.\n\t\ttannin.data = {};\n\n\t\t// Reset cached plural forms functions cache.\n\t\ttannin.pluralForms = {};\n\n\t\tsetLocaleData( data, domain );\n\t};\n\n\t/**\n\t * Wrapper for Tannin's `dcnpgettext`. Populates default locale data if not\n\t * otherwise previously assigned.\n\t *\n\t * @param {string|undefined} domain Domain to retrieve the translated text.\n\t * @param {string|undefined} context Context information for the translators.\n\t * @param {string} single Text to translate if non-plural. Used as\n\t * fallback return value on a caught error.\n\t * @param {string} [plural] The text to be used if the number is\n\t * plural.\n\t * @param {number} [number] The number to compare against to use\n\t * either the singular or plural form.\n\t *\n\t * @return {string} The translated string.\n\t */\n\tconst dcnpgettext = (\n\t\tdomain = 'default',\n\t\tcontext,\n\t\tsingle,\n\t\tplural,\n\t\tnumber\n\t) => {\n\t\tif ( ! tannin.data[ domain ] ) {\n\t\t\t// use `doSetLocaleData` to set silently, without notifying listeners\n\t\t\tdoSetLocaleData( undefined, domain );\n\t\t}\n\n\t\treturn tannin.dcnpgettext( domain, context, single, plural, number );\n\t};\n\n\t/** @type {GetFilterDomain} */\n\tconst getFilterDomain = ( domain = 'default' ) => domain;\n\n\t/** @type {__} */\n\tconst __ = ( text, domain ) => {\n\t\tlet translation = dcnpgettext( domain, undefined, text );\n\t\tif ( ! hooks ) {\n\t\t\treturn translation;\n\t\t}\n\n\t\t/**\n\t\t * Filters text with its translation.\n\t\t *\n\t\t * @param {string} translation Translated text.\n\t\t * @param {string} text Text to translate.\n\t\t * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n\t\t */\n\t\ttranslation = /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.gettext',\n\t\t\t\ttranslation,\n\t\t\t\ttext,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\t\treturn /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.gettext_' + getFilterDomain( domain ),\n\t\t\t\ttranslation,\n\t\t\t\ttext,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\t};\n\n\t/** @type {_x} */\n\tconst _x = ( text, context, domain ) => {\n\t\tlet translation = dcnpgettext( domain, context, text );\n\t\tif ( ! hooks ) {\n\t\t\treturn translation;\n\t\t}\n\n\t\t/**\n\t\t * Filters text with its translation based on context information.\n\t\t *\n\t\t * @param {string} translation Translated text.\n\t\t * @param {string} text Text to translate.\n\t\t * @param {string} context Context information for the translators.\n\t\t * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n\t\t */\n\t\ttranslation = /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.gettext_with_context',\n\t\t\t\ttranslation,\n\t\t\t\ttext,\n\t\t\t\tcontext,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\t\treturn /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.gettext_with_context_' + getFilterDomain( domain ),\n\t\t\t\ttranslation,\n\t\t\t\ttext,\n\t\t\t\tcontext,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\t};\n\n\t/** @type {_n} */\n\tconst _n = ( single, plural, number, domain ) => {\n\t\tlet translation = dcnpgettext(\n\t\t\tdomain,\n\t\t\tundefined,\n\t\t\tsingle,\n\t\t\tplural,\n\t\t\tnumber\n\t\t);\n\t\tif ( ! hooks ) {\n\t\t\treturn translation;\n\t\t}\n\n\t\t/**\n\t\t * Filters the singular or plural form of a string.\n\t\t *\n\t\t * @param {string} translation Translated text.\n\t\t * @param {string} single The text to be used if the number is singular.\n\t\t * @param {string} plural The text to be used if the number is plural.\n\t\t * @param {string} number The number to compare against to use either the singular or plural form.\n\t\t * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n\t\t */\n\t\ttranslation = /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.ngettext',\n\t\t\t\ttranslation,\n\t\t\t\tsingle,\n\t\t\t\tplural,\n\t\t\t\tnumber,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\t\treturn /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.ngettext_' + getFilterDomain( domain ),\n\t\t\t\ttranslation,\n\t\t\t\tsingle,\n\t\t\t\tplural,\n\t\t\t\tnumber,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\t};\n\n\t/** @type {_nx} */\n\tconst _nx = ( single, plural, number, context, domain ) => {\n\t\tlet translation = dcnpgettext(\n\t\t\tdomain,\n\t\t\tcontext,\n\t\t\tsingle,\n\t\t\tplural,\n\t\t\tnumber\n\t\t);\n\t\tif ( ! hooks ) {\n\t\t\treturn translation;\n\t\t}\n\n\t\t/**\n\t\t * Filters the singular or plural form of a string with gettext context.\n\t\t *\n\t\t * @param {string} translation Translated text.\n\t\t * @param {string} single The text to be used if the number is singular.\n\t\t * @param {string} plural The text to be used if the number is plural.\n\t\t * @param {string} number The number to compare against to use either the singular or plural form.\n\t\t * @param {string} context Context information for the translators.\n\t\t * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n\t\t */\n\t\ttranslation = /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.ngettext_with_context',\n\t\t\t\ttranslation,\n\t\t\t\tsingle,\n\t\t\t\tplural,\n\t\t\t\tnumber,\n\t\t\t\tcontext,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\n\t\treturn /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.ngettext_with_context_' + getFilterDomain( domain ),\n\t\t\t\ttranslation,\n\t\t\t\tsingle,\n\t\t\t\tplural,\n\t\t\t\tnumber,\n\t\t\t\tcontext,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\t};\n\n\t/** @type {IsRtl} */\n\tconst isRTL = () => {\n\t\treturn 'rtl' === _x( 'ltr', 'text direction' );\n\t};\n\n\t/** @type {HasTranslation} */\n\tconst hasTranslation = ( single, context, domain ) => {\n\t\tconst key = context ? context + '\\u0004' + single : single;\n\t\tlet result = !! tannin.data?.[ domain ?? 'default' ]?.[ key ];\n\t\tif ( hooks ) {\n\t\t\t/**\n\t\t\t * Filters the presence of a translation in the locale data.\n\t\t\t *\n\t\t\t * @param {boolean} hasTranslation Whether the translation is present or not..\n\t\t\t * @param {string} single The singular form of the translated text (used as key in locale data)\n\t\t\t * @param {string} context Context information for the translators.\n\t\t\t * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n\t\t\t */\n\t\t\tresult = /** @type { boolean } */ (\n\t\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t\t'i18n.has_translation',\n\t\t\t\t\tresult,\n\t\t\t\t\tsingle,\n\t\t\t\t\tcontext,\n\t\t\t\t\tdomain\n\t\t\t\t)\n\t\t\t);\n\n\t\t\tresult = /** @type { boolean } */ (\n\t\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t\t'i18n.has_translation_' + getFilterDomain( domain ),\n\t\t\t\t\tresult,\n\t\t\t\t\tsingle,\n\t\t\t\t\tcontext,\n\t\t\t\t\tdomain\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\treturn result;\n\t};\n\n\tif ( initialData ) {\n\t\tsetLocaleData( initialData, initialDomain );\n\t}\n\n\tif ( hooks ) {\n\t\t/**\n\t\t * @param {string} hookName\n\t\t */\n\t\tconst onHookAddedOrRemoved = ( hookName ) => {\n\t\t\tif ( I18N_HOOK_REGEXP.test( hookName ) ) {\n\t\t\t\tnotifyListeners();\n\t\t\t}\n\t\t};\n\n\t\thooks.addAction( 'hookAdded', 'core/i18n', onHookAddedOrRemoved );\n\t\thooks.addAction( 'hookRemoved', 'core/i18n', onHookAddedOrRemoved );\n\t}\n\n\treturn {\n\t\tgetLocaleData,\n\t\tsetLocaleData,\n\t\tresetLocaleData,\n\t\tsubscribe,\n\t\t__,\n\t\t_x,\n\t\t_n,\n\t\t_nx,\n\t\tisRTL,\n\t\thasTranslation,\n\t};\n};\n"]}
|
package/build/default-i18n.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.subscribe = exports.setLocaleData = exports.resetLocaleData = exports.isRTL = exports.hasTranslation = exports.getLocaleData = exports.default = exports._x = exports._nx = exports._n = exports.__ = void 0;
|
|
7
7
|
|
|
8
8
|
var _createI18n = require("./create-i18n");
|
|
9
9
|
|
package/build/index.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
-
|
|
5
3
|
Object.defineProperty(exports, "__esModule", {
|
|
6
4
|
value: true
|
|
7
5
|
});
|
|
@@ -19,76 +17,76 @@ var _exportNames = {
|
|
|
19
17
|
isRTL: true,
|
|
20
18
|
hasTranslation: true
|
|
21
19
|
};
|
|
22
|
-
Object.defineProperty(exports, "
|
|
20
|
+
Object.defineProperty(exports, "__", {
|
|
23
21
|
enumerable: true,
|
|
24
22
|
get: function () {
|
|
25
|
-
return
|
|
23
|
+
return _defaultI18n.__;
|
|
26
24
|
}
|
|
27
25
|
});
|
|
28
|
-
Object.defineProperty(exports, "
|
|
26
|
+
Object.defineProperty(exports, "_n", {
|
|
29
27
|
enumerable: true,
|
|
30
28
|
get: function () {
|
|
31
|
-
return _defaultI18n.
|
|
29
|
+
return _defaultI18n._n;
|
|
32
30
|
}
|
|
33
31
|
});
|
|
34
|
-
Object.defineProperty(exports, "
|
|
32
|
+
Object.defineProperty(exports, "_nx", {
|
|
35
33
|
enumerable: true,
|
|
36
34
|
get: function () {
|
|
37
|
-
return _defaultI18n.
|
|
35
|
+
return _defaultI18n._nx;
|
|
38
36
|
}
|
|
39
37
|
});
|
|
40
|
-
Object.defineProperty(exports, "
|
|
38
|
+
Object.defineProperty(exports, "_x", {
|
|
41
39
|
enumerable: true,
|
|
42
40
|
get: function () {
|
|
43
|
-
return _defaultI18n.
|
|
41
|
+
return _defaultI18n._x;
|
|
44
42
|
}
|
|
45
43
|
});
|
|
46
|
-
Object.defineProperty(exports, "
|
|
44
|
+
Object.defineProperty(exports, "defaultI18n", {
|
|
47
45
|
enumerable: true,
|
|
48
46
|
get: function () {
|
|
49
|
-
return _defaultI18n.
|
|
47
|
+
return _defaultI18n.default;
|
|
50
48
|
}
|
|
51
49
|
});
|
|
52
|
-
Object.defineProperty(exports, "
|
|
50
|
+
Object.defineProperty(exports, "getLocaleData", {
|
|
53
51
|
enumerable: true,
|
|
54
52
|
get: function () {
|
|
55
|
-
return _defaultI18n.
|
|
53
|
+
return _defaultI18n.getLocaleData;
|
|
56
54
|
}
|
|
57
55
|
});
|
|
58
|
-
Object.defineProperty(exports, "
|
|
56
|
+
Object.defineProperty(exports, "hasTranslation", {
|
|
59
57
|
enumerable: true,
|
|
60
58
|
get: function () {
|
|
61
|
-
return _defaultI18n.
|
|
59
|
+
return _defaultI18n.hasTranslation;
|
|
62
60
|
}
|
|
63
61
|
});
|
|
64
|
-
Object.defineProperty(exports, "
|
|
62
|
+
Object.defineProperty(exports, "isRTL", {
|
|
65
63
|
enumerable: true,
|
|
66
64
|
get: function () {
|
|
67
|
-
return _defaultI18n.
|
|
65
|
+
return _defaultI18n.isRTL;
|
|
68
66
|
}
|
|
69
67
|
});
|
|
70
|
-
Object.defineProperty(exports, "
|
|
68
|
+
Object.defineProperty(exports, "resetLocaleData", {
|
|
71
69
|
enumerable: true,
|
|
72
70
|
get: function () {
|
|
73
|
-
return _defaultI18n.
|
|
71
|
+
return _defaultI18n.resetLocaleData;
|
|
74
72
|
}
|
|
75
73
|
});
|
|
76
|
-
Object.defineProperty(exports, "
|
|
74
|
+
Object.defineProperty(exports, "setLocaleData", {
|
|
77
75
|
enumerable: true,
|
|
78
76
|
get: function () {
|
|
79
|
-
return _defaultI18n.
|
|
77
|
+
return _defaultI18n.setLocaleData;
|
|
80
78
|
}
|
|
81
79
|
});
|
|
82
|
-
Object.defineProperty(exports, "
|
|
80
|
+
Object.defineProperty(exports, "sprintf", {
|
|
83
81
|
enumerable: true,
|
|
84
82
|
get: function () {
|
|
85
|
-
return
|
|
83
|
+
return _sprintf.sprintf;
|
|
86
84
|
}
|
|
87
85
|
});
|
|
88
|
-
Object.defineProperty(exports, "
|
|
86
|
+
Object.defineProperty(exports, "subscribe", {
|
|
89
87
|
enumerable: true,
|
|
90
88
|
get: function () {
|
|
91
|
-
return _defaultI18n.
|
|
89
|
+
return _defaultI18n.subscribe;
|
|
92
90
|
}
|
|
93
91
|
});
|
|
94
92
|
|
|
@@ -109,4 +107,8 @@ Object.keys(_createI18n).forEach(function (key) {
|
|
|
109
107
|
});
|
|
110
108
|
|
|
111
109
|
var _defaultI18n = _interopRequireWildcard(require("./default-i18n"));
|
|
110
|
+
|
|
111
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
112
|
+
|
|
113
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
112
114
|
//# sourceMappingURL=index.js.map
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/i18n/src/index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["@wordpress/i18n/src/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA","sourcesContent":["export { sprintf } from './sprintf';\nexport * from './create-i18n';\nexport {\n\tdefault as defaultI18n,\n\tsetLocaleData,\n\tresetLocaleData,\n\tgetLocaleData,\n\tsubscribe,\n\t__,\n\t_x,\n\t_n,\n\t_nx,\n\tisRTL,\n\thasTranslation,\n} from './default-i18n';\n"]}
|
package/build/sprintf.js
CHANGED
|
@@ -36,8 +36,12 @@ const logErrorOnce = (0, _memize.default)(console.error); // eslint-disable-line
|
|
|
36
36
|
* @return {string} The formatted string.
|
|
37
37
|
*/
|
|
38
38
|
|
|
39
|
-
function sprintf(format
|
|
39
|
+
function sprintf(format) {
|
|
40
40
|
try {
|
|
41
|
+
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
42
|
+
args[_key - 1] = arguments[_key];
|
|
43
|
+
}
|
|
44
|
+
|
|
41
45
|
return _sprintfJs.default.sprintf(format, ...args);
|
|
42
46
|
} catch (error) {
|
|
43
47
|
if (error instanceof Error) {
|
package/build/sprintf.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/i18n/src/sprintf.js"],"names":["logErrorOnce","console","error","sprintf","format","args","sprintfjs","Error","toString"],"mappings":";;;;;;;;;AAGA;;AACA;;AAJA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMA,YAAY,GAAG,qBAASC,OAAO,CAACC,KAAjB,CAArB,C,CAA+C;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,SAASC,OAAT,CAAkBC,MAAlB,
|
|
1
|
+
{"version":3,"sources":["@wordpress/i18n/src/sprintf.js"],"names":["logErrorOnce","console","error","sprintf","format","args","sprintfjs","Error","toString"],"mappings":";;;;;;;;;AAGA;;AACA;;AAJA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMA,YAAY,GAAG,qBAASC,OAAO,CAACC,KAAjB,CAArB,C,CAA+C;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,SAASC,OAAT,CAAkBC,MAAlB,EAAoC;AAC1C,MAAI;AAAA,sCAD+BC,IAC/B;AAD+BA,MAAAA,IAC/B;AAAA;;AACH,WAAOC,mBAAUH,OAAV,CAAmBC,MAAnB,EAA2B,GAAGC,IAA9B,CAAP;AACA,GAFD,CAEE,OAAQH,KAAR,EAAgB;AACjB,QAAKA,KAAK,YAAYK,KAAtB,EAA8B;AAC7BP,MAAAA,YAAY,CAAE,wBAAwBE,KAAK,CAACM,QAAN,EAA1B,CAAZ;AACA;;AACD,WAAOJ,MAAP;AACA;AACD","sourcesContent":["/**\n * External dependencies\n */\nimport memoize from 'memize';\nimport sprintfjs from 'sprintf-js';\n\n/**\n * Log to console, once per message; or more precisely, per referentially equal\n * argument set. Because Jed throws errors, we log these to the console instead\n * to avoid crashing the application.\n *\n * @param {...*} args Arguments to pass to `console.error`\n */\nconst logErrorOnce = memoize( console.error ); // eslint-disable-line no-console\n\n/**\n * Returns a formatted string. If an error occurs in applying the format, the\n * original format string is returned.\n *\n * @param {string} format The format of the string to generate.\n * @param {...*} args Arguments to apply to the format.\n *\n * @see https://www.npmjs.com/package/sprintf-js\n *\n * @return {string} The formatted string.\n */\nexport function sprintf( format, ...args ) {\n\ttry {\n\t\treturn sprintfjs.sprintf( format, ...args );\n\t} catch ( error ) {\n\t\tif ( error instanceof Error ) {\n\t\t\tlogErrorOnce( 'sprintf error: \\n\\n' + error.toString() );\n\t\t}\n\t\treturn format;\n\t}\n}\n"]}
|
|
@@ -180,14 +180,18 @@ export const createI18n = (initialData, initialDomain, hooks) => {
|
|
|
180
180
|
/** @type {GetLocaleData} */
|
|
181
181
|
|
|
182
182
|
|
|
183
|
-
const getLocaleData = (
|
|
183
|
+
const getLocaleData = function () {
|
|
184
|
+
let domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';
|
|
185
|
+
return tannin.data[domain];
|
|
186
|
+
};
|
|
184
187
|
/**
|
|
185
188
|
* @param {LocaleData} [data]
|
|
186
189
|
* @param {string} [domain]
|
|
187
190
|
*/
|
|
188
191
|
|
|
189
192
|
|
|
190
|
-
const doSetLocaleData = (data
|
|
193
|
+
const doSetLocaleData = function (data) {
|
|
194
|
+
let domain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';
|
|
191
195
|
tannin.data[domain] = { ...DEFAULT_LOCALE_DATA,
|
|
192
196
|
...tannin.data[domain],
|
|
193
197
|
...data
|
|
@@ -232,7 +236,13 @@ export const createI18n = (initialData, initialDomain, hooks) => {
|
|
|
232
236
|
*/
|
|
233
237
|
|
|
234
238
|
|
|
235
|
-
const dcnpgettext = (
|
|
239
|
+
const dcnpgettext = function () {
|
|
240
|
+
let domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';
|
|
241
|
+
let context = arguments.length > 1 ? arguments[1] : undefined;
|
|
242
|
+
let single = arguments.length > 2 ? arguments[2] : undefined;
|
|
243
|
+
let plural = arguments.length > 3 ? arguments[3] : undefined;
|
|
244
|
+
let number = arguments.length > 4 ? arguments[4] : undefined;
|
|
245
|
+
|
|
236
246
|
if (!tannin.data[domain]) {
|
|
237
247
|
// use `doSetLocaleData` to set silently, without notifying listeners
|
|
238
248
|
doSetLocaleData(undefined, domain);
|
|
@@ -243,7 +253,10 @@ export const createI18n = (initialData, initialDomain, hooks) => {
|
|
|
243
253
|
/** @type {GetFilterDomain} */
|
|
244
254
|
|
|
245
255
|
|
|
246
|
-
const getFilterDomain = (
|
|
256
|
+
const getFilterDomain = function () {
|
|
257
|
+
let domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';
|
|
258
|
+
return domain;
|
|
259
|
+
};
|
|
247
260
|
/** @type {__} */
|
|
248
261
|
|
|
249
262
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/i18n/src/create-i18n.js"],"names":["Tannin","DEFAULT_LOCALE_DATA","plural_forms","n","I18N_HOOK_REGEXP","createI18n","initialData","initialDomain","hooks","tannin","listeners","Set","notifyListeners","forEach","listener","subscribe","callback","add","delete","getLocaleData","domain","data","doSetLocaleData","setLocaleData","resetLocaleData","pluralForms","dcnpgettext","context","single","plural","number","undefined","getFilterDomain","__","text","translation","applyFilters","_x","_n","_nx","isRTL","hasTranslation","key","result","onHookAddedOrRemoved","hookName","test","addAction"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,MAAP,MAAmB,QAAnB;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,mBAAmB,GAAG;AAC3B,MAAI;AACH;AACAC,IAAAA,YAAY,CAAEC,CAAF,EAAM;AACjB,aAAOA,CAAC,KAAK,CAAN,GAAU,CAAV,GAAc,CAArB;AACA;;AAJE;AADuB,CAA5B;AASA;AACA;AACA;AACA;;AACA,MAAMC,gBAAgB,GAAG,yCAAzB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;AACA;;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,MAAMC,UAAU,GAAG,CAAEC,WAAF,EAAeC,aAAf,EAA8BC,KAA9B,KAAyC;AAClE;AACD;AACA;AACA;AACA;AACC,QAAMC,MAAM,GAAG,IAAIT,MAAJ,CAAY,EAAZ,CAAf;AAEA,QAAMU,SAAS,GAAG,IAAIC,GAAJ,EAAlB;;AAEA,QAAMC,eAAe,GAAG,MAAM;AAC7BF,IAAAA,SAAS,CAACG,OAAV,CAAqBC,QAAF,IAAgBA,QAAQ,EAA3C;AACA,GAFD;AAIA;AACD;AACA;AACA;AACA;AACA;;;AACC,QAAMC,SAAS,GAAKC,QAAF,IAAgB;AACjCN,IAAAA,SAA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","sourcesContent":["/**\n * External dependencies\n */\nimport Tannin from 'tannin';\n\n/**\n * @typedef {Record<string,any>} LocaleData\n */\n\n/**\n * Default locale data to use for Tannin domain when not otherwise provided.\n * Assumes an English plural forms expression.\n *\n * @type {LocaleData}\n */\nconst DEFAULT_LOCALE_DATA = {\n\t'': {\n\t\t/** @param {number} n */\n\t\tplural_forms( n ) {\n\t\t\treturn n === 1 ? 0 : 1;\n\t\t},\n\t},\n};\n\n/*\n * Regular expression that matches i18n hooks like `i18n.gettext`, `i18n.ngettext`,\n * `i18n.gettext_domain` or `i18n.ngettext_with_context` or `i18n.has_translation`.\n */\nconst I18N_HOOK_REGEXP = /^i18n\\.(n?gettext|has_translation)(_|$)/;\n\n/**\n * @typedef {(domain?: string) => LocaleData} GetLocaleData\n *\n * Returns locale data by domain in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n/**\n * @typedef {(data?: LocaleData, domain?: string) => void} SetLocaleData\n *\n * Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n/**\n * @typedef {(data?: LocaleData, domain?: string) => void} ResetLocaleData\n *\n * Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n/** @typedef {() => void} SubscribeCallback */\n/** @typedef {() => void} UnsubscribeCallback */\n/**\n * @typedef {(callback: SubscribeCallback) => UnsubscribeCallback} Subscribe\n *\n * Subscribes to changes of locale data\n */\n/**\n * @typedef {(domain?: string) => string} GetFilterDomain\n * Retrieve the domain to use when calling domain-specific filters.\n */\n/**\n * @typedef {(text: string, domain?: string) => string} __\n *\n * Retrieve the translation of text.\n *\n * @see https://developer.wordpress.org/reference/functions/__/\n */\n/**\n * @typedef {(text: string, context: string, domain?: string) => string} _x\n *\n * Retrieve translated string with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_x/\n */\n/**\n * @typedef {(single: string, plural: string, number: number, domain?: string) => string} _n\n *\n * Translates and retrieves the singular or plural form based on the supplied\n * number.\n *\n * @see https://developer.wordpress.org/reference/functions/_n/\n */\n/**\n * @typedef {(single: string, plural: string, number: number, context: string, domain?: string) => string} _nx\n *\n * Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_nx/\n */\n/**\n * @typedef {() => boolean} IsRtl\n *\n * Check if current locale is RTL.\n *\n * **RTL (Right To Left)** is a locale property indicating that text is written from right to left.\n * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common\n * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages,\n * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`).\n */\n/**\n * @typedef {(single: string, context?: string, domain?: string) => boolean} HasTranslation\n *\n * Check if there is a translation for a given string in singular form.\n */\n/** @typedef {import('@wordpress/hooks').Hooks} Hooks */\n\n/**\n * An i18n instance\n *\n * @typedef I18n\n * @property {GetLocaleData} getLocaleData Returns locale data by domain in a Jed-formatted JSON object shape.\n * @property {SetLocaleData} setLocaleData Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n * @property {ResetLocaleData} resetLocaleData Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n * @property {Subscribe} subscribe Subscribes to changes of Tannin locale data.\n * @property {__} __ Retrieve the translation of text.\n * @property {_x} _x Retrieve translated string with gettext context.\n * @property {_n} _n Translates and retrieves the singular or plural form based on the supplied\n * number.\n * @property {_nx} _nx Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n * @property {IsRtl} isRTL Check if current locale is RTL.\n * @property {HasTranslation} hasTranslation Check if there is a translation for a given string.\n */\n\n/**\n * Create an i18n instance\n *\n * @param {LocaleData} [initialData] Locale data configuration.\n * @param {string} [initialDomain] Domain for which configuration applies.\n * @param {Hooks} [hooks] Hooks implementation.\n *\n * @return {I18n} I18n instance.\n */\nexport const createI18n = ( initialData, initialDomain, hooks ) => {\n\t/**\n\t * The underlying instance of Tannin to which exported functions interface.\n\t *\n\t * @type {Tannin}\n\t */\n\tconst tannin = new Tannin( {} );\n\n\tconst listeners = new Set();\n\n\tconst notifyListeners = () => {\n\t\tlisteners.forEach( ( listener ) => listener() );\n\t};\n\n\t/**\n\t * Subscribe to changes of locale data.\n\t *\n\t * @param {SubscribeCallback} callback Subscription callback.\n\t * @return {UnsubscribeCallback} Unsubscribe callback.\n\t */\n\tconst subscribe = ( callback ) => {\n\t\tlisteners.add( callback );\n\t\treturn () => listeners.delete( callback );\n\t};\n\n\t/** @type {GetLocaleData} */\n\tconst getLocaleData = ( domain = 'default' ) => tannin.data[ domain ];\n\n\t/**\n\t * @param {LocaleData} [data]\n\t * @param {string} [domain]\n\t */\n\tconst doSetLocaleData = ( data, domain = 'default' ) => {\n\t\ttannin.data[ domain ] = {\n\t\t\t...DEFAULT_LOCALE_DATA,\n\t\t\t...tannin.data[ domain ],\n\t\t\t...data,\n\t\t};\n\n\t\t// Populate default domain configuration (supported locale date which omits\n\t\t// a plural forms expression).\n\t\ttannin.data[ domain ][ '' ] = {\n\t\t\t...DEFAULT_LOCALE_DATA[ '' ],\n\t\t\t...tannin.data[ domain ][ '' ],\n\t\t};\n\t};\n\n\t/** @type {SetLocaleData} */\n\tconst setLocaleData = ( data, domain ) => {\n\t\tdoSetLocaleData( data, domain );\n\t\tnotifyListeners();\n\t};\n\n\t/** @type {ResetLocaleData} */\n\tconst resetLocaleData = ( data, domain ) => {\n\t\t// Reset all current Tannin locale data.\n\t\ttannin.data = {};\n\n\t\t// Reset cached plural forms functions cache.\n\t\ttannin.pluralForms = {};\n\n\t\tsetLocaleData( data, domain );\n\t};\n\n\t/**\n\t * Wrapper for Tannin's `dcnpgettext`. Populates default locale data if not\n\t * otherwise previously assigned.\n\t *\n\t * @param {string|undefined} domain Domain to retrieve the translated text.\n\t * @param {string|undefined} context Context information for the translators.\n\t * @param {string} single Text to translate if non-plural. Used as\n\t * fallback return value on a caught error.\n\t * @param {string} [plural] The text to be used if the number is\n\t * plural.\n\t * @param {number} [number] The number to compare against to use\n\t * either the singular or plural form.\n\t *\n\t * @return {string} The translated string.\n\t */\n\tconst dcnpgettext = (\n\t\tdomain = 'default',\n\t\tcontext,\n\t\tsingle,\n\t\tplural,\n\t\tnumber\n\t) => {\n\t\tif ( ! tannin.data[ domain ] ) {\n\t\t\t// use `doSetLocaleData` to set silently, without notifying listeners\n\t\t\tdoSetLocaleData( undefined, domain );\n\t\t}\n\n\t\treturn tannin.dcnpgettext( domain, context, single, plural, number );\n\t};\n\n\t/** @type {GetFilterDomain} */\n\tconst getFilterDomain = ( domain = 'default' ) => domain;\n\n\t/** @type {__} */\n\tconst __ = ( text, domain ) => {\n\t\tlet translation = dcnpgettext( domain, undefined, text );\n\t\tif ( ! hooks ) {\n\t\t\treturn translation;\n\t\t}\n\n\t\t/**\n\t\t * Filters text with its translation.\n\t\t *\n\t\t * @param {string} translation Translated text.\n\t\t * @param {string} text Text to translate.\n\t\t * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n\t\t */\n\t\ttranslation = /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.gettext',\n\t\t\t\ttranslation,\n\t\t\t\ttext,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\t\treturn /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.gettext_' + getFilterDomain( domain ),\n\t\t\t\ttranslation,\n\t\t\t\ttext,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\t};\n\n\t/** @type {_x} */\n\tconst _x = ( text, context, domain ) => {\n\t\tlet translation = dcnpgettext( domain, context, text );\n\t\tif ( ! hooks ) {\n\t\t\treturn translation;\n\t\t}\n\n\t\t/**\n\t\t * Filters text with its translation based on context information.\n\t\t *\n\t\t * @param {string} translation Translated text.\n\t\t * @param {string} text Text to translate.\n\t\t * @param {string} context Context information for the translators.\n\t\t * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n\t\t */\n\t\ttranslation = /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.gettext_with_context',\n\t\t\t\ttranslation,\n\t\t\t\ttext,\n\t\t\t\tcontext,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\t\treturn /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.gettext_with_context_' + getFilterDomain( domain ),\n\t\t\t\ttranslation,\n\t\t\t\ttext,\n\t\t\t\tcontext,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\t};\n\n\t/** @type {_n} */\n\tconst _n = ( single, plural, number, domain ) => {\n\t\tlet translation = dcnpgettext(\n\t\t\tdomain,\n\t\t\tundefined,\n\t\t\tsingle,\n\t\t\tplural,\n\t\t\tnumber\n\t\t);\n\t\tif ( ! hooks ) {\n\t\t\treturn translation;\n\t\t}\n\n\t\t/**\n\t\t * Filters the singular or plural form of a string.\n\t\t *\n\t\t * @param {string} translation Translated text.\n\t\t * @param {string} single The text to be used if the number is singular.\n\t\t * @param {string} plural The text to be used if the number is plural.\n\t\t * @param {string} number The number to compare against to use either the singular or plural form.\n\t\t * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n\t\t */\n\t\ttranslation = /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.ngettext',\n\t\t\t\ttranslation,\n\t\t\t\tsingle,\n\t\t\t\tplural,\n\t\t\t\tnumber,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\t\treturn /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.ngettext_' + getFilterDomain( domain ),\n\t\t\t\ttranslation,\n\t\t\t\tsingle,\n\t\t\t\tplural,\n\t\t\t\tnumber,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\t};\n\n\t/** @type {_nx} */\n\tconst _nx = ( single, plural, number, context, domain ) => {\n\t\tlet translation = dcnpgettext(\n\t\t\tdomain,\n\t\t\tcontext,\n\t\t\tsingle,\n\t\t\tplural,\n\t\t\tnumber\n\t\t);\n\t\tif ( ! hooks ) {\n\t\t\treturn translation;\n\t\t}\n\n\t\t/**\n\t\t * Filters the singular or plural form of a string with gettext context.\n\t\t *\n\t\t * @param {string} translation Translated text.\n\t\t * @param {string} single The text to be used if the number is singular.\n\t\t * @param {string} plural The text to be used if the number is plural.\n\t\t * @param {string} number The number to compare against to use either the singular or plural form.\n\t\t * @param {string} context Context information for the translators.\n\t\t * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n\t\t */\n\t\ttranslation = /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.ngettext_with_context',\n\t\t\t\ttranslation,\n\t\t\t\tsingle,\n\t\t\t\tplural,\n\t\t\t\tnumber,\n\t\t\t\tcontext,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\n\t\treturn /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.ngettext_with_context_' + getFilterDomain( domain ),\n\t\t\t\ttranslation,\n\t\t\t\tsingle,\n\t\t\t\tplural,\n\t\t\t\tnumber,\n\t\t\t\tcontext,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\t};\n\n\t/** @type {IsRtl} */\n\tconst isRTL = () => {\n\t\treturn 'rtl' === _x( 'ltr', 'text direction' );\n\t};\n\n\t/** @type {HasTranslation} */\n\tconst hasTranslation = ( single, context, domain ) => {\n\t\tconst key = context ? context + '\\u0004' + single : single;\n\t\tlet result = !! tannin.data?.[ domain ?? 'default' ]?.[ key ];\n\t\tif ( hooks ) {\n\t\t\t/**\n\t\t\t * Filters the presence of a translation in the locale data.\n\t\t\t *\n\t\t\t * @param {boolean} hasTranslation Whether the translation is present or not..\n\t\t\t * @param {string} single The singular form of the translated text (used as key in locale data)\n\t\t\t * @param {string} context Context information for the translators.\n\t\t\t * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n\t\t\t */\n\t\t\tresult = /** @type { boolean } */ (\n\t\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t\t'i18n.has_translation',\n\t\t\t\t\tresult,\n\t\t\t\t\tsingle,\n\t\t\t\t\tcontext,\n\t\t\t\t\tdomain\n\t\t\t\t)\n\t\t\t);\n\n\t\t\tresult = /** @type { boolean } */ (\n\t\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t\t'i18n.has_translation_' + getFilterDomain( domain ),\n\t\t\t\t\tresult,\n\t\t\t\t\tsingle,\n\t\t\t\t\tcontext,\n\t\t\t\t\tdomain\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\treturn result;\n\t};\n\n\tif ( initialData ) {\n\t\tsetLocaleData( initialData, initialDomain );\n\t}\n\n\tif ( hooks ) {\n\t\t/**\n\t\t * @param {string} hookName\n\t\t */\n\t\tconst onHookAddedOrRemoved = ( hookName ) => {\n\t\t\tif ( I18N_HOOK_REGEXP.test( hookName ) ) {\n\t\t\t\tnotifyListeners();\n\t\t\t}\n\t\t};\n\n\t\thooks.addAction( 'hookAdded', 'core/i18n', onHookAddedOrRemoved );\n\t\thooks.addAction( 'hookRemoved', 'core/i18n', onHookAddedOrRemoved );\n\t}\n\n\treturn {\n\t\tgetLocaleData,\n\t\tsetLocaleData,\n\t\tresetLocaleData,\n\t\tsubscribe,\n\t\t__,\n\t\t_x,\n\t\t_n,\n\t\t_nx,\n\t\tisRTL,\n\t\thasTranslation,\n\t};\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/i18n/src/create-i18n.js"],"names":["Tannin","DEFAULT_LOCALE_DATA","plural_forms","n","I18N_HOOK_REGEXP","createI18n","initialData","initialDomain","hooks","tannin","listeners","Set","notifyListeners","forEach","listener","subscribe","callback","add","delete","getLocaleData","domain","data","doSetLocaleData","setLocaleData","resetLocaleData","pluralForms","dcnpgettext","context","single","plural","number","undefined","getFilterDomain","__","text","translation","applyFilters","_x","_n","_nx","isRTL","hasTranslation","key","result","onHookAddedOrRemoved","hookName","test","addAction"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,MAAP,MAAmB,QAAnB;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,mBAAmB,GAAG;AAC3B,MAAI;AACH;AACAC,IAAAA,YAAY,CAAEC,CAAF,EAAM;AACjB,aAAOA,CAAC,KAAK,CAAN,GAAU,CAAV,GAAc,CAArB;AACA;;AAJE;AADuB,CAA5B;AASA;AACA;AACA;AACA;;AACA,MAAMC,gBAAgB,GAAG,yCAAzB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;AACA;;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,MAAMC,UAAU,GAAG,CAAEC,WAAF,EAAeC,aAAf,EAA8BC,KAA9B,KAAyC;AAClE;AACD;AACA;AACA;AACA;AACC,QAAMC,MAAM,GAAG,IAAIT,MAAJ,CAAY,EAAZ,CAAf;AAEA,QAAMU,SAAS,GAAG,IAAIC,GAAJ,EAAlB;;AAEA,QAAMC,eAAe,GAAG,MAAM;AAC7BF,IAAAA,SAAS,CAACG,OAAV,CAAqBC,QAAF,IAAgBA,QAAQ,EAA3C;AACA,GAFD;AAIA;AACD;AACA;AACA;AACA;AACA;;;AACC,QAAMC,SAAS,GAAKC,QAAF,IAAgB;AACjCN,IAAAA,SAA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","sourcesContent":["/**\n * External dependencies\n */\nimport Tannin from 'tannin';\n\n/**\n * @typedef {Record<string,any>} LocaleData\n */\n\n/**\n * Default locale data to use for Tannin domain when not otherwise provided.\n * Assumes an English plural forms expression.\n *\n * @type {LocaleData}\n */\nconst DEFAULT_LOCALE_DATA = {\n\t'': {\n\t\t/** @param {number} n */\n\t\tplural_forms( n ) {\n\t\t\treturn n === 1 ? 0 : 1;\n\t\t},\n\t},\n};\n\n/*\n * Regular expression that matches i18n hooks like `i18n.gettext`, `i18n.ngettext`,\n * `i18n.gettext_domain` or `i18n.ngettext_with_context` or `i18n.has_translation`.\n */\nconst I18N_HOOK_REGEXP = /^i18n\\.(n?gettext|has_translation)(_|$)/;\n\n/**\n * @typedef {(domain?: string) => LocaleData} GetLocaleData\n *\n * Returns locale data by domain in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n/**\n * @typedef {(data?: LocaleData, domain?: string) => void} SetLocaleData\n *\n * Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n/**\n * @typedef {(data?: LocaleData, domain?: string) => void} ResetLocaleData\n *\n * Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n/** @typedef {() => void} SubscribeCallback */\n/** @typedef {() => void} UnsubscribeCallback */\n/**\n * @typedef {(callback: SubscribeCallback) => UnsubscribeCallback} Subscribe\n *\n * Subscribes to changes of locale data\n */\n/**\n * @typedef {(domain?: string) => string} GetFilterDomain\n * Retrieve the domain to use when calling domain-specific filters.\n */\n/**\n * @typedef {(text: string, domain?: string) => string} __\n *\n * Retrieve the translation of text.\n *\n * @see https://developer.wordpress.org/reference/functions/__/\n */\n/**\n * @typedef {(text: string, context: string, domain?: string) => string} _x\n *\n * Retrieve translated string with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_x/\n */\n/**\n * @typedef {(single: string, plural: string, number: number, domain?: string) => string} _n\n *\n * Translates and retrieves the singular or plural form based on the supplied\n * number.\n *\n * @see https://developer.wordpress.org/reference/functions/_n/\n */\n/**\n * @typedef {(single: string, plural: string, number: number, context: string, domain?: string) => string} _nx\n *\n * Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_nx/\n */\n/**\n * @typedef {() => boolean} IsRtl\n *\n * Check if current locale is RTL.\n *\n * **RTL (Right To Left)** is a locale property indicating that text is written from right to left.\n * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common\n * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages,\n * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`).\n */\n/**\n * @typedef {(single: string, context?: string, domain?: string) => boolean} HasTranslation\n *\n * Check if there is a translation for a given string in singular form.\n */\n/** @typedef {import('@wordpress/hooks').Hooks} Hooks */\n\n/**\n * An i18n instance\n *\n * @typedef I18n\n * @property {GetLocaleData} getLocaleData Returns locale data by domain in a Jed-formatted JSON object shape.\n * @property {SetLocaleData} setLocaleData Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n * @property {ResetLocaleData} resetLocaleData Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n * @property {Subscribe} subscribe Subscribes to changes of Tannin locale data.\n * @property {__} __ Retrieve the translation of text.\n * @property {_x} _x Retrieve translated string with gettext context.\n * @property {_n} _n Translates and retrieves the singular or plural form based on the supplied\n * number.\n * @property {_nx} _nx Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n * @property {IsRtl} isRTL Check if current locale is RTL.\n * @property {HasTranslation} hasTranslation Check if there is a translation for a given string.\n */\n\n/**\n * Create an i18n instance\n *\n * @param {LocaleData} [initialData] Locale data configuration.\n * @param {string} [initialDomain] Domain for which configuration applies.\n * @param {Hooks} [hooks] Hooks implementation.\n *\n * @return {I18n} I18n instance.\n */\nexport const createI18n = ( initialData, initialDomain, hooks ) => {\n\t/**\n\t * The underlying instance of Tannin to which exported functions interface.\n\t *\n\t * @type {Tannin}\n\t */\n\tconst tannin = new Tannin( {} );\n\n\tconst listeners = new Set();\n\n\tconst notifyListeners = () => {\n\t\tlisteners.forEach( ( listener ) => listener() );\n\t};\n\n\t/**\n\t * Subscribe to changes of locale data.\n\t *\n\t * @param {SubscribeCallback} callback Subscription callback.\n\t * @return {UnsubscribeCallback} Unsubscribe callback.\n\t */\n\tconst subscribe = ( callback ) => {\n\t\tlisteners.add( callback );\n\t\treturn () => listeners.delete( callback );\n\t};\n\n\t/** @type {GetLocaleData} */\n\tconst getLocaleData = ( domain = 'default' ) => tannin.data[ domain ];\n\n\t/**\n\t * @param {LocaleData} [data]\n\t * @param {string} [domain]\n\t */\n\tconst doSetLocaleData = ( data, domain = 'default' ) => {\n\t\ttannin.data[ domain ] = {\n\t\t\t...DEFAULT_LOCALE_DATA,\n\t\t\t...tannin.data[ domain ],\n\t\t\t...data,\n\t\t};\n\n\t\t// Populate default domain configuration (supported locale date which omits\n\t\t// a plural forms expression).\n\t\ttannin.data[ domain ][ '' ] = {\n\t\t\t...DEFAULT_LOCALE_DATA[ '' ],\n\t\t\t...tannin.data[ domain ][ '' ],\n\t\t};\n\t};\n\n\t/** @type {SetLocaleData} */\n\tconst setLocaleData = ( data, domain ) => {\n\t\tdoSetLocaleData( data, domain );\n\t\tnotifyListeners();\n\t};\n\n\t/** @type {ResetLocaleData} */\n\tconst resetLocaleData = ( data, domain ) => {\n\t\t// Reset all current Tannin locale data.\n\t\ttannin.data = {};\n\n\t\t// Reset cached plural forms functions cache.\n\t\ttannin.pluralForms = {};\n\n\t\tsetLocaleData( data, domain );\n\t};\n\n\t/**\n\t * Wrapper for Tannin's `dcnpgettext`. Populates default locale data if not\n\t * otherwise previously assigned.\n\t *\n\t * @param {string|undefined} domain Domain to retrieve the translated text.\n\t * @param {string|undefined} context Context information for the translators.\n\t * @param {string} single Text to translate if non-plural. Used as\n\t * fallback return value on a caught error.\n\t * @param {string} [plural] The text to be used if the number is\n\t * plural.\n\t * @param {number} [number] The number to compare against to use\n\t * either the singular or plural form.\n\t *\n\t * @return {string} The translated string.\n\t */\n\tconst dcnpgettext = (\n\t\tdomain = 'default',\n\t\tcontext,\n\t\tsingle,\n\t\tplural,\n\t\tnumber\n\t) => {\n\t\tif ( ! tannin.data[ domain ] ) {\n\t\t\t// use `doSetLocaleData` to set silently, without notifying listeners\n\t\t\tdoSetLocaleData( undefined, domain );\n\t\t}\n\n\t\treturn tannin.dcnpgettext( domain, context, single, plural, number );\n\t};\n\n\t/** @type {GetFilterDomain} */\n\tconst getFilterDomain = ( domain = 'default' ) => domain;\n\n\t/** @type {__} */\n\tconst __ = ( text, domain ) => {\n\t\tlet translation = dcnpgettext( domain, undefined, text );\n\t\tif ( ! hooks ) {\n\t\t\treturn translation;\n\t\t}\n\n\t\t/**\n\t\t * Filters text with its translation.\n\t\t *\n\t\t * @param {string} translation Translated text.\n\t\t * @param {string} text Text to translate.\n\t\t * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n\t\t */\n\t\ttranslation = /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.gettext',\n\t\t\t\ttranslation,\n\t\t\t\ttext,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\t\treturn /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.gettext_' + getFilterDomain( domain ),\n\t\t\t\ttranslation,\n\t\t\t\ttext,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\t};\n\n\t/** @type {_x} */\n\tconst _x = ( text, context, domain ) => {\n\t\tlet translation = dcnpgettext( domain, context, text );\n\t\tif ( ! hooks ) {\n\t\t\treturn translation;\n\t\t}\n\n\t\t/**\n\t\t * Filters text with its translation based on context information.\n\t\t *\n\t\t * @param {string} translation Translated text.\n\t\t * @param {string} text Text to translate.\n\t\t * @param {string} context Context information for the translators.\n\t\t * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n\t\t */\n\t\ttranslation = /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.gettext_with_context',\n\t\t\t\ttranslation,\n\t\t\t\ttext,\n\t\t\t\tcontext,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\t\treturn /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.gettext_with_context_' + getFilterDomain( domain ),\n\t\t\t\ttranslation,\n\t\t\t\ttext,\n\t\t\t\tcontext,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\t};\n\n\t/** @type {_n} */\n\tconst _n = ( single, plural, number, domain ) => {\n\t\tlet translation = dcnpgettext(\n\t\t\tdomain,\n\t\t\tundefined,\n\t\t\tsingle,\n\t\t\tplural,\n\t\t\tnumber\n\t\t);\n\t\tif ( ! hooks ) {\n\t\t\treturn translation;\n\t\t}\n\n\t\t/**\n\t\t * Filters the singular or plural form of a string.\n\t\t *\n\t\t * @param {string} translation Translated text.\n\t\t * @param {string} single The text to be used if the number is singular.\n\t\t * @param {string} plural The text to be used if the number is plural.\n\t\t * @param {string} number The number to compare against to use either the singular or plural form.\n\t\t * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n\t\t */\n\t\ttranslation = /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.ngettext',\n\t\t\t\ttranslation,\n\t\t\t\tsingle,\n\t\t\t\tplural,\n\t\t\t\tnumber,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\t\treturn /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.ngettext_' + getFilterDomain( domain ),\n\t\t\t\ttranslation,\n\t\t\t\tsingle,\n\t\t\t\tplural,\n\t\t\t\tnumber,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\t};\n\n\t/** @type {_nx} */\n\tconst _nx = ( single, plural, number, context, domain ) => {\n\t\tlet translation = dcnpgettext(\n\t\t\tdomain,\n\t\t\tcontext,\n\t\t\tsingle,\n\t\t\tplural,\n\t\t\tnumber\n\t\t);\n\t\tif ( ! hooks ) {\n\t\t\treturn translation;\n\t\t}\n\n\t\t/**\n\t\t * Filters the singular or plural form of a string with gettext context.\n\t\t *\n\t\t * @param {string} translation Translated text.\n\t\t * @param {string} single The text to be used if the number is singular.\n\t\t * @param {string} plural The text to be used if the number is plural.\n\t\t * @param {string} number The number to compare against to use either the singular or plural form.\n\t\t * @param {string} context Context information for the translators.\n\t\t * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n\t\t */\n\t\ttranslation = /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.ngettext_with_context',\n\t\t\t\ttranslation,\n\t\t\t\tsingle,\n\t\t\t\tplural,\n\t\t\t\tnumber,\n\t\t\t\tcontext,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\n\t\treturn /** @type {string} */ (\n\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t'i18n.ngettext_with_context_' + getFilterDomain( domain ),\n\t\t\t\ttranslation,\n\t\t\t\tsingle,\n\t\t\t\tplural,\n\t\t\t\tnumber,\n\t\t\t\tcontext,\n\t\t\t\tdomain\n\t\t\t)\n\t\t);\n\t};\n\n\t/** @type {IsRtl} */\n\tconst isRTL = () => {\n\t\treturn 'rtl' === _x( 'ltr', 'text direction' );\n\t};\n\n\t/** @type {HasTranslation} */\n\tconst hasTranslation = ( single, context, domain ) => {\n\t\tconst key = context ? context + '\\u0004' + single : single;\n\t\tlet result = !! tannin.data?.[ domain ?? 'default' ]?.[ key ];\n\t\tif ( hooks ) {\n\t\t\t/**\n\t\t\t * Filters the presence of a translation in the locale data.\n\t\t\t *\n\t\t\t * @param {boolean} hasTranslation Whether the translation is present or not..\n\t\t\t * @param {string} single The singular form of the translated text (used as key in locale data)\n\t\t\t * @param {string} context Context information for the translators.\n\t\t\t * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n\t\t\t */\n\t\t\tresult = /** @type { boolean } */ (\n\t\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t\t'i18n.has_translation',\n\t\t\t\t\tresult,\n\t\t\t\t\tsingle,\n\t\t\t\t\tcontext,\n\t\t\t\t\tdomain\n\t\t\t\t)\n\t\t\t);\n\n\t\t\tresult = /** @type { boolean } */ (\n\t\t\t\t/** @type {*} */ hooks.applyFilters(\n\t\t\t\t\t'i18n.has_translation_' + getFilterDomain( domain ),\n\t\t\t\t\tresult,\n\t\t\t\t\tsingle,\n\t\t\t\t\tcontext,\n\t\t\t\t\tdomain\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\treturn result;\n\t};\n\n\tif ( initialData ) {\n\t\tsetLocaleData( initialData, initialDomain );\n\t}\n\n\tif ( hooks ) {\n\t\t/**\n\t\t * @param {string} hookName\n\t\t */\n\t\tconst onHookAddedOrRemoved = ( hookName ) => {\n\t\t\tif ( I18N_HOOK_REGEXP.test( hookName ) ) {\n\t\t\t\tnotifyListeners();\n\t\t\t}\n\t\t};\n\n\t\thooks.addAction( 'hookAdded', 'core/i18n', onHookAddedOrRemoved );\n\t\thooks.addAction( 'hookRemoved', 'core/i18n', onHookAddedOrRemoved );\n\t}\n\n\treturn {\n\t\tgetLocaleData,\n\t\tsetLocaleData,\n\t\tresetLocaleData,\n\t\tsubscribe,\n\t\t__,\n\t\t_x,\n\t\t_n,\n\t\t_nx,\n\t\tisRTL,\n\t\thasTranslation,\n\t};\n};\n"]}
|
package/build-module/sprintf.js
CHANGED
|
@@ -25,8 +25,12 @@ const logErrorOnce = memoize(console.error); // eslint-disable-line no-console
|
|
|
25
25
|
* @return {string} The formatted string.
|
|
26
26
|
*/
|
|
27
27
|
|
|
28
|
-
export function sprintf(format
|
|
28
|
+
export function sprintf(format) {
|
|
29
29
|
try {
|
|
30
|
+
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
31
|
+
args[_key - 1] = arguments[_key];
|
|
32
|
+
}
|
|
33
|
+
|
|
30
34
|
return sprintfjs.sprintf(format, ...args);
|
|
31
35
|
} catch (error) {
|
|
32
36
|
if (error instanceof Error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/i18n/src/sprintf.js"],"names":["memoize","sprintfjs","logErrorOnce","console","error","sprintf","format","args","Error","toString"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,OAAP,MAAoB,QAApB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,YAAY,GAAGF,OAAO,CAAEG,OAAO,CAACC,KAAV,CAA5B,C,CAA+C;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,OAAT,CAAkBC,MAAlB,
|
|
1
|
+
{"version":3,"sources":["@wordpress/i18n/src/sprintf.js"],"names":["memoize","sprintfjs","logErrorOnce","console","error","sprintf","format","args","Error","toString"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,OAAP,MAAoB,QAApB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,YAAY,GAAGF,OAAO,CAAEG,OAAO,CAACC,KAAV,CAA5B,C,CAA+C;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,OAAT,CAAkBC,MAAlB,EAAoC;AAC1C,MAAI;AAAA,sCAD+BC,IAC/B;AAD+BA,MAAAA,IAC/B;AAAA;;AACH,WAAON,SAAS,CAACI,OAAV,CAAmBC,MAAnB,EAA2B,GAAGC,IAA9B,CAAP;AACA,GAFD,CAEE,OAAQH,KAAR,EAAgB;AACjB,QAAKA,KAAK,YAAYI,KAAtB,EAA8B;AAC7BN,MAAAA,YAAY,CAAE,wBAAwBE,KAAK,CAACK,QAAN,EAA1B,CAAZ;AACA;;AACD,WAAOH,MAAP;AACA;AACD","sourcesContent":["/**\n * External dependencies\n */\nimport memoize from 'memize';\nimport sprintfjs from 'sprintf-js';\n\n/**\n * Log to console, once per message; or more precisely, per referentially equal\n * argument set. Because Jed throws errors, we log these to the console instead\n * to avoid crashing the application.\n *\n * @param {...*} args Arguments to pass to `console.error`\n */\nconst logErrorOnce = memoize( console.error ); // eslint-disable-line no-console\n\n/**\n * Returns a formatted string. If an error occurs in applying the format, the\n * original format string is returned.\n *\n * @param {string} format The format of the string to generate.\n * @param {...*} args Arguments to apply to the format.\n *\n * @see https://www.npmjs.com/package/sprintf-js\n *\n * @return {string} The formatted string.\n */\nexport function sprintf( format, ...args ) {\n\ttry {\n\t\treturn sprintfjs.sprintf( format, ...args );\n\t} catch ( error ) {\n\t\tif ( error instanceof Error ) {\n\t\t\tlogErrorOnce( 'sprintf error: \\n\\n' + error.toString() );\n\t\t}\n\t\treturn format;\n\t}\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wordpress/i18n",
|
|
3
|
-
"version": "4.2.
|
|
3
|
+
"version": "4.2.4",
|
|
4
4
|
"description": "WordPress internationalization (i18n) library.",
|
|
5
5
|
"author": "The WordPress Contributors",
|
|
6
6
|
"license": "GPL-2.0-or-later",
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
"pot-to-php": "./tools/pot-to-php.js"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@babel/runtime": "^7.
|
|
33
|
-
"@wordpress/hooks": "^3.2.
|
|
32
|
+
"@babel/runtime": "^7.16.0",
|
|
33
|
+
"@wordpress/hooks": "^3.2.2",
|
|
34
34
|
"gettext-parser": "^1.3.1",
|
|
35
35
|
"lodash": "^4.17.21",
|
|
36
36
|
"memize": "^1.1.0",
|
|
@@ -40,5 +40,5 @@
|
|
|
40
40
|
"publishConfig": {
|
|
41
41
|
"access": "public"
|
|
42
42
|
},
|
|
43
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "9a1dd3474d937468e4cf9caf9886ad61ef0a8f50"
|
|
44
44
|
}
|