Localized static text

This commit is contained in:
2024-12-18 18:05:14 +01:00
parent b9033014c8
commit 8e91388ecf
3 changed files with 36 additions and 22 deletions

View File

@@ -4,6 +4,7 @@ import 'package:resume/widgets/language_dropdown.dart';
import 'package:resume/widgets/profile.dart';
import 'package:url_launcher/url_launcher.dart';
import 'package:resume/constants.dart' show ContentType;
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import '../services/content_provider.dart';
import '../widgets/content_block.dart';
@@ -43,15 +44,15 @@ class _LandingPageState extends State<LandingPage> {
(MediaQuery.of(context).size.width - _getMainContentWidth()) / 2;
Widget _getSideBar() {
return const Column(
return Column(
children: [
ContentBlock(
blockTitle: 'Fähigkeiten',
blockTitle: AppLocalizations.of(context)!.skills,
contentType: ContentType.skills,
),
Padding(padding: EdgeInsets.only(bottom: 25)),
const Padding(padding: EdgeInsets.only(bottom: 25)),
ContentBlock(
blockTitle: 'Sprachen',
blockTitle: AppLocalizations.of(context)!.languages,
contentType: ContentType.language,
),
],
@@ -59,25 +60,25 @@ class _LandingPageState extends State<LandingPage> {
}
Widget _getMainContent() {
return const Column(
return Column(
children: [
ContentBlock(
blockTitle: 'Arbeitserfahrung',
blockTitle: AppLocalizations.of(context)!.work_experience,
contentType: ContentType.experience,
),
Padding(padding: EdgeInsets.only(bottom: 25)),
const Padding(padding: EdgeInsets.only(bottom: 25)),
ContentBlock(
blockTitle: 'Bildungsweg',
blockTitle: AppLocalizations.of(context)!.education,
contentType: ContentType.education,
),
Padding(padding: EdgeInsets.only(bottom: 25)),
const Padding(padding: EdgeInsets.only(bottom: 25)),
ContentBlock(
blockTitle: 'Weitere Kenntnisse',
blockTitle: AppLocalizations.of(context)!.additional_skills,
contentType: ContentType.generalSkills,
),
Padding(padding: EdgeInsets.only(bottom: 25)),
const Padding(padding: EdgeInsets.only(bottom: 25)),
ContentBlock(
blockTitle: "Über mich",
blockTitle: AppLocalizations.of(context)!.about_me,
contentType: ContentType.text,
),
],
@@ -189,10 +190,12 @@ class _LandingPageState extends State<LandingPage> {
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Lebenslauf'),
actions: const [
TextButton(onPressed: _launchURL, child: Text('Source Code')),
LanguageDropdown(),
title: Text(AppLocalizations.of(context)!.resume),
actions: [
TextButton(
onPressed: _launchURL,
child: Text(AppLocalizations.of(context)!.source_code)),
const LanguageDropdown(),
],
),
body: !loadingDone

View File

@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
class LanguageDropdown extends StatelessWidget {
const LanguageDropdown({super.key});
@@ -10,11 +11,17 @@ class LanguageDropdown extends StatelessWidget {
items: [
DropdownMenuItem(
value: 'de',
child: getMenuItem('Deutsch', 'assets/de_icon.png'),
child: getMenuItem(
AppLocalizations.of(context)!.german,
'assets/de_icon.png',
),
),
DropdownMenuItem(
value: 'en',
child: getMenuItem('Englisch', 'assets/gb_icon.png'),
child: getMenuItem(
AppLocalizations.of(context)!.english,
'assets/gb_icon.png',
),
),
],
onChanged: _onChanged,

View File

@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
class LanguageWidget extends StatelessWidget {
const LanguageWidget({super.key});
@@ -18,8 +19,9 @@ class LanguageWidget extends StatelessWidget {
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text('Deutsch', style: Theme.of(context).textTheme.bodyLarge),
Text('Muttersprache',
Text(AppLocalizations.of(context)!.german,
style: Theme.of(context).textTheme.bodyLarge),
Text(AppLocalizations.of(context)!.mother_tongue,
style: Theme.of(context).textTheme.bodyMedium),
],
),
@@ -36,8 +38,10 @@ class LanguageWidget extends StatelessWidget {
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text('Englisch', style: Theme.of(context).textTheme.bodyLarge),
Text('Sehr gut', style: Theme.of(context).textTheme.bodyMedium),
Text(AppLocalizations.of(context)!.english,
style: Theme.of(context).textTheme.bodyLarge),
Text(AppLocalizations.of(context)!.very_good,
style: Theme.of(context).textTheme.bodyMedium),
],
),
],