diff options
author | Junio C Hamano <gitster@pobox.com> | 2008-02-29 21:22:52 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-02-29 21:22:52 -0800 |
commit | dfb9a34ababeee98a9f241636c1fe6e98c754f7a (patch) | |
tree | e2a8f43ec4ad0220a6f3511e75d0c7ae8c960e6a | |
parent | Merge branch 'maint' (diff) | |
parent | Merge branch 'maint' (diff) | |
download | tgif-dfb9a34ababeee98a9f241636c1fe6e98c754f7a.tar.xz |
Merge branch 'master' of git://repo.or.cz/git-gui
* 'master' of git://repo.or.cz/git-gui:
git-gui: fix typo in lib/spellcheck.tcl
git-gui: Shorten Aspell version strings to just Aspell version number
git-gui: Gracefully display non-aspell version errors to users
git-gui: Catch and display aspell startup failures to the user
git-gui: Only bind the spellcheck popup suggestion hook once
git-gui: Remove explicit references to 'aspell' in message strings
git-gui: Ensure all spellchecker 'class' variables are initialized
git-gui: Update German translation.
git-gui: (i18n) Add newly added translation strings to template.
-rw-r--r-- | git-gui/lib/about.tcl | 3 | ||||
-rw-r--r-- | git-gui/lib/spellcheck.tcl | 75 | ||||
-rw-r--r-- | git-gui/po/de.po | 70 | ||||
-rw-r--r-- | git-gui/po/git-gui.pot | 32 | ||||
-rw-r--r-- | git-gui/po/glossary/de.po | 4 |
5 files changed, 139 insertions, 45 deletions
diff --git a/git-gui/lib/about.tcl b/git-gui/lib/about.tcl index 47be8eb97a..241ab892cd 100644 --- a/git-gui/lib/about.tcl +++ b/git-gui/lib/about.tcl @@ -41,7 +41,8 @@ proc do_about {} { append v "Tcl version $tcl_patchLevel" append v ", Tk version $tk_patchLevel" } - if {[info exists ui_comm_spell]} { + if {[info exists ui_comm_spell] + && [$ui_comm_spell version] ne {}} { append v "\n" append v [$ui_comm_spell version] } diff --git a/git-gui/lib/spellcheck.tcl b/git-gui/lib/spellcheck.tcl index 7f018e4009..9be748683c 100644 --- a/git-gui/lib/spellcheck.tcl +++ b/git-gui/lib/spellcheck.tcl @@ -1,27 +1,31 @@ -# git-gui spellchecking support through aspell +# git-gui spellchecking support through ispell/aspell # Copyright (C) 2008 Shawn Pearce class spellcheck { -field s_fd {} ; # pipe to aspell -field s_version ; # aspell version string -field s_lang ; # current language code +field s_fd {} ; # pipe to ispell/aspell +field s_version {} ; # ispell/aspell version string +field s_lang {} ; # current language code +field s_prog aspell; # are we actually old ispell? +field s_failed 0 ; # is $s_prog bogus and not working? field w_text ; # text widget we are spelling field w_menu ; # context menu for the widget field s_menuidx 0 ; # last index of insertion into $w_menu -field s_i ; # timer registration for _run callbacks +field s_i {} ; # timer registration for _run callbacks field s_clear 0 ; # did we erase mispelled tags yet? field s_seen [list] ; # lines last seen from $w_text in _run field s_checked [list] ; # lines already checked -field s_pending [list] ; # [$line $data] sent to aspell +field s_pending [list] ; # [$line $data] sent to ispell/aspell field s_suggest ; # array, list of suggestions, keyed by misspelling constructor init {pipe_fd ui_text ui_menu} { set w_text $ui_text set w_menu $ui_menu + array unset s_suggest + bind_button3 $w_text [cb _popup_suggest %X %Y @%x,%y] _connect $this $pipe_fd return $this } @@ -33,14 +37,53 @@ method _connect {pipe_fd} { -translation lf if {[gets $pipe_fd s_version] <= 0} { - close $pipe_fd - error [mc "Not connected to aspell"] + if {[catch {close $pipe_fd} err]} { + + # Eh? Is this actually ispell choking on aspell options? + # + if {$s_prog eq {aspell} + && [regexp -nocase {^Usage: } $err] + && ![catch { + set pipe_fd [open [list | $s_prog -v] r] + gets $pipe_fd s_version + close $pipe_fd + }] + && $s_version ne {}} { + if {{@(#) } eq [string range $s_version 0 4]} { + set s_version [string range $s_version 5 end] + } + set s_failed 1 + error_popup [strcat \ + [mc "Unsupported spell checker"] \ + ":\n\n$s_version"] + set s_version {} + return + } + + regsub -nocase {^Error: } $err {} err + if {$s_fd eq {}} { + error_popup [strcat [mc "Spell checking is unavailable"] ":\n\n$err"] + } else { + error_popup [strcat \ + [mc "Invalid spell checking configuration"] \ + ":\n\n$err\n\n" \ + [mc "Reverting dictionary to %s." $s_lang]] + } + } else { + error_popup [mc "Spell checker silently failed on startup"] + } + return } + if {{@(#) } ne [string range $s_version 0 4]} { - close $pipe_fd - error [strcat [mc "Unrecognized aspell version"] ": $s_version"] + catch {close $pipe_fd} + error_popup [strcat [mc "Unrecognized spell checker"] ":\n\n$s_version"] + return } set s_version [string range $s_version 5 end] + regexp \ + {International Ispell Version .* \(but really (Aspell .*?)\)$} \ + $s_version _junk s_version puts $pipe_fd ! ; # enable terse mode puts $pipe_fd {$$cr master} ; # fetch the language @@ -65,7 +108,6 @@ method _connect {pipe_fd} { $w_text tag conf misspelled \ -foreground red \ -underline 1 - bind_button3 $w_text [cb _popup_suggest %X %Y @%x,%y] array unset s_suggest set s_seen [list] @@ -75,7 +117,7 @@ method _connect {pipe_fd} { } method lang {{n {}}} { - if {$n ne {} && $s_lang ne $n} { + if {$n ne {} && $s_lang ne $n && !$s_failed} { set spell_cmd [list |] lappend spell_cmd aspell lappend spell_cmd --master=$n @@ -88,7 +130,10 @@ method lang {{n {}}} { } method version {} { - return "$s_version, $s_lang" + if {$s_version ne {}} { + return "$s_version, $s_lang" + } + return {} } method stop {} { @@ -333,11 +378,11 @@ method _read {} { fconfigure $s_fd -block 1 if {[eof $s_fd]} { if {![catch {close $s_fd} err]} { - set err [mc "unexpected eof from aspell"] + set err [mc "Unexpected EOF from spell checker"] } catch {after cancel $s_i} $w_text tag remove misspelled 1.0 end - error_popup [strcat "Spell Checker Failed" "\n\n" $err] + error_popup [strcat [mc "Spell Checker Failed"] "\n\n" $err] return } fconfigure $s_fd -block 0 diff --git a/git-gui/po/de.po b/git-gui/po/de.po index d7c38f9c73..e84e1c7e08 100644 --- a/git-gui/po/de.po +++ b/git-gui/po/de.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: git-gui\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-02-02 10:14+0100\n" -"PO-Revision-Date: 2008-02-02 10:18+0100\n" +"POT-Creation-Date: 2008-02-16 21:24+0100\n" +"PO-Revision-Date: 2008-02-16 21:52+0100\n" "Last-Translator: Christian Stimming <stimming@tuhh.de>\n" "Language-Team: German\n" "MIME-Version: 1.0\n" @@ -653,7 +653,7 @@ msgstr "Lokale Zweige" #: lib/branch_delete.tcl:52 msgid "Delete Only If Merged Into" -msgstr "Nur löschen, wenn darin zusammengeführt" +msgstr "Nur löschen, wenn zusammengeführt nach" #: lib/branch_delete.tcl:54 msgid "Always (Do not perform merge test.)" @@ -1292,19 +1292,19 @@ msgstr "Warning: Tcl/Tk unterstützt die Zeichencodierung »%s« nicht." #: lib/commit.tcl:221 msgid "Calling pre-commit hook..." -msgstr "" +msgstr "Aufrufen der Vor-Eintragen-Kontrolle..." #: lib/commit.tcl:236 msgid "Commit declined by pre-commit hook." -msgstr "" +msgstr "Eintragen abgelehnt durch Vor-Eintragen-Kontrolle (»pre-commit hook«)." #: lib/commit.tcl:259 msgid "Calling commit-msg hook..." -msgstr "" +msgstr "Aufrufen der Versionsbeschreibungs-Kontrolle..." #: lib/commit.tcl:274 msgid "Commit declined by commit-msg hook." -msgstr "" +msgstr "Eintragen abgelehnt durch Versionsbeschreibungs-Kontrolle (»commit-message hook«)." #: lib/commit.tcl:287 msgid "Committing changes..." @@ -1389,7 +1389,7 @@ msgstr "Festplattenplatz von komprimierten Objekten" #: lib/database.tcl:48 msgid "Packed objects waiting for pruning" -msgstr "Komprimierte Objekte, die zum Entfernen vorgesehen sind" +msgstr "Komprimierte Objekte, die zum Aufräumen vorgesehen sind" #: lib/database.tcl:49 msgid "Garbage files" @@ -1622,10 +1622,10 @@ msgstr "%s von %s" #: lib/merge.tcl:119 #, tcl-format -msgid "Merging %s and %s" -msgstr "Zusammenführen von %s und %s" +msgid "Merging %s and %s..." +msgstr "Zusammenführen von %s und %s..." -#: lib/merge.tcl:131 +#: lib/merge.tcl:130 msgid "Merge completed successfully." msgstr "Zusammenführen erfolgreich abgeschlossen." @@ -1636,7 +1636,7 @@ msgstr "Zusammenführen fehlgeschlagen. Konfliktauflösung ist notwendig." #: lib/merge.tcl:158 #, tcl-format msgid "Merge Into %s" -msgstr "Zusammenführen in %s" +msgstr "Zusammenführen in »%s«" #: lib/merge.tcl:177 msgid "Revision To Merge" @@ -1741,7 +1741,7 @@ msgstr "Auf Dateiänderungsdatum verlassen" #: lib/option.tcl:111 msgid "Prune Tracking Branches During Fetch" -msgstr "Übernahmezweige entfernen während Anforderung" +msgstr "Übernahmezweige aufräumen während Anforderung" #: lib/option.tcl:112 msgid "Match Tracking Branches" @@ -1755,7 +1755,11 @@ msgstr "Anzahl der Kontextzeilen beim Vergleich" msgid "New Branch Name Template" msgstr "Namensvorschlag für neue Zweige" -#: lib/option.tcl:176 +#: lib/option.tcl:191 +msgid "Spelling Dictionary:" +msgstr "Wörterbuch Rechtschreibprüfung:" + +#: lib/option.tcl:215 msgid "Change Font" msgstr "Schriftart ändern" @@ -1778,11 +1782,11 @@ msgstr "Optionen konnten nicht gespeichert werden:" #: lib/remote_branch_delete.tcl:29 lib/remote_branch_delete.tcl:34 msgid "Delete Remote Branch" -msgstr "Zweig aus anderem Projektarchiv löschen" +msgstr "Zweig in anderem Projektarchiv löschen" #: lib/remote_branch_delete.tcl:47 msgid "From Repository" -msgstr "Von Projektarchiv" +msgstr "In Projektarchiv" #: lib/remote_branch_delete.tcl:50 lib/transport.tcl:123 msgid "Remote:" @@ -1790,7 +1794,7 @@ msgstr "Anderes Archiv:" #: lib/remote_branch_delete.tcl:66 lib/transport.tcl:138 msgid "Arbitrary URL:" -msgstr "Kommunikation mit URL:" +msgstr "Archiv-URL:" #: lib/remote_branch_delete.tcl:84 msgid "Branches" @@ -1798,11 +1802,11 @@ msgstr "Zweige" #: lib/remote_branch_delete.tcl:109 msgid "Delete Only If" -msgstr "Löschen, falls" +msgstr "Nur löschen, wenn" #: lib/remote_branch_delete.tcl:111 msgid "Merged Into:" -msgstr "Zusammenführen mit:" +msgstr "Zusammengeführt mit:" #: lib/remote_branch_delete.tcl:119 msgid "Always (Do not perform merge checks)" @@ -1864,7 +1868,7 @@ msgstr "»%s« laden..." #: lib/remote.tcl:165 msgid "Prune from" -msgstr "Entfernen von" +msgstr "Aufräumen von" #: lib/remote.tcl:170 msgid "Fetch from" @@ -1882,6 +1886,26 @@ msgstr "Fehler beim Schreiben der Verknüpfung:" msgid "Cannot write icon:" msgstr "Fehler beim Erstellen des Icons:" +#: lib/spellcheck.tcl:37 +msgid "Not connected to aspell" +msgstr "Keine Verbindung zu »aspell«" + +#: lib/spellcheck.tcl:41 +msgid "Unrecognized aspell version" +msgstr "Unbekannte Version von »aspell«" + +#: lib/spellcheck.tcl:135 +msgid "No Suggestions" +msgstr "Keine Vorschläge" + +#: lib/spellcheck.tcl:336 +msgid "Unexpected EOF from aspell" +msgstr "Unerwartetes EOF von »aspell«" + +#: lib/spellcheck.tcl:340 +msgid "Spell Checker Failed" +msgstr "Rechtschreibprüfung fehlgeschlagen" + #: lib/status_bar.tcl:83 #, tcl-format msgid "%s ... %*i of %*i %s (%3i%%)" @@ -1900,12 +1924,12 @@ msgstr "Neue Änderungen von »%s« holen" #: lib/transport.tcl:18 #, tcl-format msgid "remote prune %s" -msgstr "Entfernen von »%s« aus anderem Archiv" +msgstr "Aufräumen von »%s«" #: lib/transport.tcl:19 #, tcl-format msgid "Pruning tracking branches deleted from %s" -msgstr "Übernahmezweige entfernen, die in »%s« gelöscht wurden" +msgstr "Übernahmezweige aufräumen und entfernen, die in »%s« gelöscht wurden" #: lib/transport.tcl:25 lib/transport.tcl:71 #, tcl-format @@ -1928,7 +1952,7 @@ msgstr "Zweige versenden" #: lib/transport.tcl:103 msgid "Source Branches" -msgstr "Herkunftszweige" +msgstr "Lokale Zweige" #: lib/transport.tcl:120 msgid "Destination Repository" diff --git a/git-gui/po/git-gui.pot b/git-gui/po/git-gui.pot index 3f139da6c7..2e332849fb 100644 --- a/git-gui/po/git-gui.pot +++ b/git-gui/po/git-gui.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-02-02 10:14+0100\n" +"POT-Creation-Date: 2008-02-16 21:24+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -1474,10 +1474,10 @@ msgstr "" #: lib/merge.tcl:119 #, tcl-format -msgid "Merging %s and %s" +msgid "Merging %s and %s..." msgstr "" -#: lib/merge.tcl:131 +#: lib/merge.tcl:130 msgid "Merge completed successfully." msgstr "" @@ -1592,7 +1592,11 @@ msgstr "" msgid "New Branch Name Template" msgstr "" -#: lib/option.tcl:176 +#: lib/option.tcl:191 +msgid "Spelling Dictionary:" +msgstr "" + +#: lib/option.tcl:215 msgid "Change Font" msgstr "" @@ -1709,6 +1713,26 @@ msgstr "" msgid "Cannot write icon:" msgstr "" +#: lib/spellcheck.tcl:37 +msgid "Not connected to aspell" +msgstr "" + +#: lib/spellcheck.tcl:41 +msgid "Unrecognized aspell version" +msgstr "" + +#: lib/spellcheck.tcl:135 +msgid "No Suggestions" +msgstr "" + +#: lib/spellcheck.tcl:336 +msgid "Unexpected EOF from aspell" +msgstr "" + +#: lib/spellcheck.tcl:340 +msgid "Spell Checker Failed" +msgstr "" + #: lib/status_bar.tcl:83 #, tcl-format msgid "%s ... %*i of %*i %s (%3i%%)" diff --git a/git-gui/po/glossary/de.po b/git-gui/po/glossary/de.po index 0b33c572bf..35764d1d22 100644 --- a/git-gui/po/glossary/de.po +++ b/git-gui/po/glossary/de.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: git-gui glossary\n" "POT-Creation-Date: 2008-01-07 21:20+0100\n" -"PO-Revision-Date: 2008-01-15 20:32+0100\n" +"PO-Revision-Date: 2008-02-16 21:48+0100\n" "Last-Translator: Christian Stimming <stimming@tuhh.de>\n" "Language-Team: German \n" "MIME-Version: 1.0\n" @@ -114,7 +114,7 @@ msgstr "Beschreibung (Meldung?, Nachricht?; Source Safe: Kommentar)" #. "Deletes all stale tracking branches under <name>. These stale branches have already been removed from the remote repository referenced by <name>, but are still locally available in 'remotes/<name>'." msgid "prune" -msgstr "entfernen" +msgstr "aufräumen (entfernen?)" #. "Pulling a branch means to fetch it and merge it." msgid "pull" |