aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2025-05-15 06:07:10 -0300
committerEuAndreh <eu@euandre.org>2025-05-15 06:07:10 -0300
commit5b795296eefee45acedad9841e912dee05c34a01 (patch)
treeec09fa834e58385b70937e1c632189f07314a820
parentFinish branches.html and setup i18n of manpages and HTML strings (diff)
downloadgistatic-5b795296eefee45acedad9841e912dee05c34a01.tar.gz
gistatic-5b795296eefee45acedad9841e912dee05c34a01.tar.xz
Revamp setup of i18n, now with gotext(0)
-rw-r--r--.gitignore2
-rw-r--r--Makefile40
-rw-r--r--deps.mk20
-rw-r--r--doc/gistatic.pt.0.adoc7
-rwxr-xr-xmkdeps.sh28
-rw-r--r--po/doc/de.po29
-rw-r--r--po/doc/doc.pot11
-rw-r--r--po/doc/eo.po29
-rw-r--r--po/doc/es.po29
-rw-r--r--po/doc/fr.po29
-rw-r--r--po/doc/po4a.cfg2
-rw-r--r--po/doc/pt.po10
-rw-r--r--po/gistatic/de.po100
-rw-r--r--po/gistatic/eo.po100
-rw-r--r--po/gistatic/es.po100
-rw-r--r--po/gistatic/fr.po100
-rw-r--r--po/gistatic/gistatic.pot184
-rw-r--r--po/gistatic/po4a.cfg2
-rw-r--r--po/gistatic/pt.po104
19 files changed, 734 insertions, 192 deletions
diff --git a/.gitignore b/.gitignore
index c48a832..d3c2f8f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,5 @@
-!/doc/*.adoc
/doc/*
+!/doc/*.en.*.adoc
/po/*/*.mo
/src/meta.go
/*.bin
diff --git a/Makefile b/Makefile
index 23d9063..7bc1dcc 100644
--- a/Makefile
+++ b/Makefile
@@ -3,7 +3,6 @@ DATE = 1970-01-01
VERSION = 0.1.0
NAME = gistatic
NAME_UC = $(NAME)
-LANGUAGES = en
## Installation prefix. Defaults to "/usr".
PREFIX = /usr
BINDIR = $(PREFIX)/bin
@@ -38,7 +37,7 @@ GOLDFLAGS = -L $(GOLIBDIR)
asciidoctor -b manpage -o $@ $<
.po.mo:
- msgfmt -c -o $@ $<
+ msgfmt -cfv -o $@ $<
@@ -46,14 +45,15 @@ all:
include deps.mk
-libs.a = $(libs.go:.go=.a)
-mains.a = $(mains.go:.go=.a)
-mains.bin = $(mains.go:.go=.bin)
-functional-tests/lib.a = $(functional-tests/lib.go:.go=.a)
-fuzz-targets/lib.a = $(fuzz-targets/lib.go:.go=.a)
-benchmarks/lib.a = $(benchmarks/lib.go:.go=.a)
-manpages.N = $(manpages.N.adoc:.adoc=)
-sources.mo = $(sources.po:.po=.mo)
+libs.a = $(libs.go:.go=.a)
+mains.a = $(mains.go:.go=.a)
+mains.bin = $(mains.go:.go=.bin)
+functional/lib.a = $(functional/lib.go:.go=.a)
+fuzz/lib.a = $(fuzz/lib.go:.go=.a)
+benchmarks/lib.a = $(benchmarks/lib.go:.go=.a)
+manpages.N.adoc = $(manpages.en.N.adoc) $(manpages.XX.N.adoc)
+manpages.N = $(manpages.N.adoc:.adoc=)
+sources.mo = $(sources.po:.po=.mo)
sources = \
src/$(NAME).go \
@@ -67,6 +67,7 @@ derived-assets = \
$(mains.a) \
$(mains.bin) \
$(NAME).bin \
+ $(manpages.XX.N.adoc) \
$(manpages.N) \
$(sources.mo) \
@@ -85,7 +86,7 @@ $(libs.a): Makefile deps.mk
$(libs.a): src/$(NAME).go src/meta.go
-$(fuzz-targets/lib.a):
+$(fuzz/lib.a):
go tool compile $(GOCFLAGS) -o $@ -p $(NAME) -d=libfuzzer \
$*.go src/$(NAME).go src/meta.go
@@ -98,11 +99,14 @@ src/meta.go: Makefile
$(NAME).bin: src/main.bin
ln -fs src/main.bin $@
+$(manpages.XX.N.adoc): po/doc/po4a.cfg
+ po4a --no-update --translate-only $@ po/doc/po4a.cfg
+
tests.bin-check = \
tests/main.bin-check \
- $(functional-tests/main.go:.go=.bin-check) \
+ $(functional/main.go:.go=.bin-check) \
$(tests.bin-check):
$(EXEC)$*.bin
@@ -131,12 +135,12 @@ check: check-unit check-integration
FUZZSEC=1
-fuzz-targets/main.bin-check = $(fuzz-targets/main.go:.go=.bin-check)
-$(fuzz-targets/main.bin-check):
+fuzz/main.bin-check = $(fuzz/main.go:.go=.bin-check)
+$(fuzz/main.bin-check):
$(EXEC)$*.bin --test.fuzztime=$(FUZZSEC)s \
--test.fuzz='.*' --test.fuzzcachedir=tests/fuzz/corpus
-fuzz: $(fuzz-targets/main.bin-check)
+fuzz: $(fuzz/main.bin-check)
@@ -178,7 +182,8 @@ install: all
cp $(NAME).bin '$(DESTDIR)$(BINDIR)'/$(NAME)
cp src/$(NAME).a '$(DESTDIR)$(GOLIBDIR)'
cp $(sources) '$(DESTDIR)$(SRCDIR)'
- mandir install '$(DESTDIR)$(MANDIR)' $(manpages.N)
+ instool '$(DESTDIR)$(MANDIR)' install man $(manpages.N)
+ instool '$(DESTDIR)$(LOCALEDIR)' install mo $(sources.mo)
## Uninstalls from $(DESTDIR)$(PREFIX). This is a perfect mirror
## of the "install" target, and removes *all* that was installed.
@@ -189,7 +194,8 @@ uninstall:
'$(DESTDIR)$(GOLIBDIR)'/$(NAME).a \
'$(DESTDIR)$(SRCDIR)' \
- mandir uninstall '$(DESTDIR)$(MANDIR)' $(manpages.N)
+ instool '$(DESTDIR)$(MANDIR)' uninstall man $(manpages.N)
+ instool '$(DESTDIR)$(LOCALEDIR)' uninstall mo $(sources.mo)
diff --git a/deps.mk b/deps.mk
index 02fb1b7..5420a66 100644
--- a/deps.mk
+++ b/deps.mk
@@ -12,23 +12,33 @@ mains.go = \
tests/fuzz/internal-queue/main.go \
tests/main.go \
-manpages.N.adoc = \
+manpages.en.N.adoc = \
doc/gistatic.en.0.adoc \
+
+manpages.XX.N.adoc = \
+ doc/gistatic.de.0.adoc \
+ doc/gistatic.eo.0.adoc \
+ doc/gistatic.es.0.adoc \
+ doc/gistatic.fr.0.adoc \
doc/gistatic.pt.0.adoc \
sources.po = \
+ po/gistatic/de.po \
+ po/gistatic/eo.po \
+ po/gistatic/es.po \
+ po/gistatic/fr.po \
po/gistatic/pt.po \
-functional-tests/lib.go = \
+functional/lib.go = \
tests/functional/empty-repository/gistatic.go \
-functional-tests/main.go = \
+functional/main.go = \
tests/functional/empty-repository/main.go \
-fuzz-targets/lib.go = \
+fuzz/lib.go = \
tests/fuzz/internal-queue/gistatic.go \
-fuzz-targets/main.go = \
+fuzz/main.go = \
tests/fuzz/internal-queue/main.go \
benchmarks/lib.go = \
diff --git a/doc/gistatic.pt.0.adoc b/doc/gistatic.pt.0.adoc
deleted file mode 100644
index 85f48ad..0000000
--- a/doc/gistatic.pt.0.adoc
+++ /dev/null
@@ -1,7 +0,0 @@
-= gistatic(0)
-
-== NAME
-
-gistatic - .
-
-Something, something.
diff --git a/mkdeps.sh b/mkdeps.sh
index ee497ed..ae6fffc 100755
--- a/mkdeps.sh
+++ b/mkdeps.sh
@@ -5,8 +5,10 @@ export LANG=POSIX.UTF-8
libs() {
- find src tests -name '*.go' | grep -v '/main\.go$' |
- grep -v '/version\.go$'
+ find src tests -name '*.go' |
+ grep -Ev '/(main|meta)\.go$' |
+ grep -Ev '/_cgo_(import|gotypes)\.go$' |
+ grep -Ev '\.cgo1\.go$'
}
mains() {
@@ -14,22 +16,30 @@ mains() {
}
docs() {
- find doc/*.adoc
+ find doc/*.en.*.adoc
+}
+
+xdocs() {
+ for l in `find po/doc/*.po | xargs -I% basename % .po`; do
+ docs | sed 's|/\(.*\)\.en\.\(.*\)$|/\1.'"$l"'.\2|'
+ done
}
pos() {
- find po/ -name '*.po' | grep -v '^po/doc/'
+ find po/ -name '*.po' | grep -Ev '^po/(doc|tests)/'
}
+
libs | varlist 'libs.go'
mains | varlist 'mains.go'
-docs | varlist 'manpages.N.adoc'
+docs | varlist 'manpages.en.N.adoc'
+xdocs | varlist 'manpages.XX.N.adoc'
pos | varlist 'sources.po'
-find tests/functional/*/*.go -not -name main.go | varlist 'functional-tests/lib.go'
-find tests/functional/*/main.go | varlist 'functional-tests/main.go'
-find tests/fuzz/*/*.go -not -name main.go | varlist 'fuzz-targets/lib.go'
-find tests/fuzz/*/main.go | varlist 'fuzz-targets/main.go'
+find tests/functional/*/*.go -not -name main.go | varlist 'functional/lib.go'
+find tests/functional/*/main.go | varlist 'functional/main.go'
+find tests/fuzz/*/*.go -not -name main.go | varlist 'fuzz/lib.go'
+find tests/fuzz/*/main.go | varlist 'fuzz/main.go'
find tests/benchmarks/*/*.go -not -name main.go | varlist 'benchmarks/lib.go'
find tests/benchmarks/*/main.go | varlist 'benchmarks/main.go'
diff --git a/po/doc/de.po b/po/doc/de.po
new file mode 100644
index 0000000..d7bcc4f
--- /dev/null
+++ b/po/doc/de.po
@@ -0,0 +1,29 @@
+msgid ""
+msgstr ""
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. type: Title =
+#: doc/gistatic.en.0.adoc:1
+#, no-wrap
+msgid "gistatic(0)"
+msgstr ""
+
+#. type: Title ==
+#: doc/gistatic.en.0.adoc:3
+#, no-wrap
+msgid "NAME"
+msgstr ""
+
+#. type: Plain text
+#: doc/gistatic.en.0.adoc:6
+msgid "gistatic - ."
+msgstr ""
+
+#. type: Plain text
+#: doc/gistatic.en.0.adoc:7
+msgid "Something, something."
+msgstr ""
diff --git a/po/doc/doc.pot b/po/doc/doc.pot
index 7a24056..ad7cf7b 100644
--- a/po/doc/doc.pot
+++ b/po/doc/doc.pot
@@ -1,16 +1,5 @@
-# SOME DESCRIPTIVE TITLE
-# Copyright (C) YEAR Free Software Foundation, Inc.
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2025-05-10 17:17-0300\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"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
diff --git a/po/doc/eo.po b/po/doc/eo.po
new file mode 100644
index 0000000..b215aeb
--- /dev/null
+++ b/po/doc/eo.po
@@ -0,0 +1,29 @@
+msgid ""
+msgstr ""
+"Language: eo\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. type: Title =
+#: doc/gistatic.en.0.adoc:1
+#, no-wrap
+msgid "gistatic(0)"
+msgstr ""
+
+#. type: Title ==
+#: doc/gistatic.en.0.adoc:3
+#, no-wrap
+msgid "NAME"
+msgstr ""
+
+#. type: Plain text
+#: doc/gistatic.en.0.adoc:6
+msgid "gistatic - ."
+msgstr ""
+
+#. type: Plain text
+#: doc/gistatic.en.0.adoc:7
+msgid "Something, something."
+msgstr ""
diff --git a/po/doc/es.po b/po/doc/es.po
new file mode 100644
index 0000000..eb0f41b
--- /dev/null
+++ b/po/doc/es.po
@@ -0,0 +1,29 @@
+msgid ""
+msgstr ""
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. type: Title =
+#: doc/gistatic.en.0.adoc:1
+#, no-wrap
+msgid "gistatic(0)"
+msgstr ""
+
+#. type: Title ==
+#: doc/gistatic.en.0.adoc:3
+#, no-wrap
+msgid "NAME"
+msgstr ""
+
+#. type: Plain text
+#: doc/gistatic.en.0.adoc:6
+msgid "gistatic - ."
+msgstr ""
+
+#. type: Plain text
+#: doc/gistatic.en.0.adoc:7
+msgid "Something, something."
+msgstr ""
diff --git a/po/doc/fr.po b/po/doc/fr.po
new file mode 100644
index 0000000..f67684f
--- /dev/null
+++ b/po/doc/fr.po
@@ -0,0 +1,29 @@
+msgid ""
+msgstr ""
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. type: Title =
+#: doc/gistatic.en.0.adoc:1
+#, no-wrap
+msgid "gistatic(0)"
+msgstr ""
+
+#. type: Title ==
+#: doc/gistatic.en.0.adoc:3
+#, no-wrap
+msgid "NAME"
+msgstr ""
+
+#. type: Plain text
+#: doc/gistatic.en.0.adoc:6
+msgid "gistatic - ."
+msgstr ""
+
+#. type: Plain text
+#: doc/gistatic.en.0.adoc:7
+msgid "Something, something."
+msgstr ""
diff --git a/po/doc/po4a.cfg b/po/doc/po4a.cfg
index f47447c..8dad20d 100644
--- a/po/doc/po4a.cfg
+++ b/po/doc/po4a.cfg
@@ -1,5 +1,5 @@
[options] --keep 0 --master-charset UTF-8 --localized-charset UTF-8 --addendum-charset UTF-8
-[po_directory] po/doc/
+[po_directory] po/doc
[type: asciidoc] doc/gistatic.en.0.adoc $lang:doc/gistatic.$lang.0.adoc
diff --git a/po/doc/pt.po b/po/doc/pt.po
index 4f18856..2ac3ac9 100644
--- a/po/doc/pt.po
+++ b/po/doc/pt.po
@@ -1,15 +1,5 @@
-# Portuguese translations for package.
-# Copyright (C) 2025 THE 'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the package.
-# Automatically generated, 2025.
-#
msgid ""
msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: EMAIL\n"
-"POT-Creation-Date: 2025-05-10 17:17-0300\n"
-"PO-Revision-Date: 2025-05-10 17:09-0300\n"
-"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: pt\n"
"MIME-Version: 1.0\n"
diff --git a/po/gistatic/de.po b/po/gistatic/de.po
new file mode 100644
index 0000000..749f355
--- /dev/null
+++ b/po/gistatic/de.po
@@ -0,0 +1,100 @@
+msgid ""
+msgstr ""
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: src/gistatic.go:1328
+msgid "Author"
+msgstr ""
+
+#: src/gistatic.go:1325
+msgid "Branch"
+msgstr ""
+
+#: src/gistatic.go:1327
+msgid "Commit message"
+msgstr ""
+
+#: src/gistatic.go:1329
+msgid "Date"
+msgstr ""
+
+#: src/gistatic.go:1426
+msgid "Description"
+msgstr ""
+
+#: src/gistatic.go:1318 src/gistatic.go:1428
+msgid "Generated with"
+msgstr ""
+
+#: src/gistatic.go:1427
+msgid "Last commit"
+msgstr ""
+
+#: src/gistatic.go:1423
+msgid "Listing of repositories"
+msgstr ""
+
+#: src/gistatic.go:1425
+msgid "Name"
+msgstr ""
+
+#: src/gistatic.go:1315 src/gistatic.go:1419
+msgid "Outlined icon of 3 melting ice cubes"
+msgstr ""
+
+#: src/gistatic.go:1424
+msgid "Repositories"
+msgstr ""
+
+#: src/gistatic.go:1326
+msgid "Tag"
+msgstr ""
+
+#: src/gistatic.go:989
+#, c-format
+msgid "Writing %v...\n"
+msgstr ""
+
+#: src/gistatic.go:1320
+msgid "branches"
+msgstr ""
+
+#: src/gistatic.go:1343
+msgid "branches.html"
+msgstr ""
+
+#: src/gistatic.go:1108 src/gistatic.go:1323 src/gistatic.go:1350
+msgid "commit"
+msgstr ""
+
+#: src/gistatic.go:1319 src/gistatic.go:1422
+msgid "en"
+msgstr ""
+
+#: src/gistatic.go:1034 src/gistatic.go:1046 src/gistatic.go:1324
+msgid "files"
+msgstr ""
+
+#: src/gistatic.go:1220 src/gistatic.go:1322 src/gistatic.go:1362
+msgid "log"
+msgstr ""
+
+#: src/gistatic.go:1330
+msgid "newer"
+msgstr ""
+
+#: src/gistatic.go:1331
+msgid "older"
+msgstr ""
+
+#: src/gistatic.go:1321
+msgid "tags"
+msgstr ""
+
+#: src/gistatic.go:1344
+msgid "tags.html"
+msgstr ""
diff --git a/po/gistatic/eo.po b/po/gistatic/eo.po
new file mode 100644
index 0000000..af7c3c4
--- /dev/null
+++ b/po/gistatic/eo.po
@@ -0,0 +1,100 @@
+msgid ""
+msgstr ""
+"Language: eo\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: src/gistatic.go:1328
+msgid "Author"
+msgstr ""
+
+#: src/gistatic.go:1325
+msgid "Branch"
+msgstr ""
+
+#: src/gistatic.go:1327
+msgid "Commit message"
+msgstr ""
+
+#: src/gistatic.go:1329
+msgid "Date"
+msgstr ""
+
+#: src/gistatic.go:1426
+msgid "Description"
+msgstr ""
+
+#: src/gistatic.go:1318 src/gistatic.go:1428
+msgid "Generated with"
+msgstr ""
+
+#: src/gistatic.go:1427
+msgid "Last commit"
+msgstr ""
+
+#: src/gistatic.go:1423
+msgid "Listing of repositories"
+msgstr ""
+
+#: src/gistatic.go:1425
+msgid "Name"
+msgstr ""
+
+#: src/gistatic.go:1315 src/gistatic.go:1419
+msgid "Outlined icon of 3 melting ice cubes"
+msgstr ""
+
+#: src/gistatic.go:1424
+msgid "Repositories"
+msgstr ""
+
+#: src/gistatic.go:1326
+msgid "Tag"
+msgstr ""
+
+#: src/gistatic.go:989
+#, c-format
+msgid "Writing %v...\n"
+msgstr ""
+
+#: src/gistatic.go:1320
+msgid "branches"
+msgstr ""
+
+#: src/gistatic.go:1343
+msgid "branches.html"
+msgstr ""
+
+#: src/gistatic.go:1108 src/gistatic.go:1323 src/gistatic.go:1350
+msgid "commit"
+msgstr ""
+
+#: src/gistatic.go:1319 src/gistatic.go:1422
+msgid "en"
+msgstr ""
+
+#: src/gistatic.go:1034 src/gistatic.go:1046 src/gistatic.go:1324
+msgid "files"
+msgstr ""
+
+#: src/gistatic.go:1220 src/gistatic.go:1322 src/gistatic.go:1362
+msgid "log"
+msgstr ""
+
+#: src/gistatic.go:1330
+msgid "newer"
+msgstr ""
+
+#: src/gistatic.go:1331
+msgid "older"
+msgstr ""
+
+#: src/gistatic.go:1321
+msgid "tags"
+msgstr ""
+
+#: src/gistatic.go:1344
+msgid "tags.html"
+msgstr ""
diff --git a/po/gistatic/es.po b/po/gistatic/es.po
new file mode 100644
index 0000000..ea85040
--- /dev/null
+++ b/po/gistatic/es.po
@@ -0,0 +1,100 @@
+msgid ""
+msgstr ""
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: src/gistatic.go:1328
+msgid "Author"
+msgstr ""
+
+#: src/gistatic.go:1325
+msgid "Branch"
+msgstr ""
+
+#: src/gistatic.go:1327
+msgid "Commit message"
+msgstr ""
+
+#: src/gistatic.go:1329
+msgid "Date"
+msgstr ""
+
+#: src/gistatic.go:1426
+msgid "Description"
+msgstr ""
+
+#: src/gistatic.go:1318 src/gistatic.go:1428
+msgid "Generated with"
+msgstr ""
+
+#: src/gistatic.go:1427
+msgid "Last commit"
+msgstr ""
+
+#: src/gistatic.go:1423
+msgid "Listing of repositories"
+msgstr ""
+
+#: src/gistatic.go:1425
+msgid "Name"
+msgstr ""
+
+#: src/gistatic.go:1315 src/gistatic.go:1419
+msgid "Outlined icon of 3 melting ice cubes"
+msgstr ""
+
+#: src/gistatic.go:1424
+msgid "Repositories"
+msgstr ""
+
+#: src/gistatic.go:1326
+msgid "Tag"
+msgstr ""
+
+#: src/gistatic.go:989
+#, c-format
+msgid "Writing %v...\n"
+msgstr ""
+
+#: src/gistatic.go:1320
+msgid "branches"
+msgstr ""
+
+#: src/gistatic.go:1343
+msgid "branches.html"
+msgstr ""
+
+#: src/gistatic.go:1108 src/gistatic.go:1323 src/gistatic.go:1350
+msgid "commit"
+msgstr ""
+
+#: src/gistatic.go:1319 src/gistatic.go:1422
+msgid "en"
+msgstr ""
+
+#: src/gistatic.go:1034 src/gistatic.go:1046 src/gistatic.go:1324
+msgid "files"
+msgstr ""
+
+#: src/gistatic.go:1220 src/gistatic.go:1322 src/gistatic.go:1362
+msgid "log"
+msgstr ""
+
+#: src/gistatic.go:1330
+msgid "newer"
+msgstr ""
+
+#: src/gistatic.go:1331
+msgid "older"
+msgstr ""
+
+#: src/gistatic.go:1321
+msgid "tags"
+msgstr ""
+
+#: src/gistatic.go:1344
+msgid "tags.html"
+msgstr ""
diff --git a/po/gistatic/fr.po b/po/gistatic/fr.po
new file mode 100644
index 0000000..342df98
--- /dev/null
+++ b/po/gistatic/fr.po
@@ -0,0 +1,100 @@
+msgid ""
+msgstr ""
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: src/gistatic.go:1328
+msgid "Author"
+msgstr ""
+
+#: src/gistatic.go:1325
+msgid "Branch"
+msgstr ""
+
+#: src/gistatic.go:1327
+msgid "Commit message"
+msgstr ""
+
+#: src/gistatic.go:1329
+msgid "Date"
+msgstr ""
+
+#: src/gistatic.go:1426
+msgid "Description"
+msgstr ""
+
+#: src/gistatic.go:1318 src/gistatic.go:1428
+msgid "Generated with"
+msgstr ""
+
+#: src/gistatic.go:1427
+msgid "Last commit"
+msgstr ""
+
+#: src/gistatic.go:1423
+msgid "Listing of repositories"
+msgstr ""
+
+#: src/gistatic.go:1425
+msgid "Name"
+msgstr ""
+
+#: src/gistatic.go:1315 src/gistatic.go:1419
+msgid "Outlined icon of 3 melting ice cubes"
+msgstr ""
+
+#: src/gistatic.go:1424
+msgid "Repositories"
+msgstr ""
+
+#: src/gistatic.go:1326
+msgid "Tag"
+msgstr ""
+
+#: src/gistatic.go:989
+#, c-format
+msgid "Writing %v...\n"
+msgstr ""
+
+#: src/gistatic.go:1320
+msgid "branches"
+msgstr ""
+
+#: src/gistatic.go:1343
+msgid "branches.html"
+msgstr ""
+
+#: src/gistatic.go:1108 src/gistatic.go:1323 src/gistatic.go:1350
+msgid "commit"
+msgstr ""
+
+#: src/gistatic.go:1319 src/gistatic.go:1422
+msgid "en"
+msgstr ""
+
+#: src/gistatic.go:1034 src/gistatic.go:1046 src/gistatic.go:1324
+msgid "files"
+msgstr ""
+
+#: src/gistatic.go:1220 src/gistatic.go:1322 src/gistatic.go:1362
+msgid "log"
+msgstr ""
+
+#: src/gistatic.go:1330
+msgid "newer"
+msgstr ""
+
+#: src/gistatic.go:1331
+msgid "older"
+msgstr ""
+
+#: src/gistatic.go:1321
+msgid "tags"
+msgstr ""
+
+#: src/gistatic.go:1344
+msgid "tags.html"
+msgstr ""
diff --git a/po/gistatic/gistatic.pot b/po/gistatic/gistatic.pot
index 4bb37b7..17df7dc 100644
--- a/po/gistatic/gistatic.pot
+++ b/po/gistatic/gistatic.pot
@@ -1,86 +1,100 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr "Project-Id-Version: \n"
- "Report-Msgid-Bugs-To: EMAIL\n"
- "POT-Creation-Date: 2025-05-11 07:56-0300\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"
- "Language: \n"
- "MIME-Version: 1.0\n"
- "Content-Type: text/plain; charset=CHARSET\n"
- "Content-Transfer-Encoding: 8bit\n"
-
-#: src/gistatic.go:917 src/gistatic.go:997
-msgid "Outlined icon of 3 melting ice cubes"
-msgstr ""
-
-#: src/gistatic.go:920 src/gistatic.go:1000
-msgid "en"
-msgstr ""
-
-#: src/gistatic.go:929
-msgid "Date"
-msgstr ""
-
-#: src/gistatic.go:1002
-msgid "Repositories"
-msgstr ""
-
-#: src/gistatic.go:1004
-msgid "Description"
-msgstr ""
-
-#: src/gistatic.go:922
-msgid "tags"
-msgstr ""
-
-#: src/gistatic.go:924
-msgid "commit"
-msgstr ""
-
-#: src/gistatic.go:1003
-msgid "Name"
-msgstr ""
-
-#: src/gistatic.go:1005
-msgid "Last commit"
-msgstr ""
-
-#: src/gistatic.go:921
-msgid "branches"
-msgstr ""
-
-#: src/gistatic.go:926
-msgid "Tag"
-msgstr ""
-
-#: src/gistatic.go:927
-msgid "Commit message"
-msgstr ""
-
-#: src/gistatic.go:928
-msgid "Author"
-msgstr ""
-
-#: src/gistatic.go:1001
-msgid "Listing of repositories"
-msgstr ""
-
-#: src/gistatic.go:923
-msgid "log"
-msgstr ""
-
-#: src/gistatic.go:925
-msgid "Branch"
-msgstr ""
-
-#: src/gistatic.go:1006
-msgid "Generated with"
-msgstr ""
+msgid ""
+msgstr ""
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/gistatic.go:1328
+msgid "Author"
+msgstr ""
+
+#: src/gistatic.go:1325
+msgid "Branch"
+msgstr ""
+
+#: src/gistatic.go:1327
+msgid "Commit message"
+msgstr ""
+
+#: src/gistatic.go:1329
+msgid "Date"
+msgstr ""
+
+#: src/gistatic.go:1426
+msgid "Description"
+msgstr ""
+
+#: src/gistatic.go:1318 src/gistatic.go:1428
+msgid "Generated with"
+msgstr ""
+
+#: src/gistatic.go:1427
+msgid "Last commit"
+msgstr ""
+
+#: src/gistatic.go:1423
+msgid "Listing of repositories"
+msgstr ""
+
+#: src/gistatic.go:1425
+msgid "Name"
+msgstr ""
+
+#: src/gistatic.go:1315 src/gistatic.go:1419
+msgid "Outlined icon of 3 melting ice cubes"
+msgstr ""
+
+#: src/gistatic.go:1424
+msgid "Repositories"
+msgstr ""
+
+#: src/gistatic.go:1326
+msgid "Tag"
+msgstr ""
+
+#: src/gistatic.go:989
+#, c-format
+msgid "Writing %v...\n"
+msgstr ""
+
+#: src/gistatic.go:1320
+msgid "branches"
+msgstr ""
+
+#: src/gistatic.go:1343
+msgid "branches.html"
+msgstr ""
+
+#: src/gistatic.go:1108 src/gistatic.go:1323 src/gistatic.go:1350
+msgid "commit"
+msgstr ""
+
+#: src/gistatic.go:1319 src/gistatic.go:1422
+msgid "en"
+msgstr ""
+
+#: src/gistatic.go:1034 src/gistatic.go:1046 src/gistatic.go:1324
+msgid "files"
+msgstr ""
+
+#: src/gistatic.go:1220 src/gistatic.go:1322 src/gistatic.go:1362
+msgid "log"
+msgstr ""
+
+#: src/gistatic.go:1330
+msgid "newer"
+msgstr ""
+
+#: src/gistatic.go:1331
+msgid "older"
+msgstr ""
+
+#: src/gistatic.go:1321
+msgid "tags"
+msgstr ""
+
+#: src/gistatic.go:1344
+msgid "tags.html"
+msgstr ""
diff --git a/po/gistatic/po4a.cfg b/po/gistatic/po4a.cfg
index 5c2eb8f..b3cad75 100644
--- a/po/gistatic/po4a.cfg
+++ b/po/gistatic/po4a.cfg
@@ -1,3 +1,3 @@
[options] --keep 0 --master-charset UTF-8 --localized-charset UTF-8 --addendum-charset UTF-8
-[po_directory] po/gistatic/
+[po_directory] po/gistatic
diff --git a/po/gistatic/pt.po b/po/gistatic/pt.po
index 5a3e054..73d8008 100644
--- a/po/gistatic/pt.po
+++ b/po/gistatic/pt.po
@@ -1,16 +1,5 @@
-# Portuguese translations for package.
-# Copyright (C) 2025 THE 'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the package.
-# Automatically generated, 2025.
-#
msgid ""
msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: EMAIL\n"
-"POT-Creation-Date: 2025-05-11 07:56-0300\n"
-"PO-Revision-Date: 2025-05-10 17:50-0300\n"
-"Last-Translator: EuAndreh <eu@euandre.org>\n"
-"Language-Team: none\n"
"Language: pt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -18,70 +7,95 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.5\n"
-#: src/gistatic.go:917 src/gistatic.go:997
-msgid "Outlined icon of 3 melting ice cubes"
+#: src/gistatic.go:1328
+msgid "Author"
msgstr ""
-#: src/gistatic.go:920 src/gistatic.go:1000
-msgid "en"
-msgstr "pt"
+#: src/gistatic.go:1325
+msgid "Branch"
+msgstr ""
-#: src/gistatic.go:929
-msgid "Date"
+#: src/gistatic.go:1327
+msgid "Commit message"
msgstr ""
-#: src/gistatic.go:1002
-msgid "Repositories"
-msgstr "Repositórios"
+#: src/gistatic.go:1329
+msgid "Date"
+msgstr ""
-#: src/gistatic.go:1004
+#: src/gistatic.go:1426
msgid "Description"
msgstr ""
-#: src/gistatic.go:922
-msgid "tags"
+#: src/gistatic.go:1318 src/gistatic.go:1428
+msgid "Generated with"
msgstr ""
-#: src/gistatic.go:924
-msgid "commit"
+#: src/gistatic.go:1427
+msgid "Last commit"
msgstr ""
-#: src/gistatic.go:1003
+#: src/gistatic.go:1423
+msgid "Listing of repositories"
+msgstr "Lista de repositórios"
+
+#: src/gistatic.go:1425
msgid "Name"
msgstr ""
-#: src/gistatic.go:1005
-msgid "Last commit"
+#: src/gistatic.go:1315 src/gistatic.go:1419
+msgid "Outlined icon of 3 melting ice cubes"
msgstr ""
-#: src/gistatic.go:921
-msgid "branches"
-msgstr ""
+#: src/gistatic.go:1424
+msgid "Repositories"
+msgstr "Repositórios"
-#: src/gistatic.go:926
+#: src/gistatic.go:1326
msgid "Tag"
msgstr ""
-#: src/gistatic.go:927
-msgid "Commit message"
+#: src/gistatic.go:989
+#, c-format
+msgid "Writing %v...\n"
msgstr ""
-#: src/gistatic.go:928
-msgid "Author"
+#: src/gistatic.go:1320
+msgid "branches"
msgstr ""
-#: src/gistatic.go:1001
-msgid "Listing of repositories"
-msgstr "Lista de repositórios"
+#: src/gistatic.go:1343
+msgid "branches.html"
+msgstr ""
+
+#: src/gistatic.go:1108 src/gistatic.go:1323 src/gistatic.go:1350
+msgid "commit"
+msgstr ""
-#: src/gistatic.go:923
+#: src/gistatic.go:1319 src/gistatic.go:1422
+msgid "en"
+msgstr "pt"
+
+#: src/gistatic.go:1034 src/gistatic.go:1046 src/gistatic.go:1324
+msgid "files"
+msgstr ""
+
+#: src/gistatic.go:1220 src/gistatic.go:1322 src/gistatic.go:1362
msgid "log"
msgstr ""
-#: src/gistatic.go:925
-msgid "Branch"
+#: src/gistatic.go:1330
+msgid "newer"
msgstr ""
-#: src/gistatic.go:1006
-msgid "Generated with"
+#: src/gistatic.go:1331
+msgid "older"
+msgstr ""
+
+#: src/gistatic.go:1321
+msgid "tags"
+msgstr ""
+
+#: src/gistatic.go:1344
+msgid "tags.html"
msgstr ""