Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

support "de" locale #10

Merged
merged 11 commits into from
Oct 31, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
## 1.4.4

- Add support for 'de' locale
- Fix initialPageSize is ignored when setup the widget

## 1.4.3

- Update dependencies
Expand Down
5 changes: 1 addition & 4 deletions analysis_options.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1 @@
include: package:flutter_lints/flutter.yaml

# Additional information about this file can be found at
# https://dart.dev/guides/language/analysis-options
include: package:lints/recommended.yaml
7 changes: 5 additions & 2 deletions example/lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,8 @@ class _MainViewState extends State<MainView> {
FilterMenuItem(
title: const Text("Remove row"),
onTap: () {
tableController.removeRow(tableController.currentDataset.first.id);
tableController
.removeRow(tableController.currentDataset.first.id);
},
),
FilterMenuItem(
Expand Down Expand Up @@ -268,7 +269,9 @@ class _MainViewState extends State<MainView> {
onTap: () {
final random = Random.secure();
tableController.selectRow(tableController
.currentDataset[random.nextInt(tableController.currentDataset.length)].id);
.currentDataset[
random.nextInt(tableController.currentDataset.length)]
.id);
}),
const FilterMenuDivider(),
FilterMenuItem(
Expand Down
48 changes: 24 additions & 24 deletions example/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,10 @@ packages:
dependency: transitive
description:
name: collection
sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c"
sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687
url: "https://pub.dev"
source: hosted
version: "1.17.1"
version: "1.17.2"
crypto:
dependency: transitive
description:
Expand Down Expand Up @@ -114,10 +114,10 @@ packages:
dependency: transitive
description:
name: flutter_hooks
sha256: "9eab8fd7aa752c3c1c0a364f9825851d410eb935243411682f4b1b0a4c569d71"
sha256: "7c8db779c2d1010aa7f9ea3fbefe8f86524fcb87b69e8b0af31e1a4b55422dec"
url: "https://pub.dev"
source: hosted
version: "0.20.0"
version: "0.20.3"
flutter_lints:
dependency: "direct dev"
description:
Expand Down Expand Up @@ -164,18 +164,10 @@ packages:
dependency: "direct main"
description:
name: intl
sha256: a3715e3bc90294e971cb7dc063fbf3cd9ee0ebf8604ffeafabd9e6f16abbdbe6
sha256: "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d"
url: "https://pub.dev"
source: hosted
version: "0.18.0"
js:
dependency: transitive
description:
name: js
sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
url: "https://pub.dev"
source: hosted
version: "0.6.7"
version: "0.18.1"
lints:
dependency: transitive
description:
Expand All @@ -188,18 +180,18 @@ packages:
dependency: transitive
description:
name: matcher
sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb"
sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e"
url: "https://pub.dev"
source: hosted
version: "0.12.15"
version: "0.12.16"
material_color_utilities:
dependency: transitive
description:
name: material_color_utilities
sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724
sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41"
url: "https://pub.dev"
source: hosted
version: "0.2.0"
version: "0.5.0"
meta:
dependency: transitive
description:
Expand All @@ -222,7 +214,7 @@ packages:
path: ".."
relative: true
source: path
version: "1.4.3"
version: "1.4.4"
path:
dependency: transitive
description:
Expand Down Expand Up @@ -320,10 +312,10 @@ packages:
dependency: transitive
description:
name: source_span
sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
url: "https://pub.dev"
source: hosted
version: "1.9.1"
version: "1.10.0"
stack_trace:
dependency: transitive
description:
Expand Down Expand Up @@ -360,10 +352,10 @@ packages:
dependency: transitive
description:
name: test_api
sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb
sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8"
url: "https://pub.dev"
source: hosted
version: "0.5.1"
version: "0.6.0"
typed_data:
dependency: transitive
description:
Expand All @@ -380,6 +372,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.4"
web:
dependency: transitive
description:
name: web
sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10
url: "https://pub.dev"
source: hosted
version: "0.1.4-beta"
win32:
dependency: transitive
description:
Expand All @@ -397,5 +397,5 @@ packages:
source: hosted
version: "0.2.0+3"
sdks:
dart: ">=3.0.0 <4.0.0"
dart: ">=3.1.0-185.0.dev <4.0.0"
flutter: ">=3.0.0"
2 changes: 1 addition & 1 deletion gen_locales.sh
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
#!/bin/bash
flutter pub run intl_utils:generate
fvm flutter pub run intl_utils:generate
4 changes: 4 additions & 0 deletions lib/l10n/generated/intl/messages_all.dart
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,21 @@ import 'package:intl/intl.dart';
import 'package:intl/message_lookup_by_library.dart';
import 'package:intl/src/intl_helpers.dart';

import 'messages_de.dart' as messages_de;
import 'messages_en.dart' as messages_en;
import 'messages_es.dart' as messages_es;

typedef Future<dynamic> LibraryLoader();
Map<String, LibraryLoader> _deferredLibraries = {
'de': () => new SynchronousFuture(null),
'en': () => new SynchronousFuture(null),
'es': () => new SynchronousFuture(null),
};

MessageLookupByLibrary? _findExact(String localeName) {
switch (localeName) {
case 'de':
return messages_de.messages;
case 'en':
return messages_en.messages;
case 'es':
Expand Down
54 changes: 54 additions & 0 deletions lib/l10n/generated/intl/messages_de.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
// DO NOT EDIT. This is code generated via package:intl/generate_localized.dart
// This is a library that provides messages for a de locale. All the
// messages from the main program should be duplicated here with the same
// function name.

// Ignore issues from commonly used lints in this file.
// ignore_for_file:unnecessary_brace_in_string_interps, unnecessary_new
// ignore_for_file:prefer_single_quotes,comment_references, directives_ordering
// ignore_for_file:annotate_overrides,prefer_generic_function_type_aliases
// ignore_for_file:unused_import, file_names, avoid_escaping_inner_quotes
// ignore_for_file:unnecessary_string_interpolations, unnecessary_string_escapes

import 'package:intl/intl.dart';
import 'package:intl/message_lookup_by_library.dart';

final messages = new MessageLookup();

typedef String MessageIfAbsent(String messageStr, List<dynamic> args);

class MessageLookup extends MessageLookupByLibrary {
String get localeName => 'de';

static String m0(currentPage) => "Seite ${currentPage}";

static String m1(time) => "Zuletzt aktualisiert um ${time}";

static String m2(totalElements) => "Zeigt ${totalElements} Elemente an";

final messages = _notInlinedMessages(_notInlinedMessages);
static Map<String, Function> _notInlinedMessages(_) => <String, Function>{
"applyFilterButtonText":
MessageLookupByLibrary.simpleMessage("Anwenden"),
"cancelFilteringButtonText":
MessageLookupByLibrary.simpleMessage("Abbrechen"),
"filterByTitle": MessageLookupByLibrary.simpleMessage("Filtern nach"),
"nextPageButtonText":
MessageLookupByLibrary.simpleMessage("Nächste Seite"),
"noItemsFoundText":
MessageLookupByLibrary.simpleMessage("Keine Elemente gefunden"),
"pageIndicatorText": m0,
"previousPageButtonText":
MessageLookupByLibrary.simpleMessage("Vorherige Seite"),
"refreshText": MessageLookupByLibrary.simpleMessage("Aktualisieren"),
"refreshedAtText": m1,
"removeAllFiltersButtonText":
MessageLookupByLibrary.simpleMessage("Entfernen"),
"removeFilterButtonText":
MessageLookupByLibrary.simpleMessage("Diesen Filter entfernen"),
"rowsPagePageText":
MessageLookupByLibrary.simpleMessage("Zeilen pro Seite"),
"showFilterMenuTooltip": MessageLookupByLibrary.simpleMessage("Filter"),
"totalElementsText": m2
};
}
1 change: 1 addition & 0 deletions lib/l10n/generated/l10n.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

31 changes: 31 additions & 0 deletions lib/l10n/intl_de.arb
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"showFilterMenuTooltip": "Filter",
"filterByTitle": "Filtern nach",
"applyFilterButtonText": "Anwenden",
"cancelFilteringButtonText": "Abbrechen",
"removeAllFiltersButtonText": "Entfernen",
"removeFilterButtonText": "Diesen Filter entfernen",
"refreshText": "Aktualisieren",
"refreshedAtText": "Zuletzt aktualisiert um {time}",
"@refreshedAtText": {
"placeholders": {
"Zeit": {}
}
},
"rowsPagePageText": "Zeilen pro Seite",
"pageIndicatorText": "Seite {currentPage}",
"@pageIndicatorText": {
"placeholders": {
"currentPage": {}
}
},
"totalElementsText": "Zeigt {totalElements} Elemente an",
"@totalElementsText": {
"placeholders": {
"totalElements": {}
}
},
"nextPageButtonText": "Nächste Seite",
"previousPageButtonText": "Vorherige Seite",
"noItemsFoundText": "Keine Elemente gefunden"
}
41 changes: 28 additions & 13 deletions lib/src/paged_datatable.dart
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ part 'types.dart';
/// A paginated DataTable that allows page caching and filtering
/// [TKey] is the type of the page token
/// [TResult] is the type of data the data table will show.
class PagedDataTable<TKey extends Comparable, TResultId extends Comparable, TResult extends Object>
extends StatelessWidget {
class PagedDataTable<TKey extends Comparable, TResultId extends Comparable,
TResult extends Object> extends StatelessWidget {
/// The callback that gets executed when a page is fetched.
final FetchCallback<TKey, TResult> fetchPage;

Expand Down Expand Up @@ -102,7 +102,11 @@ class PagedDataTable<TKey extends Comparable, TResultId extends Comparable, TRes

@override
Widget build(BuildContext context) {
return ChangeNotifierProvider<_PagedDataTableState<TKey, TResultId, TResult>>(
final localTheme = PagedDataTableTheme.maybeOf(context) ??
theme ??
_kDefaultPagedDataTableTheme;
return ChangeNotifierProvider<
_PagedDataTableState<TKey, TResultId, TResult>>(
create: (context) => _PagedDataTableState(
columns: columns,
rowsSelectable: rowsSelectable,
Expand All @@ -111,30 +115,36 @@ class PagedDataTable<TKey extends Comparable, TResultId extends Comparable, TRes
controller: controller,
fetchCallback: fetchPage,
initialPage: initialPage,
pageSize: localTheme.configuration.initialPageSize,
refreshListener: refreshListener),
builder: (context, widget) {
var state = context.read<_PagedDataTableState<TKey, TResultId, TResult>>();
final localTheme =
PagedDataTableTheme.maybeOf(context) ?? theme ?? _kDefaultPagedDataTableTheme;
var state =
context.read<_PagedDataTableState<TKey, TResultId, TResult>>();

Widget child = Material(
color: localTheme.backgroundColor,
elevation: 0,
textStyle: localTheme.textStyle,
shape: theme?.border,
child: LayoutBuilder(builder: (context, constraints) {
var width = constraints.maxWidth - (columns.length * 32) - (rowsSelectable ? 32 : 0);
var width = constraints.maxWidth -
(columns.length * 32) -
(rowsSelectable ? 32 : 0);
state.availableWidth = width;
return Column(
children: [
/* FILTER TAB */
if (header != null || menu != null || state.filters.isNotEmpty) ...[
_PagedDataTableFilterTab<TKey, TResultId, TResult>(menu, header),
if (header != null ||
menu != null ||
state.filters.isNotEmpty) ...[
_PagedDataTableFilterTab<TKey, TResultId, TResult>(
menu, header),
Divider(height: 0, color: localTheme.dividerColor),
],

/* HEADER ROW */
_PagedDataTableHeaderRow<TKey, TResultId, TResult>(rowsSelectable, width),
_PagedDataTableHeaderRow<TKey, TResultId, TResult>(
rowsSelectable, width),
Divider(height: 0, color: localTheme.dividerColor),

/* ITEMS */
Expand All @@ -144,7 +154,8 @@ class PagedDataTable<TKey extends Comparable, TResultId extends Comparable, TRes
customRowBuilder ??
CustomRowBuilder<TResult>(
builder: (context, item) =>
throw UnimplementedError("This does not build nothing"),
throw UnimplementedError(
"This does not build nothing"),
shouldUse: (context, item) => false),
noItemsFoundBuilder,
errorBuilder,
Expand All @@ -164,10 +175,14 @@ class PagedDataTable<TKey extends Comparable, TResultId extends Comparable, TRes
// apply configuration to this widget only
if (theme != null) {
child = PagedDataTableTheme(data: theme!, child: child);
assert(theme!.rowColors != null ? theme!.rowColors!.length == 2 : true,
assert(
theme!.rowColors != null ? theme!.rowColors!.length == 2 : true,
"rowColors must contain exactly two colors");
} else {
assert(localTheme.rowColors != null ? localTheme.rowColors!.length == 2 : true,
assert(
localTheme.rowColors != null
? localTheme.rowColors!.length == 2
: true,
"rowColors must contain exactly two colors");
}

Expand Down
Loading