Skip to content

Commit 4e2bafe

Browse files
authored
Merge branch 'master' into master
2 parents e8d94cf + 43d9991 commit 4e2bafe

File tree

3 files changed

+109
-67
lines changed

3 files changed

+109
-67
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ you can choose date / time / date&time in multiple languages:
2020
- English(en)
2121
- French(fr)
2222
- German(de)
23+
- Hebrew(he)
2324
- Indonesian(id)
2425
- Italian(it)
2526
- Japanese(jp)

lib/flutter_datetime_picker.dart

+70-66
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ library flutter_datetime_picker;
33
import 'dart:async';
44
import 'package:flutter/cupertino.dart';
55
import 'package:flutter/material.dart';
6+
import 'package:flutter/painting.dart';
67
import 'package:flutter_datetime_picker/src/datetime_picker_theme.dart';
78
import 'package:flutter_datetime_picker/src/date_model.dart';
89
import 'package:flutter_datetime_picker/src/i18n_model.dart';
@@ -398,70 +399,73 @@ class _DatePickerState extends State<_DatePickerComponent> {
398399
Widget _renderItemView(DatePickerTheme theme) {
399400
return Container(
400401
color: theme.backgroundColor,
401-
child: Row(
402-
mainAxisAlignment: MainAxisAlignment.spaceBetween,
403-
children: <Widget>[
404-
Container(
405-
child: widget.pickerModel.layoutProportions()[0] > 0
406-
? _renderColumnView(
407-
ValueKey(widget.pickerModel.currentLeftIndex()),
408-
theme,
409-
widget.pickerModel.leftStringAtIndex,
410-
leftScrollCtrl,
411-
widget.pickerModel.layoutProportions()[0], (index) {
412-
widget.pickerModel.setLeftIndex(index);
413-
}, (index) {
414-
setState(() {
415-
refreshScrollOffset();
416-
_notifyDateChanged();
417-
});
418-
})
419-
: null,
420-
),
421-
Text(
422-
widget.pickerModel.leftDivider(),
423-
style: theme.itemStyle,
424-
),
425-
Container(
426-
child: widget.pickerModel.layoutProportions()[1] > 0
427-
? _renderColumnView(
428-
ValueKey(widget.pickerModel.currentLeftIndex()),
429-
theme,
430-
widget.pickerModel.middleStringAtIndex,
431-
middleScrollCtrl,
432-
widget.pickerModel.layoutProportions()[1], (index) {
433-
widget.pickerModel.setMiddleIndex(index);
434-
}, (index) {
435-
setState(() {
436-
refreshScrollOffset();
437-
_notifyDateChanged();
438-
});
439-
})
440-
: null,
441-
),
442-
Text(
443-
widget.pickerModel.rightDivider(),
444-
style: theme.itemStyle,
445-
),
446-
Container(
447-
child: widget.pickerModel.layoutProportions()[2] > 0
448-
? _renderColumnView(
449-
ValueKey(widget.pickerModel.currentMiddleIndex() * 100 +
450-
widget.pickerModel.currentLeftIndex()),
451-
theme,
452-
widget.pickerModel.rightStringAtIndex,
453-
rightScrollCtrl,
454-
widget.pickerModel.layoutProportions()[2], (index) {
455-
widget.pickerModel.setRightIndex(index);
456-
}, (index) {
457-
setState(() {
458-
refreshScrollOffset();
459-
_notifyDateChanged();
460-
});
461-
})
462-
: null,
463-
),
464-
],
402+
child: Directionality(
403+
textDirection: TextDirection.ltr,
404+
child: Row(
405+
mainAxisAlignment: MainAxisAlignment.spaceBetween,
406+
children: <Widget>[
407+
Container(
408+
child: widget.pickerModel.layoutProportions()[0] > 0
409+
? _renderColumnView(
410+
ValueKey(widget.pickerModel.currentLeftIndex()),
411+
theme,
412+
widget.pickerModel.leftStringAtIndex,
413+
leftScrollCtrl,
414+
widget.pickerModel.layoutProportions()[0], (index) {
415+
widget.pickerModel.setLeftIndex(index);
416+
}, (index) {
417+
setState(() {
418+
refreshScrollOffset();
419+
_notifyDateChanged();
420+
});
421+
})
422+
: null,
423+
),
424+
Text(
425+
widget.pickerModel.leftDivider(),
426+
style: theme.itemStyle,
427+
),
428+
Container(
429+
child: widget.pickerModel.layoutProportions()[1] > 0
430+
? _renderColumnView(
431+
ValueKey(widget.pickerModel.currentLeftIndex()),
432+
theme,
433+
widget.pickerModel.middleStringAtIndex,
434+
middleScrollCtrl,
435+
widget.pickerModel.layoutProportions()[1], (index) {
436+
widget.pickerModel.setMiddleIndex(index);
437+
}, (index) {
438+
setState(() {
439+
refreshScrollOffset();
440+
_notifyDateChanged();
441+
});
442+
})
443+
: null,
444+
),
445+
Text(
446+
widget.pickerModel.rightDivider(),
447+
style: theme.itemStyle,
448+
),
449+
Container(
450+
child: widget.pickerModel.layoutProportions()[2] > 0
451+
? _renderColumnView(
452+
ValueKey(widget.pickerModel.currentMiddleIndex() * 100 +
453+
widget.pickerModel.currentLeftIndex()),
454+
theme,
455+
widget.pickerModel.rightStringAtIndex,
456+
rightScrollCtrl,
457+
widget.pickerModel.layoutProportions()[2], (index) {
458+
widget.pickerModel.setRightIndex(index);
459+
}, (index) {
460+
setState(() {
461+
refreshScrollOffset();
462+
_notifyDateChanged();
463+
});
464+
})
465+
: null,
466+
),
467+
],
468+
),
465469
),
466470
);
467471
}
@@ -483,7 +487,7 @@ class _DatePickerState extends State<_DatePickerComponent> {
483487
height: theme.titleHeight,
484488
child: CupertinoButton(
485489
pressedOpacity: 0.3,
486-
padding: EdgeInsets.only(left: 16, top: 0),
490+
padding: EdgeInsetsDirectional.only(start: 16, top: 0),
487491
child: Text(
488492
'$cancel',
489493
style: theme.cancelStyle,
@@ -500,7 +504,7 @@ class _DatePickerState extends State<_DatePickerComponent> {
500504
height: theme.titleHeight,
501505
child: CupertinoButton(
502506
pressedOpacity: 0.3,
503-
padding: EdgeInsets.only(right: 16, top: 0),
507+
padding: EdgeInsetsDirectional.only(end: 16, top: 0),
504508
child: Text(
505509
'$done',
506510
style: theme.doneStyle,

lib/src/i18n_model.dart

+38-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ enum LocaleType {
3434
kh,
3535
tw,
3636
fi,
37-
uk
37+
uk,
38+
he
3839
}
3940

4041
final _i18nModel = <LocaleType, Map<String, Object>>{
@@ -1378,6 +1379,42 @@ final _i18nModel = <LocaleType, Map<String, Object>>{
13781379
'am': 'AM',
13791380
'pm': 'PM'
13801381
},
1382+
LocaleType.he: {
1383+
'cancel': 'ביטול',
1384+
'done': 'סיום',
1385+
'today': 'היום',
1386+
'monthShort': [
1387+
'ינו׳',
1388+
'פבר׳',
1389+
'מרץ',
1390+
'אפר׳',
1391+
'מאי',
1392+
'יוני',
1393+
'יולי',
1394+
'אוג׳',
1395+
'ספט׳',
1396+
'אוק׳',
1397+
'נוב׳',
1398+
'דצמ׳'
1399+
],
1400+
'monthLong': [
1401+
'ינואר',
1402+
'פברואר',
1403+
'מרץ',
1404+
'אפריל',
1405+
'מאי',
1406+
'יוני',
1407+
'יולי',
1408+
'אוגוסט',
1409+
'ספטמבר',
1410+
'אוקטובר',
1411+
'נובמבר',
1412+
'דצמבר'
1413+
],
1414+
'day': ['ראשון', 'שני', 'שלישי', 'רביעי', 'חמישי', 'שישי', 'שבת'],
1415+
'am': 'לפנה״צ',
1416+
'pm': 'אחה״צ',
1417+
}
13811418
};
13821419

13831420
/// Get international object for [localeType]

0 commit comments

Comments
 (0)