content localized on locale change
This commit is contained in:
@@ -3,32 +3,29 @@ import 'package:resume/widgets/content_list_tile.dart';
|
||||
import 'package:resume/widgets/language_widget.dart';
|
||||
import 'package:resume/constants.dart' show ContentType;
|
||||
|
||||
import '../services/content_provider.dart';
|
||||
|
||||
class ContentBlock extends StatelessWidget {
|
||||
const ContentBlock({
|
||||
super.key,
|
||||
required this.blockTitle,
|
||||
required this.contentType,
|
||||
required this.content,
|
||||
});
|
||||
|
||||
final String blockTitle;
|
||||
final ContentType contentType;
|
||||
final dynamic content;
|
||||
|
||||
Widget get _getContentWidget {
|
||||
if (contentType == ContentType.language) {
|
||||
return const LanguageWidget();
|
||||
} else if (contentType == ContentType.text ||
|
||||
contentType == ContentType.generalSkills) {
|
||||
final content = ContentProvider.getContent<String>(contentType);
|
||||
return SizedBox(
|
||||
width: double.infinity,
|
||||
child: Text(content),
|
||||
);
|
||||
}
|
||||
// List-based content-blocks
|
||||
List<dynamic> content =
|
||||
ContentProvider.getContent<List<dynamic>>(contentType);
|
||||
List<Widget> widgets = [];
|
||||
for (var item in content) {
|
||||
widgets.add(_buildListTile(item));
|
||||
|
||||
@@ -1,13 +1,22 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class LanguageDropdown extends StatelessWidget {
|
||||
import '../providers/locale_provider.dart';
|
||||
|
||||
class LanguageDropdown extends StatefulWidget {
|
||||
const LanguageDropdown({super.key});
|
||||
|
||||
@override
|
||||
State<LanguageDropdown> createState() => _LanguageDropdownState();
|
||||
}
|
||||
|
||||
class _LanguageDropdownState extends State<LanguageDropdown> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return DropdownButton(
|
||||
value: 'de',
|
||||
LocaleProvider localeProvider = Provider.of<LocaleProvider>(context);
|
||||
return DropdownButton<String>(
|
||||
value: localeProvider.locale.languageCode,
|
||||
items: [
|
||||
DropdownMenuItem(
|
||||
value: 'de',
|
||||
@@ -24,12 +33,13 @@ class LanguageDropdown extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
],
|
||||
onChanged: _onChanged,
|
||||
onChanged: (value) {
|
||||
if (value == null) return;
|
||||
localeProvider.setLocale(Locale(value));
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
void _onChanged(dynamic value) {}
|
||||
|
||||
Widget getMenuItem(String label, String imagePath) {
|
||||
return Row(
|
||||
children: [
|
||||
|
||||
Reference in New Issue
Block a user