Wikiup Diskussion:Technik/Skin/Gadgets/Zeitzonenkonverter

aus Wikipedia, der freien Enzyklopädie

{{Wikipedia:Technik/Skin/Gadgets/!WP:MW/Ä}}

Diskussionen vor der Aktivierung als Gadget

Regexp-Verbesserungsvorschlag

return text.replace(/(20\d\d) [(]CEST[)]/gi, '$1 (MESZ)').replace(/(20\d\d) [(]CET[)]/gi, '$1 (MEZ)');

MfG, --ParaDoxa 13:52, 30. Dez. 2009 (CET)

gudn tach!
sollte man noch zusammenfassen koennen zu (ungetestet):
return text.replace(/(20\d\d) \(CE(S?)T\)/gi, '$1 (ME$2Z)');
-- seth 11:11, 3. Jan. 2010 (CET)
Implementiert. --Leyo 12:39, 8. Jan. 2010 (CET)

Einschränkung auf Diskseiten

Mir fehlt noch die Einschränkung auf Diskseiten. Außerdem würde ich Elemente aus #bodyContent durchlaufen:

function IsTalkPage() {
   var isSpecial  = (wgCanonicalNamespace == "Special");
   var isTalk = (!isSpecial && (wgNamespaceNumber % 2 == 1);
 
   var regpages = new Array(':Verbesserungsvorschläge', ':Löschkandidaten', ':Löschprüfung', ':Entsperrwünsche', ':Adminkandidaturen', ':Qualitätssicherung', ':Fragen_zur_Wikipedia', ':Meinungsbilder', ':Review', ':Bilderwünsche', ':Kandidaten', ':Fragen_von_Neulingen', ':Auskunft');
   if (wgCanonicalNamespace.match(/talk$|Diskussion$/i)) var regpages = "";
   for (p in regpages) 
      if (wgPageName.indexOf(regpages[p]) != -1) {regpages=false; break;} //regpages=false  wenn Diskussions-Wikipedia-Seite (Script aus [[Benutzer:Olliminatore/signing.js]])
   if (!regpages || isTalk)
      return true;
   return false;
   }

if (IsTalkPage())
   node_ersetzen(document.getElementById('bodyContent'));

meint -- Bergi 14:07, 1. Jan. 2010 (CET)

Hm, könnte man da nicht gerade umgekehrt an die Sache herangehen, sprich, Artikel auszuschliessen? Im WP-Namensraum sollte die Ersetzung z.B. bei Projekten auch geschehen. --Leyo 12:39, 8. Jan. 2010 (CET)
Das wäre natürlich einfacher. Man muss einfach abwiegen, wo der Skript Schaden anrichten könnte. Über CEST gelaufen, würde er sicher für Verwirrung sorgen. Theoretisch müsste man erkennen können, ob das „(CEST)“ Teil einer Signautr ist.
meint -- Bergi 16:26, 12. Jan. 2010 (CET)
Das ist doch mittels (/(20\d\d) im Code gewährleistet. Oder meinst du etwas anderes? --Leyo 16:36, 12. Jan. 2010 (CET)
Wenn ich jetzt hier (CEST) schreibe, und das umgewandelt wird, verfälscht das meine Aussage. Allerdings hast du Recht, die Version mit Klammern wird kaum einer im Fließtext unter der Bedeutung CentralEuropeanTime nutzen. Und in Zeitleisten o.ä. darf es eigentlich durchaus umgewandelt werden.
meint -- Bergi 17:13, 12. Jan. 2010 (CET)
Damit (CEST) vom Skript umgewandelt würde, müsste noch eine vierstellige Zahl beginnend mit 20 davor. --Leyo 17:24, 12. Jan. 2010 (CET)
OK, mit regulären Ausdrücken bin ich nicht so vertraut :-( -- Bergi 18:28, 12. Jan. 2010 (CET)

Gadget

Was haltet ihr davon, dieses Skript als Gadget anzubieten? --Leyo 12:39, 8. Jan. 2010 (CET)

Ich würde das sehr begrüßen (siehe dazu auch die Diskussion unter Wikipedia:Verbesserungsvorschläge#CET -> MEZ).
--Konrad – 10:55, 17. Jan. 2010 (CET)
Dann schlage es doch unter MediaWiki Diskussion:Gadgets-definition zur Aufnahme vor. --Leyo 11:58, 17. Jan. 2010 (CET)
magst du dem script nicht vorher noch einen anderen namen geben als "test...."? ;-) -- seth 13:57, 17. Jan. 2010 (CET)
Doch, natürlich. Es soll auch nicht in meinem BNR bleiben. Wie wär's mit MediaWiki:Gadget-MEZ-MESZ.js? --Leyo 14:01, 17. Jan. 2010 (CET)

"Gadget-MEZ-MESZ.js" wäre für den jetzigen Zustand sicher schon in Ordnung, .. (der Rest dieses Beitrages wurde nach Wikipedia:Verbesserungsvorschläge#Zeitzonen-Übersetzter geschoben.)
--Konrad – 09:44, 18. Jan. 2010 (CET)

Ich weiss nicht, ob das möglich wäre, und ich plane selbst nichts in diese Richtung.
Diese Diskussionsseite hier ist nicht geeignet für solche Diskussionen, da zu wenige mitlesen. Am besten entweder unter MediaWiki Diskussion:Gadgets-definition oder Wikipedia:Verbesserungsvorschläge#CET -> MEZ. --Leyo 10:37, 18. Jan. 2010 (CET)

Bevor das Programm dort vorgeschlagen wird, sollte es aber bereits einen möglichst aussagekräftigen Namen haben. Und wenn der Name jetzt erst noch laaang und breit ausdiskutiert werden soll, dann macht dafür bitte auch ein neues Thema auf.
--Konrad – 10:57, 18. Jan. 2010 (CET)

MediaWiki Diskussion:Gadgets-definition#Zeitzonenkonverter --Leyo 11:39, 19. Jan. 2010 (CET)

UTC -> MEZ

Geht das auch mit UTC? Siehe auch "(UTC)" unter „Portal Diskussion:Frühe Neuzeit“. :-) Mehr dazu ist auch mit der Wiki-Suchfunktion zu finden.[1]
--Konrad – 11:14, 19. Jan. 2010 (CET)

Es ginge schon, aber ich sehe nicht wozu dies gut sein soll. --Leyo 11:16, 19. Jan. 2010 (CET)
Nun vielleicht aus dem selben Grund, warum du CET nach MEZ übersetzt hast?
--Konrad – 11:22, 19. Jan. 2010 (CET)

Diskussionen nach der Aktivierung als Gadget

MESZ

In der Beschreibung der „Helferlein“, unter Spezial:Einstellungen, wird direkt von „MESZ“ auf „Sommerzeit“ verlinkt, was gegenüber dem vorangehenden Link (MEZ) dort inkonsequent und daher auch irreführend ist, wenn der Leser nur über den Link fährt. Es sollte daher besser (wie in der Überschrift hier) von „MESZ“ auf „Mitteleuropäische Sommerzeit“ verlinkt und dabei ggf. auch die vorhandene Weiterleitung verwendet werden, da dies die korrekte Bedeutung dieser Abkürzung ist.
--Konrad – 11:44, 19. Mai 2010 (CEST)

So besser? --Leyo 15:53, 19. Mai 2010 (CEST)

Ja, so ist es richtig. :-)
--Konrad – 16:06, 19. Mai 2010 (CEST)

UTC -> MEZ

Es wäre gut, wenn dieser Zeitzonenkonverter hier dann auch mal UTC nach MEZ (oder ggf. MEST) übersetzen könnte, da diese Zeitzone auch hin und wieder hier im Wiki verwendet wird (siehe auch Suchfunktion, z.B. mit "2010 (UTC)"). Andere Zeitzonen könnten dann ggf. auch mal ergänzt werden, falls noch weitere verwendet werden.
--Konrad – 12:04, 19. Mai 2010 (CEST)

[..] Das Gadget ist nur für Signaturen gedacht. --Leyo 11:34, 3. Nov. 2010 (CET)
(Der vorstehende Beitrag wurde von der Seite „Benutzer Diskussion:Revolus/monobook.js/sidebartranslate.js“ hier hergeschoben.)

Etwas anderes, als signierte Beiträge auf Diskussionsseiten, habe ich auch nicht gemeint.
--Konrad – 09:24, 4. Nov. 2010 (CET)

Gibt es denn (viele) solche Signaturen, abgesehen von Beiträgen, die aus der en-WP hierher kopiert wurden? Ich bitte um Beispiele von entsprechenden Diffs. --Leyo 09:49, 4. Nov. 2010 (CET)

Habe mir nun nur die ersten Treffer angesehen, die mir über die oben bereits verlinkte Such-Seite ausgegeben wurden. Tatsächlich scheint es so zu sein, daß dort nur Beiträge aufgeführt werden, die aus der englischen Wikipedia oder auch von Commons rüberkopiert wurden. Allerdings verstehe ich nicht, was der Ursprung der fremden Zeitzonen damit zu tun haben soll, ob der Zeitzonenkonverter hier entsprechend erweitert wird oder nicht. Meine Idee dahinter war ja eigentlich, irgendwann mal dem (angemeldeten) Nutzer die Wahl der verwendeten (und angezeigten) Zeitzone zu überlassen. Und dabei spielt es keine Rolle, woher die fremden Zeitzonen kommen oder wie oft man damit belästigt oder ausgebremst wird. Als Leser von Diskussionsbeiträgen interessiert mich diesbezüglich in der Regel nämlich nur, wann die Beiträge – in der eigenen Zeit(zone) – angelegt wurden. Wenn diese dann aber erst vorher selbst (manuell) umgerechnet werden muß, ist die Information eigentlich nutzlos. Im Grunde wurde das aber alles schon mehrfach unter Wikipedia:Verbesserungsvorschläge notiert (siehe auch im Archiv).
--Konrad – 09:48, 8. Nov. 2010 (CET)

Ich teile deine Meinung nicht und werde das Gadget daher auch nicht erweitern. --Leyo 09:54, 8. Nov. 2010 (CET)

Probleme mit Skin Modern

Auf Wikipedia:Fragen zur Wikipedia#Und noch mal: Sonderzeichenleiste wurde ein Fehler auf dieser Seite ausgemacht. Keine Ahnung, ob es stimmt, aber vielleicht kann sich hier jemand der Sache annehmen. --Alex 10:42, 5. Nov. 2011 (CET)

Schwesterprojektlinks (z.B. Commons) werden missformatiert

K@rl berichtete mir unter Benutzer Diskussion:Saibo#Darstellungsproblem von Commonslink von diesem:

"Und zwar stellt sich der Link wie die Abbildung zeigt dar. Und zwar ergibt sich das wenn das Helferlein:Zeitzonenkonverter aktiv ist. (Lange gesucht - der letzte wars dann schließlich. Ich arbeite mit FF ist schon längere Zeit mit 7. bis 9.0"

Ich selbst kann es allerdings (wenn ich das Helferlein anschalte) mit FF 3.6 und Monobook an Ernst Rüdiger von Starhemberg nicht nachvollziehen. Viele Grüße --Saibo (Δ) 00:05, 28. Dez. 2011 (CET)

Ich kann es nachvollziehen (dass, nicht weshalb), müsste aber zur Lösung WP:TSW beiziehen. --Leyo 00:13, 28. Dez. 2011 (CET)
Weiter gehts hier → Wikipedia:Technik/Skin/Werkstatt#Gadget-Zeitzonenkonverter.js:_Schwesterprojektlinks_.28z.B._Commons.29_werden_missformatiert. --Saibo (Δ) 01:33, 28. Dez. 2011 (CET)

Vorschau

Es wäre prima, wenn der Zeitzonenkonverter auch unter Verwendung der Option „Vorschau sofort anzeigen (benötigt JavaScript) (experimentell)“ bei der Vorschau greifen würde. --Seth Cohen 19:44, 17. Sep. 2012 (CEST)

Überarbeitete Version

$(function() {
        if (mw.config.get('wgNamespace') < 0) {
                return;
        }
	var blacklist = { 'CODE': true, 'FORM': true, 'PRE': true, 'SCRIPT': true, 'STYLE': true };
        var regex = /( 20\d\d) \(CE(S?)T\)/g;
        function iterateNode(node) {
                if (node.nodeType == 3 && regex.test(node.data)) {
                        node.data = node.data.replace(regex, '$1 (ME$2Z)');
                } else if (node.nodeType == 1 && !blacklist[node.nodeName] && !$(node).hasClass('diff')) {
                        for (var i = node.childNodes.length; i--; ) {
                                iterateNode(node.childNodes[i]);
                        }
                }
        }
	if (mw.user.options.get('uselivepreview')) {
		$(mw).on('LivePreviewDone', function() {
			iterateNode(document.getElementById('wikiPreview'));
		});
	}
        if (mw.util.$content && mw.util.$content.length &&
                (mw.config.get('wgNamespace') != 0 || mw.util.$content.text().indexOf(' (CE') > 0)) {
	        iterateNode(mw.util.$content[0]);
        }
});

Eigentlich war mein Ziel, das Gadget schneller zu machen, aber es ist schon unheimlich schnell. Mehr als ein paar Millisekunden konnte ich nicht mehr rausholen. Erläuterung aller Änderungen:

  • Funktioniert mit der Einstellung „Vorschau sofort anzeigen“.
  • Quelltextabschnitte und einiges andere werden von der Ersetzung ausgenommen.
  • Der Reguläre Ausdruck hat ein Leerzeichen vor der Jahreszahl erhalten und das i verloren, um ihn so spezifisch wie möglich zu machen.
  • Der Stringvergleich ist durch ein test() ersetzt. Das ist je nach Browser sogar schneller.
  • Sowohl mw.config.get() als auch mw.util.$content sind billige Operationen. Dafür lokale Variablen anzulegen, kann sogar langsamer sein.
  • Ob man == oder === schreibt, ist Geschmackssache. Schneller ist es in den aktuellen Browsern nicht. Die Empfehlung lautet, === zu verwenden, wenn es von Bedeutung ist, den Typ zu vergleichen, sonst ganz normal ==.

--TMg 18:03, 19. Okt. 2012 (CEST)

Klasse. Danke sehr! --Seth Cohen 19:38, 19. Okt. 2012 (CEST)
Ein (unkritischer) Logikfehler ist mir gerade noch aufgefallen. Habe ich oben behoben. Bitte auch noch übernehmen, wenn es geht. Danke. --TMg 20:26, 19. Okt. 2012 (CEST)
Übernommen. --Leyo 20:39, 19. Okt. 2012 (CEST)

Skript bei Versionsvergleich aktiv

Das Skript ist, ebenso wie signatureDateFormat.js, beim Versionsvergleich aktiv. Dort sollte es abgeschaltet sein. --Seth Cohen 18:41, 25. Okt. 2012 (CEST)

Die Lösung habe ich oben eingebaut. Auf die Performanz hat das meinem Test zufolge erstaunlicherweise nahezu keinen Einfluss. Bitte übernehmen. --TMg 20:39, 25. Okt. 2012 (CEST)
Danke sehr. Wie misst du die Performanz eigentlich? --Seth Cohen 20:57, 25. Okt. 2012 (CEST)
Ganz primitiv 2× die Zeit stoppen. var t0 = Date.now(); alert(Date.now() - t0); Damit das etwas Aussagekräftiges ergibt, multipliziere ich vorher den Seiteninhalt. --TMg 23:22, 25. Okt. 2012 (CEST)
Danke! --Seth Cohen 17:22, 26. Okt. 2012 (CEST)
erledigtErledigt Übertragen. Der Umherirrende 19:46, 8. Nov. 2012 (CET)

Fix for pages without a content element

Hi,

Some special pages don't have a content element, and this script produces JS errors.

To fix this, please do:

// ersetzt „CE(S)T“ durch „ME(S)Z“ (ohne Änderung von Seiten)

$(function() {
        if (mw.config.get('wgNamespace') < 0) {
                return;
        }
        var blacklist = { 'CODE': true, 'FORM': true, 'PRE': true, 'SCRIPT': true, 'STYLE': true };
        var regex = /( 20\d\d) \(CE(S?)T\)/g;
        function iterateNode(node) {
                if (node.nodeType == 3 && regex.test(node.data)) {
                        node.data = node.data.replace(regex, '$1 (ME$2Z)');
                } else if (node.nodeType == 1 && !blacklist[node.nodeName] && !$(node).hasClass('diff')) {
                        for (var i = node.childNodes.length; i--; ) {
                                iterateNode(node.childNodes[i]);
                        }
                }
        }
        mw.hook( 'wikipage.content' ).add( function( $content ) {
                if ( $content[0] !== undefined ) {
                        iterateNode($content[0]);
                }
        });
});

Thank you! --Amir E. Aharoni (Diskussion) 16:19, 4. Jun. 2017 (CEST)

Hi Benutzer:DerHexer, perhaps you can help? --Amir E. Aharoni (Diskussion) 12:04, 5. Jun. 2017 (CEST)
@Amire80: Fixed. Best, —DerHexer (Disk.Bew.) 21:45, 8. Jun. 2017 (CEST)