Use I18nInput instead of L10nInput to translate carousels
This commit is contained in:
parent
3d0f7b0dc1
commit
b6cd2f7693
|
@ -53,7 +53,7 @@ func (h *AdminHandler) Handler(user *auth.User, company *auth.Company, conn *dat
|
||||||
case "new":
|
case "new":
|
||||||
switch r.Method {
|
switch r.Method {
|
||||||
case http.MethodGet:
|
case http.MethodGet:
|
||||||
f := newSlideForm(h.name)
|
f := newSlideForm(h.name, company)
|
||||||
f.MustRender(w, r, user, company)
|
f.MustRender(w, r, user, company)
|
||||||
default:
|
default:
|
||||||
httplib.MethodNotAllowed(w, r, http.MethodGet)
|
httplib.MethodNotAllowed(w, r, http.MethodGet)
|
||||||
|
@ -71,7 +71,7 @@ func (h *AdminHandler) Handler(user *auth.User, company *auth.Company, conn *dat
|
||||||
http.NotFound(w, r)
|
http.NotFound(w, r)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
f := newSlideForm(h.name)
|
f := newSlideForm(h.name, company)
|
||||||
if err := f.FillFromDatabase(r.Context(), conn, id); err != nil {
|
if err := f.FillFromDatabase(r.Context(), conn, id); err != nil {
|
||||||
if database.ErrorIsNotFound(err) {
|
if database.ErrorIsNotFound(err) {
|
||||||
http.NotFound(w, r)
|
http.NotFound(w, r)
|
||||||
|
@ -80,10 +80,9 @@ func (h *AdminHandler) Handler(user *auth.User, company *auth.Company, conn *dat
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
var langTag string
|
head, r.URL.Path = httplib.ShiftPath(r.URL.Path)
|
||||||
langTag, r.URL.Path = httplib.ShiftPath(r.URL.Path)
|
|
||||||
|
|
||||||
switch langTag {
|
switch head {
|
||||||
case "":
|
case "":
|
||||||
switch r.Method {
|
switch r.Method {
|
||||||
case http.MethodGet:
|
case http.MethodGet:
|
||||||
|
@ -96,23 +95,7 @@ func (h *AdminHandler) Handler(user *auth.User, company *auth.Company, conn *dat
|
||||||
httplib.MethodNotAllowed(w, r, http.MethodGet, http.MethodPut, http.MethodDelete)
|
httplib.MethodNotAllowed(w, r, http.MethodGet, http.MethodPut, http.MethodDelete)
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
loc, ok := h.locales.Get(langTag)
|
|
||||||
if !ok {
|
|
||||||
http.NotFound(w, r)
|
http.NotFound(w, r)
|
||||||
return
|
|
||||||
}
|
|
||||||
l10n := newSlideL10nForm(f, loc)
|
|
||||||
if err := l10n.FillFromDatabase(r.Context(), conn); err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
switch r.Method {
|
|
||||||
case http.MethodGet:
|
|
||||||
l10n.MustRender(w, r, user, company)
|
|
||||||
case http.MethodPut:
|
|
||||||
editSlideL10n(w, r, user, company, conn, l10n)
|
|
||||||
default:
|
|
||||||
httplib.MethodNotAllowed(w, r, http.MethodGet, http.MethodPut)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -184,13 +167,6 @@ func MustCollectSlides(ctx context.Context, company *auth.Company, conn *databas
|
||||||
type SlideEntry struct {
|
type SlideEntry struct {
|
||||||
Slide
|
Slide
|
||||||
ID int
|
ID int
|
||||||
Translations []*Translation
|
|
||||||
}
|
|
||||||
|
|
||||||
type Translation struct {
|
|
||||||
Language string
|
|
||||||
Endonym string
|
|
||||||
Missing bool
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func CollectSlideEntries(ctx context.Context, company *auth.Company, conn *database.Conn, carouselName string) ([]*SlideEntry, error) {
|
func CollectSlideEntries(ctx context.Context, company *auth.Company, conn *database.Conn, carouselName string) ([]*SlideEntry, error) {
|
||||||
|
@ -198,20 +174,11 @@ func CollectSlideEntries(ctx context.Context, company *auth.Company, conn *datab
|
||||||
select media_id
|
select media_id
|
||||||
, media.path
|
, media.path
|
||||||
, caption
|
, caption
|
||||||
, array_agg((lang_tag, endonym, not exists (select 1 from %[1]s_carousel_i18n as i18n where i18n.media_id = carousel.media_id and i18n.lang_tag = language.lang_tag)) order by endonym)
|
|
||||||
from %[1]s_carousel as carousel
|
from %[1]s_carousel as carousel
|
||||||
join media using (media_id)
|
join media using (media_id)
|
||||||
join company using (company_id)
|
where media.company_id = $1
|
||||||
, language
|
|
||||||
where lang_tag <> default_lang_tag
|
|
||||||
and language.selectable
|
|
||||||
and media.company_id = $1
|
|
||||||
group by media_id
|
|
||||||
, media.path
|
|
||||||
, position
|
|
||||||
, caption
|
|
||||||
order by position, caption
|
order by position, caption
|
||||||
`, carouselName), pgx.QueryResultFormats{pgx.BinaryFormatCode}, company.ID)
|
`, carouselName), company.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -220,17 +187,9 @@ func CollectSlideEntries(ctx context.Context, company *auth.Company, conn *datab
|
||||||
var slides []*SlideEntry
|
var slides []*SlideEntry
|
||||||
for rows.Next() {
|
for rows.Next() {
|
||||||
slide := &SlideEntry{}
|
slide := &SlideEntry{}
|
||||||
var translations database.RecordArray
|
if err = rows.Scan(&slide.ID, &slide.Media, &slide.Caption); err != nil {
|
||||||
if err = rows.Scan(&slide.ID, &slide.Media, &slide.Caption, &translations); err != nil {
|
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
for _, el := range translations.Elements {
|
|
||||||
slide.Translations = append(slide.Translations, &Translation{
|
|
||||||
el.Fields[0].Get().(string),
|
|
||||||
el.Fields[1].Get().(string),
|
|
||||||
el.Fields[2].Get().(bool),
|
|
||||||
})
|
|
||||||
}
|
|
||||||
slides = append(slides, slide)
|
slides = append(slides, slide)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -238,24 +197,47 @@ func CollectSlideEntries(ctx context.Context, company *auth.Company, conn *datab
|
||||||
}
|
}
|
||||||
|
|
||||||
func addSlide(w http.ResponseWriter, r *http.Request, user *auth.User, company *auth.Company, conn *database.Conn, carouselName string) {
|
func addSlide(w http.ResponseWriter, r *http.Request, user *auth.User, company *auth.Company, conn *database.Conn, carouselName string) {
|
||||||
f := newSlideForm(carouselName)
|
f := newSlideForm(carouselName, company)
|
||||||
f.process(w, r, user, company, conn, func(ctx context.Context) {
|
f.process(w, r, user, company, conn, func(ctx context.Context, tx *database.Tx) error {
|
||||||
conn.MustExec(ctx, fmt.Sprintf("select add_%s_carousel_slide($1, $2)", f.CarouselName), f.Media, f.Caption)
|
var err error
|
||||||
|
if f.ID, err = tx.GetInt(ctx, fmt.Sprintf("select add_%s_carousel_slide($1, $2)", f.CarouselName), f.Media, f.Caption[f.DefaultLang]); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return translateSlide(ctx, tx, company, f)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func editSlide(w http.ResponseWriter, r *http.Request, user *auth.User, company *auth.Company, conn *database.Conn, f *slideForm) {
|
func translateSlide(ctx context.Context, tx *database.Tx, company *auth.Company, f *slideForm) error {
|
||||||
f.process(w, r, user, company, conn, func(ctx context.Context) {
|
for lang := range company.Locales {
|
||||||
if f.ID == f.Media.Int() {
|
l := lang.String()
|
||||||
conn.MustExec(ctx, fmt.Sprintf("select add_%s_carousel_slide($1, $2)", f.CarouselName), f.Media, f.Caption)
|
if l == f.DefaultLang {
|
||||||
} else {
|
continue
|
||||||
tx := conn.MustBegin(ctx)
|
|
||||||
tx.MustExec(ctx, fmt.Sprintf("select add_%s_carousel_slide($1, $2)", f.CarouselName), f.Media, f.Caption)
|
|
||||||
tx.MustExec(ctx, fmt.Sprintf("update %[1]s_carousel set position = (select position from %[1]s_carousel where media_id = $2) where media_id = $1", f.CarouselName), f.Media, f.ID)
|
|
||||||
tx.MustExec(ctx, fmt.Sprintf("update %s_carousel_i18n set media_id = $1 where media_id = $2", f.CarouselName), f.Media, f.ID)
|
|
||||||
tx.MustExec(ctx, fmt.Sprintf("select remove_%s_carousel_slide($1)", f.CarouselName), f.ID)
|
|
||||||
tx.MustCommit(ctx)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if _, err := tx.Exec(ctx, fmt.Sprintf("select translate_%s_carousel_slide($1, $2, $3)", f.CarouselName), f.ID, l, f.Caption[l]); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func editSlide(w http.ResponseWriter, r *http.Request, user *auth.User, company *auth.Company, conn *database.Conn, f *slideForm) {
|
||||||
|
f.process(w, r, user, company, conn, func(ctx context.Context, tx *database.Tx) error {
|
||||||
|
if _, err := tx.Exec(ctx, fmt.Sprintf("select add_%s_carousel_slide($1, $2)", f.CarouselName), f.Media, f.Caption[f.DefaultLang]); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if f.ID != f.Media.Int() {
|
||||||
|
if _, err := tx.Exec(ctx, fmt.Sprintf("update %[1]s_carousel set position = (select position from %[1]s_carousel where media_id = $2) where media_id = $1", f.CarouselName), f.Media, f.ID); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if _, err := tx.Exec(ctx, fmt.Sprintf("update %s_carousel_i18n set media_id = $1 where media_id = $2", f.CarouselName), f.Media, f.ID); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if _, err := tx.Exec(ctx, fmt.Sprintf("select remove_%s_carousel_slide($1)", f.CarouselName), f.ID); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return translateSlide(ctx, tx, company, f)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -269,14 +251,16 @@ func (h *AdminHandler) deleteSlide(w http.ResponseWriter, r *http.Request, user
|
||||||
}
|
}
|
||||||
|
|
||||||
type slideForm struct {
|
type slideForm struct {
|
||||||
|
DefaultLang string
|
||||||
CarouselName string
|
CarouselName string
|
||||||
ID int
|
ID int
|
||||||
Media *form.Media
|
Media *form.Media
|
||||||
Caption *form.Input
|
Caption form.I18nInput
|
||||||
}
|
}
|
||||||
|
|
||||||
func newSlideForm(carouselName string) *slideForm {
|
func newSlideForm(carouselName string, company *auth.Company) *slideForm {
|
||||||
return &slideForm{
|
return &slideForm{
|
||||||
|
DefaultLang: company.DefaultLanguage.String(),
|
||||||
CarouselName: carouselName,
|
CarouselName: carouselName,
|
||||||
Media: &form.Media{
|
Media: &form.Media{
|
||||||
Input: &form.Input{
|
Input: &form.Input{
|
||||||
|
@ -285,24 +269,33 @@ func newSlideForm(carouselName string) *slideForm {
|
||||||
Label: locale.PgettextNoop("Slide image", "input"),
|
Label: locale.PgettextNoop("Slide image", "input"),
|
||||||
Prompt: locale.PgettextNoop("Set slide image", "action"),
|
Prompt: locale.PgettextNoop("Set slide image", "action"),
|
||||||
},
|
},
|
||||||
Caption: &form.Input{
|
Caption: form.NewI18nInput(company.Locales, "caption"),
|
||||||
Name: "caption",
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *slideForm) FillFromDatabase(ctx context.Context, conn *database.Conn, id int) error {
|
func (f *slideForm) FillFromDatabase(ctx context.Context, conn *database.Conn, id int) error {
|
||||||
f.ID = id
|
f.ID = id
|
||||||
|
var caption database.RecordArray
|
||||||
row := conn.QueryRow(ctx, fmt.Sprintf(`
|
row := conn.QueryRow(ctx, fmt.Sprintf(`
|
||||||
select caption
|
select slide.caption
|
||||||
, media_id::text
|
, media_id::text
|
||||||
from %s_carousel
|
, array_agg((lang_tag, i18n.caption))
|
||||||
|
from %[1]s_carousel as slide
|
||||||
|
left join %[1]s_carousel_i18n as i18n using (media_id)
|
||||||
where media_id = $1
|
where media_id = $1
|
||||||
`, f.CarouselName), id)
|
group by slide.caption
|
||||||
return row.Scan(&f.Caption.Val, &f.Media.Val)
|
, media_id
|
||||||
|
`, f.CarouselName), pgx.QueryResultFormats{pgx.BinaryFormatCode}, id)
|
||||||
|
if err := row.Scan(&f.Caption[f.DefaultLang].Val, &f.Media.Val, &caption); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if err := f.Caption.FillArray(caption); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *slideForm) process(w http.ResponseWriter, r *http.Request, user *auth.User, company *auth.Company, conn *database.Conn, act func(ctx context.Context)) {
|
func (f *slideForm) process(w http.ResponseWriter, r *http.Request, user *auth.User, company *auth.Company, conn *database.Conn, act func(ctx context.Context, tx *database.Tx) error) {
|
||||||
if err := f.Parse(r); err != nil {
|
if err := f.Parse(r); err != nil {
|
||||||
http.Error(w, err.Error(), http.StatusBadRequest)
|
http.Error(w, err.Error(), http.StatusBadRequest)
|
||||||
return
|
return
|
||||||
|
@ -320,7 +313,15 @@ func (f *slideForm) process(w http.ResponseWriter, r *http.Request, user *auth.U
|
||||||
f.MustRender(w, r, user, company)
|
f.MustRender(w, r, user, company)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
act(r.Context())
|
tx := conn.MustBegin(r.Context())
|
||||||
|
if err := act(r.Context(), tx); err == nil {
|
||||||
|
tx.MustCommit(r.Context())
|
||||||
|
} else {
|
||||||
|
if rErr := tx.Rollback(r.Context()); rErr != nil {
|
||||||
|
err = rErr
|
||||||
|
}
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
httplib.Redirect(w, r, "/admin/"+f.CarouselName, http.StatusSeeOther)
|
httplib.Redirect(w, r, "/admin/"+f.CarouselName, http.StatusSeeOther)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,82 +0,0 @@
|
||||||
/*
|
|
||||||
* SPDX-FileCopyrightText: 2023 jordi fita mas <jfita@peritasoft.com>
|
|
||||||
* SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
*/
|
|
||||||
|
|
||||||
package carousel
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"fmt"
|
|
||||||
"net/http"
|
|
||||||
|
|
||||||
"dev.tandem.ws/tandem/camper/pkg/auth"
|
|
||||||
"dev.tandem.ws/tandem/camper/pkg/database"
|
|
||||||
"dev.tandem.ws/tandem/camper/pkg/form"
|
|
||||||
httplib "dev.tandem.ws/tandem/camper/pkg/http"
|
|
||||||
"dev.tandem.ws/tandem/camper/pkg/locale"
|
|
||||||
"dev.tandem.ws/tandem/camper/pkg/template"
|
|
||||||
)
|
|
||||||
|
|
||||||
type slideL10nForm struct {
|
|
||||||
Locale *locale.Locale
|
|
||||||
CarouselName string
|
|
||||||
ID int
|
|
||||||
Caption *form.L10nInput
|
|
||||||
}
|
|
||||||
|
|
||||||
func newSlideL10nForm(f *slideForm, loc *locale.Locale) *slideL10nForm {
|
|
||||||
return &slideL10nForm{
|
|
||||||
Locale: loc,
|
|
||||||
CarouselName: f.CarouselName,
|
|
||||||
ID: f.ID,
|
|
||||||
Caption: f.Caption.L10nInput(),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (l10n *slideL10nForm) FillFromDatabase(ctx context.Context, conn *database.Conn) error {
|
|
||||||
row := conn.QueryRow(ctx, fmt.Sprintf(`
|
|
||||||
select coalesce(i18n.caption, '') as l10n_caption
|
|
||||||
from %[1]s_carousel as carousel
|
|
||||||
left join %[1]s_carousel_i18n as i18n on carousel.media_id = i18n.media_id and i18n.lang_tag = $1
|
|
||||||
where carousel.media_id = $2
|
|
||||||
`, l10n.CarouselName), l10n.Locale.Language, l10n.ID)
|
|
||||||
return row.Scan(&l10n.Caption.Val)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (l10n *slideL10nForm) MustRender(w http.ResponseWriter, r *http.Request, user *auth.User, company *auth.Company) {
|
|
||||||
template.MustRenderAdmin(w, r, user, company, "carousel/l10n.gohtml", l10n)
|
|
||||||
}
|
|
||||||
|
|
||||||
func editSlideL10n(w http.ResponseWriter, r *http.Request, user *auth.User, company *auth.Company, conn *database.Conn, l10n *slideL10nForm) {
|
|
||||||
if err := l10n.Parse(r); err != nil {
|
|
||||||
http.Error(w, err.Error(), http.StatusBadRequest)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if err := user.VerifyCSRFToken(r); err != nil {
|
|
||||||
http.Error(w, err.Error(), http.StatusForbidden)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if !l10n.Valid(user.Locale) {
|
|
||||||
if !httplib.IsHTMxRequest(r) {
|
|
||||||
w.WriteHeader(http.StatusUnprocessableEntity)
|
|
||||||
}
|
|
||||||
l10n.MustRender(w, r, user, company)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
conn.MustExec(r.Context(), fmt.Sprintf("select translate_%s_carousel_slide($1, $2, $3)", l10n.CarouselName), l10n.ID, l10n.Locale.Language, l10n.Caption)
|
|
||||||
httplib.Redirect(w, r, "/admin/"+l10n.CarouselName, http.StatusSeeOther)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (l10n *slideL10nForm) Parse(r *http.Request) error {
|
|
||||||
if err := r.ParseForm(); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
l10n.Caption.FillValue(r)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (l10n *slideL10nForm) Valid(l *locale.Locale) bool {
|
|
||||||
v := form.NewValidator(l)
|
|
||||||
return v.AllOK
|
|
||||||
}
|
|
100
po/ca.po
100
po/ca.po
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: camper\n"
|
"Project-Id-Version: camper\n"
|
||||||
"Report-Msgid-Bugs-To: jordi@tandem.blog\n"
|
"Report-Msgid-Bugs-To: jordi@tandem.blog\n"
|
||||||
"POT-Creation-Date: 2024-01-10 21:49+0100\n"
|
"POT-Creation-Date: 2024-01-12 19:19+0100\n"
|
||||||
"PO-Revision-Date: 2023-07-22 23:45+0200\n"
|
"PO-Revision-Date: 2023-07-22 23:45+0200\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"
|
||||||
|
@ -44,7 +44,7 @@ msgstr "Ha fallat el pagament"
|
||||||
#: web/templates/public/services.gohtml:6
|
#: web/templates/public/services.gohtml:6
|
||||||
#: web/templates/public/services.gohtml:15
|
#: web/templates/public/services.gohtml:15
|
||||||
#: web/templates/public/layout.gohtml:66 web/templates/public/layout.gohtml:94
|
#: web/templates/public/layout.gohtml:66 web/templates/public/layout.gohtml:94
|
||||||
#: web/templates/admin/services/index.gohtml:66
|
#: web/templates/admin/services/index.gohtml:56
|
||||||
msgctxt "title"
|
msgctxt "title"
|
||||||
msgid "Services"
|
msgid "Services"
|
||||||
msgstr "Serveis"
|
msgstr "Serveis"
|
||||||
|
@ -436,7 +436,7 @@ msgid "Content"
|
||||||
msgstr "Contingut"
|
msgstr "Contingut"
|
||||||
|
|
||||||
#: web/templates/admin/legal/form.gohtml:84
|
#: web/templates/admin/legal/form.gohtml:84
|
||||||
#: web/templates/admin/carousel/form.gohtml:47
|
#: web/templates/admin/carousel/form.gohtml:52
|
||||||
#: web/templates/admin/campsite/feature/form.gohtml:67
|
#: web/templates/admin/campsite/feature/form.gohtml:67
|
||||||
#: web/templates/admin/campsite/carousel/form.gohtml:52
|
#: web/templates/admin/campsite/carousel/form.gohtml:52
|
||||||
#: web/templates/admin/campsite/form.gohtml:70
|
#: web/templates/admin/campsite/form.gohtml:70
|
||||||
|
@ -450,7 +450,7 @@ msgid "Update"
|
||||||
msgstr "Actualitza"
|
msgstr "Actualitza"
|
||||||
|
|
||||||
#: web/templates/admin/legal/form.gohtml:86
|
#: web/templates/admin/legal/form.gohtml:86
|
||||||
#: web/templates/admin/carousel/form.gohtml:49
|
#: web/templates/admin/carousel/form.gohtml:54
|
||||||
#: web/templates/admin/campsite/feature/form.gohtml:69
|
#: web/templates/admin/campsite/feature/form.gohtml:69
|
||||||
#: web/templates/admin/campsite/carousel/form.gohtml:54
|
#: web/templates/admin/campsite/carousel/form.gohtml:54
|
||||||
#: web/templates/admin/campsite/form.gohtml:72
|
#: web/templates/admin/campsite/form.gohtml:72
|
||||||
|
@ -500,40 +500,11 @@ msgid "New Carousel Slide"
|
||||||
msgstr "Nova diapositiva del carrusel"
|
msgstr "Nova diapositiva del carrusel"
|
||||||
|
|
||||||
#: web/templates/admin/carousel/form.gohtml:37
|
#: web/templates/admin/carousel/form.gohtml:37
|
||||||
#: web/templates/admin/carousel/l10n.gohtml:20
|
|
||||||
#: web/templates/admin/campsite/carousel/form.gohtml:37
|
#: web/templates/admin/campsite/carousel/form.gohtml:37
|
||||||
msgctxt "input"
|
msgctxt "input"
|
||||||
msgid "Caption"
|
msgid "Caption"
|
||||||
msgstr "Llegenda"
|
msgstr "Llegenda"
|
||||||
|
|
||||||
#: web/templates/admin/carousel/l10n.gohtml:7
|
|
||||||
#: web/templates/admin/carousel/l10n.gohtml:14
|
|
||||||
msgctxt "title"
|
|
||||||
msgid "Translate Carousel Slide to %s"
|
|
||||||
msgstr "Traducció de la diapositiva del carrusel a %s"
|
|
||||||
|
|
||||||
#: web/templates/admin/carousel/l10n.gohtml:21
|
|
||||||
#: web/templates/admin/season/l10n.gohtml:21
|
|
||||||
#: web/templates/admin/services/l10n.gohtml:21
|
|
||||||
#: web/templates/admin/services/l10n.gohtml:33
|
|
||||||
msgid "Source:"
|
|
||||||
msgstr "Origen:"
|
|
||||||
|
|
||||||
#: web/templates/admin/carousel/l10n.gohtml:23
|
|
||||||
#: web/templates/admin/season/l10n.gohtml:23
|
|
||||||
#: web/templates/admin/services/l10n.gohtml:23
|
|
||||||
#: web/templates/admin/services/l10n.gohtml:36
|
|
||||||
msgctxt "input"
|
|
||||||
msgid "Translation:"
|
|
||||||
msgstr "Traducció:"
|
|
||||||
|
|
||||||
#: web/templates/admin/carousel/l10n.gohtml:32
|
|
||||||
#: web/templates/admin/season/l10n.gohtml:32
|
|
||||||
#: web/templates/admin/services/l10n.gohtml:45
|
|
||||||
msgctxt "action"
|
|
||||||
msgid "Translate"
|
|
||||||
msgstr "Tradueix"
|
|
||||||
|
|
||||||
#: web/templates/admin/location.gohtml:6 web/templates/admin/location.gohtml:12
|
#: web/templates/admin/location.gohtml:6 web/templates/admin/location.gohtml:12
|
||||||
msgctxt "title"
|
msgctxt "title"
|
||||||
msgid "Location Settings"
|
msgid "Location Settings"
|
||||||
|
@ -634,30 +605,30 @@ msgid "Caption"
|
||||||
msgstr "Llegenda"
|
msgstr "Llegenda"
|
||||||
|
|
||||||
#: web/templates/admin/campsite/carousel/index.gohtml:27
|
#: web/templates/admin/campsite/carousel/index.gohtml:27
|
||||||
#: web/templates/admin/services/index.gohtml:28
|
#: web/templates/admin/services/index.gohtml:27
|
||||||
#: web/templates/admin/services/index.gohtml:74
|
#: web/templates/admin/services/index.gohtml:64
|
||||||
#: web/templates/admin/home/index.gohtml:28
|
#: web/templates/admin/home/index.gohtml:27
|
||||||
msgctxt "header"
|
msgctxt "header"
|
||||||
msgid "Actions"
|
msgid "Actions"
|
||||||
msgstr "Accions"
|
msgstr "Accions"
|
||||||
|
|
||||||
#: web/templates/admin/campsite/carousel/index.gohtml:31
|
#: web/templates/admin/campsite/carousel/index.gohtml:31
|
||||||
#: web/templates/admin/services/index.gohtml:32
|
#: web/templates/admin/services/index.gohtml:31
|
||||||
#: web/templates/admin/home/index.gohtml:32
|
#: web/templates/admin/home/index.gohtml:31
|
||||||
msgid "Are you sure you wish to delete this slide?"
|
msgid "Are you sure you wish to delete this slide?"
|
||||||
msgstr "Esteu segur de voler esborrar aquesta diapositiva?"
|
msgstr "Esteu segur de voler esborrar aquesta diapositiva?"
|
||||||
|
|
||||||
#: web/templates/admin/campsite/carousel/index.gohtml:45
|
#: web/templates/admin/campsite/carousel/index.gohtml:45
|
||||||
#: web/templates/admin/services/index.gohtml:54
|
#: web/templates/admin/services/index.gohtml:44
|
||||||
#: web/templates/admin/services/index.gohtml:93
|
#: web/templates/admin/services/index.gohtml:83
|
||||||
#: web/templates/admin/home/index.gohtml:54
|
#: web/templates/admin/home/index.gohtml:44
|
||||||
msgctxt "action"
|
msgctxt "action"
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Esborra"
|
msgstr "Esborra"
|
||||||
|
|
||||||
#: web/templates/admin/campsite/carousel/index.gohtml:54
|
#: web/templates/admin/campsite/carousel/index.gohtml:54
|
||||||
#: web/templates/admin/services/index.gohtml:63
|
#: web/templates/admin/services/index.gohtml:53
|
||||||
#: web/templates/admin/home/index.gohtml:63
|
#: web/templates/admin/home/index.gohtml:53
|
||||||
msgid "No slides added yet."
|
msgid "No slides added yet."
|
||||||
msgstr "No s’ha afegit cap diapositiva encara."
|
msgstr "No s’ha afegit cap diapositiva encara."
|
||||||
|
|
||||||
|
@ -909,9 +880,7 @@ msgid "Color"
|
||||||
msgstr "Color"
|
msgstr "Color"
|
||||||
|
|
||||||
#: web/templates/admin/season/index.gohtml:27
|
#: web/templates/admin/season/index.gohtml:27
|
||||||
#: web/templates/admin/services/index.gohtml:27
|
#: web/templates/admin/services/index.gohtml:63
|
||||||
#: web/templates/admin/services/index.gohtml:73
|
|
||||||
#: web/templates/admin/home/index.gohtml:27
|
|
||||||
msgctxt "header"
|
msgctxt "header"
|
||||||
msgid "Translations"
|
msgid "Translations"
|
||||||
msgstr "Traduccions"
|
msgstr "Traduccions"
|
||||||
|
@ -926,6 +895,25 @@ msgctxt "title"
|
||||||
msgid "Translate Season to %s"
|
msgid "Translate Season to %s"
|
||||||
msgstr "Traducció de la temporada a %s"
|
msgstr "Traducció de la temporada a %s"
|
||||||
|
|
||||||
|
#: web/templates/admin/season/l10n.gohtml:21
|
||||||
|
#: web/templates/admin/services/l10n.gohtml:21
|
||||||
|
#: web/templates/admin/services/l10n.gohtml:33
|
||||||
|
msgid "Source:"
|
||||||
|
msgstr "Origen:"
|
||||||
|
|
||||||
|
#: web/templates/admin/season/l10n.gohtml:23
|
||||||
|
#: web/templates/admin/services/l10n.gohtml:23
|
||||||
|
#: web/templates/admin/services/l10n.gohtml:36
|
||||||
|
msgctxt "input"
|
||||||
|
msgid "Translation:"
|
||||||
|
msgstr "Traducció:"
|
||||||
|
|
||||||
|
#: web/templates/admin/season/l10n.gohtml:32
|
||||||
|
#: web/templates/admin/services/l10n.gohtml:45
|
||||||
|
msgctxt "action"
|
||||||
|
msgid "Translate"
|
||||||
|
msgstr "Tradueix"
|
||||||
|
|
||||||
#: web/templates/admin/season/calendar.gohtml:49
|
#: web/templates/admin/season/calendar.gohtml:49
|
||||||
#: web/templates/admin/media/picker.gohtml:61
|
#: web/templates/admin/media/picker.gohtml:61
|
||||||
msgctxt "action"
|
msgctxt "action"
|
||||||
|
@ -1013,21 +1001,21 @@ msgctxt "title"
|
||||||
msgid "Carousel"
|
msgid "Carousel"
|
||||||
msgstr "Carrusel"
|
msgstr "Carrusel"
|
||||||
|
|
||||||
#: web/templates/admin/services/index.gohtml:67
|
#: web/templates/admin/services/index.gohtml:57
|
||||||
msgctxt "action"
|
msgctxt "action"
|
||||||
msgid "Add service"
|
msgid "Add service"
|
||||||
msgstr "Afegeix servei"
|
msgstr "Afegeix servei"
|
||||||
|
|
||||||
#: web/templates/admin/services/index.gohtml:72
|
#: web/templates/admin/services/index.gohtml:62
|
||||||
msgctxt "header"
|
msgctxt "header"
|
||||||
msgid "Service"
|
msgid "Service"
|
||||||
msgstr "Servei"
|
msgstr "Servei"
|
||||||
|
|
||||||
#: web/templates/admin/services/index.gohtml:78
|
#: web/templates/admin/services/index.gohtml:68
|
||||||
msgid "Are you sure you wish to delete this service?"
|
msgid "Are you sure you wish to delete this service?"
|
||||||
msgstr "Esteu segur de voler esborrar aquest servei?"
|
msgstr "Esteu segur de voler esborrar aquest servei?"
|
||||||
|
|
||||||
#: web/templates/admin/services/index.gohtml:101
|
#: web/templates/admin/services/index.gohtml:91
|
||||||
msgid "No services added yet."
|
msgid "No services added yet."
|
||||||
msgstr "No s’ha afegit cap servei encara."
|
msgstr "No s’ha afegit cap servei encara."
|
||||||
|
|
||||||
|
@ -1234,21 +1222,21 @@ msgstr "No podeu deixar el nom en blanc."
|
||||||
msgid "Name must have at least one letter."
|
msgid "Name must have at least one letter."
|
||||||
msgstr "El nom ha de tenir com a mínim una lletra."
|
msgstr "El nom ha de tenir com a mínim una lletra."
|
||||||
|
|
||||||
#: pkg/carousel/admin.go:285 pkg/campsite/types/carousel.go:223
|
#: pkg/carousel/admin.go:269 pkg/campsite/types/carousel.go:223
|
||||||
msgctxt "input"
|
msgctxt "input"
|
||||||
msgid "Slide image"
|
msgid "Slide image"
|
||||||
msgstr "Imatge de la diapositiva"
|
msgstr "Imatge de la diapositiva"
|
||||||
|
|
||||||
#: pkg/carousel/admin.go:286 pkg/campsite/types/carousel.go:224
|
#: pkg/carousel/admin.go:270 pkg/campsite/types/carousel.go:224
|
||||||
msgctxt "action"
|
msgctxt "action"
|
||||||
msgid "Set slide image"
|
msgid "Set slide image"
|
||||||
msgstr "Estableix la imatge de la diapositiva"
|
msgstr "Estableix la imatge de la diapositiva"
|
||||||
|
|
||||||
#: pkg/carousel/admin.go:338 pkg/campsite/types/carousel.go:297
|
#: pkg/carousel/admin.go:339 pkg/campsite/types/carousel.go:297
|
||||||
msgid "Slide image can not be empty."
|
msgid "Slide image can not be empty."
|
||||||
msgstr "No podeu deixar la imatge de la diapositiva en blanc."
|
msgstr "No podeu deixar la imatge de la diapositiva en blanc."
|
||||||
|
|
||||||
#: pkg/carousel/admin.go:339 pkg/campsite/types/carousel.go:298
|
#: pkg/carousel/admin.go:340 pkg/campsite/types/carousel.go:298
|
||||||
msgid "Slide image must be an image media type."
|
msgid "Slide image must be an image media type."
|
||||||
msgstr "La imatge de la diapositiva ha de ser un mèdia de tipus imatge."
|
msgstr "La imatge de la diapositiva ha de ser un mèdia de tipus imatge."
|
||||||
|
|
||||||
|
@ -1650,6 +1638,10 @@ msgstr "El valor de %s ha de ser com a mínim %d."
|
||||||
msgid "%s must be at most %d."
|
msgid "%s must be at most %d."
|
||||||
msgstr "El valor de %s ha de ser com a màxim %d."
|
msgstr "El valor de %s ha de ser com a màxim %d."
|
||||||
|
|
||||||
|
#~ msgctxt "title"
|
||||||
|
#~ msgid "Translate Carousel Slide to %s"
|
||||||
|
#~ msgstr "Traducció de la diapositiva del carrusel a %s"
|
||||||
|
|
||||||
#~ msgctxt "title"
|
#~ msgctxt "title"
|
||||||
#~ msgid "Translate Campsite Type Feature to %s"
|
#~ msgid "Translate Campsite Type Feature to %s"
|
||||||
#~ msgstr "Traducció de la característica del tipus d’allotjament a %s"
|
#~ msgstr "Traducció de la característica del tipus d’allotjament a %s"
|
||||||
|
|
100
po/es.po
100
po/es.po
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: camper\n"
|
"Project-Id-Version: camper\n"
|
||||||
"Report-Msgid-Bugs-To: jordi@tandem.blog\n"
|
"Report-Msgid-Bugs-To: jordi@tandem.blog\n"
|
||||||
"POT-Creation-Date: 2024-01-10 21:49+0100\n"
|
"POT-Creation-Date: 2024-01-12 19:19+0100\n"
|
||||||
"PO-Revision-Date: 2023-07-22 23:46+0200\n"
|
"PO-Revision-Date: 2023-07-22 23:46+0200\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"
|
||||||
|
@ -44,7 +44,7 @@ msgstr "Pago fallido"
|
||||||
#: web/templates/public/services.gohtml:6
|
#: web/templates/public/services.gohtml:6
|
||||||
#: web/templates/public/services.gohtml:15
|
#: web/templates/public/services.gohtml:15
|
||||||
#: web/templates/public/layout.gohtml:66 web/templates/public/layout.gohtml:94
|
#: web/templates/public/layout.gohtml:66 web/templates/public/layout.gohtml:94
|
||||||
#: web/templates/admin/services/index.gohtml:66
|
#: web/templates/admin/services/index.gohtml:56
|
||||||
msgctxt "title"
|
msgctxt "title"
|
||||||
msgid "Services"
|
msgid "Services"
|
||||||
msgstr "Servicios"
|
msgstr "Servicios"
|
||||||
|
@ -436,7 +436,7 @@ msgid "Content"
|
||||||
msgstr "Contenido"
|
msgstr "Contenido"
|
||||||
|
|
||||||
#: web/templates/admin/legal/form.gohtml:84
|
#: web/templates/admin/legal/form.gohtml:84
|
||||||
#: web/templates/admin/carousel/form.gohtml:47
|
#: web/templates/admin/carousel/form.gohtml:52
|
||||||
#: web/templates/admin/campsite/feature/form.gohtml:67
|
#: web/templates/admin/campsite/feature/form.gohtml:67
|
||||||
#: web/templates/admin/campsite/carousel/form.gohtml:52
|
#: web/templates/admin/campsite/carousel/form.gohtml:52
|
||||||
#: web/templates/admin/campsite/form.gohtml:70
|
#: web/templates/admin/campsite/form.gohtml:70
|
||||||
|
@ -450,7 +450,7 @@ msgid "Update"
|
||||||
msgstr "Actualizar"
|
msgstr "Actualizar"
|
||||||
|
|
||||||
#: web/templates/admin/legal/form.gohtml:86
|
#: web/templates/admin/legal/form.gohtml:86
|
||||||
#: web/templates/admin/carousel/form.gohtml:49
|
#: web/templates/admin/carousel/form.gohtml:54
|
||||||
#: web/templates/admin/campsite/feature/form.gohtml:69
|
#: web/templates/admin/campsite/feature/form.gohtml:69
|
||||||
#: web/templates/admin/campsite/carousel/form.gohtml:54
|
#: web/templates/admin/campsite/carousel/form.gohtml:54
|
||||||
#: web/templates/admin/campsite/form.gohtml:72
|
#: web/templates/admin/campsite/form.gohtml:72
|
||||||
|
@ -500,40 +500,11 @@ msgid "New Carousel Slide"
|
||||||
msgstr "Nueva diapositiva del carrusel"
|
msgstr "Nueva diapositiva del carrusel"
|
||||||
|
|
||||||
#: web/templates/admin/carousel/form.gohtml:37
|
#: web/templates/admin/carousel/form.gohtml:37
|
||||||
#: web/templates/admin/carousel/l10n.gohtml:20
|
|
||||||
#: web/templates/admin/campsite/carousel/form.gohtml:37
|
#: web/templates/admin/campsite/carousel/form.gohtml:37
|
||||||
msgctxt "input"
|
msgctxt "input"
|
||||||
msgid "Caption"
|
msgid "Caption"
|
||||||
msgstr "Leyenda"
|
msgstr "Leyenda"
|
||||||
|
|
||||||
#: web/templates/admin/carousel/l10n.gohtml:7
|
|
||||||
#: web/templates/admin/carousel/l10n.gohtml:14
|
|
||||||
msgctxt "title"
|
|
||||||
msgid "Translate Carousel Slide to %s"
|
|
||||||
msgstr "Traducción de la diapositiva de carrusel a %s"
|
|
||||||
|
|
||||||
#: web/templates/admin/carousel/l10n.gohtml:21
|
|
||||||
#: web/templates/admin/season/l10n.gohtml:21
|
|
||||||
#: web/templates/admin/services/l10n.gohtml:21
|
|
||||||
#: web/templates/admin/services/l10n.gohtml:33
|
|
||||||
msgid "Source:"
|
|
||||||
msgstr "Origen:"
|
|
||||||
|
|
||||||
#: web/templates/admin/carousel/l10n.gohtml:23
|
|
||||||
#: web/templates/admin/season/l10n.gohtml:23
|
|
||||||
#: web/templates/admin/services/l10n.gohtml:23
|
|
||||||
#: web/templates/admin/services/l10n.gohtml:36
|
|
||||||
msgctxt "input"
|
|
||||||
msgid "Translation:"
|
|
||||||
msgstr "Traducción"
|
|
||||||
|
|
||||||
#: web/templates/admin/carousel/l10n.gohtml:32
|
|
||||||
#: web/templates/admin/season/l10n.gohtml:32
|
|
||||||
#: web/templates/admin/services/l10n.gohtml:45
|
|
||||||
msgctxt "action"
|
|
||||||
msgid "Translate"
|
|
||||||
msgstr "Traducir"
|
|
||||||
|
|
||||||
#: web/templates/admin/location.gohtml:6 web/templates/admin/location.gohtml:12
|
#: web/templates/admin/location.gohtml:6 web/templates/admin/location.gohtml:12
|
||||||
msgctxt "title"
|
msgctxt "title"
|
||||||
msgid "Location Settings"
|
msgid "Location Settings"
|
||||||
|
@ -634,30 +605,30 @@ msgid "Caption"
|
||||||
msgstr "Leyenda"
|
msgstr "Leyenda"
|
||||||
|
|
||||||
#: web/templates/admin/campsite/carousel/index.gohtml:27
|
#: web/templates/admin/campsite/carousel/index.gohtml:27
|
||||||
#: web/templates/admin/services/index.gohtml:28
|
#: web/templates/admin/services/index.gohtml:27
|
||||||
#: web/templates/admin/services/index.gohtml:74
|
#: web/templates/admin/services/index.gohtml:64
|
||||||
#: web/templates/admin/home/index.gohtml:28
|
#: web/templates/admin/home/index.gohtml:27
|
||||||
msgctxt "header"
|
msgctxt "header"
|
||||||
msgid "Actions"
|
msgid "Actions"
|
||||||
msgstr "Acciones"
|
msgstr "Acciones"
|
||||||
|
|
||||||
#: web/templates/admin/campsite/carousel/index.gohtml:31
|
#: web/templates/admin/campsite/carousel/index.gohtml:31
|
||||||
#: web/templates/admin/services/index.gohtml:32
|
#: web/templates/admin/services/index.gohtml:31
|
||||||
#: web/templates/admin/home/index.gohtml:32
|
#: web/templates/admin/home/index.gohtml:31
|
||||||
msgid "Are you sure you wish to delete this slide?"
|
msgid "Are you sure you wish to delete this slide?"
|
||||||
msgstr "¿Estáis seguro de querer borrar esta diapositiva?"
|
msgstr "¿Estáis seguro de querer borrar esta diapositiva?"
|
||||||
|
|
||||||
#: web/templates/admin/campsite/carousel/index.gohtml:45
|
#: web/templates/admin/campsite/carousel/index.gohtml:45
|
||||||
#: web/templates/admin/services/index.gohtml:54
|
#: web/templates/admin/services/index.gohtml:44
|
||||||
#: web/templates/admin/services/index.gohtml:93
|
#: web/templates/admin/services/index.gohtml:83
|
||||||
#: web/templates/admin/home/index.gohtml:54
|
#: web/templates/admin/home/index.gohtml:44
|
||||||
msgctxt "action"
|
msgctxt "action"
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Borrar"
|
msgstr "Borrar"
|
||||||
|
|
||||||
#: web/templates/admin/campsite/carousel/index.gohtml:54
|
#: web/templates/admin/campsite/carousel/index.gohtml:54
|
||||||
#: web/templates/admin/services/index.gohtml:63
|
#: web/templates/admin/services/index.gohtml:53
|
||||||
#: web/templates/admin/home/index.gohtml:63
|
#: web/templates/admin/home/index.gohtml:53
|
||||||
msgid "No slides added yet."
|
msgid "No slides added yet."
|
||||||
msgstr "No se ha añadido ninguna diapositiva todavía."
|
msgstr "No se ha añadido ninguna diapositiva todavía."
|
||||||
|
|
||||||
|
@ -909,9 +880,7 @@ msgid "Color"
|
||||||
msgstr "Color"
|
msgstr "Color"
|
||||||
|
|
||||||
#: web/templates/admin/season/index.gohtml:27
|
#: web/templates/admin/season/index.gohtml:27
|
||||||
#: web/templates/admin/services/index.gohtml:27
|
#: web/templates/admin/services/index.gohtml:63
|
||||||
#: web/templates/admin/services/index.gohtml:73
|
|
||||||
#: web/templates/admin/home/index.gohtml:27
|
|
||||||
msgctxt "header"
|
msgctxt "header"
|
||||||
msgid "Translations"
|
msgid "Translations"
|
||||||
msgstr "Traducciones"
|
msgstr "Traducciones"
|
||||||
|
@ -926,6 +895,25 @@ msgctxt "title"
|
||||||
msgid "Translate Season to %s"
|
msgid "Translate Season to %s"
|
||||||
msgstr "Traducción de la temporada a %s"
|
msgstr "Traducción de la temporada a %s"
|
||||||
|
|
||||||
|
#: web/templates/admin/season/l10n.gohtml:21
|
||||||
|
#: web/templates/admin/services/l10n.gohtml:21
|
||||||
|
#: web/templates/admin/services/l10n.gohtml:33
|
||||||
|
msgid "Source:"
|
||||||
|
msgstr "Origen:"
|
||||||
|
|
||||||
|
#: web/templates/admin/season/l10n.gohtml:23
|
||||||
|
#: web/templates/admin/services/l10n.gohtml:23
|
||||||
|
#: web/templates/admin/services/l10n.gohtml:36
|
||||||
|
msgctxt "input"
|
||||||
|
msgid "Translation:"
|
||||||
|
msgstr "Traducción"
|
||||||
|
|
||||||
|
#: web/templates/admin/season/l10n.gohtml:32
|
||||||
|
#: web/templates/admin/services/l10n.gohtml:45
|
||||||
|
msgctxt "action"
|
||||||
|
msgid "Translate"
|
||||||
|
msgstr "Traducir"
|
||||||
|
|
||||||
#: web/templates/admin/season/calendar.gohtml:49
|
#: web/templates/admin/season/calendar.gohtml:49
|
||||||
#: web/templates/admin/media/picker.gohtml:61
|
#: web/templates/admin/media/picker.gohtml:61
|
||||||
msgctxt "action"
|
msgctxt "action"
|
||||||
|
@ -1013,21 +1001,21 @@ msgctxt "title"
|
||||||
msgid "Carousel"
|
msgid "Carousel"
|
||||||
msgstr "Carrusel"
|
msgstr "Carrusel"
|
||||||
|
|
||||||
#: web/templates/admin/services/index.gohtml:67
|
#: web/templates/admin/services/index.gohtml:57
|
||||||
msgctxt "action"
|
msgctxt "action"
|
||||||
msgid "Add service"
|
msgid "Add service"
|
||||||
msgstr "Añadir servicio"
|
msgstr "Añadir servicio"
|
||||||
|
|
||||||
#: web/templates/admin/services/index.gohtml:72
|
#: web/templates/admin/services/index.gohtml:62
|
||||||
msgctxt "header"
|
msgctxt "header"
|
||||||
msgid "Service"
|
msgid "Service"
|
||||||
msgstr "Servicio"
|
msgstr "Servicio"
|
||||||
|
|
||||||
#: web/templates/admin/services/index.gohtml:78
|
#: web/templates/admin/services/index.gohtml:68
|
||||||
msgid "Are you sure you wish to delete this service?"
|
msgid "Are you sure you wish to delete this service?"
|
||||||
msgstr "¿Estáis seguro de querer borrar este servicio?"
|
msgstr "¿Estáis seguro de querer borrar este servicio?"
|
||||||
|
|
||||||
#: web/templates/admin/services/index.gohtml:101
|
#: web/templates/admin/services/index.gohtml:91
|
||||||
msgid "No services added yet."
|
msgid "No services added yet."
|
||||||
msgstr "No se ha añadido ningún servicio todavía."
|
msgstr "No se ha añadido ningún servicio todavía."
|
||||||
|
|
||||||
|
@ -1234,21 +1222,21 @@ msgstr "No podéis dejar el nombre en blanco."
|
||||||
msgid "Name must have at least one letter."
|
msgid "Name must have at least one letter."
|
||||||
msgstr "El nombre tiene que tener como mínimo una letra."
|
msgstr "El nombre tiene que tener como mínimo una letra."
|
||||||
|
|
||||||
#: pkg/carousel/admin.go:285 pkg/campsite/types/carousel.go:223
|
#: pkg/carousel/admin.go:269 pkg/campsite/types/carousel.go:223
|
||||||
msgctxt "input"
|
msgctxt "input"
|
||||||
msgid "Slide image"
|
msgid "Slide image"
|
||||||
msgstr "Imagen de la diapositiva"
|
msgstr "Imagen de la diapositiva"
|
||||||
|
|
||||||
#: pkg/carousel/admin.go:286 pkg/campsite/types/carousel.go:224
|
#: pkg/carousel/admin.go:270 pkg/campsite/types/carousel.go:224
|
||||||
msgctxt "action"
|
msgctxt "action"
|
||||||
msgid "Set slide image"
|
msgid "Set slide image"
|
||||||
msgstr "Establecer la imagen de la diapositiva"
|
msgstr "Establecer la imagen de la diapositiva"
|
||||||
|
|
||||||
#: pkg/carousel/admin.go:338 pkg/campsite/types/carousel.go:297
|
#: pkg/carousel/admin.go:339 pkg/campsite/types/carousel.go:297
|
||||||
msgid "Slide image can not be empty."
|
msgid "Slide image can not be empty."
|
||||||
msgstr "No podéis dejar la imagen de la diapositiva en blanco."
|
msgstr "No podéis dejar la imagen de la diapositiva en blanco."
|
||||||
|
|
||||||
#: pkg/carousel/admin.go:339 pkg/campsite/types/carousel.go:298
|
#: pkg/carousel/admin.go:340 pkg/campsite/types/carousel.go:298
|
||||||
msgid "Slide image must be an image media type."
|
msgid "Slide image must be an image media type."
|
||||||
msgstr "La imagen de la diapositiva tiene que ser un medio de tipo imagen."
|
msgstr "La imagen de la diapositiva tiene que ser un medio de tipo imagen."
|
||||||
|
|
||||||
|
@ -1650,6 +1638,10 @@ msgstr "%s tiene que ser como mínimo %d."
|
||||||
msgid "%s must be at most %d."
|
msgid "%s must be at most %d."
|
||||||
msgstr "%s tiene que ser como máximo %d"
|
msgstr "%s tiene que ser como máximo %d"
|
||||||
|
|
||||||
|
#~ msgctxt "title"
|
||||||
|
#~ msgid "Translate Carousel Slide to %s"
|
||||||
|
#~ msgstr "Traducción de la diapositiva de carrusel a %s"
|
||||||
|
|
||||||
#~ msgctxt "title"
|
#~ msgctxt "title"
|
||||||
#~ msgid "Translate Campsite Type Feature to %s"
|
#~ msgid "Translate Campsite Type Feature to %s"
|
||||||
#~ msgstr "Traducción de la característica del tipo de alojamiento a %s"
|
#~ msgstr "Traducción de la característica del tipo de alojamiento a %s"
|
||||||
|
|
100
po/fr.po
100
po/fr.po
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: camper\n"
|
"Project-Id-Version: camper\n"
|
||||||
"Report-Msgid-Bugs-To: jordi@tandem.blog\n"
|
"Report-Msgid-Bugs-To: jordi@tandem.blog\n"
|
||||||
"POT-Creation-Date: 2024-01-10 21:49+0100\n"
|
"POT-Creation-Date: 2024-01-12 19:19+0100\n"
|
||||||
"PO-Revision-Date: 2023-12-20 10:13+0100\n"
|
"PO-Revision-Date: 2023-12-20 10:13+0100\n"
|
||||||
"Last-Translator: Oriol Carbonell <info@oriolcarbonell.cat>\n"
|
"Last-Translator: Oriol Carbonell <info@oriolcarbonell.cat>\n"
|
||||||
"Language-Team: French <traduc@traduc.org>\n"
|
"Language-Team: French <traduc@traduc.org>\n"
|
||||||
|
@ -45,7 +45,7 @@ msgstr "Le paiement a échoué"
|
||||||
#: web/templates/public/services.gohtml:6
|
#: web/templates/public/services.gohtml:6
|
||||||
#: web/templates/public/services.gohtml:15
|
#: web/templates/public/services.gohtml:15
|
||||||
#: web/templates/public/layout.gohtml:66 web/templates/public/layout.gohtml:94
|
#: web/templates/public/layout.gohtml:66 web/templates/public/layout.gohtml:94
|
||||||
#: web/templates/admin/services/index.gohtml:66
|
#: web/templates/admin/services/index.gohtml:56
|
||||||
msgctxt "title"
|
msgctxt "title"
|
||||||
msgid "Services"
|
msgid "Services"
|
||||||
msgstr "Services"
|
msgstr "Services"
|
||||||
|
@ -437,7 +437,7 @@ msgid "Content"
|
||||||
msgstr "Contenu"
|
msgstr "Contenu"
|
||||||
|
|
||||||
#: web/templates/admin/legal/form.gohtml:84
|
#: web/templates/admin/legal/form.gohtml:84
|
||||||
#: web/templates/admin/carousel/form.gohtml:47
|
#: web/templates/admin/carousel/form.gohtml:52
|
||||||
#: web/templates/admin/campsite/feature/form.gohtml:67
|
#: web/templates/admin/campsite/feature/form.gohtml:67
|
||||||
#: web/templates/admin/campsite/carousel/form.gohtml:52
|
#: web/templates/admin/campsite/carousel/form.gohtml:52
|
||||||
#: web/templates/admin/campsite/form.gohtml:70
|
#: web/templates/admin/campsite/form.gohtml:70
|
||||||
|
@ -451,7 +451,7 @@ msgid "Update"
|
||||||
msgstr "Mettre à jour"
|
msgstr "Mettre à jour"
|
||||||
|
|
||||||
#: web/templates/admin/legal/form.gohtml:86
|
#: web/templates/admin/legal/form.gohtml:86
|
||||||
#: web/templates/admin/carousel/form.gohtml:49
|
#: web/templates/admin/carousel/form.gohtml:54
|
||||||
#: web/templates/admin/campsite/feature/form.gohtml:69
|
#: web/templates/admin/campsite/feature/form.gohtml:69
|
||||||
#: web/templates/admin/campsite/carousel/form.gohtml:54
|
#: web/templates/admin/campsite/carousel/form.gohtml:54
|
||||||
#: web/templates/admin/campsite/form.gohtml:72
|
#: web/templates/admin/campsite/form.gohtml:72
|
||||||
|
@ -501,40 +501,11 @@ msgid "New Carousel Slide"
|
||||||
msgstr "Nouveau toboggan carrousel"
|
msgstr "Nouveau toboggan carrousel"
|
||||||
|
|
||||||
#: web/templates/admin/carousel/form.gohtml:37
|
#: web/templates/admin/carousel/form.gohtml:37
|
||||||
#: web/templates/admin/carousel/l10n.gohtml:20
|
|
||||||
#: web/templates/admin/campsite/carousel/form.gohtml:37
|
#: web/templates/admin/campsite/carousel/form.gohtml:37
|
||||||
msgctxt "input"
|
msgctxt "input"
|
||||||
msgid "Caption"
|
msgid "Caption"
|
||||||
msgstr "Légende"
|
msgstr "Légende"
|
||||||
|
|
||||||
#: web/templates/admin/carousel/l10n.gohtml:7
|
|
||||||
#: web/templates/admin/carousel/l10n.gohtml:14
|
|
||||||
msgctxt "title"
|
|
||||||
msgid "Translate Carousel Slide to %s"
|
|
||||||
msgstr "Traduire la diapositive Carousel en %s"
|
|
||||||
|
|
||||||
#: web/templates/admin/carousel/l10n.gohtml:21
|
|
||||||
#: web/templates/admin/season/l10n.gohtml:21
|
|
||||||
#: web/templates/admin/services/l10n.gohtml:21
|
|
||||||
#: web/templates/admin/services/l10n.gohtml:33
|
|
||||||
msgid "Source:"
|
|
||||||
msgstr "Source :"
|
|
||||||
|
|
||||||
#: web/templates/admin/carousel/l10n.gohtml:23
|
|
||||||
#: web/templates/admin/season/l10n.gohtml:23
|
|
||||||
#: web/templates/admin/services/l10n.gohtml:23
|
|
||||||
#: web/templates/admin/services/l10n.gohtml:36
|
|
||||||
msgctxt "input"
|
|
||||||
msgid "Translation:"
|
|
||||||
msgstr "Traduction :"
|
|
||||||
|
|
||||||
#: web/templates/admin/carousel/l10n.gohtml:32
|
|
||||||
#: web/templates/admin/season/l10n.gohtml:32
|
|
||||||
#: web/templates/admin/services/l10n.gohtml:45
|
|
||||||
msgctxt "action"
|
|
||||||
msgid "Translate"
|
|
||||||
msgstr "Traduire"
|
|
||||||
|
|
||||||
#: web/templates/admin/location.gohtml:6 web/templates/admin/location.gohtml:12
|
#: web/templates/admin/location.gohtml:6 web/templates/admin/location.gohtml:12
|
||||||
msgctxt "title"
|
msgctxt "title"
|
||||||
msgid "Location Settings"
|
msgid "Location Settings"
|
||||||
|
@ -635,30 +606,30 @@ msgid "Caption"
|
||||||
msgstr "Légende"
|
msgstr "Légende"
|
||||||
|
|
||||||
#: web/templates/admin/campsite/carousel/index.gohtml:27
|
#: web/templates/admin/campsite/carousel/index.gohtml:27
|
||||||
#: web/templates/admin/services/index.gohtml:28
|
#: web/templates/admin/services/index.gohtml:27
|
||||||
#: web/templates/admin/services/index.gohtml:74
|
#: web/templates/admin/services/index.gohtml:64
|
||||||
#: web/templates/admin/home/index.gohtml:28
|
#: web/templates/admin/home/index.gohtml:27
|
||||||
msgctxt "header"
|
msgctxt "header"
|
||||||
msgid "Actions"
|
msgid "Actions"
|
||||||
msgstr "Actions"
|
msgstr "Actions"
|
||||||
|
|
||||||
#: web/templates/admin/campsite/carousel/index.gohtml:31
|
#: web/templates/admin/campsite/carousel/index.gohtml:31
|
||||||
#: web/templates/admin/services/index.gohtml:32
|
#: web/templates/admin/services/index.gohtml:31
|
||||||
#: web/templates/admin/home/index.gohtml:32
|
#: web/templates/admin/home/index.gohtml:31
|
||||||
msgid "Are you sure you wish to delete this slide?"
|
msgid "Are you sure you wish to delete this slide?"
|
||||||
msgstr "Êtes-vous sûr de vouloir supprimer cette diapositive ?"
|
msgstr "Êtes-vous sûr de vouloir supprimer cette diapositive ?"
|
||||||
|
|
||||||
#: web/templates/admin/campsite/carousel/index.gohtml:45
|
#: web/templates/admin/campsite/carousel/index.gohtml:45
|
||||||
#: web/templates/admin/services/index.gohtml:54
|
#: web/templates/admin/services/index.gohtml:44
|
||||||
#: web/templates/admin/services/index.gohtml:93
|
#: web/templates/admin/services/index.gohtml:83
|
||||||
#: web/templates/admin/home/index.gohtml:54
|
#: web/templates/admin/home/index.gohtml:44
|
||||||
msgctxt "action"
|
msgctxt "action"
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Supprimer"
|
msgstr "Supprimer"
|
||||||
|
|
||||||
#: web/templates/admin/campsite/carousel/index.gohtml:54
|
#: web/templates/admin/campsite/carousel/index.gohtml:54
|
||||||
#: web/templates/admin/services/index.gohtml:63
|
#: web/templates/admin/services/index.gohtml:53
|
||||||
#: web/templates/admin/home/index.gohtml:63
|
#: web/templates/admin/home/index.gohtml:53
|
||||||
msgid "No slides added yet."
|
msgid "No slides added yet."
|
||||||
msgstr "Aucune diapositive n’a encore été ajoutée."
|
msgstr "Aucune diapositive n’a encore été ajoutée."
|
||||||
|
|
||||||
|
@ -910,9 +881,7 @@ msgid "Color"
|
||||||
msgstr "Couleur"
|
msgstr "Couleur"
|
||||||
|
|
||||||
#: web/templates/admin/season/index.gohtml:27
|
#: web/templates/admin/season/index.gohtml:27
|
||||||
#: web/templates/admin/services/index.gohtml:27
|
#: web/templates/admin/services/index.gohtml:63
|
||||||
#: web/templates/admin/services/index.gohtml:73
|
|
||||||
#: web/templates/admin/home/index.gohtml:27
|
|
||||||
msgctxt "header"
|
msgctxt "header"
|
||||||
msgid "Translations"
|
msgid "Translations"
|
||||||
msgstr "Traductions"
|
msgstr "Traductions"
|
||||||
|
@ -927,6 +896,25 @@ msgctxt "title"
|
||||||
msgid "Translate Season to %s"
|
msgid "Translate Season to %s"
|
||||||
msgstr "Traduire Season en %s"
|
msgstr "Traduire Season en %s"
|
||||||
|
|
||||||
|
#: web/templates/admin/season/l10n.gohtml:21
|
||||||
|
#: web/templates/admin/services/l10n.gohtml:21
|
||||||
|
#: web/templates/admin/services/l10n.gohtml:33
|
||||||
|
msgid "Source:"
|
||||||
|
msgstr "Source :"
|
||||||
|
|
||||||
|
#: web/templates/admin/season/l10n.gohtml:23
|
||||||
|
#: web/templates/admin/services/l10n.gohtml:23
|
||||||
|
#: web/templates/admin/services/l10n.gohtml:36
|
||||||
|
msgctxt "input"
|
||||||
|
msgid "Translation:"
|
||||||
|
msgstr "Traduction :"
|
||||||
|
|
||||||
|
#: web/templates/admin/season/l10n.gohtml:32
|
||||||
|
#: web/templates/admin/services/l10n.gohtml:45
|
||||||
|
msgctxt "action"
|
||||||
|
msgid "Translate"
|
||||||
|
msgstr "Traduire"
|
||||||
|
|
||||||
#: web/templates/admin/season/calendar.gohtml:49
|
#: web/templates/admin/season/calendar.gohtml:49
|
||||||
#: web/templates/admin/media/picker.gohtml:61
|
#: web/templates/admin/media/picker.gohtml:61
|
||||||
msgctxt "action"
|
msgctxt "action"
|
||||||
|
@ -1014,21 +1002,21 @@ msgctxt "title"
|
||||||
msgid "Carousel"
|
msgid "Carousel"
|
||||||
msgstr "Carrousel"
|
msgstr "Carrousel"
|
||||||
|
|
||||||
#: web/templates/admin/services/index.gohtml:67
|
#: web/templates/admin/services/index.gohtml:57
|
||||||
msgctxt "action"
|
msgctxt "action"
|
||||||
msgid "Add service"
|
msgid "Add service"
|
||||||
msgstr "Ajouter un service"
|
msgstr "Ajouter un service"
|
||||||
|
|
||||||
#: web/templates/admin/services/index.gohtml:72
|
#: web/templates/admin/services/index.gohtml:62
|
||||||
msgctxt "header"
|
msgctxt "header"
|
||||||
msgid "Service"
|
msgid "Service"
|
||||||
msgstr "Service"
|
msgstr "Service"
|
||||||
|
|
||||||
#: web/templates/admin/services/index.gohtml:78
|
#: web/templates/admin/services/index.gohtml:68
|
||||||
msgid "Are you sure you wish to delete this service?"
|
msgid "Are you sure you wish to delete this service?"
|
||||||
msgstr "Êtes-vous sûr de vouloir supprimer ce service ?"
|
msgstr "Êtes-vous sûr de vouloir supprimer ce service ?"
|
||||||
|
|
||||||
#: web/templates/admin/services/index.gohtml:101
|
#: web/templates/admin/services/index.gohtml:91
|
||||||
msgid "No services added yet."
|
msgid "No services added yet."
|
||||||
msgstr "Aucun service n’a encore été ajouté."
|
msgstr "Aucun service n’a encore été ajouté."
|
||||||
|
|
||||||
|
@ -1235,21 +1223,21 @@ msgstr "Le nom ne peut pas être laissé vide."
|
||||||
msgid "Name must have at least one letter."
|
msgid "Name must have at least one letter."
|
||||||
msgstr "Le nom doit comporter au moins une lettre."
|
msgstr "Le nom doit comporter au moins une lettre."
|
||||||
|
|
||||||
#: pkg/carousel/admin.go:285 pkg/campsite/types/carousel.go:223
|
#: pkg/carousel/admin.go:269 pkg/campsite/types/carousel.go:223
|
||||||
msgctxt "input"
|
msgctxt "input"
|
||||||
msgid "Slide image"
|
msgid "Slide image"
|
||||||
msgstr "Image du diaporama"
|
msgstr "Image du diaporama"
|
||||||
|
|
||||||
#: pkg/carousel/admin.go:286 pkg/campsite/types/carousel.go:224
|
#: pkg/carousel/admin.go:270 pkg/campsite/types/carousel.go:224
|
||||||
msgctxt "action"
|
msgctxt "action"
|
||||||
msgid "Set slide image"
|
msgid "Set slide image"
|
||||||
msgstr "Définir l’image de la diapositive"
|
msgstr "Définir l’image de la diapositive"
|
||||||
|
|
||||||
#: pkg/carousel/admin.go:338 pkg/campsite/types/carousel.go:297
|
#: pkg/carousel/admin.go:339 pkg/campsite/types/carousel.go:297
|
||||||
msgid "Slide image can not be empty."
|
msgid "Slide image can not be empty."
|
||||||
msgstr "L’image de la diapositive ne peut pas être vide."
|
msgstr "L’image de la diapositive ne peut pas être vide."
|
||||||
|
|
||||||
#: pkg/carousel/admin.go:339 pkg/campsite/types/carousel.go:298
|
#: pkg/carousel/admin.go:340 pkg/campsite/types/carousel.go:298
|
||||||
msgid "Slide image must be an image media type."
|
msgid "Slide image must be an image media type."
|
||||||
msgstr "L’image de la diapositive doit être de type média d’image."
|
msgstr "L’image de la diapositive doit être de type média d’image."
|
||||||
|
|
||||||
|
@ -1651,6 +1639,10 @@ msgstr "%s doit être %d ou plus."
|
||||||
msgid "%s must be at most %d."
|
msgid "%s must be at most %d."
|
||||||
msgstr "%s doit être tout au plus %d."
|
msgstr "%s doit être tout au plus %d."
|
||||||
|
|
||||||
|
#~ msgctxt "title"
|
||||||
|
#~ msgid "Translate Carousel Slide to %s"
|
||||||
|
#~ msgstr "Traduire la diapositive Carousel en %s"
|
||||||
|
|
||||||
#~ msgctxt "title"
|
#~ msgctxt "title"
|
||||||
#~ msgid "Translate Campsite Type Feature to %s"
|
#~ msgid "Translate Campsite Type Feature to %s"
|
||||||
#~ msgstr "Traduire Caractéristique de type de camping en %s"
|
#~ msgstr "Traduire Caractéristique de type de camping en %s"
|
||||||
|
|
|
@ -28,17 +28,22 @@
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</h2>
|
</h2>
|
||||||
{{ CSRFInput }}
|
{{ CSRFInput }}
|
||||||
<fieldset>
|
<fieldset x-data="{ lang: '{{ .DefaultLang }}' }">
|
||||||
{{ with .Media -}}
|
{{ with .Media -}}
|
||||||
{{ template "media-picker" . }}
|
{{ template "media-picker" . }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{ with .Caption -}}
|
{{ with .Caption -}}
|
||||||
<label>
|
<fieldset>
|
||||||
{{( pgettext "Caption" "input")}}<br>
|
<legend>{{( pgettext "Caption" "input")}}</legend>
|
||||||
<input type="text" name="{{ .Name }}" value="{{ .Val }}"
|
{{ template "lang-selector" . }}
|
||||||
|
{{ range $lang, $input := . -}}
|
||||||
|
<label x-cloak x-show="lang === '{{ $lang }}'"><span>{{ $lang }}</span><br>
|
||||||
|
<input type="text" name="{{ $input.Name }}" value="{{ $input.Val }}"
|
||||||
{{ template "error-attrs" . }}><br>
|
{{ template "error-attrs" . }}><br>
|
||||||
</label>
|
</label>
|
||||||
|
{{- end }}
|
||||||
{{ template "error-message" . }}
|
{{ template "error-message" . }}
|
||||||
|
</fieldset>
|
||||||
{{- end }}
|
{{- end }}
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<footer>
|
<footer>
|
||||||
|
|
|
@ -1,35 +0,0 @@
|
||||||
<!--
|
|
||||||
SPDX-FileCopyrightText: 2023 jordi fita mas <jordi@tandem.blog>
|
|
||||||
SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
-->
|
|
||||||
{{ define "title" -}}
|
|
||||||
{{- /*gotype: dev.tandem.ws/tandem/camper/pkg/carousel.slideL10nForm*/ -}}
|
|
||||||
{{printf (pgettext "Translate Carousel Slide to %s" "title") .Locale.Endonym }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{ define "content" -}}
|
|
||||||
{{- /*gotype: dev.tandem.ws/tandem/camper/pkg/carousel.slideL10nForm*/ -}}
|
|
||||||
<form data-hx-put="/admin/home/slides/{{ .ID }}/{{ .Locale.Language }}">
|
|
||||||
<h2>
|
|
||||||
{{printf (pgettext "Translate Carousel Slide to %s" "title") .Locale.Endonym }}
|
|
||||||
</h2>
|
|
||||||
{{ CSRFInput }}
|
|
||||||
<fieldset>
|
|
||||||
{{ with .Caption -}}
|
|
||||||
<fieldset>
|
|
||||||
<legend>{{( pgettext "Caption" "input")}}</legend>
|
|
||||||
{{( gettext "Source:" )}} {{ .Source }}<br>
|
|
||||||
<label>
|
|
||||||
{{( pgettext "Translation:" "input" )}}
|
|
||||||
<input type="text" name="{{ .Name }}" value="{{ .Val }}"
|
|
||||||
{{ template "error-attrs" . }}><br>
|
|
||||||
</label>
|
|
||||||
{{ template "error-message" . }}
|
|
||||||
</fieldset>
|
|
||||||
{{- end }}
|
|
||||||
</fieldset>
|
|
||||||
<footer>
|
|
||||||
<button type="submit">{{( pgettext "Translate" "action" )}}</button>
|
|
||||||
</footer>
|
|
||||||
</form>
|
|
||||||
{{- end }}
|
|
|
@ -24,7 +24,6 @@
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="col">{{( pgettext "Image" "header" )}}</th>
|
<th scope="col">{{( pgettext "Image" "header" )}}</th>
|
||||||
<th scope="col">{{( pgettext "Caption" "header" )}}</th>
|
<th scope="col">{{( pgettext "Caption" "header" )}}</th>
|
||||||
<th scope="col">{{( pgettext "Translations" "header" )}}</th>
|
|
||||||
<th scope="col">{{( pgettext "Actions" "header" )}}</th>
|
<th scope="col">{{( pgettext "Actions" "header" )}}</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
@ -38,15 +37,6 @@
|
||||||
<a href="/admin/home/slides/{{ .ID }}"><img src="{{ .Media }}" alt=""></a>
|
<a href="/admin/home/slides/{{ .ID }}"><img src="{{ .Media }}" alt=""></a>
|
||||||
</td>
|
</td>
|
||||||
<td><a href="/admin/home/slides/{{ .ID }}">{{ .Caption }}</a></td>
|
<td><a href="/admin/home/slides/{{ .ID }}">{{ .Caption }}</a></td>
|
||||||
<td>
|
|
||||||
{{ range .Translations }}
|
|
||||||
<a
|
|
||||||
{{ if .Missing }}
|
|
||||||
class="missing-translation"
|
|
||||||
{{ end }}
|
|
||||||
href="/admin/home/slides/{{ $slide.ID }}/{{ .Language }}">{{ .Endonym }}</a>
|
|
||||||
{{ end }}
|
|
||||||
</td>
|
|
||||||
<td>
|
<td>
|
||||||
<form data-hx-delete="/admin/home/slides/{{ .ID }}"
|
<form data-hx-delete="/admin/home/slides/{{ .ID }}"
|
||||||
data-hx-confirm="{{ $confirm }}"
|
data-hx-confirm="{{ $confirm }}"
|
||||||
|
|
|
@ -24,7 +24,6 @@
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="col">{{( pgettext "Image" "header" )}}</th>
|
<th scope="col">{{( pgettext "Image" "header" )}}</th>
|
||||||
<th scope="col">{{( pgettext "Caption" "header" )}}</th>
|
<th scope="col">{{( pgettext "Caption" "header" )}}</th>
|
||||||
<th scope="col">{{( pgettext "Translations" "header" )}}</th>
|
|
||||||
<th scope="col">{{( pgettext "Actions" "header" )}}</th>
|
<th scope="col">{{( pgettext "Actions" "header" )}}</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
@ -38,15 +37,6 @@
|
||||||
<a href="/admin/services/slides/{{ .ID }}"><img src="{{ .Media }}" alt=""></a>
|
<a href="/admin/services/slides/{{ .ID }}"><img src="{{ .Media }}" alt=""></a>
|
||||||
</td>
|
</td>
|
||||||
<td><a href="/admin/services/slides/{{ .ID }}">{{ .Caption }}</a></td>
|
<td><a href="/admin/services/slides/{{ .ID }}">{{ .Caption }}</a></td>
|
||||||
<td>
|
|
||||||
{{ range .Translations }}
|
|
||||||
<a
|
|
||||||
{{ if .Missing }}
|
|
||||||
class="missing-translation"
|
|
||||||
{{ end }}
|
|
||||||
href="/admin/services/slides/{{ $slide.ID }}/{{ .Language }}">{{ .Endonym }}</a>
|
|
||||||
{{ end }}
|
|
||||||
</td>
|
|
||||||
<td>
|
<td>
|
||||||
<form data-hx-delete="/admin/services/slides/{{ .ID }}"
|
<form data-hx-delete="/admin/services/slides/{{ .ID }}"
|
||||||
data-hx-confirm="{{ $confirm }}"
|
data-hx-confirm="{{ $confirm }}"
|
||||||
|
|
Loading…
Reference in New Issue