Compare commits

..

No commits in common. "586db8d553a732df731a6cb58ed248c22d727e76" and "abdf04cd5d982cd0d7fec483cd09b5a7f0cb4460" have entirely different histories.

21 changed files with 250 additions and 253 deletions

1
.gitignore vendored
View File

@ -1,3 +1,2 @@
.idea/
locales/ locales/
po/*.pot po/*.pot

View File

@ -1,4 +1,4 @@
HTML_FILES := $(shell find web -name *.gohtml) HTML_FILES := $(shell find web -name *.html)
GO_FILES := $(shell find . -name *.go) GO_FILES := $(shell find . -name *.go)
DEFAULT_DOMAIN = numerus DEFAULT_DOMAIN = numerus
POT_FILE = po/$(DEFAULT_DOMAIN).pot POT_FILE = po/$(DEFAULT_DOMAIN).pot

View File

@ -134,7 +134,7 @@ func CompanyTaxDetailsHandler() http.Handler {
page.Countries = mustGetCountryOptions(r.Context(), conn, locale) page.Countries = mustGetCountryOptions(r.Context(), conn, locale)
page.Currencies = mustGetCurrencyOptions(r.Context(), conn) page.Currencies = mustGetCurrencyOptions(r.Context(), conn)
page.Taxes = mustGetTaxes(r.Context(), conn, company) page.Taxes = mustGetTaxes(r.Context(), conn, company)
mustRenderAppTemplate(w, r, "tax-details.gohtml", page) mustRenderAppTemplate(w, r, "tax-details.html", page)
}) })
} }

View File

@ -43,7 +43,7 @@ func ContactsHandler() http.Handler {
Title: pgettext("title", "Customers", locale), Title: pgettext("title", "Customers", locale),
Contacts: mustGetContactEntries(r.Context(), conn, company), Contacts: mustGetContactEntries(r.Context(), conn, company),
} }
mustRenderAppTemplate(w, r, "contacts-index.gohtml", page) mustRenderAppTemplate(w, r, "contacts-index.html", page)
} }
}) })
} }
@ -96,6 +96,6 @@ func NewContactHandler() http.Handler {
CountryCode: "ES", CountryCode: "ES",
Countries: mustGetCountryOptions(r.Context(), conn, locale), Countries: mustGetCountryOptions(r.Context(), conn, locale),
} }
mustRenderAppTemplate(w, r, "contacts-new.gohtml", page) mustRenderAppTemplate(w, r, "contacts-new.html", page)
}) })
} }

View File

@ -75,12 +75,12 @@ func mustGetAvailableLanguages(db *Db) []language.Tag {
var langs []language.Tag var langs []language.Tag
for rows.Next() { for rows.Next() {
var langTag string var lang_tag string
err = rows.Scan(&langTag) err = rows.Scan(&lang_tag)
if err != nil { if err != nil {
panic(err) panic(err)
} }
langs = append(langs, language.MustParse(langTag)) langs = append(langs, language.MustParse(lang_tag))
} }
if rows.Err() != nil { if rows.Err() != nil {
panic(rows.Err()) panic(rows.Err())

View File

@ -55,7 +55,7 @@ func LoginHandler() http.Handler {
} else { } else {
w.WriteHeader(http.StatusOK) w.WriteHeader(http.StatusOK)
} }
mustRenderWebTemplate(w, r, "login.gohtml", page) mustRenderWebTemplate(w, r, "login.html", page)
}) })
} }
@ -131,9 +131,9 @@ func Authenticated(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
user := getUser(r) user := getUser(r)
if user.LoggedIn { if user.LoggedIn {
next.ServeHTTP(w, r) next.ServeHTTP(w, r);
} else { } else {
http.Redirect(w, r, "/login", http.StatusSeeOther) http.Redirect(w, r, "/login", http.StatusSeeOther)
} }
}) });
} }

View File

@ -50,7 +50,7 @@ func ProfileHandler() http.Handler {
panic(nil) panic(nil)
} }
} }
mustRenderAppTemplate(w, r, "profile.gohtml", page) mustRenderAppTemplate(w, r, "profile.html", page)
}) })
} }

View File

@ -13,7 +13,7 @@ func NewRouter(db *Db) http.Handler {
companyRouter.Handle("/contacts/new", NewContactHandler()) companyRouter.Handle("/contacts/new", NewContactHandler())
companyRouter.Handle("/contacts", ContactsHandler()) companyRouter.Handle("/contacts", ContactsHandler())
companyRouter.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { companyRouter.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
mustRenderAppTemplate(w, r, "dashboard.gohtml", nil) mustRenderAppTemplate(w, r, "dashboard.html", nil)
}) })
router := http.NewServeMux() router := http.NewServeMux()

View File

@ -6,7 +6,7 @@ import (
"net/http" "net/http"
) )
func templateFile(name string) string { func templateFile (name string) string {
return "web/template/" + name return "web/template/" + name
} }
@ -19,9 +19,9 @@ func mustRenderTemplate(wr io.Writer, r *http.Request, layout string, filename s
"pgettext": locale.GetC, "pgettext": locale.GetC,
"companyURI": func(uri string) string { "companyURI": func(uri string) string {
if company == nil { if company == nil {
return uri return uri;
} }
return "/company/" + company.Slug + uri return "/company/" + company.Slug + uri;
}, },
}) })
if _, err := t.ParseFiles(templateFile(filename), templateFile(layout)); err != nil { if _, err := t.ParseFiles(templateFile(filename), templateFile(layout)); err != nil {
@ -33,9 +33,9 @@ func mustRenderTemplate(wr io.Writer, r *http.Request, layout string, filename s
} }
func mustRenderAppTemplate(w io.Writer, r *http.Request, filename string, data interface{}) { func mustRenderAppTemplate(w io.Writer, r *http.Request, filename string, data interface{}) {
mustRenderTemplate(w, r, "app.gohtml", filename, data) mustRenderTemplate(w, r, "app.html", filename, data);
} }
func mustRenderWebTemplate(w io.Writer, r *http.Request, filename string, data interface{}) { func mustRenderWebTemplate(w io.Writer, r *http.Request, filename string, data interface{}) {
mustRenderTemplate(w, r, "web.gohtml", filename, data) mustRenderTemplate(w, r, "web.html", filename, data);
} }

226
po/ca.po
View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: numerus\n" "Project-Id-Version: numerus\n"
"Report-Msgid-Bugs-To: jordi@tandem.blog\n" "Report-Msgid-Bugs-To: jordi@tandem.blog\n"
"POT-Creation-Date: 2023-01-30 16:46+0100\n" "POT-Creation-Date: 2023-01-30 10:50+0100\n"
"PO-Revision-Date: 2023-01-18 17:08+0100\n" "PO-Revision-Date: 2023-01-18 17:08+0100\n"
"Last-Translator: jordi fita mas <jordi@tandem.blog>\n" "Last-Translator: jordi fita mas <jordi@tandem.blog>\n"
"Language-Team: Catalan <ca@dodds.net>\n" "Language-Team: Catalan <ca@dodds.net>\n"
@ -17,218 +17,218 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: web/template/web.gohtml:6 web/template/login.gohtml:9 #: web/template/web.html:6 web/template/login.html:9
msgctxt "title" msgctxt "title"
msgid "Login" msgid "Login"
msgstr "Entrada" msgstr "Entrada"
#: web/template/app.gohtml:20 #: web/template/contacts-index.html:2 web/template/contacts-new.html:56
msgctxt "menu"
msgid "Account"
msgstr "Compte"
#: web/template/app.gohtml:26
msgctxt "menu"
msgid "Tax Details"
msgstr "Configuració fiscal"
#: web/template/app.gohtml:33
msgctxt "action"
msgid "Logout"
msgstr "Surt"
#: web/template/app.gohtml:42
msgctxt "nav"
msgid "Customers"
msgstr "Clients"
#: web/template/login.gohtml:5
msgid "Invalid user or password"
msgstr "Nom dusuari o contrasenya incorrectes"
#: web/template/login.gohtml:13 web/template/profile.gohtml:15
#: web/template/tax-details.gohtml:23 web/template/contacts-new.gohtml:23
msgctxt "input"
msgid "Email"
msgstr "Correu-e"
#: web/template/login.gohtml:18 web/template/profile.gohtml:23
msgctxt "input"
msgid "Password"
msgstr "Contrasenya"
#: web/template/login.gohtml:21
msgctxt "action"
msgid "Login"
msgstr "Entra"
#: web/template/profile.gohtml:3 pkg/profile.go:29
msgctxt "title"
msgid "User Settings"
msgstr "Configuració usuari"
#: web/template/profile.gohtml:6
msgctxt "title"
msgid "User Access Data"
msgstr "Dades accés usuari"
#: web/template/profile.gohtml:10
msgctxt "input"
msgid "User name"
msgstr "Nom dusuari"
#: web/template/profile.gohtml:19
msgctxt "title"
msgid "Password Change"
msgstr "Canvi contrasenya"
#: web/template/profile.gohtml:28
msgctxt "input"
msgid "Password Confirmation"
msgstr "Confirmació contrasenya"
#: web/template/profile.gohtml:33
msgctxt "input"
msgid "Language"
msgstr "Idioma"
#: web/template/profile.gohtml:36
msgctxt "language option"
msgid "Automatic"
msgstr "Automàtic"
#: web/template/profile.gohtml:42 web/template/tax-details.gohtml:127
msgctxt "action"
msgid "Save changes"
msgstr "Desa canvis"
#: web/template/contacts-index.gohtml:2 web/template/contacts-new.gohtml:56
msgctxt "action" msgctxt "action"
msgid "New contact" msgid "New contact"
msgstr "Nou contacte" msgstr "Nou contacte"
#: web/template/contacts-index.gohtml:7 #: web/template/contacts-index.html:7
msgctxt "contact" msgctxt "contact"
msgid "All" msgid "All"
msgstr "Tots" msgstr "Tots"
#: web/template/contacts-index.gohtml:8 #: web/template/contacts-index.html:8
msgctxt "title" msgctxt "title"
msgid "Customer" msgid "Customer"
msgstr "Client" msgstr "Client"
#: web/template/contacts-index.gohtml:9 #: web/template/contacts-index.html:9
msgctxt "title" msgctxt "title"
msgid "Email" msgid "Email"
msgstr "Correu-e" msgstr "Correu-e"
#: web/template/contacts-index.gohtml:10 #: web/template/contacts-index.html:10
msgctxt "title" msgctxt "title"
msgid "Phone" msgid "Phone"
msgstr "Telèfon" msgstr "Telèfon"
#: web/template/contacts-index.gohtml:25 #: web/template/contacts-index.html:25
msgid "No customers added yet." msgid "No customers added yet."
msgstr "No hi ha cap client." msgstr "No hi ha cap client."
#: web/template/tax-details.gohtml:3 pkg/company.go:108 #: web/template/contacts-new.html:3 pkg/contacts.go:95
msgctxt "title" msgctxt "title"
msgid "Tax Details" msgid "New Contact"
msgstr "Configuració fiscal" msgstr "Nou contacte"
#: web/template/tax-details.gohtml:7 web/template/contacts-new.gohtml:7 #: web/template/contacts-new.html:7 web/template/tax-details.html:7
msgctxt "input" msgctxt "input"
msgid "Business name" msgid "Business name"
msgstr "Nom i cognom" msgstr "Nom i cognom"
#: web/template/tax-details.gohtml:11 web/template/contacts-new.gohtml:11 #: web/template/contacts-new.html:11 web/template/tax-details.html:11
msgctxt "input" msgctxt "input"
msgid "VAT number" msgid "VAT number"
msgstr "DNI / NIF" msgstr "DNI / NIF"
#: web/template/tax-details.gohtml:15 web/template/contacts-new.gohtml:15 #: web/template/contacts-new.html:15 web/template/tax-details.html:15
msgctxt "input" msgctxt "input"
msgid "Trade name" msgid "Trade name"
msgstr "Nom comercial" msgstr "Nom comercial"
#: web/template/tax-details.gohtml:19 web/template/contacts-new.gohtml:19 #: web/template/contacts-new.html:19 web/template/tax-details.html:19
msgctxt "input" msgctxt "input"
msgid "Phone" msgid "Phone"
msgstr "Telèfon" msgstr "Telèfon"
#: web/template/tax-details.gohtml:27 web/template/contacts-new.gohtml:27 #: web/template/contacts-new.html:23 web/template/login.html:13
#: web/template/profile.html:15 web/template/tax-details.html:23
msgctxt "input"
msgid "Email"
msgstr "Correu-e"
#: web/template/contacts-new.html:27 web/template/tax-details.html:27
msgctxt "input" msgctxt "input"
msgid "Web" msgid "Web"
msgstr "Web" msgstr "Web"
#: web/template/tax-details.gohtml:31 web/template/contacts-new.gohtml:31 #: web/template/contacts-new.html:31 web/template/tax-details.html:31
msgctxt "input" msgctxt "input"
msgid "Address" msgid "Address"
msgstr "Adreça" msgstr "Adreça"
#: web/template/tax-details.gohtml:35 web/template/contacts-new.gohtml:35 #: web/template/contacts-new.html:35 web/template/tax-details.html:35
msgctxt "input" msgctxt "input"
msgid "City" msgid "City"
msgstr "Població" msgstr "Població"
#: web/template/tax-details.gohtml:39 web/template/contacts-new.gohtml:39 #: web/template/contacts-new.html:39 web/template/tax-details.html:39
msgctxt "input" msgctxt "input"
msgid "Province" msgid "Province"
msgstr "Província" msgstr "Província"
#: web/template/tax-details.gohtml:43 web/template/contacts-new.gohtml:43 #: web/template/contacts-new.html:43 web/template/tax-details.html:43
msgctxt "input" msgctxt "input"
msgid "Postal code" msgid "Postal code"
msgstr "Codi postal" msgstr "Codi postal"
#: web/template/tax-details.gohtml:52 web/template/contacts-new.gohtml:52 #: web/template/contacts-new.html:52 web/template/tax-details.html:52
msgctxt "input" msgctxt "input"
msgid "Country" msgid "Country"
msgstr "País" msgstr "País"
#: web/template/tax-details.gohtml:56 #: web/template/login.html:5
msgid "Invalid user or password"
msgstr "Nom dusuari o contrasenya incorrectes"
#: web/template/login.html:18 web/template/profile.html:23
msgctxt "input"
msgid "Password"
msgstr "Contrasenya"
#: web/template/login.html:21
msgctxt "action"
msgid "Login"
msgstr "Entra"
#: web/template/profile.html:3 pkg/profile.go:29
msgctxt "title"
msgid "User Settings"
msgstr "Configuració usuari"
#: web/template/profile.html:6
msgctxt "title"
msgid "User Access Data"
msgstr "Dades accés usuari"
#: web/template/profile.html:10
msgctxt "input"
msgid "User name"
msgstr "Nom dusuari"
#: web/template/profile.html:19
msgctxt "title"
msgid "Password Change"
msgstr "Canvi contrasenya"
#: web/template/profile.html:28
msgctxt "input"
msgid "Password Confirmation"
msgstr "Confirmació contrasenya"
#: web/template/profile.html:33
msgctxt "input"
msgid "Language"
msgstr "Idioma"
#: web/template/profile.html:36
msgctxt "language option"
msgid "Automatic"
msgstr "Automàtic"
#: web/template/profile.html:42 web/template/tax-details.html:127
msgctxt "action"
msgid "Save changes"
msgstr "Desa canvis"
#: web/template/tax-details.html:3 pkg/company.go:108
msgctxt "title"
msgid "Tax Details"
msgstr "Configuració fiscal"
#: web/template/tax-details.html:56
msgctxt "input" msgctxt "input"
msgid "Currency" msgid "Currency"
msgstr "Moneda" msgstr "Moneda"
#: web/template/tax-details.gohtml:74 #: web/template/tax-details.html:74
msgctxt "title" msgctxt "title"
msgid "Tax Name" msgid "Tax Name"
msgstr "Nom import" msgstr "Nom import"
#: web/template/tax-details.gohtml:75 #: web/template/tax-details.html:75
msgctxt "title" msgctxt "title"
msgid "Rate (%)" msgid "Rate (%)"
msgstr "Percentatge" msgstr "Percentatge"
#: web/template/tax-details.gohtml:96 #: web/template/tax-details.html:96
msgid "No taxes added yet." msgid "No taxes added yet."
msgstr "No hi ha cap impost." msgstr "No hi ha cap impost."
#: web/template/tax-details.gohtml:102 #: web/template/tax-details.html:102
msgctxt "title" msgctxt "title"
msgid "New Line" msgid "New Line"
msgstr "Nova línia" msgstr "Nova línia"
#: web/template/tax-details.gohtml:106 #: web/template/tax-details.html:106
msgctxt "input" msgctxt "input"
msgid "Tax name" msgid "Tax name"
msgstr "Nom impost" msgstr "Nom impost"
#: web/template/tax-details.gohtml:112 #: web/template/tax-details.html:112
msgctxt "input" msgctxt "input"
msgid "Rate (%)" msgid "Rate (%)"
msgstr "Percentatge" msgstr "Percentatge"
#: web/template/tax-details.gohtml:119 #: web/template/tax-details.html:119
msgctxt "action" msgctxt "action"
msgid "Add new tax" msgid "Add new tax"
msgstr "Afegeix nou impost" msgstr "Afegeix nou impost"
#: web/template/contacts-new.gohtml:3 pkg/contacts.go:95 #: web/template/app.html:20
msgctxt "title" msgctxt "menu"
msgid "New Contact" msgid "Account"
msgstr "Nou contacte" msgstr "Compte"
#: web/template/app.html:26
msgctxt "menu"
msgid "Tax Details"
msgstr "Configuració fiscal"
#: web/template/app.html:33
msgctxt "action"
msgid "Logout"
msgstr "Surt"
#: web/template/app.html:42
msgctxt "nav"
msgid "Customers"
msgstr "Clients"
#: pkg/contacts.go:43 #: pkg/contacts.go:43
msgctxt "title" msgctxt "title"

226
po/es.po
View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: numerus\n" "Project-Id-Version: numerus\n"
"Report-Msgid-Bugs-To: jordi@tandem.blog\n" "Report-Msgid-Bugs-To: jordi@tandem.blog\n"
"POT-Creation-Date: 2023-01-30 16:46+0100\n" "POT-Creation-Date: 2023-01-30 10:50+0100\n"
"PO-Revision-Date: 2023-01-18 17:45+0100\n" "PO-Revision-Date: 2023-01-18 17:45+0100\n"
"Last-Translator: jordi fita mas <jordi@tandem.blog>\n" "Last-Translator: jordi fita mas <jordi@tandem.blog>\n"
"Language-Team: Spanish <es@tp.org.es>\n" "Language-Team: Spanish <es@tp.org.es>\n"
@ -17,218 +17,218 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: web/template/web.gohtml:6 web/template/login.gohtml:9 #: web/template/web.html:6 web/template/login.html:9
msgctxt "title" msgctxt "title"
msgid "Login" msgid "Login"
msgstr "Entrada" msgstr "Entrada"
#: web/template/app.gohtml:20 #: web/template/contacts-index.html:2 web/template/contacts-new.html:56
msgctxt "menu"
msgid "Account"
msgstr "Cuenta"
#: web/template/app.gohtml:26
msgctxt "menu"
msgid "Tax Details"
msgstr "Configuración fiscal"
#: web/template/app.gohtml:33
msgctxt "action"
msgid "Logout"
msgstr "Salir"
#: web/template/app.gohtml:42
msgctxt "nav"
msgid "Customers"
msgstr "Clientes"
#: web/template/login.gohtml:5
msgid "Invalid user or password"
msgstr "Nombre de usuario o contraseña inválido"
#: web/template/login.gohtml:13 web/template/profile.gohtml:15
#: web/template/tax-details.gohtml:23 web/template/contacts-new.gohtml:23
msgctxt "input"
msgid "Email"
msgstr "Correo-e"
#: web/template/login.gohtml:18 web/template/profile.gohtml:23
msgctxt "input"
msgid "Password"
msgstr "Contraseña"
#: web/template/login.gohtml:21
msgctxt "action"
msgid "Login"
msgstr "Entrar"
#: web/template/profile.gohtml:3 pkg/profile.go:29
msgctxt "title"
msgid "User Settings"
msgstr "Configuración usuario"
#: web/template/profile.gohtml:6
msgctxt "title"
msgid "User Access Data"
msgstr "Datos acceso usuario"
#: web/template/profile.gohtml:10
msgctxt "input"
msgid "User name"
msgstr "Nombre de usuario"
#: web/template/profile.gohtml:19
msgctxt "title"
msgid "Password Change"
msgstr "Cambio de contraseña"
#: web/template/profile.gohtml:28
msgctxt "input"
msgid "Password Confirmation"
msgstr "Confirmación contrasenya"
#: web/template/profile.gohtml:33
msgctxt "input"
msgid "Language"
msgstr "Idioma"
#: web/template/profile.gohtml:36
msgctxt "language option"
msgid "Automatic"
msgstr "Automático"
#: web/template/profile.gohtml:42 web/template/tax-details.gohtml:127
msgctxt "action"
msgid "Save changes"
msgstr "Guardar cambios"
#: web/template/contacts-index.gohtml:2 web/template/contacts-new.gohtml:56
msgctxt "action" msgctxt "action"
msgid "New contact" msgid "New contact"
msgstr "Nuevo contacto" msgstr "Nuevo contacto"
#: web/template/contacts-index.gohtml:7 #: web/template/contacts-index.html:7
msgctxt "contact" msgctxt "contact"
msgid "All" msgid "All"
msgstr "Todos" msgstr "Todos"
#: web/template/contacts-index.gohtml:8 #: web/template/contacts-index.html:8
msgctxt "title" msgctxt "title"
msgid "Customer" msgid "Customer"
msgstr "Cliente" msgstr "Cliente"
#: web/template/contacts-index.gohtml:9 #: web/template/contacts-index.html:9
msgctxt "title" msgctxt "title"
msgid "Email" msgid "Email"
msgstr "Correo-e" msgstr "Correo-e"
#: web/template/contacts-index.gohtml:10 #: web/template/contacts-index.html:10
msgctxt "title" msgctxt "title"
msgid "Phone" msgid "Phone"
msgstr "Teléfono" msgstr "Teléfono"
#: web/template/contacts-index.gohtml:25 #: web/template/contacts-index.html:25
msgid "No customers added yet." msgid "No customers added yet."
msgstr "No hay clientes." msgstr "No hay clientes."
#: web/template/tax-details.gohtml:3 pkg/company.go:108 #: web/template/contacts-new.html:3 pkg/contacts.go:95
msgctxt "title" msgctxt "title"
msgid "Tax Details" msgid "New Contact"
msgstr "Configuración fiscal" msgstr "Nuevo contacto"
#: web/template/tax-details.gohtml:7 web/template/contacts-new.gohtml:7 #: web/template/contacts-new.html:7 web/template/tax-details.html:7
msgctxt "input" msgctxt "input"
msgid "Business name" msgid "Business name"
msgstr "Nombre y apellidos" msgstr "Nombre y apellidos"
#: web/template/tax-details.gohtml:11 web/template/contacts-new.gohtml:11 #: web/template/contacts-new.html:11 web/template/tax-details.html:11
msgctxt "input" msgctxt "input"
msgid "VAT number" msgid "VAT number"
msgstr "DNI / NIF" msgstr "DNI / NIF"
#: web/template/tax-details.gohtml:15 web/template/contacts-new.gohtml:15 #: web/template/contacts-new.html:15 web/template/tax-details.html:15
msgctxt "input" msgctxt "input"
msgid "Trade name" msgid "Trade name"
msgstr "Nombre comercial" msgstr "Nombre comercial"
#: web/template/tax-details.gohtml:19 web/template/contacts-new.gohtml:19 #: web/template/contacts-new.html:19 web/template/tax-details.html:19
msgctxt "input" msgctxt "input"
msgid "Phone" msgid "Phone"
msgstr "Teléfono" msgstr "Teléfono"
#: web/template/tax-details.gohtml:27 web/template/contacts-new.gohtml:27 #: web/template/contacts-new.html:23 web/template/login.html:13
#: web/template/profile.html:15 web/template/tax-details.html:23
msgctxt "input"
msgid "Email"
msgstr "Correo-e"
#: web/template/contacts-new.html:27 web/template/tax-details.html:27
msgctxt "input" msgctxt "input"
msgid "Web" msgid "Web"
msgstr "Web" msgstr "Web"
#: web/template/tax-details.gohtml:31 web/template/contacts-new.gohtml:31 #: web/template/contacts-new.html:31 web/template/tax-details.html:31
msgctxt "input" msgctxt "input"
msgid "Address" msgid "Address"
msgstr "Dirección" msgstr "Dirección"
#: web/template/tax-details.gohtml:35 web/template/contacts-new.gohtml:35 #: web/template/contacts-new.html:35 web/template/tax-details.html:35
msgctxt "input" msgctxt "input"
msgid "City" msgid "City"
msgstr "Población" msgstr "Población"
#: web/template/tax-details.gohtml:39 web/template/contacts-new.gohtml:39 #: web/template/contacts-new.html:39 web/template/tax-details.html:39
msgctxt "input" msgctxt "input"
msgid "Province" msgid "Province"
msgstr "Provincia" msgstr "Provincia"
#: web/template/tax-details.gohtml:43 web/template/contacts-new.gohtml:43 #: web/template/contacts-new.html:43 web/template/tax-details.html:43
msgctxt "input" msgctxt "input"
msgid "Postal code" msgid "Postal code"
msgstr "Código postal" msgstr "Código postal"
#: web/template/tax-details.gohtml:52 web/template/contacts-new.gohtml:52 #: web/template/contacts-new.html:52 web/template/tax-details.html:52
msgctxt "input" msgctxt "input"
msgid "Country" msgid "Country"
msgstr "País" msgstr "País"
#: web/template/tax-details.gohtml:56 #: web/template/login.html:5
msgid "Invalid user or password"
msgstr "Nombre de usuario o contraseña inválido"
#: web/template/login.html:18 web/template/profile.html:23
msgctxt "input"
msgid "Password"
msgstr "Contraseña"
#: web/template/login.html:21
msgctxt "action"
msgid "Login"
msgstr "Entrar"
#: web/template/profile.html:3 pkg/profile.go:29
msgctxt "title"
msgid "User Settings"
msgstr "Configuración usuario"
#: web/template/profile.html:6
msgctxt "title"
msgid "User Access Data"
msgstr "Datos acceso usuario"
#: web/template/profile.html:10
msgctxt "input"
msgid "User name"
msgstr "Nombre de usuario"
#: web/template/profile.html:19
msgctxt "title"
msgid "Password Change"
msgstr "Cambio de contraseña"
#: web/template/profile.html:28
msgctxt "input"
msgid "Password Confirmation"
msgstr "Confirmación contrasenya"
#: web/template/profile.html:33
msgctxt "input"
msgid "Language"
msgstr "Idioma"
#: web/template/profile.html:36
msgctxt "language option"
msgid "Automatic"
msgstr "Automático"
#: web/template/profile.html:42 web/template/tax-details.html:127
msgctxt "action"
msgid "Save changes"
msgstr "Guardar cambios"
#: web/template/tax-details.html:3 pkg/company.go:108
msgctxt "title"
msgid "Tax Details"
msgstr "Configuración fiscal"
#: web/template/tax-details.html:56
msgctxt "input" msgctxt "input"
msgid "Currency" msgid "Currency"
msgstr "Moneda" msgstr "Moneda"
#: web/template/tax-details.gohtml:74 #: web/template/tax-details.html:74
msgctxt "title" msgctxt "title"
msgid "Tax Name" msgid "Tax Name"
msgstr "Nombre impuesto" msgstr "Nombre impuesto"
#: web/template/tax-details.gohtml:75 #: web/template/tax-details.html:75
msgctxt "title" msgctxt "title"
msgid "Rate (%)" msgid "Rate (%)"
msgstr "Porcentage" msgstr "Porcentage"
#: web/template/tax-details.gohtml:96 #: web/template/tax-details.html:96
msgid "No taxes added yet." msgid "No taxes added yet."
msgstr "No hay impuestos." msgstr "No hay impuestos."
#: web/template/tax-details.gohtml:102 #: web/template/tax-details.html:102
msgctxt "title" msgctxt "title"
msgid "New Line" msgid "New Line"
msgstr "Nueva línea" msgstr "Nueva línea"
#: web/template/tax-details.gohtml:106 #: web/template/tax-details.html:106
msgctxt "input" msgctxt "input"
msgid "Tax name" msgid "Tax name"
msgstr "Nombre impuesto" msgstr "Nombre impuesto"
#: web/template/tax-details.gohtml:112 #: web/template/tax-details.html:112
msgctxt "input" msgctxt "input"
msgid "Rate (%)" msgid "Rate (%)"
msgstr "Porcentage" msgstr "Porcentage"
#: web/template/tax-details.gohtml:119 #: web/template/tax-details.html:119
msgctxt "action" msgctxt "action"
msgid "Add new tax" msgid "Add new tax"
msgstr "Añadir nuevo impuesto" msgstr "Añadir nuevo impuesto"
#: web/template/contacts-new.gohtml:3 pkg/contacts.go:95 #: web/template/app.html:20
msgctxt "title" msgctxt "menu"
msgid "New Contact" msgid "Account"
msgstr "Nuevo contacto" msgstr "Cuenta"
#: web/template/app.html:26
msgctxt "menu"
msgid "Tax Details"
msgstr "Configuración fiscal"
#: web/template/app.html:33
msgctxt "action"
msgid "Logout"
msgstr "Salir"
#: web/template/app.html:42
msgctxt "nav"
msgid "Customers"
msgstr "Clientes"
#: pkg/contacts.go:43 #: pkg/contacts.go:43
msgctxt "title" msgctxt "title"

View File

@ -202,7 +202,7 @@ input[type="submit"]:hover, button:hover {
input[type="submit"]:active, button:active { input[type="submit"]:active, button:active {
background-color: var(--numerus--color--black); background-color: var(--numerus--color--black);
border-color: var(--numerus--color--white); border-color: var(--numerus--color--white);
color: var(--numerus--color--white); text-color: var(--numerus--color--white);
} }
button.icon { button.icon {
@ -247,7 +247,7 @@ header {
} }
header, nav { header, nav {
padding: 0 3rem; padding: 0rem 3rem;
} }
nav { nav {

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 6.0 KiB

View File

@ -11,7 +11,7 @@
<div class="input"> <div class="input">
<input id="user_email" type="email" required autofocus name="email" autocapitalize="none" value="{{ .Email }}" placeholder="{{( pgettext "Email" "input" )}}"> <input id="user_email" type="email" required autofocus name="email" autocapitalize="none" value="{{ .Email }}" placeholder="{{( pgettext "Email" "input" )}}">
<label for="user_email">{{( pgettext "Email" "input" )}}</label> <label for="user_email">{{( pgettext "Email" "input" )}}</label>
</div> </input>
<div class="input"> <div class="input">
<input id="user_password" type="password" required name="password" autocomplete="current-password" value="{{ .Password }}" placeholder="{{( pgettext "Password" "input" )}}"> <input id="user_password" type="password" required name="password" autocomplete="current-password" value="{{ .Password }}" placeholder="{{( pgettext "Password" "input" )}}">

View File

@ -102,16 +102,14 @@
<th scope="row">{{( pgettext "New Line" "title")}}</th> <th scope="row">{{( pgettext "New Line" "title")}}</th>
<td> <td>
<div class="input"> <div class="input">
<input form="newtax" type="text" name="name" id="tax_name" required="required" <input form="newtax" type="text" name="name" id="tax_name" required="required" placeholder="{{( pgettext "Tax name" "input" )}}">
placeholder="{{( pgettext "Tax name" "input" )}}">
<label for="tax_name">{{( pgettext "Tax name" "input" )}}</label> <label for="tax_name">{{( pgettext "Tax name" "input" )}}</label>
</div> </div>
</td> </td>
<td colspan="2"> <td colspan="2">
<div class="input"> <div class="input">
<input form="newtax" type="number" name="rate" id="tax_rate" min="-99" max="99" <input form="newtax" type="number" name="rate" id="tax_rate" min="-99" max="99" required="required" placeholder="{{( pgettext "Rate (%)" "input" )}}">
required="required" placeholder="{{( pgettext "Rate (%)" "input" )}}"> <label form="newtax" for="tax_rate">{{( pgettext "Rate (%)" "input" )}}</label>
<label for="tax_rate">{{( pgettext "Rate (%)" "input" )}}</label>
</div> </div>
</td> </td>
</tr> </tr>