Help:Gadget-ImprovedUploadForm/nl

Category:Gadget script documentation#ImprovedUploadFormCategory:Commons help/nl#/Translations}}%7C%7CImprovedUploadForm}}

ImprovedUploadForm (MediaWiki:UploadForm.js) is een script dat het uploadformulier op Commons verbetert, met verschillende nieuwe invoervelden en invoervalidatie. Het script bouwt automatisch een sjabloon van {{Information}} uit de invoer. Het maakt gebruik van HotCat voor de invoer van categorieën voor het te uploaden mediabestand.

Het nieuwe uploadformulier biedt aparte invoervelden, automatische generatie van een sjabloon van {{Information}}, invoervalidatie, paginavoorbeeld, geïntegreerde hulp in pop-ups, licentievoorbeeld in een pop-up, beschrijvingen per taal voor meerdere talen, en categorie-invoer via HotCat.

Webbrowser compatibiliteit

MediaWiki:UploadForm.js is getest en werkt voor zover bekend op de volgende webbrowsers:

Firefox 60 OKFF Win (8/10), CentOS 7, Ubuntu 16.04.3 LTS, Mint codename "Sylvia"
Firefox 3 * OKFF 3b4 on Win XP Pro, SP2
Firefox 2 * OKFF 2.0.0.11/12 on Win XP Pro, SP2
Internet Explorer 11 OKFF Win (8/10)
Internet Explorer 8 * unknown
Internet Explorer 7 * OKconfirmed 2008-02-24
Internet Explorer 6 * OKWin XP Pro, SP2
Konqueror OK
Opera OKOpera 9.26 and Opera 9.50b on Win XP, SP2
Safari 3/Mac * OKSafari 3.0.4 on OSX (10.4.11)
Safari 3/Win * OKSafari 3.0.4 & 3.1.1 on Win XP Pro, SP2
Safari 2/Mac * Not OKThe script will not be loaded for WebKits version <420.
Users should upgrade their browsers to Safari 3.
Safari 2/Win * don't careEarly 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 * unknownneeded?
IE/Mac * unknownneeded?
IE 5.5 * unknownneeded?

* Not tested with a recent version of the script. Bovendien is het script getest op alle skins met behulp van Firefox 2.

Net als bij veel andere scripts bij Wikimedia-projecten is een webbrowser compatibel met DOM Level 2 een vereiste. Ajax wordt gebruikt voor de licentiepreview, de paginapreview en de categoriesuggesties in HotCat.

Als JavaScript uitgeschakeld is, zal het script natuurlijk het uploadformulier niet aanpassen. Als JavaScript is ingeschakeld, maar Ajax is uitgeschakeld, zal het script het uploadformulier nog steeds aanpassen, maar de licentievoorziening en de paginavoorziening werken niet en HotCat zal geen suggesties voor categorieën kunnen voorstellen.

Hoe werkt het script?

Standaard neemt dit script het standaard uploadformulier en past het aan zodat het aparte invoervelden heeft voor alle velden van {{Information}}: bron, auteur, datum, beschrijving, toestemming en andere versies. (Voor een uitzondering, zie "Van Wikimedia"-uploads hieronder.) Daarnaast dwingt dit script ook het laden van MediaWiki:Gadget-HotCat.js af, wat een gebruiksvriendelijk invoermechanisme toevoegt voor het definiëren van categorieën. Wanneer de gebruiker op de knop "uploaden" klikt, onderschept het script de formulierinzending en controleert vervolgens de ingevoerde waarden. De upload mag alleen doorgaan als deze invoervalidatie succesvol is, anders krijgt de gebruiker een foutmelding te zien waarin wordt uitgelegd wat gecorrigeerd moet worden. Invoervelden waar een probleem wordt gedetecteerd worden gemarkeerd.

In het script wordt met name gecontroleerd dat:

  • De naam van het bestemmingsbestand (de naam van het bestand nadat het naar de Wiki is geüpload) is logisch: het mag niet leeg zijn; Niet-opvallende namen zijn verboden (namen die geen alfanumerieke tekens bevatten, of alleen cijfers, of veelvoorkomende eenvoudige namen zoals "Test.jpg" of ook "DSC00065.jpg"); het moet precies één bestandsextensie hebben, wat bovendien een van de toegestane bestandstypen moet zijn; het mag geen URL zijn, en het mag geen slashes bevatten ("/").
  • De auteur, de bron en een licentie moeten worden gespecificeerd. Als er geen licentie is geselecteerd in het dropdownmenu, controleert het script ook of er een licentiesjabloon is in de beschrijvingsvelden, het permissieveld, of in het veld voor aanvullende informatie: het kan de verschillende PD, CC, GFDL, GPL, LGPL, Attribution, Copyright free-use en door de gebruiker gedefinieerde sjablonen herkennen (als dat subpagina's zijn van de gebruikerspagina van de gebruiker). Let op dat door gebruikers gedefinieerde licentiesjablonen vervangen moeten worden. Het schrijven van "{{User:Foo/my_license}}" wordt niet erkend als een licentie, maar "{{subst:User:Foo/my_license}}" wel.
  • Er moet een beschrijving worden gegeven.

Als de invoervalidering slaagt, stelt het script automatisch een sjabloon {{Information}} samen uit de verschillende invoervelden en stuurt de upload naar de servers.

Als Ajax is ingeschakeld, voegt het script ook een knop "preview" toe naast de knop upload. Als u erop klikt, probeert het script boven het uploadformulier een preview van de afbeeldingsbeschrijving te tonen, omdat het na de upload zal kijken (behalve categorieën en ook zonder de miniatuur, omdat de afbeelding nog niet is geüpload). De knop preview is toegevoegd in zowel de volledige als de modus basic.

Voor de techneuten: de preview gebruikt de standaard API-functionaliteit voor het parsen van Wikitext naar XHTML, die beschikbaar is vanaf MediaWiki 1.12.

Tekst opruiming

Het script probeert in de verschillende velden te beschermen tegen verkeerde gebruikersinvoer. Als deze een foute Wiki-tekst bevatten, is het mogelijk dat het laatste sjabloon {{Information}} niet correct wordt weergegeven op de afbeeldingspagina. (Dat kan ook gebeuren in het oude uploadformulier dat dit script niet gebruikte. Een voorbeeld van zo'n fout in de invoer zijn niet gesloten sjablonen of links in een veld van het sjabloon {{Information}}.) In het bijzonder probeert het script te voorkomen en te corrigeren:

  • Niet-overeenkomend sjabloon ({{ en }}), tabel ({| en |} aan het begin van een regel) of link ([ of ], of [[ en ]]) scheidingstekens. Extra sluit-scheidingstekens worden vervangen door hun letterlijke tekens, met behulp van numerieke HTML-tekenentiteiten. Als er sluit-scheidingstekens ontbreken, worden deze ingevoegd.
  • Links naar afbeeldingen (beginnend met "[[Image:") die ofwel geen miniaturen zijn of geen grootte hebben of een grootte groter zijn dan 299 pixels, worden omgezet in gewone links die beginnen met "[[:Image:".

De transformaties die door tekst-opruiming worden gedaan, zullen in het algemeen de juiste wikitext intact laten. De tekst wordt echter opgeruimd zonder dat de sjablonen verwerkt worden. In pathologische zeldzame gevallen waarbij sjablonen worden gebruikt, is het dus mogelijk dat zelfs geanaliseerde tekst de definitieve weergave van het sjabloon {{Information}} verstoort. Maar bij "normale" invoer, zou dat niet moeten gebeuren.

Tegelijk andere scripts gebruiken

MediaWiki:UploadForm.js gebruikt de volgende andere scripts:

Script Doel Type
afhankelijkheid
Effect indien niet aanwezig
MediaWiki:UIElements.js Ondersteuning voor het lezen van de helpteksten en andere elementen van de gebruikersinterface vanuit de DOM. vereist, maar kan in modus 'degraded' zonder werken Het formulier wordt weergegeven met Engelse labels en foutmeldingen, en er zullen geen helpteksten of fancy knoppen zijn.
MediaWiki:Gadget-HotCat.js Invoer van categorieën optioneel Geen geavanceerde invoer van categorieën. Categorieën moeten handmatig aan het beschrijvingsveld worden toegevoegd.
MediaWiki:TextCleaner.js Opruimen van gebruikersinvoer optioneel Foute gebruikersinvoer (zoals een niet afgesloten sjabloon {{En}}) kan de weergave van de laatste sjabloon {{Information}} breken.
MediaWiki:LanguageHandler.js Ondersteuning voor de dropdown voor de taal, links van de beschrijvingsvelden optioneel Het formulier gebruikt slechts één beschrijvingsveld. Gebruikers moeten de taalsjablonen zelf typen (zoals {{En}}, enzovoort).
MediaWiki:Tooltips.js Pop-up elementen optioneel In plaats daarvan worden helpteksten onder de velden weergegeven. Het voorvertonen staat boven het formulier staan en het voorvertonen van de licentie blijft ongewijzigd staan onder de licentie-selectie.
MediaWiki:FormRestorer.js Ondersteuning voor het goed herstellen van eerdere waarden in modus 'full' optioneel De dynamisch gewijzigde formuliervelden in volledige modus kunnen in sommige gevallen niet worden hersteld naar de waarden die de gebruiker voor het laatst heeft ingevoerd als het formulier door de knop "Terug" weer wordt getoond.
MediaWiki:Edittools.js Toolbar voor bewerken met knoppen voor het invoegen van speciale tekens of tags in tekstvelden geen Als er geen bewerkingsbalk is, blijft het uploadformulier normaal werken. Als er een bewerkingsbalk is, zorgt het UploadForm-script ervoor dat de bewerkingsmiddelen in alle velden werken.
MediaWiki:Upload.js Voegt een licentiecontrole toe en vult vooraf de beschrijving in. geen Het vooraf vullen van de beschrijving wordt in ieder geval overschreven met MediaWiki:UploadForm.js en de licentiecontrole vanaf MediaWiki:Upload.js is volledig haaks aan de functionaliteit van MediaWiki:UploadForm.js.

Als er andere script-eventhandlers zijn geïnstalleerd op de componenten van het uploadformulier, zorgt MediaWiki:UploadForm.js ervoor dat de reeds geïnstalleerde handlers niet worden gebroken of verwijderd. Het voegt zijn eigen handlers toe op een manier die ervoor zorgt dat handlers die mogelijk al zijn geïnstalleerd, nog steeds op het juiste moment worden aangeroepen.

Het uploadformulier wordt ook aangepast door een algemeen script van de MediaWiki-software dat op /skins-1.5/common/upload.js staat. Dit script is niet bewerkbaar via een Wiki-pagina. Het voegt een licentiepreview toe en een "overschrijfwaarschuwing" als iemand probeert een bestand over een al bestaand bestand te uploaden. Deze waarschuwing staat volledig haaks aan de functionaliteit van MediaWiki:UploadForm.js. De licentiepreview is veranderd met MediaWiki:UploadForm.js om te voorkomen dat deze botst met zijn eigen waarschuwingen. (Voor de technische mensen: als wgUploadLicenseObj.showPreview gedefinieerd is, vervangt MediaWiki:UploadForm.js het door een eigen functie.)

Mode Basic

In sommige gevallen is het voor de gebruiker lastig om het uploadformulier te veranderen om in plaats van een enkel beschrijvingsveld afzonderlijke invoervelden te hebben. Dit geldt vooral als een gebruiker al een sjabloon {{Information}} klaar heeft en dat gewoon wil kopiëren/plakken. Ervaren gebruikers werken vaak zo, en sommige hulpmiddelen (zoals Flinfo voor Flickr-uploaden) produceren ook volledige sjablonen die klaar zijn om te kopiëren.

In dergelijke gevallen biedt het script een "basic" modus met beperkte functionaliteit. In deze modus verandert het de invoervelden van het uploadformulier helemaal niet, maar het doet nog steeds enkele controles:

  • De controles van de bestandsnaam worden gedaan.
  • Het probeert te verifiëren of de beschrijving inderdaad een beschrijving, een bron en een auteur bevat. (Dit werkt alleen als de beschrijving een bekend sjabloon gebruikt. Nu kan het script de sjablonen {{Information}}, {{Painting}} en {{Flickr}} aan. Als de beschrijving geen van deze sjablonen bevat, of als het script de velden voor bron, auteur en beschrijving niet extraheert, is de enige controle die wordt gedaan dat het beschrijvingsveld niet leeg is. Als {{Painting}} wordt gebruikt, wordt de beschrijving in het veld "Notes" niet daadwerkelijk afgedwongen.)
  • Als er geen licentie is geselecteerd, controleert het script ook of er een licentie-sjabloon in de beschrijving is. Omdat de modus basic echter waarschijnlijk wordt gebruikt door meer ervaren medewerkers, die meer kans hebben op het gebruik van zeer gespecialiseerde licentie-sjablonen (en soms zelfs meta- sjablonen die alleen een licentie bevatten wanneer ze worden geëvalueerd), controleert het script gewoon of er überhaupt een sjabloon is. Anders zou het te veel uploads afwijzen, omdat het geen manier heeft om te weten dat een aantal sjablonen "{{foo}}" uiteindelijk een geldige licentie-sjabloon bevat.

De modus basic kan op verschillende manieren worden geactiveerd:

  1. door de parameter "uploadformstyle=basic" toe te voegen aan de URL, of
  2. door hier te klikken of door naar uw voorkeuren te gaan, te klikken op de tab "Gadgets" en dan het uitschakeln van "ImprovedUploadForm: d On Special:Upload, show an easier form and help. [documentation / talk] "
  3. VEROUDERD en niet aanbevolen: door een gebruiker die de volgende code toevoegt aan zijn bestand common.js (of ander skin-specifiek gebruikersscriptbestand):
window.UploadForm_forcebasic = true;

De laatste twee opties dwingen in alle gevallen de modus basic voor die gebruiker af, terwijl de eerste alleen effect heeft op die specifieke aanroep van de URL. Zie ook hieronder de gebruikersconfiguraties.

Daarnaast gebruikt het script de basisvorm als de interfacetaal is ingesteld op '*fromwikimedia' of '*experienced'. Zie Gepersonaliseerde uploadformulieren. UploadForm_forcebasic en de uselang=experienced URL-parameter hebben alleen effect op automatisch bevestigde accounts. Als het account niet automatisch bevestigd is, gebruikt het script de volledige modus.

Bovendien gebruikt het script de modus basic als de beschrijving aanvankelijk een waarde bevatte toen de server het formulier verstuurde. Dit is normaal gesproken het geval wanneer de server bij de eerste uploadpoging een fout detecteert en het formulier opnieuw verstuurt voor een poging tot opnieuw uploaden. In dit geval zou alle informatie al in de beschrijving moeten staan, en we willen het niet splitsen en aparte velden invullen, omdat dit te foutgevoelig zou zijn. Let op dat dit ook betekent dat de modus basic geforceerd kan worden als het uploadformulier wordt aangeroepen via een URL met een extra wpUploadDescription-parameter, zoals hier. Als de beschrijving aanvankelijk leeg was maar later door een ander script werd ingesteld, gebruikt MediaWiki:UploadForm.js de modus basic niet tenzij een van de andere triggers aanwezig is.

Dit script omzeilen

MediaWiki:UploadForm.js kan volledig worden omzeild door de parameter uploadformstyle=plain toe te voegen aan de url of de gadget te deactiveren.

Het script wijzigt ook het uploadformulier niet als er een fout optreedt. Als er een fout optreedt na het al is begonnen met het wijzigen van het formulier, dwingt het script een automatische herlaad van het uploadformulier af, waarbij verbeteringen zijn uitgeschakeld (dus met deze uploadformstyle=plain-parameter toegevoegd). Op deze manier moet ervoor worden gezorgd dat de gebruiker altijd een bruikbaar uploadformulier krijgt, zelfs als er iets misgaat in MediaWiki:UploadForm.js.

Meerdere inclusies van het schrift

Omdat dit script op de wiki staat, kunnen onervaren gebruikers het meerdere keren opnemen (bijvoorbeeld één keer van MediaWiki:Common.js, en een tweede keer van hun eigen monobook.js). Het script beschermt dit en zorgt ervoor dat het uploadformulier slechts precies één keer wordt gewijzigd. Dit betekent ook dat al die hier genoemde testlinks goed blijven werken, zelfs nadat het script in MediaWiki:Common.js voor alle gebruikers is ingeschakeld.

Gebruikersconfiguraties

Gebruikers kunnen het script een beetje configureren via hun eigen JavaScript op monobook.js (of een ander skin-specifiek gebruikersscript). Zorg ervoor dat u het herladen afdwingt om de cache van uw browser te wissen na elke wijziging in uw gebruikersscript: gebruik shift-reload in Firefox, of ctrl-reload in Internet Explorer.

De volgende zaken kunnen worden geconfigureerd:

Laat het formulier altijd de modus basic gebruiken

Gebruikers op een "automatisch bevestigd" account kunnen het script dwingen altijd de modus basic te gebruiken, die de oude formulierindeling heeft. Om dit te doen, gaat u naar de voorkeuren, klik u op het tabblad "Gadgets" en schakelt u vervolgens uit de optie "ImprovedUploadForm: d On Special:Upload, show an easier form and help. [documentation / talk] ".

De veldhoogtes instellen

Het aantal rijen van het beschrijvingsveld en het veld voor "aanvullende informatie" kan ook worden geconfigureerd in monobook.js:

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

Het script beperkt het aantal rijen tot zinvolle waarden. De minimale hoogte is twee rijen (waaraan Firefox de hoogte van een horizontale scrollbalk toevoegt vanwege een langlopende bug; andere browsers tonen inderdaad slechts twee rijen), de maximale hoogte is 12 rijen.

Bovendien kan het aantal rijen van het bron- en auteursveld worden geconfigureerd. Als standaard gebruikt het formulier eenregelige invoervelden voor de bron en de auteur en voegt knoppen toe om die op meerregelige velden te schakelen. Gebruikers kunnen voor deze twee velden altijd meerregelige invoer instellen.

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

Het maximum aantal rijen voor deze velden is vier.

Stel het auteursveld bij uploads in op "eigen werk"

Standaard gebruikt het script een eenvoudige link naar de gebruikerspagina van de uploader voor het veld "author". Om dat te veranderen (bijvoorbeeld naar een link die u echte naam toont), voeg dan het volgende toe aan uw monobook.js:

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

Of, als u het sjabloon {{User}} wilt gebruiken in plaats daarvan,

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

Om het script uw handtekening te laten gebruiken, gebruik

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

Als de variabele UploadForm_ownwork_author null, geen string, een lege string of één string die alleen spaties bevat, is, zal het script uw definitie negeren en terugkeren naar zijn standaardgedrag.

Het datumveld instellen voor uploads van "eigen werk"

Standaard vult het script niet vooraf het datumveld in. Als u wilt dat het automatisch op een bepaalde waarde wordt gezet, definieer dan de variabele UploadForm_ownwork_date in uw monobook.js:

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

Of, als u wilt dat het op de huidige datum wordt gezet, kunt u het volgende stukje code toevoegen aan uw monobook.js:

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

(De MediaWiki-software vertaalt vijf tildes in een rij ("~~~~~") in een tijdstempel wanneer de pagina wordt opgeslagen. )

NB: In het algemeen zou het veld "datum" de datum moeten zijn waarop u het werk heeft gemaakt, niet de datum waarop u het heeft geüpload. De uploaddatum is sowieso bekend.

Als de variabele UploadForm_ownwork_date null, geen string, een lege string of één string die alleen spaties bevat, is, zal het script uw definitie negeren en het datumveld niet vullen.

Beschrijvingsveld niet vooraf invullen in modus basic

Sommige gebruikers hebben hun eigen JavaScript om het beschrijvingsveld van het basisformulier te vullen. Als standaard schrijft MediaWiki:UploadForm.js een sjabloon {{Information}} (gedeeltelijk vooringevuld voor "eigenwerk" uploaden) in dit veld, dat de inhoud van dergelijke gebruikersscripten overschrijft. Als remedie kunnen gebruikers bij MediaWiki:UploadForm.js aangeven dat het beschrijvingsveld genegeerd wordt in modus basic:

window.UploadForm_autofill = false;

Als deze variabele is ingesteld op false, verandert MediaWiki:UploadForm.js niet de inhoud van het beschrijvingsveld, waardoor de inhoud die daar door andere scripts wordt geplaatst, behouden zou moeten worden.

Het script zal het beschrijvingsveld in de modus basic ook niet overschrijven als het als initially is ingesteld. Zie "modus basic" hierboven.

Begintalen voor beschrijvingen

Gebruikers kunnen de talen configureren voor de aanvankelijk weergegeven beschrijvingsvelden. Standaard toont het script een beschrijvingsveld voor Engels, plus een ander veld dat is ingesteld op de taal van de gebruikersinterface, als dat geen Engels is.

Er zijn twee manieren om deze taal te configureren. Om het Engels beschrijvingsveld onder het voor uw interface taal te hebben, gebruik

window.UploadForm_own_language_first = true;

Als alternatief kunt u precies definiëren voor welke talen u beschrijvingsvelden wilt. De definitie

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

zal resulteren in een uploadformulier met vijf beschrijvingsvelden in de gegeven volgorde: Frans, Engels, Duits, Onbekende taal (omdat "qwerty" geen geldige taalcode is) en weer Duits (omdat ook "de-als" niet als taalcode wordt erkend, maar het deel vóór het streepje wel).

UploadForm_description_languages moet gedefinieerd worden als een reeks strings. Schrijf altijd de "[" en "]", zelfs als u maar één string ertussen geeft! Het definiëren van UploadForm_description_languages overschrijft elke instelling van UploadForm_own_language_first.

Pagina voorvertonen met een pop-up

Standaard wordt het pagina-voorvertonen boven het uploadformulier weergegeven, na de inleidende tekst. Dit bootst het gedrag van het normale pagina-voorvertonen op bewerkingspagina's na. Dit betekent echter dat het mogelijk nodig is om omhoog te scrollen om de paginaweergave te bekijken. Als alternatief kunt u het voorvertonen omzetten in een pop-up met een instelling

window.UploadForm_page_preview_in_tooltip = true;

De pop-up verschijnt boven de knop "voorvertonen", die delen van het uploadformulier omvat, dus u moet op het opzij klikken voordat u verdere wijzigingen aanbrengt in uw invoer.

Lokalisatie

De verschillende labels en waarschuwingsberichten die dit script gebruikt, kunnen worden vertaald, zodat het script de labels in de interfacetaal van de gebruiker weergeeft. (Gebruikers kunnen hun voorkeursinterface taal definiëren in hun voorkeuren.) Dit vertalen (ook wel "internationalisatie" of "lokalisatie" genoemd) van dit script gebeurt via MediaWiki-berichten. Een "MediaWiki-bericht" is een pagina in de namespace "MediaWiki" die door de serversoftware wordt gebruikt. De gebruikersinterface-elementen die door dit script worden geïntroduceerd, zijn onbekend voor de serversoftware, maar het script gebruikt hetzelfde mechanisme voor de vertaling.

Het nieuwe uploadformulier gebruikt veel berichten. Er is één voor elk veldlabel, één voor elk foutmelding en één voor elke hulptekst. Daarnaast kunnen de knoppen die door dit script ook worden toegevoegd, worden geconfigureerd met MediaWiki-berichten.

Labels

De volgende MediaWiki-berichten bevatten de veldlabels voor de nieuwe velden (met de huidige instellingen voor het Engels):

MediaWiki:UploadFormPreviewLicenseLabel is eigenlijk geen veldlabel, maar een knoptekst. Het wordt gebruikt in de gedegradeerde modus als de knoptekst voor de licentievoorbeeldknop. MediaWiki:UploadFormOwnWorkLabel wordt gebruikt om het veld "bron" voor "eigen werk" uploaden te vullen. En MediaWiki:UploadFormUnknownLanguageLabel wordt gebruikt in de taal-dropdown links van de beschrijving.

Deze drie berichten moeten eenvoudige teksten zijn; ze mogen geen Wikitext-markering bevatten. De andere berichten kunnen een Wikitext-markering bevatten, zoals links of zelfs inline afbeeldingen. De enige beperking is dat de inhoud van deze berichten alleen inline XHTML-elementen (d.w.z. alles wat binnen een <span>) moet bevatten. Plaats niet complexe dingen zoals tabellen, miniaturen, of <p> of <div> tags in deze berichten!

Overeenkomende labels voor andere talen zijn gedefinieerd op de subpagina's van deze MediaWiki-berichten. De Franse etiketten zijn bijvoorbeeld op deze pagina's gedefinieerd:

Hints

In modus 'full' toont het script korte hints onder sommige velden. Dit is een 'zeer korte' uitleg van de belangrijkste zaken die daar moeten worden ingevoerd. Meer uitgebreide hulp is beschikbaar via een pop-up.

Deze tips kunnen alleen inline XHTML-elementen bevatten. Ze kunnen allemaal wiki-links en andere links bevatten, of kleine inline afbeeldingen, maar geen miniaturen, tabellen of andere meer geavanceerde dingen. Het script gebruikt de volgende tips:

Ook hier worden vertalingen voor deze tips geplaatst op subpagina's:

Foutmeldingen

Als er door de validatie van de invoer blijkt dat de invoer fout is, worden er door het script een aantal foutberichten doorgegeven voor de gebruiker. Deze foutberichten worden gedefinieerd in de volgende MediaWiki-berichten:

Ook deze berichten mogen Wikitext-opmaak bevatten, maar ze mogen alleen inline XHTML-elementen bevatten. Het zouden korte oneliners moeten zijn. Langere uitleg kan worden gezet in de helpteksten.

Subpagina's die geïdentificeerd worden door ISO 639-taalcodes, worden gebruikt om de foutmeldingen voor andere interfacetalen te definiëren. De Franse foutmeldingen zijn als volgt:

(Sommige vertalingen kunnen nog ontbreken. U mag ze toevoegen!)

Knoppen

Ook de knoppen die in dit script worden gebruikt kunnen worden vertaald met behulp van MediaWiki-berichten:

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

De eerste twee knoppen (MediaWiki:UploadFormHelpOpenButton voor de "help"-indicator en MediaWiki:UploadFormHelpCloseButton voor de "pop-up sluitknop") zijn wat speciaal omdat ze op speciale plekken verschijnen. Beide kunnen worden gedefinieerd door in het MediaWiki-bericht tot drie afbeeldingen op te nemen voor de normale, hover- en actieve toestanden van de knop. De afbeelding voor de "hover"-status wordt gebruikt wanneer de muisaanwijzer over de knop wordt beweegt, en de "actieve" afbeelding wordt gebruikt wanneer er op de knop wordt geklikt. Als er maar één afbeelding wordt gegeven, zijn er geen visuele effecten bij het zweven/klikken.

Alle drie afbeeldingen moeten dezelfde grootte hebben. De onderstaande tekst van de eerste afbeelding wordt gebruikt als tip van de knop (de door de browser gegenereerde kleine pop-up met een alternatieve tekst). Om het te verduidelijken, kunnen de twee knoppen als volgt worden gedefinieerd:

  • MediaWiki:UploadFormHelpOpenButton:
    [[Image:Nuvola actions help.svg|14px|Help]]
    Dit genereert een hulpknop als deze: Help. Er zullen geen visuele effecten zijn wanneer de muis over de knop beweegt of wanneer de knop wordt ingedrukt.
  • MediaWiki:UploadFormHelpCloseButton:
    [[Image:Button normal.svg|14px|Close this message]]
    [[Image:Button hover.svg|14px]]
    [[Image:Button active.svg|14px]]
    Dit definieert de pop-up sluitknop om visuele effecten te hebben. De tip zal zijn "Close this message".

Als deze twee knoppen niet met afbeeldingen worden gedefinieerd, gebruikt het script alternatief standaardgedrag: als de knop "help open" niet wordt gedefinieerd, wordt er in plaats daarvan een tekstlink [?] gebruikt. Als de knop "Help close" niet is gedefinieerd, zullen de pop-ups geen sluitknop hebben. Ze sluiten wanneer de gebruiker met de muis op een plek in de pop-up klikt. (Pop-ups kunnen ook altijd worden gesloten door opnieuw op de knop te klikken die ze opende.)

De andere knoppen kunnen precies op dezelfde manier worden gedefinieerd, maar ze ondersteunen ook alternatieve tekstdefinities. De definitie daarvan kan een van de volgende zijn:

  • Tot drie afbeeldingen. Zie hierboven.
  • Twee keer een <span>: de eerste 'span' definieert de knoptekst, de tweede de tiptekst.
  • Een enkele <span>: De inhoud van de 'span' definieert de knoptekst, en er zal geen door de browser gegenereerde tip zijn.
  • Een eenvoudige tekst: de strings definiëren de knoptekst en er zal geen door de browser gegenereerde tip zijn.

Als u een knop met behulp van afbeeldingen grafisch definieert, voeg dan het sjabloon {{User script file}} toe aan de pagina's met de afbeeldingsbeschrijving:

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

Dit bepaald dat de afbeelding wordt gebruikt door een MediaWiki gebruikersinterface-extensie en zet het in Category:User script graphics.

Knöppen kunnen worden vertaald elk ander gebruikersinterface-element in subpagina's. De vertalingen in het Frans zijn:

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

Helpteksten

Voor elk invoerveld is er minstens één helptekst. Voor sommige zijn er meerdere. Een volledige lijst van alle Engelse helpteksten is beschikbaar op MediaWiki:UploadFormHelpTexts. Bewerk die pagina niet! Elk van deze helpteksten is gedefinieerd in een eigen MediaWiki-bericht:

Helpteksten in andere talen kunnen opnieuw worden gedefinieerd op subpagina's; bijvoorbeeld de helptekst voor de licentie selector in het Frans op MediaWiki:UploadFormLicenseHelp/fr staan.

Helpteksten kunnen het volledige scala van Wikitext-markering gebruiken, inclusief meerdere alinea's, lijsten, afbeeldingen, tabellen, getallen of iets anders. (Alles wat kan voorkomen in een <div> is toegestaan.)

Het vertalen mogelijk maken

Het vertalen van berichten is slechts de eerste stap bij het lokaliseren van het uploadformulier. Om de vertaalde teksten bekend te maken aan het script, moeten ze ingeschakeld zijn. Om gelokaliseerde berichten mogelijk te maken (we nemen Frans als voorbeeld), doe het volgende als u een beheerder bent:

Dit zal alle berichten in het Frans mogelijk maken.

Als een van bovenstaande berichten niet is vertaald, maar er wel een Engelse variant van de tekst bestaat, gebruikt het script de Engelse tekst en voegt een vertalingsverzoek toe. Als een vertaling is ingeschakeld op de juiste subpagina van MediaWiki:Uploadfooter, worden toekomstige wijzigingen in de MediaWiki-berichten voor de teksten automatisch beschikbaar voor het Script bij de volgende keer dat het uploadformulier wordt geopend.

Om een vertaling voor een andere taal mogelijk te maken, gaat u verder zoals voor het Frans, maar vervang "fr" door de juiste ISO 639-taalcode, zowel bij de keuze van de subpagina van MediaWiki:Uploadfooter en in de sjabloonparameter lang=.

Een vertaling specialiseren

Bij onze Gepersonaliseerde uploadformulieren, al deze teksten en knoppen kunnen zelfs worden gespecialiseerd in geschikte subpagina's. Als bijvoorbeeld de hulptekst voor het bronveld voor uploads van "eigen werk" anders zou moeten zijn dan de algemene hulptekst voor dat veld, herdefinieer deze dan op MediaWiki:UploadFormSourceHelp/ownwork en schakel de berichten in voor MediaWiki:Uploadfooter/ownwork. Let op: Voor aangepaste uploadformulieren zet de footer als volgt:

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

Om teksten te specialiseren voor aangepaste formulieren in andere talen, gebruik bijvoorbeeld de "/frownwork" subpagina's (d.w.z. MediaWiki:UploadFormSourceHelp/frownwork en MediaWiki:Uploadfooter/frownwork), en stel de footer van de upload in

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

Voor andere op aangepaste formulieren vervang de parameter useform naar behoefte en stel de parameter lang in.

Voorrang bij teksten

Het script zoekt hulpteksten in de volgende volgorde:

  1. Gespecialiseerde teksten voor het specifieke formulier in de taal van de gebruikersinterface (bv. "frownwork")
  2. Teksten in de taal van de gebruikersinterface (bv. "fr")
  3. Gespecialiseerde teksten voor het bijzondere formulier in het Engels (bijv. "ownwork")
  4. Teksten in het Engels

Het gebruikt de eerste tekst die het vindt. Wanneer er geen tekst wordt gevonden in de taal van de gebruikersinterface, wordt een link met een vertaalverzoek toegevoegd aan de berichttekst.

Vertaalverzoeken

Als het script geen tekst vindt in de interfacetaal van de gebruiker voor een bepaald label, waarschuwingsbericht of hulptekst, gebruikt het de Engelse teksten als vangkracht. In dit geval voegt het een kleine link "vertaal" (in de taal van de gebruikersinterface!) toe aan het label, waarschuwingsbericht of hulptekst. Als de gebruiker daarop klikt, wordt er een scherm MediaWiki talk:UploadFormLabels/UploadFormTranslations geopend, open voor bewerking. (Het is expres een overlegpagina, zodat iedereen het kan bewerken. De namespace MediaWiki is alleen bewerkbaar voor beheerders, maar de namespace MediaWiki-talk is voor iedereen toegankelijk.) Er is nog een klein script, MediaWiki:UploadFormTranslator.js, dat wordt gebruikt wanneer die vertaallinks worden aangeklikt. Dit script vult het veld vooraf in met de Engelse standaardteksten die vertaald moeten worden. De gebruiker kan dan de vertaling daar in zijn of haar taal invoeren. Beheerders zouden deze pagina op hun volglijst moeten hebben en voorgestelde vertalingen moeten opnemen in de juiste MediaWiki-berichten (en, indien nodig, de berichten voor deze taal in de footer van de upload van die taal moeten inschakelen).

Andere labels

Het script ondersteunt alleen de lokalisatie van zijn eigen waarschuwingsteksten en van de labels van de nieuwe velden die het toevoegt. Overige labels (zoals die in het licentie-dropdownmenu of van het invoerveld van het doelbestand) worden gelokaliseerd met het standaard MediaWiki-mechanisme zoals hier beschreven. De enige uitzondering hierop is HotCat's "Categorieën"-label. HotCat zelf biedt geen ondersteuning voor het vertalen, en daarom wordt MediaWiki:UploadForm.js geregeld via het label MediaWiki:UploadFormCategoriesLabel.

NB: Het label voor het bestand op de computer van de gebruiker dat geüpload moet worden, zegt in veel talen nu "Origineel bestand". Zorg ervoor dat dit wordt gewijzigd naar "Lokaal bestand". De term "origineel bestand" kan te gemakkelijk worden aangezien als de bestandsnaam bij de oorspronkelijke bron, of als de URL naar de bron. We staan echter geen directe uploads van andere websites toe. Omdat MediaWiki:UploadForm.js een nieuw invoerveld toevoegt voor de bron, is de kans op verwarring nog groter.

Configureren van de inleidende tekst

Het uploadformulier bevat wat inleidende tekst die is geconfigureerd voor MediaWiki:Uploadtext en subpagina's daarvan. Het kan nodig zijn om deze tekst aan te passen, omdat tekst die logisch is voor de basisvorm mogelijk niet nodig is met het volledige nieuwe uploadformulier. Deze tekst legt bijvoorbeeld meestal uit hoe men een sjabloon {{Information}} invult: omdat er geen sjabloon is die handmatig ingevuld kan worden in de volledige versie, is die tekst gewoon niet nodig of kan het zelfs verwarrend zijn omdat het de gebruiker instrueert een sjabloon {{Information}} in de beschrijving te zetten, maar in de volledige versie, Dat is precies wat de gebruiker niet zou moeten doen.

Het is daarom noodzakelijk om de teksten op MediaWiki:Uploadtext te markeren op een manier die het mogelijk maakt dat het script selectief delen ervan kan verbergen of tonen. Dit kan door het deel dat alleen zichtbaar zal zijn op de basisvorm in een <div id="wpUploadFormLongText"> te wikkelen, en het deel dat bedoeld is alleen voor de volledige versie in <div id="wpUploadFormShortText">. Er zijn drie mogelijkheden:

<div id="wpUploadFormLongText">
  Standaardtekst
</div>
<div id="wpUploadFormShortText"
     style="display:none;">
  Alternatieve tekst
</div>
Volledig onafhankelijke teksten. Als de volledige versie wordt gebruikt, wordt alleen de alternatieve tekst getoond. Het script verbergt wpUploadFormLongText en toont dan wpUploadFormShortText. In de basismodus verandert er niets.

De style="display:none;" is belangrijk, anders worden beide teksten standaard weergegeven.

<div id="wpUploadFormLongText">
  Standaardtekst
  <div id="wpUploadFormShortText">
    Alternatieve tekst
  </div>
  Meer standaardtekst
</div>
De standaardtekst bevat de korte tekst voor het volledige formulier. In de volledige versie wordt alleen de alternatieve tekst weergegeven. Het script verbergt wpUploadFormLongText en extraheert wpUploadFormShortText en laat dat alleen maar zien. In de basismodus wordt er niets veranderd.
<div id="wpUploadFormShortText">
  Standaardtekst
  <div id="wpUploadFormLongText">
    Tekst alleen voor de basisvorm
  </div>
  Meer standaardtekst
</div>
Er is een deel in de standaardtekst dat niet nodig is voor het volledige modus. Het script verbergt wpUploadFormLongText als de volledige modus wordt gebruikt. In de basismodus verandert er niets.

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

Bovendien is er een soortgelijk mechanisme voor het verleden. Veel van deze inleidende teksten bevatten een weergave van het sjabloon {{Information}} zoals aan de rechterzijde. Als dit in een <div id="Uploadtext-template-box"> is omgeven, verbergt het script het zelfs in basismodus, omdat het beschrijvingsveld al vooraf is gevuld met een dergelijke sjabloon in de basismodus.

Gepersonaliseerde uploadformulieren

Commons heeft MediaWiki's mechanisme voor aanpassing van gebruikersinterface-taal ondermijnd om speciale uploadformulieren te implementeren. Zie deze pagina en deze hack. Er zijn nu vijf van zulke speciale uploadformulieren:

  • een voor uploaden van eigen werk (uselang=*ownwork),
  • een voor uploaden van Flickr (uselang=*fromflickr),
  • een voor ervaren gebruikers (uselang=experienced),
  • een voor uploaden van werk van de Amerikaanse regering (uselang=*fromgov), en
  • een voor uploaden van andere Wikimedia-projecten (uselang=*fromwikimedia).

MediaWiki:UploadForm.js werkt ook met deze gespecialiseerde uploadformulieren.

Lokalisatie

Zie "Een vertaling specialiseren".

"Own work" uploads

Bij uploadformulieren voor "eigen werk" wordt het bronveld vooraf gevuld met de vertaalde tekst van MediaWiki:UploadFormOwnWorkLabel, en het auteursveld vooraf gevuld met de accountnaam van de gebruiker.

"From Flickr" uploads

Op "Flickr" uploadformulieren vereist het script dat de bron een URL is die naar de afbeelding wijst op Flickr op http://www.flickr.com.

In de basismodus wordt deze URL-controle niet uitgevoerd.

"Experienced" uploadformulier

Het belangrijkste verschil tussen dit en andere uploadformulieren is een minimale inleidende tekst. Voor automatisch bevestigde gebruikers gebruikt het script zijn basismodus op deze formulieren, maar voor nieuwe accounts gebruikt het de volledige modus.

"From Wikimedia" uploads

Op de "fromwikimedia"-formulieren gebruikt MediaWiki:UploadForm.js altijd zijn basismodus. Deze formulieren zijn ontworpen om alle relevante informatie te halen uit de output van het hulpmiddel CommonsHelper; mensen zouden CommonsHelper moeten gebruiken en dan ofwel ons formulier helemaal niet gebruiken en CommonsHelper het bestand direct laten uploaden, of het hele sjabloon {{Information}} dat het genereert in het beschrijvingsveld moeten kopiëren.

Wijzigingen aanbrengen in dit script

Wees uiterst voorzichtig wanneer u MediaWiki:UploadForm.js of MediaWiki:Gadget-HotCat.js wijzigt. Omdat deze twee scripts op ons uploadformulier worden gebruikt, kan elke fout mogelijk een groot aantal gebruikers treffen! Als u een grote wijziging wilt maken, kopieer dan de inhoud van het script naar een andere plek in de namespace MediaWiki (bijvoorbeeld naar MediaWiki:UploadFormTest.js), maak daar uw wijzigingen (test ze met een link als deze: testlink voor uploadformulier, Duits, "from Flickr" upload). Zodra het perfect werkt op verschillende browsers (test het minstens op Firefox en IE6), kopieer dan de inhoud van uw testbestand naar MediaWiki:UploadForm.js.

Zorg ervoor dat elke wijziging die u maakt, compatibel is met DOM niveau 2. Gebruik geen functies van DOM Level 3! (Bijvoorbeeld document.adoptNode is DOM3. Gebruik in plaats daarvan document.importNode (DOM2). ) DOM Level 2 wordt ondersteund op veel browsers.

Als u nieuwe labels toevoegt, zorg er dan ook voor dat u het script translation plea van MediaWiki:UploadFormTranslator.js bijwerkt om een vertaling van de nieuwe labels te vragen.

Melden van fouten

Bugs kunnen gemeld worden met MediaWiki talk:UploadForm.js. Vermeld precies wat er misging (misschien zelfs door een schermafbeelding toe te voegen), en vertel ons welke browser en welk besturingssysteem u gebruikt, en ook wanneer het probleem zich voordeed. (De tijd in UTC kan belangrijk zijn om te bepalen of een probleem is veroorzaakt doordat de servers traag waren.) Als u Firefox gebruikt, open dan het foutenlogboek (in het menu "Tools→Foutconsole") en kijk of er fouten zijn gemeld. Zo ja, vertel ons wat die foutmeldingen waren. Bedankt.

Category:Commons internationalization/Translations
Category:Commons help/nl Category:Commons internationalization/Translations Category:Gadget script documentation