Files
chart-app/src/main/resources/vaadin-i18n/translations_en.properties
T
Pit Friedrich 21834ec9a0
CI / build-and-test (pull_request) Successful in 2m24s
fix: add KPI tile widget type to the dashboard (#26)
Adds a non-chart dashboard widget: a large value with its label, an
optional signed delta versus the previous period, and an optional
sparkline. Four tiles now sit above the charts, 3x1 each.

- KpiTile draws no surface of its own and fills the grid item's, styled
  from the --dialect-* token layer; the delta's up/down colors are new
  tokens rather than literals, so they follow the light/dark toggle.
- Value and delta share one row: stacking them costs a line the tile does
  not have at its default height of one grid cell.
- SparklineChart is a chrome-free line chart built on DialectTheme, so it
  shares the palette and font with the real charts.
- ApexCharts' sparkline.enabled drops the axes on the initial render but
  updateOptions (how the theme toggle recolors a chart) brings the y-axis
  labels back; they are hidden in CSS, which reaches the chart SVG since
  it renders into light DOM.

The registry registration the issue asks for is left out: #21 is blocked,
so there is no widget picker to register with yet. The tiles are wired
into DashboardView the same way the chart widgets are, and their values
come from the translation bundle until the data service (#20) lands.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0124BiJikbhbiEsNfJxdWM69
2026-07-28 19:57:55 +02:00

119 lines
2.8 KiB
Properties
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# English
app.title=Chart App
action.themeToggle=Switch color scheme
action.language=Switch language
lang.de=Deutsch
lang.en=English
lang.es=Español
nav.dashboard=Dashboard
nav.form=Form
nav.table=Table
page.dashboard=Dashboard
page.form=Form
page.table=Table
card.revenueTrend=Revenue Trend
card.revenueByMonth=Revenue by Month
card.revenueByRegion=Revenue by Region
card.registration=Registration
card.employees=Employees
card.gridstackHint=How it works
gridstack.hint=Move cards with the grip in their top right corner, resize them from the bottom right corner, close them with the X in the top right corner. The layout is stored in your browser and restored on your next visit.
gridstack.addWidget=Add widget
gridstack.reset=Reset layout
gridstack.status=Layout changed {0} widgets
gridstack.statusInitial=Layout unchanged
gridstack.widget=Widget {0}
gridstack.widgetText=Freely placeable card.
gridstack.dragHandle=Move
gridstack.close=Close
kpi.revenueTotal=Total revenue
kpi.revenueTotal.value=€1.24M
kpi.openOrders=Open orders
kpi.openOrders.value=38
kpi.newCustomers=New customers
kpi.newCustomers.value=112
kpi.averageOrderValue=Avg. order value
kpi.averageOrderValue.value=€486
chart.revenueSeries=Revenue 2026
chart.pointClick=Series {0}, point {1}
chart.sliceClick=Slice {0}
month.jan=Jan
month.feb=Feb
month.mar=Mar
month.apr=Apr
month.may=May
month.jun=Jun
region.north=North
region.south=South
region.east=East
region.west=West
form.firstName=First name
form.lastName=Last name
form.email=Email
form.password=Password
form.age=Age
form.salary=Salary (€)
form.birthdate=Date of birth
form.time=Preferred time
form.country=Country
form.department=Department
form.interests=Interests
form.salutation=Salutation
form.newsletter=Subscribe to newsletter
form.remark=Remark
form.save=Save
form.reset=Reset
form.today=Today
form.cancel=Cancel
form.time.badInput=Invalid time
form.time.required=Time is required
form.time.min=Time is before the earliest allowed time
form.time.max=Time is after the latest allowed time
country.de=Germany
country.at=Austria
country.ch=Switzerland
country.fr=France
country.nl=Netherlands
dept.sales=Sales
dept.marketing=Marketing
dept.dev=Development
dept.support=Support
dept.management=Management
interest.newsletter=Newsletter topics
interest.webinars=Webinars
interest.updates=Product updates
interest.events=Events
salutation.mrs=Ms.
salutation.mr=Mr.
salutation.diverse=Diverse
salutation.none=Not specified
valid.firstNameRequired=First name is required
valid.lastNameRequired=Last name is required
valid.emailRequired=Email is required
valid.emailInvalid=Invalid email address
valid.ageRange=Age must be between 0 and 120
notify.saved=Saved: {0} {1}
notify.checkInput=Please check your entries
table.search=Search…
col.name=Name
col.department=Department
col.city=City
col.salary=Salary (€)