├── i18n ├── de_DE │ ├── mail │ │ ├── donation_hint.twig │ │ ├── donation_confirmation │ │ │ ├── number.twig │ │ │ ├── payment_interval_once.twig │ │ │ ├── paymenttype_external.twig │ │ │ ├── payment_interval_recurring.twig │ │ │ ├── payment_intro.twig │ │ │ ├── paymenttype_banktransfer_once.twig │ │ │ ├── receipt_opted_out.twig │ │ │ ├── needs_moderation.twig │ │ │ ├── creditcard_interval_notice.twig │ │ │ ├── paymenttype_banktransfer_interval.twig │ │ │ ├── receipt_support.twig │ │ │ ├── moderation_other_reason.twig │ │ │ ├── paymenttype_directdebit.twig │ │ │ ├── greetings.twig │ │ │ ├── moderation_amount_too_high.twig │ │ │ ├── paymenttype_banktransfer.twig │ │ │ └── receipt.twig │ │ ├── donation_cancellation_confirmation.twig │ │ ├── membership_application_confirmation_active │ │ │ ├── contact.twig │ │ │ ├── receipt.twig │ │ │ ├── intro_end.twig │ │ │ ├── moderation_other_reason.twig │ │ │ ├── intro_ueb.twig │ │ │ ├── intro_bez.twig │ │ │ ├── outro.twig │ │ │ ├── moderation_amount_too_high.twig │ │ │ ├── intro_start.twig │ │ │ └── intro.twig │ │ ├── membership_application_confirmation_sustaining │ │ │ ├── receipt.twig │ │ │ ├── contact.twig │ │ │ ├── intro_end.twig │ │ │ ├── moderation_other_reason.twig │ │ │ ├── intro_ueb.twig │ │ │ ├── intro_bez.twig │ │ │ ├── outro.twig │ │ │ ├── moderation_amount_too_high.twig │ │ │ ├── intro_start.twig │ │ │ └── intro.twig │ │ ├── unsubscribe_hint.twig │ │ ├── subscription_confirmation │ │ │ └── body.twig │ │ ├── subscription_request.twig │ │ ├── membership_application_cancellation_confirmation.twig │ │ └── contact_confirm_to_user.twig │ ├── shared │ │ ├── email.twig │ │ ├── phone.twig │ │ ├── name_head_of_organization.twig │ │ ├── large_account_manager_name.twig │ │ ├── name_head_of_fundraising.twig │ │ ├── title_head_of_organization.twig │ │ ├── large_account_manager_department.twig │ │ ├── address_of_organization.twig │ │ ├── bank_account.twig │ │ ├── wikimedia_vision.twig │ │ ├── tax_id_organization.twig │ │ └── tax_id_organization_verbose.twig │ ├── messages │ │ ├── membershipTypes.json │ │ ├── paymentTypes.json │ │ ├── daysOfTheWeek.json │ │ ├── paymentProvider.json │ │ ├── paymentIntervals.json │ │ ├── pageTitles.json │ │ ├── paymentStatus.json │ │ ├── validations.json │ │ ├── useOfFundsMessages.json │ │ ├── siteMetadata.json │ │ └── mail.json │ ├── data │ │ ├── honorifics.json │ │ ├── pages.json │ │ ├── contact_categories.json │ │ ├── validation.json │ │ ├── salutations.json │ │ ├── thank_you_content.json │ │ ├── use_of_funds_content.json │ │ └── supporters.json │ └── web │ │ ├── pages │ │ ├── subscription_moderation.twig │ │ ├── subscription_success.twig │ │ ├── no_javascript.twig │ │ ├── contact_confirmation.twig │ │ ├── accessibility_statement.twig │ │ ├── imprint.twig │ │ └── privacy_protection.twig │ │ ├── subscription │ │ └── confirmation.twig │ │ └── membership │ │ └── application │ │ ├── paymenttype_directdebit_mandate.twig │ │ └── paymenttype_directdebit_affirmation.twig └── en_GB │ ├── mail │ ├── donation_hint.twig │ ├── donation_confirmation │ │ ├── number.twig │ │ ├── payment_interval_once.twig │ │ ├── paymenttype_external.twig │ │ ├── payment_interval_recurring.twig │ │ ├── receipt_opted_out.twig │ │ ├── payment_intro.twig │ │ ├── paymenttype_banktransfer_once.twig │ │ ├── needs_moderation.twig │ │ ├── creditcard_interval_notice.twig │ │ ├── paymenttype_banktransfer_interval.twig │ │ ├── receipt_support.twig │ │ ├── moderation_other_reason.twig │ │ ├── greetings.twig │ │ ├── paymenttype_directdebit.twig │ │ ├── moderation_amount_too_high.twig │ │ ├── paymenttype_banktransfer.twig │ │ └── receipt.twig │ ├── donation_cancellation_confirmation.twig │ ├── membership_application_confirmation_active │ │ ├── receipt.twig │ │ ├── contact.twig │ │ ├── intro_ueb.twig │ │ ├── moderation_other_reason.twig │ │ ├── intro_bez.twig │ │ ├── intro_end.twig │ │ ├── outro.twig │ │ ├── moderation_amount_too_high.twig │ │ ├── intro_start.twig │ │ └── intro.twig │ ├── membership_application_confirmation_sustaining │ │ ├── receipt.twig │ │ ├── contact.twig │ │ ├── intro_ueb.twig │ │ ├── moderation_other_reason.twig │ │ ├── intro_end.twig │ │ ├── intro_bez.twig │ │ ├── outro.twig │ │ ├── moderation_amount_too_high.twig │ │ ├── intro_start.twig │ │ └── intro.twig │ ├── unsubscribe_hint.twig │ ├── subscription_request.twig │ ├── membership_application_cancellation_confirmation.twig │ ├── contact_confirm_to_user.twig │ └── subscription_confirmation │ │ └── body.twig │ ├── shared │ ├── email.twig │ ├── phone.twig │ ├── name_head_of_organization.twig │ ├── large_account_manager_name.twig │ ├── title_head_of_organization.twig │ ├── name_head_of_fundraising.twig │ ├── large_account_manager_department.twig │ ├── bank_account.twig │ ├── address_of_organization.twig │ ├── wikimedia_vision.twig │ ├── tax_id_organization.twig │ └── tax_id_organization_verbose.twig │ ├── data │ ├── honorifics.json │ ├── contact_categories.json │ ├── pages.json │ ├── validation.json │ ├── salutations.json │ ├── thank_you_content.json │ └── use_of_funds_content.json │ ├── messages │ ├── membershipTypes.json │ ├── paymentTypes.json │ ├── daysOfTheWeek.json │ ├── paymentProvider.json │ ├── paymentIntervals.json │ ├── pageTitles.json │ ├── paymentStatus.json │ ├── validations.json │ ├── useOfFundsMessages.json │ ├── siteMetadata.json │ └── mail.json │ └── web │ ├── pages │ ├── subscription_success.twig │ ├── subscription_moderation.twig │ ├── no_javascript.twig │ ├── contact_confirmation.twig │ ├── accessibility_statement.twig │ ├── imprint.twig │ └── privacy_protection.twig │ └── subscription │ └── confirmation.twig ├── .gitignore ├── resources ├── de_DE │ ├── bitcoin_button.png │ ├── Mitgliedsantrag_2021.pdf │ ├── Wikimedia_OWASP_Top_10.pdf │ ├── WMDE-application-of-funds-2018.png │ ├── WMDE-application-of-funds-diagram-2018.png │ ├── Mitglied_werden_bei_Wikimedia_Deutschland.pdf │ ├── Vereinfachter_Zuwendungsbescheid_Foerdergesellschaft.pdf │ ├── Vereinfachter_Zuwendungsbescheid_Wikimedia_Spenden.pdf │ └── Vereinfachter_Zuwendungsbescheid_Wikimedia_Mitgliedschaft.pdf ├── wikimedia_logo_black.png └── mail_provider_suggestions.json ├── data ├── features.json ├── allowed_terms.txt ├── white_words.txt ├── bad_words.txt └── banned_terms.txt ├── Makefile ├── tests ├── bootstrap.php ├── Validation │ ├── HonorificsTest.php │ ├── LocaleKeysTest.php │ ├── SalutationsTest.php │ └── RegExPatternValidationTest.php └── Fixtures │ └── JsonValidator.php ├── package.json ├── phpunit.xml.dist ├── .github └── dependabot.yml ├── .woodpecker └── deploy_content.yml ├── composer.json ├── bin └── extract_to_mediawiki ├── README.md └── LICENSE /i18n/de_DE/mail/donation_hint.twig: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /i18n/en_GB/mail/donation_hint.twig: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /i18n/de_DE/shared/email.twig: -------------------------------------------------------------------------------- 1 | E-Mail spenden@wikimedia.de -------------------------------------------------------------------------------- /i18n/de_DE/shared/phone.twig: -------------------------------------------------------------------------------- 1 | Telefon (030) 577 11 62-19 2 | -------------------------------------------------------------------------------- /i18n/en_GB/shared/email.twig: -------------------------------------------------------------------------------- 1 | Email spenden@wikimedia.de 2 | -------------------------------------------------------------------------------- /i18n/en_GB/shared/phone.twig: -------------------------------------------------------------------------------- 1 | Telephone (030) 577 11 62-19 2 | -------------------------------------------------------------------------------- /i18n/de_DE/shared/name_head_of_organization.twig: -------------------------------------------------------------------------------- 1 | Franziska Heine 2 | -------------------------------------------------------------------------------- /i18n/en_GB/shared/name_head_of_organization.twig: -------------------------------------------------------------------------------- 1 | Franziska Heine 2 | -------------------------------------------------------------------------------- /i18n/de_DE/shared/large_account_manager_name.twig: -------------------------------------------------------------------------------- 1 | Kristin Westermann 2 | -------------------------------------------------------------------------------- /i18n/en_GB/shared/large_account_manager_name.twig: -------------------------------------------------------------------------------- 1 | Kristin Westermann 2 | -------------------------------------------------------------------------------- /i18n/en_GB/shared/title_head_of_organization.twig: -------------------------------------------------------------------------------- 1 | Executive Director 2 | -------------------------------------------------------------------------------- /i18n/de_DE/mail/donation_confirmation/number.twig: -------------------------------------------------------------------------------- 1 | (Spendennummer {$ donation_id $}) -------------------------------------------------------------------------------- /i18n/de_DE/shared/name_head_of_fundraising.twig: -------------------------------------------------------------------------------- 1 | Till Mletzko 2 | Online-Fundraiser -------------------------------------------------------------------------------- /i18n/de_DE/shared/title_head_of_organization.twig: -------------------------------------------------------------------------------- 1 | Geschäftsführende Vorständin 2 | -------------------------------------------------------------------------------- /i18n/en_GB/shared/name_head_of_fundraising.twig: -------------------------------------------------------------------------------- 1 | Till Mletzko 2 | Online Fundraiser 3 | -------------------------------------------------------------------------------- /i18n/de_DE/shared/large_account_manager_department.twig: -------------------------------------------------------------------------------- 1 | Partnerschaften und Philanthropie 2 | -------------------------------------------------------------------------------- /i18n/en_GB/mail/donation_confirmation/number.twig: -------------------------------------------------------------------------------- 1 | (donation number {$ donation_id $}) 2 | -------------------------------------------------------------------------------- /i18n/en_GB/shared/large_account_manager_department.twig: -------------------------------------------------------------------------------- 1 | Partnerschaften und Philanthropie 2 | -------------------------------------------------------------------------------- /i18n/de_DE/mail/donation_confirmation/payment_interval_once.twig: -------------------------------------------------------------------------------- 1 | Ihre Spende ist abgeschlossen. -------------------------------------------------------------------------------- /i18n/en_GB/mail/donation_confirmation/payment_interval_once.twig: -------------------------------------------------------------------------------- 1 | Your donation has been completed. 2 | -------------------------------------------------------------------------------- /i18n/en_GB/data/honorifics.json: -------------------------------------------------------------------------------- 1 | { 2 | "" : "Kein Titel", 3 | "Dr." : "Dr.", 4 | "Prof." : "Prof." 5 | } 6 | -------------------------------------------------------------------------------- /i18n/de_DE/shared/address_of_organization.twig: -------------------------------------------------------------------------------- 1 | Wikimedia Deutschland e. V. 2 | Tempelhofer Ufer 23-24 3 | 10963 Berlin -------------------------------------------------------------------------------- /i18n/de_DE/shared/bank_account.twig: -------------------------------------------------------------------------------- 1 | Wikimedia Spendenkonto 2 | DE09370205000003287300 (IBAN) BFSWDE33XXX (BIC) 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | vendor/ 3 | secrets.txt 4 | tempOutput*.txt 5 | .phpunit.result.cache 6 | use-of-funds* 7 | thank-you* -------------------------------------------------------------------------------- /i18n/en_GB/shared/bank_account.twig: -------------------------------------------------------------------------------- 1 | Wikimedia donation account 2 | 3 | DE09370205000003287300 (IBAN) BFSWDE33XXX (BIC) 4 | -------------------------------------------------------------------------------- /i18n/de_DE/messages/membershipTypes.json: -------------------------------------------------------------------------------- 1 | { 2 | "sustaining": "Fördermitglied", 3 | "active": "aktives Mitglied" 4 | } 5 | -------------------------------------------------------------------------------- /i18n/en_GB/messages/membershipTypes.json: -------------------------------------------------------------------------------- 1 | { 2 | "sustaining": "Sponsoring Member", 3 | "active": "Active Member" 4 | } 5 | -------------------------------------------------------------------------------- /i18n/en_GB/shared/address_of_organization.twig: -------------------------------------------------------------------------------- 1 | Wikimedia Deutschland e. V. 2 | Tempelhofer Ufer 23-24 3 | 10963 Berlin 4 | Germany 5 | -------------------------------------------------------------------------------- /resources/de_DE/bitcoin_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wmde/fundraising-frontend-content/test/resources/de_DE/bitcoin_button.png -------------------------------------------------------------------------------- /resources/wikimedia_logo_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wmde/fundraising-frontend-content/test/resources/wikimedia_logo_black.png -------------------------------------------------------------------------------- /i18n/de_DE/data/honorifics.json: -------------------------------------------------------------------------------- 1 | { 2 | "" : "Kein Titel", 3 | "Dr." : "Dr.", 4 | "Prof." : "Prof.", 5 | "Prof. Dr." : "Prof. Dr." 6 | } 7 | -------------------------------------------------------------------------------- /i18n/de_DE/mail/donation_confirmation/paymenttype_external.twig: -------------------------------------------------------------------------------- 1 | Da Sie mit {$ payment_provider $} gespendet haben, müssen Sie nichts mehr machen. -------------------------------------------------------------------------------- /i18n/en_GB/mail/donation_confirmation/paymenttype_external.twig: -------------------------------------------------------------------------------- 1 | Since you donated via {$ payment_provider $}, you do not have to do anything else. 2 | -------------------------------------------------------------------------------- /resources/de_DE/Mitgliedsantrag_2021.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wmde/fundraising-frontend-content/test/resources/de_DE/Mitgliedsantrag_2021.pdf -------------------------------------------------------------------------------- /resources/de_DE/Wikimedia_OWASP_Top_10.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wmde/fundraising-frontend-content/test/resources/de_DE/Wikimedia_OWASP_Top_10.pdf -------------------------------------------------------------------------------- /i18n/de_DE/mail/donation_cancellation_confirmation.twig: -------------------------------------------------------------------------------- 1 | wir haben Ihre Spende mit der Nummer {$ donation_id $} wie gewünscht storniert. 2 | 3 | Herzliche Grüße -------------------------------------------------------------------------------- /i18n/de_DE/mail/donation_confirmation/payment_interval_recurring.twig: -------------------------------------------------------------------------------- 1 | Ihre erste Spende ist abgeschlossen. Alle weiteren Zahlungen werden automatisch abgebucht. -------------------------------------------------------------------------------- /i18n/de_DE/shared/wikimedia_vision.twig: -------------------------------------------------------------------------------- 1 | Stellen Sie sich eine Welt vor, in der jeder Mensch an der Menge allen 2 | Wissens frei teilhaben kann. Helfen Sie uns dabei! -------------------------------------------------------------------------------- /i18n/en_GB/mail/donation_confirmation/payment_interval_recurring.twig: -------------------------------------------------------------------------------- 1 | Your first donation has been completed. All future payments will be debited automatically. 2 | -------------------------------------------------------------------------------- /i18n/en_GB/mail/donation_cancellation_confirmation.twig: -------------------------------------------------------------------------------- 1 | We have cancelled your donation with the number {$ donation_id $} as requested by you. 2 | 3 | Kind regards, 4 | -------------------------------------------------------------------------------- /resources/de_DE/WMDE-application-of-funds-2018.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wmde/fundraising-frontend-content/test/resources/de_DE/WMDE-application-of-funds-2018.png -------------------------------------------------------------------------------- /i18n/en_GB/shared/wikimedia_vision.twig: -------------------------------------------------------------------------------- 1 | Imagine a world where every person can freely participate in the total of all available knowledge. 2 | You can help us to get there! 3 | -------------------------------------------------------------------------------- /i18n/de_DE/mail/donation_confirmation/payment_intro.twig: -------------------------------------------------------------------------------- 1 | wir danken Ihnen für Ihre soeben getätigte {$ donation_interval $}e Spende (Nr. {$ donation_id $}) von {$ formatted_amount $}. 2 | -------------------------------------------------------------------------------- /i18n/en_GB/mail/donation_confirmation/receipt_opted_out.twig: -------------------------------------------------------------------------------- 1 | You can also use this channel to contact us at a later stage if you would like us to send you a donation receipt after all. 2 | -------------------------------------------------------------------------------- /resources/de_DE/WMDE-application-of-funds-diagram-2018.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wmde/fundraising-frontend-content/test/resources/de_DE/WMDE-application-of-funds-diagram-2018.png -------------------------------------------------------------------------------- /i18n/de_DE/messages/paymentTypes.json: -------------------------------------------------------------------------------- 1 | { 2 | "UEB": "Banküberweisung", 3 | "BEZ": "Lastschrift", 4 | "PPL": "PayPal", 5 | "MCP": "Kreditkarte", 6 | "SUB": "Sofort-Überweisung" 7 | } 8 | -------------------------------------------------------------------------------- /i18n/en_GB/mail/donation_confirmation/payment_intro.twig: -------------------------------------------------------------------------------- 1 | Thank you for donating an amount of {$ formatted_amount $} {$ donation_interval $}. Your donation number is (No. {$ donation_id $}). 2 | -------------------------------------------------------------------------------- /i18n/en_GB/messages/paymentTypes.json: -------------------------------------------------------------------------------- 1 | { 2 | "UEB": "Bank Transfer", 3 | "BEZ": "Direct Debit", 4 | "PPL": "PayPal", 5 | "MCP": "Credit Card", 6 | "SUB": "Sofort Bank Transfer" 7 | } 8 | -------------------------------------------------------------------------------- /resources/de_DE/Mitglied_werden_bei_Wikimedia_Deutschland.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wmde/fundraising-frontend-content/test/resources/de_DE/Mitglied_werden_bei_Wikimedia_Deutschland.pdf -------------------------------------------------------------------------------- /i18n/de_DE/messages/daysOfTheWeek.json: -------------------------------------------------------------------------------- 1 | { 2 | "1": "Montag", 3 | "2": "Dienstag", 4 | "3": "Mittwoch", 5 | "4": "Donnerstag", 6 | "5": "Freitag", 7 | "6": "Samstag", 8 | "7": "Sonntag" 9 | } -------------------------------------------------------------------------------- /i18n/en_GB/mail/donation_confirmation/paymenttype_banktransfer_once.twig: -------------------------------------------------------------------------------- 1 | Please enter the reference as the unique identifier of your donation by bank transfer to ensure that it is processed correctly. 2 | -------------------------------------------------------------------------------- /i18n/en_GB/messages/daysOfTheWeek.json: -------------------------------------------------------------------------------- 1 | { 2 | "1": "Monday", 3 | "2": "Tuesday", 4 | "3": "Wednesday", 5 | "4": "Thursday", 6 | "5": "Friday", 7 | "6": "Saturday", 8 | "7": "Sunday" 9 | } 10 | -------------------------------------------------------------------------------- /i18n/de_DE/mail/donation_confirmation/paymenttype_banktransfer_once.twig: -------------------------------------------------------------------------------- 1 | Bitte geben Sie den Verwendungszweck als eindeutige Kennung Ihrer Überweisungsspende an, damit die korrekte Zuordnung sichergestellt ist. -------------------------------------------------------------------------------- /resources/de_DE/Vereinfachter_Zuwendungsbescheid_Foerdergesellschaft.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wmde/fundraising-frontend-content/test/resources/de_DE/Vereinfachter_Zuwendungsbescheid_Foerdergesellschaft.pdf -------------------------------------------------------------------------------- /resources/de_DE/Vereinfachter_Zuwendungsbescheid_Wikimedia_Spenden.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wmde/fundraising-frontend-content/test/resources/de_DE/Vereinfachter_Zuwendungsbescheid_Wikimedia_Spenden.pdf -------------------------------------------------------------------------------- /i18n/de_DE/mail/donation_confirmation/receipt_opted_out.twig: -------------------------------------------------------------------------------- 1 | Über diesen Weg können Sie uns natürlich auch noch nachträglich mitteilen, falls Sie doch noch eine Zuwendungsbescheinigung von uns erhalten möchten. 2 | -------------------------------------------------------------------------------- /i18n/en_GB/mail/membership_application_confirmation_active/receipt.twig: -------------------------------------------------------------------------------- 1 | You can also use this channel to contact us if you decide you would like us to send you a donation receipt for your membership fee after all. 2 | -------------------------------------------------------------------------------- /i18n/en_GB/mail/membership_application_confirmation_active/contact.twig: -------------------------------------------------------------------------------- 1 | If you have any questions you can also contact us in German or English at any time via mitglieder@wikimedia.de or by calling (030) 577 11 62-19. 2 | -------------------------------------------------------------------------------- /i18n/en_GB/mail/membership_application_confirmation_sustaining/receipt.twig: -------------------------------------------------------------------------------- 1 | You can also use this channel to contact us if you decide you would like us to send you a donation receipt for your membership fee after all. 2 | -------------------------------------------------------------------------------- /resources/de_DE/Vereinfachter_Zuwendungsbescheid_Wikimedia_Mitgliedschaft.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wmde/fundraising-frontend-content/test/resources/de_DE/Vereinfachter_Zuwendungsbescheid_Wikimedia_Mitgliedschaft.pdf -------------------------------------------------------------------------------- /i18n/en_GB/mail/donation_confirmation/needs_moderation.twig: -------------------------------------------------------------------------------- 1 | Your donation in the amount of {$ formatted_amount $} needs moderation. 2 | Before we continue to process your donation further, we will contact you once again. 3 | -------------------------------------------------------------------------------- /i18n/de_DE/mail/donation_confirmation/needs_moderation.twig: -------------------------------------------------------------------------------- 1 | Ihre Spende in Höhe von {$ formatted_amount $} wurde zur Überprüfung vorgemerkt. 2 | Bevor wir Ihre Spende weiter verarbeiten, werden wir Sie noch einmal kontaktieren. 3 | -------------------------------------------------------------------------------- /i18n/de_DE/mail/membership_application_confirmation_active/contact.twig: -------------------------------------------------------------------------------- 1 | Natürlich kannst du dich jederzeit über mitglieder@wikimedia.de oder unter (030) 577 11 62-19 an uns wenden, wenn du Fragen, beispielsweise zu deiner Mitgliedschaft, hast. 2 | -------------------------------------------------------------------------------- /i18n/de_DE/mail/membership_application_confirmation_active/receipt.twig: -------------------------------------------------------------------------------- 1 | Über diesen Weg kannst du uns natürlich auch noch nachträglich mitteilen, dass du von uns doch eine Zuwendungsbescheinigung für deinen Mitgliedsbeitrag erhalten möchtest. 2 | -------------------------------------------------------------------------------- /i18n/de_DE/mail/membership_application_confirmation_sustaining/receipt.twig: -------------------------------------------------------------------------------- 1 | Über diesen Weg können Sie uns natürlich auch noch nachträglich mitteilen, dass Sie von uns doch eine Zuwendungsbescheinigung für Ihren Mitgliedsbeitrag erhalten möchten. -------------------------------------------------------------------------------- /data/features.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "feedback-form", 4 | "active": false, 5 | "description": "Show help/feedback button and form on donation page", 6 | "ticket": "https://phabricator.wikimedia.org/T323982" 7 | } 8 | ] 9 | 10 | 11 | -------------------------------------------------------------------------------- /i18n/de_DE/mail/membership_application_confirmation_sustaining/contact.twig: -------------------------------------------------------------------------------- 1 | Natürlich können auch Sie sich jederzeit über mitglieder@wikimedia.de oder unter (030) 577 11 62-19 an uns wenden, wenn Sie Fragen, beispielsweise zu Ihrer Mitgliedschaft, haben. 2 | -------------------------------------------------------------------------------- /i18n/de_DE/mail/donation_confirmation/creditcard_interval_notice.twig: -------------------------------------------------------------------------------- 1 | PS: Bitte beachten Sie, dass Ihre regelmäßige Spende mit dem Ablaufdatum Ihrer Kreditkarte ausläuft. Um die Unterstützung danach fortzuführen, können Sie einfach eine neue Spende einrichten. -------------------------------------------------------------------------------- /i18n/de_DE/web/pages/subscription_moderation.twig: -------------------------------------------------------------------------------- 1 |

Herzlichen Dank für Ihr Interesse an der Förderung von Wikipedia und Freiem Wissen!

2 |

Ihre Anfrage wird nun geprüft. Nach Abschluss der Prüfung erhalten Sie eine E-Mail mit dem weiterem Vorgehen.

3 | -------------------------------------------------------------------------------- /i18n/en_GB/mail/membership_application_confirmation_sustaining/contact.twig: -------------------------------------------------------------------------------- 1 | Of course, you can also contact us either in German or English at any time via mitglieder@wikimedia.de or by calling (030) 577 11 62-19 if you have any questions, for example about your membership. 2 | -------------------------------------------------------------------------------- /i18n/en_GB/web/pages/subscription_success.twig: -------------------------------------------------------------------------------- 1 |

2 | Thank you for your interest in a membership at Wikimedia Deutschland. 3 | In the next days you will receive two emails with information about our projects and how we support Wikipedia and free knowledge. 4 |

5 | -------------------------------------------------------------------------------- /i18n/en_GB/mail/donation_confirmation/creditcard_interval_notice.twig: -------------------------------------------------------------------------------- 1 | PS: Please note that the regular payment of your donation ends with the expiration date of your credit card. In order to continue your support beyond that date, you can simply start a new recurring donation. 2 | -------------------------------------------------------------------------------- /i18n/en_GB/mail/donation_confirmation/paymenttype_banktransfer_interval.twig: -------------------------------------------------------------------------------- 1 | Since you would like to support us {$ donation_interval $}, please place a standing order, stating the specified reference as the unique identifier of your donation to ensure that it is processed correctly. 2 | -------------------------------------------------------------------------------- /i18n/de_DE/mail/donation_confirmation/paymenttype_banktransfer_interval.twig: -------------------------------------------------------------------------------- 1 | Da Sie uns {$ donation_interval $} unterstützen möchten, richten Sie bitte einen Dauerauftrag ein und geben den genannten Verwendungszweck als eindeutige Kennung Ihrer Spende an, damit die korrekte Zuordnung sichergestellt ist. -------------------------------------------------------------------------------- /i18n/de_DE/mail/membership_application_confirmation_active/intro_end.twig: -------------------------------------------------------------------------------- 1 | Sobald deine Mitgliedschaft begonnen hat, halten wir dich auch mit unserem Newsletter Wikiversum über interessante Veranstaltungen, Projektneuigkeiten oder andere wichtige Ereignisse rund um Freies Wissen auf dem Laufenden. 2 | -------------------------------------------------------------------------------- /i18n/de_DE/mail/membership_application_confirmation_sustaining/intro_end.twig: -------------------------------------------------------------------------------- 1 | Sobald Ihre Mitgliedschaft begonnen hat, halten wir Sie auch mit unserem Newsletter Wikiversum über interessante Veranstaltungen, Projektneuigkeiten oder andere wichtige Ereignisse rund um Freies Wissen auf dem Laufenden. 2 | -------------------------------------------------------------------------------- /i18n/en_GB/mail/donation_confirmation/receipt_support.twig: -------------------------------------------------------------------------------- 1 | You are important to us, and we do not want to leave any questions about your 2 | {$ pluralize (donation_interval, 'donations', 'donations', 'donation') $} unanswered. Therefore, you can contact us at any time via spenden@wikimedia.de. 3 | -------------------------------------------------------------------------------- /i18n/en_GB/web/pages/subscription_moderation.twig: -------------------------------------------------------------------------------- 1 |

2 | Thank you for your interest in supporting Wikipedia and free knowledge! 3 |

4 | 5 |

6 | We are now processing your enquiry. Once this is completed, you will receive an email that 7 | tells you all about the next steps. 8 |

9 | -------------------------------------------------------------------------------- /i18n/de_DE/mail/donation_confirmation/receipt_support.twig: -------------------------------------------------------------------------------- 1 | Sie sind uns wichtig und es sollen keine Fragen rund um Ihre {$ pluralize(donation_interval, 'Spenden', 'Spenden', 'Spende') $} offen bleiben. Daher können Sie sich jederzeit über spenden@wikimedia.de oder unter (030) 577 11 62-19 an uns wenden. 2 | -------------------------------------------------------------------------------- /i18n/en_GB/mail/donation_confirmation/moderation_other_reason.twig: -------------------------------------------------------------------------------- 1 | Thank you for your donation of {$ formatted_amount $}. 2 | Our automatic check put your donation on moderation. We will take a look at this promptly and contact you once again. 3 | After that, we continue to process your donation further. 4 | -------------------------------------------------------------------------------- /i18n/en_GB/web/subscription/confirmation.twig: -------------------------------------------------------------------------------- 1 |

2 | Thank you for verifying your email address! 3 |

4 | 5 |

6 | We have stored your email address in our system and have just sent you a confirmation email. 7 |

8 | 9 |

10 | Thank you very much for wanting to support us! 11 |

12 | -------------------------------------------------------------------------------- /i18n/de_DE/web/pages/subscription_success.twig: -------------------------------------------------------------------------------- 1 |

2 | Herzlichen Dank für Ihr Interesse an einer Mitgliedschaft bei Wikimedia Deutschland. 3 | In den kommenden Tagen erhalten Sie zwei E-Mails mit umfassenden Informationen zu unseren Projekten 4 | und wie wir Wikipedia und Freies Wissen in Deutschland fördern. 5 |

6 | -------------------------------------------------------------------------------- /i18n/de_DE/mail/donation_confirmation/moderation_other_reason.twig: -------------------------------------------------------------------------------- 1 | vielen Dank für Ihre Spende in Höhe von {$ formatted_amount $}. 2 | Unsere automatische Überprüfung hat Ihre Spende auf Moderation gesetzt. Wir werden uns das zeitnah anschauen und uns bei Ihnen nochmal melden. 3 | Dann können wir Ihre Spende weiter verarbeiten. 4 | -------------------------------------------------------------------------------- /i18n/de_DE/messages/paymentProvider.json: -------------------------------------------------------------------------------- 1 | { 2 | "credit_card_item_name_donation": "Ich spende %interval%", 3 | "paypal_item_name_donation": "Ihre Spende an Wikimedia", 4 | "paypal_item_name_membership": "Ihre Mitgliedschaft bei Wikimedia Deutschland e. V.", 5 | "sofort_item_name_donation": "Ihre Spende an Wikimedia" 6 | } 7 | -------------------------------------------------------------------------------- /i18n/en_GB/mail/donation_confirmation/greetings.twig: -------------------------------------------------------------------------------- 1 | With your committed support, you are helping to fund Wikipedia. Together with the volunteers who write for Wikipedia, we facilitate free access to knowledge. And we are delighted that you are taking part. 2 | 3 | Best wishes from Berlin and have a pleasant {$ day_of_the_week $}. 4 | -------------------------------------------------------------------------------- /i18n/en_GB/messages/paymentProvider.json: -------------------------------------------------------------------------------- 1 | { 2 | "credit_card_item_name_donation": "I will donate %interval%", 3 | "paypal_item_name_donation": "Your donation to Wikimedia", 4 | "paypal_item_name_membership": "Your membership with Wikimedia Deutschland e. V.", 5 | "sofort_item_name_donation": "Your donation to Wikimedia" 6 | } 7 | -------------------------------------------------------------------------------- /i18n/de_DE/mail/donation_confirmation/paymenttype_directdebit.twig: -------------------------------------------------------------------------------- 1 | In wenigen Tagen werden wir die {$ pluralize(donation_interval, 'erste Spende', 'erste Spende', 'Spende') $} von Ihrem Konto abbuchen. Vorher erhalten Sie von uns per E-Mail die Vorankündigung Ihres SEPA-Lastschriftmandats. Dort ist auch Ihre Mandatsreferenznummer enthalten. -------------------------------------------------------------------------------- /i18n/de_DE/mail/donation_confirmation/greetings.twig: -------------------------------------------------------------------------------- 1 | Mit Ihrem Engagement helfen Sie, Wikipedia zu finanzieren. Gemeinsam mit den ehrenamtlichen Autorinnen und Autoren sorgen wir für einen freien Zugang zu Wissen. Es freut uns, dass Sie dabei sind. 2 | 3 | Freundliche Grüße aus Berlin und Ihnen noch einen angenehmen {$ day_of_the_week $}. 4 | -------------------------------------------------------------------------------- /i18n/de_DE/shared/tax_id_organization.twig: -------------------------------------------------------------------------------- 1 | Wikimedia Deutschland — Gesellschaft zur Förderung Freien Wissens e. V. Eingetragen im Vereinsregister des Amtsgerichts Charlottenburg, VR 23855 B. Als gemeinnützig anerkannt durch das Finanzamt für Körperschaften I Berlin, Steuernummer 27/029/42207. Geschäftsführende Vorständin: Franziska Heine. 2 | -------------------------------------------------------------------------------- /i18n/en_GB/mail/membership_application_confirmation_active/intro_ueb.twig: -------------------------------------------------------------------------------- 1 | You will also receive the information required in order to transfer your membership fee. The amount you have selected is {$ formatted_amount $}. You should transfer this amount every {$ donation_interval $}. A standing order with your bank is the easiest way to handle this. -------------------------------------------------------------------------------- /i18n/de_DE/shared/tax_id_organization_verbose.twig: -------------------------------------------------------------------------------- 1 | Wikimedia Deutschland — Gesellschaft zur Förderung Freien Wissens e. V. Eingetragen im Vereinsregister des Amtsgerichts Charlottenburg, VR 23855 B. Als gemeinnützig anerkannt durch das Finanzamt für Körperschaften I Berlin, Steuernummer 27/029/42207. Geschäftsführende Vorständin: Franziska Heine. 2 | -------------------------------------------------------------------------------- /i18n/en_GB/mail/membership_application_confirmation_sustaining/intro_ueb.twig: -------------------------------------------------------------------------------- 1 | You will also receive the information required in order to transfer your membership fee. The amount you have selected is {$ formatted_amount $}. You should transfer this amount every {$ donation_interval $}. A standing order with your bank is the easiest way to handle this. -------------------------------------------------------------------------------- /i18n/de_DE/mail/membership_application_confirmation_active/moderation_other_reason.twig: -------------------------------------------------------------------------------- 1 | vielen Dank für deinen Antrag auf {$ membership_type $} in Höhe von {$ formatted_amount $}. 2 | Unsere automatische Überprüfung hat deinen Antrag auf {$ membership_type $} auf Moderation gesetzt. Wir werden uns das zeitnah anschauen und uns bei dir nochmal melden. 3 | -------------------------------------------------------------------------------- /i18n/de_DE/mail/membership_application_confirmation_sustaining/moderation_other_reason.twig: -------------------------------------------------------------------------------- 1 | vielen Dank für Ihren Antrag auf {$ membership_type $} in Höhe von {$ formatted_amount $}. 2 | Unsere automatische Überprüfung hat Ihren Antrag auf {$ membership_type $} auf Moderation gesetzt. Wir werden uns das zeitnah anschauen und uns bei Ihnen nochmal melden. 3 | -------------------------------------------------------------------------------- /i18n/de_DE/web/subscription/confirmation.twig: -------------------------------------------------------------------------------- 1 |

2 | Vielen Dank für die Verifizierung Ihrer E-Mailadresse! 3 |

4 | 5 |

6 | Wir haben Ihre E-Mailadresse in unserem System gespeichert und soeben eine Bestätigungsemail an Sie 7 | versandt. 8 |

9 | 10 |

11 | Herzlichen Dank für Ihre Bereitschaft uns zu unterstützen! 12 |

13 | -------------------------------------------------------------------------------- /i18n/de_DE/web/membership/application/paymenttype_directdebit_mandate.twig: -------------------------------------------------------------------------------- 1 |

2 | Gläubiger-ID Wikimedia Deutschland e. V.: DE39ZZZ00000029337 3 |

4 |

5 | Die Mandatsreferenznummer zur eindeutigen Identifizierung des SEPA-Lastschriftmandats wird Ihnen separat per E-Mail mitgeteilt. 6 | Ihre Lastschrift wird als SEPA-Rahmenmandat behandelt. 7 |

8 | -------------------------------------------------------------------------------- /i18n/en_GB/mail/donation_confirmation/paymenttype_directdebit.twig: -------------------------------------------------------------------------------- 1 | In a few days, we will debit your account with the {$ pluralize(donation_interval, 'first donation', 'first donation', 'donation') $}. Before we do that, we will send you an email with the advance notification of your SEPA direct debit mandate, which also includes our mandate reference number. 2 | -------------------------------------------------------------------------------- /i18n/en_GB/mail/membership_application_confirmation_active/moderation_other_reason.twig: -------------------------------------------------------------------------------- 1 | Thank you for your commitment to become a member of Wikimedia Deutschland. 2 | Our automatic check put your membership application on moderation. We will take a look at this promptly and contact you once again. 3 | After that, we continue to process your membership further. 4 | -------------------------------------------------------------------------------- /i18n/en_GB/mail/membership_application_confirmation_active/intro_bez.twig: -------------------------------------------------------------------------------- 1 | Your first membership fee will usually be debited in a few weeks. {$ formatted_amount $} will then be debited from your account {$ donation_interval $}. Before we debit your account, you will receive advance notification of your SEPA direct debit mandate along with the mandate reference number. 2 | -------------------------------------------------------------------------------- /i18n/en_GB/mail/membership_application_confirmation_sustaining/moderation_other_reason.twig: -------------------------------------------------------------------------------- 1 | Thank you for your commitment to become a member of Wikimedia Deutschland. 2 | Our automatic check put your membership application on moderation. We will take a look at this promptly and contact you once again. 3 | After that, we continue to process your membership further. 4 | -------------------------------------------------------------------------------- /i18n/de_DE/mail/membership_application_confirmation_active/intro_ueb.twig: -------------------------------------------------------------------------------- 1 | Im Willkommensschreiben erhältst du außerdem die zur Überweisung des Mitgliedsbeitrags nötigen Daten. Du hast vorhin als Mitgliedsbeitrag {$ formatted_amount $} Euro ausgewählt. Diesen Betrag möchtest du dann {$ donation_interval $} überweisen. Am besten richtest du hierfür einen Dauerauftrag ein. 2 | -------------------------------------------------------------------------------- /i18n/de_DE/mail/membership_application_confirmation_sustaining/intro_ueb.twig: -------------------------------------------------------------------------------- 1 | Im Willkommensschreiben erhalten Sie außerdem die zur Überweisung des Mitgliedsbeitrags nötigen Daten. Sie haben vorhin als Mitgliedsbeitrag {$ formatted_amount $} Euro ausgewählt. Diesen Betrag möchten Sie dann {$ donation_interval $} überweisen. Am besten richten Sie hierfür einen Dauerauftrag ein. -------------------------------------------------------------------------------- /i18n/en_GB/mail/donation_confirmation/moderation_amount_too_high.twig: -------------------------------------------------------------------------------- 1 | Thank you for your generous donation of {$ formatted_amount $}. 2 | We want to make sure that the donation is correct. Sometimes donations with such a high amount are made by mistake or are misstatements. 3 | Therefore, we will contact you once again before we continue to process your donation further. 4 | -------------------------------------------------------------------------------- /i18n/en_GB/mail/membership_application_confirmation_active/intro_end.twig: -------------------------------------------------------------------------------- 1 | Once your membership has begun, we will also keep you up to date with our Wikiversum newsletter about interesting events, project news, and other important news related to free knowledge. 2 | 3 | Please note that after this confirmation email all of our further standard communication will be in German only. 4 | -------------------------------------------------------------------------------- /i18n/en_GB/mail/membership_application_confirmation_sustaining/intro_end.twig: -------------------------------------------------------------------------------- 1 | Once your membership has begun, we will also keep you up to date with our Wikiversum newsletter about interesting events, project news, or other important news related to free knowledge. 2 | 3 | Please note that after this confirmation e-Mail all of our further standard communication is in German only. 4 | -------------------------------------------------------------------------------- /i18n/de_DE/mail/donation_confirmation/moderation_amount_too_high.twig: -------------------------------------------------------------------------------- 1 | vielen Dank für Ihre außergewöhnliche Spende in Höhe von {$ formatted_amount $}. 2 | Wir möchten jedoch zuerst auf Nummer sicher gehen. Manchmal werden Spenden in solcher Höhe aus Versehen getätigt oder bewusst falsch angegeben. 3 | Daher werden wir Sie zeitnah kontaktieren, bevor wir Ihre Spende weiter verarbeiten. 4 | -------------------------------------------------------------------------------- /i18n/en_GB/mail/membership_application_confirmation_sustaining/intro_bez.twig: -------------------------------------------------------------------------------- 1 | The first membership fee will usually be debited a few weeks later. You have just selected {$ formatted_amount $} {$ donation_interval $} as your membership fee. Before we debit your account, you will, of course, receive advance notification of your SEPA direct debit mandate along with the mandate reference number. 2 | -------------------------------------------------------------------------------- /i18n/de_DE/mail/unsubscribe_hint.twig: -------------------------------------------------------------------------------- 1 | Wenn Sie keine weiteren E-Mails zur Spendenerinnerung (an: {$ subscription_email $}) empfangen möchten, antworten Sie auf diese E-Mail mit der Betreffzeile "Abmelden". 2 | 3 | Dieser Newsletter wird Ihnen ausschließlich mit Ihrem Einverständnis zugesendet. Hier finden Sie Informationen zum Datenschutz: 4 | <{$ privacy_protection_link $}> -------------------------------------------------------------------------------- /i18n/en_GB/messages/paymentIntervals.json: -------------------------------------------------------------------------------- 1 | { 2 | "paytext_cc": "I will donate", 3 | "0": "once", 4 | "1": "monthly", 5 | "3": "quarterly", 6 | "6": "twice yearly", 7 | "12": "annually", 8 | "payment_interval_0": "once", 9 | "payment_interval_1": "monthly", 10 | "payment_interval_3": "quarterly", 11 | "payment_interval_6": "twice yearly", 12 | "payment_interval_12": "annually" 13 | } 14 | -------------------------------------------------------------------------------- /i18n/en_GB/mail/membership_application_confirmation_active/outro.twig: -------------------------------------------------------------------------------- 1 | With your ongoing commitment to Wikipedia, you are setting an important example. Together with our volunteer authors, we strive for a world in which everyone can share in the knowledge of humanity. It is very valuable to us to have you on our side! 2 | 3 | Best wishes from Berlin, and have a pleasant {$ day_of_the_week $}. Until next time! 4 | -------------------------------------------------------------------------------- /i18n/en_GB/mail/membership_application_confirmation_sustaining/outro.twig: -------------------------------------------------------------------------------- 1 | With your ongoing commitment to Wikipedia, you are setting an important example. Together with our volunteer authors, we strive for a world in which everyone can share in the knowledge of humanity. It is very valuable to us to have you on our side! 2 | 3 | Best wishes from Berlin, have a pleasant {$ day_of_the_week $} and until the next time. 4 | -------------------------------------------------------------------------------- /i18n/en_GB/mail/unsubscribe_hint.twig: -------------------------------------------------------------------------------- 1 | If you do not wish to receive any further emails reminding you of opportunities to donate (to: {$ subscription_email $}), please reply to this email address spenden@wikimedia.de, entering “Unsubscribe” in the subject line. 2 | 3 | This newsletter is only sent to you with your consent. The following link informs you how we handle data privacy: 4 | <{$ privacy_protection_link $}> 5 | -------------------------------------------------------------------------------- /i18n/en_GB/shared/tax_id_organization.twig: -------------------------------------------------------------------------------- 1 | Wikimedia Deutschland - Gesellschaft zur Förderung Freien Wissens e. V. Entered into the register of associations of the district court of Berlin-Charlottenburg with the registration number VR 23855 B. Recognised as a nonprofit organisation by the tax office for corporations (Finanzamt für Körperschaften I) Berlin, tax number 27/029/42207. Executive Director: Franziska Heine 2 | -------------------------------------------------------------------------------- /i18n/de_DE/messages/paymentIntervals.json: -------------------------------------------------------------------------------- 1 | { 2 | "paytext_cc": "Ich spende", 3 | "0": "einmalig", 4 | "1": "monatlich", 5 | "3": "vierteljährlich", 6 | "6": "halbjährlich", 7 | "12": "jährlich", 8 | "payment_interval_0": "einmalig", 9 | "payment_interval_1": "monatlich", 10 | "payment_interval_3": "vierteljährlich", 11 | "payment_interval_6": "halbjährlich", 12 | "payment_interval_12": "jährlich" 13 | } 14 | -------------------------------------------------------------------------------- /i18n/en_GB/shared/tax_id_organization_verbose.twig: -------------------------------------------------------------------------------- 1 | Wikimedia Deutschland - Gesellschaft zur Förderung Freien Wissens e. V. Entered into the register of associations of the district court of Berlin-Charlottenburg with the registration number VR 23855 B. Recognised as a nonprofit organisation by the tax office for corporations (Finanzamt für Körperschaften I) Berlin, tax number 27/029/42207. Executive Director: Franziska Heine 2 | -------------------------------------------------------------------------------- /i18n/de_DE/mail/membership_application_confirmation_active/intro_bez.twig: -------------------------------------------------------------------------------- 1 | Einige Wochen später erfolgt in der Regel der Einzug des ersten Mitgliedsbeitrags. Du hast vorhin als Mitgliedsbeitrag {$ formatted_amount $} ausgewählt. Dieser Betrag soll dann {$ donation_interval $} abgebucht werden. Bevor wir dein Konto belasten, erhältst du natürlich eine Vorankündigung deines SEPA-Lastschriftmandats mitsamt der Mandatsreferenznummer. 2 | 3 | -------------------------------------------------------------------------------- /i18n/de_DE/mail/membership_application_confirmation_sustaining/intro_bez.twig: -------------------------------------------------------------------------------- 1 | Einige Wochen später erfolgt in der Regel der Einzug des ersten Mitgliedsbeitrags. Sie haben vorhin als Mitgliedsbeitrag {$ formatted_amount $} ausgewählt. Dieser Betrag soll dann {$ donation_interval $} abgebucht werden. Bevor wir Ihr Konto belasten, erhalten Sie natürlich eine Vorankündigung Ihres SEPA-Lastschriftmandats mitsamt der Mandatsreferenznummer. 2 | -------------------------------------------------------------------------------- /i18n/en_GB/mail/donation_confirmation/paymenttype_banktransfer.twig: -------------------------------------------------------------------------------- 1 | Thank you for deciding to donate {$ donation_interval $}. Your donation number is {$ donation_id $}). You are almost there. If you have not done so yet, please transfer the amount of {$ formatted_amount $} to the following bank account: 2 | 3 | * Wikimedia e. V. 4 | * IBAN: DE09 3702 0500 0003 2873 00 5 | * BIC: BFSWDE33XXX 6 | * Reference: {$ bank_transfer_code $} 7 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | BUILD_DIR := $(PWD) 2 | 3 | setup: install 4 | 5 | install: 6 | docker run --rm -v $(BUILD_DIR):/app -w /app composer install 7 | 8 | update: 9 | docker run --rm -v $(BUILD_DIR):/app -w /app composer update 10 | 11 | ci: 12 | docker run --rm -v $(BUILD_DIR):/app -w /app composer ci 13 | 14 | test: 15 | docker run --rm -v $(BUILD_DIR):/app -w /app composer test 16 | 17 | .PHONY: setup test ci install update 18 | -------------------------------------------------------------------------------- /i18n/de_DE/messages/pageTitles.json: -------------------------------------------------------------------------------- 1 | { 2 | "contact_confirmation": "Kontakt", 3 | "imprint": "Impressum", 4 | "privacy_protection": "Datenschutz", 5 | "supporters": "Hall of Fame", 6 | "subscription_success": "Danke für Ihr Interesse", 7 | "subscription_moderation": "Vielen Dank!", 8 | "use_of_resources": "Wohin geht meine Spende?", 9 | "accessibility_statement": "Barrierefreiheitserklärung" 10 | } 11 | -------------------------------------------------------------------------------- /i18n/de_DE/web/pages/no_javascript.twig: -------------------------------------------------------------------------------- 1 |

2 | Diese Seite benötigt JavaScript 3 | um richtig zu funktionieren. Leider haben Sie dieses deaktiviert. 4 |

5 | 6 |

7 | Sie können gerne per Überweisung spenden. Nutzen Sie bitte folgende Bankverbindung:

8 | Wikimedia e. V.
9 | IBAN: DE09 3702 0500 0003 2873 00
10 | BIC: BFSWDE33XXX 11 |

12 | -------------------------------------------------------------------------------- /i18n/en_GB/messages/pageTitles.json: -------------------------------------------------------------------------------- 1 | { 2 | "contact_confirmation": "Contact", 3 | "imprint": "Legal notice", 4 | "privacy_protection": "Privacy Policy", 5 | "supporters": "Hall of Fame", 6 | "subscription_success": "Thank you for your interest", 7 | "subscription_moderation": "Thank You!", 8 | "use_of_resources": "How are the funds used?", 9 | "accessibility_statement": "Accessibility Statement" 10 | } 11 | -------------------------------------------------------------------------------- /tests/bootstrap.php: -------------------------------------------------------------------------------- 1 | 2 | This website needs JavaScript to 3 | function properly. Unfortunately, you have disabled JavaScript. 4 |

5 | 6 |

7 | You can still donate via bank transfer. Please use the following account details for 8 | this purpose:

9 | Wikimedia e. V.
10 | IBAN: DE09 3702 0500 0003 2873 00
11 | BIC: BFSWDE33XXX 12 |

13 | -------------------------------------------------------------------------------- /i18n/de_DE/data/pages.json: -------------------------------------------------------------------------------- 1 | { 2 | "contact_confirmation": "Kontakt_Bestaetigung", 3 | "imprint": "Impressum", 4 | "privacy_protection": "Datenschutz", 5 | "supporters": "hall-of-fame", 6 | "subscription_success": "Subscription_Success", 7 | "subscription_moderation": "Subscription_Moderation", 8 | "use_of_resources": "Transparenz", 9 | "faq": "Häufige Fragen", 10 | "accessibility_statement": "accessibility-statement" 11 | } 12 | -------------------------------------------------------------------------------- /i18n/en_GB/data/pages.json: -------------------------------------------------------------------------------- 1 | { 2 | "contact_confirmation": "Kontakt_Bestaetigung", 3 | "imprint": "Impressum", 4 | "privacy_protection": "Datenschutz", 5 | "supporters": "hall-of-fame", 6 | "subscription_success": "Subscription_Success", 7 | "subscription_moderation": "Subscription_Moderation", 8 | "use_of_resources": "Transparenz", 9 | "faq": "Häufige Fragen", 10 | "accessibility_statement": "accessibility-statement" 11 | } 12 | -------------------------------------------------------------------------------- /i18n/de_DE/data/contact_categories.json: -------------------------------------------------------------------------------- 1 | { 2 | "contact_topic_1": "Zuwendungsbescheinigung benötigt", 3 | "contact_topic_2": "Korrektur Zuwendungsbescheinigung", 4 | "contact_topic_3": "Änderung meiner Adresse/Emailadresse", 5 | "contact_topic_4": "Beendigung meiner Zuwendungen", 6 | "contact_topic_5": "Änderung meiner Bankverbindung", 7 | "contact_topic_6": "Fragen zu meiner Mitgliedschaft/Spende", 8 | "contact_topic_7": "Sonstiges" 9 | } 10 | -------------------------------------------------------------------------------- /i18n/de_DE/mail/donation_confirmation/paymenttype_banktransfer.twig: -------------------------------------------------------------------------------- 1 | wir danken Ihnen für Ihre soeben getätigte {$ donation_interval $}e Spendenzusage (Nr. {$ donation_id $}). Sie haben es fast geschafft. Sofern Sie nicht bereits überwiesen haben, bitten wir Sie Ihre Spende über {$ formatted_amount $} auf folgendes Konto zu überweisen: 2 | 3 | * Kontoinhaberin: Wikimedia e. V. 4 | * IBAN: DE09 3702 0500 0003 2873 00 5 | * BIC: BFSWDE33XXX 6 | * Verwendungszweck: {$ bank_transfer_code $} 7 | 8 | -------------------------------------------------------------------------------- /i18n/de_DE/mail/subscription_confirmation/body.twig: -------------------------------------------------------------------------------- 1 | Hallo, 2 | 3 | ausgezeichnet. Vielen Dank für die Bestätigung. 4 | 5 | Wir werden uns bei Ihnen melden, wenn wir Ihre Hilfe benötigen. Da derzeit unsere große Spendenkampagne läuft, wird dies voraussichtlich in den kommenden Tagen bereits der Fall sein. 6 | 7 | Falls Sie in der Zwischenzeit Fragen haben, erreichen Sie uns unter (030) 577 11 62-19 oder per E-Mail an . 8 | 9 | Freundliche Grüße aus Berlin und bis bald. 10 | -------------------------------------------------------------------------------- /i18n/en_GB/messages/paymentStatus.json: -------------------------------------------------------------------------------- 1 | { 2 | "status-pending": "was recorded and is now checked", 3 | "status-new": "was recorded and will be credited shortly", 4 | "status-unconfirmed": "was recorded and is waiting for confirmation", 5 | "status-pledge": "was confirmed and is waiting to be booked", 6 | "status-booked": "was booked", 7 | "status-booking": "is in the process of being credited", 8 | "status-canceled": "was cancelled", 9 | "status-unknown": "status unknown – please contact support" 10 | } 11 | -------------------------------------------------------------------------------- /i18n/de_DE/mail/membership_application_confirmation_active/moderation_amount_too_high.twig: -------------------------------------------------------------------------------- 1 | vielen Dank für dein Engagement als {$ membership_type $}. 2 | 3 | Als Mitgliedsbeitrag hast du {$ interval $} {$ formatted_amount $} gewählt. Da dieser Beitrag für uns überdurchschnittlich hoch ist, möchten wir zuerst auf Nummer sicher gehen. Manchmal werden Beiträge in solcher Höhe aus Versehen getätigt oder bewusst falsch angegeben. 4 | Daher werden wir dich zeitnah kontaktieren, bevor wir deine Mitgliedschaft weiter verarbeiten. 5 | -------------------------------------------------------------------------------- /i18n/de_DE/mail/membership_application_confirmation_sustaining/moderation_amount_too_high.twig: -------------------------------------------------------------------------------- 1 | vielen Dank für Ihr Engagement als {$ membership_type $}. 2 | 3 | Als Mitgliedsbeitrag haben Sie {$ interval $} {$ formatted_amount $} gewählt. Da dieser Beitrag für uns überdurchschnittlich hoch ist, möchten wir zuerst auf Nummer sicher gehen. Manchmal werden Beiträge in solcher Höhe aus Versehen getätigt oder bewusst falsch angegeben. 4 | Daher werden wir Sie zeitnah kontaktieren, bevor wir Ihre Mitgliedschaft weiter verarbeiten. 5 | -------------------------------------------------------------------------------- /i18n/de_DE/messages/paymentStatus.json: -------------------------------------------------------------------------------- 1 | { 2 | "status-pending": "wurde registriert und wird geprüft", 3 | "status-new": "wurde registriert und wird in Kürze gebucht", 4 | "status-unconfirmed": "wurde registriert und wartet auf Bestätigung", 5 | "status-pledge": "wurde zugesagt und wartet auf Buchung", 6 | "status-booked": "wurde gebucht", 7 | "status-booking": "ist in Buchung", 8 | "status-canceled": "wurde storniert", 9 | "status-unknown": "befindet sich in einem unbekannten Zustand. Bitte kontaktieren Sie den Support" 10 | } -------------------------------------------------------------------------------- /i18n/en_GB/web/pages/contact_confirmation.twig: -------------------------------------------------------------------------------- 1 | We have received your message. 2 | 3 | We will get in touch soon. Please note that there are times when we receive a lot of enquiries, primarily during the months of November and December, when we are running the Wikimedia donation campaign. Therefore, we may need a bit of time to look into your enquiry. But even if sometimes it takes us a little longer to reply, please be assured that we will get back to you. None of the enquiries we receive get lost. 4 | 5 | Your Wikimedia Donation Service 6 | -------------------------------------------------------------------------------- /i18n/de_DE/mail/subscription_request.twig: -------------------------------------------------------------------------------- 1 | Liebe Wikipedia-Nutzerin, lieber Wikipedia-Nutzer, 2 | 3 | ich danke Ihnen für Ihr Interesse an einer Mitgliedschaft bei Wikimedia Deutschland. In den kommenden Tagen erhalten 4 | Sie zwei E-Mails mit umfassenden Informationen zu unseren Projekten und wie wir Wikipedia und Freies Wissen in Deutschland fördern. 5 | 6 | Falls Sie Fragen haben, erreichen Sie uns unter (030) 577 11 62-19 oder per E-Mail an . 7 | 8 | Freundliche Grüße aus Berlin und Ihnen noch einen angenehmen {$ day_of_the_week $}. 9 | -------------------------------------------------------------------------------- /data/allowed_terms.txt: -------------------------------------------------------------------------------- 1 | Co.Kg 2 | Warschau 3 | Marsch 4 | Tuntenhausen 5 | Marschner 6 | Möser 7 | Massing 8 | Ramsau 9 | Wixhausen 10 | Musterle 11 | Farschweiler 12 | Asse 13 | Fucker 14 | Staatsexamen 15 | Negernbötel 16 | Hartwichs 17 | Lutscher 18 | nazir 19 | Negertalstr 20 | Friedrich-Fuckel-Straße 21 | Muschick 22 | Möse 23 | Honka 24 | Wichsenstein 25 | Nutteler Weg 26 | Holzecke 27 | Westricherstr 28 | Kasperl 29 | Zecke 30 | Bastard 31 | Neger 32 | Oestricher Straße 33 | Pisselberg 34 | Muschinski 35 | Thonke 36 | Märsche 37 | Forstunternehmen 38 | -------------------------------------------------------------------------------- /data/white_words.txt: -------------------------------------------------------------------------------- 1 | Co.Kg 2 | Warschau 3 | Marsch 4 | Tuntenhausen 5 | Marschner 6 | Möser 7 | Massing 8 | Ramsau 9 | Wixhausen 10 | Musterle 11 | Farschweiler 12 | Asse 13 | Fucker 14 | Staatsexamen 15 | Negernbötel 16 | Hartwichs 17 | Lutscher 18 | nazir 19 | Negertalstr 20 | Friedrich-Fuckel-Straße 21 | Muschick 22 | Möse 23 | Honka 24 | Wichsenstein 25 | Nutteler Weg 26 | Holzecke 27 | Westricherstr 28 | Kasperl 29 | Zecke 30 | Bastard 31 | Neger 32 | Oestricher Straße 33 | Pisselberg 34 | Muschinski 35 | Thonke 36 | Märsche 37 | Forstunternehmen 38 | Oestricher 39 | -------------------------------------------------------------------------------- /i18n/en_GB/mail/membership_application_confirmation_active/intro_start.twig: -------------------------------------------------------------------------------- 1 | I'm very pleased with your decision to become an active member of Wikimedia Deutschland e. V. – and thus part of a growing community of great people who are committed to effectively and sustainably supporting Wikipedia and promoting free knowledge. Thank you very much! 2 | 3 | What happens next? You will soon receive our welcome package {$ incentive $}by post – this also confirms that your membership has officially begun. However, since we always send the welcome packages together, we ask for your patience. 4 | -------------------------------------------------------------------------------- /i18n/en_GB/mail/membership_application_cancellation_confirmation.twig: -------------------------------------------------------------------------------- 1 | As requested by you, we have cancelled your membership application (No. {$ application_id $}). 2 | 3 | It would help us enormously to find out why you have cancelled. Was there a problem with the form, or do you have any additional questions about the membership? Or about Wikimedia? Whatever it was, we would like to know about it to correct any errors. Therefore, we are looking forward to an email to mitglieder@wikimedia.de or a call to (030) 577 11 62-19. 4 | 5 | Thank you for your assistance. 6 | 7 | Kind regards, 8 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "fundraising-frontend-content", 3 | "version": "1.0.0", 4 | "description": "This repository holds content related to Wikimedia Deutschland fundraising services", 5 | "repository": { 6 | "type": "git", 7 | "url": "git+https://github.com/wmde/fundraising-frontend-content.git" 8 | }, 9 | "author": "Wikimedia Deutschland", 10 | "license": "CC0-1.0", 11 | "bugs": { 12 | "url": "https://github.com/wmde/fundraising-frontend-content/issues" 13 | }, 14 | "homepage": "https://github.com/wmde/fundraising-frontend-content" 15 | } 16 | -------------------------------------------------------------------------------- /i18n/de_DE/mail/membership_application_cancellation_confirmation.twig: -------------------------------------------------------------------------------- 1 | wie von Ihnen gewünscht wurde Ihr Mitgliedschaftsantrag (Nr. {$ application_id $}) storniert. 2 | 3 | Es würde uns sehr helfen zu erfahren, warum Sie storniert haben. Gab es ein Problem mit dem Formular oder haben Sie noch Fragen zur Mitgliedschaft oder Wikimedia? Was immer es auch war, wir würden es gerne erfahren, um etwaige Fehler zu beheben. Daher freuen wir uns über eine eMail an mitglieder@wikimedia.de oder einen Anruf unter (030) 577 11 62-19. 4 | 5 | Herzlichen Dank für Ihre Mithilfe. 6 | 7 | Mit freundlichen Grüßen 8 | -------------------------------------------------------------------------------- /i18n/de_DE/web/membership/application/paymenttype_directdebit_affirmation.twig: -------------------------------------------------------------------------------- 1 |

2 | Ich ermächtige Wikimedia Deutschland e. V. (Gläubiger-ID: DE39ZZZ00000029337) Zahlungen 3 | von meinem Konto mittels Lastschrift einzuziehen. Zugleich weise ich mein Kreditinstitut an, die von 4 | Wikimedia Deutschland e. V. auf mein Konto gezogenen Lastschriften einzulösen. 5 |

6 |

7 | Ich kann innerhalb von acht Wochen, beginnend mit dem Belastungsdatum, die Erstattung des belasteten Betrages 8 | verlangen. Es gelten dabei die mit meinem Kreditinstitut vereinbarten Bedingungen. 9 |

10 | -------------------------------------------------------------------------------- /i18n/en_GB/mail/membership_application_confirmation_sustaining/intro_start.twig: -------------------------------------------------------------------------------- 1 | I'm very pleased with your decision to become a {$ membership_type $} of Wikimedia Deutschland e. V. – and thus part of a growing community of great people who are committed to effectively and sustainably supporting Wikipedia and promoting free knowledge. Thank you very much! 2 | 3 | What happens next? You will soon receive our welcome package {$ incentive $}by post – this also confirms that your membership has officially begun. However, since we always send the welcome packages in groups, we ask for your patience. 4 | -------------------------------------------------------------------------------- /i18n/de_DE/web/pages/contact_confirmation.twig: -------------------------------------------------------------------------------- 1 |

Wir haben Ihre Nachricht erhalten.

2 | 3 |

Wir werden uns auch bald bei Ihnen melden. Bitte beachten Sie, dass es Zeiten gibt, in denen wir sehr viele Anfragen bekommen. Dies gilt vor allem für die Monate November bis Dezember, in der unsere Spendenkampagne auf Wikipedia läuft. Es kann daher sein, dass wir etwas Zeit benötigen, um uns um Ihr Anliegen zu kümmern. Auch wenn es manchmal etwas dauert, seien Sie versichert, dass wir uns bei Ihnen melden werden; versprochen. Keine Anfrage geht verloren.

4 | 5 |

Ihr Wikimedia-Spendenservice

6 | -------------------------------------------------------------------------------- /i18n/de_DE/mail/membership_application_confirmation_active/intro_start.twig: -------------------------------------------------------------------------------- 1 | ich freue mich sehr über deine Entscheidung, aktives Mitglied von Wikimedia Deutschland e. V. zu werden – und damit Teil einer wachsenden Gemeinschaft von großartigen Menschen, die sich wirksam und nachhaltig für die Unterstützung von Wikipedia und die Förderung von Freiem Wissen einsetzen. Vielen Dank! 2 | 3 | Wie geht es nun weiter? Demnächst erhältst du per Post unser Willkommenspaket {$ incentive $}– das ist zugleich die Bestätigung, dass deine Mitgliedschaft offiziell begonnen hat. Da wir die Willkommenspakete allerdings immer gebündelt versenden, bitten wir dich um ein wenig Geduld. 4 | -------------------------------------------------------------------------------- /i18n/de_DE/mail/membership_application_confirmation_sustaining/intro_start.twig: -------------------------------------------------------------------------------- 1 | ich freue mich sehr über Ihre Entscheidung, Fördermitglied von Wikimedia Deutschland e. V. zu werden – und damit Teil einer wachsenden Gemeinschaft von großartigen Menschen, die sich wirksam und nachhaltig für die Unterstützung von Wikipedia und die Förderung von Freiem Wissen einsetzen. Vielen Dank! 2 | 3 | Wie geht es nun weiter? Demnächst erhalten Sie per Post unser Willkommenspaket {$ incentive $}– das ist zugleich die Bestätigung, dass Ihre Mitgliedschaft offiziell begonnen hat. Da wir die Willkommenspakete allerdings immer gebündelt versenden, bitten wir Sie um ein wenig Geduld. 4 | -------------------------------------------------------------------------------- /i18n/de_DE/mail/donation_confirmation/receipt.twig: -------------------------------------------------------------------------------- 1 | Falls Sie Ihre {$ pluralize(donation_interval, 'Spenden', 'Spenden', 'Spende') $} steuerlich absetzen möchten, können Sie sich jetzt schon den vereinfachten Zuwendungsbescheid herunterladen ( https://spenden.wikimedia.de/resources/de_DE/Vereinfachter_Zuwendungsbescheid_Wikimedia_Spenden.pdf ). Sofern Ihre Zuwendung nicht 300 Euro übersteigt, können Sie diesen zusammen mit {$ pluralize(donation_interval, 'Ihrem Kontoauszug', 'Ihren Kontoauszügen', 'Ihrem Kontoauszug') $} beim Finanzamt einreichen. Oder Sie warten bis März kommenden Jahres, dann verschicken wir eine Sammelbescheinigung für alle Beträge ab 5 Euro automatisch an Ihre Postadresse. 2 | -------------------------------------------------------------------------------- /i18n/en_GB/mail/contact_confirm_to_user.twig: -------------------------------------------------------------------------------- 1 | Hello and thank you for your interest in Wikimedia and for the question you just sent us via the contact form. 2 | 3 | We will get in touch soon. There are times when we receive a lot of enquiries, primarily during the months of November and December, when we are running the Wikimedia donation campaign. Therefore, we may need a bit of time to look into your enquiry. But even if sometimes it takes us a little longer to reply, please be assured that we will get back to you. None of the enquiries we receive get lost. 4 | 5 | We wish you a pleasant {$ day_of_the_week $}. 6 | 7 | With best wishes from Berlin, 8 | 9 | Your Wikimedia Donation Service 10 | -------------------------------------------------------------------------------- /i18n/en_GB/mail/donation_confirmation/receipt.twig: -------------------------------------------------------------------------------- 1 | If you would like to deduct your {$ pluralize(donation_interval, 'donations', 'donations', 'donation') $} from tax, you can already download the simplified donation receipt here (https://spenden.wikimedia.de/resources/de_DE/Vereinfachter_Zuwendungsbescheid_Wikimedia_Spenden.pdf). If your donation does not exceed the amount of EUR 300, you can submit this donation receipt together with {$ pluralize(donation_interval, 'your bank statement', 'your bank statements', 'your bank statement') $} to your tax office. You can also wait until March of the following year, when we automatically send a collective donation receipt for all amounts of EUR 5 and above to your postal address. 2 | -------------------------------------------------------------------------------- /i18n/de_DE/mail/contact_confirm_to_user.twig: -------------------------------------------------------------------------------- 1 | Lieber Interessent, 2 | 3 | vielen Dank für Ihre soeben gestellte Frage auf unserem Kontaktformular. 4 | 5 | Wir werden uns bald bei Ihnen melden. Es gibt Zeiten, in denen wir sehr viele Anfragen bekommen. Dies gilt vor allem für die Monate November bis Dezember, in der unsere Spendenkampagne auf der Wikipedia läuft. Es kann daher sein, dass wir etwas Zeit benötigen, um uns um Ihr Anliegen zu kümmern. Auch wenn es manchmal etwas dauert, seien Sie versichert, dass wir uns bei Ihnen melden werden; versprochen. Keine Anfrage geht verloren. 6 | 7 | Wir wünschen Ihnen noch einen angenehmen {$ day_of_the_week $}. 8 | 9 | Freundliche Grüße aus Berlin. 10 | 11 | Ihr Wikimedia-Spendenservice -------------------------------------------------------------------------------- /i18n/en_GB/messages/validations.json: -------------------------------------------------------------------------------- 1 | { 2 | "field_required": "This field is required.", 3 | "field_numeric": "Only numbers are allowed in this field.", 4 | "incorrect_length": "Too many or too few characters", 5 | "iban_blocked": "IBAN can not be used", 6 | "iban_invalid": "IBAN is invalid", 7 | "email_address_wrong_format": "Invalid email address format", 8 | "email_address_invalid": "Invalid email address", 9 | "email_address_domain_record_not_found": "Domain of the email address not found.", 10 | "subscription_confirmation_code_not_found": "Unable to find entry with this confirmation code.", 11 | "subscription_already_confirmed": "This email address was already confirmed.", 12 | "invalid_payment_type": "Invalid payment method" 13 | } 14 | -------------------------------------------------------------------------------- /i18n/en_GB/mail/subscription_confirmation/body.twig: -------------------------------------------------------------------------------- 1 | Excellent – we now have everything we need. Thank you for your confirmation. 2 | 3 | What happens next? As you may know, we run our Wikipedia donation campaign once a year. This campaign always has a fundraising target that we try to achieve through calls for donations. As soon as we have achieved the target, the campaign ends. Therefore, we rely on the donations of the Wikipedia readers during that time, since Wikipedia is not funded through advertising or data harvesting, but through the voluntary commitment of its users. 4 | 5 | We will let you know when the donation campaign starts. Until then, please enjoy our free knowledge projects, gaining knowledge along the way. 6 | 7 | Bye for now and best wishes from Berlin, 8 | -------------------------------------------------------------------------------- /i18n/de_DE/messages/validations.json: -------------------------------------------------------------------------------- 1 | { 2 | "field_required": "Dieses Feld ist ein Pflichtfeld", 3 | "field_numeric": "Dieses Feld darf nur aus Ziffern bestehen", 4 | "incorrect_length": "Eingegebener Wert zu kurz oder zu lang", 5 | "iban_blocked": "IBAN kann nicht verwendet werden", 6 | "iban_invalid": "IBAN ist nicht gültig", 7 | "email_address_wrong_format": "Kein gültiges E-Mail-Adressformat", 8 | "email_address_invalid": "Keine gültige E-Mail-Adresse", 9 | "email_address_domain_record_not_found": "Domain der E-Mail-Adresse nicht gefunden.", 10 | "subscription_confirmation_code_not_found": "Es konnte kein Eintrag mit diesem Bestätigungs-Code gefunden werden.", 11 | "subscription_already_confirmed": "Diese E-Mail-Adresse wurde bereits bestätigt.", 12 | "invalid_payment_type": "Ungültige Zahlungsart" 13 | } -------------------------------------------------------------------------------- /phpunit.xml.dist: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 20 | tests/Validation 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /tests/Validation/HonorificsTest.php: -------------------------------------------------------------------------------- 1 | assertGreaterThan( 0, count( $honorifics ) ); 16 | } 17 | 18 | public function honorificsDataProvider(): \Generator { 19 | yield [ $this->loadHonorificsFromFile( 'de_DE/data/honorifics.json' ) ]; 20 | yield [ $this->loadHonorificsFromFile( 'en_GB/data/honorifics.json' ) ]; 21 | } 22 | 23 | private function loadHonorificsFromFile( string $path ): array { 24 | $file = file_get_contents( __DIR__ . '/../../i18n/' . $path ); 25 | return json_decode( $file, true ); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /i18n/en_GB/messages/useOfFundsMessages.json: -------------------------------------------------------------------------------- 1 | { 2 | "use_of_funds_header": "Use Of Funds", 3 | "use_of_funds_description": "The Gemeinnützige Wikimedia Fördergesellschaft mbH is the recipient of the donations and is a 100% subsidiary of Wikimedia Deutschland - Gesellschaft zur Förderung Freien Wissens e. V. Its purpose is to raise funds for the US-American Wikimedia Foundation to be used in the operation and expansion of Wikimedia projects and for international programs. The funding entity also forwards funds to Wikimedia Deutschland.", 4 | "year_plan_wmde": "Annual Plan 2020", 5 | "year_plan_wmf": "Annual Plan 2019/2020", 6 | "back_to_donation": "Back to the donation form", 7 | "content_pages_itz_link": "https://wikimedia.de/wiki/Transparenz", 8 | "content_pages_itz_logo": "/resources/de_DE/logo_itz.svg", 9 | "content_pages_itz_title": "Initiative Transparente Zivilgesellschaft" 10 | } 11 | -------------------------------------------------------------------------------- /i18n/de_DE/messages/useOfFundsMessages.json: -------------------------------------------------------------------------------- 1 | { 2 | "use_of_funds_header": "Mittelverwendung", 3 | "use_of_funds_description": "Die Gemeinnützige Wikimedia Fördergesellschaft mbH ist Empfängerin der Spenden und eine 100%ige Tochtergesellschaft von Wikimedia Deutschland – Gesellschaft zur Förderung Freien Wissens e. V. Sie hat den Zweck, Gelder an die US-amerikanische Wikimedia Foundation zum Betrieb und Ausbau der Wikimedia-Projekte und für internationale Programme weiterzuleiten. Ebenso leitet die Fördergesellschaft Gelder an Wikimedia Deutschland weiter.", 4 | "year_plan_wmde": "Jahresplan 2020", 5 | "year_plan_wmf": "Jahresplan 2019/2020", 6 | "back_to_donation": "Zurück zum Spendenformular", 7 | "content_pages_itz_link": "https://wikimedia.de/wiki/Transparenz", 8 | "content_pages_itz_logo": "/resources/de_DE/logo_itz.svg", 9 | "content_pages_itz_title": "Initiative Transparente Zivilgesellschaft" 10 | } 11 | -------------------------------------------------------------------------------- /i18n/en_GB/web/pages/accessibility_statement.twig: -------------------------------------------------------------------------------- 1 |

2 | We are committed to providing a website that is accessible to the widest possible audience, regardless of technology or ability. And we are actively working 3 | to increase the accessibility and usability of this website and in doing so adhere to many of the available standards and guidelines. 4 |

5 | 6 |

7 | This website endeavours to conform to level Double-A of the World Wide Web Consortium (W3C) Web Content Accessibility Guidelines 2.1. It has been built 8 | using code compliant with W3C standards for HTML and CSS. The site displays correctly in current browsers and using standards compliant HTML/CSS code 9 | means any future browsers will also display it correctly. 10 |

11 | 12 |

13 | If you experience any difficulty in accessing any area of the website, please don’t hesitate to contact us. 14 |

15 | -------------------------------------------------------------------------------- /i18n/en_GB/messages/siteMetadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Wikimedia Deutschland e. V.", 3 | "wikimedia_call_to_action": "If everybody gave a small amount, our campaign would be over in an hour.", 4 | "wikimedia_organization_title": "Wikimedia Deutschland e. V.", 5 | "wikimedia_description": "I donated because Wikipedia matters to me. Can you imagine the web without Wikipedia?", 6 | "no_javascript_header": "Please activate JavaScript in your browser to use our donation form.", 7 | "page_not_found_header": "Unfortunately, this page does not exist.", 8 | "page_not_found": "If you are looking for something in particular and cannot find it, please get in touch. The easiest way to do this is via the contact form..", 9 | "error_page_header": "Unfortunately, an error occurred.", 10 | "access_denied_header": "Error", 11 | "access_denied": "You are not authorised to view this page." 12 | } 13 | -------------------------------------------------------------------------------- /i18n/de_DE/data/validation.json: -------------------------------------------------------------------------------- 1 | { 2 | "address" : { 3 | "salutation": "^.+$", 4 | "title": "", 5 | "companyName": "\\p{L}+", 6 | "firstName": "\\p{L}+", 7 | "lastName": "\\p{L}+", 8 | "street": "[\\p{L}0-9]{2,}", 9 | "city": "[\\p{L}0-9]{2,}", 10 | "postcode": "[\\p{L}0-9]{2,}", 11 | "country": "[\\p{L}0-9]{2,}", 12 | "email": "^(.+)@(.+)\\.(.+)$" 13 | }, 14 | "contactForm": { 15 | "firstName": "^.+$", 16 | "lastName": "^.+$", 17 | "donationNumber": "^[0-9]*$", 18 | "email": "^(.+)@(.+)\\.(.+)$", 19 | "topic": "^.+$", 20 | "subject": "^.+$", 21 | "comment": "(\n|.)+" 22 | }, 23 | "dateOfBirth": "^(?:(?:31(\\.|\\/)(?:0?[13578]|1[02]))\\1|(?:(?:29|30)(\\.|\\/)(?:0?[13-9]|1[0-2])\\2))(?:(?:1[6-9]|[2-9]\\d)?\\d{2})$|^(?:29(\\.|\\/)0?2\\3(?:(?:(?:1[6-9]|[2-9]\\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\\d|2[0-8])(\\.|\\/)(?:(?:0?[1-9])|(?:1[0-2]))\\4(?:(?:1[6-9]|[2-9]\\d)?\\d{2})$" 24 | } -------------------------------------------------------------------------------- /i18n/en_GB/data/validation.json: -------------------------------------------------------------------------------- 1 | { 2 | "address" : { 3 | "salutation": "^.+$", 4 | "title": "", 5 | "companyName": "\\p{L}+", 6 | "firstName": "\\p{L}+", 7 | "lastName": "\\p{L}+", 8 | "street": "[\\p{L}0-9]{2,}", 9 | "city": "[\\p{L}0-9]{2,}", 10 | "postcode": "[\\p{L}0-9]{2,}", 11 | "country": "[\\p{L}0-9]{2,}", 12 | "email": "^(.+)@(.+)\\.(.+)$" 13 | }, 14 | "contactForm": { 15 | "firstName": "^.+$", 16 | "lastName": "^.+$", 17 | "donationNumber": "^[0-9]*$", 18 | "email": "^(.+)@(.+)\\.(.+)$", 19 | "topic": "^.+$", 20 | "subject": "^.+$", 21 | "comment": "(\n|.)+" 22 | }, 23 | "dateOfBirth": "^(?:(?:31(\\.|\\/)(?:0?[13578]|1[02]))\\1|(?:(?:29|30)(\\.|\\/)(?:0?[13-9]|1[0-2])\\2))(?:(?:1[6-9]|[2-9]\\d)?\\d{2})$|^(?:29(\\.|\\/)0?2\\3(?:(?:(?:1[6-9]|[2-9]\\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\\d|2[0-8])(\\.|\\/)(?:(?:0?[1-9])|(?:1[0-2]))\\4(?:(?:1[6-9]|[2-9]\\d)?\\d{2})$" 24 | } -------------------------------------------------------------------------------- /i18n/de_DE/messages/siteMetadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Wikimedia Deutschland e. V.", 3 | "wikimedia_call_to_action": "Wenn jeder nur einen kleinen Beitrag leisten würde, wäre unsere Spendenkampagne in einer Stunde vorüber.", 4 | "wikimedia_organization_title": "Wikimedia Deutschland e. V.", 5 | "wikimedia_description": "Mir liegt Wikipedia am Herzen, deshalb habe ich gespendet. Denn was wäre das Netz ohne Wikipedia?", 6 | "no_javascript_header": "Bitte aktivieren Sie JavaScript in Ihrem Browser, damit Sie unser Spendenformular nutzen können.", 7 | "page_not_found_header": "Diese Seite bieten wir leider nicht an.", 8 | "page_not_found": "Wenn Sie nach etwas Bestimmtem suchen und es nicht finden können, fragen Sie uns bitte. Am einfachsten geht es über das Kontaktformular.", 9 | "error_page_header": "Leider kam es zu einem Fehler", 10 | "access_denied_header": "Fehler", 11 | "access_denied": "Sie haben keine Berechtigung, diese Seite zu sehen." 12 | } 13 | -------------------------------------------------------------------------------- /i18n/de_DE/web/pages/accessibility_statement.twig: -------------------------------------------------------------------------------- 1 |

2 | Wir setzen uns dafür ein, dass unsere Website von möglichst vielen 3 | Menschen genutzt werden kann – unabhängig von genutzten Geräten und 4 | persönlichen Fähigkeiten. Wir arbeiten aktiv daran, die Zugänglichkeit 5 | und Nutzungsfreundlichkeit dieser Website zu verbessern und halten uns 6 | dabei an viele der verfügbaren Standards und Richtlinien. 7 |

8 | 9 |

10 | Wir streben an, dass unsere Website Stufe AA der Web Content 11 | Accessibility Guidelines (WCAG) 2.1 erfüllt. Der verwendete Code 12 | entspricht den Standards des World Wide Web Consortiums (W3C). Die 13 | Website wird in aktuellen Browsern korrekt dargestellt und die 14 | Verwendung standardkonformen Codes stellt sicher, dass sie auch in 15 | zukünftigen Browsern korrekt angezeigt wird. 16 |

17 | 18 |

19 | Sollten Sie Schwierigkeiten beim Zugriff auf einen Bereich der Website 20 | haben, zögern Sie bitte nicht, uns zu 21 | kontaktieren. 22 |

23 | -------------------------------------------------------------------------------- /i18n/en_GB/data/salutations.json: -------------------------------------------------------------------------------- 1 | { 2 | "salutations": [ 3 | { 4 | "label": "Mr", 5 | "value": "Mr", 6 | "export_value": "Herr", 7 | "display": "Mr", 8 | "greetings" : { 9 | "formal": "mail_introduction_male_formal", 10 | "informal": "mail_introduction_male_informal", 11 | "last_name_informal": "mail_introduction_male_lastname_informal" 12 | } 13 | }, 14 | { 15 | "label": "Ms", 16 | "value": "Ms", 17 | "export_value": "Frau", 18 | "display": "Ms", 19 | "greetings" : { 20 | "formal": "mail_introduction_female_formal", 21 | "informal": "mail_introduction_female_informal", 22 | "last_name_informal": "mail_introduction_female_lastname_informal" 23 | } 24 | }, 25 | { 26 | "label": "No Specification", 27 | "value": "No Title", 28 | "export_value": "divers", 29 | "display": "", 30 | "greetings" : { 31 | "formal": "mail_introduction_divers_formal", 32 | "informal": "mail_introduction_divers_informal", 33 | "last_name_informal": "mail_introduction_divers_lastname_informal" 34 | } 35 | } 36 | ] 37 | } 38 | -------------------------------------------------------------------------------- /i18n/de_DE/data/salutations.json: -------------------------------------------------------------------------------- 1 | { 2 | "salutations": [ 3 | { 4 | "label": "Herr", 5 | "value": "Herr", 6 | "export_value": "Herr", 7 | "display": "Herr", 8 | "greetings" : { 9 | "formal": "mail_introduction_male_formal", 10 | "informal": "mail_introduction_male_informal", 11 | "last_name_informal": "mail_introduction_male_lastname_informal" 12 | } 13 | }, 14 | { 15 | "label": "Frau", 16 | "value": "Frau", 17 | "export_value": "Frau", 18 | "display": "Frau", 19 | "greetings" : { 20 | "formal": "mail_introduction_female_formal", 21 | "informal": "mail_introduction_female_informal", 22 | "last_name_informal": "mail_introduction_female_lastname_informal" 23 | } 24 | }, 25 | { 26 | "label": "Keine Angabe", 27 | "value": "Divers", 28 | "export_value": "divers", 29 | "display": "", 30 | "greetings" : { 31 | "formal": "mail_introduction_divers_formal", 32 | "informal": "mail_introduction_divers_informal", 33 | "last_name_informal": "mail_introduction_divers_lastname_informal" 34 | } 35 | } 36 | ] 37 | } 38 | -------------------------------------------------------------------------------- /tests/Fixtures/JsonValidator.php: -------------------------------------------------------------------------------- 1 | testCase = $testCase; 16 | $this->basePath = __DIR__ . '/../../'; 17 | } 18 | 19 | public function assertJsonFilesHaveMatchingKeys( string $jsonFilePathA, $jsonFilePathB ): void { 20 | $jsonKeysFromA = $this->getJsonKeys( $jsonFilePathA ); 21 | $jsonKeysFromB = $this->getJsonKeys( $jsonFilePathB ); 22 | $this->testCase->assertSame( 23 | [], 24 | array_diff( $jsonKeysFromA, $jsonKeysFromB ), 25 | "$jsonFilePathB has missing keys" 26 | ); 27 | $this->testCase->assertSame( 28 | [], 29 | array_diff( $jsonKeysFromB, $jsonKeysFromA ), 30 | "$jsonFilePathB has additional keys that don't exist in $jsonFilePathA" 31 | ); 32 | } 33 | 34 | private function getJsonKeys( string $path ): array { 35 | $file = file_get_contents( $this->basePath . $path ); 36 | $data = json_decode( $file, true ); 37 | return array_keys( $data ); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /i18n/de_DE/mail/membership_application_confirmation_active/intro.twig: -------------------------------------------------------------------------------- 1 | {# TODO: Remove this file when the new membership payment is deployed #} 2 | fantastisch – du willst Mitglied bei Wikimedia Deutschland e. V. werden. Wir freuen uns, dass du dich entschieden hast, dich als {$ membership_type $} dauerhaft für die Verbreitung von Freiem Wissen einzusetzen. 3 | 4 | Was passiert nun? Du erhältst zunächst unser Willkommenspaket {$ incentive $}per Post. Dann weißt du, dass deine Mitgliedschaft offiziell begonnen hat. Im Willkommensschreiben werden außerdem alle Informationen rund um deine Mitgliedschaft für dich nachvollziehbar erläutert. Da wir die Willkommensschreiben aber gebündelt versenden, bitten wir um ein wenig Geduld. In der Regel erfolgt einige Wochen später der Einzug des ersten Mitgliedsbeitrags. Du hast vorhin als Mitgliedsbeitrag {$ formatted_amount $} ausgewählt. Dieser Betrag soll dann {$ donation_interval $} abgebucht werden. Vor dem ersten Einzug erhältst du natürlich eine Vorankündigung deines SEPA-Lastschriftmandats mitsamt der Mandatsreferenznummer. 5 | 6 | Wenn deine Mitgliedschaft begonnen hat, würden wir uns gerne bei dir melden, wenn wir dich auf interessante Veranstaltungen, Projektneuigkeiten oder andere wichtige Ereignisse rund um Freies Wissen aufmerksam machen möchten. 7 | -------------------------------------------------------------------------------- /i18n/de_DE/mail/membership_application_confirmation_sustaining/intro.twig: -------------------------------------------------------------------------------- 1 | {# TODO: Remove this file when the new membership payment is deployed #} 2 | fantastisch – Sie wollen Mitglied bei Wikimedia Deutschland e. V. werden. Wir freuen uns, dass Sie sich entschieden haben, sich als {$ membership_type $} dauerhaft für die Verbreitung von Freiem Wissen einzusetzen. 3 | 4 | Was passiert nun? Sie erhalten zunächst unser Willkommenspaket {$ incentive $}per Post. Dann wissen Sie, dass Ihre Mitgliedschaft offiziell begonnen hat. Im Willkommensschreiben werden außerdem alle Informationen rund um Ihre Mitgliedschaft für Sie nachvollziehbar erläutert. Da wir die Willkommensschreiben aber gebündelt versenden, bitten wir um ein wenig Geduld. In der Regel erfolgt einige Wochen später der Einzug des ersten Mitgliedsbeitrags. Sie haben vorhin als Mitgliedsbeitrag {$ formatted_amount $} ausgewählt. Dieser Betrag soll dann {$ donation_interval $} abgebucht werden. Vor dem ersten Einzug erhalten Sie natürlich eine Vorankündigung Ihres SEPA-Lastschriftmandats mitsamt der Mandatsreferenznummer. 5 | 6 | Wenn Ihre Mitgliedschaft begonnen hat, würden wir uns gerne bei Ihnen melden, wenn wir Sie auf interessante Veranstaltungen, Projektneuigkeiten oder andere wichtige Ereignisse rund um Freies Wissen aufmerksam machen möchten. 7 | -------------------------------------------------------------------------------- /i18n/en_GB/mail/membership_application_confirmation_active/intro.twig: -------------------------------------------------------------------------------- 1 | {# TODO: Remove this file when the new membership payment is deployed #} 2 | Fantastic – you want to become a member of Wikimedia Deutschland e. V. 3 | We are pleased that you have decided to provide lasting support to the dissemination of free knowledge as a {$ membership_type $}. 4 | 5 | What happens next? First, you will receive our welcome package {$ incentive $}by post to let you know that your membership has officially started. The welcome letter also gives you a transparent overview of all the information you need about your membership. However, since we send the welcome letter in bulk, please bear with us and give us a bit of time. Normally, your first membership fee is debited a few weeks later. You have selected the amount of {$ formatted_amount $} as your membership fee. This is the amount to be debited {$ donation_interval $}. Before we debit the amount for the first time, you will of course receive an advance notification of your SEPA direct debit mandate, which also includes our mandate reference number. 6 | 7 | Once your membership has started, we would like to get in touch with you to draw your attention to interesting events, project news or other important events in the context of free knowledge. 8 | 9 | Please note that after this confirmation e-Mail all of our further standard communication is in German only. 10 | -------------------------------------------------------------------------------- /i18n/en_GB/mail/membership_application_confirmation_sustaining/intro.twig: -------------------------------------------------------------------------------- 1 | {# TODO: Remove this file when the new membership payment is deployed #} 2 | Fantastic – you want to become a member of Wikimedia Deutschland e. V. 3 | We are pleased that you have decided to provide lasting support to the dissemination of free knowledge as a {$ membership_type $}. 4 | 5 | What happens next? First, you will receive our welcome package {$ incentive $}by post to let you know that your membership has officially started. The welcome letter also gives you a transparent overview of all the information you need about your membership. However, since we send the welcome letter in bulk, please bear with us and give us a bit of time. Normally, your first membership fee is debited a few weeks later. You have selected the amount of {$ formatted_amount $} as your membership fee. This is the amount to be debited {$ donation_interval $}. Before we debit the amount for the first time, you will of course receive an advance notification of your SEPA direct debit mandate, which also includes our mandate reference number. 6 | 7 | Once your membership has started, we would like to get in touch with you to draw your attention to interesting events, project news or other important events in the context of free knowledge. 8 | 9 | Please note that after this confirmation e-Mail all of our further standard communication is in German only. 10 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # See the documentation for all configuration options: 2 | # https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates 3 | 4 | version: 2 5 | updates: 6 | # look for major+minor dependency updates on a daily basis 7 | - package-ecosystem: "composer" # See documentation for possible values 8 | directory: "/" # Location of package manifests 9 | 10 | # this line is needed as a workaround to have two groups of updates for the same 11 | # package ecosystem. See https://github.com/dependabot/dependabot-core/issues/1778 12 | # for the feature request to have a dependabot group for each semver type 13 | target-branch: main 14 | 15 | schedule: 16 | interval: "daily" 17 | groups: 18 | minor-version-updates: 19 | update-types: 20 | - minor 21 | ignore: 22 | - dependency-name: "*" 23 | update-types: 24 | - "version-update:semver-patch" 25 | 26 | # bundle patch updates together on a monthly basis 27 | - package-ecosystem: "composer" # See documentation for possible values 28 | directory: "/" # Location of package manifests 29 | schedule: 30 | interval: "monthly" 31 | day: "tuesday" 32 | groups: 33 | patch-updates: 34 | update-types: 35 | - patch 36 | ignore: 37 | - dependency-name: "*" 38 | update-types: 39 | - "version-update:semver-minor" 40 | - "version-update:semver-major" 41 | -------------------------------------------------------------------------------- /i18n/de_DE/web/pages/imprint.twig: -------------------------------------------------------------------------------- 1 | 2 |

3 | Gemäß § 28 BDSG widersprechen wir jeder kommerziellen Verwendung und Weitergabe unserer Daten. 4 |

5 |

6 | Diensteanbieter
7 | Wikimedia Deutschland - Gesellschaft zur Förderung Freien Wissens e. V.
8 | Tempelhofer Ufer 23-24
9 | 10963 Berlin
10 |
11 | E-Mail: spenden@wikimedia.de
12 | Telefon: (030) 577 11 62-0
13 | Fax: (030) 577 11 62-99
14 |
15 | Umsatzsteuer-ID: DE263757776
16 |

17 | 18 |

19 | Geschäftsführende Vorständin
20 | Franziska Heine
21 |

22 | 23 |

24 | Wikimedia Deutschland
25 | verfolgt ausschließlich und unmittelbar gemeinnützige Zwecke im Sinne des Abschnitts 'steuerbegünstigte Zwecke' der Abgabenordnung.
26 |
27 | Spendenkonto:
28 | IBAN: DE09 3702 0500 0003 2873 00
29 | BIC: BFSWDE33XXX
30 | SozialBank
31 |
32 | Eingetragen im Vereinsregister des Amtsgerichts Charlottenburg, VR 23855 B. 33 |

34 | 35 |

36 | Haftungsausschluss
37 | Die Inhalte dieses Webprojektes wurden sorgfältig geprüft und nach bestem Wissen erstellt. 38 | Aber für die hier dargebotenen Informationen wird kein Anspruch auf Vollständigkeit, Aktualität, 39 | Qualität und Richtigkeit erhoben. Es kann keine Verantwortung für Schäden übernommen werden, die 40 | durch das Vertrauen auf die Inhalte dieser Website oder deren Gebrauch entstehen. 41 |

42 | -------------------------------------------------------------------------------- /i18n/en_GB/web/pages/imprint.twig: -------------------------------------------------------------------------------- 1 | 2 |

3 | In line with Article 28 of the German Federal Data Protection Act (BDSG), we object to any commercial use and transfer of our data. 4 |

5 |

6 | Provider of services
7 | Wikimedia Deutschland e. V.
8 | Tempelhofer Ufer 23-24
9 | 10963 Berlin
10 | Germany
11 |
12 | E-Mail: spenden@wikimedia.de
13 | Telephone: (030) 577 11 62-0
14 | Fax: (030) 577 11 62-99
15 |
16 | VAT Reg No: DE263757776
17 |

18 | 19 |

20 | Executive Director
21 | Franziska Heine
22 |

23 | 24 |

25 | Wikimedia Deutschland
26 | exclusively and directly pursues nonprofit objectives in accordance with the section 'tax-privileged purposes' of the German Fiscal Code.
27 |
28 | Account for donations:
29 | IBAN: DE09 3702 0500 0003 2873 00
30 | BIC: BFSWDE33XXX
31 | Bank für Sozialwirtschaft
32 |
33 | Registered in the Register of Associations at the Berlin-Charlottenburg district court with the registration number VR 23855 B. 34 |

35 | 36 |

37 | Disclaimer
38 | The contents of this web project have been diligently checked and prepared to the best of 39 | our knowledge. However, we do not claim that the information is complete, up-to-date, 40 | high-quality and correct. We cannot assume any liability for damages incurred due to 41 | trusting the content on this website or the use of this content. 42 |

43 | -------------------------------------------------------------------------------- /.woodpecker/deploy_content.yml: -------------------------------------------------------------------------------- 1 | matrix: 2 | CONTAINER_IMAGE: 3 | - registry.gitlab.com/fun-tech/fundraising-frontend-docker:latest 4 | # Use the following image in future (Jan/Feb 2026) 5 | # - registry.gitlab.com/fun-tech/fundraising-frontend-docker:php-8.5 6 | steps: 7 | - name: ci 8 | when: 9 | event: [ push, pull_request, cron, manual ] 10 | image: ${CONTAINER_IMAGE} 11 | commands: 12 | - composer install --no-progress --no-suggest 13 | 14 | # Listing individual commands from "composer ci", to have better control over the output and fail early 15 | - composer validate --no-interaction 16 | - composer lint-json 17 | - composer lint-templates 18 | - composer lint-wordlists 19 | - composer test 20 | 21 | - name: deploy 22 | when: 23 | - branch: [ test, production ] 24 | event: [ push, cron, manual ] 25 | image: wikimediade/ansible-deploy 26 | pull: false # Until we publish the image on a registry 27 | environment: 28 | SSH_KEY: 29 | from_secret: ssh_key 30 | commands: 31 | # Overriding $HOME set by woodpecker 32 | # When https://github.com/woodpecker-ci/woodpecker/issues/1077 is solved, next step is no longer needed, 33 | # because our image uses a non-root user "ansible" with home directory "/ansible" 34 | - export HOME="$(getent passwd $(id -u) | cut '-d:' -f6)" 35 | - echo "$SSH_KEY" > /ansible/.ssh/id_rsa && chmod 0600 /ansible/.ssh/id_rsa 36 | - ansible-playbook -v -e prebuilt_source="$CI_WORKSPACE" -e deploy_target="$CI_COMMIT_BRANCH" /ansible/content.yml 37 | 38 | -------------------------------------------------------------------------------- /resources/mail_provider_suggestions.json: -------------------------------------------------------------------------------- 1 | [ 2 | "aim.com", 3 | "alice.it", 4 | "aliceadsl.fr", 5 | "aol.com", 6 | "arcor.de", 7 | "att.net", 8 | "bellsouth.net", 9 | "bigpond.com", 10 | "bigpond.net.au", 11 | "bluewin.ch", 12 | "blueyonder.co.uk", 13 | "bol.com.br", 14 | "centurytel.net", 15 | "charter.net", 16 | "chello.nl", 17 | "club-internet.fr", 18 | "comcast.net", 19 | "cox.net", 20 | "earthlink.net", 21 | "facebook.com", 22 | "free.fr", 23 | "freenet.de", 24 | "frontiernet.net", 25 | "gmail.com", 26 | "gmx.de", 27 | "gmx.net", 28 | "googlemail.com", 29 | "hetnet.nl", 30 | "home.nl", 31 | "hotmail.co.uk", 32 | "hotmail.com", 33 | "hotmail.de", 34 | "hotmail.es", 35 | "hotmail.fr", 36 | "hotmail.it", 37 | "ig.com.br", 38 | "juno.com", 39 | "laposte.net", 40 | "libero.it", 41 | "live.ca", 42 | "live.co.uk", 43 | "live.com", 44 | "live.com.au", 45 | "live.fr", 46 | "live.it", 47 | "live.nl", 48 | "mac.com", 49 | "mail.com", 50 | "mail.ru", 51 | "me.com", 52 | "msn.com", 53 | "neuf.fr", 54 | "nus.de", 55 | "ntlworld.com", 56 | "optonline.net", 57 | "optusnet.com.au", 58 | "orange.fr", 59 | "outlook.com", 60 | "outlook.de", 61 | "planet.nl", 62 | "posteo.net", 63 | "posteo.de", 64 | "qq.com", 65 | "rambler.ru", 66 | "rediffmail.com", 67 | "rocketmail.com", 68 | "sbcglobal.net", 69 | "sfr.fr", 70 | "shaw.ca", 71 | "sky.com", 72 | "skynet.be", 73 | "sympatico.ca", 74 | "t-online.de", 75 | "telenet.be", 76 | "terra.com.br", 77 | "tin.it", 78 | "tiscali.co.uk", 79 | "tiscali.it", 80 | "uol.com.br", 81 | "verizon.net", 82 | "virgilio.it", 83 | "voila.fr", 84 | "wanadoo.fr", 85 | "web.de", 86 | "windstream.net", 87 | "yahoo.ca", 88 | "yahoo.co.id", 89 | "yahoo.co.in", 90 | "yahoo.co.jp", 91 | "yahoo.co.uk", 92 | "yahoo.com", 93 | "yahoo.com.ar", 94 | "yahoo.com.au", 95 | "yahoo.com.br", 96 | "yahoo.com.mx", 97 | "yahoo.com.sg", 98 | "yahoo.de", 99 | "yahoo.es", 100 | "yahoo.fr", 101 | "yahoo.in", 102 | "yahoo.it", 103 | "yandex.ru", 104 | "ymail.com", 105 | "zonnet.nl" 106 | ] 107 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "wmde/fundraising-frontend-content", 3 | "description": "i18n for FundraisingFrontend", 4 | "license": "CC0-1.0", 5 | "require": { 6 | "php": ">=8.4" 7 | }, 8 | "require-dev": { 9 | "wmde/fundraising-content-provider": "^6.0", 10 | "seld/jsonlint": "^1.6", 11 | "phpunit/phpunit": "~9.5.0" 12 | }, 13 | "repositories": [ 14 | { 15 | "type": "vcs", 16 | "url": "https://github.com/wmde/fundraising-content-provider", 17 | "no-api": true 18 | } 19 | ], 20 | "autoload-dev": { 21 | "psr-4": { 22 | "WMDE\\Fundraising\\Content\\Tests\\": "tests/" 23 | } 24 | }, 25 | "scripts": { 26 | "ci": [ 27 | "composer validate --no-interaction", 28 | "@lint", 29 | "@test" 30 | ], 31 | "mediawiki": [ 32 | "php bin/extract_to_mediawiki use_of_funds_content use-of-funds de", 33 | "php bin/extract_to_mediawiki use_of_funds_content use-of-funds en", 34 | "php bin/extract_to_mediawiki thank_you_content thank-you de", 35 | "php bin/extract_to_mediawiki thank_you_content thank-you en" 36 | ], 37 | "test": [ 38 | "vendor/bin/phpunit" 39 | ], 40 | "lint": [ 41 | "@lint-json", 42 | "@lint-templates", 43 | "@lint-wordlists" 44 | ], 45 | "lint-json": [ 46 | "find i18n/ -type f -name \\*.json | xargs vendor/bin/jsonlint " 47 | ], 48 | "lint-templates": [ 49 | "find i18n/*/web i18n/*/shared -type f -name '*.twig' | sed -E 's#/web/|/shared/# #' | sed 's|.twig||' | cut -d' ' -f1,2 | xargs -n 2 bash -c './vendor/bin/lint_content --web $0 $1'", 50 | "find i18n/*/mail i18n/*/shared -type f -name '*.twig' | sed -E 's#/mail/|/shared/# #' | sed 's|.twig||' | cut -d' ' -f1,2 | xargs -n 2 bash -c './vendor/bin/lint_content $0 $1'" 51 | ], 52 | "lint-wordlists": [ 53 | "if grep -oE '\\w+ {2,}\\w+' data/banned_terms.txt data/allowed_terms.txt; then echo 'Words must only be separated by 1 space'; false; fi" 54 | ] 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /i18n/en_GB/messages/mail.json: -------------------------------------------------------------------------------- 1 | { 2 | "mail_subject_getintouch": "You have questions, we have answers", 3 | "mail_subject_getintouch_forward": "Request through the contact form", 4 | "mail_subject_confirm_donation": "You donated to Wikipedia and Free Knowledge. Awesome.", 5 | "mail_subject_confirm_donation_promise": "You want to donate to Wikipedia and Free Knowledge. Awesome.", 6 | "mail_subject_update_donation": "Your updated donation to Wikipedia and Free Knowledge.", 7 | "mail_subject_confirm_cancellation": "Donation Cancellation Confirmation", 8 | "mail_subject_subscription": "Thank you for your interest", 9 | "mail_subject_subscription_confirmed": "Thank you. We now have everything we need.", 10 | 11 | "mail_subject_confirm_membership_application_active": "Your continued commitment as an active member of Wikimedia", 12 | "mail_subject_confirm_membership_application_sustaining": "Your continued commitment as a Sponsoring Member at Wikimedia", 13 | "mail_subject_confirm_membership_application_cancellation": "Cancellation of your membership to Wikimedia Deutschland e. V.", 14 | 15 | "donation_payment_interval_0": "once", 16 | "donation_payment_interval_1": "monthly", 17 | "donation_payment_interval_3": "quarterly", 18 | "donation_payment_interval_6": "every 6 months", 19 | "donation_payment_interval_12": "yearly", 20 | 21 | "mail_introduction_generic": "Dear Madame or Sir,", 22 | "mail_introduction_male_formal": "Dear Mr %spacedTitle%%lastName%,", 23 | "mail_introduction_female_formal": "Dear Ms %spacedTitle%%lastName%,", 24 | "mail_introduction_divers_formal": "Hello %firstName% %lastName%,", 25 | "mail_introduction_family_formal": "Dear Family %spacedTitle%%lastName%,", 26 | "mail_introduction_male_informal": "Hello %firstName%,", 27 | "mail_introduction_female_informal": "Hello %firstName%,", 28 | "mail_introduction_divers_informal": "Hello %firstName% %lastName%,", 29 | "mail_introduction_family_informal": "Hello Family %lastName%,", 30 | "mail_introduction_male_lastname_informal": "Hello Mr %spacedTitle%%lastName%,", 31 | "mail_introduction_female_lastname_informal": "Hello Ms %spacedTitle%%lastName%,", 32 | "mail_introduction_divers_lastname_informal": "Hello %firstName% %lastName%," 33 | } 34 | 35 | -------------------------------------------------------------------------------- /bin/extract_to_mediawiki: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env php 2 | 38 | This page contains content used in Wikimedia Deutschland banners 39 | 40 |
41 | TPL; 42 | 43 | $outputFileName = "{$output}-{$language}{$fileNameSuffix}.txt"; 44 | if ( file_put_contents( $outputFileName, $textForMediaWiki ) === false ) { 45 | die( "Error writing output file: {$outputFileName}\n" ); 46 | } 47 | 48 | exit( "Wrote {$outputFileName}\n" ); 49 | } 50 | 51 | $fileNameArg = $argv[1] ?? ''; 52 | $outputArg = $argv[2] ?? ''; 53 | $langArg = $argv[3] ?? ''; 54 | $yearArg = $argv[4] ?? ''; 55 | 56 | switch( $langArg ) { 57 | case 'de': 58 | $language = 'de_DE'; 59 | break; 60 | case 'en': 61 | $language = 'en_GB'; 62 | break; 63 | default: 64 | die( "You must provide a language (de | en )!\n" ); 65 | } 66 | 67 | if ( $yearArg !== '' && !preg_match( '/^[1-9]\d{3}$/', $yearArg ) ) { 68 | die( "If provided, the year must be in YYYY format (e.g. 2023).\n" ); 69 | } 70 | 71 | extractContent( $fileNameArg, $outputArg, $language, $yearArg ); 72 | 73 | ?> 74 | -------------------------------------------------------------------------------- /i18n/de_DE/messages/mail.json: -------------------------------------------------------------------------------- 1 | { 2 | "mail_subject_getintouch": "Sie haben gefragt, wir werden antworten", 3 | "mail_subject_getintouch_forward": "Anfrage über das Kontaktformular", 4 | "mail_subject_confirm_donation": "Sie spenden für Wikipedia und Freies Wissen. Großartig.", 5 | "mail_subject_confirm_donation_promise": "Sie wollen für Wikipedia und Freies Wissen spenden. Großartig.", 6 | "mail_subject_update_donation": "Ihre Änderungen an der Spende für Wikipedia und Freies Wissen.", 7 | "mail_subject_confirm_cancellation": "Stornierung Ihrer Spende", 8 | "mail_subject_subscription": "Vielen Dank für Ihr Interesse", 9 | "mail_subject_subscription_confirmed": "Vielen Dank. Jetzt haben wir alles.", 10 | 11 | "mail_subject_confirm_membership_application_active": "Willkommen bei Wikimedia Deutschland! Ihr Engagement bewirkt viel.", 12 | "mail_subject_confirm_membership_application_sustaining": "Willkommen bei Wikimedia Deutschland! Ihr Engagement bewirkt viel.", 13 | "mail_subject_confirm_membership_application_cancellation": "Stornierung Ihres Mitgliedschaftsantrags bei Wikimedia Deutschland", 14 | 15 | "donation_payment_interval_0": "einmalig", 16 | "donation_payment_interval_1": "monatlich", 17 | "donation_payment_interval_3": "vierteljährlich", 18 | "donation_payment_interval_6": "halbjährlich", 19 | "donation_payment_interval_12": "jährlich", 20 | 21 | "mail_introduction_generic": "Sehr geehrte Damen und Herren,", 22 | "mail_introduction_male_formal": "Sehr geehrter Herr %spacedTitle%%lastName%,", 23 | "mail_introduction_female_formal": "Sehr geehrte Frau %spacedTitle%%lastName%,", 24 | "mail_introduction_divers_formal": "Hallo %firstName% %lastName%,", 25 | "mail_introduction_family_formal": "Sehr geehrte Familie %spacedTitle%%lastName%,", 26 | "mail_introduction_male_informal": "Lieber %firstName%,", 27 | "mail_introduction_female_informal": "Liebe %firstName%,", 28 | "mail_introduction_divers_informal": "Hallo %firstName% %lastName%,", 29 | "mail_introduction_family_informal": "Liebe Familie %lastName%,", 30 | "mail_introduction_male_lastname_informal": "Lieber Herr %spacedTitle%%lastName%,", 31 | "mail_introduction_female_lastname_informal": "Liebe Frau %spacedTitle%%lastName%,", 32 | "mail_introduction_divers_lastname_informal": "Hallo %firstName% %lastName%," 33 | } 34 | 35 | -------------------------------------------------------------------------------- /tests/Validation/LocaleKeysTest.php: -------------------------------------------------------------------------------- 1 | jsonValidator = new JsonValidator( $this ); 16 | } 17 | 18 | /** @dataProvider messageKeysDataProvider */ 19 | public function testMessagesKeysMatch( string $jsonFileA, string $jsonFileB): void { 20 | $this->jsonValidator->assertJsonFilesHaveMatchingKeys( $jsonFileA, $jsonFileB ); 21 | } 22 | 23 | public function messageKeysDataProvider(): array { 24 | return [ 25 | [ 'i18n/en_GB/data/contact_categories.json', 'i18n/de_DE/data/contact_categories.json' ], 26 | [ 'i18n/en_GB/data/countries.json', 'i18n/de_DE/data/countries.json' ], 27 | [ 'i18n/en_GB/data/faq.json', 'i18n/de_DE/data/faq.json' ], 28 | [ 'i18n/en_GB/data/pages.json', 'i18n/de_DE/data/pages.json' ], 29 | [ 'i18n/en_GB/data/salutations.json', 'i18n/de_DE/data/salutations.json' ], 30 | [ 'i18n/en_GB/data/supporters.json', 'i18n/de_DE/data/supporters.json' ], 31 | [ 'i18n/en_GB/data/validation.json', 'i18n/de_DE/data/validation.json' ], 32 | [ 'i18n/en_GB/data/use_of_funds_content.json', 'i18n/de_DE/data/use_of_funds_content.json' ], 33 | [ 'i18n/en_GB/messages/daysOfTheWeek.json', 'i18n/de_DE/messages/daysOfTheWeek.json' ], 34 | [ 'i18n/en_GB/messages/mail.json', 'i18n/de_DE/messages/mail.json' ], 35 | [ 'i18n/en_GB/messages/membershipTypes.json', 'i18n/de_DE/messages/membershipTypes.json' ], 36 | [ 'i18n/en_GB/messages/messages.json', 'i18n/de_DE/messages/messages.json' ], 37 | [ 'i18n/en_GB/messages/pageTitles.json', 'i18n/de_DE/messages/pageTitles.json' ], 38 | [ 'i18n/en_GB/messages/paymentIntervals.json', 'i18n/de_DE/messages/paymentIntervals.json' ], 39 | [ 'i18n/en_GB/messages/paymentProvider.json', 'i18n/de_DE/messages/paymentProvider.json' ], 40 | [ 'i18n/en_GB/messages/paymentStatus.json', 'i18n/de_DE/messages/paymentStatus.json' ], 41 | [ 'i18n/en_GB/messages/paymentTypes.json', 'i18n/de_DE/messages/paymentTypes.json' ], 42 | [ 'i18n/en_GB/messages/siteMetadata.json', 'i18n/de_DE/messages/siteMetadata.json' ], 43 | [ 'i18n/en_GB/messages/validations.json', 'i18n/de_DE/messages/validations.json' ], 44 | ]; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /tests/Validation/SalutationsTest.php: -------------------------------------------------------------------------------- 1 | assertArrayHasKey( 'label', $salutation ); 15 | $this->assertArrayHasKey( 'value', $salutation ); 16 | $this->assertArrayHasKey( 'export_value', $salutation ); 17 | $this->assertArrayHasKey( 'display', $salutation ); 18 | $this->assertArrayHasKey( 'greetings', $salutation ); 19 | $this->assertArrayHasKey( 'formal', $salutation['greetings'] ); 20 | $this->assertArrayHasKey( 'informal', $salutation['greetings'] ); 21 | $this->assertArrayHasKey( 'last_name_informal', $salutation['greetings'] ); 22 | } 23 | 24 | /** 25 | * @dataProvider salutationsDataProvider 26 | */ 27 | public function testSalutationsValuesAreStrings( array $salutation ): void { 28 | $this->assertIsString( $salutation['label'] ); 29 | $this->assertIsString( $salutation['value'] ); 30 | $this->assertIsString( $salutation['export_value'] ); 31 | $this->assertIsString( $salutation['display'] ); 32 | $this->assertIsString( $salutation['greetings']['formal'] ); 33 | $this->assertIsString( $salutation['greetings']['informal'] ); 34 | $this->assertIsString( $salutation['greetings']['last_name_informal'] ); 35 | } 36 | 37 | /** 38 | * @dataProvider salutationsDataProvider 39 | */ 40 | public function testGreetingsItemsExist( array $salutation, string $locale ): void { 41 | $file = file_get_contents( __DIR__ . "/../../i18n/{$locale}/messages/mail.json" ); 42 | $mailData = json_decode( $file, true ); 43 | 44 | $this->assertArrayHasKey( $salutation['greetings']['formal'], $mailData ); 45 | $this->assertArrayHasKey( $salutation['greetings']['informal'], $mailData ); 46 | $this->assertArrayHasKey( $salutation['greetings']['last_name_informal'], $mailData ); 47 | } 48 | 49 | public function salutationsDataProvider(): \Generator { 50 | foreach ( $this->loadSalutationsFromFile( 'de_DE/data/salutations.json' ) as $salutation ) { 51 | yield [ $salutation, 'de_DE' ]; 52 | } 53 | foreach ( $this->loadSalutationsFromFile( 'en_GB/data/salutations.json' ) as $salutation ) { 54 | yield [ $salutation, 'en_GB' ]; 55 | } 56 | } 57 | 58 | private function loadSalutationsFromFile( string $path ): array { 59 | $file = file_get_contents( __DIR__ . '/../../i18n/' . $path ); 60 | $data = json_decode( $file, true ); 61 | return $data['salutations']; 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /i18n/en_GB/data/thank_you_content.json: -------------------------------------------------------------------------------- 1 | { 2 | "mini-thank-you": "Thanks!", 3 | "mini-message" : "In the past few weeks, upwards of 251,000 people have made donations and thereby protected Wikipedia's independence. And also to those who simply made use of Wikipedia -- thanks from the bottom of our hearts!", 4 | "mini-progress-bar-text" : "Donations goal reached!", 5 | "mini-button" : "What you've accomplished", 6 | "close" : "close", 7 | "read-more" : "Read more", 8 | "read-less" : "Read less", 9 | "photo-credit" : "Photo: Jason Krüger für Wikimedia Deutschland", 10 | "photo-license" : "CC BY 4.0", 11 | "more-info" : "More information on our website", 12 | "use-of-funds" : "Where does my donation go?", 13 | "main-message-title": "Thank you so much!", 14 | "main-message-content": "All of you have bolstered Wikipedia during these turbulent times -- whether you made a donation or, by reading articles, you demonstrated the indomitable relevance of this one-of-a-kind project. A powerful signal for independent, reliable knowledge, fitting for the occasion of Wikipedia's upcoming birthday.", 15 | "main-message-name": "Yours, Franziska Heine", 16 | "main-message-position": "Executive Director Wikimedia Deutschland e. V.", 17 | "knowledge-title": "Knowledge is human.", 18 | "knowledge-subtitle": "With Wikipedia, hundreds of thousands of human beings have created the greatest knowledge project of all time. This community ensures that, even in these times, we can trust Wikipedia.", 19 | "knowledge-content": [ 20 | "In just a few days Wikipedia will turn 25. We celebrate the many volunteers who in that time have created the largest encyclopedia of all time. In their free time, they write and maintain millions of articles, collaboratively and according to strict rules -- committed to neutrality, supported by facts and substantiated with sources. That's what Wikipedia has stood for since it was founded. These are real people whose work we can trust -- because it's transparent and verifiable.", 21 | "Today the search for knowledge is being transformed on a fundamental level by AI chatbots. Though they may appear reliable, they are machines with no awareness of what is correct or incorrect. When considering their claims of fact and truth, caution is always advised -- just as it is with those who created these chatbots as a business model. We dare not surrender all human knowledge to these algorithms and their self-interested owners. More than ever we need a Wikipedia backed by trustworthy human beings!" 22 | ], 23 | "birthday-blurb": "We're celebrating Wikipedia's 25th birthday. Join the celebration!", 24 | "help-title": "Helping is human too.", 25 | "help-subtitle": "Since its founding, Wikipedia has stood for non-commercial and fee-free access to knowledge. But its future depends on the support of people like you.", 26 | "help-content": [ 27 | "As the German non-profit association behind Wikipedia, we provide support to its volunteers and maintain its technical infrastructure. This wouldn't be possible without the many amazing people who've made donations in the past weeks. But what provides us even more security in our planning is the recurring support of dedicated supporting members.", 28 | "That's why I'm asking you to become a supporting member of Wikimedia Deutschland. With your contribution you'll be helping us secure the future and further development of Wikipedia over the long term.", 29 | "As a supporting member you'll be doing your part to ensure that Wikipedia remains a bulwark of reliable knowledge: independent, free and, in the best sense, human." 30 | ], 31 | "help-thank-you": "Thank you so much!", 32 | "stats": [ 33 | { "number": "113.000", "text": "Supporting members" }, 34 | { "number": "5 €", "text": "Average monthly membership fee" }, 35 | { "number": "2 €", "text": "Monthly minimum contribution" } 36 | ], 37 | "cta-donate-5": "Support with €5 per month", 38 | "cta-donate-other": "Support with a different amount", 39 | "reasons": [ 40 | "Membership fees are tax deductible", 41 | "Automatic donation receipt", 42 | "No risk: You can cancel at any time", 43 | "Free gift: Our exclusive Wikipedia tote-bag", 44 | "Insights into our projects", 45 | "Invitations to Wikimedia events" 46 | ] 47 | } 48 | -------------------------------------------------------------------------------- /i18n/de_DE/data/thank_you_content.json: -------------------------------------------------------------------------------- 1 | { 2 | "mini-thank-you": "Danke!", 3 | "mini-message" : "Rund 251.000 Menschen haben in den letzten Wochen gespendet – und damit die Unabhängigkeit der Wikipedia verteidigt. Und auch allen, die Wikipedia nur genutzt haben, danken wir von Herzen!", 4 | "mini-progress-bar-text" : "Spendenziel erreicht!", 5 | "mini-button" : "Was Sie bewirken", 6 | "close" : "schließen", 7 | "read-more" : "Weiterlesen", 8 | "read-less" : "Weniger lesen", 9 | "photo-credit" : "Foto: Jason Krüger für Wikimedia Deutschland", 10 | "photo-license" : "CC BY 4.0", 11 | "more-info" : "Weitere Informationen auf unserer Webseite", 12 | "use-of-funds" : "Was Ihre Spende bewirkt", 13 | "main-message-title": "Danke!", 14 | "main-message-content": "Sie alle haben Wikipedia in diesen bewegten Zeiten den Rücken gestärkt – ob Sie nun gespendet oder mit dem Lesen von Artikeln die ungebrochene Relevanz dieses einzigartigen Projektes bewiesen haben! Ein kraftvolles Signal für unabhängiges und verlässliches Wissen, gerade zum bevorstehenden 25. Geburtstag von Wikipedia.", 15 | "main-message-name": "Ihre Franziska Heine", 16 | "main-message-position": "Geschäftsführende Vorständin Wikimedia Deutschland e. V.", 17 | "knowledge-title": "Wissen ist menschlich.", 18 | "knowledge-subtitle": "Hunderttausende Menschen haben mit Wikipedia das größte Wissensprojekt aller Zeiten erschaffen. Diese Gemeinschaft sorgt dafür, dass wir auch in diesen Zeiten Wikipedia vertrauen können.", 19 | "knowledge-content": [ 20 | "In wenigen Tagen wird Wikipedia 25. Wir feiern die vielen Freiwilligen, die seither die größte Enzyklopädie aller Zeiten geschaffen haben. In ihrer Freizeit schreiben und pflegen sie Millionen von Artikeln: gemeinschaftlich und nach festen Regeln. Der Neutralität verpflichtet, auf Fakten gestützt und mit Quellen belegt. Dafür steht die Wikipedia seit ihrer Gründung. Es sind echte Menschen, deren Arbeit wir vertrauen können – weil sie transparent und überprüfbar ist.", 21 | "Heute verändert sich die Suche nach Wissen durch KI-Chatbots grundlegend. Auch wenn sie verlässlich erscheinen, sind sie Maschinen ohne Bewusstsein für richtig und falsch. Bei dem, was sie als Fakten und Wissen ausgeben, ist immer Vorsicht geboten. Wie auch gegenüber jenen, die sie als Geschäftsmodell betreiben. Solchen Algorithmen und ihren Besitzern mit eigenen Interessen dürfen wir das Wissen der Menschheit nicht überlassen. Mehr denn je brauchen wir eine Wikipedia, hinter der vertrauenswürdige Menschen stehen!" 22 | ], 23 | "birthday-blurb": "Wir feiern den 25. Geburtstag von Wikipedia. Feiern Sie mit!", 24 | "help-title": "Helfen ist auch menschlich.", 25 | "help-subtitle": "Seit ihrer Gründung steht die Wikipedia für einen nicht-kommerziellen und kostenfreien Zugang zu Wissen. Ihre Zukunft hängt aber auch davon ab, dass Menschen wie Sie sie unterstützen.", 26 | "help-content": [ 27 | "Als deutscher Förderverein hinter Wikipedia stärken wir den Freiwilligen den Rücken und sichern die technische Infrastruktur. Das ist nur möglich dank der vielen tollen Menschen, die in den vergangenen Wochen gespendet haben. Noch mehr Planungssicherheit ermöglicht uns allerdings die regelmäßige Unterstützung engagierter Fördermitglieder.", 28 | "Deshalb meine Bitte: Werden Sie Fördermitglied von Wikimedia Deutschland und helfen Sie mit Ihrem Beitrag, die Zukunft und Weiterentwicklung von Wikipedia langfristig zu sichern.", 29 | "Als Fördermitglied tragen Sie dazu bei, dass Wikipedia ein Bollwerk des verlässlichen Wissens bleibt. Unabhängig, kostenlos – und im besten Sinne menschlich." 30 | ], 31 | "help-thank-you": "Vielen Dank!", 32 | "stats": [ 33 | { "number": "113.000", "text": "Fördermitglieder" }, 34 | { "number": "5 €", "text": "durchschnittlicher Monatsbeitrag" }, 35 | { "number": "2 €", "text": "Mindestbeitrag im Monat" } 36 | ], 37 | "cta-donate-5": "Mit 5 € im Monat fördern", 38 | "cta-donate-other": "Mit einem anderen Betrag fördern", 39 | "reasons": [ 40 | "Mitgliedsbeiträge sind steuerlich absetzbar", 41 | "Automatische Zuwendungsbescheinigung", 42 | "Kein Risiko: Kündigung jederzeit einfach möglich", 43 | "Auf Wunsch: Unser exklusiver Wikipedia-Stoffbeutel", 44 | "Einblicke in spannende Projekte", 45 | "Einladungen zu Wikimedia-Veranstaltungen" 46 | ] 47 | } 48 | -------------------------------------------------------------------------------- /i18n/en_GB/data/use_of_funds_content.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Where does my donation go?", 3 | "summary": "It is for a Wikipedia that is always reliable in terms of organizational and technical aspects, now and in the future. For free access to encyclopedic, trustworthy knowledge at all times and wherever you are. It is also for you – and for all other people around the world.", 4 | "callToAction": "Donate now", 5 | 6 | "accordion": { 7 | "items": [ 8 | { 9 | "title": "Technology and IT work in Germany", 10 | "content": "In order for our volunteers to always be working under optimal conditions on Wikipedia and its fellow projects, they need the best technical infrastructure. Furthermore, that infrastructure needs to be easy to use. That's why further development of the technology behind the projects represents our greatest field of endeavor, both in terms of staffing and spending. Our commitment in this area has made us a technical pioneer in the free-knowledge movement." 11 | }, 12 | { 13 | "title": "Supporting the volunteers", 14 | "content": "Volunteers in our projects receive no money, but we make a large investment in supporting them. Wikimedia steps in where volunteer dedication alone isn't enough: We organize events, purchase specialist literature, enable collaborations and supply photo equipment for photos on Wikipedia. We also provide funding for local spaces in various cities across Germany where volunteers can do their work. In short: We're there for them whenever they need us." 15 | }, 16 | { 17 | "title": "Strengthening Wikipedia projects across the world", 18 | "content": "Wikipedia is a global project, with more than 300 language versions. If we are to secure and further develop these international activities, it demands of us a consistent financial commitment. Having performant, data-minimizing, secure technology is crucial. Wikimedia independently runs seven server farms across the globe. Beyond that we assist with grants, legal assistance and other measures in building thriving communities of volunteers all over the world." 19 | }, 20 | { 21 | "title": "Operational costs", 22 | "content": "Our colleagues in the Berlin office make sure that our organizational and financial processes work reliably. They take care of matters such as processing incoming donations and handling the many and varied concerns of our supporters. They also respond to all the requests regarding our projects and see to raising their public profiles." 23 | } 24 | ], 25 | "summary": "And even that's not all: we work closely with cultural institutions, act as a political point of contact, stay active in European affairs and strive to gain even more volunteers for our projects. Always with the same goal: creating more Free Knowledge -- for us all!" 26 | }, 27 | 28 | "benefits": { 29 | "title": "How your donation makes a difference", 30 | "items": [ 31 | { 32 | "icon": "hand", 33 | "content": "Your donation is a vital contribution to provide everybody around the world with free access to knowledge at all times." 34 | }, 35 | { 36 | "icon": "smartphone", 37 | "content": "Your donation is a contribution to maintaining Wikipedia’s secure and stable infrastructure and user-friendly interface in the future." 38 | }, 39 | { 40 | "icon": "world", 41 | "content": "Your donation backs our efforts to promote the global establishment of regional Wikipedia communities." 42 | }, 43 | { 44 | "icon": "megaphone", 45 | "content": "Your donation is our most important source of income. It ensures that Wikipedia can remain independent of advertising, commercial interests or third-party funding." 46 | }, 47 | { 48 | "icon": "twentyfourseven", 49 | "content": "Last, but not least, your donation is your contribution towards making sure you always have Wikipedia at your fingertips as your personal source of knowledge, offering a uniquely wide range of information to help you find answers to your questions." 50 | } 51 | ] 52 | }, 53 | 54 | "revenueComparison": { 55 | "title": "Why we only need €8,000,000 ", 56 | "content": [ 57 | "Our goal to reach €8.0 million in donations is an important part of our total planned revenue for 2026. Without a doubt, this is a lot of money.", 58 | "However, if you consider that Wikipedia ranks as the fifth most visited website worldwide, this figure is put into perspective. Because compared to other top websites, we only need an extraordinarily small budget to cover our running costs and for investments into the future. The only reason why this is possible is because Wikipedia does not pursue a “business model”. The contributions to the project are written by volunteers and we as an organisation only have around 900 members of staff worldwide. In addition, we are a non-profit organization, which obliges us to handle our revenue responsibly and efficiently." 59 | ], 60 | "companies": { 61 | "title": "Annual revenue worldwide – a comparison", 62 | "items": [ 63 | { 64 | "name": "Google", 65 | "budget": 348, 66 | "budgetString": "$348b", 67 | "link": "https://www.statista.com/statistics/266206/googles-annual-global-revenue/", 68 | "linkText": "Source" 69 | }, 70 | { 71 | "name": "Amazon", 72 | "budget": 637, 73 | "budgetString": "$637b", 74 | "link": "https://www.statista.com/statistics/266282/annual-net-revenue-of-amazoncom/", 75 | "linkText": "Source" 76 | }, 77 | { 78 | "name": "Facebook", 79 | "budget": 164, 80 | "budgetString": "$164b", 81 | "link": "https://www.statista.com/statistics/268604/annual-revenue-of-facebook/", 82 | "linkText": "Source" 83 | }, 84 | { 85 | "name": "Wikipedia", 86 | "budget": 0.21, 87 | "budgetString": "$0.21b", 88 | "link": "", 89 | "linkText": "" 90 | } 91 | ] 92 | } 93 | }, 94 | 95 | "closingParagraph" : "The annual plans of Wikimedia Deutschland and the Wikimedia Foundation provide a detailed insight into our international activities and our activities in Germany." 96 | } 97 | -------------------------------------------------------------------------------- /i18n/de_DE/data/use_of_funds_content.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Wofür wird Ihre Spende verwendet?", 3 | "summary": "Für eine organisatorisch und technisch stets verlässliche Wikipedia, heute und in Zukunft. Für freien Zugang zu umfassendem, vertrauenswürdigem Wissen immer und überall. Also für Sie – und alle Menschen weltweit.", 4 | "callToAction": "Jetzt spenden", 5 | 6 | "accordion": { 7 | "items": [ 8 | { 9 | "title": "Technik und IT in Deutschland", 10 | "content": "Damit die Freiwilligen immer unter optimalen Bedingungen in Wikipedia & Co. arbeiten können, brauchen sie die beste technische Infrastruktur. Diese muss zudem einfach zu bedienen sein. Daher ist die Weiterentwicklung der Technik hinter den Projekten unser personell wie auch finanziell größter Aufgabenbereich. Dieses Engagement hat uns zum technischen Pionier der Bewegung für Freies Wissen gemacht." 11 | }, 12 | { 13 | "title": "Unterstützung der Freiwilligen", 14 | "content": "Die Freiwilligen in unseren Projekten erhalten kein Geld, aber wir investieren viel in ihre Unterstützung. Wikimedia kommt da ins Spiel, wo freiwilliges Engagement allein nicht ausreicht: Wir organisieren z. B. Veranstaltungen, finanzieren Fachliteratur, ermöglichen Kooperationen oder stellen Fotoausrüstungen für die Bebilderung der Wikipedia zur Verfügung. Auch finanzieren wir in verschiedenen Städten in Deutschland lokale Räume für die Arbeit der Freiwilligen. Kurz: Wir sind für sie da, wo immer sie uns brauchen." 15 | }, 16 | { 17 | "title": "Weltweite Stärkung der Wikipedia-Projekte", 18 | "content": "Wikipedia ist ein weltweites Projekt, mit mehr als 300 Sprachversionen. Die Sicherung und Weiterentwicklung der internationalen Aktivitäten erfordert daher unser beständiges finanzielles Engagement. Entscheidend ist eine leistungsfähige, datensparsame und sichere Technik. Wikimedia betreibt eigenständig weltweit sieben Serverfarmen, damit Wikipedia immer und überall schnell erreichbar ist und niemand Ihre Daten einsehen kann. Darüber hinaus helfen wir mit Zuschüssen, Rechtsbeistand und anderen Maßnahmen beim Aufbau lebendiger Gemeinschaften von Freiwilligen überall auf der Welt." 19 | }, 20 | { 21 | "title": "Operative Kosten", 22 | "content": "Die Mitarbeitenden in unserer Geschäftsstelle in Berlin stellen sicher, dass unsere organisatorischen und finanziellen Prozesse zuverlässig funktionieren. Sie kümmern sich z. B. um die Bearbeitung der eingehenden Spenden und um die vielen unterschiedlichen Anliegen unserer Unterstützenden. Darüber hinaus beantworten sie die vielen Anfragen rund um unsere Projekte und sorgen dafür, dass diese in der Öffentlichkeit bekannter werden." 23 | } 24 | ], 25 | "summary": "Und das ist noch nicht alles: Wir arbeiten mit Kultureinrichtungen zusammen, sind Ansprechpartner für die Politik, engagieren uns auf europäischer Ebene und versuchen, noch mehr Freiwillige für unsere Projekte zu gewinnen. Immer mit dem Ziel: Mehr Freies Wissen zu schaffen – für uns alle!" 26 | }, 27 | 28 | "benefits": { 29 | "title": "Was Ihre Spende bewirkt", 30 | "items": [ 31 | { 32 | "icon": "hand", 33 | "content": "Ihre Spende ist ein wichtiger Beitrag, um allen Menschen überall auf der Welt und zu jedem Zeitpunkt freien Zugang zu Wissen zu ermöglichen." 34 | }, 35 | { 36 | "icon": "smartphone", 37 | "content": "Ihre Spende trägt dazu bei, die sichere, stabile Infrastruktur und einfache Bedienbarkeit von Wikipedia auch in Zukunft zu erhalten." 38 | }, 39 | { 40 | "icon": "world", 41 | "content": "Ihre Spende unterstützt unsere Bemühungen, weltweit die Bildung regionaler Wikipedia-Communities zu fördern." 42 | }, 43 | { 44 | "icon": "megaphone", 45 | "content": "Ihre Spende ist die wichtigste Einnahmequelle, die wir haben. Sie stellt sicher, dass Wikipedia auch weiterhin von Werbung, kommerziellen Interessen oder Drittmitteln unabhängig bleibt." 46 | }, 47 | { 48 | "icon": "twentyfourseven", 49 | "content": "Ihre Spende ist nicht zuletzt der Beitrag, den Sie leisten, damit Wikipedia immer und überall für Sie persönlich da ist und in einzigartiger Breite Ihre Fragen beantworten kann." 50 | } 51 | ] 52 | }, 53 | 54 | "revenueComparison": { 55 | "title": "Warum wir nur 8.000.000 € brauchen", 56 | "content": [ 57 | "Unser Spendenziel von 8,0 Millionen € ist ein wichtiger Teil unserer für das Jahr 2026 geplanten Gesamteinnahmen. Das ist zweifelsohne viel Geld.", 58 | "Berücksichtigt man allerdings, dass Wikipedia zu den Top-10-Webseiten gehört, so relativieren sich diese Zahlen. Denn im Vergleich zu anderen Top-Webseiten benötigen wir ein außergewöhnlich geringes Budget für den laufenden Betrieb und für Investitionen in die Zukunft.", 59 | "Dies ist allein deshalb möglich, weil Wikipedia kein „Geschäftsmodell“ verfolgt. Das Projekt wird ehrenamtlich erstellt, während wir als Organisation dahinter weltweit nur rund 900 Mitarbeitende haben. Zudem sind wir gemeinnützig, das verpflichtet uns zu einem verantwortungsbewussten und effizienten Umgang mit den Einnahmen." 60 | ], 61 | "companies": { 62 | "title": "Vergleich der Jahreseinnahmen (weltweit)", 63 | "items": [ 64 | { 65 | "name": "Google", 66 | "budget": 348, 67 | "budgetString": "348 Mrd. $", 68 | "link": "https://www.statista.com/statistics/266206/googles-annual-global-revenue/", 69 | "linkText": "Quelle" 70 | }, 71 | { 72 | "name": "Amazon", 73 | "budget": 637, 74 | "budgetString": "637 Mrd. $", 75 | "link": "https://www.statista.com/statistics/266282/annual-net-revenue-of-amazoncom/", 76 | "linkText": "Quelle" 77 | }, 78 | { 79 | "name": "Facebook", 80 | "budget": 164, 81 | "budgetString": "164 Mrd. $", 82 | "link": "https://www.statista.com/statistics/268604/annual-revenue-of-facebook/", 83 | "linkText": "Quelle" 84 | }, 85 | { 86 | "name": "Wikipedia", 87 | "budget": 0.21, 88 | "budgetString": "0,21 Mrd. $", 89 | "link": "", 90 | "linkText": "" 91 | } 92 | ] 93 | } 94 | }, 95 | 96 | "closingParagraph" : "Die Jahrespläne von Wikimedia Deutschland und der Wikimedia Foundation enthalten weitere Informationen über unsere internationalen Aktivitäten und unsere Aktivitäten in Deutschland." 97 | } 98 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Fundraising frontend content repository 2 | 3 | [![Build Status](https://travis-ci.org/wmde/fundraising-frontend-content.svg?branch=master)](https://travis-ci.org/wmde/fundraising-frontend-content) 4 | 5 | This is a repository for the textual content of the fundraising application. 6 | 7 | ## Content Organization 8 | * `data`: Language-independent content that is used internally. Currently it's the black- and whitelists for address fields and comments. 9 | * `i18n`: Language-dependent content. 10 | * `de_DE`: Sub folders named by language/locale identifier. Each language has a dedicated subdirectory. 11 | * `data`: Language-dependent configuration options, like the list of allowed page URLs. 12 | * `mail`: Mail template snippets. For mail templates that consist of multiple snippets, the templates are placed in a subdirectory. The files must not contain HTML! 13 | * `messages`: JSON files with translations. 14 | * `shared`: Content that is used both for E-Mails and in the web application. 15 | * `web`: Content that is used in the web application. This content may contain simple, valid HTML. 16 | * `pages`: Content for pages defined in `data/pages.json` 17 | * `resources`: Web resources that will be available through the web server, like images or PDFs. 18 | * `...`: Language-independent resources (e.g. logos). 19 | * `de_DE`: Sub folders named by language/locale identifier. Each language has a dedicated subdirectory. 20 | * `...`: Language-dependent resources (e.g. documents containing text). 21 | 22 | ## Extracting "Use of funds" content for banners 23 | 24 | > [!Note] 25 | > Banners in [`wikipedia.de`](https://github.com/wmde/wikipedia.de-banners/) currently include the JSON directly. 26 | 27 | Banners on `wikipedia.org` (managed with 'CentralNotice') need the "Use of funds" content as data attributes in an HTML tag. 28 | 29 | First, make sure the source JSON files in `i18n/de_DE/data` and `i18n/en_GB/data` folder contain the latest changes. The source JSON files use the following filename convention:
30 | `use_of_funds_content[_YYYY].json `
31 | e.g. `use_of_funds_content.json` or `use_of_funds_content_2025.json` 32 | 33 | Here, `_YYYY` is optional 34 | 35 | The source JSON file without the `_YYYY` suffix will always exist. Sometimes, we are in a transition phase, where we have an *additional* source file with the suffix, with new and improved content. 36 | During this transition phase, the [fundraising-application](https://github.com/wmde/fundraising-application/blob/6df3f6261981f0fd2582961f87db042eed6298cb/src/Factories/FunFunFactory.php#L438) links to either the file with or without the suffix. During that time, the content repository needs to contain both files, to support the content deployment independent of application deployment. 37 | See section "[Clean up UoF source JSON file](#clean-up-uof-source-json-file)" to see what happens after the transition phase. 38 | 39 | The following text explains how to generate the “Use of Funds” text for MediaWiki for both German and English language 40 | (using `bin/extract_to_mediawiki` script and `Composer` command). 41 | 42 | #### Composer command 43 | 44 | - Default (no year): `composer mediawiki` 45 | - With year: `composer mediawiki -- [YYYY]` 46 | - e.g. `composer mediawiki -- 2026` 47 | 48 | **Note**: The `--` ensures Composer forwards `YYYY` to each script entry 49 | 50 | #### File‑naming conventions 51 | 52 | | JSON source file | Output file | 53 | |--------------------------------|-----------------------------------------------------------------| 54 | | use_of_funds_content.json | use-of-funds-de_DE.txt /
use-of-funds-en_GB.txt | 55 | | use_of_funds_content_2025.json | use-of-funds-de_DE-2025.txt /
use-of-funds-de_DE-2025.txt | 56 | | thank_you_content.json | thank-you-de_DE.txt /
thank-you-en_GB.txt | 57 | | thank_you_content_2025.json | thank-you-de_DE-2025.txt /
thank-you-de_DE-en_GB-2025.txt | 58 | 59 | The [Composer command](#composer-command) will only generate the files with the suffix `_YYYY` when you pass a year (`YYYY`) in. 60 | > [!TIP] 61 | > If you don't want to open the files in a text editor to copy them into MediaWiki, you can copy them directly to the clipboard with the following commands:
`cat mediawiki_use_of_funds_de.txt | xclip -sel c` (Linux) and
`cat mediawiki_use_of_funds_de.txt | pbcopy` (Mac) 62 | #### What is happening behind the scenes? 63 | 64 | #### Script: `bin/extract_to_mediawiki` 65 | 66 | - Default (no year): `php bin/extract_to_mediawiki ` 67 | - ``- which language folder to read (de_DE or en_GB). 68 | - e.g. `php bin/extract_to_mediawiki de` Or `php bin/extract_to_mediawiki en` 69 | 70 | - With year: `php bin/extract_to_mediawiki [YYYY]` 71 | - `YYYY` (optional) - four‑digit year 72 | - e.g. `php bin/extract_to_mediawiki de 2023` Or `php bin/extract_to_mediawiki en 2023` 73 | 74 | **Output:** 75 | It writes the output file in the repo's root: `mediawiki_use_of_funds_[_YYYY].txt` 76 | 77 | e.g. `use-of-funds-de_DE.txt` / `use-of-funds-en_GB.txt` Or
78 |   `use-of-funds-de_DE-2025.txt` / `use-of-funds-de_DE-2025.txt` 79 | 80 | ## Clean up UoF source JSON file 81 | 82 | When the [fundraising-application](https://github.com/wmde/fundraising-application/) uses the "latest" UoF, it's time 83 | to clean up the duplicate UoF JSON file. Please follow the ticket below to achieve that: 84 | 85 | [Remove old UoF content and scripts from content repo](https://phabricator.wikimedia.org/T398431) 86 | 87 | ## FAQ 88 | 89 | ### Where to put translations? 90 | If they are very short snippets of text like labels or messages, place them in `messages/messages.json`. Otherwise, create a file in `mail`, `shared` or `web`. 91 | 92 | ### What HTML tags are allowed? 93 | Have a look at the [list of allowed tags in the content provider Repository](https://github.com/wmde/fundraising-content-provider/blob/master/src/HtmlPurifier.php#L21-L28). 94 | 95 | ### What template syntax is allowed? 96 | Only `{% include %}` and `{$ variable $}` statements. 97 | 98 | ### Where is the regex in data/validation.json used? 99 | These are being shared and used for client and server side validation. Currently, they're being used in the following places: 100 | 101 | * The Fundraising Frontend app outputs them as application vars used by Vuejs for client side form validation. 102 | * They are injected into the Fun Validators `AddressValidator` for server side validation. 103 | -------------------------------------------------------------------------------- /data/bad_words.txt: -------------------------------------------------------------------------------- 1 | aasgeier 2 | abspritze 3 | ackerfresse 4 | affenarsch 5 | affenhirn 6 | affenkotze 7 | afterlecker 8 | aknefresse 9 | almosenarsch 10 | analadmiral 11 | analbesamer 12 | analbohrer 13 | analentjungferer 14 | analerotiker 15 | analfetischist 16 | analförster 17 | analgeneral 18 | analnegerdildo 19 | analpresser 20 | analratte 21 | analritter 22 | analsex 23 | armleuchter 24 | arschaufreißer 25 | arschbackenhörnchen 26 | arschbackenschänder 27 | arschbesamer 28 | arschentjungferer 29 | arscheule 30 | arschficker 31 | arschgeburt 32 | arschgeige 33 | arschgesicht 34 | arschgranate 35 | arschhaarfetischist 36 | arschhaarrasierer 37 | arschhöhlenforscher 38 | arschkrampe 39 | arschkratzer 40 | arschlecker 41 | arschloch 42 | arschlöcher 43 | arschmade 44 | arschratte 45 | arschzapfen 46 | astlochficker 47 | auspufflutscher 48 | badenutte 49 | bananenstecker 50 | bastard 51 | bauernschlampe 52 | beeeehindert 53 | behindi 54 | behindis 55 | bekloppter 56 | beklopter 57 | bettnässer 58 | bettpisser 59 | bettspaltenficker 60 | bimbo 61 | bitch 62 | bitchnutte 63 | blechfotze 64 | blödmann 65 | bohnenfresser 66 | brechfurz 67 | bullensohn 68 | bullshit 69 | bummsen 70 | bumsen 71 | bumsklumpen 72 | buschnutte 73 | buttsucker 74 | bückfleisch 75 | bückstück 76 | bückvieh 77 | dachlattengesicht 78 | dackelficker 79 | diplomarschloch 80 | doof 81 | dorfdepp 82 | drecks 83 | drecksack 84 | drecksau 85 | dreckschlitz 86 | dreckschüppengesicht 87 | drecksfotze 88 | drecksmösendagmar 89 | drecksnigger 90 | drecksnutte 91 | dreckspack 92 | dreckstürke 93 | dreckvotze 94 | dummkopf 95 | dummschwätzer 96 | dumpfbacke 97 | dünnpfifftrinker 98 | eichellecker 99 | eierkopf 100 | eierlutscher 101 | eiswürfelpisser 102 | entenfisterer 103 | epilepi 104 | epilepis 105 | epileppis 106 | evolutionsbremse 107 | faltenficker 108 | ferkelficker 109 | fettarsch 110 | fettgondel 111 | fettsack 112 | fettsau 113 | feuchtwichser 114 | fichtenficker 115 | fickarsch 116 | fickbratze 117 | fickdreck 118 | fickfehler 119 | fickfetzen 120 | fickfresse 121 | fickfrosch 122 | fickfucker 123 | fickgelegenheit 124 | fickgesicht 125 | fickmatratze 126 | fickmaus 127 | ficknudel 128 | fickpfosten 129 | ficksau 130 | fickschlitz 131 | fickschnitte 132 | fickschnitzel 133 | flachtitte 134 | flussfotze 135 | fotze 136 | fotzenforscher 137 | fotzenfresse 138 | fotzenknecht 139 | fotzenkopf 140 | fotzenkruste 141 | fotzenkuchen 142 | fotzenlecker 143 | fotzenlöckchen 144 | fotzenpisser 145 | fotzenschmuser 146 | fotzenstopfer 147 | fotzhobel 148 | fotzkopf 149 | fotzkopp 150 | frisösenficker 151 | frisösenfotze 152 | fritzfink 153 | froschfotze 154 | froschfotzenficker 155 | froschfotzenleder 156 | fuck 157 | fucker 158 | funse 159 | furz 160 | futtenlecker 161 | futtgesicht 162 | fäkalerotiker 163 | gabbafotze 164 | geilriemen 165 | gesichtsfotze 166 | gesichtskrebs 167 | großdeutschland 168 | großmaul 169 | gummifotzenficker 170 | gummipuppenbumser 171 | gummisklave 172 | hackfresse 173 | hafensau 174 | hamsterfresse 175 | hartgeldhure 176 | heil hitler 177 | hinterlader 178 | hirni 179 | hitler 180 | hittler 181 | hodenbeißer 182 | hodenkobolt 183 | hodensohn 184 | homobefickerarchloch 185 | honk 186 | hosenfüller 187 | hosenpisser 188 | hosenscheisser 189 | hosenscheißer 190 | huhrensohn 191 | hundeficker 192 | hundesohn 193 | hundetochter 194 | hurenlecker 195 | hurenpeter 196 | hurensohn 197 | hurentocher 198 | hurrensohn 199 | hühnerficker 200 | idiot 201 | idioten 202 | itakker 203 | ittaker 204 | judensau 205 | kackarsch 206 | kackfass 207 | kackfresse 208 | kacknoob 209 | kaktusficker 210 | kanacke 211 | kanake 212 | kanaken 213 | kanaldeckelbefruchter 214 | kanisterkopf 215 | kannacke 216 | kannake 217 | kappenkäse 218 | kartoffelficker 219 | kasperl 220 | kinderficken 221 | kinderficker 222 | kinderporno 223 | klapposkop 224 | klolecker 225 | klötenlutscher 226 | knoblauchfresser 227 | konzentrationslager 228 | kotgeburt 229 | kotnascher 230 | kotzbrocken 231 | kribbl 232 | kuppenkäse 233 | kümmeltürke 234 | kümmeltürken 235 | kürbisficker 236 | lackaffe 237 | laternenschlampe 238 | lebensunwert 239 | liebeskuchen 240 | lustbolzen 241 | lutscher 242 | magerschwanz 243 | masturbieren 244 | missgeburt 245 | mistsau 246 | miststück 247 | mitternachtsficker 248 | mißgeburt 249 | mohrenkopf 250 | mokkastübchenveredler 251 | mongo 252 | monsterbacke 253 | mumugeschmatze 254 | muschi 255 | muschilecker 256 | muschischlitz 257 | mutterficker 258 | möse 259 | mösenficker 260 | mösenlecker 261 | mösenputzer 262 | möter 263 | n00b 264 | nazi 265 | neger 266 | nigga 267 | nigger 268 | niggerschlampe 269 | nippelsauger 270 | notfallgeburt 271 | nutte 272 | nuttengesicht 273 | nuttensohn 274 | nuttenstecher 275 | nuttentochter 276 | ochsenpimmel 277 | penis 278 | peniskopf 279 | penislecker 280 | penislutscher 281 | penissalat 282 | pennerarsch 283 | perückenschaf 284 | pferdearsch 285 | pimmel 286 | pimmelarsch 287 | pimmelkopf 288 | pimmelkröte 289 | pimmellutscher 290 | pimmelpirat 291 | pimmelprinz 292 | pimmelschimmel 293 | pimmelvinni 294 | pimmelzwerg 295 | pissbirne 296 | pissbotte 297 | pisse 298 | pisser 299 | pissetrinker 300 | pissfisch 301 | pissflitsche 302 | pissnelke 303 | pizzagesicht 304 | polacke 305 | polacken 306 | popellfresser 307 | popostecker 308 | popunterlage 309 | pornhub 310 | porno 311 | pornoprengel 312 | pottsau 313 | prärieficker 314 | pussy 315 | randsteinwichser 316 | rindsriemen 317 | ritzenfummler 318 | rollbrooden 319 | rosettenhengst 320 | rosettenkönig 321 | rosettenlecker 322 | rosettentester 323 | sackfalter 324 | sackgesicht 325 | sackheini 326 | sacklutscher 327 | sackratte 328 | saftarsch 329 | sakfalter 330 | schamhaarlecker 331 | schamhaarschädel 332 | schandmaul 333 | scheiss 334 | scheisse 335 | scheisser 336 | scheissgesicht 337 | scheisshaufen 338 | scheiß 339 | scheißhaufen 340 | schimmelnutte 341 | schlammfotze 342 | schlampe 343 | schleimmöse 344 | schlitzpisser 345 | schmalspurficker 346 | schmuckbert 347 | schnuddelfresser 348 | schnurbeltatz 349 | schrumpelfotze 350 | schwanzlecken 351 | schwanzlurch 352 | schwanzlutscher 353 | schweinepriester 354 | schweineschwanzlutscher 355 | schwuchtel 356 | schwul 357 | schwutte 358 | shitfresser 359 | sieg heil 360 | sitzpisser 361 | spack 362 | spacko 363 | spaghettifresser 364 | spastard 365 | spasti 366 | spastis 367 | spermafresse 368 | spermarutsche 369 | spritzer 370 | stinkschlitz 371 | stricher 372 | stronzo 373 | teflongesicht 374 | tittenficker 375 | tittenspritzer 376 | tizzleficker 377 | trecksloch 378 | tumorkind 379 | tunte 380 | uhrensohn 381 | untermensch 382 | vergasen 383 | volldepp 384 | vollhorst 385 | vollidiot 386 | vollpfosten 387 | vollspack 388 | vollspacken 389 | vollspasti 390 | vorhaut 391 | votze 392 | votzenkopf 393 | votzenmieter 394 | weichei 395 | wichs 396 | wichsbart 397 | wichsbirne 398 | wichse 399 | wichser 400 | wichsfrosch 401 | wichsgesicht 402 | wichsgriffel 403 | wichsvorlage 404 | wickspickel 405 | wixer 406 | wixxer 407 | wixxs 408 | wixxxer 409 | wixxxs 410 | wixxxxer 411 | wurstsemmelfresser 412 | yankee 413 | zappler 414 | zecke 415 | zigeuner 416 | zyklopenfotze 417 | ärsche 418 | ölauge 419 | -------------------------------------------------------------------------------- /data/banned_terms.txt: -------------------------------------------------------------------------------- 1 | aasgeier 2 | abspritze 3 | ackerfresse 4 | affenarsch 5 | affenhirn 6 | affenkotze 7 | afterlecker 8 | aknefresse 9 | almosenarsch 10 | analadmiral 11 | analbesamer 12 | analbohrer 13 | analentjungferer 14 | analerotiker 15 | analfetischist 16 | analförster 17 | analgeneral 18 | analnegerdildo 19 | analpresser 20 | analratte 21 | analritter 22 | analsex 23 | armleuchter 24 | arschaufreißer 25 | arschbackenhörnchen 26 | arschbackenschänder 27 | arschbesamer 28 | arschentjungferer 29 | arscheule 30 | arschficker 31 | arschgeburt 32 | arschgeige 33 | arschgesicht 34 | arschgranate 35 | arschhaarfetischist 36 | arschhaarrasierer 37 | arschhöhlenforscher 38 | arschkrampe 39 | arschkratzer 40 | arschlecker 41 | arschloch 42 | arschlöcher 43 | arschmade 44 | arschratte 45 | arschzapfen 46 | astlochficker 47 | auspufflutscher 48 | badenutte 49 | bananenstecker 50 | bastard 51 | bauernschlampe 52 | beeeehindert 53 | behindi 54 | behindis 55 | bekloppter 56 | beklopter 57 | bettnässer 58 | bettpisser 59 | bettspaltenficker 60 | bimbo 61 | bitch 62 | bitchnutte 63 | blechfotze 64 | blödmann 65 | bohnenfresser 66 | brechfurz 67 | bullensohn 68 | bullshit 69 | bummsen 70 | bumsen 71 | bumsklumpen 72 | buschnutte 73 | buttsucker 74 | bückfleisch 75 | bückstück 76 | bückvieh 77 | dachlattengesicht 78 | dackelficker 79 | diplomarschloch 80 | doof 81 | dorfdepp 82 | drecks 83 | drecksack 84 | drecksau 85 | dreckschlitz 86 | dreckschüppengesicht 87 | drecksfotze 88 | drecksmösendagmar 89 | drecksnigger 90 | drecksnutte 91 | dreckspack 92 | dreckstürke 93 | dreckvotze 94 | dummkopf 95 | dummschwätzer 96 | dumpfbacke 97 | dünnpfifftrinker 98 | eichellecker 99 | eierkopf 100 | eierlutscher 101 | eiswürfelpisser 102 | entenfisterer 103 | epilepi 104 | epilepis 105 | epileppis 106 | evolutionsbremse 107 | faltenficker 108 | ferkelficker 109 | fettarsch 110 | fettgondel 111 | fettsack 112 | fettsau 113 | feuchtwichser 114 | fichtenficker 115 | fickarsch 116 | fickbratze 117 | fickdreck 118 | fickfehler 119 | fickfetzen 120 | fickfresse 121 | fickfrosch 122 | fickfucker 123 | fickgelegenheit 124 | fickgesicht 125 | fickmatratze 126 | fickmaus 127 | ficknudel 128 | fickpfosten 129 | ficksau 130 | fickschlitz 131 | fickschnitte 132 | fickschnitzel 133 | flachtitte 134 | flussfotze 135 | fotze 136 | fotzenforscher 137 | fotzenfresse 138 | fotzenknecht 139 | fotzenkopf 140 | fotzenkruste 141 | fotzenkuchen 142 | fotzenlecker 143 | fotzenlöckchen 144 | fotzenpisser 145 | fotzenschmuser 146 | fotzenstopfer 147 | fotzhobel 148 | fotzkopf 149 | fotzkopp 150 | frisösenficker 151 | frisösenfotze 152 | fritzfink 153 | froschfotze 154 | froschfotzenficker 155 | froschfotzenleder 156 | fuck 157 | fucker 158 | funse 159 | furz 160 | futtenlecker 161 | futtgesicht 162 | fäkalerotiker 163 | gabbafotze 164 | geilriemen 165 | gesichtsfotze 166 | gesichtskrebs 167 | großdeutschland 168 | großmaul 169 | gummifotzenficker 170 | gummipuppenbumser 171 | gummisklave 172 | hackfresse 173 | hafensau 174 | hamsterfresse 175 | hartgeldhure 176 | heil hitler 177 | hinterlader 178 | hirni 179 | hitler 180 | hittler 181 | hodenbeißer 182 | hodenkobolt 183 | hodensohn 184 | homobefickerarchloch 185 | honk 186 | hosenfüller 187 | hosenpisser 188 | hosenscheisser 189 | hosenscheißer 190 | huhrensohn 191 | hundeficker 192 | hundesohn 193 | hundetochter 194 | hurenlecker 195 | hurenpeter 196 | hurensohn 197 | hurentocher 198 | hurrensohn 199 | hühnerficker 200 | idiot 201 | idioten 202 | itakker 203 | ittaker 204 | judensau 205 | kackarsch 206 | kackfass 207 | kackfresse 208 | kacknoob 209 | kaktusficker 210 | kanacke 211 | kanake 212 | kanaken 213 | kanaldeckelbefruchter 214 | kanisterkopf 215 | kannacke 216 | kannake 217 | kappenkäse 218 | kartoffelficker 219 | kasperl 220 | kinderficken 221 | kinderficker 222 | kinderporno 223 | klapposkop 224 | klolecker 225 | klötenlutscher 226 | knoblauchfresser 227 | konzentrationslager 228 | kotgeburt 229 | kotnascher 230 | kotzbrocken 231 | kribbl 232 | kuppenkäse 233 | kümmeltürke 234 | kümmeltürken 235 | kürbisficker 236 | lackaffe 237 | laternenschlampe 238 | lebensunwert 239 | liebeskuchen 240 | lustbolzen 241 | lutscher 242 | magerschwanz 243 | masturbieren 244 | missgeburt 245 | mistsau 246 | miststück 247 | mitternachtsficker 248 | mißgeburt 249 | mohrenkopf 250 | mokkastübchenveredler 251 | mongo 252 | monsterbacke 253 | mumugeschmatze 254 | muschi 255 | muschilecker 256 | muschischlitz 257 | mutterficker 258 | möse 259 | mösenficker 260 | mösenlecker 261 | mösenputzer 262 | möter 263 | n00b 264 | nazi 265 | neger 266 | nigga 267 | nigger 268 | niggerschlampe 269 | nippelsauger 270 | notfallgeburt 271 | nutte 272 | nuttengesicht 273 | nuttensohn 274 | nuttenstecher 275 | nuttentochter 276 | ochsenpimmel 277 | penis 278 | peniskopf 279 | penislecker 280 | penislutscher 281 | penissalat 282 | pennerarsch 283 | perückenschaf 284 | pferdearsch 285 | pimmel 286 | pimmelarsch 287 | pimmelkopf 288 | pimmelkröte 289 | pimmellutscher 290 | pimmelpirat 291 | pimmelprinz 292 | pimmelschimmel 293 | pimmelvinni 294 | pimmelzwerg 295 | pissbirne 296 | pissbotte 297 | pisse 298 | pisser 299 | pissetrinker 300 | pissfisch 301 | pissflitsche 302 | pissnelke 303 | pizzagesicht 304 | polacke 305 | polacken 306 | popellfresser 307 | popostecker 308 | popunterlage 309 | pornhub 310 | porno 311 | pornoprengel 312 | pottsau 313 | prärieficker 314 | pussy 315 | randsteinwichser 316 | rindsriemen 317 | ritzenfummler 318 | rollbrooden 319 | rosettenhengst 320 | rosettenkönig 321 | rosettenlecker 322 | rosettentester 323 | sackfalter 324 | sackgesicht 325 | sackheini 326 | sacklutscher 327 | sackratte 328 | saftarsch 329 | sakfalter 330 | schamhaarlecker 331 | schamhaarschädel 332 | schandmaul 333 | scheiss 334 | scheisse 335 | scheisser 336 | scheissgesicht 337 | scheisshaufen 338 | scheiß 339 | scheißhaufen 340 | schimmelnutte 341 | schlammfotze 342 | schlampe 343 | schleimmöse 344 | schlitzpisser 345 | schmalspurficker 346 | schmuckbert 347 | schnuddelfresser 348 | schnurbeltatz 349 | schrumpelfotze 350 | schwanzlecken 351 | schwanzlurch 352 | schwanzlutscher 353 | schweinepriester 354 | schweineschwanzlutscher 355 | schwuchtel 356 | schwul 357 | schwutte 358 | shitfresser 359 | sieg heil 360 | sitzpisser 361 | spack 362 | spacko 363 | spaghettifresser 364 | spastard 365 | spasti 366 | spastis 367 | spermafresse 368 | spermarutsche 369 | spritzer 370 | stinkschlitz 371 | stricher 372 | stronzo 373 | teflongesicht 374 | tittenficker 375 | tittenspritzer 376 | tizzleficker 377 | trecksloch 378 | tumorkind 379 | tunte 380 | uhrensohn 381 | untermensch 382 | vergasen 383 | volldepp 384 | vollhorst 385 | vollidiot 386 | vollpfosten 387 | vollspack 388 | vollspacken 389 | vollspasti 390 | vorhaut 391 | votze 392 | votzenkopf 393 | votzenmieter 394 | weichei 395 | wichs 396 | wichsbart 397 | wichsbirne 398 | wichse 399 | wichser 400 | wichsfrosch 401 | wichsgesicht 402 | wichsgriffel 403 | wichsvorlage 404 | wickspickel 405 | wixer 406 | wixxer 407 | wixxs 408 | wixxxer 409 | wixxxs 410 | wixxxxer 411 | wurstsemmelfresser 412 | yankee 413 | zappler 414 | zecke 415 | zigeuner 416 | zyklopenfotze 417 | ärsche 418 | ölauge 419 | -------------------------------------------------------------------------------- /tests/Validation/RegExPatternValidationTest.php: -------------------------------------------------------------------------------- 1 | loadAddressValidationPatternsFromFile( 'de_DE/data/validation.json' ); 16 | $pattern = $addressValidationObject_DE['street']; 17 | 18 | $this->assertMatchesRegularExpression( "/$pattern/", $streetName); 19 | } 20 | 21 | /** 22 | * @dataProvider invalidStreetNameProvider 23 | */ 24 | public function testInvalidStreetNames( string $streetName ): void { 25 | $addressValidationObject_DE = $this->loadAddressValidationPatternsFromFile( 'de_DE/data/validation.json' ); 26 | $pattern = $addressValidationObject_DE['street']; 27 | 28 | $this->assertDoesNotMatchRegularExpression( "/$pattern/", $streetName); 29 | } 30 | 31 | public function validStreetNameProvider(): \Generator { 32 | yield [ 'Hundestraße 2' ]; 33 | yield [ 'Hundestraße ' ]; 34 | yield [ 'Hundestrasse AAA' ]; 35 | yield [ ' Hundestrasse ' ]; 36 | yield [ '2345678Hundestrasse A2AA' ]; 37 | yield [ 'AA' ]; 38 | yield [ ' Hundestr. 17 ' ]; 39 | yield [ 'Пирогова Ул., дом 22/2, кв. 187' ]; 40 | yield [ 'Pirogova Ul., bld. 22/2, appt. 191' ]; 41 | yield [ '40hao Lou 40dan Yuan 1201' ]; 42 | } 43 | 44 | public function invalidStreetNameProvider(): \Generator { 45 | yield [ '.' ]; 46 | yield [ ',7' ]; 47 | yield [ '..ß' ]; 48 | } 49 | 50 | /** 51 | * @dataProvider validCityNameProvider 52 | */ 53 | public function testValidCityNames( string $cityName ): void { 54 | $addressValidationObject_DE = $this->loadAddressValidationPatternsFromFile( 'de_DE/data/validation.json' ); 55 | $pattern = $addressValidationObject_DE['city']; 56 | 57 | $this->assertMatchesRegularExpression( "/$pattern/u", $cityName); 58 | } 59 | 60 | /** 61 | * @dataProvider invalidCityNameProvider 62 | */ 63 | public function testInvalidCityNames( string $cityName ): void { 64 | $addressValidationObject_DE = $this->loadAddressValidationPatternsFromFile( 'de_DE/data/validation.json' ); 65 | $pattern = $addressValidationObject_DE['city']; 66 | 67 | $this->assertDoesNotMatchRegularExpression( "/$pattern/u", $cityName); 68 | } 69 | 70 | public function validCityNameProvider(): \Generator { 71 | yield [ 'Augsburg' ]; 72 | yield [ 'Augsburg ' ]; 73 | yield [ ' Augsburg' ]; 74 | yield [ 'Bad Saulgau' ]; 75 | yield [ ' Villingen-Schwenningen' ]; 76 | yield [ 'Villingen-Schwenningen' ]; 77 | yield [ 'Villingen-Schwenningen4' ]; 78 | yield [ '4V' ]; 79 | yield [ '市区-崇文区 ' ]; 80 | yield [ 'Ставрополь' ]; 81 | } 82 | 83 | public function invalidCityNameProvider(): \Generator { 84 | yield [ '4' ]; 85 | yield [ '---' ]; 86 | yield [ '.,,' ]; 87 | yield [ ',' ]; 88 | } 89 | 90 | /** 91 | * @dataProvider validPostcodeProvider 92 | */ 93 | public function testValidPostcodes( string $postcode ): void { 94 | $addressValidationObject_DE = $this->loadAddressValidationPatternsFromFile( 'de_DE/data/validation.json' ); 95 | $pattern = $addressValidationObject_DE['postcode']; 96 | 97 | $this->assertMatchesRegularExpression( "/$pattern/u", $postcode ); 98 | } 99 | 100 | /** 101 | * @dataProvider invalidPostcodeProvider 102 | */ 103 | public function testInvalidPostcodes( string $postcode ): void { 104 | $addressValidationObject_DE = $this->loadAddressValidationPatternsFromFile( 'de_DE/data/validation.json' ); 105 | $pattern = $addressValidationObject_DE['postcode']; 106 | 107 | $this->assertDoesNotMatchRegularExpression( "/$pattern/u", $postcode ); 108 | } 109 | 110 | public function validPostcodeProvider(): \Generator { 111 | yield [ '2343545646' ]; 112 | yield [ 'abc abc 1' ]; 113 | yield [ 'AB-CD' ]; 114 | yield [ 'ABC-124' ]; 115 | yield [ '123 - ABC' ]; 116 | yield [ '市区-崇文区 123 ' ]; 117 | } 118 | 119 | public function invalidPostcodeProvider(): \Generator { 120 | yield [ ' 3 ' ]; 121 | yield [ ' a' ]; 122 | yield [ '/' ]; 123 | yield [ '---' ]; 124 | yield [ '.,,' ]; 125 | yield [ ',3' ]; 126 | } 127 | 128 | /** 129 | * @dataProvider validCountryProvider 130 | */ 131 | public function testValidCountries( string $country ): void { 132 | $addressValidationObject_DE = $this->loadAddressValidationPatternsFromFile( 'de_DE/data/validation.json' ); 133 | $pattern = $addressValidationObject_DE['country']; 134 | 135 | $this->assertMatchesRegularExpression( "/$pattern/u", $country ); 136 | } 137 | 138 | /** 139 | * @dataProvider invalidCountryProvider 140 | */ 141 | public function testInvalidCountries( string $country ): void { 142 | $addressValidationObject_DE = $this->loadAddressValidationPatternsFromFile( 'de_DE/data/validation.json' ); 143 | $pattern = $addressValidationObject_DE['country']; 144 | 145 | $this->assertDoesNotMatchRegularExpression( "/$pattern/u", $country ); 146 | } 147 | 148 | public function validCountryProvider(): \Generator { 149 | yield [ 'Deutschland ' ]; 150 | yield [ ' Süd Korea ' ]; 151 | yield [ 'България ' ]; 152 | yield [ 'កម្ពុជ' ]; 153 | yield [ 'Nord-Korea' ]; 154 | yield [ 'Südl. Inseln' ]; 155 | yield [ '123 - ABC' ]; 156 | yield [ '中国' ]; 157 | } 158 | 159 | public function invalidCountryProvider(): \Generator { 160 | yield [ '/' ]; 161 | yield [ '---' ]; 162 | yield [ '.,,' ]; 163 | yield [ ',' ]; 164 | yield [ ',d' ]; 165 | } 166 | 167 | /** 168 | * @dataProvider validEmailProvider 169 | */ 170 | public function testEmailValidation( string $email ): void { 171 | $addressValidationObject_DE = $this->loadAddressValidationPatternsFromFile( 'de_DE/data/validation.json' ); 172 | $pattern = $addressValidationObject_DE['email']; 173 | 174 | $this->assertMatchesRegularExpression( "/$pattern/u", $email ); 175 | } 176 | 177 | /** 178 | * @dataProvider invalidEmailProvider 179 | */ 180 | public function testInvalidEmails( string $email ): void { 181 | $addressValidationObject_DE = $this->loadAddressValidationPatternsFromFile( 'de_DE/data/validation.json' ); 182 | $pattern = $addressValidationObject_DE['email']; 183 | 184 | $this->assertDoesNotMatchRegularExpression( "/$pattern/u", $email ); 185 | } 186 | 187 | public function validEmailProvider(): \Generator { 188 | yield [ 'abc@gmail.com' ]; 189 | yield [ 'a.nonymous@example.com ' ]; 190 | yield [ 'name+tag@example.com' ]; 191 | yield [ 'name\@tag@example.com' ]; 192 | yield [ 'spaces\ are\ allowed@example.com' ]; 193 | yield [ '"spaces may be quoted"@example.com' ]; 194 | yield [ 'Pelé@example.com' ]; 195 | yield [ 'δοκιμή@παράδειγμα.δοκιμή' ]; 196 | } 197 | 198 | public function invalidEmailProvider(): \Generator { 199 | yield [ 'me@' ]; 200 | yield [ '@example.com' ]; 201 | //yield [ 'me.@example.com' ]; 202 | //yield [ 'me\@example.com' ]; 203 | //yield [ 'me@example..com' ]; 204 | } 205 | 206 | private function loadAddressValidationPatternsFromFile( string $path ): array { 207 | $file = file_get_contents( __DIR__ . '/../../i18n/' . $path ); 208 | $data = json_decode( $file, true ); 209 | 210 | return $data['address']; 211 | } 212 | 213 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Creative Commons Legal Code 2 | 3 | CC0 1.0 Universal 4 | 5 | CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE 6 | LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN 7 | ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS 8 | INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES 9 | REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS 10 | PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM 11 | THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED 12 | HEREUNDER. 13 | 14 | Statement of Purpose 15 | 16 | The laws of most jurisdictions throughout the world automatically confer 17 | exclusive Copyright and Related Rights (defined below) upon the creator 18 | and subsequent owner(s) (each and all, an "owner") of an original work of 19 | authorship and/or a database (each, a "Work"). 20 | 21 | Certain owners wish to permanently relinquish those rights to a Work for 22 | the purpose of contributing to a commons of creative, cultural and 23 | scientific works ("Commons") that the public can reliably and without fear 24 | of later claims of infringement build upon, modify, incorporate in other 25 | works, reuse and redistribute as freely as possible in any form whatsoever 26 | and for any purposes, including without limitation commercial purposes. 27 | These owners may contribute to the Commons to promote the ideal of a free 28 | culture and the further production of creative, cultural and scientific 29 | works, or to gain reputation or greater distribution for their Work in 30 | part through the use and efforts of others. 31 | 32 | For these and/or other purposes and motivations, and without any 33 | expectation of additional consideration or compensation, the person 34 | associating CC0 with a Work (the "Affirmer"), to the extent that he or she 35 | is an owner of Copyright and Related Rights in the Work, voluntarily 36 | elects to apply CC0 to the Work and publicly distribute the Work under its 37 | terms, with knowledge of his or her Copyright and Related Rights in the 38 | Work and the meaning and intended legal effect of CC0 on those rights. 39 | 40 | 1. Copyright and Related Rights. A Work made available under CC0 may be 41 | protected by copyright and related or neighboring rights ("Copyright and 42 | Related Rights"). Copyright and Related Rights include, but are not 43 | limited to, the following: 44 | 45 | i. the right to reproduce, adapt, distribute, perform, display, 46 | communicate, and translate a Work; 47 | ii. moral rights retained by the original author(s) and/or performer(s); 48 | iii. publicity and privacy rights pertaining to a person's image or 49 | likeness depicted in a Work; 50 | iv. rights protecting against unfair competition in regards to a Work, 51 | subject to the limitations in paragraph 4(a), below; 52 | v. rights protecting the extraction, dissemination, use and reuse of data 53 | in a Work; 54 | vi. database rights (such as those arising under Directive 96/9/EC of the 55 | European Parliament and of the Council of 11 March 1996 on the legal 56 | protection of databases, and under any national implementation 57 | thereof, including any amended or successor version of such 58 | directive); and 59 | vii. other similar, equivalent or corresponding rights throughout the 60 | world based on applicable law or treaty, and any national 61 | implementations thereof. 62 | 63 | 2. Waiver. To the greatest extent permitted by, but not in contravention 64 | of, applicable law, Affirmer hereby overtly, fully, permanently, 65 | irrevocably and unconditionally waives, abandons, and surrenders all of 66 | Affirmer's Copyright and Related Rights and associated claims and causes 67 | of action, whether now known or unknown (including existing as well as 68 | future claims and causes of action), in the Work (i) in all territories 69 | worldwide, (ii) for the maximum duration provided by applicable law or 70 | treaty (including future time extensions), (iii) in any current or future 71 | medium and for any number of copies, and (iv) for any purpose whatsoever, 72 | including without limitation commercial, advertising or promotional 73 | purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each 74 | member of the public at large and to the detriment of Affirmer's heirs and 75 | successors, fully intending that such Waiver shall not be subject to 76 | revocation, rescission, cancellation, termination, or any other legal or 77 | equitable action to disrupt the quiet enjoyment of the Work by the public 78 | as contemplated by Affirmer's express Statement of Purpose. 79 | 80 | 3. Public License Fallback. Should any part of the Waiver for any reason 81 | be judged legally invalid or ineffective under applicable law, then the 82 | Waiver shall be preserved to the maximum extent permitted taking into 83 | account Affirmer's express Statement of Purpose. In addition, to the 84 | extent the Waiver is so judged Affirmer hereby grants to each affected 85 | person a royalty-free, non transferable, non sublicensable, non exclusive, 86 | irrevocable and unconditional license to exercise Affirmer's Copyright and 87 | Related Rights in the Work (i) in all territories worldwide, (ii) for the 88 | maximum duration provided by applicable law or treaty (including future 89 | time extensions), (iii) in any current or future medium and for any number 90 | of copies, and (iv) for any purpose whatsoever, including without 91 | limitation commercial, advertising or promotional purposes (the 92 | "License"). The License shall be deemed effective as of the date CC0 was 93 | applied by Affirmer to the Work. Should any part of the License for any 94 | reason be judged legally invalid or ineffective under applicable law, such 95 | partial invalidity or ineffectiveness shall not invalidate the remainder 96 | of the License, and in such case Affirmer hereby affirms that he or she 97 | will not (i) exercise any of his or her remaining Copyright and Related 98 | Rights in the Work or (ii) assert any associated claims and causes of 99 | action with respect to the Work, in either case contrary to Affirmer's 100 | express Statement of Purpose. 101 | 102 | 4. Limitations and Disclaimers. 103 | 104 | a. No trademark or patent rights held by Affirmer are waived, abandoned, 105 | surrendered, licensed or otherwise affected by this document. 106 | b. Affirmer offers the Work as-is and makes no representations or 107 | warranties of any kind concerning the Work, express, implied, 108 | statutory or otherwise, including without limitation warranties of 109 | title, merchantability, fitness for a particular purpose, non 110 | infringement, or the absence of latent or other defects, accuracy, or 111 | the present or absence of errors, whether or not discoverable, all to 112 | the greatest extent permissible under applicable law. 113 | c. Affirmer disclaims responsibility for clearing rights of other persons 114 | that may apply to the Work or any use thereof, including without 115 | limitation any person's Copyright and Related Rights in the Work. 116 | Further, Affirmer disclaims responsibility for obtaining any necessary 117 | consents, permissions or other rights required for any use of the 118 | Work. 119 | d. Affirmer understands and acknowledges that Creative Commons is not a 120 | party to this document and has no duty or obligation with respect to 121 | this CC0 or use of the Work. 122 | -------------------------------------------------------------------------------- /i18n/en_GB/web/pages/privacy_protection.twig: -------------------------------------------------------------------------------- 1 |

2 | Responsible party and ways to contact the data privacy officer 3 |

4 |

5 | The responsible party for data processing on our website is the 6 |

7 | 8 |

9 | Wikimedia Deutschland e. V.
10 | Tempelhofer Ufer 23-24
11 | 10963 Berlin
12 | E-Mail: datenschutz@wikimedia.de
13 |
14 | Telefon: +49 (0) 30-577 11 62-0
15 | Fax: +49 (0) 30-577 11 62-99
16 |
17 | Geschäftsführende Vorständin: Franziska Heine
18 | Registered in the Register of Associations at the Berlin-Charlottenburg 19 | district court with the registration number 95 VR 590 B.
20 |
21 | VAT Reg No: DE263757776 22 |

23 | 24 |

25 | We have appointed a data privacy officer for our company. 26 |

27 | 28 |

29 | Thorsten Feldmann, LL.M.
30 | JBB Rechtsanwälte Jaschinski Biere Brexl Partnerschaft mbB
31 | Christinenstr. 18/19
32 | 10119 Berlin
33 | Telephone: (030) 44 37 65-0
34 | datenschutz@wikimedia.de 35 |

36 | 37 |

38 | Purposes of and legal basis for data processing 39 |

40 | 41 |
    42 |
  1. 43 | General use of the website 44 |

    45 | When using this offer, the data sent by your browser to the server is 46 | collected and stored. In general, this includes information about the 47 | type and the version of your browser, the operating system you use, the 48 | referrer URL (the website where you began your navigation to our website) 49 | as well as the time of the server request. This data cannot be linked to 50 | specific persons. We will carry out a statistical evaluation of the data. 51 | We process your IP address while the connection is established to enable 52 | us to make our website available to you. The legal basis for this is Art. 53 | 6 para. 1 lit. f) GDPR. Our legitimate interest lies in the aforementioned 54 | purpose. 55 |

    56 |
  2. 57 | 58 |
  3. 59 | Collection and processing of personal donor data 60 |

    61 | Wikimedia Deutschland collects and processes a range of 62 | personal data about their donors, including the donated amount, the 63 | address, telephone number, any donation comments and an email address. 64 | Tax legislation regulations oblige us to keep records of contact details 65 | and donation amounts. In addition, we also collect your bank details if 66 | you pay by bank transfer or direct debit. 67 |

    68 | 69 |

    70 | We will not publish, sell or let personal data or offer in them in any 71 | other way unless the donor has authorised us to do so, for example for 72 | publication in the donation ticker, or if this is necessary and allowed 73 | in line with the applicable legal requirements. If a donor has not 74 | expressly allowed the publication of their donor data, the data will be 75 | treated as confidential in line with the provisions of privacy legislation. 76 | Donor contact details are primarily used for the following purposes: 77 |

    78 | 79 |
      80 |
    • Payment processing
    • 81 |
    • Sending donation receipts by post
    • 82 |
    • Acknowledgements of individual donations
    • 83 |
    • Sending information about current and future Wikimedia activities
    • 84 |
    • Sending reminders about opportunities to donate by email
    • 85 |
    • Internal evaluation and accounting
    • 86 |
    • Reporting to financial authorities within the applicable legal framework
    • 87 |
    • Informing donors about changes to this guideline
    • 88 |
    89 | 90 |

    91 | The applicable legal basis is Art. 6 para 1 lit. b) GDPR. The legal basis 92 | for the legally required retention of the donation documents is Art. 6 93 | para 1 lit. c) GDPR. 94 |

    95 | 96 |

    97 | If you write a donation comment and send it to us under your own name, we 98 | process the comment and your name in order to potentially take your opinion 99 | and your comments into consideration in the future. If you additionally 100 | agree to the publication of the comment, we will publish your comment on 101 | Wikimedia channels. You can revoke your consent at any time with effect 102 | for the future, for example by sending an email to spenden@wikimedia.de. 103 | Up to that point, your personal data will be processed and immediately 104 | deleted afterwards. The legal basis for processing is Art. 6 para 1 105 | lit. a) GDPR. 106 |

    107 |
  4. 108 | 109 |
  5. 110 | Calls for donations by email 111 |

    112 | If you have sent us a donation and have not objected in advance, we will 113 | add your contact details to our calls for donations newsletter. In this 114 | case, we will use your email address to send you information about our 115 | latest calls for donations. The legal basis for processing your data is 116 | (Art. 6 para 1 lit. f) GDPR), and our legitimate interest is to inform 117 | you about the use of your donation, about new funding campaigns, and to 118 | ask you for a donation. Irrespective of sending us a donation, you can 119 | also register for our call for donations newsletter. In that case, we use 120 | your e-mail address to send you information about our latest calls for 121 | donations. The legal basis for processing your data in such a way is your 122 | consent (Art. 6 para 1, lit. a) GDPR). 123 |

    124 | 125 |

    126 | If you already sent us a donation in the past, we will use your personal 127 | data stored in connection with your previous donations (particularly your 128 | first name, surname, e-mail address, street and street number, postcode, 129 | city, country, form of address, and title) in order to personalize the 130 | newsletter addressed to you, for example by referring to previous donations. 131 | And finally, we analyze your use of our newsletter, e.g. by checking which 132 | link or banner you clicked. We do this in order to analyze how our calls for 133 | donations are received and – if applicable – how we may improve them in future. 134 |

    135 | 136 |

    137 | Processing data for this purpose is based on Art. 6 para1 lit.) GDPR, and 138 | our legitimate interest lies in the aforementioned purposes. 139 |

    140 | 141 |

    142 | Revoking and objecting: You can revoke your consent with future effect at any 143 | time or declare your objection to receiving calls for donations, e.g. by sending 144 | an e-mail to spenden@wikimedia.de or by clicking an unsubscribe link in one of the 145 | emails sent to you. Revoking or objecting does not affect the legality of processing 146 | data in the past. If you do not consent to the analysis, you can object at any time 147 | by cancelling the e-mails. 148 |

    149 | 150 |
  6. 151 | 152 |
  7. 153 | Calls for donations by post 154 |

    155 | Every once in a while, we promote a donations campaign by post and use the 156 | address data stated in your donation for this purpose. You can contest 157 | receiving postal mail at any time, either by sending an email to 158 | spenden@wikimedia.de or via the contact form. Immediately after receipt of 159 | your objection, your address will be removed from our mailing list. The 160 | basis for sending calls for donations by post is our legitimate interest 161 | in telling our donors about our current calls for donations in line with 162 | Art. 6 para 1 lit. f) GDPR. We use your address data to send calls for 163 | donations by post until you object, but at the most for a period of 3 years, 164 | starting with the end of the year when you made your last donation. 165 | Subsequently, the data is deleted if no other processing purposes require 166 | further storage of the data. 167 |

    168 |
  8. 169 |
170 | 171 |

Data recipients

172 |

173 | In order to fulfil our tasks (sending donation receipts and information), we work with 174 | external contractors who potentially process personal data for these purposes. These 175 | service providers are bound to Wikimedia Deutschland by contract and can only 176 | use personal data they receive in this context for the respective agreed purpose. 177 |

178 | 179 |

180 | In addition, we work with payment service providers (PayPal (Europe) S.à r.l. et Cie, 181 | S.C.A. and the Sofort GmbH). We transfer the data necessary for the payment to these 182 | service providers. All remaining processing of the payment takes place on the platforms 183 | of the service providers without us having any knowledge of or influence on any data 184 | processing taking place on these platforms. For credit card payments, we work with the 185 | payment service provider Micropayment. Please find more information about the processing 186 | of your data with our payment service providers below: 187 |

188 | 193 | 194 |

195 | Any processing of data necessary for the cooperation with these service providers is 196 | justified on the basis of Art. 6 para. 1 lit. f) GDPR. Our legitimate interest in this 197 | context is to offer you payment options that are as convenient as possible. 198 |

199 | 200 |

201 | Furthermore, a data transfer to third countries is not taking place. 202 |

203 | 204 |

Duration of storage

205 |

206 | Our log files are stored for 30 days. 207 |

208 | 209 |

210 | We store the data necessary for the donation for a period of 10 years from the end of the 211 | year of your final donation. 212 |

213 | 214 |

215 | If you gave us your consent to send you emails or did not object to receiving our donations 216 | newsletter, we will always process and store your data until you revoke your consent or object 217 | to their use. If we send you our donations newsletter based on our legitimate interest, we will 218 | process your data for this purpose, but at the most for a period of 3 years, starting with the 219 | end of the year when you made your last donation. 220 |

221 | 222 |

Data subject rights

223 |

224 | The General Data Protection Regulation (GDPR) guarantees you certain rights that you can 225 | exercise when interacting with us – insofar as the legal requirements are in place. 226 |

227 | 228 |

229 | Art. 15 GDPR – Right of access by the data subject: You have the right to request a 230 | confirmation from us whether we process personal data relating to you and if so, to 231 | specify the data and qualify how we process your data. 232 |

233 | 234 |

235 | Art. 16 GDPR – Right to rectification: You have the right to request the immediate 236 | correction of incorrect personal data relating to you. In this context, you also have 237 | the right to demand the completion of incomplete personal data – also by means of an 238 | additional declaration – in consideration of the purposes of processing the data. 239 |

240 | 241 |

242 | Art. 17 GDPR – Right to erasure (‘right to be forgotten’) You have the right to demand 243 | the erasure of personal data relating to you without delay. Please note the exception 244 | as stated under items II. and IV. 245 |

246 | 247 |

248 | Art.18 GDPR – Right to restriction of processing: You have the right to demand the 249 | restriction of processing from us. 250 |

251 | 252 |

253 | Art. 20 GDPR – Right to data portability: In the case of data processing with your 254 | consent or to fulfil a contract, you have the right to receive the personal data 255 | relating to you, which were made available to us by you, in a structured, commonly 256 | used and machine-readable format, and have the right to transmit those data to another 257 | controller without hindrance from us or to transmit the data directly to the other 258 | controller insofar as this is technically possible. 259 |

260 | 261 |

262 | Art. 21 GDPR – Right to object: You have the right to object at any time, on grounds 263 | relating to your particular situation, to the processing of personal data relating to 264 | you that is necessary either due to a legitimate interest on our part or to safeguard 265 | the performance of a task that is in the public interest, or in exercising public 266 | authority. 267 |

268 | 269 |

270 | If you object, we will no longer process your personal data unless we can provide 271 | evidence of compelling legitimate grounds for processing your data, which override 272 | your interests, rights and freedoms, or processing is necessary for the establishment, 273 | exercise or defence of legal claims. 274 |

275 | 276 |

277 | Insofar as we process personal data for direct mailings, you have the right to object 278 | against the processing of your data at any time. If you object to the processing for 279 | the purpose of direct mailings, we will no longer process your data for these purposes. 280 |

281 | 282 |

283 | Art. 77 GDPR in conjunction with Art. 19 GDPR – Right lodge a complaint with a 284 | supervisory authority: You have the right to lodge a complaint with a supervisory 285 | authority at any time, particularly in the Member State of your place of residence, 286 | your place of work or the place of the alleged infringement, if you are of the opinion 287 | that the processing of personal data relating to you infringes applicable law. 288 |

289 | 290 |

291 | If you have given us your consent, you have the right to revoke it at any time. In that 292 | case, all data processing we have carried out until your revocation remains legitimate. 293 | In order to revoke your consent, just click on the link you receive with each email and 294 | unsubscribe from the email service, change the settings in your user account or send a 295 | message to datenschutz@wikimedia.de. If you notify us in this message that you do not 296 | wish to receive emails in the future, no more messages will be sent to the email address 297 | indicated by you. 298 |

299 | 300 |

Obligation to provide data

301 |

302 | Under no circumstances are you legally or contractually obliged to make personal data 303 | available to us. However, without making your personal data available to us, we are not 304 | in a position to offer you our services. 305 |

306 | 307 |

Automated decision-making (including profiling)

308 |

309 | We do not make use of automated decision-making that may have legal implications for you 310 | or disadvantage you. 311 |

312 | 313 |

Data collection on our website

314 | 315 |
    316 |
  1. 317 | Cookies 318 |

    319 | Some of our web pages use cookies. These cookies ensure the retention of 320 | specific data while you are using the web page. However, you can disable 321 | the storage of cookies or set your browser in a way that only stores the 322 | cookies for the duration of the respective connection to the internet. For 323 | spenden.wikimedia.de, we only use session cookies and the cookies are 324 | deleted at the end of each session. The cookies are not passed on to third 325 | parties. Cookies for de.wikipedia.org are explained by the Wikimedia 326 | Foundation under the following link: 327 | https://wikimediafoundation.org/wiki/Cookie_statement 328 |

    329 | 330 |

    331 | Processing takes place based on our legitimate interest in the aforementioned 332 | purposes (Art. 6 para 1 lit. f)). 333 |

    334 |
  2. 335 | 336 |
  3. 337 | Collection and processing of personal user data 338 |

    339 | This website uses the open source web analysis service Matomo. We use a Matomo 340 | version without cookies, which means that we do not store any information on 341 | your device and do not access any information stored on your device, either. 342 | With Matomo, we collect specific information about your use of our website 343 | (e.g. which elements you click) in order to optimize and improve our website. 344 | We also use A/B tests for this purpose. In addition, we use the function “heatmaps” 345 | to analyze cursor movements and interactions with elements. This provides us with 346 | particularly useful information about how our website is used. Your IP address is 347 | shortened before storage, which means that from the outset, drawing conclusions 348 | about you as a person is rendered impossible. 349 |

    350 | 351 |

    352 | Processing takes place based on our legitimate interest in the aforementioned purposes 353 | (Art. 6 para 1 lit. f)). 354 |

    355 |
  4. 356 |
357 | 358 | 359 | 360 |

Wikimedia Donor Privacy Policy

361 |

362 | As a regional Wikimedia association, we support and observe the Wikimedia Privacy Policy. 363 | Please take a look at the Privacy Policy of the Wikimedia Foundation here . 364 |

365 | 366 |

Any questions about data privacy?

367 |

368 | If you have any questions or comments about data privacy at Wikimedia 369 | Deutschland, please send an email to datenschutz@wikimedia.de. 370 |

371 | -------------------------------------------------------------------------------- /i18n/de_DE/web/pages/privacy_protection.twig: -------------------------------------------------------------------------------- 1 |

2 | Verantwortlicher und Kontaktmöglichkeiten des Datenschutzbeauftragten 3 |

4 |

5 | Die datenschutzrechtlich Verantwortliche für die auf unserer Website stattfindenden Datenverarbeitungen ist die 6 |

7 | 8 |

9 | Wikimedia Deutschland e. V.
10 | Tempelhofer Ufer 23-24
11 | 10963 Berlin
12 | E-Mail: datenschutz@wikimedia.de
13 |
14 | Telefon: +49 (0) 30-577 11 62-0
15 | Fax: +49 (0) 30-577 11 62-99
16 |
17 | Geschäftsführende Vorständin: Franziska Heine
18 | Eingetragen im Vereinsregister des Amtsgerichts Charlottenburg, VR 23855 B.
19 |
20 | Umsatzsteuer-ID: DE263757776 21 |

22 | 23 |

24 | Wir haben für unser Unternehmen einen Datenschutzbeauftragten bestellt. 25 |

26 | 27 |

28 | Thorsten Feldmann, LL.M.
29 | JBB Rechtsanwälte Jaschinski Biere Brexl Partnerschaft mbB
30 | Christinenstr. 18/19
31 | 10119 Berlin
32 | Telefon: (030) 44 37 65-0
33 | datenschutz@wikimedia.de 34 |

35 | 36 |

37 | Zwecke und Rechtsgrundlage der Datenverarbeitung 38 |

39 | 40 |
    41 |
  1. 42 | Allgemeine Nutzung der Website 43 |

    44 | Bei der Nutzung dieses Angebots werden die von Ihrem Browser an den Server übermittelten Daten erfasst und gespeichert. 45 | Dies umfasst üblicherweise Informationen über den Typ und die Version des von Ihnen verwendeten Browsers, das verwendete 46 | Betriebssystem, die Referrer URL (die Webseite, von der aus Sie zu dieser Website gelangt sind) sowie die Uhrzeit der 47 | Serveranfrage. Diese Daten können nicht bestimmten Personen zugeordnet werden. Die Daten werden von uns statistisch 48 | ausgewertet. Die Verarbeitung Ihrer IP-Adresse während des Verbindungsaufbaus erfolgt, damit wir Ihnen unsere Website 49 | zur Verfügung stellen können. Sie basiert auf Art. 6 Abs. 1 lit. f) DSGVO. Unser berechtigtes Interesse besteht im 50 | genannten Zweck. 51 |

    52 |
  2. 53 | 54 |
  3. 55 | Erhebung und Verarbeitung personenbezogener Spenderdaten 56 |

    57 | Die Wikimedia Fördergesellschaft erhebt und verarbeitet verschiedene personenbezogene Spenderdaten, darunter Spendenhöhe, 58 | Adresse, Telefonnummer, Spendenkommentar und E-Mail-Adresse. Steuerrechtliche Vorgaben verlangen, dass wir Kontaktdaten 59 | und Spendensummen vorhalten. Zudem erheben wir, wenn Sie per Überweisung oder Bankeinzug die Zahlung vornehmen, Ihre Bankdaten. 60 |

    61 | 62 |

    63 | Wir werden personenbezogene Spenderdaten nicht veröffentlichen, verkaufen, vermieten oder anderweitig anbieten, es sei denn, 64 | der Spender hat dies erlaubt, etwa zur Veröffentlichung im Spendenticker, oder dies ist aufgrund der anwendbaren gesetzlichen 65 | Bestimmungen erforderlich und zulässig. Sollte ein Spender nicht ausdrücklich der Veröffentlichung seiner Spenderdaten 66 | zugestimmt haben, werden die Daten nach Maßgabe der gesetzlichen Vorschriften des Datenschutzes vertraulich behandelt. 67 | Kontaktdaten von Spendern werden vor allem zu den folgenden Zwecken verwendet: 68 |

    69 | 70 |
      71 |
    • Zahlungsabwicklung
    • 72 |
    • Zustellung von Zuwendungsbestätigungen
    • 73 |
    • Danksagungen für einzelne Spenden
    • 74 |
    • Versand von Informationen über aktuelle und zukünftige Aktivitäten von Wikimedia
    • 75 |
    • Versand von Spendenerinnerungen per eMail
    • 76 |
    • Interne Auswertung und Buchhaltung
    • 77 |
    • Mitteilungen an Finanzbehörden im Rahmen geltenden Rechts
    • 78 |
    • Mitteilungen an Spender über Änderungen an dieser Richtlinie
    • 79 |
    80 | 81 |

    82 | Die Rechtsgrundlage hierfür ist Art. 6 Abs. 1 lit. b) DSGVO. Für die gesetzlich vorgeschriebene Aufbewahrung der 83 | Spendenunterlagen ist die Rechtsgrundlage Art. 6 Abs. 1 lit. c) DSGVO. 84 |

    85 | 86 |

    87 | Wenn Sie einen Spendenkommentar schreiben und uns unter Ihrem Namen zusenden, verarbeiten 88 | wir den Kommentar und Ihren Namen, um Ihre Meinung und von Ihnen gemachte Anmerkungen ggf. 89 | in der Zukunft berücksichtigen zu können. Wenn Sie zusätzlich zustimmen, den Kommentar zu 90 | veröffentlichen, so werden wir Ihren Kommentar auf Kanälen von Wikimedia veröffentlichen. 91 | Sie können Ihre Einwilligung jederzeit mit Wirkung für die Zukunft widerrufen, zum Beispiel 92 | per E-Mail an spenden@wikimedia.de. Bis zu diesem Zeitpunkt werden Ihre personenbezogenen 93 | Daten verarbeitet und danach unverzüglich gelöscht. Die Rechtsgrundlage für die Verarbeitung 94 | ist Art. 6 Abs. 1 lit. a) DSGVO. 95 |

    96 |
  4. 97 | 98 |
  5. 99 | Spendenaufrufe per E-Mail 100 |

    101 | Wenn Sie bei uns eine Spende tätigen, nehmen wir Sie – soweit Sie nicht von vornherein widersprechen – 102 | in unseren Spenden-Newsletter auf. In diesem Fall verwenden wir Ihre E-Mail-Adresse, um Ihnen Informationen 103 | über unsere neuesten Spendenaufrufe zuzusenden. Die Rechtsgrundlage für die Verarbeitungen ist 104 | (Art. 6 Abs. 1 lit. f) DSGVO), wobei unser berechtigtes Interesse darin besteht, Sie über die Verwendung ihrer 105 | getätigten Spende und über neue Spendenaktionen zu informieren und Sie um eine Spende zu bitten. Sie haben daneben 106 | auch die Möglichkeit, unabhängig von einer getätigten Spende, sich für unseren Spendenaufruf-Newsletter zu 107 | registrieren. In diesem Fall verwenden wir Ihre E-Mail-Adresse, um Ihnen Informationen über unsere neuesten 108 | Spendenaufrufe zuzusenden. Die Rechtsgrundlage für die Verarbeitungen ist Ihre Einwilligung (Art. 6 Abs. 1 lit. a) DSGVO). 109 |

    110 | 111 |

    112 | Soweit Sie bereits bei uns gespendet haben, verwenden wir Ihre bei uns zu Ihren vorherigen Spenden gespeicherten 113 | personenbezogenen Daten (namentlich Vorname, Name, E-Mail, Straße und Hausnummer, Postleitzahl, Stadt, Land, Anrede, Titel) 114 | dazu, um die an Sie gerichteten Newsletter persönlicher zu gestalten und bspw. auf vorherige Spenden Bezug zu nehmen. 115 | Schließlich analysieren wir Ihre Nutzung unseres Newsletters, z. B. auf welchen Link oder welchen Banner Sie geklickt haben. 116 | Dies geschieht, um zu analysieren, wie unsere Spendenaufrufe angenommen werden und damit wir sie in Zukunft ggf. verbessern können. 117 |

    118 | 119 |

    120 | Die Verarbeitungen zu diesen Zwecken beruhen auf Art. 6 Abs. 1 lit. f) DSGVO, wobei 121 | unser berechtigtes Interesse in den vorgenannten Zwecken liegt. 122 |

    123 | 124 |

    125 | Widerruf und Widerspruch: Ihre Einwilligung können Sie jederzeit mit Wirkung für die Zukunft widerrufen bzw. Ihren Widerspruch 126 | gegen den Erhalt erklären, z. B. per E-Mail an spenden@wikimedia.de oder indem Sie auf einen Abmeldelink in einer der Ihnen 127 | zugesendeten E-Mails klicken. Durch den Widerruf oder den Widerspruch wird die Rechtmäßigkeit der zuvor vorgenommenen 128 | Verarbeitungen nicht berührt. Wenn Sie mit der Analyse nicht einverstanden sind, können Sie jederzeit widersprechen, indem Sie 129 | die E-Mails abbestellen. 130 |

    131 | 132 |
  6. 133 | 134 |
  7. 135 | Spendenaufrufe per Post 136 |

    137 | Gelegentlich versenden wir Spendenwerbung per Post. Dafür nutzen wir die von Ihnen bei 138 | Ihrer Spende angegebenen Adressdaten. Sie können dem Erhalt von werbender Post jederzeit 139 | widersprechen. Entweder per E-Mail an spenden@wikimedia.de oder über das Kontaktformular. 140 | Unmittelbar nach dem Erhalt des Widerspruchs wird Ihre Adresse aus dem Postverteiler 141 | entfernt. Grundlage für den Versand von Spendenaufrufen per Post ist unser berechtigtes 142 | Interesse an der Mitteilung von aktuellen Spendenaufrufen an unsere Spender nach Art. 6 143 | Abs. 1 lit. f) DSGVO. Ihre Adressdaten verarbeiten wir zur Versendung von Spendenaufrufen 144 | per Post bis zu Ihrem Widerspruch, längstens aber für 3 Jahre ab dem Schluss des 145 | Jahres Ihrer letzten Spende. Die Daten werden anschließend gelöscht soweit nicht andere 146 | Verarbeitungszwecke eine weitere Speicherung benötigen. 147 |

    148 |
  8. 149 |
150 | 151 |

Empfänger der Daten

152 |

153 | Zur Erfüllung unserer Aufgaben (Versand von Zuwendungsbestätigungen und Informationen) arbeiten wir mit externen Auftragnehmern 154 | zusammen, die in unserem Auftrag für diese Zwecke gegebenenfalls personenbezogene Daten verarbeiten. Diese Dienstleister sind 155 | vertraglich durch die Wikimedia Fördergesellschaft gebunden und dürfen personenbezogene Daten, die sie in diesem Zusammenhang 156 | erhalten, nur für die jeweils vereinbarten Zwecke verwenden. 157 |

158 | 159 |

160 | Zudem arbeiten wir mit Zahlungsdienstleistern zusammen (PayPal (Europe) S.à r.l. et Cie, S.C.A., Micropayment GmbH und Sofort GmbH). Wir übertragen 161 | an diese Dienstleister die für die Zahlung erforderlichen Daten. Die übrige Zahlungsabwicklung findet vollständig auf den Plattformen 162 | der Dienstleister statt, ohne dass wir Kenntnis von oder Einfluss auf die dortigen Datenverarbeitungen haben. Für die Zahlung per 163 | Kreditkarte arbeiten wir mit dem Dienstleister Micropayment zusammen. Nähere Informationen zur Verarbeitung Ihrer Daten bei unseren 164 | Zahlungsdienstleistern finden Sie unter: 165 |

166 | 171 | 172 |

173 | Die für die Zusammenarbeit mit diesen Dienstleistern erforderlichen Datenverarbeitungen sind aufgrund von Art. 6 Abs. 1 lit. f) 174 | gerechtfertigt. Unser berechtigtes Interesse liegt hier darin, Ihnen möglichst bequeme Zahlungsoptionen anzubieten. 175 |

176 | 177 |

178 | Es findet im Übrigen keine Übermittlung in Drittstaaten statt. 179 |

180 | 181 |

Speicherdauer

182 |

183 | Unsere Logfiles werden 30 Tage gespeichert. 184 |

185 | 186 |

187 | Die für die Spende erforderlichen Daten speichern wir für eine Dauer von 10 Jahren ab Ende des Jahres, in dem die letzte Spende erfolgte. 188 |

189 | 190 |

191 | Wenn Sie uns Ihre Einwilligung zur Aufnahme in die Zusendung von E-Mails gegeben haben oder nach einer Spende keinen Widerspruch gegen die 192 | Zusendung unseres Spenden-Newsletters erhoben haben, verarbeiten und speichern wir Ihre Daten grundsätzlich bis zu Ihrem Widerruf oder 193 | Widerspruch. Soweit wir Ihnen den Spenden-Newsletter aufgrund unseres berechtigten Interesses zusenden, verarbeiten wir Ihre Daten zu 194 | diesem Zweck jedoch längstens für einen Zeitraum von 3 Jahren, beginnend mit dem Schluss des Jahres, in dem Sie Ihre letzte Spende getätigt haben. 195 |

196 | 197 |

Betroffenenrechte

198 |

199 | Die Datenschutz-Grundverordnung garantiert Ihnen gewisse Rechte, die Sie uns gegenüber — soweit die gesetzlichen 200 | Voraussetzungen vorliegen — geltend machen können. 201 |

202 | 203 |

204 | Art. 15 DSGVO — Auskunftsrecht der betroffenen Person: Sie haben das Recht, von uns eine Bestätigung darüber zu 205 | verlangen, ob Sie betreffende personenbezogene Daten verarbeitet werden und wenn ja, welche dies sind sowie die näheren 206 | Umstände der Datenverarbeitung. 207 |

208 | 209 |

210 | Art. 16 DSGVO — Recht auf Berichtigung: Sie haben das Recht, von uns unverzüglich die Berichtigung Sie betreffender 211 | unrichtiger personenbezogener Daten zu verlangen. Dabei haben Sie unter Berücksichtigung der Zwecke der Verarbeitung auch 212 | das Recht, die Vervollständigung unvollständiger personenbezogener Daten — auch mittels einer ergänzenden Erklärung 213 | — zu verlangen. 214 |

215 | 216 |

217 | Art. 17 DSGVO — Recht auf Löschung: Sie haben das Recht, von uns zu verlangen, dass Sie betreffende personenbezogene 218 | Daten unverzüglich gelöscht werden. Beachten Sie hier bitte die unter Punkt II. 4 beschriebene Ausnahme. 219 |

220 | 221 |

222 | Art. 18 DSGVO — Recht auf Einschränkung der Verarbeitung: Sie haben das Recht, von uns die Einschränkung der 223 | Verarbeitung zu verlangen. 224 |

225 | 226 |

227 | Art. 20 DSGVO — Recht auf Datenübertragbarkeit: Sie haben das Recht, im Falle der Verarbeitung aufgrund einer 228 | Einwilligung oder zur Erfüllung eines Vertrags, die Sie betreffenden personenbezogenen Daten, die Sie uns bereitgestellt 229 | haben, in einem strukturierten, gängigen und maschinenlesbaren Format zu erhalten und diese Daten einem anderen 230 | Verantwortlichen ohne Behinderung durch uns zu übermitteln oder die Daten direkt an den anderen Verantwortlichen 231 | übermitteln zu lassen, soweit dies technisch machbar ist. 232 |

233 | 234 |

235 | Art. 21 DSGVO — Widerspruchsrecht: Sie haben das Recht, aus Gründen, die sich aus ihrer besonderen Situation 236 | ergeben, jederzeit gegen die Verarbeitung Sie betreffender personenbezogener Daten, die aufgrund eines berechtigten 237 | Interesses unsererseits oder zur Wahrung einer Aufgabe im öffentlichen Interesse erforderlich ist, oder die in Ausübung 238 | öffentlicher Gewalt erfolgt, Widerspruch einzulegen. 239 |

240 | 241 |

242 | Legen Sie Widerspruch ein, werden wir Ihre personenbezogenen Daten nicht mehr verarbeiten, es sei denn, wir können 243 | zwingende schutzwürdige Gründe für die Verarbeitung nachweisen, die Ihre Interessen, Rechte und Freiheiten überwiegen, 244 | oder die Verarbeitung dient der Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen. 245 |

246 | 247 |

248 | Soweit wir Ihre personenbezogenen Daten verarbeiten, um Direktwerbung zu betreiben, haben Sie das Recht, jederzeit 249 | Widerspruch gegen die Verarbeitung einzulegen. Widersprechen Sie der Verarbeitung für Zwecke der Direktwerbung, so 250 | werden wir Ihre personenbezogenen Daten nicht mehr für diese Zwecke verarbeiten. 251 |

252 | 253 |

254 | Art. 77 DSGVO i. V. m. § 19 BDSG — Recht auf Beschwerde bei einer Aufsichtsbehörde: Sie haben das Recht, jederzeit 255 | Beschwerde bei einer Aufsichtsbehörde, insbesondere in dem Mitgliedstaat ihres Aufenthaltsorts, ihres Arbeitsplatzes 256 | oder des Orts des mutmaßlichen Verstoßes, einzulegen, wenn Sie der Ansicht sind, dass die Verarbeitung der sie 257 | betreffenden personenbezogenen Daten gegen geltendes Recht verstößt. 258 |

259 | 260 |

261 | Wenn Sie uns eine Einwilligung erteilt haben, haben Sie das Recht, Ihre Einwilligung jederzeit zu widerrufen. Alle 262 | Datenverarbeitungen, die wir bis zu Ihrem Widerruf vorgenommen haben, bleiben in diesem Fall rechtmäßig. Zu diesem Zweck 263 | können Sie einfach den in jeder Mail enthaltenen Link anklicken und sich von dem E-Mail-Dienst abmelden, in Ihrem 264 | Nutzerkonto die entsprechende Einstellung vornehmen oder eine Nachricht an datenschutz@wikimedia.de schicken. Wenn Sie 265 | uns in dieser Nachricht mitteilen, künftig keine E-Mails erhalten zu wollen, werden wir an die von Ihnen angegebene 266 | E-Mail-Adresse keine Nachrichten mehr versenden. 267 |

268 | 269 |

Pflicht zur Bereitstellung von Daten

270 |

271 | Sie haben keine vertragliche oder gesetzliche Pflicht, uns personenbezogene Daten bereitzustellen. Allerdings sind 272 | wir ohne die von Ihnen mitgeteilten Daten nicht in der Lage, Ihnen unsere Services anzubieten. 273 |

274 | 275 |

Bestehen von automatisierten Entscheidungsfindungen (einschließlich Profiling)

276 |

277 | Wir verwenden keine automatisierten Entscheidungsfindungen, die Ihnen gegenüber rechtliche Wirkungen entfaltet oder Sie beeinträchtigt. 278 |

279 | 280 |

Internetspezifische Datenverarbeitungen

281 | 282 |
    283 |
  1. 284 | Cookies 285 |

    286 | Auf bestimmten Seiten kommen Cookies zum Einsatz. Diese Cookies stellen sicher, dass bestimmte Werte für die Zeit, in der Sie diese 287 | Internetseite nutzen, erhalten bleiben. Das Speichern von Cookies kann jedoch deaktiviert oder der Browser so eingestellt werden, 288 | dass Cookies nur für die Dauer der jeweiligen Verbindung zum Internet gespeichert werden. Für spenden.wikimedia.de werden Cookies 289 | ausschließlich für Sessions verwendet. Nach Beendigung der Session werden die Cookies gelöscht. Die Cookies werden nicht an Dritte 290 | weitergegeben. Der Umgang mit Cookies auf wikipedia.org wird im 291 | Cookie statement der Wikimedia Foundation dargelegt. 292 |

    293 | 294 |

    295 | Die Rechtsgrundlage hierfür findet sich in Art. 6 Abs. 1 lit. f) DSGVO. Das berechtigte Interesse findet sich in den oben genannten 296 | Zwecken. 297 |

    298 |
  2. 299 | 300 |
  3. 301 | Erhebung und Verarbeitung personenbezogener Besucherdaten 302 |

    303 | Diese Website benutzt den Open Source Webanalysedienst Matomo. Wir setzen Matomo in einer Variante ohne Cookies ein, so dass wir 304 | keine Informationen auf Ihrem Endgerät speichern und wir auch auf keine auf dem Endgerät gespeicherten Informationen zugreifen. 305 | Wir sammeln mit Matomo gewisse Nutzungsinformationen von Ihnen (z.B. welche Elemente sie anklicken), um unsere Website zu optimieren 306 | und zu verbessern. Wir nutzen hierfür auch A/B Tests. Wir verwenden zudem die Funktion „Heatmaps“, welche Bewegungen des Mauszeigers 307 | und Interaktionen mit Elementen analysiert und uns so besonders nützliche Informationen zur Nutzung der Seite liefert. Ihre 308 | IP-Adresse wird vor der Speicherung gekürzt, so dass von vornherein kein Rückschluss auf Sie als Person möglich ist. 309 |

    310 | 311 |

    312 | Die Verarbeitungen finden aufgrund unseres berechtigten Interesses an den genannten Zwecken statt (Art. 6 Abs. 1 lit. f) DSGVO). 313 |

    314 |
  4. 315 |
316 | 317 |

Wikimedia Donor Privacy Policy

318 |

319 | Als Wikimedia-Länderverein unterstützen und befolgen wir die Wikimedia Privacy Policy. 320 | Hier können Sie sich die Datenschutzerklärung der 321 | Wikimedia Stiftung ansehen. 322 |

323 | 324 |

Fragen zum Datenschutz?

325 |

326 | Sollten Sie Fragen oder Anmerkungen zum Datenschutz bei der Wikimedia Fördergesellschaft haben, wenden Sie sich bitte mit Ihrem Anliegen 327 | per E-Mail an datenschutz[at]wikimedia.de. 328 |

329 | -------------------------------------------------------------------------------- /i18n/de_DE/data/supporters.json: -------------------------------------------------------------------------------- 1 | { 2 | "supporters": [ 3 | { 4 | "name": "AVM Computersysteme Vertriebs GmbH", 5 | "amount": "123.000 €", 6 | "comment": "Wikipedia ist wichtig! Im Unternehmen erfahren wir täglich die Kraft des Wissens. Und wie wichtig es ist, dass Wissen im Unternehmen bekannt ist. Wikipedia ist ein fester Bestandteil des digitalen Lebens und essentiell für die Gesellschaft. Denn der freie Zugang zu Wissen ist ein großer Fortschritt. Wir unterstützen das Team von Wikipedia, das sich täglich engagiert für Qualität und Vielfalt." 7 | }, 8 | { 9 | "name": "Lotum GmbH", 10 | "amount": "70.000 €", 11 | "comment": "Da jede:r bei Lotum das Privileg umfangreicher Bildung genießen durfte, möchten wir gerne auch etwas zurückgeben und unterstützen daher Organisationen, die den Zugang zu Bildung vereinfachen. Wikimedia hat in dieser Hinsicht Revolutionäres geleistet und verdient daher ganz besonders unsere Unterstützung." 12 | }, 13 | { 14 | "name": "Hendrik Klindworth", 15 | "amount": "65.536 €", 16 | "comment": "Wikimedia setzt sich für den freien Zugang zu Wissen ein. Das ist heutzutage wichtiger als jemals zuvor. Daher unterstütze ich dieses Ziel gerne." 17 | }, 18 | { 19 | "name": "Michael Fernau", 20 | "amount": "42.985 €", 21 | "comment": "Für mich ist die Wikipedia als \"soziales Lexikon\" eine wichtige Bereicherung von Recherchemöglichkeiten durch die Nutzung der vielfältigsten Kenntnisse der Gemeinschaft der Autorinnen und Autoren. Bei manchen Beiträgen enthalten zudem die Diskussions- und die Versionen-Seiten reiches Material zur kritischen Betrachtung der Artikelthemen und bisweilen auch für eigene Sozialstudien. Eine demokratische, frei zugängliche Wissensdatenbank, für die ich einen nicht abebbenden Zustrom an Artikeln auch von neu dazukommenden Fachleuten erhoffe. Großartig! Unverzichtbar! Verdient jede Unterstützung!" 22 | }, 23 | { 24 | "name": "Wolfgang-Peter Jüttner", 25 | "amount": "42.610 €", 26 | "comment": "Ein neuer Nürnberger Trichter - 2005 hatte ich mir die letzt-erschienene Brockhaus-Enzyklopädie mit 30 Bänden, insgesamt 1,8 m breit, gewichtige 60 kg schwer, mit Lederrücken, geleistet. Jahre später entdeckte ich die schwerelose Online-Enzyklopädie Wikipedia - eine Wissensquelle, die süchtig macht. Bei einem Suchbegriff A springt man zum Querbegriff (Link) B und weiter zum Querbegriff C (früher nannte man das \"Brockhaus-Effekt\"). Am Ende ist man in eine Erkenntniswolke gehüllt - über eine Person, ein geschichtliches Ereignis oder sonstiges. Das gab es vorher so leicht, schnell und bequem noch nie - wie ein Nürnberger Trichter. Wikipedia ist etwas für flexible Wißbegierige. Nun senkt sich der Staub auf den Goldschnitt meiner Enzyklopädie. Er wird nur ein- oder zweimal im Jahr beim Nachschlagen gestört." 27 | }, 28 | { 29 | "name": "IGES Institut GmbH", 30 | "amount": "36.600 €", 31 | "comment": "Wikipedia ist in meinen Augen eines der größten humanistischen Projekte auf der Welt, weil es hochwertiges Wissen ohne Hürden zugänglich macht. Wir freuen uns, Wikipedia bei seiner Mission unterstützen zu können. Prof. Dr. Bertram Häussler" 32 | }, 33 | { 34 | "name": "dSPACE GmbH", 35 | "amount": "35.000 €", 36 | "comment": "Mir ist diese Informationsquelle wichtig, weil ich sie als weitgehend neutral ansehen kann und durch die Vielzahl von Autoren und Beobachtern ein hohes Maß an Informationsqualität gegeben ist." 37 | }, 38 | { 39 | "name": "Nico Gormsen", 40 | "amount": "22.500 €", 41 | "comment": "Fast jeden Tag nutzen wir in der Familie Wikipedia und sind immer wieder neu begeistert über die Informationen, die diese Plattform der Menschheit bietet. Wikipedia ist gerade in den heutigen Zeiten eine zuverlässige, gut recherchierte Wissensquelle. Vielen Dank!" 42 | }, 43 | { 44 | "name": "Prof. Hartmut Gaßner", 45 | "amount": "19.000 €", 46 | "comment": "" 47 | }, 48 | { 49 | "name": "Dr. med. Cathleen Barth", 50 | "amount": "18.500 €", 51 | "comment": "" 52 | }, 53 | { 54 | "name": "Hubertus Siegert", 55 | "amount": "17.850 €", 56 | "comment": "" 57 | }, 58 | { 59 | "name": "Gerd Stotmeister", 60 | "amount": "17.000 €", 61 | "comment": "" 62 | }, 63 | { 64 | "name": "Eike Klindworth", 65 | "amount": "16.900 €", 66 | "comment": "" 67 | }, 68 | { 69 | "name": "TNG Technology Consulting GmbH", 70 | "amount": "16.462,50 €", 71 | "comment": "" 72 | }, 73 | { 74 | "name": "modzero GmbH", 75 | "amount": "15.950 €", 76 | "comment": "Wikipedia gibt Hoffnung, da es ein positives Beispiel dafür ist, was Menschen zusammen erschaffen können, wenn sie denn wollen. \"Freier Zugang zu freiem Wissen für alle\" ist eine Forderung, die Wissen als Chance zur Selbstermächtigung begreift. Sie verdeutlicht darüber aber auch all die Stellen, an denen noch gearbeitet werden muss, um dieses Ziel und die dafür erforderliche Chancengleichheit zu erreichen. Darum spenden wir gern." 77 | }, 78 | { 79 | "name": "Prof. Dr. Benno Heussen", 80 | "amount": "15.469 €", 81 | "comment": "Wikipedia ist das ungewöhnlichste Wissensprojekt des Medienzeitalters. Es hat einen hohen Wert für meine Arbeit. Meine Jahresspende soll den zahllosen Freiwilligen zeigen, dass ihre Arbeit geschätzt wird und helfen, dass diese Idee nicht untergeht." 82 | }, 83 | { 84 | "name": "Gross Rechtsanwaltsgesellschaft mbH", 85 | "amount": "15.000 €", 86 | "comment": "Wissen ist aus unserer Sicht die Basis für fast alles. Der Beitrag, den Wikipedia hier leistet, kann gar nicht hoch genug eingeschätzt werden. Wir freuen uns, wenn wir dieses Engagement unterstützen können. Steffen Groß" 87 | }, 88 | { 89 | "name": "Solutio GmbH", 90 | "amount": "14.750 €", 91 | "comment": "Unsere Mitarbeiter greifen gerne auf das gesammelte Wissen in Wikipedia zurück - kompakt und kompetent. Mit unserer Spende möchten wir einen Beitrag dazu leisten, dass die Enzyklopädie in ihrer jetzigen Form bestehen bleibt und auch in Zukunft weiter ausgebaut wird." 92 | }, 93 | { 94 | "name": "cubeoffice GmbH & Co.KG", 95 | "amount": "13.700 €", 96 | "comment": "Freies Wissen, bedingungsloses Grundeinkommen und kein Krieg - eine bessere Welt könnte so einfach sein..." 97 | }, 98 | { 99 | "name": "Relaxdays GmbH", 100 | "amount": "13.000 €", 101 | "comment": "" 102 | }, 103 | { 104 | "name": "Dorothea und Hartmut Samtleben", 105 | "amount": "12.900 €", 106 | "comment": "Wissen ist Macht!" 107 | }, 108 | { 109 | "name": "EMK Elektronik GmbH & Co. KG", 110 | "amount": "12.250 €", 111 | "comment": "Ich finde es einfach sehr wichtig, freies Wissen und aus neutraler Quelle zugänglich zu haben. Gerade jetzt kursiert viel Halb- und Falschwissen." 112 | }, 113 | { 114 | "name": "Franziska & Daniel Kärcher", 115 | "amount": "12.113 €", 116 | "comment": "" 117 | }, 118 | { 119 | "name": "Jens Lörz", 120 | "amount": "11.925 €", 121 | "comment": "" 122 | }, 123 | { 124 | "name": "Klaus Detering", 125 | "amount": "11.000 €", 126 | "comment": "" 127 | }, 128 | { 129 | "name": "Jan Hilpert", 130 | "amount": "11.000 €", 131 | "comment": "Wikimedia spiegelt in herausragender Weise den Wert geteilter Informationen wider - im Sinne des Zitates, das George Bernhard Shaw zugeschrieben wird: If you have an apple and I have an apple and we exchange these apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas." 132 | }, 133 | { 134 | "name": "Dirk Woessner", 135 | "amount": "11.000 €", 136 | "comment": "Danke Wikipedia - unersetzlich, inspirierend und unschätzbar wertvoll" 137 | }, 138 | { 139 | "name": "Nicolas Woll / Designscape", 140 | "amount": "11.000 €", 141 | "comment": "" 142 | }, 143 | { 144 | "name": "Biallo & Team GmbH", 145 | "amount": "10.900 €", 146 | "comment": "" 147 | }, 148 | { 149 | "name": "Christoph Röllig", 150 | "amount": "10.700 €", 151 | "comment": "Wissen ist unser größter Schatz. Wissen ist das wichtigste Fundament einer menschlichen und demokratischen Gesellschaft. Wissen ist das beste Mittel gegen Armut und Krankheit. Wissen für alle macht unsere Welt zu einem besseren Ort. Wissen für alle ist eine großartige Sache! Danke Wikipedia" 152 | }, 153 | { 154 | "name": "Lutz Dannenberg", 155 | "amount": "10.600 €", 156 | "comment": "Information schützt vor Manipulation, denn Wissen ist Gedankenfreiheit und fordert das Denken. LD" 157 | }, 158 | { 159 | "name": "Nadine und Henning Wolf", 160 | "amount": "10.100 €", 161 | "comment": "" 162 | }, 163 | { 164 | "name": "Zahnarztpraxis Dres. Dajka", 165 | "amount": "10.100 €", 166 | "comment": "" 167 | }, 168 | { 169 | "name": "esd electronic system design gmbh", 170 | "amount": "10.000 €", 171 | "comment": "" 172 | }, 173 | { 174 | "name": "GBG Forschungs GmbH", 175 | "amount": "10.000 €", 176 | "comment": "" 177 | }, 178 | { 179 | "name": "Dr. Andreas Wolff", 180 | "amount": "9.950 €", 181 | "comment": "2007 stolperte ich über die Wikipedia und war begeistert. Damals hatte ich ausreichend Zeit, um mich aktiv zu beteiligen. Seit einigen Jahren ist die Zeit ein rares Gut, so dass ich nur finanziell unterstützen kann. Vielleicht gelingt in Zukunft Beides..." 182 | }, 183 | { 184 | "name": "Odin Jäger", 185 | "amount": "9.800 €", 186 | "comment": "" 187 | }, 188 | { 189 | "name": "PW AG Wirtschaftsprüfungsgesellschaft", 190 | "amount": "9.600 €", 191 | "comment": "" 192 | }, 193 | { 194 | "name": "Günter Gebauer - Berlin", 195 | "amount": "9.548 €", 196 | "comment": "" 197 | }, 198 | { 199 | "name": "Mietens & Partner GmbH", 200 | "amount": "9.001 €", 201 | "comment": "Für unsere Mitarbeiter gehört Wikipedia seit Jahren zu den wichtigsten Informationsquellen ihrer Recherchearbeit. Ein großes Dankeschön an das Wikipedia-Team und die unzähligen freien Autoren." 202 | }, 203 | { 204 | "name": "HMS Analytical Software GmbH", 205 | "amount": "8.500 €", 206 | "comment": "Für uns als IT-Beratungshaus steht „Wissen“ absolut im Mittelpunkt. Diese Fokussierung gewährleistet erfolgreiche Projekte und zieht hochqualifizierte Bewerber an. Um uns dieses Wissen anzueignen, bedienen wir uns zahlreicher Informationsquellen – und natürlich ist Wikipedia als eine zuverlässige und ausgesprochen umfangreiche Wissensdatenbank ganz vorne mit dabei." 207 | }, 208 | { 209 | "name": "Stephan Douteil Elektromaschinenbau", 210 | "amount": "8.500 €", 211 | "comment": "Wir unterstützen Wikimedia, weil jeder die Chance haben soll, sich durch Wissen vor Fehlern zu schützen." 212 | }, 213 | { 214 | "name": "VÖLKEL Threading Solutions", 215 | "amount": "8.500 €", 216 | "comment": "Einfache Zugangsmöglichkeiten zu Wissen, ist eines der höchsten Güter, was eine Gesellschaft bieten kann." 217 | }, 218 | { 219 | "name": "Heidezüchtung Kramer", 220 | "amount": "8.000 €", 221 | "comment": "" 222 | }, 223 | { 224 | "name": "Jimmy Weber", 225 | "amount": "7.850 €", 226 | "comment": "Wir benötigen dringend eine humanistische Bildung aller Menschen. Ein freier Zugang zu Information und Wissen ist dafür von großer Bedeutung. Deshalb liegt mir Wikipedia sehr am Herzen. Es ist ein Beispiel für die positive, freiwillige und solidarische Zusammenarbeit vieler Menschen weltweit! Es ist Zeit Grenzen zu überwinden und eine friedvolle, solidarische Weltgesellschaft zu verwirklichen. Allen mithelfenden Menschen sei Dank" 227 | }, 228 | { 229 | "name": "Maximilian Scheidt", 230 | "amount": "7.500 €", 231 | "comment": "Mein Beitrag für freies Wissen im Netz. Wikipedias Sammlung des Wissens der Menschheit ist unvergleichlich und von unschätzbarem Wert." 232 | }, 233 | { 234 | "name": "Agentur MASCARA GmbH", 235 | "amount": "7.400 €", 236 | "comment": "Es gibt keinen Tag an dem ich nicht auf das gesammelte Wissen in Wikipedia zurückgreife. Mit dieser Spende will ich einfach „Danke“ sagen und dazu beitragen, dass der Zugang zu diesem Wissen weiterhin kostenlos bleibt. Soraya Müller, Geschäftsführerin" 237 | }, 238 | { 239 | "name": "IQC AG", 240 | "amount": "7.000 €", 241 | "comment": "" 242 | }, 243 | { 244 | "name": "Dr. Arnim Nast", 245 | "amount": "6.943 €", 246 | "comment": "" 247 | }, 248 | { 249 | "name": "Familie Naumann", 250 | "amount": "6.600 €", 251 | "comment": "" 252 | }, 253 | { 254 | "name": "Jonas Echterhoff", 255 | "amount": "6.200 €", 256 | "comment": "" 257 | }, 258 | { 259 | "name": "Frank Michael Hermann", 260 | "amount": "6.100 €", 261 | "comment": "" 262 | }, 263 | { 264 | "name": "Ben Hopkins", 265 | "amount": "5.920 €", 266 | "comment": "" 267 | }, 268 | { 269 | "name": "Dr. Karen Richter", 270 | "amount": "5.850 €", 271 | "comment": "" 272 | }, 273 | { 274 | "name": "Gerd Otto", 275 | "amount": "5.550 €", 276 | "comment": "" 277 | }, 278 | { 279 | "name": "Annette Baumann", 280 | "amount": "5.400 €", 281 | "comment": "" 282 | }, 283 | { 284 | "name": "Zane Blanton", 285 | "amount": "5.200 €", 286 | "comment": "" 287 | }, 288 | { 289 | "name": "Autor und Psychologe Gerald Mackenthun (Berlin)", 290 | "amount": "5.180 €", 291 | "comment": "Wikipedia ist für mich ein unverzichtbares Rechercheinstrument. Ich bedaure sehr, dass nur relativ wenige Menschen dieses großartige Projekt finanziell unterstützen. Freier Zugang zum Wissen dieser Welt ist zutiefst demokratisch." 292 | }, 293 | { 294 | "name": "Peter und Hildburg Strotmann", 295 | "amount": "5.150 €", 296 | "comment": "Der Wert von Wikipedia wird immer noch unterschätzt." 297 | }, 298 | { 299 | "name": "Christian C. D. Ludwig - Foundation", 300 | "amount": "5.000 €", 301 | "comment": "" 302 | }, 303 | { 304 | "name": "Familie Krafft", 305 | "amount": "5.000 €", 306 | "comment": "" 307 | }, 308 | { 309 | "name": "Stefan Kamsties", 310 | "amount": "4.500 €", 311 | "comment": "Ich halte frei und einfach verfügbares, geprüftes und belastbares Wissen für die großartigste Sache seit Erfindung der Aufklärung. Die Arbeit von Wikipedia verdient unbedingt Unterstützung. Vielen Dank, liebe Beitragende!" 312 | }, 313 | { 314 | "name": "Ch. Köhler", 315 | "amount": "4.385 €", 316 | "comment": "Ziel ist es jeden Tag etwas klüger in Bett gehen, als man aufgewacht ist." 317 | }, 318 | { 319 | "name": "Otto Braun", 320 | "amount": "4.250 €", 321 | "comment": "Ohne frei zugängliches Wissen gibt es keine selbstbestimmte Gesellschaft: Darum unterstütze ich Wikipedia." 322 | }, 323 | { 324 | "name": "Energie- & Umweltbüro e. V.", 325 | "amount": "4.000 €", 326 | "comment": "" 327 | }, 328 | { 329 | "name": "Dr. Ing. Detlev Stupperich", 330 | "amount": "3.915 €", 331 | "comment": "Die derzeitge, global zu beobachtende Tendenz zu nationalistisch begründeten Abschottungen und die damit einhergehenden Vorurteile sowie vorsätzlich falschen Aussagen erinnern mich in sehr bedenktlicher Weise an Vergleichbares vor rund 100 Jahren. Wikipedia mit dem Ziel einer international gleichmäßigen und neutralen Verbreitung von belegbarem Wissen sind deshalb zweifellos wichtiger denn je." 332 | }, 333 | { 334 | "name": "Dr. Josef Wolff", 335 | "amount": "3.870 €", 336 | "comment": "" 337 | }, 338 | { 339 | "name": "marmalade GmbH", 340 | "amount": "3.275 €", 341 | "comment": "Frei zugängliches Wissen ist ein Privileg. Für uns als IT-Unternehmen mit starkem Fokus im Open Scource Bereich ist es eine Verpflichtung, dieses offene Prinzip der Sammlung und Teilung von Wissen und Informationen zu unterstützen und aufrecht zu erhalten. Vielen Dank für Euer Engagement!" 342 | }, 343 | { 344 | "name": "Karakun AG", 345 | "amount": "3.000 €", 346 | "comment": "" 347 | }, 348 | { 349 | "name": "Algorithmus Schmiede (Dr. M. Dutschke)", 350 | "amount": "2.800 €", 351 | "comment": "" 352 | }, 353 | { 354 | "name": "Tobias Lohmar", 355 | "amount": "2.190 €", 356 | "comment": "Niemals zuvor war das Wissen der Menschheit allen so einfach zugänglich. Niemals zuvor war es so notwendig." 357 | }, 358 | { 359 | "name": "Schønlein Media GmbH", 360 | "amount": "1.777,50 €", 361 | "comment": "" 362 | }, 363 | { 364 | "name": "Dr.-Ing. Mario Heiderich, Cure53", 365 | "amount": "1.200 €", 366 | "comment": "" 367 | }, 368 | { 369 | "name": "Robin Stork", 370 | "amount": "1.124 €", 371 | "comment": "" 372 | }, 373 | { 374 | "name": "Cabalon, Inhaber Mitch Köhler", 375 | "amount": "1.000 €", 376 | "comment": "Wissen ist einer der stärksten Treiber des Fortschritts. Mit unserem Beitrag wollen wir als IT-Experten Wikipedias Engagement fördern und würdigen. Vielen Dank an alle, die Wikipedia täglich, weltweit, frei und in einer Vielfalt an Sprachen möglich machen!" 377 | }, 378 | { 379 | "name": "Agentur Kelterborn / Klaus Kelterborn", 380 | "amount": "Betrag anonym", 381 | "comment": "" 382 | }, 383 | { 384 | "name": "Thomas Arns", 385 | "amount": "Betrag anonym", 386 | "comment": "" 387 | }, 388 | { 389 | "name": "Dr. Gunnar Berghöfer", 390 | "amount": "Betrag anonym", 391 | "comment": "Ich bin regelrecht glücklich, wirklich glücklich eine objektive, tiefgreifende Informationsquelle zu haben." 392 | }, 393 | { 394 | "name": "Britta und Peter Wurm-Stiftung", 395 | "amount": "Betrag anonym", 396 | "comment": "" 397 | }, 398 | { 399 | "name": "Cerona GmbH", 400 | "amount": "Betrag anonym", 401 | "comment": "" 402 | }, 403 | { 404 | "name": "Nikolai Diekert", 405 | "amount": "Betrag anonym", 406 | "comment": "" 407 | }, 408 | { 409 | "name": "Angela und Ernst Gehrung", 410 | "amount": "Betrag anonym", 411 | "comment": "" 412 | }, 413 | { 414 | "name": "Janico Greifenberg", 415 | "amount": "Betrag anonym", 416 | "comment": "" 417 | }, 418 | { 419 | "name": "Jürgen Grether", 420 | "amount": "Betrag anonym", 421 | "comment": "Freies Wissen für alle Menschen" 422 | }, 423 | { 424 | "name": "Bernd Hansen", 425 | "amount": "Betrag anonym", 426 | "comment": "Nur eine Wissensbasierte Gesellschaft kann erfolgreich sein. Dazu muß es allen zugänglich sein. Dazu trägt Wikimedia in großem Masse bei." 427 | }, 428 | { 429 | "name": "Anke Hollnagel", 430 | "amount": "Betrag anonym", 431 | "comment": "" 432 | }, 433 | { 434 | "name": "Ille Papier-Service GmbH", 435 | "amount": "Betrag anonym", 436 | "comment": "" 437 | }, 438 | { 439 | "name": "Dr. Ursula Kinkeldey, Vorsitzende einer Technischen Beschwerdekammer des Europäischen Patentamts i. R., Patentanwältin, European Patent Attorney", 440 | "amount": "Betrag anonym", 441 | "comment": "" 442 | }, 443 | { 444 | "name": "Wolfgang Kloft", 445 | "amount": "Betrag anonym", 446 | "comment": "" 447 | }, 448 | { 449 | "name": "Johannes Köster", 450 | "amount": "Betrag anonym", 451 | "comment": "" 452 | }, 453 | { 454 | "name": "Axel Maier", 455 | "amount": "Betrag anonym", 456 | "comment": "" 457 | }, 458 | { 459 | "name": "Ulrich Meyer", 460 | "amount": "Betrag anonym", 461 | "comment": "Schon in Kindertagen habe ich es geliebt, in Lexika zu schmökern. 'Dringend etwas nachsehen zu müssen', war im Elternhaus die stets akzeptierte Entschuldigung, gerade nicht den Rasen mähen oder den Tisch decken zu können. Heute haben mehr Menschen denn je Zugriff zu überprüften Informationen - und das überall und jederzeit. Demokratisierung von Wissen ist das - und ein berührendes 'Vom Hölzchen aufs Stöckchen', wenn ich mich bei der Lektüre von einem Stichwort zum nächsten treiben lasse!" 462 | }, 463 | { 464 | "name": "Mobile Appliance GmbH", 465 | "amount": "Betrag anonym", 466 | "comment": "" 467 | }, 468 | { 469 | "name": "Kurt Oswald", 470 | "amount": "Betrag anonym", 471 | "comment": "" 472 | }, 473 | { 474 | "name": "Jörn Paessler / beyond content gGmbH", 475 | "amount": "Betrag anonym", 476 | "comment": "Unser Biodiversitäts-Projekt „Kleine Wesen — Große Verantwortung“ wäre ohne die Recherche und die zuverlässigen Informationen auf Wikipedia sicher nicht so schnell gewachsen. Danke für die Möglichkeiten, die ihr Citizen Scientists gebt!" 477 | }, 478 | { 479 | "name": "Harald Plambeck", 480 | "amount": "Betrag anonym", 481 | "comment": "" 482 | }, 483 | { 484 | "name": "Fulvio Quattrocchi", 485 | "amount": "Betrag anonym", 486 | "comment": "" 487 | }, 488 | { 489 | "name": "Ulrich Reincke", 490 | "amount": "Betrag anonym", 491 | "comment": "Es ist mir eine Freude, selbst mit bescheidenen Mitteln dazu beizutragen, das Wissen der Menschheit aktuell, transparent und objektiv nachvollziehbar zu halten. Wikipedia verspricht durch einfach zugängliche Informationsmöglichkeiten fundiertere Entscheidungen und hoffentlich eine bessere Zukunft für die gemeinsamen Lebensgrundlagen auf unserem Planeten" 492 | }, 493 | { 494 | "name": "Julia Schäf", 495 | "amount": "Betrag anonym", 496 | "comment": "" 497 | }, 498 | { 499 | "name": "Claudine-Marisa Schauer", 500 | "amount": "Betrag anonym", 501 | "comment": "" 502 | }, 503 | { 504 | "name": "Michael Schüttler", 505 | "amount": "Betrag anonym", 506 | "comment": "" 507 | }, 508 | { 509 | "name": "Dr. Christian Tamm", 510 | "amount": "Betrag anonym", 511 | "comment": "" 512 | }, 513 | { 514 | "name": "Reinhard Wiesemann", 515 | "amount": "Betrag anonym", 516 | "comment": "" 517 | } 518 | ] 519 | } 520 | --------------------------------------------------------------------------------