Files
chart-app/src/main/resources/vaadin-i18n/translations_en.properties
T
Pit Friedrich df5d1a9b9b
CI / build-and-test (pull_request) Successful in 2m46s
fix: add a global dashboard filter bar (#24)
The reporting period was baked into the data service, so nothing could
change what the dashboard shows without editing code.

- DashboardFilter (period + optional region) parameterises every
  ChartDataService query; the no-arg overloads are the default filter.
- DashboardContext is the bus between the new DashboardFilterBar and the
  widgets: charts subscribe in WidgetRegistry, KPI tiles in DashboardView.
- Updates go through updateData, so widgets patch in place instead of
  being rebuilt; SparklineChart gained the same path.
- KpiData carries the number, the bundle the unit and number pattern, so
  a KPI value can follow the filter and stay locale-formatted.
- Filter state is deliberately not persisted, unlike the grid layout.

Closes #24

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

139 lines
3.3 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.pickerTitle=Choose a widget
gridstack.dragHandle=Move
gridstack.close=Close
filter.period=Period
filter.period.month=Month
filter.period.quarter=Quarter
filter.period.halfYear=Half year
filter.period.year=Year
filter.region=Region
filter.allRegions=All regions
# The KPI values are MessageFormat patterns: the number comes from the data
# service (it depends on the filter), unit and number format from the bundle.
kpi.revenueTotal=Total revenue
kpi.revenueTotal.value=€{0,number,#,##0.00}M
kpi.openOrders=Open orders
kpi.openOrders.value={0,number,#,##0}
kpi.newCustomers=New customers
kpi.newCustomers.value={0,number,#,##0}
kpi.averageOrderValue=Avg. order value
kpi.averageOrderValue.value=€{0,number,#,##0}
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
month.jul=Jul
month.aug=Aug
month.sep=Sep
month.oct=Oct
month.nov=Nov
month.dec=Dec
week.1=Week 1
week.2=Week 2
week.3=Week 3
week.4=Week 4
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 (€)