Help:Gadget-ImprovedUploadForm

From Wikimedia Commons, the free media repository
Jump to navigation Jump to search
This page is a translated version of a page Help:Gadget-ImprovedUploadForm and the translation is 100% complete. Changes to the translation template, respectively the source language can be submitted through Help:Gadget-ImprovedUploadForm and have to be approved by a translation administrator.

Das ImprovedUploadForm (MediaWiki:UploadForm.js) ist ein Skript, das das Hochladeformular auf Commons verbessert, indem es neue Eingabefelder und Eingabevalidierungen hinzufügt. Das Skript erstellt aus den Eingaben automatisch eine {{Information}}-Vorlage. Es nutzt HotCat zur Eingabe der Kategorien für die Mediendatei, die hochgeladen werden soll.

Das neue Hochladeformular bietet eigenständige Eingabefelder, die automatische Generierung einer {{Information}}-Vorlage, eine Eingabevalidierung, Seitenvorschau, integrierte Hilfe in Popups, Lizenzvorschau in einem Popup, sprachspezifische Beschreibungen in beliebiger Anzahl und Kategorieneingabe über HotCat.

Browserkompatibilität

MediaWiki:UploadForm.js wurde mit den folgenden Browsern getestet und funktioniert mit ihnen:

Firefox 60 OK FF Win (8/10), CentOS 7, Ubuntu 16.04.3 LTS, Mint codename "Sylvia"
Firefox 3 * OK FF 3b4 on Win XP Pro, SP2
Firefox 2 * OK FF 2.0.0.11/12 on Win XP Pro, SP2
Internet Explorer 11 OK FF Win (8/10)
Internet Explorer 8 * unknown
Internet Explorer 7 * OK confirmed 2008-02-24
Internet Explorer 6 * OK Win XP Pro, SP2
Konqueror OK
Opera OK Opera 9.26 and Opera 9.50b on Win XP, SP2
Safari 3/Mac * OK Safari 3.0.4 on OSX (10.4.11)
Safari 3/Win * OK Safari 3.0.4 & 3.1.1 on Win XP Pro, SP2
Safari 2/Mac *  Not OK The script will not be loaded for WebKits version <420.
Users should upgrade their browsers to Safari 3.
Safari 2/Win * don't care Early Safari versions for Windows are known to be buggy.
We don't cater to broken browsers (well, except IE :-)
Users should upgrade their browsers to Safari 3.
Firefox 1.5 * unknown needed?
IE/Mac * unknown needed?
IE 5.5 * unknown needed?

* Not tested with a recent version of the script. Außerdem wurde das Skript in allen Skins mit Firefox 2 getestet.

Wie bei vielen anderen Skripten in Wikimedia-Projekten, ist ein DOM-Level-2-kompatibler Browser Voraussetzung. Ajax wird für die Lizenzvorschau und die Seitenvorschau genutzt und die Kategorienvorschläge erfolgen über HotCat.

Wenn JavaScript deaktiviert ist, wird das Skript das Hochladeformular natürlich nicht verändern. Wenn Javascript aktiviert, aber Ajax deaktiviert ist, wird das Skript weiterhin das Hochladeformular ändern, die Lizenzvorschau und die Seitenvorschau werden jedoch nicht funktionieren und HotCat wird keine Vorschläge für Kategorien machen können.

Wie funktioniert dieses Skript?

Standardmäßig nutzt dieses Skript das Standard-Hochladeformular und verändert es so, dass es eigene Eingabefelder für alle Felder von {{Information}} gibt: Quelle, Autor, Datum, Beschreibung, Genehmigung und andere Versionen. (Siehe „Aus Wikimedia“ hochladen unten.) Außerdem bewirkt dieses Skript, dass MediaWiki:Gadget-HotCat.js geladen wird, das einen benutzerfreundlichen Eingabemechanismus zur Definition von Kategorien bietet. Wenn der Benutzer auf die Schaltfläche „Hochladen“ klickt, fängt das Skript die Formularübermittlung ab und überprüft die eingegebenen Werte. Das Hochladen wird nur dann ausgeführt, wenn die Eingabevalidierung erfolgreich ist. Andernfalls wird dem Benutzer eine Fehlernachricht angezeigt, die erklärt, was korrigiert werden sollte. Problematische Eingabefelder werden farblich hervorgehoben.

Insbesondere überprüft das Skript folgendes:

  • Der Ziel-Dateiname (der Name der Datei, nachdem sie im Wiki hochgeladen wurde) ergibt Sinn: er darf nicht leer sein; nicht beschreibende Namen sind verboten (Namen, die keine alphanumerischen Zeichen oder nur Zahlen enthalten oder einfache Namen wie „Test.jpg“ oder auch „DSC00065.jpg“); er muss genau eine Dateiendung enthalten, der darüber hinaus einer der erlaubten Dateitypen sein muss; er darf keine URL sein und keine Schrägstriche („/“) enthalten.
  • Der Autor, die Quelle und eine Lizenz müssen angegeben werden. Wenn im Auswahlmenü keine Lizenz ausgewählt wurde, überprüft das Skript, ob eine Lizenzvorlage in einem der Beschreibungsfelder, dem Genehmigungsfeld oder dem Feld für zusätzliche Informationen vorhanden ist: Es kann die unterschiedlichen Vorlagen für PD, CC, GFDL, GPL, LGPL, Attribution, urheberrechtsfreie Nutzung und benutzerdefinierte Vorlagen (wenn diese Unterseiten der Benutzerseite des Benutzers sind) erkennen. Beachte, dass benutzerdefinierte Lizenzvorlagen substituiert werden müssen. „{{User:Foo/my_license}}“ zu schreiben, wird nicht als Lizenz erkannt, „{{subst:User:Foo/my_license}}“ hingegen schon.
  • Eine Beschreibung muss angegeben sein.

Wenn die Eingabevalidierung erfolgreich ist, stellt das Skript aus den unterschiedliche Eingabefeldern automatisch eine {{Information}}-Vorlage zusammen und sendet den Upload an die Server.

Wenn Ajax aktiviert ist, fügt das Skript neben der Schaltfläche zum Hochladen auch eine Schaltfläche „Vorschau“ hinzu. Wenn diese angeklickt wird, versucht das Skript, über dem Hochladeformular eine Vorschau der Bildbeschreibungsseite so anzuzeigen, wie sie nach dem Hochladen aussehen würde (ohne Kategorien und ohne das Vorschaubild, da das Bild noch nicht hochgeladen wurde). Die Vorschau-Schaltfläche ist sowohl im vollständigen als auch im Basismodus verfügbar.

Für technisch Interessierte: Die Vorschau nutzt die Standard-API-Funktion zum Parsen von Wikitext in XHTML, welche ab MediaWiki 1.12 verfügbar ist.

Text-Sanitisierung

Das Skript versucht, fehlerhafte Eingaben von Benutzern in den unterschiedlichen Feldern zu verhindern. Wenn diese fehlerhaften Wikitext enthalten, wird die Vorlage {{Information}} schließlich möglicherweise nicht korrekt auf der Bildseite angezeigt. (Dies kann auch im alten Hochladeformular passieren, das dieses Skript nicht nutzt. Ein Beispiel für solche fehlerhaften Eingaben sind nicht geschlossene Vorlagen oder Links in einem der Felder der Vorlage {{Information}}.) Insbesondere versucht das Skript, folgendes zu verhindern und zu korrigieren:

  • Falsch zugeordnete Syntax für Vorlagen ({{ und }}), Tabellen ({| und |} am Anfang einer Zeile) oder Links ([ oder ] oder [[ und ]]). Gefundene zusätzliche schließende Syntax wird ersetzt durch numerische HTML-Zeichen, die das gleiche Zeichen darstellen. Wenn schließende Syntax fehlt, wird sie eingefügt.
  • Links auf Bilder (beginnen mit „[[Image:“), die keine Vorschaubilder sind oder keine Größe oder eine höhere Größe als 299 Pixel haben, werden in einfache Links umgewandelt, die mit „[[:Image:“ beginnen.

Die Transformation durch die Text-Sanitisierung lässt korrekten Wikitext normalerweise intakt. Der Text wird jedoch bereinigt, ohne dass Vorlagen expandiert werden. In sehr seltenen Fällen, in denen Vorlagen verwendet werden, ist es möglich, dass auch sanitisierte Texte die Darstellung der Vorlage {{Information}} schließlich behindern. Bei „normalen“ Eingaben sollte dies jedoch nicht passieren.

Zusammenarbeit mit anderen Skripten

MediaWiki:UploadForm.js nutzt die folgenden anderen Skripte:

Skript Zweck Abhängigkeitstyp Auswirkung, wenn nicht vorhanden
MediaWiki:UIElements.js Unterstützung für das Lesen von Hilfetexten und anderen Elementen der Benutzeroberfläche aus dem DOM. erforderlich, kann jedoch im abgespeckten Modus ohne funktionieren Das Formular wird mit englischen Bezeichnungen und Fehlernachrichten dargestellt und es gibt keine Hilfetexte oder besondere Schaltflächen.
MediaWiki:Gadget-HotCat.js Eingabe von Kategorien optional Keine verbesserte Eingabe von Kategorien. Kategorien müssen manuell im Beschreibungsfeld hinzugefügt werden.
MediaWiki:TextCleaner.js Sanitisierung der Benutzereingaben optional Fehlerhafte Benutzereingaben (wie eine nicht geschlossenen Vorlage {{En}}) können schließlich die Anzeige der Vorlage {{Information}} verhindern.
MediaWiki:LanguageHandler.js Unterstützung für die Sprachauswahl links neben den Beschreibungsfeldern optional Das Formular nutzt nur ein Beschreibungsfeld. Benutzer müssen die Sprachvorlagen selbst einsetzen (wie {{En}} und so weiter).
MediaWiki:Tooltips.js Pop-up-Elemente optional Hilfetexte werden stattdessen unter den Felder angezeigt. Die Seitenvorschau befindet sich über dem Formular und die Lizenzvorschau verbleibt unverändert unterhalb der Lizenzauswahl.
MediaWiki:FormRestorer.js Unterstützung für die korrekte Wiederherstellung vorheriger Werte im vollständigen Modus optional Im vollständigen Modus können die dynamisch veränderten Formularfelder in manchen Fällen nicht die Werte wiederherstellen, die der Benutzer zuletzt eingegeben hat, wenn über die Schaltfläche „Zurück“ des Browsers zum Formular navigiert wird.
MediaWiki:Edittools.js Bearbeitungs-Werkzeugleiste zur Einfügung von Sonderzeichen oder Markierungen in Textfeldern keiner Wenn es keine Bearbeitungsleiste gibt, funktioniert das Hochladeformular weiterhin normal. Wenn jedoch eine Bearbeitungsleiste vorhanden ist, stellt das UploadForm-Skript sicher, dass die Bearbeitungswerkzeuge in allen Feldern funktionieren.
MediaWiki:Upload.js Fügt einen Lizenzprüfer hinzu und füllt die Beschreibung vorab aus. keiner Das Vorab-Ausfüllen der Beschreibung wird ohnehin von MediaWiki:UploadForm.js überschrieben und der Lizenzprüfer aus MediaWiki:Upload.js ist vollständig orthogonal zur Funktion von MediaWiki:UploadForm.js.

Wenn andere Skripte Event-Handler in den Komponenten des Hochladeformulars installiert haben, sorgt MediaWiki:UploadForm.js dafür, dass diese bereits installierten Handler nicht gestört oder entfernt werden. Es fügt seine eigenen Handler so hinzu, dass sichergestellt ist, dass möglicherweise bereits installierte Event-Handler weiterhin zu den korrekten Zeitpunkten angerufen werden.

Das Hochladeformular wird auch durch ein seitenweites Skript der MediaWiki-Software verändert, das sich unter /skins-1.5/common/upload.js befindet. Dieses Skript kann nicht über eine Wikiseite bearbeitet werden. Es fügt eine Lizenzvorschau und eine „Überschreibungswarnung“ hinzu, wenn jemand versucht, eine Datei über einer bereits existierenden Datei hochzuladen. Die Überschreibungswarnung ist vollständig orthogonal zu MediaWiki:UploadForm.js. Die Lizenzvorschau wird durch MediaWiki:UploadForm.js geändert, um sicherzustellen, dass sie nicht mit den eigenen Warnhinweisen kollidiert. (Für technisch Interessierte: Wenn wgUploadLicenseObj.showPreview definiert ist, ersetzt MediaWiki:UploadForm.js es durch seine eigene Funktion.)

Basismodus

In manchen Fällen ist es für den Benutzer unpraktisch, wenn das Hochladeformular verändert wird, sodass es getrennte Felder statt eines gemeinsamen Beschreibungsfeldes gibt. Dies trifft insbesondere dann zu, wenn der Benutzer bereits eine Vorlage {{Information}} vorbereitet hat und diese nur kopieren und einfügen möchte. Erfahrene Benutzer arbeiten häufig so und manche Werkzeuge (wie z.B. Flinfo zum Hochladen von Flickr) erzeugen vollständige Vorlagen zum Kopieren.

Für solche Fälle bietet das Skript einen „Basis“-Modus mit reduzierten Funktionen an. In diesem Basismodus werden die Eingabefelder des Hochladeformulars nicht verändert, es werden jedoch einige Prüfungen vorgenommen:

  • Die Prüfung der Dateinamen erfolgt weiterhin.
  • Es versucht, zu verifizieren, dass die Beschreibung eine Beschreibung, eine Quelle und einen Autor enthält. (Dies funktioniert nur, wenn die Beschreibung eine bekannte Vorlage nutzt. Derzeit kann das Skript mit den Vorlagen {{Information}}, {{Painting}} und {{Flickr}} umgehen. Wenn die Beschreibung keine dieser Vorlagen enthält oder das Skript die Felder für Quelle, Autor und Beschreibung nicht extrahieren kann, wird nur überprüft, dass das Beschreibungsfeld nicht leer ist. Wenn {{Painting}} genutzt wird, wird die Beschreibung im Feld „Bemerkungen“ nicht berücksichtigt.)
  • Wenn keine Lizenz ausgewählt wurde, überprüft das Skript auch, ob eine Lizenzvorlage in der Beschreibung enthalten ist. Da der Basismodus jedoch üblicherweise eher von erfahrenen Benutzern verwendet wird, die wahrscheinlich sehr spezialisierte Lizenzvorlagen (und manchmal sogar Meta-Vorlagen, die nur bei der Auswertung eine Lizenz enthalten) nutzen, überprüft das Skript nur, ob überhaupt eine Vorlage eingebunden ist. Andernfalls würden zu viele Uploads abgelehnt werden, da es keine Möglichkeit gibt, festzustellen, ob „{{foo}}“ eine gültige Lizenzvorlage enthalten wird.

Der Basismodus kann auf unterschiedliche Arten aktiviert werden:

  1. Durch Hinzufügen des Parameters „uploadformstyle=basic“ zur URL oder
  2. Durch Klicken hier oder in dem du in deinen Einstellungen auf den Reiter „Helferlein“ klickst und den Eintrag „ImprovedUploadFormd On Special:Upload, show an easier form and help. [documentation / talk] “ deaktivierst.
  3. VERALTET und nicht empfohlen: Indem man folgenden Code in die persönliche common.js-Datei (oder andere Skin-spezifische Benutzerskript-Dateien) einfügt:
window.UploadForm_forcebasic = true;

Die letzten beiden Optionen bewirken, dass der Basismodus für diesen Benutzer in allen Fällen genutzt wird, während die erste sich nur auf diesen einen Aufruf der URL auswirkt. Siehe auch Benutzerkonfigurationen unten.

Außerdem nutzt das Skript das Basisformular, wenn die Sprache der Benutzeroberfläche auf „*fromwikimedia“ oder „*experienced“ gesetzt wird. Siehe Benutzerdefinierte Hochladeformulare. Die URL-Parameter UploadForm_forcebasic und uselang=experienced haben nur bei automatisch bestätigten Konten Auswirkungen. Wenn das Konto nicht automatisch bestätigt ist, nutzt das Skript den vollständigen Modus.

Darüber hinaus nutzt das Skript den Basismodus, wenn die Beschreibung anfänglich einen Wert enthält, wenn der Server das Formular sendet. Dies ist normalerweise der Fall, wenn der Server beim ersten Hochladeversuch einen Fehler entdeckt und das Formular erneut für einen neuen Hochladeversuch absendet. In diesem Fall sollten alle Informationen bereits in der Beschreibung enthalten sein und wir möchten sie nicht aufteilen und in getrennte Felder einsetzen, da dies zu viele Fehler erzeugen würde. Beachte, dass dies auch bedeutet, dass der Basismodus ausgelöst werden kann, wenn das Hochladeformular über eine URL mit dem zusätzlichen Parameter wpUploadDescription aufgerufen wird, wie hier. Wenn die Beschreibung ursprünglich leer war und später durch ein anderes Skript festgelegt wurde, nutzt MediaWiki:UploadForm.js nicht nicht den Basismodus, sofern nicht einer der anderen Auslöser vorliegt.

Umgehung dieses Skripts

MediaWiki:UploadForm.js kann vollständig umgangen werden, indem man den Parameter uploadformstyle=plain zur URL hinzufügt oder das Helferlein deaktiviert.

Das Skript verändert das Hochladeformular auch nicht, wenn ein Fehler auftritt. Wenn ein Fehler auftritt, nachdem es bereits damit begonnen hat, das Formular zu verändern, bewirkt das Skript, dass das Hochladeformular automatisch erneut geladen wird, wobei die Verbesserungen deaktiviert sind (d.h. mit dem hinzugefügten Parameter uploadformstyle=plain). So soll sichergestellt werden, dass der Benutzer immer ein nutzbares Hochladeformular erhält, auch wenn etwas in MediaWiki:UploadForm.js schiefläuft.

Mehrfache Einbindung des Skripts

Da dieses Skript sich direkt im Wiki befindet, könnten unerfahrene Benutzer es versehentlich mehrfach einbinden (zum Beispiel einmal aus MediaWiki:Common.js und ein zweites Mal aus ihrer eigenen monobook.js). Das Skript verhindert dies und stellt sicher, dass das Hochladeformular nur genau einmal geändert wird. Das bedeutet auch, dass alle hier erwähnten Testlinks weiterhin korrekt funktionieren werden, auch wenn dass Skript in MediaWiki:Common.js für alle Benutzer aktiviert wurde.

Benutzerkonfigurationen

Benutzer können das Skript über ihr eigenes JavaScript in der monobook.js (oder einem anderen Skin-spezifischen Benutzerskript) verändern. Stelle sicher, die Seite neu zu laden, um den Cache deines Browsers zu leeren, nachdem du dein Benutzerskript bearbeitet hast: Nutze Umschalten-Neuladen in Firefox oder Strg-Neuladen im Internet Explorer.

Die folgenden Dinge können konfiguriert werden:

Bewirken, dass das Formular immer den Basismodus nutzt

Benutzer mit einem „automatisch bestätigten“ Konto können bewirken, dass das Skript immer den Basismodus nutzt, der das alte Formatlayout hat. Um dies zu tun, gehe auf deine Einstellungsseite, klicke auf den Reiter „Helferlein“ und deaktiviere den Eintrag „ImprovedUploadFormd On Special:Upload, show an easier form and help. [documentation / talk] “.

Höhe der Felder festlegen

Die Anzahl der Zeilen des Beschreibungsfeldes und des Feldes „Bemerkungen“ können ebenfalls in monobook.js konfiguriert werden:

window.UploadForm_description_height = 4;
window.UploadForm_additional_info_height = 2;

Das Skript beschränkt die Anzahl der Zeilen auf sinnvolle Werte. Die Mindesthöhe beträgt zwei Zeilen (zu denen Firefox aufgrund eines lange bestehenden Fehlers die Höhe einer horizontalen Scroll-Leiste hinzufügt; andere Browser zeigen nur zwei Zeilen an), die maximale Höhe beträgt 12 Zeilen.

Zusätzlich kann die Anzahl der Zeilen für die Felder für Quelle und Autor konfiguriert werden. Standardmäßig nutzt das Formular Für die Quelle und den Autor Eingabefelder mit nur einer Zeile und fügt Schaltflächen hinzu, um von diesen zu mehrzeiligen Eingaben zu wechseln. Benutzer können diese zwei Felder so konfigurieren, dass die Eingaben immer mehrzeilig sind, indem sie folgendes festlegen:

window.UploadForm_source_field_size = 4; // or some other number of rows
window.UploadForm_author_field_size = 2; // or some other number of rows

Die maximale Anzahl von Zeilen für diese Felder beträgt vier.

Das Autoren-Feld für „eigene Werke“ festlegen

Standardmäßig nutzt das Skript einen einfachen Link auf die Benutzerseite des Hochladers für das Feld „Autor“. Um dies zu ändern (z.B. zu einem Link, der deinen echten Namen angibt), füge folgendes zu deiner monobook.js hinzu:

window.UploadForm_ownwork_author = "\[\[User:" + mw.config.get('wgUserName') + "|your real name\]\]";

Oder folgendes, wenn du stattdessen die Vorlage {{User}} nutzen möchtest:

window.UploadForm_ownwork_author = "\{\{User|" + mw.config.get('wgUserName') + "\}\}";

Damit das Skript deine Signatur verwendet, nutze folgendes:

window.UploadForm_ownwork_author = "\~\~\~";

Wenn die Variable UploadForm_ownwork_author null, keine Zeichenkette, eine leere Zeichenkette oder eine Zeichenkette, die nur Leerzeichen enthält, ist, wird das Skript deine Definition ignorieren und auf das Standardverhalten zurückfallen.

Das Datums-Feld für „eigene Werke“ festlegen

Standardmäßig füllt das Skript das Datums-Feld nicht vorab aus. Wenn du möchtest, dass ein bestimmter Wert automatisch gesetzt wird, definiere die Variable UploadForm_ownwork_date in deiner monobook.js:

window.UploadForm_ownwork_date = "See upload date below.";

Wenn du möchtest, dass das aktuelle Datum genutzt wird, kannst du folgenden Code in deine monobook.js einfügen:

window.UploadForm_ownwork_date = '\~\~\~\~\~';

(Die MediaWiki-Software übersetzt fünf Tilden hintereinander („~~~~~“) in einen Zeitstempel, wenn die Seite gespeichert wird.)

Hinweis: Allgemein sollte im „Datums“-Feld das Datum angegeben werden, an dem du das Werk erstellt hast, nicht das Datum, an dem du es hochgeladen hast. Das Hochladedatum ist ohnehin bekannt.

Wenn die Variable UploadForm_ownwork_date null, nicht definiert, eine leere Zeichenkette oder eine Zeichenkette, die nur Leerzeichen enthält, ist, wird das Skript deine Definition ignorieren und auf das Standardverhalten zurückfallen und keinen Wert für das Datums-Feld festlegen.

Das Beschreibungs-Feld im Basismodus nicht vorab ausfüllen

Manche Benutzer haben ein eigenes Javascript, um das Beschreibungs-Feld im Basisformular vorab auszufüllen. Standardmäßig erzeugt MediaWiki:UploadForm.js eine Vorlage {{Information}} (teilweise vorab ausgefüllt beim Hochladen von „eigenen Werken“) in diesem Feld, wodurch Inhalte überschrieben werden würden, die von so einem Benutzerskript eingefügt wurden. Als Abhilfe können Benutzer MediaWiki:UploadForm.js anweisen, das Beschreibungs-Feld im Basismodus so zu lassen, wie es ist:

window.UploadForm_autofill = false;

Wenn diese Variable auf false gesetzt wird, wird MediaWiki:UploadForm.js die Inhalte des Beschreibungs-Feldes nicht verändern, wodurch Inhalte, die von anderen Skripten eingefügt wurden, erhalten bleiben.

Das Skript wird das Beschreibungs-Feld im Basismodus auch dann nicht überschreiben, wenn es anfänglich vorhanden war. Siehe „Basismodus“ oben.

Ausgangssprache für Beschreibungen

Benutzer können die Sprachen konfigurieren, die für die Beschreibungs-Felder angezeigt werden. Standardmäßig zeigt das Skript ein Beschreibungs-Feld für Englisch und ein weiteres Feld für die Sprache der Benutzeroberfläche an, sofern dies nicht Englisch ist.

Es gibt zwei Wege, um diese Beschreibungssprachen zu konfigurieren. Nutze folgendes, damit das englische Beschreibungs-Feld über dem für die Sprache deiner Benutzeroberfläche angezeigt wird:

window.UploadForm_own_language_first = true;

Alternativ kannst du genau definieren, für welche Sprachen du Beschreibungs-Felder haben möchtest. Die Definition

window.UploadForm_description_languages = ['fr', 'en', 'de', 'qwerty', 'de-als'];

wird bewirken, dass ein Hochladeformular mit fünf Beschreibungs-Feldern in der angegebenen Reihenfolge erzeugt wird: Französisch, Englisch, Deutsch, unbekannte Sprache (da „qwerty“ kein gültiger Sprachcode ist) und nochmal Deutsch (da „de-als“ ebenfalls nicht als Sprachcode erkannt wird, der Teil vor dem Bindestrich hingegen schon).

UploadForm_description_languages muss als Array aus Zeichenketten definiert sein. Schreibe immer „[“ und „]“, auch wenn du dazwischen nur eine Zeichenkette angibst! Durch Definieren von UploadForm_description_languages wird jede Einstellung von UploadForm_own_language_first überschrieben.

Seitenvorschau als Pop-Up

Standardmäßig wird die Seitenvorschau über dem Hochladeformular nach dem einführenden Text angezeigt. Dies entspricht dem Verhalten der normalen Seitenvorschau bei der Bearbeitung von Seiten. Dies bedeutet jedoch, dass es nötig sein kann, hochzuscrollen, um die Seitenvorschau zu sehen. Alternativ kannst du festlegen, dass die Seitenvorschau in einem Pop-Up angezeigt wird, indem du folgendes festlegst:

window.UploadForm_page_preview_in_tooltip = true;

Das Pop-Up wird über der Schaltfläche „Vorschau“ erscheinen und Teile des Hochladeformulars überdecken, sodass du es wegklicken musst, bevor du weitere Änderungen an deinen Eingaben vornehmen kannst.

Lokalisierung

Die unterschiedlichen Bezeichnungen und Warnhinweise dieses Skriptes können lokalisiert werden, sodass das Skript die Bezeichnungen in der Sprache der Benutzeroberfläche des Benutzers anzeigt (Benutzer können ihre bevorzugte Sprache der Benutzeroberfläche in ihren Einstellungen festlegen.) Die Lokalisierung (auch „Internationalisierung“) dieses Skriptes erfolgt über MediaWiki-Nachrichten. Eine „MediaWiki-Nachricht“ ist eine Seite im „MediaWiki“-Namensraum, die von der Software des Servers genutzt wird. Die durch dieses Skript eingeführten Elemente der Benutzeroberfläche sind der Software des Servers unbekannt, jedoch nutzt das Skript den gleichen Mechanismus zur Lokalisierung.

Das neue Hochladeformular nutzt viele Nachrichten. Es gibt eine für jede Bezeichnung eines Feldes, für jede Fehlernachricht und für jeden Hilfe-Text. Zusätzlich können die durch dieses Skript hinzugefügten Schaltflächen auch über MediaWiki-Nachrichten konfiguriert werden.

Bezeichnungen

Die folgenden MediaWiki-Nachrichten enthalten die Bezeichnungen für die neuen Felder (angezeigt werden die aktuellen Einstellungen für Englisch):

MediaWiki:UploadFormPreviewLicenseLabel ist keine Bezeichnung eines Feldes, sondern einer Schaltfläche. Sie wird in der abgespeckten Version als Text für die Schaltfläche für die Seitenvorschau verwendet. MediaWiki:UploadFormOwnWorkLabel wird genutzt, um das Feld „Quelle“ für das Hochladen „eigener Werke“ vorab auszufüllen. Und MediaWiki:UploadFormUnknownLanguageLabel wird im Sprachauswahlmenü links von den beschreibungs-Feldern genutzt.

Diese drei Nachrichten müssen einfache Zeichenketten sein; sie dürfen keine Wikitext-Syntax enthalten. Die anderen Nachrichten können Wikitext-Syntax wie Links oder sogar Inline-Bilder enthalten. Die einzige Begrenzung ist, dass der Inhalt dieser Nachrichten nur Inline-XHTML-Elemente (d.h. alles, was in einer <span> erscheinen kann) enthalten darf. Füge keine komplexen Dinge wie Tabellen, Vorschaubilder oder die Markierungen <p> und <div> in diese Nachrichten ein!

Die entsprechenden Bezeichnungen für andere Sprachen sind auf Unterseiten dieser MediaWiki-Nachrichten definiert. Beispielsweise sind die Bezeichnungen auf Französisch auf folgenden Seiten definiert:

Hinweise

Im vollständigen Modus zeigt das Skript unter einigen Feldern kurze Hinweise an. Diese sind sehr kurze Erklärungen der wichtigsten Dinge, die hier eingegeben werden sollten. Ausführlichere Hilfe ist über die Pop-Up-Hilfe verfügbar.

Diese Hinweise dürfen nur Inline-XHTML-Elemente enthalten. Sie können Wikilinks, andere Links oder kleine Inline-Bilder enthalten, jedoch keine Vorschaubilder, Tabellen oder andere komplexere Dinge. Das Skript nutzt die folgenden Hinweise:

Auch hier finden sich Übersetzungen für diese Hinweise auf Unterseiten:

Fehlermeldungen

Wenn die Eingabevalidierung fehlschlägt, zeigt das Skript dem Benutzer Fehlermeldungen an. Diese Fehlernachrichten werden in den folgenden MediaWiki-Nachrichten definiert:

Auch hier können die Nachrichten Wikitext-Syntax enthalten, es dürfen jedoch nur Inline-XHTML-Elemente enthalten sein. Längere Erklärungen können in den Hilfe-Texten hinterlegt werden.

Auch hier werden Unterseiten mit den Sprachcodes nach ISO 639 genutzt, um die Fehlernachrichten für jede Sprache der Benutzeroberfläche zu definieren. Die französischen Fehlernachrichten sind folgende:

(Einige Übersetzungen fehlen möglicherweise noch. Du kannst diese gerne beisteuern!)

Schaltflächen

Selbst die von diesem Skript genutzten Schaltflächen können über MediaWiki-Nachrichten lokalisiert werden:

Click here to get help
Close this message

+Add another description in another language
More lines
More lines
PreviewPreview the final image page. Does not upload yet!
Preview the chosen license

Die ersten zwei Schaltflächen (MediaWiki:UploadFormHelpOpenButton für die „Hilfe“ und MediaWiki:UploadFormHelpCloseButton für die Schaltfläche „Anzeige schließen“) sind etwas besonders, da sie sich an besonderen Orten befinden. Beide können definiert werden, indem man in die MediaWiki-Nachricht bis zu drei Bilder für den normalen, schwebenden und aktiven Status der Schaltfläche einfügt. Das Bild für den Status „Schwebend“ wird genutzt, wenn sich der Mauszeiger über der Schaltfläche befindet und das Bild „Aktiv“ wird genutzt, wenn die Schaltfläche angeklickt wurde. Wenn nur ein Bild angegeben ist, gibt es keine visuellen Effekte beim Schweben/Anklicken.

Alle drei Bilder sollten die gleiche Größe haben. Die Beschreibung des ersten Bildes wird für den Tooltip (die vom Browser generierte kleine Vorschau, die einen alternativen Text anzeigt) der Schaltfläche genutzt. Die beiden Schaltflächen können wie folgt definiert werden:

  • MediaWiki:UploadFormHelpOpenButton:
    [[Image:Nuvola actions help.svg|14px|Help]]
    Dies erzeugt eine Hilfe-Schaltfläche wie diese: Hilfe. Es gibt keine visuellen Effekte, wenn sich die Maus über der Schaltfläche befindet oder die Schaltfläche angeklickt wird.
  • MediaWiki:UploadFormHelpCloseButton:
    [[Image:Button normal.svg|14px|Close this message]]
    [[Image:Button hover.svg|14px]]
    [[Image:Button active.svg|14px]]
    Dadurch wird definiert, dass die Schaltfläche zum Schließen der Anzeige visuelle Effekte besitzt. Das Tooltip ist „Diese Nachricht schließen“.

Wenn diese zwei Schaltflächen nicht mit Bildern definiert sind, greift das Skript auf das alternative Standardverhalten zurück: Wenn die Schaltfläche „Hilfe öffnen“ nicht definiert ist, wird stattdessen ein Textlink [?] genutzt. Wenn die Schaltfläche „Hilfe schließen“ nicht definiert ist, werden die Pop-Ups keine Schaltfläche zum Schließen haben. Sie werden geschlossen, wenn der Benutzer mit der Maus innerhalb des Pop-Ups etwas anklickt. (Pop-Ups können immer geschlossen werden, indem man auf die Schaltfläche klickt, mit der man sie geöffnet hat.)

Die anderen Schaltflächen können ebenso definiert werden, sie unterstützen jedoch auch alternative Text-Definitionen. Ihre Definition kann eine der folgenden sein:

  • Bis zu drei Bilder. Siehe oben.
  • Zwei <span>s: Der erste span definiert den Text der Schaltfläche, der zweite den Text des Tooltips.
  • Ein einziger <span>: Der Inhalt des span definiert den Text der Schaltfläche und es gibt kein vom Browser generiertes Tooltip.
  • Eine einfache Text-Zeichenkette: Die Zeichenkette definiert den Text der Schaltfläche und es gibt kein vom Browser generiertes Tooltip.

Wenn du eine Schaltfläche grafisch durch Nutzung von Bildern definierst, füge bitte auch die Vorlage {{User script file}} zu den Beschreibungsseiten der Bilder hinzu:

{{User script file|MediaWiki:UploadForm.js}}

So wird markiert, dass das Bild von einer Erweiterung der MediaWiki-Benutzeroberfläche genutzt wird und sie wird in Category:User script graphics einsortiert.

Schaltflächen können wie alle anderen Elemente der Benutzeroberfläche auf Unterseiten lokalisiert werden. Die lokalisierten Versionen für Französisch sind die folgenden:

Aide
Fermer ce message

+Ajouter une autre description dans une autre langue
Agrandir le champ
Agrandir le champ
PrévisualisationPrévisualiser la page du fichier. Le fichier ne sera pas encore enregistré!
Prévisualiser la licence choisie

Hilfe-Texte

Für jedes Eingabefeld gibt es mindestens einen Hilfe-Text. Manche Felder können sogar mehrere Hilfe-Texte haben. Eine vollständige Liste aller englischen Hilfe-Texte ist auf MediaWiki:UploadFormHelpTexts verfügbar. Bearbeite diese Seite nicht direkt! Jeder von diesen Hilfe-Texten ist in seiner eigenen MediaWiki-Nachricht definiert:

Hilfe-Texte in anderen Sprachen können auch hier auf Unterseiten definiert werden; zum Beispiel sollte sich der französische Hilfe-Text für die Lizenzauswahl auf MediaWiki:UploadFormLicenseHelp/fr befinden.

Hilfe-Texte können die gesamte Wikitext-Syntax nutzen, also mehrere Abschnitte, Listen, Bilder, Tabellen oder alles andere. (Alles, was innerhalb von <div> auftauchen darf, ist erlaubt.)

Aktivieren einer Lokalisierung

Nachrichten zu übersetzen ist nur der erste Schritt zur Lokalisierung des Hochladeformulars. Damit das Skript die übersetzten Texte kennt, müssen sie aktiviert werden. Um lokalisierte Nachrichten zu aktivieren (wir nutzen als Beispiel Französisch), tue folgendes, wenn du ein Administrator bist:

Dadurch werden alle französischen Nachrichten aktiviert.

Wenn eine der obigen Nachrichten nicht übersetzt wurde, aber eine englische Variante des Textes existiert, nutzt das Skript den englischen Text und ergänzt eine Übersetzungsbitte. Wenn eine Übersetzung auf der entsprechenden Unterseite von MediaWiki:Uploadfooter aktiviert wurde, werden zukünftige Änderungen an den MediaWiki-Nachrichten für die Texte automatisch verfügbar, sobald das Hochladeformular das nächste Mal geöffnet wird.

Um eine Übersetzung für eine andere Sprache zu aktivieren, gehe wie für Französisch vor, ersetze jedoch „fr“ durch den entsprechenden ISO-639-Sprachcode, sowohl bei der Wahl der Unterseite von MediaWiki:Uploadfooter, als auch im Vorlagenparameter lang=.

Spezialisieren einer Lokalisierung

Für unsere benutzerdefinierten Hochladeformulare können all diese Texte und Schaltflächen auf entsprechenden Unterseiten spezialisiert werden. Beispielsweise sollte sich der Hilfe-Text für das Feld „Quelle“ für „eigene Werke“ von dem allgemeinen Hilfe-Text für dieses Feld unterscheiden. Definiere es auf MediaWiki:UploadFormSourceHelp/ownwork und aktiviere die Nachrichten auf MediaWiki:Uploadfooter/ownwork. Achtung: Setze den Uploadfooter für benutzerdefinierte Hochladeformulare auf folgendes:

{{MediaWiki:UploadFormTexts|live=1|useform=ownwork}}

Nutze z.B. die Unterseiten „/frownwork“ (d.h. MediaWiki:UploadFormSourceHelp/frownwork und MediaWiki:Uploadfooter/frownwork), um Texte für benutzerdefinierte Hochladeformulare in anderen Sprachen zu spezialisieren und setze den Uploadfooter auf folgendes:

{{MediaWiki:UploadFormTexts|live=1|lang=fr|useform=ownwork}}

Ersetze für andere benutzerdefinierte Hochladeformulare den Parameter useform entsprechend und setze als Parameter lang die gewünschte Sprache.

Priorität von Texten

Das Skript sucht in folgender Reihenfolge nach Hilfe-Texten:

  1. Spezialisierte Texte für das Formular in der Sprache der Benutzeroberfläche des Benutzers (z.B. „frownwork“)
  2. Texte in der Sprache der Benutzeroberfläche des Benutzers (z.B. „fr“)
  3. Spezialisierte Texte für das Formular in Englisch (z.B. „ownwork“)
  4. Texte in Englisch

Es wird der Text genutzt, den es als erstes findet. Wenn es keinen Text in der Sprache der Benutzeroberfläche des Benutzers gibt, wird eine Übersetzungsbitte zum Text der Nachricht hinzugefügt.

Übersetzungsbitten

Wenn das Skript für eine bestimmte Bezeichnung, eine Warnung oder einen Hilfe-Text keinen Text in der Sprache der Benutzeroberfläche des Benutzers findet, werden die englischen Texte genutzt. In diesem fall wird ein kleiner Link „übersetzen“ (in der Sprache der Benutzeroberfläche des Benutzers!) neben der Bezeichnung, Warnung oder dem Hilfe-Text angezeigt. Wenn der Benutzer diese anklickt, werden sie auf die Seite MediaWiki talk:UploadFormLabels/UploadFormTranslations zur Bearbeitung geleitet (Es handelt sich absichtlich um eine Diskussionsseite, sodass jeder sie bearbeiten kann. Der Haupt-MediaWiki-Namensraum kann nur von Administratoren bearbeitet werden, der MediaWiki-Diskussions-Namensraum kann aber von jedem bearbeitet werden.) Es gibt mit MediaWiki:UploadFormTranslator.js ein weiteres kleines Skript, das ausgeführt wird, wenn diese Übersetzungslinks angeklickt werden. Dieses Skript füllt das Bearbeitungsfenster vorab mit den englischen Standardtexten aus, die übersetzt werden sollen. Der Benutzer kann dann dort die Übersetzung in seiner Sprache eingeben. Administratoren sollten diese Seite auf ihrer Beobachtungsliste haben und die vorgeschlagenen Übersetzungen in die entsprechenden MediaWiki-Nachrichten aufnehmen (und sollten die Nachrichten für diese Sprache in dem Uploadfooter für diese Sprache aktivieren, sofern nötig).

Andere Bezeichnungen

Das Skript unterstützt nur die Lokalisierung ihrer eigenen Warnungstexte und der Bezeichnungen der neu hinzugefügten Felder. Andere Bezeichnungen (wie die für die ausklappbare Lizenzauswahl oder das Eingabefeld für den Zielnamen) werden über den normalen MediaWiki-Mechanismus lokalisiert, der auf Commons:Redesigning the upload form beschrieben ist. Die einzige Ausnahme ist die Bezeichnung „Kategorien“ von HotCat. HotCat selbst umfasst keine Lokalisierungsunterstützung, weshalb MediaWiki:UploadForm.js dies über seine Bezeichnung MediaWiki:UploadFormCategoriesLabel übernimmt.

Hinweis: Die Bezeichnung für die hochzuladende Datei auf dem Computer des Benutzers heißt derzeit in vielen Sprachen „Originaldatei“. Bitte stelle sicher, dass dies in „Lokale Datei“ geändert wird. der Begriff „Originaldatei“ kann zu leicht so missverstanden werden, als würde er für den Dateinamen in der ursprünglichen Quelle oder für die URL der Quelle stehen. Wir erlauben jedoch nicht das direkte Hochladen von andern Webseiten. Da MediaWiki:UploadForm.js ein neues Eingabefeld für die Quelle hinzufügt, ist das Potenzial für Verwirrungen noch größer.

Konfiguration des einleitenden Textes

Das Hochladeformular enthalt einleitenden Text, der auf MediaWiki:Uploadtext und Unterseiten dieser Seite konfiguriert ist. Es kann notwendig sein, diesen Text anzupassen, da Text, der für das Basisformular Sinn ergibt, im neuen vollständigen Hochladeformular möglicherweise nicht benötigt wird. Zum Beispiel erklärt dieser Text normalerweise, wie man die Vorlage {{Information}} ausfüllt: Da in der vollständigen Version keine solche Vorlage manuell ausgefüllt werden muss, wird dieser Text nicht benötigt und kann sogar zu Verwirrung führen, da er den Benutzer dazu anleitet, eine Vorlage {{Information}} in die Beschreibung einzufügen, was in der vollständigen Version genau das ist, was der Benutzer nicht tun soll.

Daher ist es notwendig, den Text auf MediaWiki:Uploadtext so zu markieren, dass er es dem Skript ermöglicht, selektiv Teile zu verstecken oder anzuzeigen. Dies kann getan werden, indem man den Teil, der nur im Basisformular sichtbar sein soll, in <div id="wpUploadFormLongText"> einschließt und den Teil, der nur für die vollständige Version gedacht ist, in <div id="wpUploadFormShortText"> einschließt. Es gibt drei Möglichkeiten:

<div id="wpUploadFormLongText">
  Standardtext
</div>
<div id="wpUploadFormShortText"
     style="display:none;">
  Alternativer Text
</div>
Vollständig unabhängige Texte. Wenn die vollständige Version genutzt wird, wird nur der alternative Text angezeigt. Das Skript versteckt wpUploadFormLongText und zeigt dann wpUploadFormShortText. Im Basismodus ändert sich nichts.

style="display:none;" ist wichtig, andernfalls würden standardmäßig beide Texte angezeigt werden.

<div id="wpUploadFormLongText">
  Standardtext
  <div id="wpUploadFormShortText">
    Alternativer Text
  </div>
  Weiterer Standardtext
</div>
Der Standardtext enthält den Kurztext für das vollständige Formular, In der vollständigen Version wird nur der alternative Text angezeigt. Das Skript versteckt wpUploadFormLongText und extrahiert dann wpUploadFormShortText und zeigt nur dies an. Im Basismodus ändert sich nichts.
<div id="wpUploadFormShortText">
  Standardtext
  <div id="wpUploadFormLongText">
    Text nur für das Basisformular
  </div>
  Weiterer Standardtext
</div>
Es gibt im Standardtext einen Teil, der für das vollständige Formular nicht benötigt wird. Das Skript wird wpUploadFormLongText verstecken, wenn der vollständige Modus genutzt wird. Im Basismodus ändert sich nichts.

{{Information
|Description=
|Source=
|Date=
|Author=
|Permission=
|other_versions=
}}

Darüber hinaus gab es einen ähnlichen Vorgängermechanismus. Viele dieser einleitenden Texte enthalten eine Darstellung der Vorlage {{Information}} wie rechts gezeigt. Wenn sich diese innerhalb von <div id="Uploadtext-template-box"> befindet, wird sie auch im Basismodus versteckt, da das Beschreibungsfeld im Basismodus bereits vorab mit einer solchen Vorlage gefüllt ist.

Benutzerdefinierte Hochladeformulare

Commons hat den MediaWiki-Mechanismus für die Anpassung der Sprache der Benutzeroberfläche dafür genutzt, Hochladeformulare für spezielle Zwecke zu implementieren. Siehe Commons:Redesigning the upload form und Manual:Uselang hack. Derzeit gibt es fünf dieser speziellen Hochladeformulare:

  • Eins für das Hochladen eigener Werke (uselang=*ownwork)
  • Eins für das Hochladen von Flickr (uselang=*fromflickr)
  • Eins für erfahrene Benutzer (uselang=experienced)
  • Eins für das Hochladen von Werken der Regierung der USA (uselang=*fromgov)
  • Eins für das Hochladen aus anderen Wikimedia-Projekten (uselang=*fromwikimedia)

MediaWiki:UploadForm.js funktioniert auch mit diesen spezialisierten Hochladeformularen.

Lokalisierung

Siehe „Spezialisieren einer Lokalisierung“ oben.

Hochladen „eigener Werke“

Im Hochladeformular für „eigene Werke“ wird das Feld für die Quelle mit dem lokalisierten Text aus MediaWiki:UploadFormOwnWorkLabel vorab ausgefüllt und das Feld für den Autor wird vorab mit dem Namen des Kontos des Benutzers ausgefüllt.

Hochladen „von Flickr“

Im Hochladeformular für „Flickr“ verlangt das Skript, dass die Quelle eine URL ist, die auf ein Bild auf Flickr unter http://www.flickr.com verweist.

Im Basismodus erfolgt diese URL-Prüfung nicht.

Hochladeformular für „Erfahrene“

Der Hauptunterschied zwischen diesem und den anderen Hochladeformularen ist der knappe einleitende Text. Bei automatisch bestätigten Benutzern wird das Skript in diesen Formularen den Basismodus nutzen, bei neuen Konten wird der vollständige Modus genutzt.

Hochladen „von Wikimedia“

im Hochladeformular „von Wikimedia“ nutzt MediaWiki:UploadForm.js immer den Basismodus. Diese Formulare wurden so gestaltet, dass sie alle relevanten Informationen aus der Ausgabe des Werkzeugs CommonsHelper übernehmen. Man sollte entweder CommonsHelper ausführen und unser Formular dann gar nicht verwenden und CoomonsHelper die Datei direkt hochladen lassen oder die gesamte Vorlage {{Information}}, die generiert wird, in das Beschreibungsfeld einfügen.

Änderungen an diesem Skript vornehmen

Bitte sei sehr vorsichtig, wenn du MediaWiki:UploadForm.js oder MediaWiki:Gadget-HotCat.js änderst. Da diese zwei Skripte in unserem Hochladeformular genutzt werden, kann jeder Fehler potenziell eine große Anzahl von Benutzern betreffen! Wenn du eine größere Änderung vornehmen möchtest, kopiere den Inhalt des Skripts auf eine andere Seite im MediaWiki-Namensraum (zum Beispiel auf MediaWiki:UploadFormTest.js) und nimm dort deine Änderungen vor (Teste sie, indem du einen Link wie diesen nutzt: Test-Link für das Hochladeformular, Deutsch, Hochladen „von Flickr“). Wenn alles auf unterschiedlichen Browsern (teste mindestens Firefox und IE6) perfekt funktioniert, kopiere die Inhalte deiner Test-Datei nach MediaWiki:UploadForm.js.

Bitte stelle sicher, dass jede Änderung, die du vornimmst, mit DOM Level 2 kompatibel ist. Nutze keine Funktionen aus DOM Level 3! (Beispielsweise ist document.adoptNode DOM 3. Nutze stattdessen document.importNode (DOM 2).) DOM Level 2 wird von mehr Browsern unterstützt.

Wenn du neue Bezeichnungen hinzufügst, stelle bitte auch sicher, das Skript MediaWiki:UploadFormTranslator.js für Übersetzungsbitten zu aktualisieren, damit es nach einer Übersetzung für die neue Bezeichnung fragt.

Fehler melden

Fehler können auf MediaWiki talk:UploadForm.js gemeldet werden. Erwähne, was genau schiefgelaufen ist (füge vielleicht ein Bildschirmfoto hinzu) und sag uns, welchen Browser und welches Betriebssystem du nutzt und auch, wann das Problem aufgetreten ist. (Die Zeit in UTC kann wichtig sein, um festzustellen, ob ein Problem dadurch verursacht wurde, dass die Server langsam waren.) Wenn du Firefox nutzt, öffne das Fehler-Logbuch (im Menü „Werkzeuge → Fehlerkonsole“) und überprüfe, ob dort Fehler gemeldet wurden. Wenn ja, sag uns, welche Fehlernachrichten dies waren. Danke.