diff --git a/.tx/config b/.tx/config index 54dc526..f402965 100644 --- a/.tx/config +++ b/.tx/config @@ -32,3 +32,36 @@ file_filter = invenio_pages/translations//LC_MESSAGES/messages.po source_file = invenio_pages/translations/messages.pot source_lang = en type = PO + +# Translate JavaScript strings +# 1) Navigate to the invenio_administration/assets/semantic-ui/translations/invenio_administration folder +# 2) Install i18n dev dependencies +# npm install +# 3) Add a new language +# npm run init_catalog lang +# 4) Extract translation keys/values +# $ npm run extract_messages +# 5) Update the ./messages/index.js file +# import TRANSLATE_ from './/translations.json' +# export const translations = { +# ...rest, +# : { translation: TRANSLATE_ } +# } +# 6) Install the transifex-client +# $ pip install transifex-client +# 7) Push source (.pot) and translations (.po) to Transifex +# $ tx push -s -t +# 8) Pull translations for a single language from Transifex +# $ tx pull -l +# 9) Pull translations for all languages from Transifex +# $ tx pull -a +# 10) Compile .po files for all languages +# $ npm run compile_catalog +# 11) Convert .po file for a single language +# $ npm run compile_catalog lang + +[invenio.invenio-pages-messages-ui] +file_filter = invenio_pages/assets/semantic-ui/translations/invenio_pages/messages//messages.po +source_file = invenio_pages/assets/semantic-ui/translations/invenio_pages/translations.pot +source_lang = en +type = PO diff --git a/babel.ini b/babel.ini index aa99c31..8e6c47c 100644 --- a/babel.ini +++ b/babel.ini @@ -1,23 +1,15 @@ # -*- coding: utf-8 -*- # # This file is part of Invenio. -# Copyright (C) 2015-2022 CERN. +# Copyright (C) 2015-2023 CERN. # # Invenio is free software; you can redistribute it and/or modify it # under the terms of the MIT License; see LICENSE file for more details. # Extraction from Python source files - [python: **.py] encoding = utf-8 # Extraction from Jinja2 templates - [jinja2: **/templates/**.html] encoding = utf-8 - -# Extraction from JavaScript files - -[javascript: **.js] -encoding = utf-8 -extract_messages = $._, jQuery._ diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/i18next-scanner.config.js b/invenio_pages/assets/semantic-ui/translations/invenio_pages/i18next-scanner.config.js new file mode 100644 index 0000000..e6c544c --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/i18next-scanner.config.js @@ -0,0 +1,63 @@ +// This file is part of Invenio +// +// Invenio-pages is free software; you can redistribute it and/or modify it +// under the terms of the MIT License; see LICENSE file for more details. + +// list of func used to +// mark the strings for translation +const { languages } = require("./package.json").config; + +const funcList = ["i18next.t"]; +const extensions = [".js", ".jsx"]; + +module.exports = { + options: { + debug: true, + removeUnusedKeys: true, + browserLanguageDetection: true, + func: { + list: funcList, + extensions: extensions, + }, + //using Trans component + trans: { + component: "Trans", + extensions: extensions, + fallbackKey: function (ns, value) { + return value; + }, + }, + lngs: languages, + ns: [ + // file name (.json) + "translations", + ], + defaultLng: "en", + defaultNs: "translations", + // @param {string} lng The language currently used. + // @param {string} ns The namespace currently used. + // @param {string} key The translation key. + // @return {string} Returns a default value for the translation key. + defaultValue: function (lng, ns, key) { + if (lng === "en") { + // Return key as the default value for English language + return key; + } + return ""; + }, + resource: { + // The path where resources get loaded from. Relative to current working directory. + loadPath: "messages/{{lng}}/{{ns}}.json", + + // The path to store resources. + savePath: "messages/{{lng}}/{{ns}}.json", + jsonIndent: 2, + lineEnding: "\n", + }, + nsSeparator: false, // namespace separator + + //Set to false to disable key separator + // if you prefer having keys as the fallback for translation (e.g. gettext). + keySeparator: false, + }, +}; diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/i18next.js b/invenio_pages/assets/semantic-ui/translations/invenio_pages/i18next.js new file mode 100644 index 0000000..bbfdc77 --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/i18next.js @@ -0,0 +1,36 @@ +// This file is part of Invenio +// +// Invenio-pages is free software; you can redistribute it and/or modify it +// under the terms of the MIT License; see LICENSE file for more details. + +import i18n from "i18next"; + +import LanguageDetector from "i18next-browser-languagedetector"; +import { translations } from "./messages"; +import { initReactI18next } from "react-i18next"; + +const options = { + fallbackLng: "en", // fallback keys + returnEmptyString: false, + debug: process.env.NODE_ENV === "development", + resources: translations, + keySeparator: false, + nsSeparator: false, + // specify language detection order + detection: { + order: ["htmlTag"], + // cache user language off + caches: [], + }, + react: { + // Set empty - to allow html tags convert to trans tags + // HTML TAG | Trans TAG + // | <1> + transKeepBasicHtmlNodesFor: [], + }, +}; + +const i18next = i18n.createInstance(); +i18next.use(LanguageDetector).use(initReactI18next).init(options); + +export { i18next }; diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/af/translations.json b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/af/translations.json new file mode 100644 index 0000000..5dc008b --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/af/translations.json @@ -0,0 +1,3 @@ +{ + "Actions": "" +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/ar/translations.json b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/ar/translations.json new file mode 100644 index 0000000..5dc008b --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/ar/translations.json @@ -0,0 +1,3 @@ +{ + "Actions": "" +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/bg/translations.json b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/bg/translations.json new file mode 100644 index 0000000..5dc008b --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/bg/translations.json @@ -0,0 +1,3 @@ +{ + "Actions": "" +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/ca/translations.json b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/ca/translations.json new file mode 100644 index 0000000..5dc008b --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/ca/translations.json @@ -0,0 +1,3 @@ +{ + "Actions": "" +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/cs/translations.json b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/cs/translations.json new file mode 100644 index 0000000..5dc008b --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/cs/translations.json @@ -0,0 +1,3 @@ +{ + "Actions": "" +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/da/translations.json b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/da/translations.json new file mode 100644 index 0000000..5dc008b --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/da/translations.json @@ -0,0 +1,3 @@ +{ + "Actions": "" +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/de/translations.json b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/de/translations.json new file mode 100644 index 0000000..5dc008b --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/de/translations.json @@ -0,0 +1,3 @@ +{ + "Actions": "" +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/el/translations.json b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/el/translations.json new file mode 100644 index 0000000..5dc008b --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/el/translations.json @@ -0,0 +1,3 @@ +{ + "Actions": "" +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/en/translations.json b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/en/translations.json new file mode 100644 index 0000000..42c19d0 --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/en/translations.json @@ -0,0 +1,3 @@ +{ + "Actions": "Actions" +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/es/translations.json b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/es/translations.json new file mode 100644 index 0000000..5dc008b --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/es/translations.json @@ -0,0 +1,3 @@ +{ + "Actions": "" +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/et/translations.json b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/et/translations.json new file mode 100644 index 0000000..5dc008b --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/et/translations.json @@ -0,0 +1,3 @@ +{ + "Actions": "" +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/et_EE/translations.json b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/et_EE/translations.json new file mode 100644 index 0000000..5dc008b --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/et_EE/translations.json @@ -0,0 +1,3 @@ +{ + "Actions": "" +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/fa/translations.json b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/fa/translations.json new file mode 100644 index 0000000..5dc008b --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/fa/translations.json @@ -0,0 +1,3 @@ +{ + "Actions": "" +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/fr/translations.json b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/fr/translations.json new file mode 100644 index 0000000..5dc008b --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/fr/translations.json @@ -0,0 +1,3 @@ +{ + "Actions": "" +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/gl/translations.json b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/gl/translations.json new file mode 100644 index 0000000..5dc008b --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/gl/translations.json @@ -0,0 +1,3 @@ +{ + "Actions": "" +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/hr/translations.json b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/hr/translations.json new file mode 100644 index 0000000..5dc008b --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/hr/translations.json @@ -0,0 +1,3 @@ +{ + "Actions": "" +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/hu/translations.json b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/hu/translations.json new file mode 100644 index 0000000..5dc008b --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/hu/translations.json @@ -0,0 +1,3 @@ +{ + "Actions": "" +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/index.js b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/index.js new file mode 100644 index 0000000..3d7fb2f --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/index.js @@ -0,0 +1,69 @@ +import TRANSLATE_AF from "./af/translations.json"; +import TRANSLATE_AR from "./ar/translations.json"; +import TRANSLATE_BG from "./bg/translations.json"; +import TRANSLATE_CA from "./ca/translations.json"; +import TRANSLATE_CS from "./cs/translations.json"; +import TRANSLATE_DA from "./da/translations.json"; +import TRANSLATE_DE from "./de/translations.json"; +import TRANSLATE_EL from "./el/translations.json"; +import TRANSLATE_EN from "./en/translations.json"; +import TRANSLATE_ES from "./es/translations.json"; +import TRANSLATE_ET from "./et/translations.json"; +import TRANSLATE_ET_EE from "./et_EE/translations.json"; +import TRANSLATE_FA from "./fa/translations.json"; +import TRANSLATE_FR from "./fr/translations.json"; +import TRANSLATE_GL from "./gl/translations.json"; +import TRANSLATE_HR from "./hr/translations.json"; +import TRANSLATE_HU from "./hu/translations.json"; +import TRANSLATE_IT from "./it/translations.json"; +import TRANSLATE_JA from "./ja/translations.json"; +import TRANSLATE_KA from "./ka/translations.json"; +import TRANSLATE_LT from "./lt/translations.json"; +import TRANSLATE_NO from "./no/translations.json"; +import TRANSLATE_PL from "./pl/translations.json"; +import TRANSLATE_PT from "./pt/translations.json"; +import TRANSLATE_RO from "./ro/translations.json"; +import TRANSLATE_RU from "./ru/translations.json"; +import TRANSLATE_RW from "./rw/translations.json"; +import TRANSLATE_SK from "./sk/translations.json"; +import TRANSLATE_SV from "./sv/translations.json"; +import TRANSLATE_TR from "./tr/translations.json"; +import TRANSLATE_UK from "./uk/translations.json"; +import TRANSLATE_ZH_CN from "./zh_CN/translations.json"; +import TRANSLATE_ZH_TW from "./zh_TW/translations.json"; + +export const translations = { + af: { translation: TRANSLATE_AF }, + ar: { translation: TRANSLATE_AR }, + bg: { translation: TRANSLATE_BG }, + ca: { translation: TRANSLATE_CA }, + cs: { translation: TRANSLATE_CS }, + da: { translation: TRANSLATE_DA }, + de: { translation: TRANSLATE_DE }, + el: { translation: TRANSLATE_EL }, + en: { translation: TRANSLATE_EN }, + es: { translation: TRANSLATE_ES }, + et: { translation: TRANSLATE_ET }, + et_EE: { translation: TRANSLATE_ET_EE }, + fa: { translation: TRANSLATE_FA }, + fr: { translation: TRANSLATE_FR }, + gl: { translation: TRANSLATE_GL }, + hr: { translation: TRANSLATE_HR }, + hu: { translation: TRANSLATE_HU }, + it: { translation: TRANSLATE_IT }, + ja: { translation: TRANSLATE_JA }, + ka: { translation: TRANSLATE_KA }, + lt: { translation: TRANSLATE_LT }, + no: { translation: TRANSLATE_NO }, + pl: { translation: TRANSLATE_PL }, + pt: { translation: TRANSLATE_PT }, + ro: { translation: TRANSLATE_RO }, + ru: { translation: TRANSLATE_RU }, + rw: { translation: TRANSLATE_RW }, + sk: { translation: TRANSLATE_SK }, + sv: { translation: TRANSLATE_SV }, + tr: { translation: TRANSLATE_TR }, + uk: { translation: TRANSLATE_UK }, + zh_CN: { translation: TRANSLATE_ZH_CN }, + zh_TW: { translation: TRANSLATE_ZH_TW }, +}; diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/it/translations.json b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/it/translations.json new file mode 100644 index 0000000..5dc008b --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/it/translations.json @@ -0,0 +1,3 @@ +{ + "Actions": "" +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/ja/translations.json b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/ja/translations.json new file mode 100644 index 0000000..5dc008b --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/ja/translations.json @@ -0,0 +1,3 @@ +{ + "Actions": "" +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/ka/translations.json b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/ka/translations.json new file mode 100644 index 0000000..5dc008b --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/ka/translations.json @@ -0,0 +1,3 @@ +{ + "Actions": "" +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/lt/translations.json b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/lt/translations.json new file mode 100644 index 0000000..5dc008b --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/lt/translations.json @@ -0,0 +1,3 @@ +{ + "Actions": "" +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/no/translations.json b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/no/translations.json new file mode 100644 index 0000000..5dc008b --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/no/translations.json @@ -0,0 +1,3 @@ +{ + "Actions": "" +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/pl/translations.json b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/pl/translations.json new file mode 100644 index 0000000..5dc008b --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/pl/translations.json @@ -0,0 +1,3 @@ +{ + "Actions": "" +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/pt/translations.json b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/pt/translations.json new file mode 100644 index 0000000..5dc008b --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/pt/translations.json @@ -0,0 +1,3 @@ +{ + "Actions": "" +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/ro/translations.json b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/ro/translations.json new file mode 100644 index 0000000..5dc008b --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/ro/translations.json @@ -0,0 +1,3 @@ +{ + "Actions": "" +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/ru/translations.json b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/ru/translations.json new file mode 100644 index 0000000..5dc008b --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/ru/translations.json @@ -0,0 +1,3 @@ +{ + "Actions": "" +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/rw/translations.json b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/rw/translations.json new file mode 100644 index 0000000..5dc008b --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/rw/translations.json @@ -0,0 +1,3 @@ +{ + "Actions": "" +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/sk/translations.json b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/sk/translations.json new file mode 100644 index 0000000..5dc008b --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/sk/translations.json @@ -0,0 +1,3 @@ +{ + "Actions": "" +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/sv/translations.json b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/sv/translations.json new file mode 100644 index 0000000..5dc008b --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/sv/translations.json @@ -0,0 +1,3 @@ +{ + "Actions": "" +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/tr/translations.json b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/tr/translations.json new file mode 100644 index 0000000..5dc008b --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/tr/translations.json @@ -0,0 +1,3 @@ +{ + "Actions": "" +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/uk/translations.json b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/uk/translations.json new file mode 100644 index 0000000..5dc008b --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/uk/translations.json @@ -0,0 +1,3 @@ +{ + "Actions": "" +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/zh_CN/translations.json b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/zh_CN/translations.json new file mode 100644 index 0000000..5dc008b --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/zh_CN/translations.json @@ -0,0 +1,3 @@ +{ + "Actions": "" +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/zh_TW/translations.json b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/zh_TW/translations.json new file mode 100644 index 0000000..5dc008b --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/messages/zh_TW/translations.json @@ -0,0 +1,3 @@ +{ + "Actions": "" +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/package-lock.json b/invenio_pages/assets/semantic-ui/translations/invenio_pages/package-lock.json new file mode 100644 index 0000000..be43208 --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/package-lock.json @@ -0,0 +1,1520 @@ +{ + "name": "invenio-administration-ui", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@babel/runtime": { + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", + "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.11" + } + }, + "acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true + }, + "acorn-class-fields": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/acorn-class-fields/-/acorn-class-fields-0.3.7.tgz", + "integrity": "sha512-jdUWSFce0fuADUljmExz4TWpPkxmRW/ZCPRqeeUzbGf0vFUcpQYbyq52l75qGd0oSwwtAepeL6hgb/naRgvcKQ==", + "dev": true, + "requires": { + "acorn-private-class-elements": "^0.2.7" + } + }, + "acorn-dynamic-import": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", + "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true + }, + "acorn-private-class-elements": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/acorn-private-class-elements/-/acorn-private-class-elements-0.2.7.tgz", + "integrity": "sha512-+GZH2wOKNZOBI4OOPmzpo4cs6mW297sn6fgIk1dUI08jGjhAaEwvC39mN2gJAg2lmAQJ1rBkFqKWonL3Zz6PVA==", + "dev": true + }, + "acorn-private-methods": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/acorn-private-methods/-/acorn-private-methods-0.3.3.tgz", + "integrity": "sha512-46oeEol3YFvLSah5m9hGMlNpxDBCEkdceJgf01AjqKYTK9r6HexKs2rgSbLK81pYjZZMonhftuUReGMlbbv05w==", + "dev": true, + "requires": { + "acorn-private-class-elements": "^0.2.7" + } + }, + "acorn-stage3": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/acorn-stage3/-/acorn-stage3-4.0.0.tgz", + "integrity": "sha512-BR+LaADtA6GTB5prkNqWmlmCLYmkyW0whvSxdHhbupTaro2qBJ95fJDEiRLPUmiACGHPaYyeH9xmNJWdGfXRQw==", + "dev": true, + "requires": { + "acorn-class-fields": "^0.3.7", + "acorn-private-methods": "^0.3.3", + "acorn-static-class-features": "^0.2.4" + } + }, + "acorn-static-class-features": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/acorn-static-class-features/-/acorn-static-class-features-0.2.4.tgz", + "integrity": "sha512-5X4mpYq5J3pdndLmIB0+WtFd/mKWnNYpuTlTzj32wUu/PMmEGOiayQ5UrqgwdBNiaZBtDDh5kddpP7Yg2QaQYA==", + "dev": true, + "requires": { + "acorn-private-class-elements": "^0.2.7" + } + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "append-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", + "integrity": "sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA==", + "dev": true, + "requires": { + "buffer-equal": "^1.0.0" + } + }, + "arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "buffer-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.1.tgz", + "integrity": "sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==", + "dev": true + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true + }, + "clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==", + "dev": true + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==", + "dev": true + }, + "cloneable-readable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", + "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "deepmerge": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.0.tgz", + "integrity": "sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==", + "dev": true + }, + "define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "requires": { + "iconv-lite": "^0.6.2" + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "ensure-array": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ensure-array/-/ensure-array-1.0.0.tgz", + "integrity": "sha512-A+3Ntl5WS+GjDnHtC67dKIjw+IoGoeFdNvjn3ZfKEmZgWUz0nxBPE4W52QMCbGZsat0VwWskD5T6AEpe3T2d1g==", + "dev": true + }, + "eol": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/eol/-/eol-0.9.1.tgz", + "integrity": "sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==", + "dev": true + }, + "esprima-next": { + "version": "5.8.4", + "resolved": "https://registry.npmjs.org/esprima-next/-/esprima-next-5.8.4.tgz", + "integrity": "sha512-8nYVZ4ioIH4Msjb/XmhnBdz5WRRBaYqevKa1cv9nGJdCehMbzZCPNEEnqfLCZVetUVrUPEcb5IYyu1GG4hFqgg==", + "dev": true + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "fs-mkdirp-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", + "integrity": "sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "through2": "^2.0.3" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "gettext-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-4.2.0.tgz", + "integrity": "sha512-aMgPyjC9W5Mz9tbFU8DcQ7GYMXoFWq633kaWGt4imlcpBWzDIWk7HY7nCSZTCJxyjRaLq9L/NEjMKkZ9gR630Q==", + "dev": true, + "requires": { + "content-type": "^1.0.4", + "encoding": "^0.1.13", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.1" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "glob-stream": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==", + "dev": true, + "requires": { + "extend": "^3.0.0", + "glob": "^7.1.1", + "glob-parent": "^3.1.0", + "is-negated-glob": "^1.0.0", + "ordered-read-streams": "^1.0.0", + "pumpify": "^1.3.5", + "readable-stream": "^2.1.5", + "remove-trailing-separator": "^1.0.1", + "to-absolute-glob": "^2.0.0", + "unique-stream": "^2.0.2" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "gulp-sort": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/gulp-sort/-/gulp-sort-2.0.0.tgz", + "integrity": "sha512-MyTel3FXOdh1qhw1yKhpimQrAmur9q1X0ZigLmCOxouQD+BD3za9/89O+HfbgBQvvh4igEbp0/PUWO+VqGYG1g==", + "dev": true, + "requires": { + "through2": "^2.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "html-parse-stringify": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz", + "integrity": "sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==", + "dev": true, + "requires": { + "void-elements": "3.1.0" + } + }, + "i18next": { + "version": "20.6.1", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-20.6.1.tgz", + "integrity": "sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==", + "dev": true, + "requires": { + "@babel/runtime": "^7.12.0" + } + }, + "i18next-browser-languagedetector": { + "version": "6.1.8", + "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-6.1.8.tgz", + "integrity": "sha512-Svm+MduCElO0Meqpj1kJAriTC6OhI41VhlT/A0UPjGoPZBhAHIaGE5EfsHlTpgdH09UVX7rcc72pSDDBeKSQQA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.19.0" + } + }, + "i18next-conv": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/i18next-conv/-/i18next-conv-10.2.0.tgz", + "integrity": "sha512-wBH1z874bw7p7Q0sUWBVqxfQjOXhd3h7GC4bIUXrrzoLmvRdPtRqSYlXN150YR9+5IDYLqkUUYu0IIKDsiPmpw==", + "dev": true, + "requires": { + "arrify": "^2.0.1", + "chalk": "^4.0.0", + "commander": "^5.1.0", + "gettext-parser": "^4.0.3", + "mkdirp": "^1.0.4", + "node-gettext": "^3.0.0" + } + }, + "i18next-scanner": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/i18next-scanner/-/i18next-scanner-3.3.0.tgz", + "integrity": "sha512-wVCv2HCpFWi/KIU/UiWgzUZg3Ih9zO8GLRv0aAQWJ7LUukrLaNkzdtVdkED6b4AiEDfCuM4X1KLcBi+pvL6JzQ==", + "dev": true, + "requires": { + "acorn": "^8.0.4", + "acorn-dynamic-import": "^4.0.0", + "acorn-jsx": "^5.3.1", + "acorn-stage3": "^4.0.0", + "acorn-walk": "^8.0.0", + "chalk": "^4.1.0", + "clone-deep": "^4.0.0", + "commander": "^6.2.0", + "deepmerge": "^4.0.0", + "ensure-array": "^1.0.0", + "eol": "^0.9.1", + "esprima-next": "^5.7.0", + "gulp-sort": "^2.0.0", + "i18next": "*", + "lodash": "^4.0.0", + "parse5": "^6.0.0", + "sortobject": "^4.0.0", + "through2": "^4.0.0", + "vinyl": "^2.2.0", + "vinyl-fs": "^3.0.1" + }, + "dependencies": { + "commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true + } + } + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "requires": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + }, + "is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "requires": { + "is-unc-path": "^1.0.0" + } + }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "requires": { + "unc-path-regex": "^0.1.2" + } + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true + }, + "is-valid-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", + "integrity": "sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA==", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "dev": true, + "requires": { + "readable-stream": "^2.0.5" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "lead": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", + "integrity": "sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow==", + "dev": true, + "requires": { + "flush-write-stream": "^1.0.2" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "node-gettext": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/node-gettext/-/node-gettext-3.0.0.tgz", + "integrity": "sha512-/VRYibXmVoN6tnSAY2JWhNRhWYJ8Cd844jrZU/DwLVoI4vBI6ceYbd8i42sYZ9uOgDH3S7vslIKOWV/ZrT2YBA==", + "dev": true, + "requires": { + "lodash.get": "^4.4.2" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "now-and-later": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", + "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", + "dev": true, + "requires": { + "once": "^1.3.2" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "ordered-read-streams": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", + "integrity": "sha512-Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw==", + "dev": true, + "requires": { + "readable-stream": "^2.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "react-i18next": { + "version": "11.18.6", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-11.18.6.tgz", + "integrity": "sha512-yHb2F9BiT0lqoQDt8loZ5gWP331GwctHz9tYQ8A2EIEUu+CcEdjBLQWli1USG3RdWQt3W+jqQLg/d4rrQR96LA==", + "dev": true, + "requires": { + "@babel/runtime": "^7.14.5", + "html-parse-stringify": "^3.0.1" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "dev": true + }, + "remove-bom-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", + "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5", + "is-utf8": "^0.2.1" + } + }, + "remove-bom-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", + "integrity": "sha512-wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA==", + "dev": true, + "requires": { + "remove-bom-buffer": "^3.0.0", + "safe-buffer": "^5.1.0", + "through2": "^2.0.3" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "dev": true + }, + "replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", + "dev": true + }, + "resolve-options": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", + "integrity": "sha512-NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A==", + "dev": true, + "requires": { + "value-or-function": "^3.0.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "sortobject": { + "version": "4.16.0", + "resolved": "https://registry.npmjs.org/sortobject/-/sortobject-4.16.0.tgz", + "integrity": "sha512-jdcWhqJjxyYxRcXa30qImF3PZea1GpNwdKxUac28T28+GodptH4XihPuRlgCY0hITIEQVnw8DtQ81Fb6fomBaw==", + "dev": true + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "requires": { + "readable-stream": "3" + } + }, + "through2-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", + "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", + "dev": true, + "requires": { + "through2": "~2.0.0", + "xtend": "~4.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==", + "dev": true, + "requires": { + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" + } + }, + "to-through": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", + "integrity": "sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q==", + "dev": true, + "requires": { + "through2": "^2.0.3" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", + "dev": true + }, + "unique-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", + "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", + "dev": true, + "requires": { + "json-stable-stringify-without-jsonify": "^1.0.1", + "through2-filter": "^3.0.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "value-or-function": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", + "integrity": "sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg==", + "dev": true + }, + "vinyl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", + "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", + "dev": true, + "requires": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + } + }, + "vinyl-fs": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", + "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", + "dev": true, + "requires": { + "fs-mkdirp-stream": "^1.0.0", + "glob-stream": "^6.1.0", + "graceful-fs": "^4.0.0", + "is-valid-glob": "^1.0.0", + "lazystream": "^1.0.0", + "lead": "^1.0.0", + "object.assign": "^4.0.4", + "pumpify": "^1.3.5", + "readable-stream": "^2.3.3", + "remove-bom-buffer": "^3.0.0", + "remove-bom-stream": "^1.2.0", + "resolve-options": "^1.1.0", + "through2": "^2.0.0", + "to-through": "^2.0.0", + "value-or-function": "^3.0.0", + "vinyl": "^2.0.0", + "vinyl-sourcemap": "^1.1.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "vinyl-sourcemap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", + "integrity": "sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA==", + "dev": true, + "requires": { + "append-buffer": "^1.0.2", + "convert-source-map": "^1.5.0", + "graceful-fs": "^4.1.6", + "normalize-path": "^2.1.1", + "now-and-later": "^2.0.0", + "remove-bom-buffer": "^3.0.0", + "vinyl": "^2.0.0" + } + }, + "void-elements": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + } + } +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/package.json b/invenio_pages/assets/semantic-ui/translations/invenio_pages/package.json new file mode 100644 index 0000000..e85509a --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/package.json @@ -0,0 +1,53 @@ +{ + "name": "invenio-administration-ui", + "config": { + "languages": [ + "af", + "ar", + "bg", + "ca", + "cs", + "da", + "de", + "el", + "en", + "es", + "et", + "et_EE", + "fa", + "fr", + "gl", + "hr", + "hu", + "it", + "ja", + "ka", + "lt", + "no", + "pl", + "pt", + "ro", + "ru", + "rw", + "sk", + "sv", + "tr", + "uk", + "zh_CN", + "zh_TW" + ] + }, + "devDependencies": { + "i18next-conv": "^10.2.0", + "i18next-scanner": "^3.0.0", + "react-i18next": "^11.11.3", + "i18next": "^20.3.0", + "i18next-browser-languagedetector": "^6.1.0" + }, + "scripts": { + "extract_messages": "i18next-scanner --config i18next-scanner.config.js '../../js/**/*.{js,jsx}'", + "postextract_messages": "i18next-conv -l en -s ./messages/en/translations.json -t ./translations.pot", + "compile_catalog": "node ./scripts/compileCatalog.js", + "init_catalog": "node ./scripts/initCatalog" + } +} \ No newline at end of file diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/scripts/compileCatalog.js b/invenio_pages/assets/semantic-ui/translations/invenio_pages/scripts/compileCatalog.js new file mode 100644 index 0000000..b8170c2 --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/scripts/compileCatalog.js @@ -0,0 +1,39 @@ +// This file is part of Invenio +// +// Invenio-pages is free software; you can redistribute it and/or modify it +// under the terms of the MIT License; see LICENSE file for more details. + +const { readFileSync, writeFileSync } = require("fs"); +const { gettextToI18next } = require("i18next-conv"); + +const PACKAGE_JSON_BASE_PATH = "./"; +const { languages } = require(`../package`).config; + +// it accepts the same options as the cli. +// https://github.com/i18next/i18next-gettext-converter#options +const options = { + /* you options here */ +}; + +function save(target) { + return (result) => { + writeFileSync(target, result); + }; +} + +if ("lang" === process.argv[2]) { + const lang = process.argv[3]; + gettextToI18next( + lang, + readFileSync(`${PACKAGE_JSON_BASE_PATH}messages/${lang}/messages.po`), + options + ).then(save(`${PACKAGE_JSON_BASE_PATH}messages/${lang}/translations.json`)); +} else { + for (const lang of languages) { + gettextToI18next( + lang, + readFileSync(`${PACKAGE_JSON_BASE_PATH}messages/${lang}/messages.po`), + options + ).then(save(`${PACKAGE_JSON_BASE_PATH}messages/${lang}/translations.json`)); + } +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/scripts/initCatalog.js b/invenio_pages/assets/semantic-ui/translations/invenio_pages/scripts/initCatalog.js new file mode 100644 index 0000000..b104946 --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/scripts/initCatalog.js @@ -0,0 +1,19 @@ +// This file is part of Invenio +// +// Invenio-pages is free software; you can redistribute it and/or modify it +// under the terms of the MIT License; see LICENSE file for more details. + +const { writeFileSync } = require("fs"); +const packageJson = require("../package"); + +const { languages } = packageJson.config; +if ("lang" === process.argv[2]) { + const addedLang = process.argv[3]; + languages.push(addedLang); + packageJson.config.languages = [...new Set(languages)]; + writeFileSync(`package.json`, JSON.stringify(packageJson, null, 2)); +} else { + console.error( + "Error:Please provide a language by running `npm run init_catalog lang `" + ); +} diff --git a/invenio_pages/assets/semantic-ui/translations/invenio_pages/translations.pot b/invenio_pages/assets/semantic-ui/translations/invenio_pages/translations.pot new file mode 100644 index 0000000..f642f80 --- /dev/null +++ b/invenio_pages/assets/semantic-ui/translations/invenio_pages/translations.pot @@ -0,0 +1,13 @@ +msgid "" +msgstr "" +"Project-Id-Version: i18next-conv\n" +"mime-version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"POT-Creation-Date: 2023-02-14T16:20:36.111Z\n" +"PO-Revision-Date: 2023-02-14T16:20:36.111Z\n" +"Language: en\n" + +msgid "Actions" +msgstr "Actions" \ No newline at end of file diff --git a/invenio_pages/translations/en/LC_MESSAGES/messages.po b/invenio_pages/translations/en/LC_MESSAGES/messages.po new file mode 100644 index 0000000..2841202 --- /dev/null +++ b/invenio_pages/translations/en/LC_MESSAGES/messages.po @@ -0,0 +1,117 @@ +# English translations for invenio-pages. +# Copyright (C) 2023 CERN +# This file is distributed under the same license as the invenio-pages +# project. +# FIRST AUTHOR , 2023. +# +msgid "" +msgstr "" +"Project-Id-Version: invenio-pages 2.0.0\n" +"Report-Msgid-Bugs-To: info@inveniosoftware.org\n" +"POT-Creation-Date: 2023-02-14 17:23+0100\n" +"PO-Revision-Date: 2023-02-14 17:23+0100\n" +"Last-Translator: FULL NAME \n" +"Language: en\n" +"Language-Team: en \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.11.0\n" + +#: invenio_pages/administration/views/pages.py:66 invenio_pages/config.py:35 +msgid "URL" +msgstr "" + +#: invenio_pages/administration/views/pages.py:38 +#: invenio_pages/administration/views/pages.py:71 +#: invenio_pages/administration/views/pages.py:113 invenio_pages/config.py:39 +#: invenio_pages/services/config.py:57 +msgid "Title" +msgstr "" + +#: invenio_pages/administration/views/pages.py:42 +#: invenio_pages/administration/views/pages.py:117 invenio_pages/config.py:43 +#: invenio_pages/services/config.py:73 +msgid "Created" +msgstr "" + +#: invenio_pages/administration/views/pages.py:43 +#: invenio_pages/administration/views/pages.py:118 invenio_pages/config.py:47 +#: invenio_pages/services/config.py:77 +msgid "Updated" +msgstr "" + +#: invenio_pages/administration/views/pages.py:37 +#: invenio_pages/administration/views/pages.py:112 +#: invenio_pages/services/config.py:53 +msgid "Url" +msgstr "" + +#: invenio_pages/administration/views/pages.py:39 +#: invenio_pages/administration/views/pages.py:76 +#: invenio_pages/administration/views/pages.py:114 +#: invenio_pages/services/config.py:61 +msgid "Content" +msgstr "" + +#: invenio_pages/administration/views/pages.py:40 +#: invenio_pages/administration/views/pages.py:115 +#: invenio_pages/services/config.py:65 +msgid "Template Name" +msgstr "" + +#: invenio_pages/administration/views/pages.py:41 +#: invenio_pages/administration/views/pages.py:87 +#: invenio_pages/administration/views/pages.py:116 +#: invenio_pages/services/config.py:69 +msgid "Description" +msgstr "" + +#: invenio_pages/administration/views/pages.py:67 +msgid "Relative path to the page." +msgstr "" + +#: invenio_pages/administration/views/pages.py:72 +msgid "Title of the page." +msgstr "" + +#: invenio_pages/administration/views/pages.py:77 +msgid "Content displayed by the page." +msgstr "" + +#: invenio_pages/administration/views/pages.py:82 +msgid "Template name" +msgstr "" + +#: invenio_pages/administration/views/pages.py:83 +msgid "Jinja template used to display the page." +msgstr "" + +#: invenio_pages/administration/views/pages.py:88 +msgid "Description of the page" +msgstr "" + +#: invenio_pages/administration/views/pages.py:111 +#: invenio_pages/services/config.py:49 +msgid "Id" +msgstr "" + +#: invenio_pages/records/errors.py:20 +msgid "The page identified by {identifier} cannot be found." +msgstr "" + +#: invenio_pages/records/errors.py:34 +msgid "" +"The page with url {url} couldn't be created, likely due to a page with " +"the same URL already existing." +msgstr "" + +#: invenio_pages/services/config.py:37 +msgid "Ascending" +msgstr "" + +#: invenio_pages/services/config.py:41 +msgid "Descending" +msgstr "" + diff --git a/invenio_pages/translations/es/LC_MESSAGES/messages.po b/invenio_pages/translations/es/LC_MESSAGES/messages.po index fa80b64..0e041e8 100644 --- a/invenio_pages/translations/es/LC_MESSAGES/messages.po +++ b/invenio_pages/translations/es/LC_MESSAGES/messages.po @@ -1,36 +1,117 @@ -# Translations template for invenio-pages. -# Copyright (C) 2016-2022 CERN +# Spanish translations for invenio-pages. +# Copyright (C) 2023 CERN # This file is distributed under the same license as the invenio-pages # project. -# FIRST AUTHOR , 2016. -# -#, fuzzy +# FIRST AUTHOR , 2023. +# msgid "" msgstr "" -"Project-Id-Version: invenio-pages 1.0.0a4.dev20160629\n" +"Project-Id-Version: invenio-pages 2.0.0\n" "Report-Msgid-Bugs-To: info@inveniosoftware.org\n" -"POT-Creation-Date: 2016-08-19 14:00+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Language-Team: Spanish (https://www.transifex.com/inveniosoftware/teams/23537/es/)\n" +"POT-Creation-Date: 2023-02-14 17:23+0100\n" +"PO-Revision-Date: 2023-02-14 17:23+0100\n" +"Last-Translator: FULL NAME \n" +"Language: es\n" +"Language-Team: es \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.3.4\n" -"Language: es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Generated-By: Babel 2.11.0\n" + +#: invenio_pages/administration/views/pages.py:66 invenio_pages/config.py:35 +msgid "URL" +msgstr "" + +#: invenio_pages/administration/views/pages.py:38 +#: invenio_pages/administration/views/pages.py:71 +#: invenio_pages/administration/views/pages.py:113 invenio_pages/config.py:39 +#: invenio_pages/services/config.py:57 +msgid "Title" +msgstr "" + +#: invenio_pages/administration/views/pages.py:42 +#: invenio_pages/administration/views/pages.py:117 invenio_pages/config.py:43 +#: invenio_pages/services/config.py:73 +msgid "Created" +msgstr "" + +#: invenio_pages/administration/views/pages.py:43 +#: invenio_pages/administration/views/pages.py:118 invenio_pages/config.py:47 +#: invenio_pages/services/config.py:77 +msgid "Updated" +msgstr "" + +#: invenio_pages/administration/views/pages.py:37 +#: invenio_pages/administration/views/pages.py:112 +#: invenio_pages/services/config.py:53 +msgid "Url" +msgstr "" + +#: invenio_pages/administration/views/pages.py:39 +#: invenio_pages/administration/views/pages.py:76 +#: invenio_pages/administration/views/pages.py:114 +#: invenio_pages/services/config.py:61 +msgid "Content" +msgstr "" + +#: invenio_pages/administration/views/pages.py:40 +#: invenio_pages/administration/views/pages.py:115 +#: invenio_pages/services/config.py:65 +msgid "Template Name" +msgstr "" -#: invenio_pages/admin.py:69 -msgid "Template selected does not exist" +#: invenio_pages/administration/views/pages.py:41 +#: invenio_pages/administration/views/pages.py:87 +#: invenio_pages/administration/views/pages.py:116 +#: invenio_pages/services/config.py:69 +msgid "Description" msgstr "" -#: invenio_pages/admin.py:77 -msgid "You cannot assign list page itself as a child." +#: invenio_pages/administration/views/pages.py:67 +msgid "Relative path to the page." msgstr "" -#: invenio_pages/admin.py:104 -msgid "View" +#: invenio_pages/administration/views/pages.py:72 +msgid "Title of the page." msgstr "" -#: invenio_pages/admin.py:144 -msgid "Pages" +#: invenio_pages/administration/views/pages.py:77 +msgid "Content displayed by the page." msgstr "" + +#: invenio_pages/administration/views/pages.py:82 +msgid "Template name" +msgstr "" + +#: invenio_pages/administration/views/pages.py:83 +msgid "Jinja template used to display the page." +msgstr "" + +#: invenio_pages/administration/views/pages.py:88 +msgid "Description of the page" +msgstr "" + +#: invenio_pages/administration/views/pages.py:111 +#: invenio_pages/services/config.py:49 +msgid "Id" +msgstr "" + +#: invenio_pages/records/errors.py:20 +msgid "The page identified by {identifier} cannot be found." +msgstr "" + +#: invenio_pages/records/errors.py:34 +msgid "" +"The page with url {url} couldn't be created, likely due to a page with " +"the same URL already existing." +msgstr "" + +#: invenio_pages/services/config.py:37 +msgid "Ascending" +msgstr "" + +#: invenio_pages/services/config.py:41 +msgid "Descending" +msgstr "" + diff --git a/invenio_pages/translations/messages.pot b/invenio_pages/translations/messages.pot index 8db32a8..b93460c 100644 --- a/invenio_pages/translations/messages.pot +++ b/invenio_pages/translations/messages.pot @@ -1,36 +1,116 @@ # Translations template for invenio-pages. -# Copyright (C) 2016-2022 CERN +# Copyright (C) 2023 CERN # This file is distributed under the same license as the invenio-pages # project. -# FIRST AUTHOR , 2016. +# FIRST AUTHOR , 2023. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: invenio-pages 1.0.0a4.dev20160629\n" +"Project-Id-Version: invenio-pages 2.0.0\n" "Report-Msgid-Bugs-To: info@inveniosoftware.org\n" -"POT-Creation-Date: 2016-08-19 14:00+0200\n" +"POT-Creation-Date: 2023-02-14 17:23+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.3.4\n" +"Generated-By: Babel 2.11.0\n" -#: invenio_pages/admin.py:69 -msgid "Template selected does not exist" +#: invenio_pages/administration/views/pages.py:66 invenio_pages/config.py:35 +msgid "URL" msgstr "" -#: invenio_pages/admin.py:77 -msgid "You cannot assign list page itself as a child." +#: invenio_pages/administration/views/pages.py:38 +#: invenio_pages/administration/views/pages.py:71 +#: invenio_pages/administration/views/pages.py:113 invenio_pages/config.py:39 +#: invenio_pages/services/config.py:57 +msgid "Title" msgstr "" -#: invenio_pages/admin.py:104 -msgid "View" +#: invenio_pages/administration/views/pages.py:42 +#: invenio_pages/administration/views/pages.py:117 invenio_pages/config.py:43 +#: invenio_pages/services/config.py:73 +msgid "Created" msgstr "" -#: invenio_pages/admin.py:144 -msgid "Pages" +#: invenio_pages/administration/views/pages.py:43 +#: invenio_pages/administration/views/pages.py:118 invenio_pages/config.py:47 +#: invenio_pages/services/config.py:77 +msgid "Updated" +msgstr "" + +#: invenio_pages/administration/views/pages.py:37 +#: invenio_pages/administration/views/pages.py:112 +#: invenio_pages/services/config.py:53 +msgid "Url" +msgstr "" + +#: invenio_pages/administration/views/pages.py:39 +#: invenio_pages/administration/views/pages.py:76 +#: invenio_pages/administration/views/pages.py:114 +#: invenio_pages/services/config.py:61 +msgid "Content" +msgstr "" + +#: invenio_pages/administration/views/pages.py:40 +#: invenio_pages/administration/views/pages.py:115 +#: invenio_pages/services/config.py:65 +msgid "Template Name" +msgstr "" + +#: invenio_pages/administration/views/pages.py:41 +#: invenio_pages/administration/views/pages.py:87 +#: invenio_pages/administration/views/pages.py:116 +#: invenio_pages/services/config.py:69 +msgid "Description" +msgstr "" + +#: invenio_pages/administration/views/pages.py:67 +msgid "Relative path to the page." +msgstr "" + +#: invenio_pages/administration/views/pages.py:72 +msgid "Title of the page." +msgstr "" + +#: invenio_pages/administration/views/pages.py:77 +msgid "Content displayed by the page." +msgstr "" + +#: invenio_pages/administration/views/pages.py:82 +msgid "Template name" +msgstr "" + +#: invenio_pages/administration/views/pages.py:83 +msgid "Jinja template used to display the page." +msgstr "" + +#: invenio_pages/administration/views/pages.py:88 +msgid "Description of the page" +msgstr "" + +#: invenio_pages/administration/views/pages.py:111 +#: invenio_pages/services/config.py:49 +msgid "Id" +msgstr "" + +#: invenio_pages/records/errors.py:20 +msgid "The page identified by {identifier} cannot be found." +msgstr "" + +#: invenio_pages/records/errors.py:34 +msgid "" +"The page with url {url} couldn't be created, likely due to a page with " +"the same URL already existing." +msgstr "" + +#: invenio_pages/services/config.py:37 +msgid "Ascending" +msgstr "" + +#: invenio_pages/services/config.py:41 +msgid "Descending" msgstr "" diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..48e341a --- /dev/null +++ b/package-lock.json @@ -0,0 +1,3 @@ +{ + "lockfileVersion": 1 +} diff --git a/setup.cfg b/setup.cfg index 0fc0f58..8dec2e4 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # # This file is part of Invenio. -# Copyright (C) 2015-2022 CERN. +# Copyright (C) 2015-2023 CERN. # # Invenio is free software; you can redistribute it and/or modify it # under the terms of the MIT License; see LICENSE file for more details. @@ -82,6 +82,7 @@ add-comments = NOTE [compile_catalog] directory = invenio_pages/translations/ +use-fuzzy = True [init_catalog] input-file = invenio_pages/translations/messages.pot