├── .gitignore
├── LICENSE-bootstrap.txt
├── LICENSE-fontawesome.txt
├── LICENSE-jquery.txt
├── LICENSE.txt
├── README-DE.md
├── README.md
├── config
└── data.json
├── css
└── bootstrap.min.css
├── generator.html
├── img
├── mahlowat_logo.png
└── mahlowat_logo.svg
├── index.html
├── js
├── bootstrap.bundle.min.js
├── fontawesome-all.min.js
├── generator.js
├── hammer.min.js
├── jquery-3.7.1.min.js
└── mahlowat.js
└── lang
├── de_de.js
├── de_de.raw.js
├── en_gb.js
├── en_gb.raw.js
├── fr_fr.js
└── fr_fr.raw.js
/.gitignore:
--------------------------------------------------------------------------------
1 | config/data.json
2 |
--------------------------------------------------------------------------------
/LICENSE-bootstrap.txt:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2011-2018 Twitter, Inc.
4 | Copyright (c) 2011-2018 The Bootstrap Authors
5 |
6 | Permission is hereby granted, free of charge, to any person obtaining a copy
7 | of this software and associated documentation files (the "Software"), to deal
8 | in the Software without restriction, including without limitation the rights
9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | copies of the Software, and to permit persons to whom the Software is
11 | furnished to do so, subject to the following conditions:
12 |
13 | The above copyright notice and this permission notice shall be included in
14 | all copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | THE SOFTWARE.
23 |
--------------------------------------------------------------------------------
/LICENSE-fontawesome.txt:
--------------------------------------------------------------------------------
1 | Font Awesome Free License
2 | -------------------------
3 |
4 | Font Awesome Free is free, open source, and GPL friendly. You can use it for
5 | commercial projects, open source projects, or really almost whatever you want.
6 | Full Font Awesome Free license: https://fontawesome.com/license.
7 |
8 | # Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)
9 | In the Font Awesome Free download, the CC BY 4.0 license applies to all icons
10 | packaged as SVG and JS file types.
11 |
12 | # Fonts: SIL OFL 1.1 License (https://scripts.sil.org/OFL)
13 | In the Font Awesome Free download, the SIL OLF license applies to all icons
14 | packaged as web and desktop font files.
15 |
16 | # Code: MIT License (https://opensource.org/licenses/MIT)
17 | In the Font Awesome Free download, the MIT license applies to all non-font and
18 | non-icon files.
19 |
20 | # Attribution
21 | Attribution is required by MIT, SIL OLF, and CC BY licenses. Downloaded Font
22 | Awesome Free files already contain embedded comments with sufficient
23 | attribution, so you shouldn't need to do anything additional when using these
24 | files normally.
25 |
26 | We've kept attribution comments terse, so we ask that you do not actively work
27 | to remove them from files, especially code. They're a great way for folks to
28 | learn about Font Awesome.
29 |
30 | # Brand Icons
31 | All brand icons are trademarks of their respective owners. The use of these
32 | trademarks does not indicate endorsement of the trademark holder by Font
33 | Awesome, nor vice versa. **Please do not use brand logos for any purpose except
34 | to represent the company, product, or service to which they refer.**
35 |
--------------------------------------------------------------------------------
/LICENSE-jquery.txt:
--------------------------------------------------------------------------------
1 | Copyright JS Foundation and other contributors, https://js.foundation/
2 |
3 | This software consists of voluntary contributions made by many
4 | individuals. For exact contribution history, see the revision history
5 | available at https://github.com/jquery/jquery
6 |
7 | The following license applies to all parts of this software except as
8 | documented below:
9 |
10 | ====
11 |
12 | Permission is hereby granted, free of charge, to any person obtaining
13 | a copy of this software and associated documentation files (the
14 | "Software"), to deal in the Software without restriction, including
15 | without limitation the rights to use, copy, modify, merge, publish,
16 | distribute, sublicense, and/or sell copies of the Software, and to
17 | permit persons to whom the Software is furnished to do so, subject to
18 | the following conditions:
19 |
20 | The above copyright notice and this permission notice shall be
21 | included in all copies or substantial portions of the Software.
22 |
23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
27 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
28 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
29 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30 |
31 | ====
32 |
33 | All files located in the node_modules and external directories are
34 | externally maintained libraries used by this software which have their
35 | own licenses; we recommend you read them, as their terms may differ from
36 | the terms above.
37 |
--------------------------------------------------------------------------------
/LICENSE.txt:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2018 HSZemi
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README-DE.md:
--------------------------------------------------------------------------------
1 | 
2 |
3 | [English Version](README.md)
4 |
5 | Mahlowat ist eine Implementierung eines Wahlpositionsvergleichswerkzeugs (voting advice application, VAA). Mahlowat ermöglicht es, die eigenen Positionen zu Thesen mit den Positionen von Gruppen oder Personen zu vergleichen,
6 | die zu einer Wahl kandidieren.
7 |
8 | Erweiterter Funktionsumfang
9 | ---------------------------
10 |
11 | Wirf einen Blick auf [Vote-O-Mat](https://github.com/SilvanVerhoeven/vote-o-mat), falls du eine dieser Funktionen benötigst:
12 |
13 | - eingebaute Unterstützung für mehrere Sprachen
14 | - anonyme Nutzungsstatistiken
15 | - Anpassung von Mahlowat an eine bestimmte Marke (z.B. durch ein Logo)
16 |
17 | Vote-O-Mat ist eine Erweiterung von Mahlowat und funktioniert im Grundsatz gleich.
18 |
19 |
20 | Allgemeine Vorgehensweise
21 | --------------------------
22 |
23 | Irgendwann(TM) in der Zukunft findet eine Wahl statt. Eine Gruppe von Expertinnen(TM) erarbeitet eine Liste simpler Thesen, die sich mit
24 | Ja oder Nein beantworten lassen.
25 |
26 | Sobald feststeht, wer zur Wahl zugelassen ist, werden die Thesen an die zugelassenen Gruppen oder Personen gesendet und darum gebeten,
27 | zu jeder These die eigene Positionierung (Zustimmung/Ablehnung/Neutral) mit jeweils einer kurzen Begründung zurückzusenden.
28 |
29 | Ein armer Tropf darf dann alle Antworten in einer Konfigurationsdatei zusammenfassen (siehe unten).
30 |
31 | Schließlich wird ein Mahlowat konfiguriert, veröffentlicht und beworben.
32 |
33 | Viel Spaß!
34 |
35 |
36 | Setup
37 | -----
38 |
39 | Um eine Mahlowat aufzusetzen sind drei Schritte notwendig:
40 |
41 | - Erstellen einer Konfigurationsdatei, die alle Thesen, Antworten und Begründungen der teilnehmenden Gruppen enthält
42 | - Festlegen der Sprache und Anpassen der Texte
43 | - Hochladen der Dateien auf einen Webserver, wo sie alle sehen können :see_no_evil:
44 |
45 | ### Konfiguration
46 |
47 | Mahlowat bezieht seine Informationen aus einer einzigen Konfigurationsdatei, `config/data.json`. Diese Datei enthält die
48 | Thesen, die Namen der antretenden Gruppen sowie deren Positionen und Begründungen.
49 |
50 | Zur Erstellung dieser Konfigurationsdatei bietet sich der mitgelieferte Konfigurator (`generator.html`) an. Falls bereits
51 | eine Konfigurationsdatei existiert, werden deren Inhalte direkt geladen. Für Korrekturen oder das Hinzufügen von
52 | Inhalten muss also nicht immer von vorn begonnen werden.
53 | **Obacht:** Eine bestehende `config/data.json` kann nur geladen werden, falls `generator.html` von einem Webserver geladen wird.
54 | Wenn die Datei direkt aus dem lokalen Dateisystem geöffnet wird, kann eine bestehende `config/data.json` nicht geladen werden.
55 |
56 | Nach drei Schritten erhält man einen Text, der nur noch in die Konfigurationsdatei `config/data.json` kopiert werden muss.
57 | Hinweis: Die Datei muss `UTF-8`-kodiert gespeichert werden.
58 |
59 | ### Sprache
60 |
61 | Mahlowat kommt dreisprachig daher: Detusch (de\_de, Standardeinstellung), Englisch (en\_gb) und Französisch (fr\_fr).
62 |
63 | Um die Sprache zu ändern, muss die Datei `index.html` angepasst werden.
64 | Ganz unten befindet sich der entsprechende Abschnitt:
65 |
66 | ```
67 |
68 |
69 |
70 |
71 |
72 | ```
73 |
74 | Um die aktive Sprache zu ändern, wird die aktuell aktive Sprache auskommentiert (mit `` umschlossen) und die Kommentar-Marker
75 | um die gewünschte Sprache werden entfernt (also die `` werden gelöscht, nicht aber das dazwischen).
76 | Beispiel: Um die Sprache auf Französisch zu stellen, sollte das Ergebnis folgendermaßen aussehen:
77 |
78 | ```
79 |
80 |
81 |
82 |
83 |
84 | ```
85 |
86 | Außerdem können die Texte modifiziert werden. Dies ist wahrscheinlich vor allem beim Fragen-und-Antworten-Teil nötig.
87 |
88 | Texte werden direkt in den `*.js`-Dateien angepasst. Diese befinden sich im `lang`-Unterordner.
89 |
90 | In den Strings können HTML-Tags verwendet werden. Es sollte darauf geachtet werden, keine Syntaxfehler im JavaScript-Code einzubauen,
91 | da diese leider die gesamte Anwendung dysfunktional machen. Frag bei Problemen einen Erwachsenen oder eine Freundin um Hilfe.
92 |
93 | **Obacht!** Um Internet Explorer 11 zu unterstützen (hihi), wurden die Sprachdateien mit [babel](https://babeljs.io)
94 | nachbehandelt. Für jede Sprache existiert eine Ausgangsversion (z. B. `de_de.raw.js`) und die mit Babel behandelte Version
95 | (z. B. `de_de.js`). Um Texte zu ändern, können die Ausgangsversionen modifiziert und hernach erneut babel ausgeführt werden.
96 | Alternativ können die übersetzten Dateien auch direkt modifiziert werden.
97 |
98 | ```
99 | npm install --save-dev @babel/core @babel/cli @babel/preset-env @babel/node
100 | babel --presets @babel/preset-env lang/de_de.raw.js > lang/de_de.js
101 | babel --presets @babel/preset-env lang/en_gb.raw.js > lang/en_gb.js
102 | babel --presets @babel/preset-env lang/fr_fr.raw.js > lang/fr_fr.js
103 | ```
104 |
105 | #### Mehrsprachigkeit
106 |
107 | Gegebenenfalls soll der Mahlowat in mehreren Sprachen angeboten werden, zum Beispiel auf Französisch und Deutsch.
108 |
109 | Es empfiehlt sich, hierfür mehrere Instanzen zu erzeugen. Die Gruppen oder Kandidierenden würden also die Thesen jeweils auf Deutsch und auf
110 | Französisch erhalten und nach Positionierungen und Begründungen in beiden Sprachen gefragt werden. Dann würden zwei getrennte Mahlowat-Versionen
111 | erzeugt, eine auf Französisch mit den französischsprachigen Inhalten unter https://example.com/fr, und eine auf Deutsch mit den deutschsprachigen
112 | Inhalten unter https://example.com/de. Man könnte sich dazu eine Startseite vorstellen, die auf die beiden Mahlowat-Instanzen verlinkt.
113 |
114 | ### Veröffentlichung
115 |
116 | Die Ordner `config`, `css`, `img`, `js`, und `lang` mit ihrem Inhalt sowie die Datei `index.html` werden in einen Ordner auf dem Webserver des
117 | Vertrauens hochgeladen.
118 |
119 | Fertig!
120 |
121 |
122 | Punkteberechnung
123 | ----------------
124 |
125 | The points for the groups in the results at the end are calculated as follows:
126 | Die Punkte für die Gruppen im Endresultat werden wie folgt berechnet:
127 |
128 | - Die gegebenen Antworten werden mit denen jeder Gruppe verglichen
129 | - Stimmt die Antwort einer Gruppe mit der gegebenen überein, werden der Gruppe 2 Punkte gutgeschrieben.
130 | - Weicht die Antwort leicht ab (Zustimmung/Neutral oder Neutral/Ablehnung), wird der Gruppe 1 Punkt gutgeschrieben
131 | - Sind die Antworten entgegengesetzt oder hat eine Gruppe eine These nicht beantwortet, gibt es keine Punkte für die Gruppe.
132 | - Eine These, die übersprungen wurde, wird nicht gewertet. Die erreichbare Höchstpunktzahl wird dadurch geringer.
133 | - Eine These, die doppelt gewichtet werden soll, wird doppelt gewichtet, das heißt, für sie wird die doppelte Punktzahl
134 | gutgeschrieben (0/2/4). Dadurch können insgesamt mehr Punkte erreicht werden.
135 |
136 |
137 | Demo
138 | ----
139 |
140 | [Deutsch :de:](https://hscmi.de/mahlowat/de/) [English :uk:](https://hscmi.de/mahlowat/en/) [Français :fr:](https://hscmi.de/mahlowat/fr/)
141 |
142 |
143 | Fehlerbehandlung
144 | ----------------
145 |
146 | #### Klicken auf den Start!-Knopf führt zu keiner Reaktion
147 |
148 | Die Konfigurationsdatei konnte wohl nicht geladen werden. Stelle sicher, dass sie existiert, vom Webserver gelesen werden kann
149 | (das kann z.B. durch direkten Aufruf der Datei https://example.com/config/data.json mit dem Webbrowser überprüft werden) und
150 | syntaktisch korrekt ist.
151 |
152 |
153 | #### Die Startseite sieht komisch aus und überall stehen seltsame Dinge wie btn-start oder start-explanatory-text. Außerdem funktioniert nichts.
154 |
155 | Sieht so aus als ob der JavaScript-Teil defekt ist. Ist genau eine Sprachdatei (siehe oben) eingebunden? Sie könnte auch einen Syntaxfehler enthalten.
156 |
157 |
158 | #### Das Ergebnis ist leer
159 |
160 | Man sollte schon mindestens eine These beantworten.
161 |
162 |
163 | #### Ich öffne den mahlowat aber nichts funktioniert, da ist nur eine rote Warnung!
164 |
165 | Die häufigste Ursache hierfür ist, dass die `index.html`-Datei direkt mit den Webbrowser geöffnet wurde. Leider funktioniert dies in den
166 | meisten Browsern nicht. Alle Dateien müssen auf einen Webserver geladen und von dort angezeigt werden. Du kannst auch lokal einen Webserver
167 | zum Testen starten.
168 |
169 | Wenn die Dateien hingegen bereits auf einem Webserver liegen und dennoch die Fehlermeldung auftaucht, dann lies sie: Existiert die Datei?
170 | Lässt sich sich mit dem Webbrowser direkt aufrufen oder kommt eine Fehlermeldung? Und nicht zuletzt, enthält sie keine Syntaxfehler?
171 |
172 |
173 | #### Die `generator.html` lädt meine existierende `config/data.json` nicht!
174 |
175 | Öffnest du die Datei von einem Webserver?
176 | Falls `generator.html` direkt aus dem Dateisystem im Webbrowser geöffnet wird, kann die `config/data.json` nicht geladen werden.
177 |
178 | Freud und Leid
179 | ------------
180 |
181 | #### Ich möchte einen Fehler melden
182 |
183 | Klasse! [Erstelle ein Issue](https://github.com/HSZemi/mahlowat/issues) (und hoffe, dass es bemerkt wird).
184 |
185 |
186 | #### Ich möchte einen Fehler beheben
187 |
188 | Knorke! [Stelle einen Pull Request](https://github.com/HSZemi/mahlowat/pulls) (und hoffe, dass er bemerkt wird).
189 |
190 | #### Ich möchte mich beschweren/bedanken
191 |
192 | Ich freue mich stets über eine E-Mail an mahlowat@hszemi.de!
193 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | 
2 |
3 | [Deutsche Version](README-DE.md)
4 |
5 | Mahlowat is an implementation of a voting advice application (VAA). It allows users to compare their opinion on selected theses
6 | to the opinions of groups or individuals competing in an election.
7 |
8 | Extended Features
9 | -----------------
10 |
11 | Take a look at [Vote-O-Mat](https://github.com/SilvanVerhoeven/vote-o-mat), if you need one of these features:
12 |
13 | - built-in support for multiple languages
14 | - anonymous usage statistics
15 | - branding of Mahlowat (e.g. via a Logo)
16 |
17 | Vote-O-Mat is an extension of Mahlowat and works equally in the fundamentals.
18 |
19 |
20 | General Approach
21 | ----------------
22 |
23 | There will be an election at some point in the future. A team of highly skilled individuals devises a list of simple theses which
24 | can be answered with Yes or No.
25 |
26 | Once the groups or candidates participating in the election are set, they are being sent the theses and asked to provide a positioning
27 | (Yes/No/Neutral) and a short statement for each thesis.
28 |
29 | One poor soul will then compile all responses into a configuration file (see below).
30 |
31 | A Mahlowat instance is consequently configured, published and advertised.
32 |
33 | Enjoy!
34 |
35 |
36 | Setup
37 | -----
38 |
39 | In order to get Mahlowat up and running, you have to do three things:
40 |
41 | - Create a configuration file which contains all the theses and responses of the participating groups
42 | - Select a language and adapt the application texts
43 | - Upload the files to a web server where everyone can see them :see_no_evil:
44 |
45 | ### Configuration
46 |
47 | Mahlowat uses a single file, `config/data.json`, which contains the theses, information about the groups, and the groups'
48 | responses and statements.
49 |
50 | You should probably use `generator.html` to generate this configuration file. It will load the data from an existing
51 | `config/data.json`, so you won't have to start all over again if you want to correct or add something.
52 | **Warning:** An existing `config/data.json` can only be loaded if `generator.html` is opened from a web server.
53 | If you directly open the file from your file system, it will not be able to load an existing `config/data.json`.
54 |
55 | At the end of a three step process, the generator yields the (new) contents to the `config/data.json` file, which you will
56 | have to enter there manually (please copy-paste). Make sure the file is saved with the `UTF-8` encoding.
57 |
58 | ### Language
59 |
60 | Mahlowat comes with three languages: German (de\_de, default), English (en\_gb) and French (fr\_fr).
61 |
62 | If you want to change the display language, you have to do a tiny edit in `index.html`.
63 | Go to the very bottom, where you will find this section:
64 |
65 | ```
66 |
67 |
68 |
69 |
70 |
71 | ```
72 |
73 | To change the active language, comment out the currently active language (comment out = enclose the whole line in ``)
74 | and uncomment the language of your choice (removing the ``). Example: If you want to run Mahlowat in french, it should
75 | look like this:
76 |
77 | ```
78 |
79 |
80 |
81 |
82 |
83 | ```
84 |
85 | You may also want to change some of the text, especially the Q&A part. In order to do that, directly edit the language `*.js` files
86 | which you can find in the `lang` subfolder.
87 |
88 | You can use html tags inside of the strings. Just make sure to not introduce errors in the JavaScript, because that will unfortunately
89 | break the whole application. If you are unsure, maybe ask a friend for help.
90 |
91 | **Attention!** In order to support Internet Explorer 11 (lol), [babel](https://babeljs.io) has been used to transpile the
92 | language files from a raw version (e.g. `en_gb.raw.js`) into the production version (e.g. `en_gb.js`).
93 | You can edit the "raw" files and then do that yourself – or edit the transpiled versions directly.
94 |
95 | ```
96 | npm install --save-dev @babel/core @babel/cli @babel/preset-env @babel/node
97 | babel --presets @babel/preset-env lang/de_de.raw.js > lang/de_de.js
98 | babel --presets @babel/preset-env lang/en_gb.raw.js > lang/en_gb.js
99 | babel --presets @babel/preset-env lang/fr_fr.raw.js > lang/fr_fr.js
100 | ```
101 |
102 | #### Multiple languages
103 |
104 | You might want to offer the Mahlowat in multiple languages at once, for example in French and German.
105 |
106 | We recommend creating multiple instances, which means you would send the groups or candidates the theses in French and in German and ask for
107 | positioning and statements in both languages. You would then create two separate Mahlowat instances, one in French with the french content (available under https://example.com/fr), one in German with the german content (available under https://example.com/de). You could add a landing page which links
108 | to the two versions.
109 |
110 | ### Publish
111 |
112 | Upload the `config`, `css`, `img`, `js`, and `lang` folders with their contents as well as the `index.html` file to a directory on
113 | the web server of your choice.
114 |
115 | Done!
116 |
117 |
118 | Calculations
119 | ------------
120 |
121 | The points for the groups in the results at the end are calculated as follows:
122 |
123 | - The user's answers are compared to each group's answers.
124 | - The group gains 2 points for each thesis where their answer matches the user's.
125 | - A slight deviation (yes/neutral or neutral/no) gains the group still 1 point.
126 | - If the answers are contrary or if a group has no position on a thesis, the group gains no point.
127 | - A thesis that the user skipped gains no one any point. The maximum number of points possible decreases.
128 | - A thesis that the user counts double gets groups twice the points (0/2/4). This increases the maximum number of points possible.
129 |
130 |
131 | Demo
132 | ----
133 |
134 | [Deutsch :de:](https://hscmi.de/mahlowat/de/) [English :uk:](https://hscmi.de/mahlowat/en/) [Français :fr:](https://hscmi.de/mahlowat/fr/)
135 |
136 |
137 | Troubleshooting
138 | ---------------
139 |
140 | #### I keep klicking on the Start! button, but nothing happens
141 |
142 | Mahlowat could not load the config file. Make sure it exists, is readable by the web server (you could try to access it directly
143 | with your browser at https://example.com/config/data.json) and syntactically correct.
144 |
145 |
146 | #### Everything says weird stuff like btn-start or start-explanatory-text. Also, nothing works.
147 |
148 | Looks like the JavaScript part is broken. Did you include exactly one language file (see above)? It might also contain a syntax error.
149 |
150 |
151 | #### The results are empty
152 |
153 | You should give your opinion on at least one thesis.
154 |
155 |
156 | #### I open mahlowat and I only get a red warning box, but it does not work!
157 |
158 | Did you open the `index.html` file directly in your web browser? That unfortunately does not work in most browsers. Try uploading everything
159 | to a web server and opening it from there instead. Or run a web server locally for development.
160 |
161 | If you did in fact access it from a web server, do as the error message says: Does the file exist? Can you access it with your web browser
162 | directly or do you get an error message? And lastly, does it not contain syntax errors?
163 |
164 |
165 | #### The `generator.html` does not load my existing `config/data.json`!
166 |
167 | Are you opening the generator from a web server?
168 | Loading an existing `config/data.json` will not work if you open the `generator.html` directly from your file system.
169 |
170 |
171 | Weal and Woe
172 | ------------
173 |
174 | #### I want to report a bug
175 |
176 | Great! [Open an issue](https://github.com/HSZemi/mahlowat/issues) (and hope it gets noticed).
177 |
178 | #### I wang to fix a bug
179 |
180 | Great! [Issue a pull request](https://github.com/HSZemi/mahlowat/pulls) (and hope it gets noticed).
181 |
182 | #### I want to complain / say thanks
183 |
184 | I am always happy to receive success stories (or stories of failure for that matter) at mahlowat@hszemi.de
185 |
--------------------------------------------------------------------------------
/config/data.json:
--------------------------------------------------------------------------------
1 | {
2 | "theses": {
3 | "0": {
4 | "l": "These 1 Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam",
5 | "s": "These 1",
6 | "x": "Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam er"
7 | },
8 | "1": {
9 | "l": "These 2 m dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ",
10 | "s": "These 2",
11 | "x": ""
12 | },
13 | "2": {
14 | "l": "These 3 ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lore",
15 | "s": "These 3",
16 | "x": "takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."
17 | },
18 | "3": {
19 | "l": "These 4 sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et ",
20 | "s": "These 4",
21 | "x": "tetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eo"
22 | },
23 | "4": {
24 | "l": "These 5 elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et just",
25 | "s": "These 5",
26 | "x": ""
27 | },
28 | "5": {
29 | "l": "These 6 Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel i",
30 | "s": "These 6",
31 | "x": ""
32 | },
33 | "6": {
34 | "l": "These 7 tatum zzril delenit augue duis dolore te feugait nulla facilisi",
35 | "s": "These 7",
36 | "x": ""
37 | },
38 | "7": {
39 | "l": "These 8 invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eo",
40 | "s": "These 8",
41 | "x": "ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit a"
42 | },
43 | "8": {
44 | "l": "These 9 imata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos",
45 | "s": "These 9",
46 | "x": ""
47 | },
48 | "9": {
49 | "l": "These 10 ergren, no sea takimata sanctus est Lorem ipsum dolor",
50 | "s": "These 10",
51 | "x": ""
52 | }
53 | },
54 | "lists": {
55 | "0": {
56 | "name": "Liste X",
57 | "name_x": "Liste X"
58 | },
59 | "1": {
60 | "name": "Kugelschreibär",
61 | "name_x": "STIFT"
62 | },
63 | "2": {
64 | "name": "Liste Oben",
65 | "name_x": "Liste Oben"
66 | },
67 | "3": {
68 | "name": "The ACKERdemikerliste",
69 | "name_x": "TACKER"
70 | },
71 | "4": {
72 | "name": "Vitamin B",
73 | "name_x": "Vitamin B"
74 | },
75 | "5": {
76 | "name": "Niemals nicht",
77 | "name_x": "NEIN"
78 | }
79 | },
80 | "answers": {
81 | "0": {
82 | "0": {
83 | "selection": "a",
84 | "statement": "Juche!"
85 | },
86 | "1": {
87 | "selection": "a",
88 | "statement": "Noe."
89 | },
90 | "2": {
91 | "selection": "c",
92 | "statement": ""
93 | },
94 | "3": {
95 | "selection": "b",
96 | "statement": ""
97 | },
98 | "4": {
99 | "selection": "a",
100 | "statement": ""
101 | },
102 | "5": {
103 | "selection": "c",
104 | "statement": ""
105 | },
106 | "6": {
107 | "selection": "b",
108 | "statement": ""
109 | },
110 | "7": {
111 | "selection": "b",
112 | "statement": ""
113 | },
114 | "8": {
115 | "selection": "a",
116 | "statement": ""
117 | },
118 | "9": {
119 | "selection": "a",
120 | "statement": ""
121 | }
122 | },
123 | "1": {
124 | "0": {
125 | "selection": "c",
126 | "statement": "Moep"
127 | },
128 | "1": {
129 | "selection": "b",
130 | "statement": "Yay"
131 | },
132 | "2": {
133 | "selection": "a",
134 | "statement": ""
135 | },
136 | "3": {
137 | "selection": "a",
138 | "statement": ""
139 | },
140 | "4": {
141 | "selection": "a",
142 | "statement": ""
143 | },
144 | "5": {
145 | "selection": "b",
146 | "statement": ""
147 | },
148 | "6": {
149 | "selection": "a",
150 | "statement": ""
151 | },
152 | "7": {
153 | "selection": "c",
154 | "statement": ""
155 | },
156 | "8": {
157 | "selection": "c",
158 | "statement": ""
159 | },
160 | "9": {
161 | "selection": "a",
162 | "statement": ""
163 | }
164 | },
165 | "2": {
166 | "0": {
167 | "selection": "a",
168 | "statement": ""
169 | },
170 | "1": {
171 | "selection": "c",
172 | "statement": ""
173 | },
174 | "2": {
175 | "selection": "c",
176 | "statement": ""
177 | },
178 | "3": {
179 | "selection": "a",
180 | "statement": ""
181 | },
182 | "4": {
183 | "selection": "d",
184 | "statement": ""
185 | },
186 | "5": {
187 | "selection": "c",
188 | "statement": ""
189 | },
190 | "6": {
191 | "selection": "c",
192 | "statement": ""
193 | },
194 | "7": {
195 | "selection": "a",
196 | "statement": ""
197 | },
198 | "8": {
199 | "selection": "a",
200 | "statement": ""
201 | },
202 | "9": {
203 | "selection": "a",
204 | "statement": ""
205 | }
206 | },
207 | "3": {
208 | "0": {
209 | "selection": "c",
210 | "statement": ""
211 | },
212 | "1": {
213 | "selection": "a",
214 | "statement": ""
215 | },
216 | "2": {
217 | "selection": "a",
218 | "statement": ""
219 | },
220 | "3": {
221 | "selection": "a",
222 | "statement": ""
223 | },
224 | "4": {
225 | "selection": "a",
226 | "statement": ""
227 | },
228 | "5": {
229 | "selection": "c",
230 | "statement": ""
231 | },
232 | "6": {
233 | "selection": "a",
234 | "statement": ""
235 | },
236 | "7": {
237 | "selection": "c",
238 | "statement": ""
239 | },
240 | "8": {
241 | "selection": "b",
242 | "statement": ""
243 | },
244 | "9": {
245 | "selection": "c",
246 | "statement": ""
247 | }
248 | },
249 | "4": {
250 | "0": {
251 | "selection": "a",
252 | "statement": ""
253 | },
254 | "1": {
255 | "selection": "c",
256 | "statement": ""
257 | },
258 | "2": {
259 | "selection": "c",
260 | "statement": ""
261 | },
262 | "3": {
263 | "selection": "c",
264 | "statement": ""
265 | },
266 | "4": {
267 | "selection": "c",
268 | "statement": ""
269 | },
270 | "5": {
271 | "selection": "c",
272 | "statement": ""
273 | },
274 | "6": {
275 | "selection": "c",
276 | "statement": ""
277 | },
278 | "7": {
279 | "selection": "a",
280 | "statement": ""
281 | },
282 | "8": {
283 | "selection": "a",
284 | "statement": ""
285 | },
286 | "9": {
287 | "selection": "a",
288 | "statement": ""
289 | }
290 | },
291 | "5": {
292 | "0": {
293 | "selection": "a",
294 | "statement": ""
295 | },
296 | "1": {
297 | "selection": "a",
298 | "statement": ""
299 | },
300 | "2": {
301 | "selection": "c",
302 | "statement": ""
303 | },
304 | "3": {
305 | "selection": "b",
306 | "statement": ""
307 | },
308 | "4": {
309 | "selection": "c",
310 | "statement": ""
311 | },
312 | "5": {
313 | "selection": "c",
314 | "statement": ""
315 | },
316 | "6": {
317 | "selection": "c",
318 | "statement": ""
319 | },
320 | "7": {
321 | "selection": "c",
322 | "statement": ""
323 | },
324 | "8": {
325 | "selection": "a",
326 | "statement": ""
327 | },
328 | "9": {
329 | "selection": "a",
330 | "statement": ""
331 | }
332 | }
333 | }
334 | }
335 |
--------------------------------------------------------------------------------
/generator.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
Mit diesem Helferlein kannst du die Konfigurationsdatei für den Mahlowat erstellen. Sie wird alle Thesen mit Erläuterungen,
43 | alle Listen sowie deren Antworten und Stellungnahmen zu den Thesen enthalten.
44 |
Am Ende kommt dann ein kryptischer Text heraus, der im
45 | config-Verzeichnis des Mahlowat als
46 | data.json gespeichert werden muss. Keine Angst, am Ende wird das nochmal detailliert erklärt.
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
Schritt 1: Thesen anlegen
55 |
56 |
Hier legst du die Thesen an, zu denen die zur Wahl antretenden Listen Stellung nehmen (oder es bereits getan haben).
57 | Der Kurzname wird überall dort verwendet, wo nur wenig Platz ist, zum Beispiel auf Buttons.
58 | Wenn alle Thesen erstellt sind, geht es mit einem Klick auf "Weiter" weiter.
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
Schritt 2: Listen anlegen
73 |
74 |
Welche Listen treten zur Wahl an? Hier trägst du das ein. Auch hier gilt: Der Kurzname wird überall dort verwendet, wo
75 | nur wenig Platz ist.
76 | Sind alle Listen angelegt, geht es mit einem Klick auf "Weiter" zum nächsten und vorletzten Schritt, in dem du die
77 | Antworten der Listen zu den Thesen eintragen kannst.
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
Schritt 3: Listen-Antworten und Erläuterungen
93 |
94 |
95 |
96 |
97 |
98 |
Jetzt wird es lustig.
99 |
Mit den Tabs wählst du die Liste aus, deren Antworten du eintragen willst. Darunter wählst du dann die Thesen aus, wählst
100 | bei den Knöpfen die Antwort der Liste aus und trägst in das Textfeld die Begründung der Liste ein, falls sie eine geliefert
101 | hat. Zwischen den Thesen kannst du auch mit den Pfeiltasten deiner Tastatur
102 | ←
103 | → umschalten.
104 | Wenn du alles eingetragen hast, kannst du als letzten Schritt mit einem Klick auf den "Erstellen"-Knopf oben rechts
105 | die Konfiguration erstellen. Einfach, oder?
106 |
Für die aktuelle Liste wurden
107 | 4
108 | von
109 | 4 Thesen beantwortet.
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
129 |
130 |
131 |
133 |
134 |
135 |
137 |
138 |
139 |
141 |
142 |
143 |
145 |
146 |
147 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
Geschafft! Also fast.
159 |
Das hier ist deine Mahlowat-Konfiguration:
160 |
161 |
Dieser Text muss jetzt genau so in die Datei
162 | data.json im Verzeichnis
163 | config des Mahlowat kopiert werden. Falls diese Datei nicht existiert, erstelle sie einfach. Achte darauf, dass die Datei im
164 | UTF-8-Format gespeichert wird!
Den an der Wahl teilnehmenden Gruppen wurden die Thesen mit der Bitte um Stellungnahme zugeleitet. Neben der reinen\
25 | Positionierung (Zustimmung/Neutral/Ablehnung/Keine Stellungnahme) konnten sie ihre Position auch in einem kurzen Absatz\
26 | erläutern.\
27 |
\
28 |
Für ihre Stellungnahmen zu den Thesen sind die Gruppen selbst verantwortlich.
\
29 | \
30 |
Von welcher Wahl reden wir hier überhaupt?
\
31 |
Lorem Ipsum.
\
32 | \
33 |
Wie werden die Punkte berechnet?
\
34 |
Deine Antworten werden mit den vorgegebenen Antworten der Gruppen abgeglichen.
\
35 |
\
36 |
Stimmt die Antwort überein, werden der Gruppe 2 Punkte gutgeschrieben;
\
37 |
Weicht die Antwort leicht ab (Zustimmung/Neutral oder Neutral/Ablehnung), wird der Gruppe 1 Punkt gutgeschrieben;
\
38 |
Sind die Antworten entgegengesetzt oder hat eine Gruppe eine These nicht beantwortet, gibt es keine Punkte für die\
39 | Gruppe.\
40 |
\
41 |
\
42 |
Eine These, die du übersprungen hast, wird nicht gewertet. Die erreichbare Höchstpunktzahl wird dadurch geringer.
\
43 |
Eine These, die doppelt gewichtet werden soll, wird doppelt gewichtet, das heißt, für sie wird die doppelte Punktzahl\
44 | gutgeschrieben (0/2/4). Dadurch können insgesamt mehr Punkte erreicht werden.
\
45 | \
46 |
Werden meine Antworten gespeichert?
\
47 |
Nein. Alles läuft vollständig in deinem Browser ab.
\
48 | \
49 |
Ich habe einen inhaltlichen Fehler gefunden!
\
50 |
Gib uns gern Bescheid, wir sehen uns das an. Wer „wir“ sind, steht oben auf dieser Seite.
\
51 | \
52 |
Wer hat den Mahlowat programmiert?
\
53 |
Das steht\
54 | hier. Der Mahlowat ist übrigens freie Software!
\
55 | \
56 |
Ich habe einen Programmierfehler gefunden!
\
57 |
Oh nein! Wenn du den Fehler\
58 | meldest, wird er vielleicht behoben.
';
59 | this.btn_qa_modal_close = "Schließen";
60 | this.swype_info_message_text = "Wische, um manuell zwischen Thesen zu wechseln";
61 | this.btn_swype_info_ok = "OK";
62 | this.start_subtitle = "Der Mahlowat ist ein Wahlpositionsvergleichswerkzeug.";
63 | this.start_explanatory_text = "
Der Mahlowat ermöglicht es dir, deine Meinung zu ausgewählten Thesen mit denen der Gruppen zu vergleichen, die zur $WAHL\
64 | antreten.\
65 |
\
66 |
Für ihre Stellungnahmen zu den Thesen sind die Gruppen selbst verantwortlich.
Den an der Wahl teilnehmenden Gruppen wurden die Thesen mit der Bitte um Stellungnahme zugeleitet. Neben der reinen\
13 | Positionierung (Zustimmung/Neutral/Ablehnung/Keine Stellungnahme) konnten sie ihre Position auch in einem kurzen Absatz\
14 | erläutern.\
15 |
\
16 |
Für ihre Stellungnahmen zu den Thesen sind die Gruppen selbst verantwortlich.
\
17 | \
18 |
Von welcher Wahl reden wir hier überhaupt?
\
19 |
Lorem Ipsum.
\
20 | \
21 |
Wie werden die Punkte berechnet?
\
22 |
Deine Antworten werden mit den vorgegebenen Antworten der Gruppen abgeglichen.
\
23 |
\
24 |
Stimmt die Antwort überein, werden der Gruppe 2 Punkte gutgeschrieben;
\
25 |
Weicht die Antwort leicht ab (Zustimmung/Neutral oder Neutral/Ablehnung), wird der Gruppe 1 Punkt gutgeschrieben;
\
26 |
Sind die Antworten entgegengesetzt oder hat eine Gruppe eine These nicht beantwortet, gibt es keine Punkte für die\
27 | Gruppe.\
28 |
\
29 |
\
30 |
Eine These, die du übersprungen hast, wird nicht gewertet. Die erreichbare Höchstpunktzahl wird dadurch geringer.
\
31 |
Eine These, die doppelt gewichtet werden soll, wird doppelt gewichtet, das heißt, für sie wird die doppelte Punktzahl\
32 | gutgeschrieben (0/2/4). Dadurch können insgesamt mehr Punkte erreicht werden.
\
33 | \
34 |
Werden meine Antworten gespeichert?
\
35 |
Nein. Alles läuft vollständig in deinem Browser ab.
\
36 | \
37 |
Ich habe einen inhaltlichen Fehler gefunden!
\
38 |
Gib uns gern Bescheid, wir sehen uns das an. Wer „wir“ sind, steht oben auf dieser Seite.
\
39 | \
40 |
Wer hat den Mahlowat programmiert?
\
41 |
Das steht\
42 | hier. Der Mahlowat ist übrigens freie Software!
\
43 | \
44 |
Ich habe einen Programmierfehler gefunden!
\
45 |
Oh nein! Wenn du den Fehler\
46 | meldest, wird er vielleicht behoben.
';
47 | this.btn_qa_modal_close = "Schließen";
48 | this.swype_info_message_text = "Wische, um manuell zwischen Thesen zu wechseln";
49 | this.btn_swype_info_ok = "OK";
50 | this.start_subtitle = "Der Mahlowat ist ein Wahlpositionsvergleichswerkzeug.";
51 | this.start_explanatory_text = "
Der Mahlowat ermöglicht es dir, deine Meinung zu ausgewählten Thesen mit denen der Gruppen zu vergleichen, die zur $WAHL\
52 | antreten.\
53 |
\
54 |
Für ihre Stellungnahmen zu den Thesen sind die Gruppen selbst verantwortlich.
";
55 | this.btn_start = "Mahlowat starten!";
56 | this.btn_start_show_qa = "Fragen & Antworten";
57 | this.btn_toggle_thesis_more_text = "Erläuterung";
58 | this.btn_important = "These doppelt gewichten";
59 | this.btn_yes_text = "Zustimmung";
60 | this.btn_neutral_text = "Neutral";
61 | this.btn_no_text = "Ablehnung";
62 | this.btn_skip_text = "Überspringen";
63 | this.btn_mahlowat_show_start = "Zurück zur Startseite";
64 | this.btn_mahlowat_show_qa = "Fragen & Antworten";
65 | this.btn_mahlowat_skip_remaining_theses = "Alle verbleibenden Thesen überspringen und aktuellen Stand auswerten";
66 | this.title_results = "Ergebnis";
67 | this.title_results_summary = "Zusammenfassung";
68 | this.text_result_below_summary = 'Nicht zufrieden mit dem Ergebnis?\
69 | \
70 | ';
71 | this.title_results_details = "";
72 | this.btn_results_show_start = "Zurück zur Startseite";
73 | this.btn_results_show_qa = "Fragen & Antworten";
74 | }
75 |
76 | thesis_number(number) {
77 | return "These " + number;
78 | }
79 |
80 | get btn_make_thesis_double_weight() {
81 | return "These doppelt gewichten";
82 | }
83 |
84 | get btn_thesis_has_double_weight() {
85 | return "These wird doppelt gewichtet";
86 | }
87 |
88 | get label_your_choice() {
89 | return "Deine Wahl";
90 | }
91 |
92 | achieved_points_text(pointsForList, maxAchievablePoints) {
93 | return '' + pointsForList + '/' + maxAchievablePoints + ' Punkte';
94 | }
95 |
96 | get default_text_no_statement() {
97 | return "Keine Stellungnahme.";
98 | }
99 |
100 | get error_loading_config_file() {
101 | return 'Fehler Die Konfigurationsdatei config/data.json konnte nicht geladen\
102 | werden. Existiert sie und enthält keine Syntaxfehler?';
103 | }
104 |
105 | }
--------------------------------------------------------------------------------
/lang/en_gb.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
4 |
5 | function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
6 |
7 | function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
8 |
9 | var T =
10 | /*#__PURE__*/
11 | function () {
12 | function T() {
13 | _classCallCheck(this, T);
14 |
15 | this.page_title = "Mahlowat";
16 | this.qa_modal_title = "Questions & Answers";
17 | this.qa_modal_body = '
Who is behind the Mahlowat?
\
18 |
Lorem Ipsum.
\
19 | \
20 |
Who developed the theses?
\
21 |
Lorem Ipsum.
\
22 | \
23 |
What is the origin of the groups\' statements?
\
24 |
The theses were sent to the groups participating in this election. They could give their position (yes/neutral/no/skip)\
25 | as well as a short paragraph as an accompanying statement.\
26 |
\
27 |
The groups are solely responsible for their own statements.
\
28 | \
29 |
What is this election you are talking about?
\
30 |
Lorem Ipsum.
\
31 | \
32 |
How are the points calculated?
\
33 |
Your answers are compared to the positions of the groups.
\
34 |
\
35 |
The group gains 2 points if their answer matches yours;
\
36 |
A slight deviation (yes/neutral or neutral/no) gains the group still 1 point;
\
37 |
If the answers are contrary or if a group has no position on a thesis, the group gains no point.\
38 |
\
39 |
\
40 |
A thesis that you skipped gains no one any point. The maximum number of points possible decreases.
\
41 |
A thesis that you count double gets groups twice the points (0/2/4). This increases the maximum number of points possible.
\
42 | \
43 |
Are my answers stored somewhere?
\
44 |
No. Everything stays in your web browser. Once you close the page, all information is lost forever.
\
45 | \
46 |
I have spotted an error in your content!
\
47 |
Please tell us. Who is »us«? See above.
\
48 | \
49 |
Who programmed the Mahlowat?
\
50 |
Behold!. By the way: the Mahlowat is free software!
The theses were sent to the groups participating in this election. They could give their position (yes/neutral/no/skip)\
13 | as well as a short paragraph as an accompanying statement.\
14 |
\
15 |
The groups are solely responsible for their own statements.
\
16 | \
17 |
What is this election you are talking about?
\
18 |
Lorem Ipsum.
\
19 | \
20 |
How are the points calculated?
\
21 |
Your answers are compared to the positions of the groups.
\
22 |
\
23 |
The group gains 2 points if their answer matches yours;
\
24 |
A slight deviation (yes/neutral or neutral/no) gains the group still 1 point;
\
25 |
If the answers are contrary or if a group has no position on a thesis, the group gains no point.\
26 |
\
27 |
\
28 |
A thesis that you skipped gains no one any point. The maximum number of points possible decreases.
\
29 |
A thesis that you count double gets groups twice the points (0/2/4). This increases the maximum number of points possible.
\
30 | \
31 |
Are my answers stored somewhere?
\
32 |
No. Everything stays in your web browser. Once you close the page, all information is lost forever.
\
33 | \
34 |
I have spotted an error in your content!
\
35 |
Please tell us. Who is »us«? See above.
\
36 | \
37 |
Who programmed the Mahlowat?
\
38 |
Behold!. By the way: the Mahlowat is free software!
';
42 | this.btn_qa_modal_close = "Close";
43 | this.swype_info_message_text = "Swype to switch between theses manually";
44 | this.btn_swype_info_ok = "OK";
45 | this.start_subtitle = "Mahlowat is a voting advice application. It's a tool, not your mum.";
46 | this.start_explanatory_text = "
The Mahlowat permits you to compare your opinion on selected theses with the opinions of\
47 | groups that participate in $ELECTION.
\
48 |
The views expressed in the groups' statements are their own.
";
49 | this.btn_start = "Start the Mahlowat!";
50 | this.btn_start_show_qa = "Questions & Answers";
51 | this.btn_toggle_thesis_more_text = "Explanation";
52 | this.btn_important = "Count double";
53 | this.btn_yes_text = "Yes";
54 | this.btn_neutral_text = "Neutral";
55 | this.btn_no_text = "No";
56 | this.btn_skip_text = "Skip";
57 | this.btn_mahlowat_show_start = "Back to the welcome page";
58 | this.btn_mahlowat_show_qa = "Questions & Answers";
59 | this.btn_mahlowat_skip_remaining_theses = "Skip all remaining theses and evaluate the current selections";
60 | this.title_results = "Result";
61 | this.title_results_summary = "Summary";
62 | this.text_result_below_summary = 'Don\'t like your results?\
63 | \
64 | ';
65 | this.title_results_details = "";
66 | this.btn_results_show_start = "Back to the welcome page";
67 | this.btn_results_show_qa = "Questions & Answers";
68 | }
69 |
70 | thesis_number(number) {
71 | return "Thesis " + number;
72 | }
73 |
74 | get btn_make_thesis_double_weight() {
75 | return "Count double";
76 | }
77 |
78 | get btn_thesis_has_double_weight() {
79 | return "Counting double";
80 | }
81 |
82 | get label_your_choice() {
83 | return "Your choice";
84 | }
85 |
86 | achieved_points_text(pointsForList, maxAchievablePoints) {
87 | return '' + pointsForList + '/' + maxAchievablePoints + ' Points';
88 | }
89 |
90 | get default_text_no_statement() {
91 | return "No statement.";
92 | }
93 |
94 | get error_loading_config_file() {
95 | return 'Error Could not load the configuration file \
96 | config/data.json. Does it exist? Does it not contain syntax errors?';
97 | }
98 |
99 | }
--------------------------------------------------------------------------------
/lang/fr_fr.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
4 |
5 | function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
6 |
7 | function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
8 |
9 | var T =
10 | /*#__PURE__*/
11 | function () {
12 | function T() {
13 | _classCallCheck(this, T);
14 |
15 | this.page_title = "Mahlowat";
16 | this.qa_modal_title = "Questions-réponses";
17 | this.qa_modal_body = '
Qui a fait le Mahlowat?
\
18 |
Lorem Ipsum.
\
19 | \
20 |
Qui a deviné les théses?
\
21 |
Lorem Ipsum.
\
22 | \
23 |
Comment avons-nous obtenu les positions des groupes?
\
24 |
Nous avons envoyé les théses aux groupes qui participent à l\'élection et demandé qu\'ils repondent.\
25 | Les gropues ont pu donner leur avis (Oui/Neutre/Non/Sauté) ainsi que un bref paragraphe qui explique leur position.\
26 |
\
27 | \
28 |
Élection? Quelle élection?
\
29 |
Lorem Ipsum.
\
30 | \
31 |
Les points comment sont-ils calculés?
\
32 |
vos réponses sont comparées avec les réponses des groupes.
\
33 |
\
34 |
Le groupe gagne 2 points si elle a donné la même réponse que vous;
\
35 |
Si il y a une différence minuscule (Oui/Neutre ou Neutre/Non), le groupe gagne 1 point;
\
36 |
Des réponses contraires et une thése à laquelle une groupe n\'a pas repondu ne donnent pas de points.\
37 |
\
38 |
\
39 |
Une thése que vous avez sauté ne donne pas de points. La somme des points atteinable est diminuée.
\
40 |
Une thése dont vous avez doublé les points donne double points (0/2/4). La somme des points atteinable est augmentée.
\
41 | \
42 |
Mes réponses sont-elles enregistrées?
\
43 |
Non. Tout est traité dans votre navigateur seulement. Dès que vous fermez la page, tout est perdu.
\
44 | \
45 |
J\'ai trouvé une erreur dans le contenu!
\
46 |
Informez-nous et nous allons examiner cette erreur. Si vous ne savez pas qui c\'est «nous», regardez en haut sur cette page.
\
47 | \
48 |
Qui a programmé le Mahlowat?
\
49 |
Regardez ici. Au fait, le Mahlowat est un logiciel libre!
\
50 | \
51 |
J\'ai trouvé une erreur de programmation!
\
52 |
Mon dieu! Si tu signales l\'erreur\
53 | ici, il se peut que ce sera reparé.
';
54 | this.btn_qa_modal_close = "Fermer";
55 | this.swype_info_message_text = "Balayez pour changer la thése";
56 | this.btn_swype_info_ok = "OK";
57 | this.start_subtitle = "Le Mahlowat est une application qui vous aide a décider pour qui voter. \
58 | Pourtant, c'est pas votre mêre, alors faites ce que vous voulez.";
59 | this.start_explanatory_text = "
Le Mahlowat vous permet de comparer ton opinion sur des théses selectionnées avec les \
60 | opinions des goupes qui participent à l'élection.\
61 |
\
62 |
Les groupes sont responsables pour leurs réponses.
Comment avons-nous obtenu les positions des groupes?
\
12 |
Nous avons envoyé les théses aux groupes qui participent à l\'élection et demandé qu\'ils repondent.\
13 | Les gropues ont pu donner leur avis (Oui/Neutre/Non/Sauté) ainsi que un bref paragraphe qui explique leur position.\
14 |
\
15 | \
16 |
Élection? Quelle élection?
\
17 |
Lorem Ipsum.
\
18 | \
19 |
Les points comment sont-ils calculés?
\
20 |
vos réponses sont comparées avec les réponses des groupes.
\
21 |
\
22 |
Le groupe gagne 2 points si elle a donné la même réponse que vous;
\
23 |
Si il y a une différence minuscule (Oui/Neutre ou Neutre/Non), le groupe gagne 1 point;
\
24 |
Des réponses contraires et une thése à laquelle une groupe n\'a pas repondu ne donnent pas de points.\
25 |
\
26 |
\
27 |
Une thése que vous avez sauté ne donne pas de points. La somme des points atteinable est diminuée.
\
28 |
Une thése dont vous avez doublé les points donne double points (0/2/4). La somme des points atteinable est augmentée.
\
29 | \
30 |
Mes réponses sont-elles enregistrées?
\
31 |
Non. Tout est traité dans votre navigateur seulement. Dès que vous fermez la page, tout est perdu.
\
32 | \
33 |
J\'ai trouvé une erreur dans le contenu!
\
34 |
Informez-nous et nous allons examiner cette erreur. Si vous ne savez pas qui c\'est «nous», regardez en haut sur cette page.
\
35 | \
36 |
Qui a programmé le Mahlowat?
\
37 |
Regardez ici. Au fait, le Mahlowat est un logiciel libre!
\
38 | \
39 |
J\'ai trouvé une erreur de programmation!
\
40 |
Mon dieu! Si tu signales l\'erreur\
41 | ici, il se peut que ce sera reparé.
';
42 | this.btn_qa_modal_close = "Fermer";
43 | this.swype_info_message_text = "Balayez pour changer la thése";
44 | this.btn_swype_info_ok = "OK";
45 | this.start_subtitle = "Le Mahlowat est une application qui vous aide a décider pour qui voter. \
46 | Pourtant, c'est pas votre mêre, alors faites ce que vous voulez.";
47 | this.start_explanatory_text = "
Le Mahlowat vous permet de comparer ton opinion sur des théses selectionnées avec les \
48 | opinions des goupes qui participent à l'élection.\
49 |
\
50 |
Les groupes sont responsables pour leurs réponses.