Benutzer:TMg/signatureDateFormat.js
Erscheinungsbild
Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
// <nowiki> zur Umgehung von [[phab:T10761]]
$( function () {
var ns = mw.config.get( 'wgNamespaceNumber' );
// Nur in Diskussions-Namensräumen und dem Wikipedia-Namensraum
if ( ns < 1 || ( !( ns % 2 ) && ns !== 4 ) ) {
return;
}
var action = mw.config.get( 'wgAction' );
if ( action !== 'view' && action !== 'edit' && action !== 'submit' ) {
return;
}
var format = mw.user.options.get( 'date' );
if ( !format ) {
return;
}
// Deutsch, Englisch, Französisch, Italienisch, Portugiesisch, Spanisch
var months = {
'JAN': '01', 'ENE': '01', 'GEN': '01',
'FEB': '02', 'FEV': '02', 'FÉV': '02',
'MÄR': '03', 'MAR': '03',
'APR': '04', 'ABR': '04', 'AVR': '04',
'MAI': '05', 'MAY': '05', 'MAG': '05',
'JUN': '06', 'GIU': '06', 'JUI': '06',
'JUL': '07', 'JUI': '07', 'LUG': '07',
'AUG': '08', 'AGO': '08', 'AOÛ': '08',
'SEP': '09', 'SET': '09',
'OKT': '10', 'OCT': '10', 'OTT': '10', 'OUT': '10',
'NOV': '11',
'DEZ': '12', 'DEC': '12', 'DÉC': '12', 'DIC': '12'
};
// Ausgabeformat "2012-06-07T16:52:15"
var replacementBase = function ( a, t, d, m, y ) {
return y + '-' + ( months[ m.slice( 0, 3 ).toUpperCase() ] || m ) +
( d.length > 1 ? '-' : '-0' ) + d + 'T' + t.slice( 0, 2 ) + ':' + t.slice( 3 );
}
var replacement = replacementBase;
if ( format.slice( 0, 4 ) === 'dmyt' ) {
// Ausgabeformat "7. Jun. 2012, 16:52"
replacement = '$2. $3 $4, $1';
} else if ( format === 'ymd' ) {
// Ausgabeformat "16:52, 2012 Jun. 7"
replacement = '$1, $4 $3 $2';
} else if ( format.slice( 0, 3 ) !== 'ISO' ) {
return;
}
// Möglichst flexibles, aber sicher erkennbares deutsches Datumsformat
var regex = /\b(\d+:\d+:?\d*), +(\d+)\. +([A-Z][a-zä]+\.?) +(\d+)(?= +\([A-Z]+\))/g;
switch ( mw.config.get( 'wgContentLanguage' ) ) {
case 'commons':
case 'en':
regex = /\b(\d+:\d+:?\d*), +(\d+) +([A-Z][a-z]+) +(\d+)(?= +\([A-Z]+\))/g;
break;
case 'es':
regex = /\b(\d+:\d+:?\d*) +(\d+) +([a-z]+) +(\d+)(?= +\([A-Z]+\))/g;
break;
case 'fr':
regex = /\b(\d+) +([a-zéû]+) +(\d+) +à +(\d+:\d+:?\d*)(?= +\([A-Z]+\))/g;
if ( format.slice( 0, 4 ) === 'dmyt' ) {
replacement = '$1. $2 $3, $4';
} else if ( format === 'ymd' ) {
replacement = '$4, $3 $2 $1';
} else {
replacement = function ( a, d, m, y, t ) {
return replacementBase( a, t, d, m, y );
}
}
break;
case 'it':
regex = /\b(\d+:\d+:?\d*), +(\d+) +([a-z]+) +(\d+)(?= +\([A-Z]+\))/g;
break;
case 'pt':
regex = /\b(\d+h\d+)min +de +(\d+) +de +([a-z]+) +de +(\d+)(?= +\([A-Z]+\))/g;
break;
}
mw.hook( 'wikipage.content' ).add( function ( $content ) {
// Im Bearbeitungsmodus nur den Vorschaubereich formatieren
if ( action !== 'view' ) {
$content = $content.find( '#wikiPreview' );
}
if ( $content.length ) {
var e = $content[ 0 ];
e.innerHTML = e.innerHTML.replace( regex, replacement );
}
} );
} );
// </nowiki>