Add Hungarian English language switcher

This commit is contained in:
zsolt
2026-08-13 13:43:57 +02:00
parent 1b0734cf7b
commit aea92b0eed
8 changed files with 262 additions and 35 deletions
+27 -16
View File
@@ -5,6 +5,7 @@ class PersonsPage extends StatelessWidget {
super.key,
required this.people,
required this.events,
required this.languageCode,
required this.onAdd,
required this.onEdit,
required this.onDelete,
@@ -12,26 +13,27 @@ class PersonsPage extends StatelessWidget {
final List<Person> people;
final List<CalendarEvent> events;
final String languageCode;
final VoidCallback onAdd;
final ValueChanged<Person> onEdit;
final ValueChanged<Person> onDelete;
@override
Widget build(BuildContext context) {
final text = AppText.of(languageCode);
return PageFrame(
eyebrow: '${people.length} csal\u00e1dtag',
title: 'Csal\u00e1dtagok',
eyebrow: text.familyCount(people.length),
title: text.familyMembers,
action: FilledButton.icon(
onPressed: onAdd,
icon: const Icon(Icons.add),
label: const Text('\u00daj csal\u00e1dtag'),
label: Text(text.newFamilyMember),
),
child: people.isEmpty
? const EmptyState(
? EmptyState(
icon: Icons.group_add_outlined,
title: 'M\u00e9g nincs csal\u00e1dtag',
subtitle:
'Vegy\u00e9l fel csal\u00e1dtagokat, gyerekeket vagy b\u00e1rkit.',
title: text.noFamilyMembers,
subtitle: text.noFamilyMembersSubtitle,
)
: ListView.separated(
padding: const EdgeInsets.only(bottom: 24),
@@ -90,14 +92,14 @@ class PersonsPage extends StatelessWidget {
if (value == 'edit') onEdit(person);
if (value == 'delete') onDelete(person);
},
itemBuilder: (_) => const [
itemBuilder: (_) => [
PopupMenuItem(
value: 'edit',
child: Text('\u00c1tnevez\u00e9s / avatar'),
child: Text(text.renameAvatar),
),
PopupMenuItem(
value: 'delete',
child: Text('T\u00f6rl\u00e9s'),
child: Text(text.delete),
),
],
),
@@ -115,17 +117,20 @@ class StylePage extends StatelessWidget {
const StylePage({
super.key,
required this.themeId,
required this.languageCode,
required this.onThemeChanged,
});
final String themeId;
final String languageCode;
final ValueChanged<String> onThemeChanged;
@override
Widget build(BuildContext context) {
final text = AppText.of(languageCode);
return PageFrame(
eyebrow: 'T\u00e9ma \u00e9s st\u00edlusok',
title: 'Megjelen\u00e9s',
eyebrow: text.themeAndStyles,
title: text.appearance,
child: ListView(
padding: const EdgeInsets.only(bottom: 24),
children: [
@@ -187,20 +192,23 @@ class ShoppingPage extends StatelessWidget {
const ShoppingPage({
super.key,
required this.items,
required this.languageCode,
required this.onChanged,
required this.onAdd,
});
final List<ShoppingItem> items;
final String languageCode;
final VoidCallback onChanged;
final VoidCallback onAdd;
@override
Widget build(BuildContext context) {
final text = AppText.of(languageCode);
final remaining = items.where((e) => !e.done).length;
return PageFrame(
eyebrow: '$remaining t\u00e9tel van h\u00e1tra',
title: 'Bev\u00e1s\u00e1rl\u00f3lista',
eyebrow: text.remainingItems(remaining),
title: text.shoppingList,
action: IconButton.filled(onPressed: onAdd, icon: const Icon(Icons.add)),
child: Column(
children: [
@@ -278,6 +286,7 @@ class StockPage extends StatefulWidget {
const StockPage({
super.key,
required this.items,
required this.languageCode,
required this.onChanged,
required this.onAdd,
required this.onEdit,
@@ -285,6 +294,7 @@ class StockPage extends StatefulWidget {
});
final List<StockItem> items;
final String languageCode;
final VoidCallback onChanged;
final VoidCallback onAdd;
final ValueChanged<StockItem> onEdit;
@@ -299,10 +309,11 @@ class _StockPageState extends State<StockPage> {
@override
Widget build(BuildContext context) {
final text = AppText.of(widget.languageCode);
final filtered = widget.items.where((e) => e.location == location).toList();
return PageFrame(
eyebrow: '${widget.items.length} term\u00e9k nyilv\u00e1ntartva',
title: 'Otthoni k\u00e9szlet',
eyebrow: text.stockCount(widget.items.length),
title: text.homeStock,
action: IconButton.filled(
onPressed: widget.onAdd,
icon: const Icon(Icons.add),