From 7049108f1a7364433c9e4813f02c18d5f86447ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20Kr=C3=B6ger?= Date: Wed, 17 Apr 2019 08:55:08 +0100 Subject: [PATCH] :sparkles: Adds command to automatically parse xlsx into json data for app --- bin/{config.js => admin-yml/helper.js} | 0 bin/{admin.js => admin-yml/index.js} | 12 +- bin/helper.js | 22 + bin/xlsx-data/index.js | 144 ++++ bin/xlsx-data/test/options.json | 18 + bin/xlsx-data/test/parties.json | 1087 ++++++++++++++++++++++++ bin/xlsx-data/test/terminology.json | 112 +++ bin/xlsx-data/test/theses.json | 398 +++++++++ package-lock.json | 100 +++ package.json | 6 +- resources/euromat-dataset.xlsx | Bin 0 -> 289742 bytes resources/~$euromat-dataset.xlsx | Bin 0 -> 165 bytes src/components/app-menu.vue | 3 - 13 files changed, 1887 insertions(+), 15 deletions(-) rename bin/{config.js => admin-yml/helper.js} (100%) rename bin/{admin.js => admin-yml/index.js} (97%) create mode 100644 bin/helper.js create mode 100644 bin/xlsx-data/index.js create mode 100644 bin/xlsx-data/test/options.json create mode 100644 bin/xlsx-data/test/parties.json create mode 100644 bin/xlsx-data/test/terminology.json create mode 100644 bin/xlsx-data/test/theses.json create mode 100644 resources/euromat-dataset.xlsx create mode 100644 resources/~$euromat-dataset.xlsx diff --git a/bin/config.js b/bin/admin-yml/helper.js similarity index 100% rename from bin/config.js rename to bin/admin-yml/helper.js diff --git a/bin/admin.js b/bin/admin-yml/index.js similarity index 97% rename from bin/admin.js rename to bin/admin-yml/index.js index 17ba741..259532b 100644 --- a/bin/admin.js +++ b/bin/admin-yml/index.js @@ -1,7 +1,7 @@ -const fs = require('fs') const yaml = require('js-yaml') const ora = require('ora') +const { writeFile } = require('../helper') const { category, baseConfig, @@ -12,15 +12,7 @@ const { markdownField, listField, objectField -} = require('./config') - -const writeFile = (path, data, opts = 'utf8') => - new Promise((resolve, reject) => { - fs.writeFile(path, data, opts, (err) => { - if (err) reject(err) - else resolve() - }) - }) +} = require('./helper') const PATH_DESTINATION = './public/admin/config.yml' diff --git a/bin/helper.js b/bin/helper.js new file mode 100644 index 0000000..70fb286 --- /dev/null +++ b/bin/helper.js @@ -0,0 +1,22 @@ +const fs = require('fs') + +const writeFile = (path, data, opts = 'utf8') => + new Promise((resolve, reject) => { + fs.writeFile(path, data, opts, (err) => { + if (err) reject(err) + else resolve() + }) + }) + +const readFile = (path, opts = 'utf8') => + new Promise((resolve, reject) => { + fs.readFile(path, opts, (err, data) => { + if (err) reject(err) + else resolve(data) + }) + }) + +module.exports = { + writeFile, + readFile +} diff --git a/bin/xlsx-data/index.js b/bin/xlsx-data/index.js new file mode 100644 index 0000000..31f5220 --- /dev/null +++ b/bin/xlsx-data/index.js @@ -0,0 +1,144 @@ +const XLSX = require('xlsx') +const ora = require('ora') +const { writeFile } = require('../helper') + +/** + * Cell Object Structure + * v: raw value (see Data Types section for more info) + * w: formatted text (if applicable) + * t: type: b Boolean, e Error, n Number, d Date, s Text, z Stub + * f: cell formula encoded as an A1-style string (if applicable) + * F: range of enclosing array if formula is array formula (if applicable) + * r: rich text encoding (if applicable) + * h: HTML rendering of the rich text (if applicable) + * c: comments associated with the cell + * z: number format string associated with the cell (if requested) + * l: cell hyperlink object (.Target holds link, .Tooltip is tooltip) + * s: the style/theme of the cell (if applicable) + */ + +function createLocaleMap (section, data = {}) { + return Object.keys(data) + .filter(key => key.includes(section)) + .reduce((acc, keyLabel) => { + const splitKeyLabel = keyLabel.split(' ') + const locale = splitKeyLabel[splitKeyLabel.length - 1].toLowerCase() + acc[locale] = data[keyLabel].trim() + return acc + }, {}) +} + +function createPartyPositionMap (sheetName) { + if (!sheetName) return [] + const rawData = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName]) + return rawData.map(block => { + return { + thesis: block.Thesis, + position: block.Position, + statement: createLocaleMap('Statement', block) + } + }) +} + +function toJSON (data = {}) { + return JSON.stringify(data, null, 2) +} + +async function writeDataset (fileName, data = {}) { + const path = `${DIRECTORY}/${fileName}` + try { + await writeFile(path, toJSON(data)) + spinner.succeed(`Success! It's located at ${path}`) + } catch (error) { + spinner.fail(`Failure! Couldn't write '${fileName}'. Error: ${error.message}`) + } +} + +async function createOptionsDataset (sheetName) { + if (!sheetName) { + throw new Error(`createOptionsDataset() requires 'sheetName', got "${sheetName}"`) + } + await writeDataset( + 'options.json', + XLSX.utils.sheet_to_json(workbook.Sheets[sheetName]) + ) +} + +async function createThesesDataset (sheetName) { + if (!sheetName) { + throw new Error(`createThesesDataset() requires 'sheetName', got "${sheetName}"`) + } + + const rawData = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName]) + const data = rawData.map(block => { + return { + id: parseInt(block.ID, 10), + category: createLocaleMap('Category', block), + thesis: createLocaleMap('Thesis', block), + terminology: block.Terminology || [] + } + }) + await writeDataset('theses.json', data) +} + +async function createTerminologyDataset (sheetName) { + if (!sheetName) { + throw new Error(`createTerminologyDataset() requires 'sheetName', got "${sheetName}"`) + } + + const rawData = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName]) + const data = rawData.map(block => { + return { + id: parseInt(block.ID, 10), + explanation: createLocaleMap('Explanation', block), + reference: createLocaleMap('Reference', block) + } + }) + await writeDataset('terminology.json', data) +} + +async function createPartiesDataset (sheetName, partySheets) { + if (!sheetName) { + throw new Error(`createPartiesDataset() requires 'sheetName', got "${sheetName}"`) + } + + const rawData = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName]) + const data = rawData.map(block => { + return { + id: parseInt(block.ID, 10), + token: block.Token, + european_profile: { + party: createLocaleMap('European Party', block) + }, + program: createLocaleMap('Program', block), + positions: createPartyPositionMap(partySheets.find(sName => sName === block.Token)) + } + }) + await writeDataset('parties.json', data) +} + +const DIRECTORY = './bin/xlsx-data/test' +const RESOURCE_FILE = 'euromat-dataset.xlsx' +const spinner = ora() +const workbook = XLSX.readFile(`./resources/${RESOURCE_FILE}`) +const [options, theses, terminology, parties, ...morePartySheets] = workbook.SheetNames + +;(async () => { + spinner.start() + spinner.info(`Parsing '${RESOURCE_FILE}' to JSON files`) + spinner.info(`XLSX SheetNames: ${workbook.SheetNames}`) + + spinner.info(`Writing 'options.json' file`) + await createOptionsDataset(options) + + spinner.info(`Writing 'theses.json' file`) + await createThesesDataset(theses) + + spinner.info(`Writing 'terminology.json' file`) + await createTerminologyDataset(terminology) + + spinner.info(`Writing 'parties.json' file`) + await createPartiesDataset(parties, morePartySheets) + + spinner.stopAndPersist() +})() diff --git a/bin/xlsx-data/test/options.json b/bin/xlsx-data/test/options.json new file mode 100644 index 0000000..7bb4d1b --- /dev/null +++ b/bin/xlsx-data/test/options.json @@ -0,0 +1,18 @@ +[ + { + "position": "positive", + "id": 0 + }, + { + "position": "neutral", + "id": 1 + }, + { + "position": "negative", + "id": 2 + }, + { + "position": "skipped", + "id": 3 + } +] \ No newline at end of file diff --git a/bin/xlsx-data/test/parties.json b/bin/xlsx-data/test/parties.json new file mode 100644 index 0000000..21d16a5 --- /dev/null +++ b/bin/xlsx-data/test/parties.json @@ -0,0 +1,1087 @@ +[ + { + "id": 0, + "token": "ALDE", + "european_profile": { + "party": { + "de": "Allianz der Liberalen und Demokraten für Europa", + "en": "Alliance of Liberals and Democrats for Europe (ALDE)" + } + }, + "program": { + "en": "https://www.aldeparty.eu/sites/alde/files/40-Resolutions/2019_freedom_opportunity_prosperity_the_liberal_vision_for_the_future_of_europe.pdf" + }, + "positions": [ + { + "thesis": 0, + "position": "skipped", + "statement": { + "de": "Nationale Kompetenz", + "en": "National competence", + "fr": "Statement der Partei" + } + }, + { + "thesis": "1", + "position": "neutral", + "statement": { + "de": "Die ALDE begrüßt eine umfassendere europäische Kooperation bei den Verteidigungsaufwendungen und dem PESCO-Abkommen, und sie ermutigt die Mitgliedstaaten dazu, die Verteidigungszusammenarbeit in Bereichen gegenseitigen Vorteils zu intensiveren, und zwar in verstärkter Kooperation mit und in Ergänzung zur NATO, die das Rückgrat der militärischen Zusammenarbeit und der Garant für die kollektive Verteidigung Europas bleiben wird. (2019 Manifesto)", + "en": "\"We welcome greater European cooperation in defence spending and the agreement of PESCO, and encourage Member States to further increase defence cooperation in areas of mutual advantage, in greater cooperation with and to complement NATO which remains the backbone of military cooperation and guarantor of collective defence for Europe.\" (2019 Manifesto)", + "fr": "Statement der Partei" + } + }, + { + "thesis": "2", + "position": "neutral", + "statement": { + "de": "Die ALDE ist der Meinung, dass die Beschlüsse auf derjenigen Ebene –der lokalen oder regionalen Ebene, der nationalen Ebene oder der EU –zu fassen sind, die Ihnen am besten und in der direktesten Weise nützt. Wir unterstützen Initiativen zur Neubewertung und Neuverhandlung der Zuständigkeiten zwischen der Europäischen Union und ihren Mitgliedstaaten, wobei die Grundsätze der Vereinfachung und Subsidiarität nicht vergessen werden dürfen. (2019 Manifesto)", + "en": "\"We believe that decisions should be taken at the appropriate local and regional, national or EU level that serves you best and most directly. We support initiatives to re-evaluate and re-negotiate of the division of competencies between the European Union and its Member States, strongly keeping in mind the principles of simplification and subsidiarity.\" (2019 Manifesto)", + "fr": "Statement der Partei" + } + }, + { + "thesis": "3", + "position": "neutral", + "statement": { + "de": "-", + "en": "-", + "fr": "Statement der Partei" + } + }, + { + "thesis": "4", + "position": "negative", + "statement": { + "de": "-", + "en": "-", + "fr": "Statement der Partei" + } + }, + { + "thesis": "5", + "position": "skipped", + "statement": { + "de": "-", + "en": "-", + "fr": "Statement der Partei" + } + }, + { + "thesis": "6", + "position": "neutral", + "statement": { + "de": "-", + "en": "-", + "fr": "Statement der Partei" + } + }, + { + "thesis": "7", + "position": "negative", + "statement": { + "de": "Die Datenschutzpolitik muss harmonisiert und ausgeglichen werden, damit die Zukunft der EU als Standort für Innovation gesichert werden kann. [...] Das Ansprechen der Fragen der Cybersicherheit, des Datenschutzes und der Privatsphäre ist für die ALDE selbstverständlich, denn wenn diese grundlegenden Voraussetzungen nicht gegeben sind, kann es keine digitale Gesellschaft geben. (2019 Manifesto)", + "en": "\"Data protection policies need to be harmonised and balanced in order to ensure the EU's future as place of innovation […] Addressing the issues of cyber security, data protection, and privacy is selfevident for us, there can be no digital society without these base requirements.\" (2019 Manifesto)", + "fr": "Statement der Partei" + } + }, + { + "thesis": "8", + "position": "neutral", + "statement": { + "de": "-", + "en": "-", + "fr": "Statement der Partei" + } + }, + { + "thesis": "9", + "position": "negative", + "statement": { + "de": "-", + "en": "-", + "fr": "Statement der Partei" + } + }, + { + "thesis": "10", + "position": "neutral", + "statement": { + "de": "Die ALDE befürwortet einen europäischen Rahmen für Mindeststeuern auf CO2-Emissionen für Sektoren außerhalb des EU-Emissionshandelssystems. Allerdings ist darauf zu achten, dass die Wettbewerbsfähigkeit der EU-Industrie nicht beeinträchtigt wird. (2012 Resolution)", + "en": "\"An EU framework for minimum national carbon taxes should be considered for the sectors outside the ETS (Emissions Trading System), but due care needs to be taken not to harm the competitiveness of EU industry.\" (2012 resolution)", + "fr": "Statement der Partei" + } + }, + { + "thesis": "11", + "position": "positive", + "statement": { + "de": "Die ALDE ist bestrebt,die Agrarsubventionen substanziell zu reformieren und zu überdenken, da die Reformierung der Gemeinsamen Agrarpolitik einen wichtigen Schritt hin zu den Zielen der Nachhaltigkeit sowie zu höherer Transparenz und Gleichberechtigung bei der Zahlung von Subventionen sein wird. (2019 Manifesto)", + "en": "\"We aim to substantially reform and rethink agricultural subsidies as reforming the Common Agricultural Policy will be an essential step to the sustainability goals, and greater transparency and equality in the subsidies payment.\" (2019 Manifesto)", + "fr": "Statement der Partei" + } + }, + { + "thesis": "12", + "position": "skipped", + "statement": { + "de": "Die Bürgerinnen und Bürger Europas müssen im Mittelpunkt unserer Sicherheits-und Verteidigungspolitik stehen, die konkrete Aktionen mit engerer Kooperation von der Bekämpfung des Terrorismus bis zu effektiveren Bemühungen zur Sicherung der EU-Außengrenze mit umfassen sollte. Die Stärkung der Befugnisse von Europol und die Intensivierung der Zusammenarbeit beim Austausch von Informationen sind die notwendigen nächsten Schritte, die wir zu nehmen haben. Dies sollte auch eine verbesserte Fähigkeit der Institutionen und Mitgliedstaaten der EU umfassen, unsere Volkswirtschaften und Gesellschaften vor hybriden Aktivitäten wie Desinformationskampagnen, Cyber-Spionage, Cyber-Attacken und einschlägiger Kriminalität zu schützen. (2019 Manifesto)", + "en": "\"European citizens must be at the centre of our security and defence policy that must involve concrete actions starting with ever-closer cooperation to fight terrorism as well as more effective efforts to secure the EU’s external border. Upgrading Europol’s powers and increasing cooperation in intelligence sharing are necessary next steps we need to take. It must also involve greater capacity across EU institutions and Member States to defend our economies and societies against hybrid activities, such as disinformation campaigns, cyber espionage, cyber-attacks and crime.” (2019 Manifesto)", + "fr": "Statement der Partei" + } + }, + { + "thesis": "13", + "position": "neutral", + "statement": { + "de": "-", + "en": "-", + "fr": "Statement der Partei" + } + }, + { + "thesis": "14", + "position": "negative", + "statement": { + "de": "Die ALDE spricht sich dafür aus, die Sanktionen gegen die russische Regierung aufrechtzuerhalten, bis diese die Besetzung der Krimhalbinsel beendet und alle Schritte des Minsker Friedensabkommens implementiert. (2016 Resolution)", + "en": "ALDE is in favor of maintaining and upholding sanctions against the Russian government unless it ceases to occupy the Crimean Peninsula and fully implements all steps of the Minsk Peace Agreement. (2016 resolution)", + "fr": "Statement der Partei" + } + }, + { + "thesis": "15", + "position": "skipped", + "statement": { + "de": "-", + "en": "-", + "fr": "Statement der Partei" + } + }, + { + "thesis": "16", + "position": "positive", + "statement": { + "de": "EU und Mitgliedsstaaten sollten sich auf das Problem der Jugendarbeitslosigkeit und die großen Unterschiede innerhalb Europas konzentrieren, um eine Lösung für dieses dringende Problem zu finden. (2016 Resolution)", + "en": "\"The EU and the Member States should focus on the problem of youth unemployment and the broad differences within Europe, in order to seek a solution to this pressing issue.\" (2016 resolution)", + "fr": "Statement der Partei" + } + }, + { + "thesis": "17", + "position": "skipped", + "statement": { + "de": "-", + "en": "-", + "fr": "Statement der Partei" + } + }, + { + "thesis": "18", + "position": "neutral", + "statement": { + "de": "Die ALDE ist der Meinung, dass die EU eine gemeinsame Steuerbemessungsgrundlage einführen sollte, es aber den Mitgliedsstaaten überlässt, den Steuersatz zu bestimmen. (2014 Resolution)", + "en": "The European Union should introduce a common consolidated tax base, but give the Member States the possibility to decide on tax rates. (2014 resolution)", + "fr": "Statement der Partei" + } + }, + { + "thesis": "19", + "position": "neutral", + "statement": { + "de": "-", + "en": "-", + "fr": "Statement der Partei" + } + }, + { + "thesis": "20", + "position": "neutral", + "statement": { + "de": "-", + "en": "-", + "fr": "Statement der Partei" + } + }, + { + "thesis": "21", + "position": "neutral", + "statement": { + "de": "-", + "en": "-", + "fr": "Statement der Partei" + } + }, + { + "thesis": "22", + "position": "positive", + "statement": { + "de": "Vielleicht nicht in erheblichem Umfang, aber die ALDE fordert, dass die EU-Mitgliedstaaten auch in ihre eigene Sicherheit und Verteidigung investieren und ihre eigenen militärischen Fähigkeiten koordiniert verbessern. (2017 Resolution)", + "en": "Perhaps not substantially but we call for \"EU Member States to also invest in their own security and defence, and improve their own military capabilities in a coordinated manner.\" (2017 resolution)", + "fr": "Statement der Partei" + } + }, + { + "thesis": "23", + "position": "skipped", + "statement": { + "de": "-", + "en": "-", + "fr": "Statement der Partei" + } + }, + { + "thesis": "24", + "position": "negative", + "statement": { + "de": "-", + "en": "-", + "fr": "Statement der Partei" + } + }, + { + "thesis": "25", + "position": "positive", + "statement": { + "de": "Wir glauben, dass das Europäische Parlament nur einen Sitz in Brüssel haben sollte. (2019 Manifesto)", + "en": "\"We believe the European Parliament should only have one seat in Brussels\" (2019 Manifesto)", + "fr": "Statement der Partei" + } + }, + { + "thesis": "26", + "position": "skipped", + "statement": { + "de": "-", + "en": "-", + "fr": "Statement der Partei" + } + }, + { + "thesis": "27", + "position": "negative", + "statement": { + "de": "Der freie Verkehr von Personen in der EU ist für die Weiterführung der europäischen Integration und den Wohlstand Europas unerlässlich,und aus diesem Grund ist ALDE gegen jegliche Wiedereinführung von ständigen Kontrollen an den Binnengrenzen der Schengener Vertragsstaaten. (2019 Resolution)", + "en": "\"Free movement of people within the EU is vital for continued European integration and prosperity, so we oppose any re-introduction of permanent internal border controls between Schengen member states.\" (2019 Manifesto)", + "fr": "Statement der Partei" + } + }, + { + "thesis": "28", + "position": "skipped", + "statement": { + "de": "Nationale Kompetenz", + "en": "National competence", + "fr": "Statement der Partei" + } + }, + { + "thesis": "29", + "position": "skipped", + "statement": { + "de": "-", + "en": "-", + "fr": "Statement der Partei" + } + }, + { + "thesis": 30, + "position": "positive", + "statement": { + "de": "-", + "en": "-" + } + }, + { + "thesis": 31, + "position": "skipped", + "statement": { + "de": "-", + "en": "-" + } + }, + { + "thesis": 32, + "position": "skipped", + "statement": { + "de": "-", + "en": "-" + } + } + ] + }, + { + "id": 1, + "token": "DiEM25", + "european_profile": { + "party": { + "de": "Bewegung Demokratie in Europa 2025", + "en": "Democracy in Europe Movement 2025" + } + }, + "program": { + "en": "https://diem25.org/wp-content/uploads/2016/02/diem25_english_long.pdf" + }, + "positions": [ + { + "thesis": 0, + "position": "positive", + "statement": { + "de": "Um informierte Entscheidungen zu treffen sollten die Bürger Europas ihre gemeinsame Geschichte, Institutionen und die EU Politik kennen.", + "en": "European citizens must know about their common history, their institutions, and EU policies in order to make informed democratic decisions." + } + }, + { + "thesis": "1", + "position": "positive", + "statement": { + "de": "So lange militärische Kapazitäten (zur reinen Verteidigung) nötig sind, sollte die EU nicht weiter unnötige Ressourcen vergeuden und seine Streitkräfte zusammenschließen. Dies ist auch ein Schritt in eine Zukunft, in der Krieg ziwschen den Mitgliedern der EU unmöglich sein wird.", + "en": "As long as (purely defensive) military capacties are required, the EU should stop wasting resources and merge military forces. This is also a further step to make future wars between EU countries all but impossible." + } + }, + { + "thesis": "2", + "position": "negative", + "statement": { + "de": "European Spring kämpft für eine Europäische Konstitution, die von den Bürgern verfasst und verabschiedet wird. Es soll die Entscheidung der Bürger sein, welche Kompetenzen die EU hat und welche Länder, Regionen und Kommunen innehaben.", + "en": "The European Spring fights for a European Constitution which is written and adopted by the European citizens. It will be the citizens' prerogative to decide which competencies should be at the European level and which belong to lower levels such as countries, regions and communes." + } + }, + { + "thesis": "3", + "position": "positive", + "statement": { + "de": "Mit unserem Green New Deal wollen wir einen schnellen Wechsel hin zu erneuerbarer Energie erwirken und ein Auslaufen von Subventionen für nicht erneuerbare Energie wie Kohle und Atomenergie erreichen.", + "en": "With our Green New Deal, we allow a fast adoption of renewable energy sources and phasing out of all subsidies for non-renewable energy system including coal and atomic energy" + } + }, + { + "thesis": "4", + "position": "negative", + "statement": { + "de": "Generell sollten Produkte, die in der EU produziert werden, ohne Schutz vor Wettbewerb auskommen - Handelskriege sind kein adequates Mittel um ein gerechteres Wachstum in der Welt zu erreichen. Allerdings sollten Produkte, die im Einklang mit Umwelt-, Gesundheits und Arbeits- Standards produziert wurden nicht mit Produkten konkurrieren, die im Ausland zu einem niedrigeren Standard hergestellt wurden. Nichtsdestrotrotz sollte es Ausnahmen für Produkte aus dem globalen Süden geben.", + "en": "Generally, European products do not and should not need protection from competition — and trade wars are not conducive to equitable growth in any part of the world. Products that are produced according to strict environmental, health, labour and other standards, however, should be protected from having to compete with foreign products produced according to lower standards. There should be sensible exceptions for imports from the global south." + } + }, + { + "thesis": "5", + "position": "negative", + "statement": { + "de": "Alle EU Mitgliedsstaaten sollten natürlich zu einer gemeinsamen Migrationsstrategie beitragen. Aber wir lehnen die Haltung zu einer \"sicheren\" europäischen Grenze ab - und weisen entschieden darauf hin, dass mehr Ressourcen nötig sind, um Migranten zu schützen, die ihr Leben risktieren. Wir sind überzeugt, dass die Sicherheit an den Grenzen gewährleistet sein wird, wenn es eine sensible Migrationspolitik gibt.", + "en": "All EU Member-States should, of course, contribute to a common immigration strategy. But we reject the framing around 'securing' the European border — and insist that more resources should be spent saving migrants who risk their lives there. Indeed, security at the borders will become much less difficult if we establish a sensible immigration policy." + } + }, + { + "thesis": "6", + "position": "positive", + "statement": { + "de": "Es gibt nach wie vor viel zu wenig Frauen in leitenden Positionen. Wir fordern eine faire Vertretung aller Geschlechter in Führungspositionen in der EU Administration, dem Europäischen Parlament, großen Unternehmen und Universitäten.", + "en": "There are still far too few women in management positions. We demand fair representation of all genders in leadership positions at the EU administration, the European Parliament, big companies and universities." + } + }, + { + "thesis": "7", + "position": "negative", + "statement": { + "de": "European Spring wird die Rechte der EU Bürger dahingehend stärken, Kontrolle über die Nutzung, Speicherung und Löschung ihrer eigenen Daten zu haben. Dies betrifft auch die Datenerfassung von Staaten und internationalen Geheimdiensten.", + "en": "The European Spring will strengthen the rights of Europe's citizens*to \r\ncontrol the use, storage and deletion of their data. This also includes \r\ndata collection by state and international agencies. We need to avoid \r\nthe threat of an orwellian future which may arrive quickly if unlimted \r\ndata collection happens to coincide with authoritarian goverment \r\ntakeovers." + } + }, + { + "thesis": "8", + "position": "neutral", + "statement": { + "de": "Jeder EU Staat sollte einen gerechten Anteil an Geflüchtete aufnehmen; Dennoch sollten die Präferenzen der Geflüchteten Priorität haben (basierend auf dem Beruf, der Familie und den sprachlichen Fähigkeiten des Einzelnen).", + "en": "Each EUState should accept its fair share of refugees; however the refugees wishes (based on lanour market regarding the person's profession, family, language skills etc.) should have priority" + } + }, + { + "thesis": "9", + "position": "negative", + "statement": { + "de": "Es sollte strikte Kriterien zur Aufnahme neuer EU Mitgliedsstaaten geben. Diese Kriterien sollten auf der strikten Einhaltung von Menschenrechten, Rechtsstaatlichkeit und Korruptionslevel der einzelnen Kandidaten basiert sein.", + "en": "There shold be strict criteria for admission of new members to the EU. These criteria should be based, among other things, on the effective protection of human rights and the rule of law as well as corruption levels in the candidate state." + } + }, + { + "thesis": "10", + "position": "positive", + "statement": { + "de": "Wir werden Preise auf den Ausstoß von Kohlestoff erlassen, um die EU auf Linie mit den von Wissenschaftlern aufgestellten Emissionszielen zu bringen. Dies ist Teil unserers Green New Deal für Europa, der unter anderem das Auslaufen von nicht nachhaltigen und umweltschädlichen Formern der Energiegwinnung vorsieht (Kohl und Atomenergie) sowie eine Reform des Emissionshandels.", + "en": "We will raise prices on carbon to bring Europe in line with emissionstargets suggested by scientists. This is part of our more comprehensive Green new deal for Europe, which includes - among other things - adoption of renewable energy sources and phasing out all non-sustainable and environmentally damaging forms of energy including coal and atomic energy and the reform of the emission trading system and include more sectors." + } + }, + { + "thesis": "11", + "position": "positive", + "statement": { + "de": "European Spring wird die Subventionierung für große Agrarunternehmen einstellen. Dennoch müssen wir kleine, nachhaltige Bauern finanziell unterstützen, die den Tierschutz und die Umwelt respektieren.", + "en": "European Spring will stop subsidies to large, unsustainable agriculture enterprises. But we must subsidise small, sustainable farms which respect animal welfare and the environment." + } + }, + { + "thesis": "12", + "position": "neutral", + "statement": {} + }, + { + "thesis": "13", + "position": "positive", + "statement": { + "de": "Der freie Markt beeinflusst Arbeitnehmer in ganz Europa. Deshalb brauchen wir auch eine gemeinsame Arbeitsmarktpolitik, und einen einen Mindestlohn. Dieser sollte sich an den Lebensunterhaltungskosten orientieren und nicht an den Durchschnittslöhnen.", + "en": "The EU's free market affects employees all over Europe. Thus we also need a common policy regarding, among other things, minimum wages. The minimum wage shold be tied to the cost of living, however, not the average income." + } + }, + { + "thesis": "14", + "position": "negative", + "statement": { + "de": "Die EU sollte eine durchgängige Sanktionspolitik allen Staaten gegenüber haben, die einen Anreiz gibt, internationaler Regeln zu befolgen. Speziell Sanktionen gegen Russland sollten abgeschafft werden, die nicht im Einklang mit der Zurückhaltung von Sanktionen in anderen Fällen stehen.", + "en": "The EU should have a consistent sanctions policy towards all states that creates incentives for following international rules. Specific sanctions against Russia that are inconsistent with the absence of sanctions in other cases should be lifted." + } + }, + { + "thesis": "15", + "position": "neutral", + "statement": { + "de": "Dieser Aussage liegt die teilweise falsche Annahme zu Grunde, dass Missinformationen kriminell sind. Wir brauchen starke Sicherheitsstandards, die mit Hilfe des Internets vor gefährlicher Missinformation, Mobbing und Deformationen schützen. Strafverfolgung sollte allerdings nur ein Teil der schützenden Maßnahmen darstellen. Wichtig ist, dass der Schutz vor dem unrechtmäßgem Nutzen des Internets die Zensur ist. Solch eine Maßnahme muss immer im Einklang mit der freien Meinungsäußerung stehen. Im Zeifel sollte die freie Meinungsäußerung den Vorzug haben.", + "en": "The question rests on the partially inccorect premise that, for example, misinformation is criminal. We need strong safety mechanisms to protect against dangerous misinformation, bullying, and defamation with the help of the internet. Prosecution, however, should be only a part of that protection mechanism. Most importantly any protection against illegitimate use of the internet is, effectively, censorship. Thus such protection must be balanced against the principles of free speech. In case of doubt free speech should prevail." + } + }, + { + "thesis": "16", + "position": "negative", + "statement": { + "de": "Die hohen Arbeitslosenzahlen sollten von allen Mitgliedsstaaten der EU gemeinschaftlich bekämpft werden. Zusätzlichen brauchen wir eine gemeinsame Sozialpolitik, die sicher stellt, das Armut in der EU beseitigt wird. Die finanzielle Unterstützung ärmerer EU Staaten durch reicherer EU Staaten wird zu einer Stabilität und Prosperität der gesamten EU beitragen und so allen zu Gute kommen. Wegen all diesen Gründe sollte Jugendarbeitslosigkeit auf nationaler und EU Ebene bekämpft werden.", + "en": "High levels of youth (and other) unemployment should be fought jointly by all EU states. In addition we need a common EU social policy making sure that poverty is eradicated all over the EU. Richer EU regions transferring money to less wealthy ones will share stability and prosperity all over the EU and thus also benefit the richer regions. For all of these reasons, youth unemployment needs to be combatted at BOTH the national and EU levels." + } + }, + { + "thesis": "17", + "position": "positive", + "statement": { + "de": "Tonnnen von Gewicht zu bewegen nur um eine 80 kg schwere Person zu bewegen verschwendet enorme Ressourcen. Wir müssen nicht nur den öffentlichen Verkehr stärken sondern auch nachhtaltige und umweltfreundlichen Verkehrsmittel wie Fahrräder und E-Bikes.", + "en": "Moving a ton of weight to move a 80 Kg person is an enormous waste of resources. But we need not only enhance public transport but also support sustainable, and environmentally friendly personal transport such as bicycles and ebikes." + } + }, + { + "thesis": "18", + "position": "positive", + "statement": { + "de": "Es wird geschätzt, dass 1 Trillionen Euro im Jahr auf Grund von Steuervermeidung verlohren gehen. Die Mitgliedsstaaten der EU sollten nicht gezwungen sein, mit einander in einen Steuerwettbewerb treten zu müssen, um neue Arbeitsplätze zu sichern. Private Unternehmen sollten nationale Unterschiede nicht ausnutzen können. European Spring will diese Situation verändern und ein Minimum an Unternehemnssteuer erheben um dafür zu Sorgen, das alle Firmen, die in Europa angesiedelt sind einen fairen Anteil an Steuern zahlen. Generell braucht Europa eine Steuerharmonisieren, die an lokale Gegebenheiten agepasst werden kann.", + "en": "It is estimated that up to 1 trillion Euro is lost per year due to tax avoidance and tax evasion. The countries of Europe should not be forced to engage in tax competition to attract jobs and private companies should not be allowed to exploit such divisions to avoid paying taxation. The European Spring wants to change situation by introducing a minimum level of corporate taxation, ensuring that all companies operating within the EU pay their fair share. Moreover, Europe generally needs tax harmonisation, allowing, however, for consideration of local circumstances." + } + }, + { + "thesis": "19", + "position": "negative", + "statement": { + "de": "Einige Personen unterliegen der Ausweisung, so lange ihre Menschenrechte im Aufnahmeland garantiert sind. Personen ohne Aufentaltstitel müssen individuell angehört werden - mit dem Feingefühl für die Umstände, unter denen sie nach Europa gekommen sind. Eine Ausweisung ist nur in wenigen Fällen die richtige Antwort - wir lehnen die Aussage ab.", + "en": "Certain persons may be liable to expulsion, but only if their human rights are guaranteed in the receiving state. Persons lacking residence permits must be dealt with on a case by case basis — but with compassion for circumstances that led them to Europe. Expulsion is rarely the answer, so we disagree with the statement." + } + }, + { + "thesis": "20", + "position": "negative", + "statement": { + "de": "Die Nutzung von elektrischem Geld erlaubt eine Umfassende Nachverfolgung der Bürger. Dies ist Teil einer orwellschen Zukunft, die es zu Verhindern gilt.", + "en": "Fully electronic money would allow comprehensive tracking of citizens'. This is part of an orwellian future that we must avoid." + } + }, + { + "thesis": "21", + "position": "positive", + "statement": {} + }, + { + "thesis": "22", + "position": "negative", + "statement": { + "de": "Die EU sollte mehr Geld in Bildung, Gesundheit und Nachhaltigkeit investieren.", + "en": "The EU needs to spend more money in important areas like education, health and sustainable efforts for disarmament." + } + }, + { + "thesis": "23", + "position": "positive", + "statement": { + "de": "Der freie Markt der EU wirkt sich auf alle Arbeitssuchende aus.", + "en": "The EU's free market affects employment seekers in all of Europe." + } + }, + { + "thesis": "24", + "position": "positive", + "statement": { + "de": "Freihandelsabkommen mit Drittstaaten müssen transparent und unter fairen Bedingungen verhandelt werden. Sie sollten nie europäische Umwelt-, Gesundheits- und Arbeitsstandards untergraben.", + "en": "Trade agreements with foreign states must be negotiated transparently, must be fair, and must must not undermine advanced European environmental, health, labour and other standards." + } + }, + { + "thesis": "25", + "position": "neutral", + "statement": { + "de": "Die regelmäßige Verlegung des Parlaments zwischen Brüssel und Straßburg ist eine enorme Geldverschwendung. Aus Effizienzgründen sollte das Parlament dort sein, wo der Großteil der EU Administration angesiedelt ist: in Brüssel. Strasbourg sollte die Möglichkeit erhalten, für den Umzug des Parlaments entschädigt zu werden.", + "en": "Moving the whole parliament periodically between Brusseles and Strassbourg is an enormous waste of money. For reasons of efficiency, the parliament needs to be where the bulk of the EU administration is - that is in Bruxelles. Strassbourg should be offered opportunities to compensate for loosing the seat of the parliament." + } + }, + { + "thesis": "26", + "position": "neutral", + "statement": { + "de": "Schlaue, nachhaltige und umweltfreundliche Infrastruktur und öffentliche Dienstleistungen sollten sowohl in städtischem als auch ländlichem Raum vorhanden sein.", + "en": "Smart, sustainable, and environmentally sound infrastructure and public services need to be available in urban and rural regions alike." + } + }, + { + "thesis": "27", + "position": "negative", + "statement": { + "de": "Die Idee von Schengen ist es, Grenzkontrollen überflüssig zu machen. Die Freiheit sich überall bewegen zu können ist ein fundamentales Menschenrecht und der Eckpfeiler der Europäischen Union. Wir werden die Freizügigkeiten verteidigen und fordern eine sofortige Abschaffung aller Grenzkontrollen im Schengenraum.", + "en": "The whole idea of Schengen is to abolish border controls. The freedom of movement is a fundamental human right — and a cornerstone of the European Union. We will defend free movement by demanding the immediate elimination of all border controls within the Schengen area." + } + }, + { + "thesis": "28", + "position": "negative", + "statement": { + "de": "Menschen in Europa haben ein Anrecht auf Sozialfürsorge in allen Mitgliedsstaaten. Sie müssen die Hilfe bekommen, die sie benötigen, um Krankheit, Arbeitslosigkeit und im hohen Alter gut leben zu können. Die Sozialführsorge muss alle Bedürftnisse am Wohnort erfüllen.", + "en": "People in the EU must enjoy equal social welfare in all Member States. They must receive the help they need in case of sickness, unemployment or old age in the country where they life in. Social wellfare must cover all needs at the place of residence." + } + }, + { + "thesis": "29", + "position": "positive", + "statement": { + "de": "Wir brauchen flexiblere und schnellere Entscheidungen in der EU und fordern das Prinzip der qualifizierten Mehrheit in den Entscheidungsfindungen der EU, auch in der Außenpolitik. Außerdem vordern wir einen Außenminister auf EU Ebene.", + "en": "We need more flexible and faster decisions in the EU and call for the majority decision-making procedure including foreign policy decisions. In addition, we call for a forign minister of the EU." + } + }, + { + "thesis": 30, + "position": "positive", + "statement": { + "de": "Wir fordern eine bessere Beschriftung von Lebensmitteln. Transparenz fördert Demokratie und Selbstbestimmung. Eine Ernährungsampel schafft einen Verbraucherschutz für Menschen, die nicht Lesen können oder Kleingedrucktes auf Verpackungen nicht entziffern können.", + "en": "We call for better labelling of food health values. Transparency enables democracy and self-determination. A food traffic light creates consumer protection for people who cannot read or decipher small printed details." + } + }, + { + "thesis": 31, + "position": "positive", + "statement": { + "de": "Eine demokratische EU braucht ihre eigenen Steuereinnahmen. European Spring setzt sich dafür ein, ein gemeinsames Finanzministerium auf EU Ebene einzurichten. Einnahmen einer Finanztransaktionssteuer könnten in pan-Europäische Arbeits- und Sozialprojekte fließen und gemeinschaftlich verwaltet werden.", + "en": "A democratic EU needs its own tax resources. European Spring calls therefore for a common European Ministry of Finance.Revenues from the financial transaction tax can be channelled into pan-European labour and social projects and coordinated jointly." + } + }, + { + "thesis": 32, + "position": "negative", + "statement": { + "de": "European Spring kämpft für eine gemeinsame Europäische Verfassung, die von den Bürgern der EU verfasst und verabschiedet wird. Zweck dieser Verfassung ist es, dass die Bürger gemeinsam darüber beraten, zu welchen Teilen ihre Ländern in der EU integriert sind. Eine simple Ja-Nein Frage (die Frage, die in einem Referndum gestellt werden würde) kann diese Komplexität nicht auflösen. Der Brexit zeigt dies sehr deutlich.", + "en": "The European Spring fights for a European Constitution which is written and adopted by the European citizens. It is in this constitution that European citizens should deliberate together to which extent their countries should be integrated into the EU. A simplistic yes-no question (which is the only feasible kind of referendum) is incapable to resolve a matter as complex as how closely a country should be attached to the EU. Brexit demonstrates this in a quite striking manner." + } + } + ] + }, + { + "id": 2, + "token": "ECPM", + "european_profile": { + "party": { + "de": "Europäische Christliche Politische Bewegung", + "en": "European Christian Political Movement" + } + }, + "program": { + "en": "https://ecpm.info/ECPM%20Summary%20Election%20Manifesto%202019.pdf" + }, + "positions": [ + { + "thesis": 0, + "position": "neutral", + "statement": { + "de": "-" + } + }, + { + "thesis": "1", + "position": "negative", + "statement": { + "de": "-" + } + }, + { + "thesis": "2", + "position": "positive", + "statement": { + "de": "-" + } + }, + { + "thesis": "3", + "position": "neutral", + "statement": { + "de": "-" + } + }, + { + "thesis": "4", + "position": "neutral", + "statement": { + "de": "-" + } + }, + { + "thesis": "5", + "position": "positive", + "statement": { + "de": "-" + } + }, + { + "thesis": "6", + "position": "neutral", + "statement": { + "de": "-" + } + }, + { + "thesis": "7", + "position": "negative", + "statement": { + "de": "-" + } + }, + { + "thesis": "8", + "position": "negative", + "statement": { + "de": "-" + } + }, + { + "thesis": "9", + "position": "neutral", + "statement": { + "de": "-" + } + }, + { + "thesis": "10", + "position": "positive", + "statement": { + "de": "-" + } + }, + { + "thesis": "11", + "position": "negative", + "statement": { + "de": "-" + } + }, + { + "thesis": "12", + "position": "negative", + "statement": { + "de": "-" + } + }, + { + "thesis": "13", + "position": "negative", + "statement": { + "de": "-" + } + }, + { + "thesis": "14", + "position": "neutral", + "statement": { + "de": "-" + } + }, + { + "thesis": "15", + "position": "neutral", + "statement": { + "de": "-" + } + }, + { + "thesis": "16", + "position": "positive", + "statement": { + "de": "-" + } + }, + { + "thesis": "17", + "position": "positive", + "statement": { + "de": "-" + } + }, + { + "thesis": "18", + "position": "positive", + "statement": { + "de": "-" + } + }, + { + "thesis": "19", + "position": "positive", + "statement": { + "de": "-" + } + }, + { + "thesis": "20", + "position": "negative", + "statement": { + "de": "-" + } + }, + { + "thesis": "21", + "position": "negative", + "statement": { + "de": "-" + } + }, + { + "thesis": "22", + "position": "positive", + "statement": { + "de": "-" + } + }, + { + "thesis": "23", + "position": "negative", + "statement": { + "de": "-" + } + }, + { + "thesis": "24", + "position": "positive", + "statement": { + "de": "-" + } + }, + { + "thesis": "25", + "position": "neutral", + "statement": { + "de": "-" + } + }, + { + "thesis": "26", + "position": "positive", + "statement": { + "de": "-" + } + }, + { + "thesis": "27", + "position": "neutral", + "statement": { + "de": "-" + } + }, + { + "thesis": "28", + "position": "positive", + "statement": { + "de": "-" + } + }, + { + "thesis": "29", + "position": "negative", + "statement": { + "de": "-" + } + }, + { + "thesis": 30, + "position": "positive", + "statement": { + "de": "-" + } + }, + { + "thesis": 31, + "position": "positive", + "statement": { + "de": "-" + } + }, + { + "thesis": 32, + "position": "negative", + "statement": { + "de": "-" + } + } + ] + }, + { + "id": 3, + "token": "EDE", + "european_profile": { + "party": { + "de": "Europa Demokratie Esperanto", + "en": "Europe Democracy Esperanto" + } + }, + "program": {}, + "positions": [ + { + "thesis": 0, + "statement": {} + }, + { + "thesis": "1", + "statement": {} + }, + { + "thesis": "2", + "statement": {} + }, + { + "thesis": "3", + "statement": {} + }, + { + "thesis": "4", + "statement": {} + }, + { + "thesis": "5", + "statement": {} + }, + { + "thesis": "6", + "statement": {} + }, + { + "thesis": "7", + "statement": {} + }, + { + "thesis": "8", + "statement": {} + }, + { + "thesis": "9", + "statement": {} + }, + { + "thesis": "10", + "statement": {} + }, + { + "thesis": "11", + "statement": {} + }, + { + "thesis": "12", + "statement": {} + }, + { + "thesis": "13", + "statement": {} + }, + { + "thesis": "14", + "statement": {} + }, + { + "thesis": "15", + "statement": {} + }, + { + "thesis": "16", + "statement": {} + }, + { + "thesis": "17", + "statement": {} + }, + { + "thesis": "18", + "statement": {} + }, + { + "thesis": "19", + "statement": {} + }, + { + "thesis": "20", + "statement": {} + }, + { + "thesis": "21", + "statement": {} + }, + { + "thesis": "22", + "statement": {} + }, + { + "thesis": "23", + "statement": {} + }, + { + "thesis": "24", + "statement": {} + }, + { + "thesis": "25", + "statement": {} + }, + { + "thesis": "26", + "statement": {} + }, + { + "thesis": "27", + "statement": {} + }, + { + "thesis": "28", + "statement": {} + }, + { + "thesis": "29", + "statement": {} + }, + { + "thesis": 30, + "statement": {} + }, + { + "thesis": 31, + "statement": {} + }, + { + "thesis": 32, + "statement": {} + } + ] + }, + { + "id": 4, + "token": "EDP", + "european_profile": { + "party": { + "de": "Europäische Demokratische Partei", + "en": "European Democratic Party" + } + }, + "program": { + "en": "http://www.democrats.eu/en/theme/a-democratic-europe" + }, + "positions": [] + }, + { + "id": 5, + "token": "EFA", + "european_profile": { + "party": { + "de": "Europäische Freie Allianz", + "en": "European Free Alliance" + } + }, + "program": { + "en": "https://www.youdecidenow.eu/2019-manifesto-european-elections/" + }, + "positions": [] + }, + { + "id": 6, + "token": "EGP", + "european_profile": { + "party": { + "de": "Europäische Grüne Partei", + "en": "European Greens" + } + }, + "program": { + "en": "https://vote.europeangreens.eu/manifesto" + }, + "positions": [] + }, + { + "id": 7, + "token": "European LEFT", + "european_profile": { + "party": { + "de": "Partei der Europäischen Linken", + "en": "Party of the European Left" + } + }, + "program": { + "en": "https://www.european-left.org/wp-content/uploads/2018/11/Manifesto-European-Left_ENG.pdf" + }, + "positions": [] + }, + { + "id": 8, + "token": "EPP", + "european_profile": { + "party": { + "de": "Europäische Volkspartei", + "en": "European People's Party" + } + }, + "program": { + "en": "https://www.eppgroup.eu/what-we-stand-for/campaigns/eu-elections-2019/commitments" + }, + "positions": [] + }, + { + "id": 9, + "token": "Pirates ", + "european_profile": { + "party": { + "de": "Europäische Piratenpartei", + "en": "European Pirate Party" + } + }, + "program": { + "en": "https://wiki.ppeu.net/doku.php?id=programme:ceep2019" + }, + "positions": [] + }, + { + "id": 10, + "token": "PES", + "european_profile": { + "party": { + "de": "Sozialdemokratische Partei Europas", + "en": "Party of European Socialists" + } + }, + "program": { + "en": "https://www.pes.eu/export/sites/default/.galleries/Documents-gallery/PES-Manifesto-2019_EN.pdf_2063069299.pdf" + }, + "positions": [] + }, + { + "id": 11, + "token": "VOLT", + "european_profile": { + "party": { + "de": "Volt Europa", + "en": "Volt Europa" + } + }, + "program": { + "en": "https://assets.nationbuilder.com/volt/pages/6564/attachments/original/1540629281/Amsterdam_Declaration.pdf?1540629281" + }, + "positions": [] + } +] \ No newline at end of file diff --git a/bin/xlsx-data/test/terminology.json b/bin/xlsx-data/test/terminology.json new file mode 100644 index 0000000..ac7d371 --- /dev/null +++ b/bin/xlsx-data/test/terminology.json @@ -0,0 +1,112 @@ +[ + { + "id": 0, + "explanation": { + "de": "Gebiet, das die EU-Mitgliedstaaten umfasst, die den Euro als Währung eingeführt haben, und in dem eine einheitliche Geldpolitik unter Aufsicht des EZB-Rats durchgeführt wird.", + "en": "The group of EU Member States that have adopted the euro as their currenc" + }, + "reference": { + "de": "http://iate.europa.eu/FindTermsByLilId.do?lilId=894832&langId=de", + "en": "http://iate.europa.eu/FindTermsByLilId.do?lilId=894832&langId=en" + } + }, + { + "id": 1, + "explanation": { + "de": "Das Europäische Parlament ist die auf der Grundlage der Verträge, des Akts vom 20. September 1976 zur Einführung allgemeiner unmittelbarer Wahlen der Mitglieder des Europäischen Parlaments und der in Anwendung der Verträge erlassenen nationalen Rechtsvorsc", + "en": "The European Parliament is the assembly elected pursuant to the Treaties, the Act of 20 September 1976 concerning the election of the members of the European Parliament by direct universal suffrage and national legislation deriving from the Treaties." + }, + "reference": { + "de": "http://iate.europa.eu/FindTermsByLilId.do?lilId=126540&langId=de", + "en": "http://iate.europa.eu/FindTermsByLilId.do?lilId=126540&langId=en" + } + }, + { + "id": 2, + "explanation": { + "de": "Die Europäische Union beruht auf rechtstaatlichen Grundsätzen. Das bedeutet, dass jede Tätigkeit der EU auf Verträgen beruht, die von allen EU-Mitgliedstaaten auf freiwilliger und demokratischer Basis angenommen wurden. Wenn ein Politikbereich beispielswei", + "en": "The European Union is based on the rule of law. This means that every action taken by the EU is founded on treaties that have been approved voluntarily and democratically by all EU member countries. For example, if a policy area is not cited in a treaty, t" + }, + "reference": { + "de": "https://europa.eu/european-union/law/treaties_de", + "en": "https://europa.eu/european-union/law/treaties_en" + } + }, + { + "id": 3, + "explanation": { + "de": "Anschlag auf Informationssysteme bzw. Steuersysteme kritischer Infrastrukturen mit Hilfe bösartiger Software, der zum Verlust lebenswichtiger Infrastrukturdienste führt.", + "en": "Deliberate act, generally using malicious computer code, designed to alter, disrupt, deny, degrade, or destroy information resident in computers and computer networks, or the computers and networks themselves." + }, + "reference": { + "de": "http://iate.europa.eu/FindTermsByLilId.do?lilId=919510&langId=de", + "en": "http://iate.europa.eu/FindTermsByLilId.do?lilId=919510&langId=en" + } + }, + { + "id": 4, + "explanation": { + "de": "Unzutreffende Nachrichtenmeldung. Sie entsteht durch die fehlerhafte oder nachlässige Recherche eines Journalisten oder wird von Journalisten, amtlichen Stellen, Politikern, Unternehmen, Privatpersonen und anderen Informanten absichtlich lanciert. Abzugren", + "en": "Fabricated news stories with the deliberate aim of fooling readers" + }, + "reference": { + "de": "http://iate.europa.eu/FindTermsByLilId.do?lilId=3572432&langId=de", + "en": "http://iate.europa.eu/FindTermsByLilId.do?lilId=3572432&langId=en" + } + }, + { + "id": 5, + "explanation": { + "de": "Land, das nicht Mitglied der Europäischen Union ist; \"Drittland\" bezeichnet im weiteren Sinne auch ein Land, das bei internationalen Verträgen nicht Vertragspartner ist bzw. einer internationalen Organisation nicht angehört.", + "en": "Country that is not a member of the European Union." + }, + "reference": { + "de": "http://iate.europa.eu/FindTermsByLilId.do?lilId=768108&langId=de", + "en": "http://iate.europa.eu/FindTermsByLilId.do?lilId=768108&langId=en" + } + }, + { + "id": 6, + "explanation": { + "de": "Zentrales Organ der Internationalen Staatengemeinschaft für Friedenssicherung und Konfliktmanagement; fasst Beschlüsse (Resolutionen), die – anders als die der Generalversammlung – für alle Mitgliedstaaten bindend sind; damit verfügt er über weit gehende B", + "en": "UN body that has the primary responsibility for the maintenance of international peace and security; Composed of five permanent members — China, France, Russian Federation, the United Kingdom and the United States — and ten non-permanent members." + }, + "reference": { + "de": "http://iate.europa.eu/FindTermsByLilId.do?lilId=877820&langId=de", + "en": "http://iate.europa.eu/FindTermsByLilId.do?lilId=877820&langId=en" + } + }, + { + "id": 7, + "explanation": { + "de": "Die Europäische Union (EU) besteht seit dem 1. Juli 2013 aus 28 Mitgliedstaaten (Unionsmitgliedstaaten). Belgien, Bulgarien, Dänemark, Deutschland, Estland, Finnland, Frankreich, Griechenland, Irland, Italien, Kroatien, Lettland, Litauen, Luxemburg, Malta,", + "en": "One of the sovereign nation states that have acceded to the European Union (EU). As from 1 July 2013 the 28 Member States of the EU are Austria, Belgium, Bulgaria, Croatia, Cyprus, Czech Republic, Denmark, Estonia, Finland, France, Germany, Greece, Hungary" + }, + "reference": { + "de": "https://de.wikipedia.org/wiki/Mitgliedstaaten_der_Europ%C3%A4ischen_Union", + "en": "http://iate.europa.eu/FindTermsByLilId.do?lilId=1568826&langId=en" + } + }, + { + "id": 8, + "explanation": { + "de": "(I) Der Haushaltsplan ist der Rechtsakt, durch den für jedes Haushaltsjahr sämtliche als erforderlich erachteten Einnahmen und Ausgaben der Europäischen Gemeinschaft und der Europäischen Atomgemeinschaft veranschlagt und bewilligt werden. ; (II) Der Haush", + "en": "(I) The budget is the instrument which, for each financial year, forecasts and authorises all revenue and expenditure considered necessary for the European Community and the European Atomic Energy Community. ; (II) The budget shall consist of: Quelle (I) C" + }, + "reference": { + "de": "http://iate.europa.eu/FindTermsByLilId.do?lilId=749055&langId=de", + "en": "http://iate.europa.eu/FindTermsByLilId.do?lilId=749055&langId=en" + } + }, + { + "id": 9, + "explanation": { + "de": "Der Haushaltsplan umfasst a) den allgemeinen Einnahmen- und Ausgabenplan, b) Einzelpläne mit den Einnahmen- und Ausgabenplänen für jedes der Organe einzeln mit Ausnahme des Europäischen Rates und des Rates, die in demselben Einzelplan zusammengefasst werde", + "en": "TBD" + }, + "reference": { + "de": "http://iate.europa.eu/FindTermsByLilId.do?lilId=1077513&langId=de", + "en": "http://iate.europa.eu/FindTermsByLilId.do?lilId=1077513&langId=en" + } + } +] \ No newline at end of file diff --git a/bin/xlsx-data/test/theses.json b/bin/xlsx-data/test/theses.json new file mode 100644 index 0000000..0fb12ee --- /dev/null +++ b/bin/xlsx-data/test/theses.json @@ -0,0 +1,398 @@ +[ + { + "id": 0, + "category": { + "de": "Politische Bildung", + "en": "Civic Education" + }, + "thesis": { + "de": "Europapolitische Bildung sollte Teil der Lehrpläne aller Mitgliedsländer sein.", + "en": "European civic education should be part of the school curricula of all member countries." + }, + "terminology": [] + }, + { + "id": 1, + "category": { + "de": "Europäische Armee", + "en": "European Army" + }, + "thesis": { + "de": "Langfristig sollten die EU-Mitgliedstaaten ihre Streitkräfte zu einer europäischen Armee zusammenschließen.", + "en": "In the long-term EU member states should merge their armed forces to a European army." + }, + "terminology": [] + }, + { + "id": 2, + "category": { + "de": "Zuständigkeiten der EU", + "en": "Competencies of the EU" + }, + "thesis": { + "de": "Die EU hat zu viele Aufgaben übernommen, die an die Mitgiedsstaaten zurück gegeben werden sollten.", + "en": "The EU has taken on too many tasks that should be transferred back to the member states." + }, + "terminology": [] + }, + { + "id": 3, + "category": { + "de": "Atomenergie", + "en": "Nuclear Energy" + }, + "thesis": { + "de": "Alle Mitgliedsstaaten sollen bis spätestens 2040 aus der Atomkraft aussteigen.", + "en": "Every member state should eliminate atomic energy by 2040." + }, + "terminology": [] + }, + { + "id": 4, + "category": { + "de": "Handelspolitik", + "en": "Trade Policy" + }, + "thesis": { + "de": "Die Europäische Union soll zum Schutz europäischer Produkte verstärkt Zölle erheben.", + "en": "The EU should raise tarifs to secure European products from foreign competition." + }, + "terminology": [] + }, + { + "id": 5, + "category": { + "de": "Grenzschutz", + "en": "Border Protection" + }, + "thesis": { + "de": "Alle Mitgliedsstaaten sollten Geld und Personal für den Schutz der europäischen Außengrenzen zur Verfügung stellen.", + "en": "Each member state should provide funds and human resources to secure the European border." + }, + "terminology": [] + }, + { + "id": 6, + "category": { + "de": "Gleichberechtigung", + "en": "Equality" + }, + "thesis": { + "de": "Die EU sollte sich für eine verpflichtende Frauenquote auf Führungsebene von Unternehmen einsetzen.", + "en": "The EU should be committed to introducing a quota for women in leading managerial positions." + }, + "terminology": [] + }, + { + "id": 7, + "category": { + "de": "Datenschutz", + "en": "Data Protection" + }, + "thesis": { + "de": "Unternehmen soll die Nutzung personalisierter Daten erleichtert werden.", + "en": "Personalized data should be made easier for companies to use." + }, + "terminology": [] + }, + { + "id": 8, + "category": { + "de": "Verteilung Flüchtlinge:", + "en": "Distribution Refugees" + }, + "thesis": { + "de": "Innerhalb der EU sollten Flüchtlinge nach einem Verteilungsschlüssel auf alle Mitgliedsstaaten verteilt werden.", + "en": "The refugees should be distributed between every member state based on a quota within the EU." + }, + "terminology": [] + }, + { + "id": 9, + "category": { + "de": "Erweiterung", + "en": "EU Enlargement" + }, + "thesis": { + "de": "Die EU sollte keine neuen Mitgliedsländer aufnehmen.", + "en": "The EU should not accept any new member states." + }, + "terminology": [] + }, + { + "id": 10, + "category": { + "de": "CO2 Steuer", + "en": "CO2 Tax" + }, + "thesis": { + "de": "Es soll eine EU-weite CO2-Steuer geben.", + "en": "A European carbon tax should be introduced." + }, + "terminology": [] + }, + { + "id": 11, + "category": { + "de": "Agrarsubventionen", + "en": "Agricultural Subsidies" + }, + "thesis": { + "de": "Die EU sollte die finanzielle Unterstützung der Landwirtschaft verringern.", + "en": "The EU should reduce financial subsidies given to the agriculture sector." + }, + "terminology": [] + }, + { + "id": 12, + "category": { + "de": "Europäischer Geheimdienst", + "en": "Intelligence Service" + }, + "thesis": { + "de": "Die EU sollte einen gemeinsamen europäischen Geheimdienst zur effektiveren Terrorismusbekämpfung aufbauen.", + "en": "The EU should install a common European intelligent service in order to effectivly counter terrorism." + }, + "terminology": [] + }, + { + "id": 13, + "category": { + "de": "Europäischer Mindestlohn:", + "en": "Minimum Wage" + }, + "thesis": { + "de": "Es sollten europaweit Mindestlöhne abhängig vom Durchschnittseinkommen des jeweiligen Mitgliedsstaates eingeführt werden.", + "en": "A European minimum wage should be introduced, dependent on the average income of the member state." + }, + "terminology": [] + }, + { + "id": 14, + "category": { + "de": "Russland", + "en": "Russia" + }, + "thesis": { + "de": "Alle EU-Sanktionen gegen Russland sollten aufgehoben werden.", + "en": "All EU sanctions against Russia should be lifted." + }, + "terminology": [] + }, + { + "id": 15, + "category": { + "de": "Netzpolitik", + "en": "Net Policy" + }, + "thesis": { + "de": "Straftaten wie Mobbing, Falschinformation oder Verleumdung im Internet sollen EU-weit konsequent verfolgt werden.", + "en": "Criminal offences such as bullying, misinformation or defamation on the Internet should be consistently prosecuted throughout the EU." + }, + "terminology": [] + }, + { + "id": 16, + "category": { + "de": "Jugendarbeitslosigkeit", + "en": "Youth Unemployment" + }, + "thesis": { + "de": "Jugendarbeitslosigkeit sollte national bekämpft werden.", + "en": "Youth unemployment should be combated at national level." + }, + "terminology": [] + }, + { + "id": 17, + "category": { + "de": "Mobilität", + "en": "Mobility" + }, + "thesis": { + "de": "Durch Ausbau des öffentlichen Nah- und Fernverkehrs soll es jedem EU-Bürger möglich sein, auf ein eigenes Auto zu verzichten.", + "en": "By expanding public local and long-distance transport, every EU citizen should be able to renounce their own car." + }, + "terminology": [] + }, + { + "id": 18, + "category": { + "de": "Unternehmensbesteuerung", + "en": "Taxation of Companies" + }, + "thesis": { + "de": "Um Steuervermeidung zu bekämpfen, sollen EU-Mindeststeuersätze für Unternehmen eingeführt werden.", + "en": "To prevent tax avoidance, an EU minimum taxation for companies should be introduced." + }, + "terminology": [] + }, + { + "id": 19, + "category": { + "de": "Abschiebung", + "en": "Deportation" + }, + "thesis": { + "de": "Straffällig gewordene Asylbewerber und Menschen ohne anerkanntem Aufenthaltsstatus sollen aus der EU ausgewiesen werden.", + "en": "Previously convicted asylum seekers and persons without a residence permit should be expelled from the EU." + }, + "terminology": [] + }, + { + "id": 20, + "category": { + "de": "Bargeld", + "en": "Cash" + }, + "thesis": { + "de": "Die EU sollte langfristig Bargeld abschaffen.", + "en": "The EU should abolish cash in the long-term." + }, + "terminology": [] + }, + { + "id": 21, + "category": { + "de": "Direktwahl", + "en": "Direct Election" + }, + "thesis": { + "de": "Der/die PräsidentIn der Europäischen Kommission soll von den Bürgerinnen und Bürgern der Europäischen Union direkt gewählt werden.", + "en": "The President of the European Commission should be directly elected by the citizens of the European Union." + }, + "terminology": [] + }, + { + "id": 22, + "category": { + "de": "Militärausgaben", + "en": "Military Spending" + }, + "thesis": { + "de": "Die EU-Mitgliedsstaaten sollten ihre Militärausgaben stark erhöhen.", + "en": "EU member states should substantially increase their military spending." + }, + "terminology": [] + }, + { + "id": 23, + "category": { + "de": "Arbeitslosenversicherung:", + "en": "Unemployment Insurance" + }, + "thesis": { + "de": "Es sollte eine gemeinsame Arbeitslosenversicherung auf europäischer Ebene geben.", + "en": "There should be a common unemployment insurance for all member states within Europe." + }, + "terminology": [] + }, + { + "id": 24, + "category": { + "de": "Freihandel", + "en": "Free Trade Agreements" + }, + "thesis": { + "de": "Die EU sollte keine weitere Freihandelsabkommen abschließen.", + "en": "The EU should not conclude further free trade agreements." + }, + "terminology": [] + }, + { + "id": 25, + "category": { + "de": "Bürokratieabbau", + "en": "Reduction of Bureaucracy" + }, + "thesis": { + "de": "Der Standort des Europäischen Parlaments in Strasbourg sollte abgeschafft werden (Brüssel bleibt als einziger Standort erhalten).", + "en": "The site of the European Parliament in Strasbourg should be abolished (Brussels remains as the only site)." + }, + "terminology": [] + }, + { + "id": 26, + "category": { + "de": "Ländliche Regionen", + "en": "Rural Regions" + }, + "thesis": { + "de": "Verkehr und öffentliche Versorgung sollen schwerpunktmäßig in ländlichen Regionen gefördert werden.", + "en": "Transport and public services are to be promoted primarily in rural regions." + }, + "terminology": [] + }, + { + "id": 27, + "category": { + "de": "Grenzkontrollen", + "en": "Border Control" + }, + "thesis": { + "de": "Grenzkontrollen im Schengen-Raum sollten immer möglich sein.", + "en": "Border controls should always be possible in the Schengen area." + }, + "terminology": [] + }, + { + "id": 28, + "category": { + "de": "Sozialleistungen", + "en": "Social Welfare Benefits" + }, + "thesis": { + "de": "EU-Bürger sollen Sozialleistungen hauptsächlich von ihrem Heimatland empfangen können.", + "en": "EU-citizens should receive social welfare benefits primarily from their home countries." + }, + "terminology": [] + }, + { + "id": 29, + "category": { + "de": "Vetorecht in der Außenpolitik", + "en": "Veto Right in Foreign Policy" + }, + "thesis": { + "de": "Ein einzelner Mitgliedsstaat sollte in Zukunft keine Mehrheitsentscheidung in der europäischen Außenpolitik blockieren können.", + "en": "In future, a single member state should not be able to block majority decisions in European foreign policy." + }, + "terminology": [] + }, + { + "id": 30, + "category": { + "de": "Lebensmittel/Verbraucherschutz", + "en": "Food/Consumer Protection" + }, + "thesis": { + "de": "Es sollte eine EU-weite Ampelkennzeichnung von Zucker-, Fett- und Kaloriengehalt für Lebensmittel eingeführt werden.", + "en": "EU-wide colour-coded labelling of sugar, fat and calorie content for food should be introduced." + }, + "terminology": [] + }, + { + "id": 31, + "category": { + "de": "Finanzmärkte (Finanztransaktionssteuer)", + "en": "Financial Markets (Financial Transaction Tax)" + }, + "thesis": { + "de": "Die EU sollte Finanzmärkte besteuern.", + "en": "The EU should tax financial markets." + }, + "terminology": [] + }, + { + "id": 32, + "category": { + "de": "EU Mitgliedschaft", + "en": "EU Membership" + }, + "thesis": { + "de": "Es sollte in meinem Land ein Referendum über die EU-Mitgliedschaft meines Landes geben.", + "en": "My country should have a referendum on its EU membership." + }, + "terminology": [] + } +] \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 1dfb256..d596137 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2204,6 +2204,16 @@ "integrity": "sha512-z55ocwKBRLryBs394Sm3ushTtBeg6VAeuku7utSoSnsJKvKcnXFIyC6vh27n3rXyxSgkJBBCAvyOn7gSUcTYjg==", "dev": true }, + "adler-32": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.2.0.tgz", + "integrity": "sha1-aj5r8KY5ALoVZSgIyxXGgT0aXyU=", + "dev": true, + "requires": { + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" + } + }, "ajv": { "version": "6.10.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", @@ -3677,6 +3687,18 @@ "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.3.tgz", "integrity": "sha512-Jt9tIBkRc9POUof7QA/VwWd+58fKkEEfI+/t1/eOlxKM7ZhrczNzMFefge7Ai+39y1pR/pP6cI19guHy3FSLmw==" }, + "cfb": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.1.0.tgz", + "integrity": "sha512-ZqfxNGWTMKhd0a/n6YKJLq8hWbd5kR3cA4kXwUj9vVEdHlwJ09werR8gN15Z7Y1FTXqdD6dE3GGCxv4uc28raA==", + "dev": true, + "requires": { + "adler-32": "~1.2.0", + "commander": "^2.16.0", + "crc-32": "~1.2.0", + "printj": "~1.1.2" + } + }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -4027,6 +4049,24 @@ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, + "codepage": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.14.0.tgz", + "integrity": "sha1-jL4lSBMjVZ19MHVxsP/5HnodL5k=", + "dev": true, + "requires": { + "commander": "~2.14.1", + "exit-on-epipe": "~1.0.1" + }, + "dependencies": { + "commander": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", + "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==", + "dev": true + } + } + }, "collapse-white-space": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.4.tgz", @@ -4527,6 +4567,16 @@ } } }, + "crc-32": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", + "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", + "dev": true, + "requires": { + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" + } + }, "create-ecdh": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", @@ -6298,6 +6348,12 @@ "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", "dev": true }, + "exit-on-epipe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", + "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==", + "dev": true + }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -6881,6 +6937,12 @@ "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", "dev": true }, + "frac": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", + "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==", + "dev": true + }, "fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", @@ -13341,6 +13403,12 @@ } } }, + "printj": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", + "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==", + "dev": true + }, "private": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", @@ -14914,6 +14982,15 @@ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, + "ssf": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.10.2.tgz", + "integrity": "sha512-rDhAPm9WyIsY8eZEKyE8Qsotb3j/wBdvMWBUsOhJdfhKGLfQidRjiBUV0y/MkyCLiXQ38FG6LWW/VYUtqlIDZQ==", + "dev": true, + "requires": { + "frac": "~1.1.2" + } + }, "sshpk": { "version": "1.16.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", @@ -17425,6 +17502,29 @@ "resolved": "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz", "integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=" }, + "xlsx": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.14.2.tgz", + "integrity": "sha512-6+4TkmU34s1p/qsl8omWSEOa7pOtWlw4SuRJH/FGRk3iF/gcvSWGgCI1L28NaSDx2tI82aeq2SPY+xeFQJD27A==", + "dev": true, + "requires": { + "adler-32": "~1.2.0", + "cfb": "^1.1.0", + "codepage": "~1.14.0", + "commander": "~2.17.1", + "crc-32": "~1.2.0", + "exit-on-epipe": "~1.0.1", + "ssf": "~0.10.2" + }, + "dependencies": { + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "dev": true + } + } + }, "xml-name-validator": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", diff --git a/package.json b/package.json index 2efd8a9..1d671dd 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,8 @@ "lint": "vue-cli-service lint", "test:unit": "vue-cli-service test:unit", "svg": "vsvg -s ./src/assets/svg -t ./src/assets/icons", - "admin": "node bin/admin" + "admin": "node bin/admin-yml", + "data": "node bin/xlsx-data" }, "dependencies": { "lint-staged": "^8.1.5", @@ -45,7 +46,8 @@ "normalize.css": "^8.0.1", "ora": "^3.4.0", "sass-loader": "^7.1.0", - "vue-template-compiler": "^2.5.21" + "vue-template-compiler": "^2.5.21", + "xlsx": "^0.14.2" }, "husky": { "hooks": { diff --git a/resources/euromat-dataset.xlsx b/resources/euromat-dataset.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..bd382a746d18a929ba00a9523d6623dd80934d83 GIT binary patch literal 289742 zcmeEPc_5Ve|L@Wr9i#)34$^^AA;(m

xnBTgjwChx;~+*%VW$DCNji(ae@=O2@b- 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�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 literal 0 HcmV?d00001 diff --git a/src/components/app-menu.vue b/src/components/app-menu.vue index 0f9227a..914d451 100644 --- a/src/components/app-menu.vue +++ b/src/components/app-menu.vue @@ -77,10 +77,7 @@ this.languageMenuSelected = false }, changeLanguage (locale) { - // console.log('this.$router.currentRoute', this.$router.currentRoute) - // const currentRoute = this.$router.currentRoute.name setCurrentLocale(locale) - // this.$router.replace(getTranslatedUrl(currentRoute)) this.hideLanguageSelection() } }