diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5eb2f37b8..4d64d348f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,6 +11,14 @@ on: - cron: '22 9 * * 2' env: + CHECK_DEPS_UBUNTU: >- + curl + gettext + hunspell + hunspell-en-us + hunspell-fr + pipx + shellcheck WEECHAT_DEPS_UBUNTU: >- asciidoctor build-essential @@ -121,12 +129,16 @@ jobs: - name: Install dependencies run: | sudo apt-get update -qq - sudo apt-get --yes --no-install-recommends install curl gettext pipx shellcheck + sudo apt-get --yes --no-install-recommends install ${{ env.CHECK_DEPS_UBUNTU }} pipx install msgcheck ruff + cargo install --version 0.0.8 poexam - - name: Check gettext files + - name: Check gettext files (msgcheck) run: msgcheck po/*.po + - name: Check gettext files (poexam) + run: poexam check --file-stats --rule-stats + - name: Check shell and Python scripts run: ./tools/check_scripts.sh diff --git a/.poexam/en.dic b/.poexam/en.dic new file mode 100644 index 000000000..6f09ce7c5 --- /dev/null +++ b/.poexam/en.dic @@ -0,0 +1,281 @@ +Atheme +Autojoin +Charset +Diffie-Hellman +Esc +FlashCode +GnuTLS +Hashtable +Helleu +IPs +Sébastien +WeeChat +Xfer +abc +ack +acks +addcompletion +addinput +addoff +addraw +addreplace +addreplacecompletion +addword +algo +allchan +allpv +alnum +andrew +ansi +api +args +argsN +aspell +autoconnect +autojoin +autoload +autoloaded +autoreconnect +autorejoin +bg +bindctxt +bitlbee +bkl +blocksize +bool +buflist +cJSON +calc +ccc +charset +charsets +chghost +chmod +cleartext +clientinfo +cmd +codepoint +concat +cond +config +crypted +ctcp +ctrl +ctrl- +ctrl-c +ctrl-h +ctrl-n +ctrl-x +ctrl-y +cutscr +cxx +darkgray +deinit +deldict +deloutq +delvar +dhkey +dirs +dlclose +eg +enum +enums +env +esc +eval +fd +ffff +fg +fifo +flashcode +flashtux +freebsd +fset +fsync +gcrypt +getrlimit +getrusage +gnutls +grayscale +gui +gzip +halfop +halfops +hashtable +hdata +hh +horiz +hostname +hostnames +hotlist +hsignal +http +https +hup +ident +ie +il +inclose +infolist +infolists +infos +installremove +irc +ison +javascript +json +kf +kickban +killall +lengthscr +libera +libgcrypt +libs +lightblue +lightcyan +lightgreen +lightmagenta +lightred +linux +listdefault +listdict +listdiff +listfull +listitems +listrelay +listvar +lua +mallinfo +malloc +mirc +modelist +msg +msgN +msgbuffer +multiline +ncurses +newbuffer +nf +nickbot +nicklist +nickserv +nl +noautoload +nobg +nocl +noflush +nohelp +nojoin +noln +nonblock +nooption +norc +nostdin +nosw +noswitch +notls +num +oc +oerr +oftc +ok +ol +osinfo +outqueue +ovh +paramN +params +perl +permessage-deflate +pgdn +pgup +pid +prev +privmsg +ptr +pv +py +quickstart +rc +realname +recv +reinitializing +reop +resetall +resetctxt +revindex +revscr +rgb +rlimit +rusage +rw-rw-r-- +sasl +setauto +setdict +setname +setnew +setrlimit +setvar +signon +skipempty +sockaddr +splith +splitv +stderr +stdin +stdout +strcasecmp +strftime +strftimeval +strlen +sublist +subplugin +sw +sys +tThe +tcl +tg +tls +tlscertkey +toggleautoload +togglecmd +toto +totp +truncature +un +unalias +unban +unbindctxt +undef +unescaped +unhide +unhold +unicode +unix +unmark +unmerge +unzoom +uptime +url +urlserver +usec +userhost-in-names +usr +util +valgrind +versiongit +waitpid +wcswidth +wctype +wcwidth +websocket +websockets +weechat +whois +www +xdigit +xfer +xyz +yy +zlib +zstd diff --git a/.poexam/fr.dic b/.poexam/fr.dic new file mode 100644 index 000000000..1ae66fb9f --- /dev/null +++ b/.poexam/fr.dic @@ -0,0 +1,611 @@ +Atheme +Autojoin +Curl +Curses +Debug +Dec +Diffie-Hellman +Filter +FlashCode +GnuTLS +Guile +Helleu +IPs +Lag +Ping +Protocol +Relay +Remote +Reop +Tab +Trigger +Triggers +Typing +URLs +Wallops +WeeChat +Xfer +account +account- +account-notify +account-tag +ack +acks +add +addcompletion +addinput +addoff +addraw +addreplace +addreplacecompletion +addresse +addword +align +all +allchan +allow +allowed +allpv +alnum +alt +alt-c +alt-k +alt-s +alt-v +alt-z +andrew +ansi +apply +area +args +argsN +aspell +attributes +auth +autoconnect +autojoin +autoload +autorejoin +away +away-notify +backspace +bare +bash +beep +before +beginning +beyond +bg +bin +bind +bindctxt +bitlbee +bkl +blue +bold +bool +boolean +both +bottom +bracketed +brown +buflist +cJSON +calc +callbacks +cap-notify +capabilities +capability +ccc +cert +certs +changed +channel +charset +charsets +check +chghost +chmod +cipher +clear +clientinfo +clipboard +cmd +color +colors +command +commands +complete +completion +concat +cond +confirm +connect +connected +connecting +control +copy +core +count +crypt +ctcp +ctrl +ctrl- +ctrl-c +ctrl-h +ctrl-n +ctrl-x +ctrl-y +curl +current +cursor +cut +cutscr +cxx +d'ignore +d'infolist +daemon +darkgray +days +debug +decode +decrypt +default +define +deinit +del +deldict +delete +deloutq +delvar +desc +describe +dhkey +dict +diff +dim +dir +dirs +disable +discard +disconnect +disconnected +display +displayed +dlclose +doc-gen +down +download +draft +dummy +dump +eat +echo-message +edge +emphasized +empty +enable +enabled +end +enum +error +esc +eval +example +exclude +exec +extended-join +external +exts +fail +failed +fast +fd +ffff +fifo +filter +fingerprint +first +flashcode +flashtux +foo +formatted +free +freebsd +fset +fsync +gcrypt +get +getrlimit +getrusage +ghost +giga-octets +git +glitch +gnutls +grab +group +gzip +halfop +halfops +handshake +hash +hashtable +hdata +he +headless +help +here +hexa +hh +hidden +hide +highest +highlight +highlights +history +hold +hook +hooks +horiz +host +hotlist +hsignal +hup +ident +identify +ids +ignored +inclose +include +indent +infolist +infolistes +infolists +init +install +installremove +int +integer +interval +invite-notify +irc +ison +iterations +javascript +join +json +jump +keep +key +keys +kf +kickban +kill +killall +l'autojoin +l'id +lag +last +layout +leave +left +legacy +length +lengthscr +level +lib +libera +libgcrypt +libs +lightblue +lightcyan +lightgreen +lightmagenta +lightred +limit +line +lines +linux +list +listdefault +listdict +listdiff +listen +listfull +listitems +listrelay +listvar +load +logger +loggers +lower +lowest +ls +lua +mallinfo +malloc +marked +mask +memory +merge +merged +meta +meta- +method +mirc +missing +modified +mouse +move +msg +msgN +msgbuffer +multi-prefix +multiline +my +n- +name +names +ncurses +near +network +newbuffer +newline +next +nf +nick +nickbot +nicklist +nicks +nickserv +no-connect +noautoload +nobg +nocl +noflush +nohelp +nojoin +noln +nonblock +nooption +norc +nosh +nostdin +nosw +noswitch +notify +notls +null +num +number +numeric +object +oerr +of +offline +oftc +ok +ol +ops +osinfo +ovh +paramN +params +parted +pass +passphrase +password +password-store +paste +path +paused +pct +pending +perl +permessage-deflate +pgdn +pgup +pid +ping +pong +pos +prefix +prev +previous +print +priority +private +privmsg +property +ptr +py +quit +quoted +rafraichie +rafraichir +rafraichissement +random +raw +rc +realname +reconnect +recreate +recv +red +redirected +redo +refresh +regex +register +relay +reload +remote +remove +rename +renumber +reorder +rep +repeat +reply +req +reset +resetall +resetctxt +resize +restart +restore +return +rev +revindex +revscr +rgb +right +rlimit +root +ruby +run +run-command +runtime +rusage +rw-rw-r-- +réinit +safe +sasl +save +scheme +screen +scroll +search +secure +selected +send +server +server-time +setauto +setdict +setname +setnew +setrlimit +setvar +sh +share +shift +shift- +shift-Tab +size +skipempty +sockaddr +sorted +space +speaking +spell +split +splith +splitv +ss +start +status +stderr +stdin +stdout +str +strcasecmp +strftime +strftimeval +strip +strlen +sucks +suffix +suggest +sum +sw +switch +sys +tLe +tab +target +tcl +term +text +tg +time +timeout +timer +tiny +title +tls +tlscertkey +to +toggle +toggleautoload +togglecmd +topic +totp +trigger +triggers +trim +typing +téra-octets +unalias +unavailable +unban +unbind +unbindctxt +undef +undo +unhide +unicode +unix +unload +unmerge +unread +unset +up +update +upper +url +urlserver +usec +userhost-in-names +username +users +usr +util +valer +verbose +verify +versiongit +visited +voice +wait +waiting +waitpid +wallops +wcswidth +wctype +wcwidth +websocket +websockets +weechat +where +white +whitespace +whois +width +window +windows +without +word +words +xdigit +xfer +xxx +xyz +yellow +yes +yy +zero +zlib +zstd +Échap diff --git a/.poexam/poexam.toml b/.poexam/poexam.toml new file mode 100644 index 000000000..19f2d3b9d --- /dev/null +++ b/.poexam/poexam.toml @@ -0,0 +1,18 @@ +# SPDX-FileCopyrightText: 2026 Sébastien Helleu +# +# SPDX-License-Identifier: GPL-3.0-or-later + +[check] +select = [ + "checks", +] +ignore = [ + "brackets", + "double-quotes", + "unchanged", +] +path_words = "." +langs = [ + "en_US", + "fr", +] diff --git a/REUSE.toml b/REUSE.toml index 494d6c873..48d3872f2 100644 --- a/REUSE.toml +++ b/REUSE.toml @@ -19,3 +19,11 @@ path = [ precedence = "override" SPDX-FileCopyrightText = "2003-2026 Sébastien Helleu " SPDX-License-Identifier = "GPL-3.0-or-later" + +[[annotations]] +path = [ + ".poexam/*.dic", +] +precedence = "override" +SPDX-FileCopyrightText = "2026 Sébastien Helleu " +SPDX-License-Identifier = "GPL-3.0-or-later"