From 861a9648e8bf80d9e2d10fe1059e06cdb4f6dc6d Mon Sep 17 00:00:00 2001 From: Manuel Cillero Date: Sat, 21 Oct 2023 21:11:25 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=A7=91=E2=80=8D=F0=9F=92=BB=20Improve=20h?= =?UTF-8?q?andling=20of=20empty=20translations?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pagetop/src/base/component/branding.rs | 3 +-- pagetop/src/base/component/form/input.rs | 6 ++---- pagetop/src/locale.rs | 7 ++++++- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/pagetop/src/base/component/branding.rs b/pagetop/src/base/component/branding.rs index 4804abe3..d315e172 100644 --- a/pagetop/src/base/component/branding.rs +++ b/pagetop/src/base/component/branding.rs @@ -51,7 +51,6 @@ impl ComponentTrait for Branding { fn prepare_component(&self, cx: &mut Context) -> PrepareMarkup { let title = L10n::l("site_home").using(cx.langid()); - let slogan = self.slogan().using(cx.langid()).unwrap_or_default(); PrepareMarkup::With(html! { div id=[self.id()] { div class="pt-branding__wrapper" { @@ -64,7 +63,7 @@ impl ComponentTrait for Branding { (self.app_name()) } } - @if !slogan.is_empty() { + @if let Some(slogan) = self.slogan().using(cx.langid()) { div class="pt-branding__slogan" { (slogan) } diff --git a/pagetop/src/base/component/form/input.rs b/pagetop/src/base/component/form/input.rs index f7668079..d59d1048 100644 --- a/pagetop/src/base/component/form/input.rs +++ b/pagetop/src/base/component/form/input.rs @@ -67,11 +67,9 @@ impl ComponentTrait for Input { InputType::Url => "url", }; let id = self.name().get().map(|name| concat_string!("edit-", name)); - let label = self.label().using(cx.langid()).unwrap_or_default(); - let description = self.help_text().using(cx.langid()).unwrap_or_default(); PrepareMarkup::With(html! { div class=[self.classes().get()] { - @if !label.is_empty() { + @if let Some(label) = self.label().using(cx.langid()) { label class="form-label" for=[&id] { (label) " " @if self.required().get().is_some() { @@ -96,7 +94,7 @@ impl ComponentTrait for Input { readonly=[self.readonly().get()] required=[self.required().get()] disabled=[self.disabled().get()] {} - @if !description.is_empty() { + @if let Some(description) = self.help_text().using(cx.langid()) { div class="form-text" { (description) } } } diff --git a/pagetop/src/locale.rs b/pagetop/src/locale.rs index 75ae5109..1673f976 100644 --- a/pagetop/src/locale.rs +++ b/pagetop/src/locale.rs @@ -177,8 +177,13 @@ pub struct L10n { impl L10n { pub fn n(text: impl Into) -> Self { + let text = text.into(); L10n { - op: L10nOp::Text(text.into()), + op: if text.trim().is_empty() { + L10nOp::None + } else { + L10nOp::Text(text) + }, ..Default::default() } }