1. Startseite
  2. Nachrichten
  3. Herunterladen
    1. Thunderbird Release-Version
    2. Thunderbird 128 ESR
    3. Thunderbird 115 ESR
    4. Thunderbird Beta-Version
    5. Sprachpaket (Benutzeroberfläche)
    6. Wörterbücher (Rechtschreibprüfung)
  4. Hilfe & Lexikon
    1. Anleitungen zu Thunderbird
    2. Fragen & Antworten (FAQ) zu Thunderbird
    3. Hilfe zu dieser Webseite
  5. Forum
    1. Unerledigte Themen
    2. Letzte Beiträge
    3. Themen der letzten 24 Stunden
  • Anmelden
  • Registrieren
  • 
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Forum
  • Lexikon
  • Artikel
  • Seiten
  • Erweiterte Suche
  1. Thunderbird Mail DE
  2. Forum
  3. Hilfe zu E-Mail und allgemeines Arbeiten
  4. Allgemeines Arbeiten / Konten einrichten / Installation & Update

typographische Anführungszeichen (Smart Quotes) für TB

  • M.H.
  • 19. Februar 2015 um 16:11
  • Geschlossen
  • Unerledigt
  • M.H.
    Mitglied
    Reaktionen
    2
    Beiträge
    22
    Mitglied seit
    23. Apr. 2014
    • 19. Februar 2015 um 16:11
    • #1

    Thunderbird-Version: 31.4.0Betriebssystem + Version: Win7Kontenart (POP / IMAP): IMAPPostfachanbieter (z.B. GMX): GMXZuvor eine Frage: Was bedeutet dieser Satz: „Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „graba“ (23. April 2014, 22:44) aus folgendem Grund: Code-Tags gesetzt“? Warum wurde meine Anfrage zum unten genannten Sachverhalt als erledigt gekennzeichnet?Da ich bislang leider noch keine Antwort auf folgendes (aus meiner Sicht lösbaren) Problems der Smartquotes (typographische Anführungszeichen) erhalten habe, versuche ich es noch einmal. Es wäre wunderbar, wenn sich doch jemand dieses Problemes annehmen würde.Vorab: Die Tastenkombinationen Alt+0132 bzw. Alt+0147 sind mir für die deutschen typographischen Anführungszeichen bekannt.Ich möchte in Thunderbird die deutschen typographischen Anführungszeichen nutzen und habe dazu bereits das von Mark Simon entwickelte Add-on namens "smart_quotes-0.1-tb.xpi" installiert. Auch konnte ich erfolgreich diese Datei mit WinZip entpacken und die darin enthaltene Datei namens "script.js" aus dem Ordner "Content" bearbeiten (siehe unten) und erneut (über WinZip) zur funktionierenden .xpi-Datei zurückspeichern. Folgendes Problem besteht jedoch auch in dem von Mark Simon entwickelten Add-on: Beim Verfassen einer Textnachricht scheint zunächst in der 1. Zeile alles richtig zu funktionieren. (Bei meiner kleinen Umprogrammierung erscheinen die typographischen Anführungszeichen ordnungsgemäß erst unten, danach oben.) Ab der 2. Zeile (manueller Zeilenumbruch bzw. Absatzmarke mittels Entertaste) jedoch funktioniert dieses Add-on nicht richtig (auch in der englischen Version!). Die Anführungszeichen erscheinen nun unwillkürlich steuerbar mal oben oder auch unten, scheinbar keinem erkennbaren Muster folgend. Das wird auch daran deutlich, wenn man in der ersten Zeile vielfach hintereinander (ohne dazwischenstehenden Text das Anführungszeichen drückt ("), erscheint es zunächst immer unten, gebe ich dann einen Text ein und setze das Ausführungszeichen mehrfach, erscheint es immer oben und nach einem Leerzeichen wieder unten. Ab Zeile 2 erscheint dagegen beim vielfachen Drücken des Anführungszeichens (") dieses Zeichen unterschiedlich wechselnd mal oben und dann plötzlich mal unten. Der Programmierung durch Herrn Mark Simon fehlt wahrscheinlich leider die Information bzw. der Befehl, dass das Prinzip der 1. Zeile auch bei manuellem Zeilenumbruch (Entertaste) fortgesetzt werden soll. Ich bin kein Programmierer und würde mich daher sehr freuen, wenn mir jemand im Forum helfen könnte. Sicher gibt es auch weitere Nutzer von TB, die sich über ein solches Add-on freuen würden. Vielleicht könnte bei dieser Gelegenheit dieses Add-on gleich weiterentwickelt werden, so dass auch weitere Anführungszeichen mit entsprechender Umschaltmöglichkeit zur Auswahl stünden.Hier die Programminformationen aus der Datei "script.js" des Ordners "Content" [mit meiner Bearbeitung der Punkte "function smartQuotes(text)" und if(code==34) char=before.match(/\B/)?'„':'“'; else char=before.match(/\B/)?'‚':'‘';]:


    Code
    /*	tbSmartQuotes
    	============================================================
    
    
    
    
    	Mark Simon
    	[url]http://smartquotes.info[/url]
    
    
    
    
    	Thunderbird Extension Development:
    
    
    
    
    		//	[url]https://developer.mozilla.org/en-US/docs/Web/API/Selection[/url]
    		//	[url]https://developer.mozilla.org/en-US/docs/Extensions/Thunderbird/HowTos[/url]
    		//	[url]http://mdn.beonex.com/en/Extensions/Thunderbird/HowTos/Common_Thunderbird_Use_Cases/Compose_New_Message.html[/url]
    
    
    
    
    		//	[url]https://developer.mozilla.org/en/docs/Submitting_an_add-on_to_AMO[/url]
    		//	[url]https://developer.mozilla.org/en-US/docs/Extensions/Thunderbird/Building_a_Thunderbird_extension_2:_extension_filesystem[/url]
    		//	[url]https://developer.mozilla.org/en-US/docs/Extensions/Thunderbird/Creating_a_Custom_Column[/url]
    
    
    
    
    	============================================================ */
    
    
    
    
    /*	Feed Back
    	============================================================ */
    
    
    
    
    	function say(message) {
    		alert(message);
    	}
    
    
    
    
    /*	insertChar()
    	============================================================ */
    	function insertChar(editor,char) {
    		editor.beginTransaction();
    		editor.insertText(char);
    		editor.endTransaction();
    	}
    /*	Smart Quotes
    	============================================================ */
    
    
    
    
    //	var theWindow = document.commandDispatcher.focusedWindow;
    //	theWindow.addEventListener('keypress',handleQuotes);
    
    
    
    
    	var button;
    	window.addEventListener("load", function() {
    		button=document.getElementById('smartQuotesAuto');
    		button.state=1;
    		window.addEventListener("keypress", handleQuotes, false);
    	}, false);
    
    
    
    
    	function smartQuotes(text) {
    		text=text.replace(/(^|\B)(')\b/g,'‚');
    		text=text.replace(/(^|\B)(")\b/g,'„');
    		text=text.replace(/'/g,'‘');
    		text=text.replace(/"/g,'“');
    		return text;
    	}
    
    
    
    
    /*	Handle Quote Character: attach to element.onkeypress
    	------------------------------------------------------------ */
    	//alert(range);
    	//alert(range.startOffset);
    	//alert(document.commandDispatcher.focusedWindow==window);	//	false implies compose window which is good
    
    
    
    
    	function handleQuotes(e) {
    		//	var target=e.target;
    		if(!button.state) return;
    		var code=e.charCode;
    		if(code==34||code==39) {
    			var editor = GetCurrentEditor();
    			if(e.ctrlKey) {		//	ctrl->allow straight quotes
    				insertChar(editor,e.shiftKey?'"':"'");
    				return false;
    			}
    			var char;
    			var selection = document.commandDispatcher.focusedWindow.getSelection();
    			var text = editor.outputToString('text/plain', 8);
    			var range=selection.getRangeAt(0);
    			var l=range.startOffset;
    			var before = text.substr(l-1,1);
    
    
    
    
    			if(code==34) char=before.match(/\B/)?'„':'“';
    			else char=before.match(/\B/)?'‚':'‘';
    //alert(char);
    			insertChar(editor,char);
    			e.preventDefault();
    			return false;
    		}
    		else return true;
    	}
    
    
    
    
    		function doSmartQuotesAuto() {
    			if(button.state) {
    				button.image="chrome://smartquotes/content/images/sq0.png";
    				button.state=0;
    			}
    			else {
    				button.image="chrome://smartquotes/content/images/sq1.png";
    				button.state=1;
    			}
    		}
    
    
    
    
    /*	Doit
    	============================================================ */
    		function doSmartQuotesConvert() {
    //			var editor = gMsgCompose.editor;
    //			editor = editor.QueryInterface(Components.interfaces.nsIHTMLEditor);
    
    
    
    
    			var editor = GetCurrentEditor();
    
    
    
    
    			var selection = document.commandDispatcher.focusedWindow.getSelection();
    			var text = selection.toString();
    			text=smartQuotes(text);
    
    
    
    
    			editor.beginTransaction();
    			editor.insertText(text);
    			editor.endTransaction();
    		}
    Alles anzeigen

    Einmal editiert, zuletzt von graba (19. Februar 2015 um 16:23) aus folgendem Grund: Code-Tags gesetzt

  • graba
    Globaler Moderator
    Reaktionen
    576
    Beiträge
    21.507
    Mitglied seit
    17. Mai. 2006
    Hilfreiche Antworten
    9
    • 19. Februar 2015 um 16:43
    • #2

    Hallo,

    um Helfern die Arbeit zu erleichtern, sollten Sie Ihren Textblock möglichst in sinnvolle Abschnitte untergliedern, was eine bessere Übersichtlichkeit gewährleisten würde.

    Zitat von M.H.

    Was bedeutet dieser Satz: „Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „graba“ (23. April 2014, 22:44) aus folgendem Grund: Code-Tags gesetzt“

    Die Erklärung wird mit dem Grund geliefert.

    Zitat von M.H.

    Warum wurde meine Anfrage zum unten genannten Sachverhalt als erledigt gekennzeichnet?


    Vor Kurzem wurde das Forum auf die neue Software umgestellt, wobei alle alten Threads automatisch als "erledigt" gekennzeichnet wurden.

    Gruß
    graba :ziehtdenhut:

    Keine Forenhilfe per Konversation!
    Für Thunderbird-Entwicklung spenden

  • SusiTux
    Gast
    • 19. Februar 2015 um 21:54
    • #3

    Hallo M.H. ,

    Dein Text ist wirklich schwer zu lesen. Etwas mehr Formatierung hätte ihm gut getan. Immerhin lässt sich der Code inzwischen recht gut lesen.

    Ich muss zugeben, dass ich mich mit diesem JS-Code beim Überfliegen ein wenig schwer tue. Das liegt in erster Linie daran, dass die RegEx in dieser Art für mich ungewohnt sind, obwohl der "Flavor" der RegEx im JS dem des Perl oder Java sehr angepasst scheint. Das ist aber nicht die "klassische" RegEx-Syntax. Ehrlich gesagt habe ich nicht den Elan habe, mich jetzt tiefer einzulesen. Aber damit Du wenigsten eine Antwort bekommst, hier ein rascher best guess. ;-)

    Möglicherweise hängt das von Dir geschilderte Verhalten mit

    var text = editor.outputToString('text/plain', 8);

    zusammen. Ich weiß nicht, wie diese Methode mit dem CR umgeht. Was passiert denn, wenn Du anstatt der Live-Ersetzung über handleQuotes(e) die Möglichkeit nutzt, den Text zu markieren und dann nachträglich ersetzen lässt, also über

    doSmartQuotesConvert() bzw. die Function smartQuotes? Klappt es dann?

    Vielleicht meldet sich hier auch noch jemand, der JS- und RegEx-affiner ist als ich. Ansonsten stellt sich mir natürlich die Frage, weshalb Du nicht einfach den Autor dieser Erweiterung kontaktierst.

    Gruß

    Susanne

  • Community-Bot 3. September 2024 um 20:20

    Hat das Thema geschlossen.

Aktuelle Programmversion

  • Thunderbird 139.0 veröffentlicht

    Thunder 27. Mai 2025 um 23:39

Aktuelle ESR-Version

  • Thunderbird 128.11.0 ESR veröffentlicht

    Thunder 28. Mai 2025 um 22:13

Keine Werbung

Hier wird auf Werbeanzeigen verzichtet. Vielleicht geben Sie dem Website-Betreiber (Alexander Ihrig - aka "Thunder") stattdessen etwas aus, um diese Seiten auf Dauer finanzieren zu können. Vielen Dank!

Vielen Dank für die Unterstützung!

Kaffee ausgeben für:

Per Paypal unterstützen*

*Weiterleitung zu PayPal.Me

Thunderbird Mail DE
  1. Impressum & Kontakt
  2. Datenschutzerklärung
    1. Einsatz von Cookies
  3. Nutzungsbedingungen
  4. Spendenaufruf für Thunderbird
Hilfe zu dieser Webseite
  • Übersicht der Hilfe zur Webseite
  • Die Suchfunktion benutzen
  • Foren-Benutzerkonto - Erstellen (Neu registrieren)
  • Foren-Thema erstellen und bearbeiten
  • Passwort vergessen - neues Passwort festlegen
Copyright © 2003-2025 Thunderbird Mail DE

Sie befinden sich NICHT auf einer offiziellen Seite der Mozilla Foundation. Mozilla®, mozilla.org®, Firefox®, Thunderbird™, Bugzilla™, Sunbird®, XUL™ und das Thunderbird-Logo sind (neben anderen) eingetragene Markenzeichen der Mozilla Foundation.

Community-Software: WoltLab Suite™