Suchen Kalender Galerie | Auktionen Global Top | Mitglieder Stats |
Admin |
Chat (0) new User-Map | Passwort zusenden Registrieren |
---|
Forum Übersicht |
Seiten: (1) [1] » |
7 Vim- bzw. gVim-Makros um Kommentierungen in CSS- und PHP-Dateien zu übersetzen mit Google· |
ForumLeaks | ||
---|---|---|
Gruppe: Administrator Rang: Mehr als 1000 Beiträge Beiträge: 1596 Mitglied seit: 29.06.2005 IP-Adresse: gespeichert | Einige Wochen dauerte es, bis ich endlich diese 4 Makros für den Editor Vim bzw. gVom 7.1 fertiggestellt hatte, um Kommentierungen in CSS-Dateien leichter übersetzen zu können. Den Editor Vim gibt es übrigens auch als deutsche Version, nämlich hier: http://www.vim.org/download.php Mit dem ersten Makro http://forumtreff.pytalhost.de/grafik/css-makro1_1-sprachig (Rechtsmausklick und >Ziel speichern unter...) werden jeweils alle Kommentierungen ans Ende der Datei verschoben mit Nummerierung. Bspw. mit Google kann man diese übersetzen und unten die englischsprachigen Kommentierungen durch die Übersetzten ersetzen. Das zweite Makro http://forumtreff.pytalhost.de/grafik/css-makro2_1-sprachig ordnet diese Kommentierungen wieder automatisch in die Datei ein. Besser finde ich es aber, wenn in der Datei sowohl die englischsprachigen, als auch die übersetzten Kommentierungen vorhanden sind. Um das zu erreichen habe ich nachfolgende zwei Makros konzipiert. Das dritte Makro http://forumtreff.pytalhost.de/grafik/css-makro1_2-sprachig kopiert sämtliche Kommentierungen ans Ende der Datei. Diese dann natürlich auch übersetzen! Das vierte Makro http://forumtreff.pytalhost.de/grafik/css-makro2_2-sprachig verschiebt diese übersetzten Kommentierungen zurück, wobei die Kommentierungen in der Originalsprache erhalten bleiben. Diese 4 Makros arbeiten völlig präzise, sodass auch jede Leerzeile, jeder Zeilenumbruch, jede Leerstelle und jeder Tabstob exakt so erhalten bleibt, wie ursprünglich in den Code eingefügt. Insbesondere die beiden letzten Makros (2-sprachig) finde ich sehr praktisch, weil nämlich oftmals die automatische Übersetzung nicht besonders gut ist und man jeweils auch die Originalsprache zur Verfügung hat. Die übersetzen Kommentierungen werden automatisch so eingefügt, dass diese formatgetreu und somit übersichtlich jeweils genau unter oder ggf. neben den originalsprachigen (englischen) Kommentierungen eingefügt werden. Leerstellen und Tabstobs unmittelbar am Anfang und Ende der Kommentierungen innerhalb von /* und */ werden nicht nach unten verschoben, sondern verbleiben im Code, sodass bspw. die Google-Übersetzung diesbezüglich keine Probleme machen kann, falls Leerstellen am Zeilenanfang oder -ende automatisch entfernt werden sollten. Sollten in einer Zeile mehrere separate Kommentierungen sein, werden die übersetzten Kommentierungen automatisch jeweils unmittelbar daneben angefügt. In den letzen Monaten habe ich mich ziemlich gut mit dem Editor Vim bzw. gVim 7.1 eingearbeitet und in meinem alten Forum (neues phpBB3-Forum geplant) habe ich zu diesem Editor diese beiden Beiträge geschrieben: http://www.cyberlord.at/forum/?id=1431&thread=1350 Das Makro mit Vim öffnen, mit gg an den Anfang des Makros gehen und "ay$ tippen. Dieses Makro ist nun im Register a gespeichert. Dann die CSS-Datei mit Vim öffnen und das Makro a ausführen mit @a. Als Registernamen nur jeweils einen einzelnen Kleinbuchstaben wählen! Mit a oder i kommt man in den Bearbeitungsmodus und mit Esc ist man im Befehlsmodus. Das Makro ins Register speichern und ausführen geschieht im Befehlsmodus. Zu Editoren siehe auch diesen Beitrag von mir: Klick! Edit 3:10 Uhr: In den letzten beiden Makros (Makros 2) waren jeweils noch Fehler; sorry. Ich habe die jetzt behoben. Jetzt müssten alle einwandfrei funktionieren. Falls nicht, bitte melden! Das einzige, was man noch machen könnte, ist das Problem mit den Tabs. Die werden von Google inmitten der Zeilen in Leerstellen umgewandelt und jeweils am Anfang einer Zeile ignoriert. Und bspw. der Ausdruck (19) .button1 wird von der Google-Übersetzung in (19). button1 umgewandelt (Man beachte den Punkt). Das könnten die Makros auch noch automatisch korrigieren. Ich meine aber, dass sich das nicht lohnt, das Makro entsprechend zu erweitern um diese beiden "Schönheitsfehler" zu beseitigen. Edit 14:22 Uhr: Am Ende der 4 Makros habe ich noch einen Befehl eingefügt, der gegebenenfalls am Anfang der Datei den Hinweis einfügt: "ACHTUNG! In diesem CSS-Code befinden sich möglicherweise mehr als 1000 Kommentierungen; aber mehr als 1000 können mit diesem Makro nicht bearbeitet werden." und alle vier Dateien soeben erneut hochgeladen. Übrigens habe ich jetzt bei meiner gVim-Version 7.1 bemerkt, dass, wenn ich eine dieser großen Dateien schließe, nachdem der Kursor am Ende der Datei war, dass dann das nachfolgende Öffnen fehlerhaft ist. Oben fehlt dann Text bzw. es wird nicht der ganze angezeigt und ganz unten befindet sich der Kursor im Leeren. Das kann man vermeiden, indem man den Kursor mit gg an den Anfang der Datei bewegt, bevor man die Datei schließt. Oder mit der Ziffer 0, weil die gesamte Datei nur aus einer Zeile besteht, was den Kursor an den Anfang der Zeile bewegt. Mit G käme man zum Anfang der letzten Zeile; ist hier aber nicht wirksam. Mit $ kommt man ans Ende der Zeile. Edit 1.5.2008: Problem: Der Editor Vim bricht das Makro ab bei manchen Befehlen einer Meldung, dass ein Suchbegriff nicht gefunden wurde. Oder weiß jemand, wie man bei Vim diese Fehlermeldungen abstellt? Edit 21.5.2008: Falls sich in der CSS-Datei eine leere Auskommentierung befinden sollte, kam es an dieser Position zu einem Fehlverhalten. Auch wusste ich nicht, ob es zu einem Fehlverhalten kommt, falls es dann vor dem Ausführen des zweiten Makros sich in der Datei unten eine leere Auskommentierung befindet. Inzwischen habe ich dieses Problem behoben, indem ich in die beiden Makros, die zuerst abgearbeitet werden müssen, eine Sicherheitsprüfung einbaute, die bei einer vorhandenen leeren Auskommentierung /**/ eine entsprechende Fehlermeldung ausgibt und den Vorgang abbricht. Edit 22.5.2008: Mir ist noch eingefallen, dass eine Kommentierung, die nur eine oder mehrere Leerstellen enthält /* */, auch ein Fehlverhalten auslösen könnte, was sich durch einen Test bestätigte. Deswegen habe ich jetzt die beiden CSS-Makros1 entsprechend gepatcht und hochgeladen, sodass jetzt bei allen Kommentaren ohne Buchstaben, Ziffern oder Symbolen der Vorgang mit einer entsprechenden Meldung auf deutsch abgebrochen wird. Übrigens, beim Öffnen einer solch großen Datei ggf. zuerst das Fenster auf maximal stellen, bevor man den Kursor nach unten bewegt! Am einfachsten lässt sich übrigens eine Datei mit gVim öffnen mit Rechtsmausklick auf diese Datei und >Editiere mit Vim<.
| |
01.05.2008 13:10:17 | ||
ForumLeaks | ||
Gruppe: Administrator Rang: Mehr als 1000 Beiträge Beiträge: 1596 Mitglied seit: 29.06.2005 IP-Adresse: gespeichert | Einige Wochen dauerte es, bis ich endlich diese drei Makros für den Editor Vim bzw. gVom 7.1 fertiggestellt hatte, um Kommentierungen in PHP-Dateien leichter übersetzen zu können. Den Editor Vim bzw. gVim gibt es übrigens auch als deutsche Version, nämlich hier: http://www.vim.org/download.php Mit dem ersten Makro http://forumtreff.pytalhost.de/grafik/php-makro1 (Rechtsmausklick und >Ziel speichern unter...) werden jeweils alle Kommentierungen ans Ende der Datei verschoben mit Nummerierung. Bspw. mit Google kann man diese übersetzen und unten die englischsprachigen Kommentare durch die übersetzten ersetzen. Das zweite Makro http://forumtreff.pytalhost.de/grafik/php-makro2-1sprachig oder wahlweise http://forumtreff.pytalhost.de/grafik/php-makro2-2sprachig ordnet diese Kommentierungen wieder automatisch in die Datei ein. Besser finde ich es aber, wenn in der Datei sowohl die englischsprachigen, als auch die übersetzten Kommentierungen vorhanden sind. Um das zu erreichen benutzt man letztgenanntes Makro, das die übersetzten Auskommentierungen wieder in die Datei zurückverschiebt. Diese 3 Makros arbeiten völlig präzise, sodass auch jede Leerzeile, jeder Zeilenumbruch, jede Leerstelle und jeder Tabstob exakt so erhalten bleibt, wie ursprünglich im Code eingefügt. Insbesondere das letzte Makro (2-sprachig) finde ich sehr praktisch, weil nämlich oftmals die automatische Übersetzung nicht besonders gut ist, und man jeweils auch die Originalsprache zur Verfügung hat. Die übersetzten Kommentare werden automatisch so eingefügt, dass diese formatgetreu und somit übersichtlich jeweils genau unter den originalsprachigen (englischen) Kommentare eingefügt werden. Es werden jeweils nur Wörter von auskommentiertem Text, die ausschließlich aus Buchstaben bestehen, jeweils einzeln ans Ende der Datei verschoben. Intern geschehen einige Ersetzungen, die jeweils wieder rückgängig gemacht werden. Nach Abarbeitung des ersten Makros wurden durch das Makro sämtliche ggf. vorhandenen Symbole ¤ durch eine dreißigstellige Zeichenfolge ersetzt. Auch sind alle öffnenden runden Klammern ( durch ¤5, und alle schließenden runden Klammern ) durch ¤6 ersetzt worden, weil die runden Klammern vom System zur internen Kennzeichnung gebraucht werden. Nach Abarbeitung des zweiten Makros sind aber diese Zeichenfolgen natürlich wieder alle zurückersetzt. In den letzen Monaten habe ich mich ziemlich gut mit dem Editor Vim bzw. gVim 7.1 eingearbeitet und in meinem alten Forum (neues phpBB3-Forum geplant) habe ich zu diesem Editor diese Beiträge geschrieben: Klick! Das Makro mit Vim öffnen, mit gg an den Anfang des Makros gehen und "ay$ tippen. Dieses Makro ist nun im Register a gespeichert. Dann die PHP-Datei mit Vim öffnen und das Makro a ausführen mit @a. Als Registernamen nur jeweils einen einzelnen Kleinbuchstaben wählen! Mit a oder i kommt man in den Bearbeitungsmodus und mit Esc ist man im Befehlsmodus. Das Makro ins Register speichern und ausführen geschieht im Befehlsmodus. Zu Editoren siehe auch diesen Beitrag von mir: Klick! Im Vergleich zu meinen anderen 4 Makros, um Kommentare in CSS-Dateien zu übersetzen sind diese drei Makros noch besser gelungen, weil ich inzwischen mehr Erfahrungen habe. Nur läuft die Abarbeitung erheblich langsamer ab, was ich nicht vermeiden konnte. Bei der Konzipierung habe ich mich an der Information von dieser Webseite orientiert: Klick! Leider wusste ich nicht, ob die dort angeführten Beispiele bereits eine Formatierung beinhalten, um Kommentare entsprechend übersichtlich zu gestalten. Bei einzeiligen Kommentaren, die jeweils am Zeilenanfang mit // beginnen, ist es einfach. Bei auskommentierten Absätzen ist es aber komplizierter. Die Makros arbeiten bei diesen so, dass nur solche Texte als Kommentare nach unten verschoben werden, die jeweils mit /* beginnen und mit */ enden, wenn zwischen so einer Zeichenfolge und dem Zeilenanfang jeweils allenfalls nur Leerstellen und/oder Tabulatoreinrückungen sind. Bspw. so: /* Wort 1Leider weiß ich nicht, ob ich das so richtig gemacht habe. Wird also die erste Zeile von PHP erkannt als Kommentierung, obwohl sich das Wort 1 in derselben Zeile wie /* befindet? Und falls sich */ in derselben Zeile hinter Wort 2 befinden würde, wäre das auch eine exakte Kommentierung? Gegebenenfalls würde ich diese drei Makros entsprechend ändern.
| |
21.05.2008 10:41:39 | ||
Thread-Info | |
---|---|
Zugriff | Moderatoren |
Lesen: alle Schreiben: alle Gruppe: allgemein | keine |
Forum Übersicht |