From 33b2d3545669525ff486f170d6e5a594e51818a6 Mon Sep 17 00:00:00 2001 From: Simon Schwierzeck Date: Sat, 23 Nov 2019 20:29:55 +0100 Subject: [PATCH 1/4] localized all static strings on newBoxScreen. #131 --- lib/generated/locale_base.dart | 18 ++++++++++++++- lib/screens/newbox_screen.dart | 42 +++++++++++++++++----------------- locales/DE_DE.json | 22 +++++++++++++++--- locales/EN_US.json | 22 +++++++++++++++--- locales/desc.json | 20 ++++++++++++++-- 5 files changed, 94 insertions(+), 30 deletions(-) diff --git a/lib/generated/locale_base.dart b/lib/generated/locale_base.dart index 7df4b834..2fdcc4dd 100644 --- a/lib/generated/locale_base.dart +++ b/lib/generated/locale_base.dart @@ -93,7 +93,7 @@ class LocaleboxNew { final Map _data; LocaleboxNew(this._data); - String get id => _data["id"]; + String get ids => _data["ids"]; String get oldid => _data["oldid"]; String get addBox => _data["addBox"]; String get hangDate => _data["hangDate"]; @@ -112,6 +112,22 @@ class LocaleboxNew { String get veryLarge => _data["veryLarge"]; String get oval => _data["oval"]; String get openFronted => _data["openFronted"]; + String get idOptional => _data["idOptional"]; + String get oldIdOptional => _data["oldIdOptional"]; + String get foreignIdOptional => _data["foreignIdOptional"]; + String get date => _data["date"]; + String get selectDate => _data["selectDate"]; + String get box => _data["box"]; + String get region => _data["region"]; + String get newRegionIdPrefix => _data["newRegionIdPrefix"]; + String get newRegionName => _data["newRegionName"]; + String get position => _data["position"]; + String get longitude => _data["longitude"]; + String get latitude => _data["latitude"]; + String get addGpsData => _data["addGpsData"]; + String get owner => _data["owner"]; + String get newOwnerName => _data["newOwnerName"]; + String get comment => _data["comment"]; } class LocaleholeSizeMapping { final Map _data; diff --git a/lib/screens/newbox_screen.dart b/lib/screens/newbox_screen.dart index 8be5899a..4e3145da 100644 --- a/lib/screens/newbox_screen.dart +++ b/lib/screens/newbox_screen.dart @@ -80,7 +80,7 @@ class _NewBoxDataState extends State { Icon(FontAwesomeIcons.hashtag), Padding( padding: EdgeInsets.fromLTRB(10, 10, 10, 10), - child: Text("IDs")) + child: Text(loc.boxNew.ids)) ], ), subtitle: Column( @@ -92,7 +92,7 @@ class _NewBoxDataState extends State { child: TextFormField( textAlign: TextAlign.left, decoration: InputDecoration( - labelText: "ID - optional", + labelText: loc.boxNew.idOptional, filled: true, fillColor: Colors.white, ), @@ -111,7 +111,7 @@ class _NewBoxDataState extends State { child: TextFormField( textAlign: TextAlign.left, decoration: InputDecoration( - labelText: "old ID - optional", + labelText: loc.boxNew.oldIdOptional, filled: true, fillColor: Colors.white, ), @@ -130,7 +130,7 @@ class _NewBoxDataState extends State { child: TextFormField( textAlign: TextAlign.left, decoration: InputDecoration( - labelText: "foreign ID - optional", + labelText: loc.boxNew.foreignIdOptional, filled: true, fillColor: Colors.white, ), @@ -152,13 +152,13 @@ class _NewBoxDataState extends State { Icon(FontAwesomeIcons.calendarAlt), Padding( padding: EdgeInsets.fromLTRB(0, 20, 10, 10)), - Text("Date"), + Text(loc.boxNew.date), ]), subtitle: Padding( padding: EdgeInsets.fromLTRB(0, 10, 0, 10), child: DateTimePickerFormField( decoration: InputDecoration( - labelText: "select Day", + labelText: loc.boxNew.selectDate, filled: true, fillColor: Colors.white, ), @@ -178,7 +178,7 @@ class _NewBoxDataState extends State { Icon(FontAwesomeIcons.box), Padding( padding: EdgeInsets.fromLTRB(10, 10, 10, 10), - child: Text("Box")) + child: Text(loc.boxNew.box)) ], ), subtitle: Column( @@ -187,14 +187,14 @@ class _NewBoxDataState extends State { padding: EdgeInsets.fromLTRB(0, 10, 0, 10), child: Row( children: [ - Expanded(child: Text("Material:")), + Expanded(child: Text(loc.boxNew.material)), _createMaterialSelection(context), ], )), Row( children: [ Expanded( - child: Text("Hole size:"), + child: Text(loc.boxNew.holeSize), ), _createHoleSizeSlider() ], @@ -210,7 +210,7 @@ class _NewBoxDataState extends State { Icon(FontAwesomeIcons.globe), Padding( padding: EdgeInsets.fromLTRB(10, 10, 10, 10), - child: Text("Region")), + child: Text(loc.boxNew.region)), ], ), subtitle: Column( @@ -259,7 +259,7 @@ class _NewBoxDataState extends State { maxLength: 1, textAlign: TextAlign.left, decoration: InputDecoration( - labelText: "New Region ID Prefix", + labelText: loc.boxNew.newRegionIdPrefix, filled: true, fillColor: Colors.white, ), @@ -273,7 +273,7 @@ class _NewBoxDataState extends State { maxLines: 1, textAlign: TextAlign.left, decoration: InputDecoration( - labelText: "New Region Name", + labelText: loc.boxNew.newRegionName, filled: true, fillColor: Colors.white, ), @@ -294,7 +294,7 @@ class _NewBoxDataState extends State { Icon(FontAwesomeIcons.globeAmericas), Padding( padding: EdgeInsets.fromLTRB(10, 10, 10, 10), - child: Text("Position")), + child: Text(loc.boxNew.position)), ], ), subtitle: Column( @@ -306,7 +306,7 @@ class _NewBoxDataState extends State { readOnly: true, decoration: InputDecoration( labelText: - "Latitude ${(_position == null) ? "" : _position.latitude}", + "${loc.boxNew.latitude} ${(_position == null) ? "" : _position.latitude}", filled: true, fillColor: Colors.white, ), @@ -318,7 +318,7 @@ class _NewBoxDataState extends State { textAlign: TextAlign.left, decoration: InputDecoration( labelText: - "Longitude ${(_position == null) ? "" : _position.longitude}", + "${loc.boxNew.longitude} ${(_position == null) ? "" : _position.longitude}", filled: true, fillColor: Colors.white, ), @@ -330,7 +330,7 @@ class _NewBoxDataState extends State { Padding( padding: EdgeInsets.fromLTRB(10, 10, 10, 10), - child: (Text("Add GPS Data"))), + child: (Text(loc.boxNew.addGpsData))), IconButton( icon: Icon(Icons.gps_fixed), onPressed: () async { @@ -364,7 +364,7 @@ class _NewBoxDataState extends State { Icon(FontAwesomeIcons.userAlt), Padding( padding: EdgeInsets.fromLTRB(10, 10, 10, 10), - child: Text("Owner")), + child: Text(loc.boxNew.owner)), ], ), subtitle: Column( @@ -411,7 +411,7 @@ class _NewBoxDataState extends State { maxLines: 1, textAlign: TextAlign.left, decoration: InputDecoration( - labelText: "New Owner Name", + labelText: loc.boxNew.newOwnerName, filled: true, fillColor: Colors.white, ), @@ -432,7 +432,7 @@ class _NewBoxDataState extends State { Icon(FontAwesomeIcons.comment), Padding( padding: EdgeInsets.fromLTRB(10, 10, 10, 10), - child: Text("Comment")) + child: Text(loc.boxNew.comment)) ], ), subtitle: TextFormField( @@ -473,7 +473,7 @@ class _NewBoxDataState extends State { ); }, child: Text( - "Create new Nesting Box", + loc.boxNew.addBox, style: TextStyle( fontSize: 20, color: Colors.white, @@ -507,7 +507,7 @@ class _NewBoxDataState extends State { child: DropdownButton( value: (_dropDownMaterial != null) ? _dropDownMaterial : "UntreatedWood", - icon: Icon(Icons.arrow_downward), + icon: Icon(Icons.arrow_drop_down), iconSize: 24, onChanged: (String newValue) { setState(() { diff --git a/locales/DE_DE.json b/locales/DE_DE.json index 1dab872d..adb1cab0 100644 --- a/locales/DE_DE.json +++ b/locales/DE_DE.json @@ -40,9 +40,9 @@ "daysAgo": "Tage her" }, "boxNew": { - "id": "ID", + "ids": "IDs", "oldid": "Alte ID", - "addBox": "Nistkasten erstellen", + "addBox": "Neuen Nistkasten erstellen", "hangDate": "Aufhängedatum", "untreatedWood": "Unbehandeltes Holz", "material": "Material", @@ -58,7 +58,23 @@ "otherMaterial": "Anderes", "veryLarge": "Sehr Groß", "oval": "Oval", - "openFronted": "Öffnung vorne" + "openFronted": "Öffnung vorne", + "idOptional": "ID - optional", + "oldIdOptional": "Alte ID - optional", + "foreignIdOptional": "Fremd-ID - optional", + "date": "Datum", + "selectDate": "Datum auswählen", + "box": "Kasten", + "region": "Region", + "newRegionIdPrefix": "Neuer Regions-ID-Präfix", + "newRegionName": "Neuer Regionsname", + "position": "Position", + "longitude": "Längengrad", + "latitude": "Breitengrad", + "addGpsData": "GPS-Daten hinzufügen", + "owner": "Eigentümer", + "newOwnerName": "Neuer Eigentümer", + "comment": "Kommentar" }, "holeSizeMapping": { "other": "Andere", diff --git a/locales/EN_US.json b/locales/EN_US.json index 324dc8ef..5fcdecab 100644 --- a/locales/EN_US.json +++ b/locales/EN_US.json @@ -40,9 +40,9 @@ "daysAgo": "days ago" }, "boxNew": { - "id": "ID", + "ids": "IDs", "oldid": "Old ID", - "addBox": "create nestingbox", + "addBox": "Create new Nesting Box", "hangDate": "hang date", "untreatedWood": "Untreated Wood", "material": "material", @@ -58,7 +58,23 @@ "otherMaterial": "Other", "veryLarge": "Very Large", "oval": "Oval", - "openFronted": "Open Fronted" + "openFronted": "Open Fronted", + "idOptional": "ID - optional", + "oldIdOptional": "Old ID - optional", + "foreignIdOptional": "Foreign ID - optional", + "date": "Date", + "selectDate": "Select Day", + "box": "Box", + "region": "Region", + "newRegionIdPrefix": "New Region ID Prefix", + "newRegionName": "New Region Name", + "position": "Position", + "longitude": "Longitude", + "latitude": "Latitude", + "addGpsData": "Add GPS Data", + "owner": "Owner", + "newOwnerName": "New Owner Name", + "comment": "Comment" }, "holeSizeMapping": { "other": "Other", diff --git a/locales/desc.json b/locales/desc.json index 03530db5..b3962981 100644 --- a/locales/desc.json +++ b/locales/desc.json @@ -40,7 +40,7 @@ "daysAgo": "days ago" }, "boxNew": { - "id": "id", + "ids": "ids", "oldid": "old id", "addBox": "add box button", "hangDate": "Date of Box creation", @@ -58,7 +58,23 @@ "otherMaterial": "other material", "veryLarge": "very large size", "oval": "oval hole size", - "openFronted": "open fronted hole size" + "openFronted": "open fronted hole size", + "idOptional": "ID optional", + "oldIdOptional": "old ID optional", + "foreignIdOptional": "foreign ID optional", + "date": "date", + "selectDate": "select Date", + "box": "box", + "region": "region", + "newRegionIdPrefix": "new Region ID prefix", + "newRegionName": "new region name", + "position": "position", + "longitude": "longitude", + "latitude": "latitude", + "addGpsData": "add GPS data", + "owner": "Owner", + "newOwnerName": "new Owner Name", + "comment": "comment" }, "holeSizeMapping": { "other": "other hole size", From b91857907c9b011c65f1ec50190883a91add7018 Mon Sep 17 00:00:00 2001 From: Simon Schwierzeck Date: Sun, 24 Nov 2019 15:14:12 +0100 Subject: [PATCH 2/4] Finished mapping of Strings and localization for newbox. resolves #131 --- lib/screens/newbox_screen.dart | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/screens/newbox_screen.dart b/lib/screens/newbox_screen.dart index 4e3145da..7b78a65e 100644 --- a/lib/screens/newbox_screen.dart +++ b/lib/screens/newbox_screen.dart @@ -512,6 +512,7 @@ class _NewBoxDataState extends State { onChanged: (String newValue) { setState(() { _dropDownMaterial = newValue; + print(_dropDownMaterial); }); }, items: [ @@ -522,7 +523,7 @@ class _NewBoxDataState extends State { ].map>((String value) { return DropdownMenuItem( value: value, - child: Text(value), + child: Text(getDropDownTexts(value)), ); }).toList(), ), @@ -546,6 +547,17 @@ class _NewBoxDataState extends State { ); } + String getDropDownTexts(String value) { + final loc = Localizations.of(context, LocaleBase); + var map = { + "UntreatedWood": loc.boxNew.untreatedWood, + "TreatedWood": loc.boxNew.treatedWood, + "WoodConcrete": loc.boxNew.concrete, + "Other": loc.boxNew.otherMaterial, + }; + return map[value]; + } + String getSliderLabel(double value) { final loc = Localizations.of(context, LocaleBase); var sizeMap = { From bcc00b00ee37661d82623f4c93360c92448eb0ec Mon Sep 17 00:00:00 2001 From: Simon Schwierzeck Date: Sun, 24 Nov 2019 15:43:35 +0100 Subject: [PATCH 3/4] added localization for slider label --- lib/screens/newbox_screen.dart | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/lib/screens/newbox_screen.dart b/lib/screens/newbox_screen.dart index 7b78a65e..987b63f9 100644 --- a/lib/screens/newbox_screen.dart +++ b/lib/screens/newbox_screen.dart @@ -512,7 +512,6 @@ class _NewBoxDataState extends State { onChanged: (String newValue) { setState(() { _dropDownMaterial = newValue; - print(_dropDownMaterial); }); }, items: [ @@ -537,7 +536,7 @@ class _NewBoxDataState extends State { min: 0, max: 5, divisions: 5, - label: getSliderLabel(_slideHoleSize), + label: getLocalizedSliderLabel(_slideHoleSize), onChanged: (double newValue) { setState(() { _slideHoleSize = newValue; @@ -570,4 +569,17 @@ class _NewBoxDataState extends State { }; return sizeMap[value]; } + + String getLocalizedSliderLabel(double value) { + final loc = Localizations.of(context, LocaleBase); + var sizeMap = { + 0: loc.boxNew.small, + 1: loc.boxNew.medium, + 2: loc.boxNew.large, + 3: loc.boxNew.veryLarge, + 4: loc.boxNew.oval, + 5: loc.boxNew.openFronted, + }; + return sizeMap[value]; + } } From 46b30bacf9765d87752cd09c46943bc4612eeb72 Mon Sep 17 00:00:00 2001 From: Simon Schwierzeck Date: Sun, 24 Nov 2019 15:56:06 +0100 Subject: [PATCH 4/4] finished mapping of enums and localization for new inspection screen. resolves #132 --- lib/generated/locale_base.dart | 4 +++ lib/screens/newinspection_screen.dart | 49 +++++++++++++++++++-------- locales/DE_DE.json | 8 +++-- locales/EN_US.json | 6 +++- locales/desc.json | 6 +++- 5 files changed, 55 insertions(+), 18 deletions(-) diff --git a/lib/generated/locale_base.dart b/lib/generated/locale_base.dart index 2fdcc4dd..c91e9f4e 100644 --- a/lib/generated/locale_base.dart +++ b/lib/generated/locale_base.dart @@ -166,6 +166,10 @@ class LocaleinspectionList { String get numberOfEggs => _data["numberOfEggs"]; String get repaired => _data["repaired"]; String get numberOfChicks => _data["numberOfChicks"]; + String get eggs => _data["eggs"]; + String get birds => _data["birds"]; + String get newSpecies => _data["newSpecies"]; + String get addInspection => _data["addInspection"]; } class Localelogin { final Map _data; diff --git a/lib/screens/newinspection_screen.dart b/lib/screens/newinspection_screen.dart index 94736fa8..7beedca6 100644 --- a/lib/screens/newinspection_screen.dart +++ b/lib/screens/newinspection_screen.dart @@ -58,7 +58,7 @@ class _NewInspectionDataState extends State { int _ageInDays = 0; String _comment; double _sliderCondition = 2; - Color sliderColor; + Color sliderColor = Colors.green; String _speciesString; Species _species; @@ -73,13 +73,13 @@ class _NewInspectionDataState extends State { title: Row(children: [ Icon(FontAwesomeIcons.calendarAlt), Padding(padding: EdgeInsets.fromLTRB(0, 20, 10, 10)), - Text("Date"), + Text(loc.boxNew.date), ]), subtitle: Padding( padding: EdgeInsets.fromLTRB(0, 10, 0, 10), child: DateTimePickerFormField( decoration: InputDecoration( - labelText: "select Day", + labelText: loc.boxNew.selectDate, filled: true, fillColor: Colors.white, ), @@ -103,7 +103,7 @@ class _NewInspectionDataState extends State { Icon(FontAwesomeIcons.tools), Padding( padding: EdgeInsets.fromLTRB(10, 10, 10, 10), - child: Text("Box")), + child: Text(loc.boxNew.box)), ]), ), CheckboxListTile( @@ -128,7 +128,7 @@ class _NewInspectionDataState extends State { Expanded(child: Text(loc.boxInfo.boxCondition)), Slider( value: _sliderCondition, - label: getSliderLabel(_sliderCondition), + label: getLocalizedSliderLabel(_sliderCondition), activeColor: sliderColor, min: 0, max: 2, @@ -155,7 +155,7 @@ class _NewInspectionDataState extends State { Icon(FontAwesomeIcons.egg), Padding( padding: EdgeInsets.fromLTRB(10, 10, 10, 10), - child: Text("Eggs"), + child: Text(loc.inspectionList.eggs), ) ]), ), @@ -201,7 +201,7 @@ class _NewInspectionDataState extends State { Icon(FontAwesomeIcons.kiwiBird), Padding( padding: EdgeInsets.fromLTRB(10, 10, 10, 10), - child: Text("Birds"), + child: Text(loc.inspectionList.birds), ) ]), ), @@ -294,7 +294,7 @@ class _NewInspectionDataState extends State { title: Row( children: [ Expanded( - child: Text(loc.boxInfo.femaleInBox), + child: Text(loc.boxInfo.maleInBox), ), _createMaleParentBirdSelection(context) ], @@ -346,7 +346,7 @@ class _NewInspectionDataState extends State { maxLength: 1, textAlign: TextAlign.left, decoration: InputDecoration( - labelText: "New Species", + labelText: loc.inspectionList.newSpecies, filled: true, fillColor: Colors.white, ), @@ -364,7 +364,7 @@ class _NewInspectionDataState extends State { Icon(FontAwesomeIcons.comment), Padding( padding: EdgeInsets.fromLTRB(10, 10, 10, 10), - child: Text("Comment")) + child: Text(loc.boxNew.comment)) ], ), subtitle: TextFormField( @@ -413,7 +413,7 @@ class _NewInspectionDataState extends State { ); }, child: Text( - "Create new Inspection", + loc.inspectionList.addInspection, style: TextStyle( fontSize: 20, color: Colors.white, @@ -446,7 +446,7 @@ class _NewInspectionDataState extends State { sliderColor = Colors.red; return "NeedsReplacement"; } else if (value == 1) { - sliderColor = Colors.yellow; + sliderColor = Colors.orange; return "NeedsRepair"; } else { sliderColor = Colors.green; @@ -454,6 +454,16 @@ class _NewInspectionDataState extends State { } } + String getLocalizedSliderLabel(double value) { + final loc = Localizations.of(context, LocaleBase); + var map = { + 0: loc.inspectionList.needsReplacement, + 1: loc.inspectionList.needsRepair, + 2: loc.inspectionList.good, + }; + return map[value]; + } + Widget _createFemaleParentBirdSelection(BuildContext context) { final loc = Localizations.of(context, LocaleBase); return Container( @@ -474,7 +484,7 @@ class _NewInspectionDataState extends State { ].map>((String value) { return DropdownMenuItem( value: value, - child: Text(value), + child: Text(getParentBirdDropDownNames(value)), ); }).toList(), ), @@ -501,10 +511,21 @@ class _NewInspectionDataState extends State { ].map>((String value) { return DropdownMenuItem( value: value, - child: Text(value), + child: Text(getParentBirdDropDownNames(value)), ); }).toList(), ), ); } + + String getParentBirdDropDownNames(String value) { + final loc = Localizations.of(context, LocaleBase); + var map = { + "None": loc.inspectionList.none, + "NotRinged": loc.inspectionList.notRinged, + "AlreadyRinged": loc.inspectionList.alreadyRinged, + "NewlyRinged": loc.inspectionList.newlyRinged, + }; + return map[value]; + } } diff --git a/locales/DE_DE.json b/locales/DE_DE.json index adb1cab0..4d24a102 100644 --- a/locales/DE_DE.json +++ b/locales/DE_DE.json @@ -97,7 +97,7 @@ "good": "Gut", "needsRepair": "braucht Reperatur", "needsReplacement": "Muss ersetzt Werden", - "none": "Keine", + "none": "Keiner", "notRinged": "Nicht Beringt", "alreadyRinged": "Bereits Beringt", "newlyRinged": "Neu Beringt", @@ -106,7 +106,11 @@ "containsEggs": "Enthält Eier:", "numberOfEggs": "Anzahl der Eier:", "repaired": "Repariert:", - "numberOfChicks": "Anzahl Jungvögel" + "numberOfChicks": "Anzahl Jungvögel", + "eggs": "Eier", + "birds": "Vögel", + "newSpecies": "Neue Art", + "addInspection": "Neue Inspektion erstellen" }, "login": { "domain": "Domain", diff --git a/locales/EN_US.json b/locales/EN_US.json index 5fcdecab..cd686c85 100644 --- a/locales/EN_US.json +++ b/locales/EN_US.json @@ -106,7 +106,11 @@ "containsEggs": "Contains Eggs:", "numberOfEggs": "Number of Eggs:", "repaired": "Repaired:", - "numberOfChicks": "Number of Chicks" + "numberOfChicks": "Number of Chicks", + "eggs": "Eggs", + "birds": "Birds", + "newSpecies": "New Species", + "addInspection": "Create new Inspection" }, "login": { "domain": "Domain", diff --git a/locales/desc.json b/locales/desc.json index b3962981..d1915209 100644 --- a/locales/desc.json +++ b/locales/desc.json @@ -106,7 +106,11 @@ "containsEggs": "contains Eggs", "numberOfEggs": "number of eggs", "repaired": "repaired", - "numberOfChicks": "number of chicks" + "numberOfChicks": "number of chicks", + "eggs": "eggs", + "birds": "birds", + "newSpecies": "new species", + "addInspection": "add new inspection " }, "login": { "domain": "domain text box",