From d2af7fd3e6cdf652b3ae6a16fef9de8d04f31ab7 Mon Sep 17 00:00:00 2001
From: vishnuraghavb
Date: Fri, 18 Jun 2021 18:20:59 +0530
Subject: [PATCH 01/10] merged new strings
---
app/i18n/ar.json | 19 --
app/i18n/da.json | 19 --
app/i18n/de.json | 40 ++---
app/i18n/en-GB.default.json | 37 +---
app/i18n/en-IN.json | 40 ++---
app/i18n/en-US.json | 40 ++---
app/i18n/es.json | 49 +++---
app/i18n/fi.json | 343 ------------------------------------
app/i18n/fr-BE.json | 40 ++---
app/i18n/fr-CA.json | 42 ++---
app/i18n/fr-CH.json | 40 ++---
app/i18n/fr.json | 40 ++---
app/i18n/hi.json | 47 ++---
app/i18n/id.json | 19 --
app/i18n/it.json | 60 +++----
app/i18n/ja.json | 22 +--
app/i18n/ml.json | 77 +++++---
app/i18n/nb-NO.json | 19 --
app/i18n/nl.json | 34 +---
app/i18n/pt-BR.json | 203 +++++++++++----------
app/i18n/pt.json | 78 +++-----
app/i18n/ru.json | 19 --
app/i18n/ta.json | 38 +---
app/i18n/te.json | 47 ++---
24 files changed, 365 insertions(+), 1047 deletions(-)
delete mode 100644 app/i18n/fi.json
diff --git a/app/i18n/ar.json b/app/i18n/ar.json
index 1d54bfb7..419225d9 100644
--- a/app/i18n/ar.json
+++ b/app/i18n/ar.json
@@ -18,9 +18,7 @@
"appInfo": "EnRecipes كتاب طبخ مفتوح المصدر صديق للخصوصية يتيح لك إنشاء وصفاتك و إدارتها ومشاركتها",
"apply": "طبق",
"appRst": "إعادة تشغيل التطبيق متطلبة",
- "April": "أبريل",
"aStpBtn": "أضف خطوة",
- "August": "أغسطس",
"Barbecue": "شواء",
"Beverages": "مشروبات",
"Black": "أسود",
@@ -53,7 +51,6 @@
"Dark": "داكن",
"db": "قاعدة البيانات",
"dBtn": "DELETE",
- "December": "ديسمبر",
"delRecInfo": "أنت على وشك أن تحذف الوصفة %s أبدياً",
"delRecsInfo": "أنت على وشك أنت تحذف %s أبدياً",
"Desserts": "حلا",
@@ -75,14 +72,12 @@
"expip": "جار التصدير",
"expSuc": "نجح التصدير",
"favourites": "المفضلات",
- "February": "فبراير",
"Filipino": "فلبينية",
"Filtered recipes": "الوصفات المصفاة",
"fl oz": "fl oz",
"fltr": "المصفاة",
"Fluid Ounce": "أونصة سائلة",
"French": "فرنسية",
- "FRI": "FRI",
"fsList": "وصفاتك المفضلة مسرودة هنا",
"g": "غ",
"gal": "جال",
@@ -111,12 +106,9 @@
"it": "Item",
"Italian": "إيطالية",
"Jamaican": "جمايكية",
- "January": "يناير",
"Japanese": "يابانية",
"Jewish": "يهودية",
"joinTG": "انضم لمجموعة التلغرام",
- "July": "يوليو",
- "June": "يونيو",
"kEdit": "KEEP EDITING",
"Kenyan": "كينية",
"kg": "كغ",
@@ -136,8 +128,6 @@
"lunch": "غداء",
"mAgo": "منذ %s أشهر",
"Main dishes": "الأطباق الرئيسة",
- "March": "مارس",
- "May": "مايو",
"Meat": "لحم",
"medium": "medium",
"Mexican": "مكسيكية",
@@ -148,7 +138,6 @@
"minimal": "الأقل",
"ml": "مل",
"Moderate": "متوسطة",
- "MON": "MON",
"newCui": "مطبخ جديد",
"Newest first": "الأجد أولاً",
"newRec": "وصفة جديدة",
@@ -163,10 +152,8 @@
"noRecs": "لا وصفات مطابقة لبحثك",
"noRecsInL": "لا توجد وصفات هنا تطابق بحثك",
"nos": "ملاحظات",
- "November": "نوفمبر",
"nwCat": "صنف جديد",
"nwYiU": "وحدة إنتاج جديدة",
- "October": "أكتوبر",
"OK": "OK",
"Oldest first": "الأقدم أولاً",
"opts": "الاعدادات",
@@ -224,12 +211,10 @@
"rst": "أعد التشغيل",
"Russian": "روسية",
"Salads": "سلطات",
- "SAT": "SAT",
"Sauces": "صلصات",
"Scottish": "سكتلندية",
"Seafood": "بحرية",
"selRec": "اختر وصفة",
- "September": "سبتمبر",
"ser": "ابحث",
"Serving": "حصة",
"SET": "SET",
@@ -251,7 +236,6 @@
"stick": "اصبع",
"stp": "خطوة",
"strAdd": "ابدأ إضافة وصفاتك!",
- "SUN": "SUN",
"sVw": "هز لرؤية وصفة عشوائية",
"sVwInfo": "لمساعدتك على اختيار ما تطبخ عندما لا تستطيع الاختيار",
"Swedish": "سويدية",
@@ -262,7 +246,6 @@
"Teaspoon": "ملعقة شاي",
"Thai": "تايلندية",
"Theme": "السمة",
- "THU": "THU",
"title": "العنوان",
"tLInfo": "الوصفات التي تريد تجربتها مسرودة هنا",
"today": "اليوم",
@@ -273,7 +256,6 @@
"ts": "العلامات",
"tsInfo": "افصل بمساقات",
"tsp": "ملعقة كبيرة",
- "TUE": "TUE",
"Turkish": "تركية",
"Undefined": "غير معرف",
"unit": "وحدة",
@@ -284,7 +266,6 @@
"Vegetarian": "نباتي",
"Vietnamese": "فيتنامية",
"wAgo": "قبل %s أسابيع",
- "WED": "WED",
"yesterday": "أمس",
"yieldQ": "كمية الإنتاج",
"yieldU": "وحدة الانتاج",
diff --git a/app/i18n/da.json b/app/i18n/da.json
index 2a0d0e51..0aee7c70 100644
--- a/app/i18n/da.json
+++ b/app/i18n/da.json
@@ -143,13 +143,6 @@
"yesterday": "i går",
"disBtn": "AFFALD",
"fltr": "Filtrer",
- "FRI": "FRE",
- "MON": "MAN",
- "SAT": "LøR",
- "SUN": "SøN",
- "THU": "TOR",
- "TUE": "TIR",
- "WED": "ONS",
"no": "Bemærk",
"nNBtn": "IKKE NU",
"nLangInfo": "Genstart EnRecipes for at bruge det nye sprog",
@@ -157,8 +150,6 @@
"newRec": "Ny opskrift",
"newCui": "Nyt køkken",
"minimal": "Minimalt",
- "May": "maj",
- "March": "Marts",
"mAgo": "%s måneder siden",
"noAccSensor": "Accelerometersensoren er enten deaktiveret eller fungerer ikke",
"noRecsInL": "Ingen af opskrifterne her matcher din søgning",
@@ -170,10 +161,7 @@
"ltAgo": "for lang tid siden",
"listVM": "Visning af liste",
"kEdit": "FORTSÆT REDIGERING",
- "June": "Juni",
- "July": "Juli",
"joinTG": "Tilmeld dig Telegram-gruppen",
- "January": "Januar",
"it": "Varen",
"invFile": "Ugyldig fil",
"inss": "Vejledning",
@@ -186,7 +174,6 @@
"grid": "Gitter",
"gh": "Se på GitHub",
"Filtered recipes": "Filtrerede opskrifter",
- "February": "Februar",
"expip": "Eksport i gang",
"editRec": "Rediger opskrift",
"donate": "Donér",
@@ -207,11 +194,9 @@
"simple": "Enkel",
"shr": "Del",
"ser": "Søg",
- "September": "September",
"detailed": "Detaljeret",
"delRecsInfo": "Du er ved at slette %s permanent",
"delRecInfo": "Du er ved at slette opskriften %s permanent",
- "December": "December",
"dBtn": "SLETNING",
"dAgo": "%s dage siden",
"cui": "Køkken",
@@ -228,9 +213,7 @@
"buFol": "Backup-mappe",
"buEmp": "Backup-filen er tom",
"Black": "Sort",
- "August": "August",
"aStpBtn": "TILFØJ TRIN",
- "April": "April",
"appRst": "App genstart nødvendig",
"apply": "ANSØG",
"appInfo": "EnRecipes er en open source, privatlivsvenlig digital kogebog, som giver dig mulighed for at oprette, administrere og dele dine opskrifter",
@@ -285,10 +268,8 @@
"pht": "Foto af opskriften",
"photogrid": "Foto gitter",
"opts": "Indstillinger",
- "October": "Oktober",
"nwYiU": "Ny udbytteenhed",
"nwCat": "Ny kategori",
- "November": "November",
"sysDefB": "Systemstandard + sort",
"sec": "s",
"delay": "Udset",
diff --git a/app/i18n/de.json b/app/i18n/de.json
index 137f1136..eb361b3f 100644
--- a/app/i18n/de.json
+++ b/app/i18n/de.json
@@ -18,9 +18,7 @@
"appInfo": "EnRecipes ist ein quelloffenes, datenschutzfreundliches, digitales Kochbuch, mit dem du deine Rezepte erstellen, verwalten und teilen kannst",
"apply": "ANWENDEN",
"appRst": "Neustart der Anwendung erforderlich",
- "April": "April",
"aStpBtn": "SCHRITT HINZUFÜGEN",
- "August": "August",
"Barbecue": "Grill",
"Beverages": "Getränke",
"Black": "Schwarz",
@@ -53,7 +51,6 @@
"Dark": "Dunkel",
"db": "Datenbank",
"dBtn": "LÖSCHEN",
- "December": "Dezember",
"delRecInfo": "Du bist dabei, das Rezept %s dauerhaft zu löschen",
"delRecsInfo": "Du bist dabei, %s dauerhaft zu löschen",
"Desserts": "Nachspeisen",
@@ -75,14 +72,12 @@
"expip": "Export wird durchgeführt",
"expSuc": "Export erfolgreich",
"favourites": "Favoriten",
- "February": "Februar",
"Filipino": "Philipinisch",
"Filtered recipes": "Gefilterte Rezepte",
"fl oz": "fl",
"fltr": "Filter",
"Fluid Ounce": "Flüssige Unze",
"French": "Französisch",
- "FRI": "Fr.",
"fsList": "Deine Lieblingsrezepte findest du hier",
"g": "g",
"gal": "gal",
@@ -111,12 +106,9 @@
"it": "Element",
"Italian": "Italienisch",
"Jamaican": "Jamaikanisch",
- "January": "Januar",
"Japanese": "Japanisch",
"Jewish": "Jüdisch",
"joinTG": "Tritt der Telegram-Gruppe bei",
- "July": "Juli",
- "June": "Juni",
"kEdit": "WEITER BEARBEITEN",
"Kenyan": "Kenianisch",
"kg": "kg",
@@ -136,8 +128,6 @@
"lunch": "Mittagessen",
"mAgo": "%s Monate zuvor",
"Main dishes": "Hauptspeisen",
- "March": "März",
- "May": "Mai",
"Meat": "Fleisch",
"medium": "medium",
"Mexican": "Mexikanisch",
@@ -147,7 +137,6 @@
"minimal": "Minimal",
"ml": "ml",
"Moderate": "Moderat",
- "MON": "Mo.",
"newCui": "Neue Küche",
"Newest first": "Neueste zuerst",
"newRec": "Neues Rezept",
@@ -162,10 +151,8 @@
"noRecs": "Keine Rezepte passen zu deiner Suche",
"noRecsInL": "Keines der hier aufgeführten Rezepte entspricht deiner Suche",
"nos": "Notizen",
- "November": "November",
"nwCat": "Neue Kategorie",
"nwYiU": "Neue Ertragseinheit",
- "October": "Oktober",
"OK": "OK",
"Oldest first": "Älteste zuerst",
"opts": "Optionen",
@@ -179,7 +166,7 @@
"Piece": "Stück",
"pinch": "Prise",
"planner": "Essensplaner",
- "plsAdd": "Verwende das Plus-Symbol, um eins hinzuzufügen",
+ "plsAdd": "Verwende das +-Schaltfläche, um eins hinzuzufügen",
"Portuguese": "Portugiesisch",
"Poultry": "Geflügel",
"Pound": "Pfund",
@@ -223,12 +210,10 @@
"rst": "NEU STARTEN",
"Russian": "Russisch",
"Salads": "Salate",
- "SAT": "Sa.",
"Sauces": "Soßen",
"Scottish": "Schottisch",
"Seafood": "Meeresfrüchte",
"selRec": "Rezept auswählen",
- "September": "September",
"ser": "Suchen",
"Serving": "Portion",
"SET": "EINSTELLEN",
@@ -250,7 +235,6 @@
"stick": "Stange",
"stp": "Schritt",
"strAdd": "Beginne deine Rezepte hinzuzufügen!",
- "SUN": "So.",
"sVw": "Schütteln, um ein zufälliges Rezept anzuzeigen",
"sVwInfo": "Hilft dir, wenn du dich nicht entscheiden kannst, was gekocht werden soll",
"Swedish": "Swedisch",
@@ -261,7 +245,6 @@
"Teaspoon": "TL",
"Thai": "Thailändisch",
"Theme": "Thema",
- "THU": "Do.",
"title": "Titel",
"tLInfo": "Rezepte, die du später ausprobieren willst, sind hier aufgelistet",
"today": "heute",
@@ -272,7 +255,6 @@
"ts": "Markierungen",
"tsInfo": "mit Leerzeichen trennen",
"tsp": "TL",
- "TUE": "Di.",
"Turkish": "Türkisch",
"Undefined": "Unsortiert",
"unit": "Einheit",
@@ -283,7 +265,6 @@
"Vegetarian": "Vegetarisch",
"Vietnamese": "Vietnamesisch",
"wAgo": "%s Wochen zuvor",
- "WED": "Mi.",
"yesterday": "gestern",
"yieldQ": "Ertragsmenge",
"yieldU": "Ertragseinheit",
@@ -307,7 +288,7 @@
"minutes": "Minuten",
"minute": "Minute",
"dlyDur": "Verzögerungsdauer",
- "delay": "Verzögerung",
+ "delay": "Verzögern",
"tmrRm": "Kurzzeitwecker entfernt",
"notifSetg": "Benachrichtigungseinstellungen",
"delPrst": "Du bist dabei, %s aus den Voreinstellungen zu löschen",
@@ -326,13 +307,6 @@
"tmrw": "Morgen",
"tdy": "Heute",
"cpy": "Kopie",
- "sat": "Samstag",
- "fri": "Freitag",
- "thu": "Donnerstag",
- "wed": "Mittwoch",
- "tue": "Dienstag",
- "mon": "Montag",
- "sun": "Sonntag",
"calVM": "Modus der Kalenderansicht",
"d": "Tag",
"wk": "Woche",
@@ -342,7 +316,13 @@
"otam": "Älter als ein Monat",
"otay": "Älter als ein Jahr",
"admp": "Mahlzeitenpläne automatisch löschen",
- "plsCrt": "Verwende die Plus-Taste, um einen zu erstellen",
+ "plsCrt": "Verwende die Plus-Schaltfläche, um einen zu erstellen",
"ehwmp": "Iss gesund mit Essensplänen!",
- "selMT": "Mahlzeitentyp auswählen"
+ "selMT": "Mahlzeitentyp auswählen",
+ "rstBtn": "ZURÜCKSETZEN",
+ "add": "Hinzufügen",
+ "ksavr": "Bildschirm während der Rezeptanzeige eingeschaltet halten",
+ "esgbInfo": "Deaktiviere diese Option, wenn du Probleme mit der Navigation hast",
+ "esgb": "Randwischen zum Zurückgehen",
+ "ksavrInfo": "Verhindert, dass sich der Bildschirm während der Anzeige eines Rezepts ausschaltet"
}
diff --git a/app/i18n/en-GB.default.json b/app/i18n/en-GB.default.json
index b54be090..c5462259 100644
--- a/app/i18n/en-GB.default.json
+++ b/app/i18n/en-GB.default.json
@@ -18,9 +18,7 @@
"appInfo": "EnRecipes is an open source, privacy-friendly digital cookbook that lets you create, manage and share your recipes",
"apply": "APPLY",
"appRst": "App restart required",
- "April": "April",
"aStpBtn": "ADD STEP",
- "August": "August",
"Barbecue": "Barbecue",
"Beverages": "Beverages",
"Black": "Black",
@@ -53,7 +51,6 @@
"Dark": "Dark",
"db": "Database",
"dBtn": "DELETE",
- "December": "December",
"delRecInfo": "You are about to permanently delete the recipe %s",
"delRecsInfo": "You are about to permanently delete %s",
"Desserts": "Desserts",
@@ -75,14 +72,12 @@
"expip": "Export in progress",
"expSuc": "Export success",
"favourites": "Favourites",
- "February": "February",
"Filipino": "Filipino",
"Filtered recipes": "Filtered recipes",
"fl oz": "fl oz",
"fltr": "Filter",
"Fluid Ounce": "Fluid Ounce",
"French": "French",
- "FRI": "FRI",
"fsList": "Your favourite recipes are listed here",
"g": "g",
"gal": "gal",
@@ -111,12 +106,9 @@
"it": "Item",
"Italian": "Italian",
"Jamaican": "Jamaican",
- "January": "January",
"Japanese": "Japanese",
"Jewish": "Jewish",
"joinTG": "Join the Telegram group",
- "July": "July",
- "June": "June",
"kEdit": "KEEP EDITING",
"Kenyan": "Kenyan",
"kg": "kg",
@@ -136,8 +128,6 @@
"lunch": "Lunch",
"mAgo": "%s months ago",
"Main dishes": "Main dishes",
- "March": "March",
- "May": "May",
"Meat": "Meat",
"medium": "medium",
"Mexican": "Mexican",
@@ -148,7 +138,6 @@
"minimal": "Minimal",
"ml": "ml",
"Moderate": "Moderate",
- "MON": "MON",
"newCui": "New cuisine",
"Newest first": "Newest first",
"newRec": "New recipe",
@@ -163,10 +152,8 @@
"noRecs": "No recipes match your search",
"noRecsInL": "None of the recipes here matches your search",
"nos": "Notes",
- "November": "November",
"nwCat": "New category",
"nwYiU": "New yield unit",
- "October": "October",
"OK": "OK",
"Oldest first": "Oldest first",
"opts": "Options",
@@ -180,7 +167,7 @@
"Piece": "Piece",
"pinch": "pinch",
"planner": "Meal Planner",
- "plsAdd": "Use the plus button to add one",
+ "plsAdd": "Use the + button to add one",
"Portuguese": "Portuguese",
"Poultry": "Poultry",
"Pound": "Pound",
@@ -224,12 +211,10 @@
"rst": "RESTART",
"Russian": "Russian",
"Salads": "Salads",
- "SAT": "SAT",
"Sauces": "Sauces",
"Scottish": "Scottish",
"Seafood": "Seafood",
"selRec": "Select recipe",
- "September": "September",
"ser": "Search",
"Serving": "Serving",
"SET": "SET",
@@ -251,7 +236,6 @@
"stick": "stick",
"stp": "Step",
"strAdd": "Start adding your recipes!",
- "SUN": "SUN",
"sVw": "Shake to view random recipe",
"sVwInfo": "Helps you choose what to cook when you can't decide",
"Swedish": "Swedish",
@@ -262,7 +246,6 @@
"Teaspoon": "Teaspoon",
"Thai": "Thai",
"Theme": "Theme",
- "THU": "THU",
"title": "Title",
"tLInfo": "Recipes you want to try later are listed here",
"today": "today",
@@ -273,7 +256,6 @@
"ts": "Tags",
"tsInfo": "separate with spaces",
"tsp": "tsp",
- "TUE": "TUE",
"Turkish": "Turkish",
"Undefined": "Undefined",
"unit": "unit",
@@ -284,7 +266,6 @@
"Vegetarian": "Vegetarian",
"Vietnamese": "Vietnamese",
"wAgo": "%s weeks ago",
- "WED": "WED",
"yesterday": "yesterday",
"yieldQ": "Yield quantity",
"yieldU": "Yield unit",
@@ -326,24 +307,22 @@
"mnth": "Month",
"wk": "Week",
"d": "Day",
- "sun": "Sunday",
- "mon": "Monday",
- "tue": "Tuesday",
- "wed": "Wednesday",
- "thu": "Thursday",
- "fri": "Friday",
- "sat": "Saturday",
"cpy": "copy",
"tdy": "Today",
"tmrw": "Tomorrow",
"ystr": "Yesterday",
"selMT": "Select meal type",
"ehwmp": "Eat healthy with meal plans!",
- "plsCrt": "Use the plus button to create one",
+ "plsCrt": "Use the + button to create one",
"admp": "Auto-delete meal plans",
"otay": "Older than a year",
"otam": "Older than a month",
"otaw": "Older than a week",
"nvr": "Never",
- "add": "Add"
+ "add": "Add",
+ "rstBtn": "RESET",
+ "ksavr": "Keep screen awake while viewing recipe",
+ "ksavrInfo": "Prevents the screen from turning off while viewing a recipe",
+ "esgb": "Edge swipe to go back",
+ "esgbInfo": "Disable this option if you have any navigation issues"
}
diff --git a/app/i18n/en-IN.json b/app/i18n/en-IN.json
index bbb4e0d2..63ef0a96 100644
--- a/app/i18n/en-IN.json
+++ b/app/i18n/en-IN.json
@@ -18,9 +18,7 @@
"appInfo": "EnRecipes is an open source, privacy-friendly digital cookbook that lets you create, manage and share your recipes",
"apply": "APPLY",
"appRst": "App restart required",
- "April": "April",
"aStpBtn": "ADD STEP",
- "August": "August",
"Barbecue": "Barbecue",
"Beverages": "Beverages",
"Black": "Black",
@@ -53,7 +51,6 @@
"Dark": "Dark",
"db": "Database",
"dBtn": "DELETE",
- "December": "December",
"delRecInfo": "You are about to permanently delete the recipe %s",
"delRecsInfo": "You are about to permanently delete %s",
"Desserts": "Desserts",
@@ -75,14 +72,12 @@
"expip": "Export in progress",
"expSuc": "Export success",
"favourites": "Favourites",
- "February": "February",
"Filipino": "Filipino",
"Filtered recipes": "Filtered recipes",
"fl oz": "fl oz",
"fltr": "Filter",
"Fluid Ounce": "Fluid Ounce",
"French": "French",
- "FRI": "FRI",
"fsList": "Your favourite recipes are listed here",
"g": "g",
"gal": "gal",
@@ -111,12 +106,9 @@
"it": "Item",
"Italian": "Italian",
"Jamaican": "Jamaican",
- "January": "January",
"Japanese": "Japanese",
"Jewish": "Jewish",
"joinTG": "Join the Telegram group",
- "July": "July",
- "June": "June",
"kEdit": "KEEP EDITING",
"Kenyan": "Kenyan",
"kg": "kg",
@@ -136,8 +128,6 @@
"lunch": "Lunch",
"mAgo": "%s months ago",
"Main dishes": "Main dishes",
- "March": "March",
- "May": "May",
"Meat": "Meat",
"medium": "medium",
"Mexican": "Mexican",
@@ -147,7 +137,6 @@
"minimal": "Minimal",
"ml": "ml",
"Moderate": "Moderate",
- "MON": "MON",
"newCui": "New cuisine",
"Newest first": "Newest first",
"newRec": "New recipe",
@@ -162,10 +151,8 @@
"noRecs": "No recipes match your search",
"noRecsInL": "None of the recipes here matches your search",
"nos": "Notes",
- "November": "November",
"nwCat": "New category",
"nwYiU": "New yield unit",
- "October": "October",
"OK": "OK",
"Oldest first": "Oldest first",
"opts": "Options",
@@ -179,7 +166,7 @@
"Piece": "Piece",
"pinch": "pinch",
"planner": "Meal Planner",
- "plsAdd": "Use the plus button to add one",
+ "plsAdd": "Use the + button to add one",
"Portuguese": "Portuguese",
"Poultry": "Poultry",
"Pound": "Pound",
@@ -223,12 +210,10 @@
"rst": "RESTART",
"Russian": "Russian",
"Salads": "Salads",
- "SAT": "SAT",
"Sauces": "Sauces",
"Scottish": "Scottish",
"Seafood": "Seafood",
"selRec": "Select recipe",
- "September": "September",
"ser": "Search",
"Serving": "Serving",
"SET": "SET",
@@ -250,7 +235,6 @@
"stick": "stick",
"stp": "Step",
"strAdd": "Start adding your recipes!",
- "SUN": "SUN",
"sVw": "Shake to view random recipe",
"sVwInfo": "Helps you choose what to cook when you can't decide",
"Swedish": "Swedish",
@@ -261,7 +245,6 @@
"Teaspoon": "Teaspoon",
"Thai": "Thai",
"Theme": "Theme",
- "THU": "THU",
"title": "Title",
"tLInfo": "Recipes you want to try later are listed here",
"today": "today",
@@ -272,7 +255,6 @@
"ts": "Tags",
"tsInfo": "separate with spaces",
"tsp": "tsp",
- "TUE": "TUE",
"Turkish": "Turkish",
"Undefined": "Undefined",
"unit": "unit",
@@ -283,7 +265,6 @@
"Vegetarian": "Vegetarian",
"Vietnamese": "Vietnamese",
"wAgo": "%s weeks ago",
- "WED": "WED",
"yesterday": "yesterday",
"yieldQ": "Yield quantity",
"yieldU": "Yield unit",
@@ -325,13 +306,6 @@
"tmrw": "Tomorrow",
"tdy": "Today",
"cpy": "copy",
- "sat": "Saturday",
- "fri": "Friday",
- "thu": "Thursday",
- "wed": "Wednesday",
- "tue": "Tuesday",
- "mon": "Monday",
- "sun": "Sunday",
"calVM": "Calendar view mode",
"oAP": "%1$s ongoing, %2$s paused",
"d": "Day",
@@ -341,8 +315,14 @@
"otaw": "Older than a week",
"otam": "Older than a month",
"otay": "Older than a year",
- "admp": "Auto delete meal plans",
- "plsCrt": "Use the plus button to create one",
+ "admp": "Auto-delete meal plans",
+ "plsCrt": "Use the + button to create one",
"ehwmp": "Eat healthy with meal plans!",
- "selMT": "Select meal type"
+ "selMT": "Select meal type",
+ "rstBtn": "RESET",
+ "add": "Add",
+ "esgbInfo": "Disable this option if you have any navigation issues",
+ "esgb": "Edge swipe to go back",
+ "ksavrInfo": "Prevents the screen from turning off while viewing a recipe",
+ "ksavr": "Keep screen awake while viewing recipe"
}
diff --git a/app/i18n/en-US.json b/app/i18n/en-US.json
index b15a9c9c..328377e9 100644
--- a/app/i18n/en-US.json
+++ b/app/i18n/en-US.json
@@ -18,9 +18,7 @@
"appInfo": "EnRecipes is an open source, privacy-friendly digital cookbook that lets you create, manage and share your recipes",
"apply": "APPLY",
"appRst": "App restart required",
- "April": "April",
"aStpBtn": "ADD STEP",
- "August": "August",
"Barbecue": "Barbecue",
"Beverages": "Beverages",
"Black": "Black",
@@ -53,7 +51,6 @@
"Dark": "Dark",
"db": "Database",
"dBtn": "DELETE",
- "December": "December",
"delRecInfo": "You are about to permanently delete the recipe %s",
"delRecsInfo": "You are about to permanently delete %s",
"Desserts": "Desserts",
@@ -75,14 +72,12 @@
"expip": "Export in progress",
"expSuc": "Export success",
"favourites": "Favorites",
- "February": "February",
"Filipino": "Filipino",
"Filtered recipes": "Filtered recipes",
"fl oz": "fl oz",
"fltr": "Filter",
"Fluid Ounce": "Fluid Ounce",
"French": "French",
- "FRI": "FRI",
"fsList": "Your favorite recipes are listed here",
"g": "g",
"gal": "gal",
@@ -111,12 +106,9 @@
"it": "Item",
"Italian": "Italian",
"Jamaican": "Jamaican",
- "January": "January",
"Japanese": "Japanese",
"Jewish": "Jewish",
"joinTG": "Join the Telegram group",
- "July": "July",
- "June": "June",
"kEdit": "KEEP EDITING",
"Kenyan": "Kenyan",
"kg": "kg",
@@ -136,8 +128,6 @@
"lunch": "Lunch",
"mAgo": "%s months ago",
"Main dishes": "Main dishes",
- "March": "March",
- "May": "May",
"Meat": "Meat",
"medium": "medium",
"Mexican": "Mexican",
@@ -147,7 +137,6 @@
"minimal": "Minimal",
"ml": "ml",
"Moderate": "Moderate",
- "MON": "MON",
"newCui": "New cuisine",
"Newest first": "Newest first",
"newRec": "New recipe",
@@ -162,10 +151,8 @@
"noRecs": "No recipes match your search",
"noRecsInL": "None of the recipes here matches your search",
"nos": "Notes",
- "November": "November",
"nwCat": "New category",
"nwYiU": "New yield unit",
- "October": "October",
"OK": "OK",
"Oldest first": "Oldest first",
"opts": "Options",
@@ -179,7 +166,7 @@
"Piece": "Piece",
"pinch": "pinch",
"planner": "Meal Planner",
- "plsAdd": "Use the plus button to add one",
+ "plsAdd": "Use the + button to add one",
"Portuguese": "Portuguese",
"Poultry": "Poultry",
"Pound": "Pound",
@@ -223,12 +210,10 @@
"rst": "RESTART",
"Russian": "Russian",
"Salads": "Salads",
- "SAT": "SAT",
"Sauces": "Sauces",
"Scottish": "Scottish",
"Seafood": "Seafood",
"selRec": "Select recipe",
- "September": "September",
"ser": "Search",
"Serving": "Serving",
"SET": "SET",
@@ -250,7 +235,6 @@
"stick": "stick",
"stp": "Step",
"strAdd": "Start adding your recipes!",
- "SUN": "SUN",
"sVw": "Shake to view random recipe",
"sVwInfo": "Helps you choose what to cook when you can't decide",
"Swedish": "Swedish",
@@ -261,7 +245,6 @@
"Teaspoon": "Teaspoon",
"Thai": "Thai",
"Theme": "Theme",
- "THU": "THU",
"title": "Title",
"tLInfo": "Recipes you want to try later are listed here",
"today": "today",
@@ -272,7 +255,6 @@
"ts": "Tags",
"tsInfo": "separate with spaces",
"tsp": "tsp",
- "TUE": "TUE",
"Turkish": "Turkish",
"Undefined": "Undefined",
"unit": "unit",
@@ -283,7 +265,6 @@
"Vegetarian": "Vegetarian",
"Vietnamese": "Vietnamese",
"wAgo": "%s weeks ago",
- "WED": "WED",
"yesterday": "yesterday",
"yieldQ": "Yield quantity",
"yieldU": "Yield unit",
@@ -325,13 +306,6 @@
"tmrw": "Tomorrow",
"tdy": "Today",
"cpy": "copy",
- "sat": "Saturday",
- "fri": "Friday",
- "thu": "Thursday",
- "wed": "Wednesday",
- "tue": "Tuesday",
- "mon": "Monday",
- "sun": "Sunday",
"calVM": "Calendar view mode",
"oAP": "%1$s ongoing, %2$s paused",
"d": "Day",
@@ -341,8 +315,14 @@
"otaw": "Older than a week",
"otam": "Older than a month",
"otay": "Older than a year",
- "admp": "Auto delete meal plans",
- "plsCrt": "Use the plus button to create one",
+ "admp": "Auto-delete meal plans",
+ "plsCrt": "Use the + button to create one",
"ehwmp": "Eat healthy with meal plans!",
- "selMT": "Select meal type"
+ "selMT": "Select meal type",
+ "rstBtn": "RESET",
+ "add": "Add",
+ "esgbInfo": "Disable this option if you have any navigation issues",
+ "esgb": "Edge swipe to go back",
+ "ksavrInfo": "Prevents the screen from turning off while viewing a recipe",
+ "ksavr": "Keep screen awake while viewing recipe"
}
diff --git a/app/i18n/es.json b/app/i18n/es.json
index 954d31dd..5566f2cc 100644
--- a/app/i18n/es.json
+++ b/app/i18n/es.json
@@ -18,9 +18,7 @@
"appInfo": "EnRecipes es un libro de cocinas de código abierto, amigo de tu privacidad, que te deja crear, manejar y compartir tus recetas",
"apply": "APLICAR",
"appRst": "Se requiere reiniciar la aplicación",
- "April": "Abril",
"aStpBtn": "AÑADIR PASO",
- "August": "Agosto",
"Barbecue": "Barbacoa",
"Beverages": "Bebidas",
"Black": "Negro",
@@ -53,7 +51,6 @@
"Dark": "Oscuro",
"db": "Base de datos",
"dBtn": "ELIMINAR",
- "December": "Diciembre",
"delRecInfo": "Estás a punto de eliminar definitivamente la receta %s",
"delRecsInfo": "Estás a punto de eliminar permanentemente %s",
"Desserts": "Postres",
@@ -75,14 +72,12 @@
"expip": "Exportación en curso",
"expSuc": "Exportación satisfactoria",
"favourites": "Favoritos",
- "February": "Febrero",
"Filipino": "Filipina",
"Filtered recipes": "Recetas filtradas",
"fl oz": "oz liq",
"fltr": "Filtro",
"Fluid Ounce": "Onza líquida",
"French": "Francesa",
- "FRI": "VIE",
"fsList": "Aquí se enumeran tus recetas favoritas",
"g": "g",
"gal": "gal",
@@ -111,12 +106,9 @@
"it": "Artículo",
"Italian": "Italiano",
"Jamaican": "Jamaiquino",
- "January": "Enero",
"Japanese": "Japonés",
"Jewish": "Judía",
"joinTG": "Únete al grupo de Telegram",
- "July": "Julio",
- "June": "Junio",
"kEdit": "SEGUIR EDITANDO",
"Kenyan": "Keniata",
"kg": "kg",
@@ -136,8 +128,6 @@
"lunch": "Almuerzo",
"mAgo": "hace %s meses",
"Main dishes": "Platos principales",
- "March": "Marzo",
- "May": "Mayo",
"Meat": "Carnes",
"medium": "mediano",
"Mexican": "Mejicana",
@@ -147,7 +137,6 @@
"minimal": "Mínimo",
"ml": "ml",
"Moderate": "Moderada",
- "MON": "LUN",
"newCui": "Nueva cocina",
"Newest first": "Más nuevas primero",
"newRec": "Nueva receta",
@@ -162,10 +151,8 @@
"noRecs": "No hay recetas que coincidan con tu búsqueda",
"noRecsInL": "Ninguna de las recetas aquí coincide con su búsqueda",
"nos": "Notas",
- "November": "Noviembre",
"nwCat": "Nueva categoría",
"nwYiU": "Nueva unidad de medida",
- "October": "Octubre",
"OK": "OK",
"Oldest first": "Más antiguas primero",
"opts": "Opciones",
@@ -223,12 +210,10 @@
"rst": "REINICIAR",
"Russian": "Rusa",
"Salads": "Ensaladas",
- "SAT": "SAB",
"Sauces": "Salsas",
"Scottish": "Escocesa",
"Seafood": "Comida del mar",
"selRec": "Selecciona una receta",
- "September": "Septiembre",
"ser": "Buscar",
"Serving": "Servicio",
"SET": "ESTABLECER",
@@ -250,7 +235,6 @@
"stick": "rama",
"stp": "Paso",
"strAdd": "¡Empieza a añadir tus recetas!",
- "SUN": "DOM",
"sVw": "Agita para ver una receta aleatoria",
"sVwInfo": "Te ayuda a elegir que cocinar cuando no podés decidirte",
"Swedish": "Sueca",
@@ -261,7 +245,6 @@
"Teaspoon": "Cucharadita",
"Thai": "Thai",
"Theme": "Tema",
- "THU": "JUE",
"title": "Título",
"tLInfo": "Las recetas que el usuario quería probar más tarde están listadas aquí",
"today": "hoy",
@@ -272,7 +255,6 @@
"ts": "Etiquetas",
"tsInfo": "separa con espacios",
"tsp": "cdt",
- "TUE": "MAR",
"Turkish": "Turca",
"Undefined": "Indefinido",
"unit": "unidad",
@@ -283,7 +265,6 @@
"Vegetarian": "Vegetariano",
"Vietnamese": "Vietnamita",
"wAgo": "hace %s semanas",
- "WED": "MIE",
"yesterday": "ayer",
"yieldQ": "Cantidad de rendimiento",
"yieldU": "Unidad de medida",
@@ -301,7 +282,7 @@
"minutes": "minutos",
"minute": "minuto",
"stop": "Detener",
- "delay": "Retraso",
+ "delay": "Retrasar",
"prstBtn": "PRECIPIOS",
"fwr": "para qué receta?",
"aTPrst": "Añadido a los preajustes",
@@ -313,17 +294,29 @@
"delPrst": "Está a punto de eliminar %s de los preajustes",
"prsts": "Preselecciones",
"cpy": "copia",
- "sat": "sábado",
- "fri": "viernes",
- "thu": "jueves",
- "wed": "miércoles",
- "tue": "martes",
- "mon": "lunes",
- "sun": "domingo",
"d": "Día",
"wk": "Semana",
"mnth": "Mes",
"ystr": "Ayer",
"tmrw": "Mañana",
- "tdy": "Hoy"
+ "tdy": "Hoy",
+ "calVM": "Modo de vista del calendario",
+ "oAP": "%1$s en curso, %2$s en pausa",
+ "ttv": "Toca para ver",
+ "gtD": "Ir a la fecha",
+ "random": "Aleatorio",
+ "ehwmp": "¡Coma sano con los planes de comidas!",
+ "selMT": "Seleccione el tipo de comida",
+ "dismissAll": "Descartar todos los temporizadores",
+ "dismiss": "Descartar",
+ "texp": "%s temporizadores expirados",
+ "prstTU": "Tiempo preestablecido actualizado",
+ "rstBtn": "RESTABLECER",
+ "add": "Añadir",
+ "nvr": "Nunca",
+ "otaw": "Más de una semana",
+ "otam": "Más de un mes",
+ "otay": "Más de un año",
+ "plsCrt": "Usa el botón + para crear una",
+ "ccwt": "¡Cocine con confianza con los temporizadores!"
}
diff --git a/app/i18n/fi.json b/app/i18n/fi.json
deleted file mode 100644
index 4f6be3ec..00000000
--- a/app/i18n/fi.json
+++ /dev/null
@@ -1,343 +0,0 @@
-{
- "aap": "Liitä valokuva",
- "About": "Tietoja",
- "aBtn": "LISÄÄ",
- "aD": "Valmista!",
- "addCmbBtn": "LISÄÄ YHDISTELMÄ",
- "aFBu": "Lisää resepti varmuuskopioinnin suorittamiseen",
- "aIngBtn": "LISÄÄ AINESOSA",
- "allCats": "Kaikki luokat",
- "allCuis": "Kaikki keittiöt",
- "allTs": "Kaikki tunnisteet",
- "American": "amerikkalainen",
- "aNBtn": "LISÄÄ UUSI",
- "aNoBtn": "LISÄÄ HUOMAUTUS",
- "app.name": "EnRecipes",
- "appCrd": "Jaettu EnRecipesin kautta. Lataa se F-Droidista, IzzyOnDroidista tai Play Storesta.",
- "Appetizers": "Alkupalat",
- "appInfo": "EnRecipes on avoimen lähdekoodin, yksityisyyden suojaa kunnioittava digitaalinen keittokirja, jonka avulla voit luoda, hallita ja jakaa reseptejäsi",
- "apply": "KÄYTÄ",
- "appRst": "Sovelluksen uudelleenkäynnistys vaaditaan",
- "April": "huhtikuu",
- "aStpBtn": "",
- "August": "elokuu",
- "Barbecue": "Grilli",
- "Beverages": "Juomat",
- "Black": "Musta",
- "Brazilian": "brasilialainen",
- "Breads": "Leivät",
- "breakfast": "Aamiainen",
- "British": "brittiläinen",
- "buEmp": "Varmuuskopiotiedosto on tyhjä",
- "buFol": "Varmuuskopioiden hakemisto",
- "buInc": "Virheellinen tai vioittunut varmuuskopiotiedosto",
- "buInfo": "Luo ZIP-tiedoston, joka sisältää kaikki tiedot, jotka voidaan tuoda takaisin",
- "buMod": "Varmuuskopiotiedostoa muutettiin muualla",
- "cat": "Luokka",
- "cBtn": "PERUUTA",
- "Challenging": "Haastava",
- "Chinese": "kiinalainen",
- "clove": "kynsi",
- "cm": "cm",
- "cmbs": "Yhdistelmät",
- "conBtn": "JATKA",
- "conf": "Vahvista",
- "cookT": "Kypsennysaika",
- "cPic": "Rajaa kuva",
- "Created": "Luotu",
- "cui": "Keittiö",
- "cup": "cup",
- "Cup": "Kuppi",
- "dAgo": "%s päivää sitten",
- "Danish": "tanskalainen",
- "Dark": "Tumma",
- "db": "Tietokanta",
- "dBtn": "POISTA",
- "December": "joulukuu",
- "delRecInfo": "Olet poistamassa reseptiä %s pysyvästi",
- "delRecsInfo": "Olet poistamassa %s pysyvästi",
- "Desserts": "Jälkiruoat",
- "detailed": "Yksityiskohtainen",
- "Difficulty level": "Vaikeustaso",
- "dinner": "Illallinen",
- "disBtn": "HYLKÄÄ",
- "disc": "Tässä reseptissä on tallentamattomia muutoksia. Mitä haluaisit tehdä?",
- "donate": "Lahjoita",
- "dozen": "tusina",
- "drop": "",
- "dsp": "",
- "Easy": "Helppo",
- "editRec": "Muokkaa resepti",
- "Egyptian": "egyptiläinen",
- "English": "englantilainen",
- "EnRecipes": "EnRecipes",
- "expBu": "Vie koko varmuuskopio",
- "expip": "Vienti käynnissä",
- "expSuc": "",
- "favourites": "",
- "February": "helmikuu",
- "Filipino": "",
- "Filtered recipes": "Suodatetut reseptit",
- "fl oz": "",
- "fltr": "",
- "Fluid Ounce": "",
- "French": "ranskalainen",
- "FRI": "pe",
- "fsList": "Suosikkireseptisi on lueteltu täällä",
- "g": "g",
- "gal": "",
- "Gallon": "",
- "German": "saksalainen",
- "gh": "Näytä GitHub:ssa",
- "Gram": "gramma",
- "Greek": "kreikkalainen",
- "grid": "",
- "grocery": "Ostoslista",
- "guide": "Käyttöopas",
- "Healthy": "Terveellinen",
- "hr": "t.",
- "impBu": "Tuo tietoja",
- "impFail": "Tuonti epäonnistui",
- "impInfo": "Tukee tämän sovelluksen viemiä täydellisiä varmuuskopioita",
- "impip": "Tuonti käynnissä",
- "impSuc": "Tuonti onnistui",
- "in": "",
- "Indian": "intialainen",
- "ings": "Ainekset",
- "inss": "Ohjeet",
- "intf": "Käyttöliittymä",
- "invFile": "Virheellinen tiedosto",
- "Irish": "irlantilainen",
- "it": "",
- "Italian": "",
- "Jamaican": "",
- "January": "tammikuu",
- "Japanese": "japanilainen",
- "Jewish": "juutalainen",
- "joinTG": "",
- "July": "heinäkuu",
- "June": "kesäkuu",
- "kEdit": "",
- "Kenyan": "",
- "kg": "kg",
- "Kilogram": "kilogramma",
- "Korean": "korealainen",
- "l": "l",
- "lang": "Kieli",
- "large": "",
- "Last updated": "",
- "lb": "",
- "leaf": "",
- "Light": "",
- "listVM": "",
- "Litre": "",
- "Loaf": "",
- "ltAgo": "",
- "lunch": "",
- "mAgo": "",
- "Main dishes": "",
- "March": "",
- "May": "",
- "Meat": "",
- "medium": "",
- "Mexican": "",
- "mg": "",
- "Millilitre": "",
- "min": "",
- "minimal": "",
- "ml": "",
- "Moderate": "",
- "MON": "",
- "newCui": "",
- "Newest first": "",
- "newRec": "",
- "newUnit": "",
- "Nigerian": "",
- "nLangInfo": "",
- "nNBtn": "",
- "no": "",
- "noAccSensor": "",
- "noFavs": "",
- "Noodles": "",
- "noRecs": "Hakua vastaavia reseptejä ei ole",
- "noRecsInL": "",
- "nos": "",
- "November": "marraskuu",
- "nwCat": "Uusi luokka",
- "nwYiU": "",
- "October": "lokakuu",
- "OK": "OK",
- "Oldest first": "",
- "opts": "Valinnat",
- "Ounce": "",
- "oz": "",
- "Pasta": "",
- "Patty": "",
- "photogrid": "",
- "pht": "Reseptivalokuva",
- "piece": "pala",
- "Piece": "Pala",
- "pinch": "",
- "planner": "Ateriasuunnittelija",
- "plsAdd": "Lisää resepti pluspainikkeella",
- "Portuguese": "portugalilainen",
- "Poultry": "",
- "Pound": "",
- "prepT": "Valmisteluaika",
- "priv": "Tietosuojakäytäntö",
- "pt": "",
- "qt": "",
- "Quickest first": "",
- "Rating": "",
- "rBtn": "POISTA",
- "rec": "Resepti",
- "recE": "On jo olemassa:",
- "recF": "löydettyä reseptiä",
- "recI": "",
- "recListEmp": "",
- "recPic": "Reseptivalokuva",
- "recRm": "Resepti poistettu",
- "recs": "reseptiä",
- "recTitle": "Minun terveellinen reseptini",
- "recU": "Päivitetty:",
- "req": "",
- "resNF": "",
- "rest": "Nollaa",
- "restCatL": "",
- "restCuiL": "",
- "restDone": "",
- "restInfo": "",
- "restUL": "",
- "restYUL": "",
- "Rice": "Riisi",
- "rmCatInfo": "Olet poistamassa %s luokkaluettelosta",
- "rmCmb": "Yhdistelmä poistettu",
- "rmCuiInfo": "",
- "rmIng": "Ainesosa poistettu",
- "rmIns": "Ohje poistettu",
- "rmN": "Huomautus poistettu",
- "rmUInfo": "",
- "rmYUInfo": "",
- "Roll": "",
- "rp": "Poista valokuva",
- "rst": "UUDELLEENKÄYNNISTÄ",
- "Russian": "venäläinen",
- "Salads": "Salaatit",
- "SAT": "la",
- "Sauces": "Kastikkeet",
- "Scottish": "skotlantilainen",
- "Seafood": "",
- "selRec": "",
- "September": "",
- "ser": "Etsi",
- "Serving": "",
- "SET": "ASETA",
- "Settings": "Asetukset",
- "shr": "Jaa",
- "Side dishes": "",
- "simple": "",
- "Slowest first": "",
- "sltd": "",
- "small": "",
- "snacks": "",
- "Soups": "Keitot",
- "Spanish": "espanjalainen",
- "Sri Lankan": "srilankalainen",
- "srpu": "Jaa reseptikuva käyttämällä…",
- "srt": "Järjestä",
- "sru": "Jaa resepti käyttämällä…",
- "stars": "",
- "stick": "",
- "stp": "",
- "strAdd": "",
- "SUN": "su",
- "sVw": "Ravista nähdäksesi satunnainen resepti",
- "sVwInfo": "Auttaa sinua valitsemaan, mitä valmistaa, kun et osaa päättää",
- "Swedish": "ruotsalainen",
- "swm": "Aloita viikko maanantaina",
- "sysDef": "Järjestelmän oletus",
- "Tablespoon": "",
- "tbsp": "",
- "Teaspoon": "",
- "Thai": "thaimaalainen",
- "Theme": "Teema",
- "THU": "to",
- "title": "Otsikko",
- "tLInfo": "Reseptit, joita haluat kokeilla myöhemmin, on lueteltu täällä",
- "today": "tänään",
- "triedInfo": "Kokeilit tätä reseptiä %s",
- "trnsl": "Käännä",
- "trylater": "",
- "trySer": "ETSI KAIKISTA RESEPTEISTÄ?",
- "ts": "Tunnisteet",
- "tsInfo": "",
- "tsp": "",
- "TUE": "ti",
- "Turkish": "",
- "Undefined": "Määrittelemätön",
- "unit": "",
- "Unit": "",
- "unsaved": "",
- "untRec": "",
- "Vegan": "Vegaani",
- "Vegetarian": "Kasvissyöjä",
- "Vietnamese": "vietnamilainen",
- "wAgo": "%s viikkoa sitten",
- "WED": "ke",
- "yesterday": "eilen",
- "yieldQ": "",
- "yieldU": "",
- "yld": "",
- "buto": "",
- "sysDefB": "Järjestelmän oletusarvo + Musta",
- "tmr": "Ajastin %s",
- "stop": "Pysäytä",
- "ntmr": "Uusi ajastin",
- "timer": "Keittoajastin",
- "tmrSnd": "Ajastinääni",
- "aTPrst": "Lisätty esiasetuksiin",
- "fwr": "mitä reseptiä varten?",
- "prstBtn": "ESIASETUKSET",
- "sec": "s",
- "dlyDur": "Viiveen kesto",
- "seconds": "sekuntia",
- "hours": "tuntia",
- "minutes": "minuuttia",
- "hour": "tunti",
- "minute": "minuutti",
- "prsts": "Esiasetukset",
- "texp": "%s ajastinta on vanhentunut",
- "tmrRm": "Ajastin poistettu",
- "ccwt": "Keitä luottavaisesti ajastimien avulla!",
- "gtD": "Siirry päivämäärään",
- "random": "Satunnainen",
- "notifSetg": "Ilmoitusasetukset",
- "prstTU": "Esiasetettu aika päivitetty",
- "ttv": "Napauta nähdäksesi",
- "dismissAll": "Hylkää kaikki ajastimet",
- "dismiss": "Hylkää",
- "d": "Päivä",
- "wk": "Viikko",
- "mnth": "Kuukausi",
- "ystr": "Eilen",
- "tmrw": "Huomenna",
- "tdy": "Tänään",
- "cpy": "kopio",
- "sat": "lauantai",
- "fri": "perjantai",
- "thu": "torstai",
- "wed": "keskiviikko",
- "tue": "tiistai",
- "mon": "maanantai",
- "sun": "sunnuntai",
- "calVM": "Kalenterinäkymätila",
- "oAP": "%1$s käynnissä, %2$s keskeytetty",
- "ehwmp": "Syö terveellisesti ateriasuunnitelmien avulla!",
- "selMT": "Valitse ateriatyyppi",
- "plsCrt": "Käytä plus-painiketta luodaksesi yhden",
- "nvr": "Ei koskaan",
- "otaw": "Viikon jälkeen",
- "otam": "Kuukauden jälkeen",
- "otay": "Vuoden jälkeen",
- "admp": "Poista ateriasuunnitelmat automaattisesti"
-}
diff --git a/app/i18n/fr-BE.json b/app/i18n/fr-BE.json
index a4465e1d..97e56ff0 100644
--- a/app/i18n/fr-BE.json
+++ b/app/i18n/fr-BE.json
@@ -18,9 +18,7 @@
"appInfo": "EnRecipes est un livre de cuisine numérique à code source ouvert et respectueux de la vie privée qui vous permet de créer, gérer et partager vos recettes",
"apply": "APPLIQUER",
"appRst": "Redémarrage de l’appli nécessaire",
- "April": "avril",
"aStpBtn": "AJOUTER UNE ÉTAPE",
- "August": "aout",
"Barbecue": "Barbecue",
"Beverages": "Boissons",
"Black": "Noir",
@@ -53,7 +51,6 @@
"Dark": "Sombre",
"db": "Base de données",
"dBtn": "SUPPRIMER",
- "December": "décembre",
"delRecInfo": "Vous êtes sur le point de supprimer définitivement la recette %s",
"delRecsInfo": "Vous êtes sur le point de supprimer définitivement %s",
"Desserts": "Desserts",
@@ -75,14 +72,12 @@
"expip": "Exportation en cours",
"expSuc": "Exportation réussie",
"favourites": "Favoris",
- "February": "février",
"Filipino": "philippine",
"Filtered recipes": "Recettes filtrées",
"fl oz": "oz liq",
"fltr": "Filtre",
"Fluid Ounce": "Once liquide",
"French": "française",
- "FRI": "ven",
"fsList": "Vos recettes favorites sont listées ici",
"g": "g",
"gal": "gal",
@@ -111,12 +106,9 @@
"it": "Élément",
"Italian": "italienne",
"Jamaican": "jamaïcaine",
- "January": "janvier",
"Japanese": "japonaise",
"Jewish": "juive",
"joinTG": "Rejoignez le groupe Telegram",
- "July": "juillet",
- "June": "juin",
"kEdit": "CONTINUER",
"Kenyan": "kényane",
"kg": "kg",
@@ -136,8 +128,6 @@
"lunch": "Diner",
"mAgo": "il y a %s mois",
"Main dishes": "Plats principaux",
- "March": "mars",
- "May": "mai",
"Meat": "Viande",
"medium": "moyen",
"Mexican": "mexicaine",
@@ -147,7 +137,6 @@
"minimal": "Minimale",
"ml": "ml",
"Moderate": "Modéré",
- "MON": "lun",
"newCui": "Nouvelle cuisine",
"Newest first": "La plus récente d’abord",
"newRec": "Nouvelle recette",
@@ -162,10 +151,8 @@
"noRecs": "Aucune recette ne correspond à votre recette",
"noRecsInL": "Aucune des recettes ici ne correspond à votre recherche",
"nos": "Notes",
- "November": "novembre",
"nwCat": "Nouvelle catégorie",
"nwYiU": "Nouvelle unité de rendement",
- "October": "octobre",
"OK": "OK",
"Oldest first": "La plus ancienne d’abord",
"opts": "Options",
@@ -179,7 +166,7 @@
"Piece": "Morceau",
"pinch": "pincée",
"planner": "Planificateur de repas",
- "plsAdd": "Utilisez le bouton plus pour en ajouter une",
+ "plsAdd": "Utilisez le bouton + pour en ajouter une",
"Portuguese": "portugaise",
"Poultry": "Volaille",
"Pound": "Livre",
@@ -223,12 +210,10 @@
"rst": "REDÉMARRER",
"Russian": "russe",
"Salads": "Salades",
- "SAT": "sam",
"Sauces": "Sauces",
"Scottish": "écossaise",
"Seafood": "Fruits de mer",
"selRec": "Sélectionner une recette",
- "September": "septembre",
"ser": "Chercher",
"Serving": "Portion",
"SET": "DÉFINIR",
@@ -250,7 +235,6 @@
"stick": "barre",
"stp": "Étape",
"strAdd": "Commencez à ajouter vos recettes !",
- "SUN": "dim",
"sVw": "Secouez pour voir une recette au hasard",
"sVwInfo": "Vous aide à choisir quoi cuisiner quand vous ne pouvez pas vous décider",
"Swedish": "suédoise",
@@ -261,7 +245,6 @@
"Teaspoon": "Cuillère à café",
"Thai": "thaïlandaise",
"Theme": "Thème",
- "THU": "jeu",
"title": "Titre",
"tLInfo": "Les recettes que vous voulez essayer plus tard sont listées ici",
"today": "aujourd’hui",
@@ -272,7 +255,6 @@
"ts": "Étiquettes",
"tsInfo": "séparez par des espaces",
"tsp": "c.à.c",
- "TUE": "mar",
"Turkish": "turque",
"Undefined": "Indéfini",
"unit": "unité",
@@ -283,7 +265,6 @@
"Vegetarian": "Végétarien",
"Vietnamese": "vietnamienne",
"wAgo": "il y a %s semaines",
- "WED": "mer",
"yesterday": "hier",
"yieldQ": "Quantité de rendement",
"yieldU": "Unité de rendement",
@@ -307,7 +288,7 @@
"minutes": "minutes",
"minute": "minute",
"dlyDur": "Durée du retard",
- "delay": "Retard",
+ "delay": "Retarder",
"notifSetg": "Paramètres de notification",
"tmrRm": "Minuterie retirée",
"delPrst": "Vous êtes sur le point de supprimer %s des préréglages",
@@ -325,13 +306,6 @@
"tmrw": "Demain",
"tdy": "Aujourd’hui",
"cpy": "copie",
- "sat": "samedi",
- "fri": "vendredi",
- "thu": "jeudi",
- "wed": "mercredi",
- "tue": "mardi",
- "mon": "lundi",
- "sun": "dimanche",
"d": "Jour",
"wk": "Semaine",
"mnth": "Mois",
@@ -342,7 +316,13 @@
"otay": "Après un an",
"admp": "Supprimer automatiquement les planifications de repas",
"nvr": "Jamais",
- "plsCrt": "Utilisez le bouton plus pour en créer une",
+ "plsCrt": "Utilisez le bouton + pour en créer une",
"ehwmp": "Mangez sainement grâce aux planifications de repas !",
- "selMT": "Sélectionnez le type de repas"
+ "selMT": "Sélectionnez le type de repas",
+ "rstBtn": "RÉINITIALISER",
+ "add": "Ajouter",
+ "esgbInfo": "Désactivez cette option si vous avez des problèmes de navigation",
+ "esgb": "Balayer le bord pour revenir en arrière",
+ "ksavrInfo": "Empêche l’écran de s’éteindre durant la visualisation d’une recette",
+ "ksavr": "Garder l’écran allumé durant l’affichage d’une recette"
}
diff --git a/app/i18n/fr-CA.json b/app/i18n/fr-CA.json
index fbceaf7a..24f026da 100644
--- a/app/i18n/fr-CA.json
+++ b/app/i18n/fr-CA.json
@@ -18,9 +18,7 @@
"appInfo": "EnRecipes est un livre de cuisine numérique à code source ouvert et respectueux de la vie privée qui vous permet de créer, gérer et partager vos recettes",
"apply": "APPLIQUER",
"appRst": "Redémarrage de l’appli nécessaire",
- "April": "avril",
"aStpBtn": "AJOUTER UNE ÉTAPE",
- "August": "août",
"Barbecue": "Barbecue",
"Beverages": "Breuvages",
"Black": "Noir",
@@ -53,7 +51,6 @@
"Dark": "Sombre",
"db": "Base de données",
"dBtn": "SUPPRIMER",
- "December": "décembre",
"delRecInfo": "Vous êtes sur le point de supprimer définitivement la recette %s",
"delRecsInfo": "Vous êtes sur le point de supprimer définitivement %s",
"Desserts": "Desserts",
@@ -75,14 +72,12 @@
"expip": "Exportation en cours",
"expSuc": "Exportation réussie",
"favourites": "Favoris",
- "February": "février",
"Filipino": "philippine",
"Filtered recipes": "Recettes filtrées",
"fl oz": "oz liq",
"fltr": "Filtre",
"Fluid Ounce": "Once liquide",
"French": "française",
- "FRI": "ven",
"fsList": "Vos recettes favorites sont listées ici",
"g": "g",
"gal": "gal",
@@ -101,7 +96,7 @@
"impInfo": "Prend en charge les sauvegardes complètes exportées par cette application",
"impip": "Importation en cours",
"impSuc": "Importation réussie",
- "in": "in",
+ "in": "po",
"Indian": "indienne",
"ings": "Ingrédients",
"inss": "Instructions",
@@ -111,12 +106,9 @@
"it": "Élément",
"Italian": "italienne",
"Jamaican": "jamaïcaine",
- "January": "janvier",
"Japanese": "japonaise",
"Jewish": "juive",
"joinTG": "Rejoignez le groupe Telegram",
- "July": "juillet",
- "June": "juin",
"kEdit": "CONTINUER",
"Kenyan": "kényane",
"kg": "kg",
@@ -136,8 +128,6 @@
"lunch": "Dîner",
"mAgo": "il y a %s mois",
"Main dishes": "Plats principaux",
- "March": "mars",
- "May": "mai",
"Meat": "Viande",
"medium": "moyen",
"Mexican": "mexicaine",
@@ -147,7 +137,6 @@
"minimal": "Minimale",
"ml": "ml",
"Moderate": "Modéré",
- "MON": "lun",
"newCui": "Nouvelle cuisine",
"Newest first": "La plus récente d’abord",
"newRec": "Nouvelle recette",
@@ -162,10 +151,8 @@
"noRecs": "Aucune recette ne correspond à votre recette",
"noRecsInL": "Aucune des recettes ici ne correspond à votre recherche",
"nos": "Notes",
- "November": "novembre",
"nwCat": "Nouvelle catégorie",
"nwYiU": "Nouvelle unité de rendement",
- "October": "octobre",
"OK": "OK",
"Oldest first": "La plus ancienne d’abord",
"opts": "Options",
@@ -179,7 +166,7 @@
"Piece": "Morceau",
"pinch": "pincée",
"planner": "Planificateur de repas",
- "plsAdd": "Utilisez le bouton plus pour en ajouter une",
+ "plsAdd": "Utilisez le bouton + pour en ajouter une",
"Portuguese": "portugaise",
"Poultry": "Volaille",
"Pound": "Livre",
@@ -223,12 +210,10 @@
"rst": "REDÉMARRER",
"Russian": "russe",
"Salads": "Salades",
- "SAT": "sam",
"Sauces": "Sauces",
"Scottish": "écossaise",
"Seafood": "Fruits de mer",
"selRec": "Sélectionner une recette",
- "September": "septembre",
"ser": "Chercher",
"Serving": "Portion",
"SET": "DÉFINIR",
@@ -250,7 +235,6 @@
"stick": "barre",
"stp": "Étape",
"strAdd": "Commencez à ajouter vos recettes!",
- "SUN": "dim",
"sVw": "Secouez pour voir une recette au hasard",
"sVwInfo": "Vous aide à choisir quoi cuisiner quand vous ne pouvez pas vous décider",
"Swedish": "suédoise",
@@ -261,7 +245,6 @@
"Teaspoon": "Cuillère à thé",
"Thai": "thaïlandaise",
"Theme": "Thème",
- "THU": "jeu",
"title": "Titre",
"tLInfo": "Les recettes que vous voulez essayer plus tard sont listées ici",
"today": "aujourd’hui",
@@ -272,7 +255,6 @@
"ts": "Étiquettes",
"tsInfo": "séparez par des espaces",
"tsp": "c.à.t",
- "TUE": "mar",
"Turkish": "turque",
"Undefined": "Indéfini",
"unit": "unité",
@@ -283,7 +265,6 @@
"Vegetarian": "Végétarien",
"Vietnamese": "vietnamienne",
"wAgo": "il y a %s semaines",
- "WED": "mer",
"yesterday": "hier",
"yieldQ": "Quantité de rendement",
"yieldU": "Unité de rendement",
@@ -307,7 +288,7 @@
"minutes": "minutes",
"minute": "minute",
"dlyDur": "Durée du retard",
- "delay": "Retard",
+ "delay": "Retarder",
"notifSetg": "Paramètres de notification",
"tmrRm": "Minuterie retirée",
"delPrst": "Vous êtes sur le point de supprimer %s des préréglages",
@@ -325,13 +306,6 @@
"tmrw": "Demain",
"tdy": "Aujourd’hui",
"cpy": "copie",
- "sat": "samedi",
- "fri": "vendredi",
- "thu": "jeudi",
- "wed": "mercredi",
- "tue": "mardi",
- "mon": "lundi",
- "sun": "dimanche",
"d": "Jour",
"wk": "Semaine",
"mnth": "Mois",
@@ -342,7 +316,13 @@
"otay": "Après un an",
"admp": "Supprimer automatiquement les planifications de repas",
"nvr": "Jamais",
- "plsCrt": "Utilisez le bouton plus pour en créer une",
+ "plsCrt": "Utilisez le bouton + pour en créer une",
"ehwmp": "Mangez sainement grâce aux planifications de repas!",
- "selMT": "Sélectionnez le type de repas"
+ "selMT": "Sélectionnez le type de repas",
+ "rstBtn": "RÉINITIALISER",
+ "add": "Ajouter",
+ "esgbInfo": "Désactivez cette option si vous avez des problèmes de navigation",
+ "esgb": "Balayer le bord pour revenir en arrière",
+ "ksavrInfo": "Empêche l’écran de s’éteindre durant la visualisation d’une recette",
+ "ksavr": "Garder l’écran allumé durant l’affichage d’une recette"
}
diff --git a/app/i18n/fr-CH.json b/app/i18n/fr-CH.json
index dfa298da..c39f2c8c 100644
--- a/app/i18n/fr-CH.json
+++ b/app/i18n/fr-CH.json
@@ -18,9 +18,7 @@
"appInfo": "EnRecipes est un livre de cuisine numérique à code source ouvert et respectueux de la vie privée qui vous permet de créer, gérer et partager vos recettes",
"apply": "APPLIQUER",
"appRst": "Redémarrage de l’appli nécessaire",
- "April": "avril",
"aStpBtn": "AJOUTER UNE ÉTAPE",
- "August": "août",
"Barbecue": "Barbecue",
"Beverages": "Boissons",
"Black": "Noir",
@@ -53,7 +51,6 @@
"Dark": "Sombre",
"db": "Base de données",
"dBtn": "SUPPRIMER",
- "December": "décembre",
"delRecInfo": "Vous êtes sur le point de supprimer définitivement la recette %s",
"delRecsInfo": "Vous êtes sur le point de supprimer définitivement %s",
"Desserts": "Desserts",
@@ -75,14 +72,12 @@
"expip": "Exportation en cours",
"expSuc": "Exportation réussie",
"favourites": "Favoris",
- "February": "février",
"Filipino": "philippine",
"Filtered recipes": "Recettes filtrées",
"fl oz": "oz liq",
"fltr": "Filtre",
"Fluid Ounce": "Once liquide",
"French": "française",
- "FRI": "ven",
"fsList": "Vos recettes favorites sont listées ici",
"g": "g",
"gal": "gal",
@@ -111,12 +106,9 @@
"it": "Élément",
"Italian": "italienne",
"Jamaican": "jamaïcaine",
- "January": "janvier",
"Japanese": "japonaise",
"Jewish": "juive",
"joinTG": "Rejoignez le groupe Telegram",
- "July": "juillet",
- "June": "juin",
"kEdit": "CONTINUER",
"Kenyan": "kényane",
"kg": "kg",
@@ -136,8 +128,6 @@
"lunch": "Dîner",
"mAgo": "il y a %s mois",
"Main dishes": "Plats principaux",
- "March": "mars",
- "May": "mai",
"Meat": "Viande",
"medium": "moyen",
"Mexican": "mexicaine",
@@ -147,7 +137,6 @@
"minimal": "Minimale",
"ml": "ml",
"Moderate": "Modéré",
- "MON": "lun",
"newCui": "Nouvelle cuisine",
"Newest first": "La plus récente d’abord",
"newRec": "Nouvelle recette",
@@ -162,10 +151,8 @@
"noRecs": "Aucune recette ne correspond à votre recette",
"noRecsInL": "Aucune des recettes ici ne correspond à votre recherche",
"nos": "Notes",
- "November": "novembre",
"nwCat": "Nouvelle catégorie",
"nwYiU": "Nouvelle unité de rendement",
- "October": "octobre",
"OK": "OK",
"Oldest first": "La plus ancienne d’abord",
"opts": "Options",
@@ -179,7 +166,7 @@
"Piece": "Morceau",
"pinch": "pincée",
"planner": "Planificateur de repas",
- "plsAdd": "Utilisez le bouton plus pour en ajouter une",
+ "plsAdd": "Utilisez le bouton + pour en ajouter une",
"Portuguese": "portugaise",
"Poultry": "Volaille",
"Pound": "Livre",
@@ -223,12 +210,10 @@
"rst": "REDÉMARRER",
"Russian": "russe",
"Salads": "Salades",
- "SAT": "sam",
"Sauces": "Sauces",
"Scottish": "écossaise",
"Seafood": "Fruits de mer",
"selRec": "Sélectionner une recette",
- "September": "septembre",
"ser": "Chercher",
"Serving": "Portion",
"SET": "DÉFINIR",
@@ -250,7 +235,6 @@
"stick": "barre",
"stp": "Étape",
"strAdd": "Commencez à ajouter vos recettes!",
- "SUN": "dim",
"sVw": "Secouez pour voir une recette au hasard",
"sVwInfo": "Vous aide à choisir quoi cuisiner quand vous ne pouvez pas vous décider",
"Swedish": "suédoise",
@@ -261,7 +245,6 @@
"Teaspoon": "Cuillère à café",
"Thai": "thaïlandaise",
"Theme": "Thème",
- "THU": "jeu",
"title": "Titre",
"tLInfo": "Les recettes que vous voulez essayer plus tard sont listées ici",
"today": "aujourd’hui",
@@ -272,7 +255,6 @@
"ts": "Étiquettes",
"tsInfo": "séparez par des espaces",
"tsp": "c.à.c",
- "TUE": "mar",
"Turkish": "turque",
"Undefined": "Indéfini",
"unit": "unité",
@@ -283,7 +265,6 @@
"Vegetarian": "Végétarien",
"Vietnamese": "vietnamienne",
"wAgo": "il y a %s semaines",
- "WED": "mer",
"yesterday": "hier",
"yieldQ": "Quantité de rendement",
"yieldU": "Unité de rendement",
@@ -307,7 +288,7 @@
"minutes": "minutes",
"minute": "minute",
"dlyDur": "Durée du retard",
- "delay": "Retard",
+ "delay": "Retarder",
"notifSetg": "Paramètres de notification",
"tmrRm": "Minuterie retirée",
"delPrst": "Vous êtes sur le point de supprimer %s des préréglages",
@@ -325,13 +306,6 @@
"tmrw": "Demain",
"tdy": "Aujourd’hui",
"cpy": "copie",
- "sat": "samedi",
- "fri": "vendredi",
- "thu": "jeudi",
- "wed": "mercredi",
- "tue": "mardi",
- "mon": "lundi",
- "sun": "dimanche",
"d": "Jour",
"wk": "Semaine",
"mnth": "Mois",
@@ -342,7 +316,13 @@
"otam": "Après un mois",
"otay": "Après un an",
"admp": "Supprimer automatiquement les planifications de repas",
- "plsCrt": "Utilisez le bouton plus pour en créer une",
+ "plsCrt": "Utilisez le bouton + pour en créer une",
"ehwmp": "Mangez sainement grâce aux planifications de repas!",
- "selMT": "Sélectionnez le type de repas"
+ "selMT": "Sélectionnez le type de repas",
+ "rstBtn": "RÉINITIALISER",
+ "add": "Ajouter",
+ "esgbInfo": "Désactivez cette option si vous avez des problèmes de navigation",
+ "esgb": "Balayer le bord pour revenir en arrière",
+ "ksavrInfo": "Empêche l’écran de s’éteindre durant la visualisation d’une recette",
+ "ksavr": "Garder l’écran allumé durant l’affichage d’une recette"
}
diff --git a/app/i18n/fr.json b/app/i18n/fr.json
index 9a249b19..c155cefd 100644
--- a/app/i18n/fr.json
+++ b/app/i18n/fr.json
@@ -18,9 +18,7 @@
"appInfo": "EnRecipes est un livre de cuisine numérique à code source ouvert et respectueux de la vie privée qui vous permet de créer, gérer et partager vos recettes",
"apply": "APPLIQUER",
"appRst": "Redémarrage de l’appli nécessaire",
- "April": "avril",
"aStpBtn": "AJOUTER UNE ÉTAPE",
- "August": "août",
"Barbecue": "Barbecue",
"Beverages": "Boissons",
"Black": "Noir",
@@ -53,7 +51,6 @@
"Dark": "Sombre",
"db": "Base de données",
"dBtn": "SUPPRIMER",
- "December": "décembre",
"delRecInfo": "Vous êtes sur le point de supprimer définitivement la recette %s",
"delRecsInfo": "Vous êtes sur le point de supprimer définitivement %s",
"Desserts": "Desserts",
@@ -75,14 +72,12 @@
"expip": "Exportation en cours",
"expSuc": "Exportation réussie",
"favourites": "Favoris",
- "February": "février",
"Filipino": "philippine",
"Filtered recipes": "Recettes filtrées",
"fl oz": "oz liq",
"fltr": "Filtre",
"Fluid Ounce": "Once liquide",
"French": "française",
- "FRI": "ven",
"fsList": "Vos recettes favorites sont listées ici",
"g": "g",
"gal": "gal",
@@ -111,12 +106,9 @@
"it": "Élément",
"Italian": "italienne",
"Jamaican": "jamaïcaine",
- "January": "janvier",
"Japanese": "japonaise",
"Jewish": "juive",
"joinTG": "Rejoignez le groupe Telegram",
- "July": "juillet",
- "June": "juin",
"kEdit": "CONTINUER",
"Kenyan": "kényane",
"kg": "kg",
@@ -136,8 +128,6 @@
"lunch": "Déjeuner",
"mAgo": "il y a %s mois",
"Main dishes": "Plats principaux",
- "March": "mars",
- "May": "mai",
"Meat": "Viande",
"medium": "moyen",
"Mexican": "mexicaine",
@@ -147,7 +137,6 @@
"minimal": "Minimale",
"ml": "ml",
"Moderate": "Modéré",
- "MON": "lun",
"newCui": "Nouvelle cuisine",
"Newest first": "La plus récente d’abord",
"newRec": "Nouvelle recette",
@@ -162,10 +151,8 @@
"noRecs": "Aucune recette ne correspond à votre recette",
"noRecsInL": "Aucune des recettes ici ne correspond à votre recherche",
"nos": "Notes",
- "November": "novembre",
"nwCat": "Nouvelle catégorie",
"nwYiU": "Nouvelle unité de portion",
- "October": "octobre",
"OK": "OK",
"Oldest first": "La plus ancienne d’abord",
"opts": "Options",
@@ -179,7 +166,7 @@
"Piece": "Morceau",
"pinch": "pincée",
"planner": "Planificateur de repas",
- "plsAdd": "Utilisez le bouton plus pour en ajouter une",
+ "plsAdd": "Utilisez le bouton + pour en ajouter une",
"Portuguese": "portugaise",
"Poultry": "Volaille",
"Pound": "Livre",
@@ -223,12 +210,10 @@
"rst": "REDÉMARRER",
"Russian": "russe",
"Salads": "Salades",
- "SAT": "sam",
"Sauces": "Sauces",
"Scottish": "écossaise",
"Seafood": "Fruits de mer",
"selRec": "Sélectionner une recette",
- "September": "septembre",
"ser": "Chercher",
"Serving": "Portion",
"SET": "DÉFINIR",
@@ -250,7 +235,6 @@
"stick": "barre",
"stp": "Étape",
"strAdd": "Commencez à ajouter vos recettes !",
- "SUN": "dim",
"sVw": "Secouez pour voir une recette au hasard",
"sVwInfo": "Vous aide à choisir quoi cuisiner quand vous ne pouvez pas vous décider",
"Swedish": "suédoise",
@@ -261,7 +245,6 @@
"Teaspoon": "Cuillère à café",
"Thai": "thaïlandaise",
"Theme": "Thème",
- "THU": "jeu",
"title": "Titre",
"tLInfo": "Les recettes que vous voulez essayer plus tard sont listées ici",
"today": "aujourd’hui",
@@ -272,7 +255,6 @@
"ts": "Étiquettes",
"tsInfo": "séparez par des espaces",
"tsp": "c.à.c",
- "TUE": "mar",
"Turkish": "turque",
"Undefined": "Indéfini",
"unit": "unité",
@@ -283,7 +265,6 @@
"Vegetarian": "Végétarien",
"Vietnamese": "vietnamienne",
"wAgo": "il y a %s semaines",
- "WED": "mer",
"yesterday": "hier",
"yieldQ": "Quantité de portion",
"yieldU": "Unité de portion",
@@ -307,7 +288,7 @@
"minutes": "minutes",
"minute": "minute",
"dlyDur": "Durée du retard",
- "delay": "Retard",
+ "delay": "Retarder",
"notifSetg": "Paramètres de notification",
"tmrRm": "Minuterie retirée",
"delPrst": "Vous êtes sur le point de supprimer %s des préréglages",
@@ -325,13 +306,6 @@
"tmrw": "Demain",
"tdy": "Aujourd’hui",
"cpy": "copie",
- "sat": "samedi",
- "fri": "vendredi",
- "thu": "jeudi",
- "wed": "mercredi",
- "tue": "mardi",
- "mon": "lundi",
- "sun": "dimanche",
"d": "Jour",
"wk": "Semaine",
"mnth": "Mois",
@@ -342,7 +316,13 @@
"otay": "Après un an",
"admp": "Supprimer automatiquement les planifications de repas",
"nvr": "Jamais",
- "plsCrt": "Utilisez le bouton plus pour en créer une",
+ "plsCrt": "Utilisez le bouton + pour en créer une",
"ehwmp": "Mangez sainement grâce aux planifications de repas !",
- "selMT": "Sélectionnez le type de repas"
+ "selMT": "Sélectionnez le type de repas",
+ "rstBtn": "RÉINITIALISER",
+ "add": "Ajouter",
+ "ksavr": "Garder l’écran allumé durant l’affichage d’une recette",
+ "esgbInfo": "Désactivez cette option si vous avez des problèmes de navigation",
+ "esgb": "Balayer le bord pour revenir en arrière",
+ "ksavrInfo": "Empêche l’écran de s’éteindre durant la visualisation d’une recette"
}
diff --git a/app/i18n/hi.json b/app/i18n/hi.json
index aed70cd9..c363a980 100644
--- a/app/i18n/hi.json
+++ b/app/i18n/hi.json
@@ -18,9 +18,7 @@
"appInfo": "एनरेसिपीज़ एक खुला स्रोत, गोपनीयता-अनुकूल डिजिटल रसोई की किताब है जो आपको अपने व्यंजनों को बनाने, प्रबंधित करने और साझा करने देता है",
"apply": "लागू",
"appRst": "एप्लिकेशन पुनरारंभ की आवश्यकता है",
- "April": "अप्रैल",
"aStpBtn": "निर्देश जोड़ें",
- "August": "अगस्त",
"Barbecue": "बारबेक्यू",
"Beverages": "पेय",
"Black": "काला",
@@ -53,7 +51,6 @@
"Dark": "गहरा",
"db": "डेटाबेस",
"dBtn": "हटाएँ",
- "December": "दिसंबर",
"delRecInfo": "आप के बारे में स्थायी रूप से नुस्खा %s को नष्ट करने के लिए कर रहे हैं",
"delRecsInfo": "आप %s को स्थायी रूप से हटाने वाले हैं",
"Desserts": "डेसर्ट",
@@ -75,14 +72,12 @@
"expip": "निर्यात प्रगति पर है",
"expSuc": "निर्यात की सफलता",
"favourites": "पसंदीदा",
- "February": "फ़रवरी",
"Filipino": "filipino",
"Filtered recipes": "फ़िल्टर किए गए व्यंजनों",
"fl oz": "द्रव-औंस",
"fltr": "फ़िल्टर",
"Fluid Ounce": "द्रव-औंस",
"French": "फ्रेंच",
- "FRI": "शुक्र",
"fsList": "आपकी पसंदीदा रेसिपी यहाँ सूचीबद्ध हैं",
"g": "ग्राम",
"gal": "गैलन",
@@ -111,12 +106,9 @@
"it": "मद",
"Italian": "इतालवी",
"Jamaican": "जमैका",
- "January": "जनवरी",
"Japanese": "जापानी",
"Jewish": "यहूदी",
"joinTG": "टेलीग्राम समूह में शामिल हों",
- "July": "जुलाई",
- "June": "जून",
"kEdit": "संपादन रखें",
"Kenyan": "केन्याई",
"kg": "किलोग्राम",
@@ -136,8 +128,6 @@
"lunch": "दोपहर का भोजन",
"mAgo": "%s महीने पहले",
"Main dishes": "मुख्य व्यंजन",
- "March": "जुलूस",
- "May": "मई",
"Meat": "मांस",
"medium": "मध्यम",
"Mexican": "मैक्सिकन",
@@ -147,7 +137,6 @@
"minimal": "कम से कम",
"ml": "मिली लीटर",
"Moderate": "उदारवादी",
- "MON": "सोम",
"newCui": "नए भोजन",
"Newest first": "नवीनतम पहले",
"newRec": "नई रेसिपी",
@@ -162,10 +151,8 @@
"noRecs": "कोई भी रेसिपी आपकी खोज से मेल नहीं खाती",
"noRecsInL": "यहां कोई भी रेसिपी आपकी खोज से मेल नहीं खाती है",
"nos": "नोट्स",
- "November": "नवंबर",
"nwCat": "नई श्रेणी",
"nwYiU": "नई उपज इकाई",
- "October": "अक्टूबर",
"OK": "ठीक है",
"Oldest first": "सबसे पुराना पहले",
"opts": "विकल्प",
@@ -179,7 +166,7 @@
"Piece": "टुकड़ा",
"pinch": "chutakee",
"planner": "भोजन नियोजक",
- "plsAdd": "एक जोड़ने के लिए प्लस बटन का उपयोग करें",
+ "plsAdd": "एक जोड़ने के लिए + बटन का प्रयोग करें",
"Portuguese": "पुर्तगाली",
"Poultry": "मुर्गी पालन",
"Pound": "पौंड",
@@ -223,12 +210,10 @@
"rst": "पुनरारंभ",
"Russian": "रूसी",
"Salads": "सलाद",
- "SAT": "शनि",
"Sauces": "सॉस",
"Scottish": "स्कॉटिश",
"Seafood": "समुद्री भोजन",
"selRec": "नुस्खा चुनें",
- "September": "सितंबर",
"ser": "खोज",
"Serving": "सर्विंग",
"SET": "सेट",
@@ -250,7 +235,6 @@
"stick": "लाठी",
"stp": "कदम",
"strAdd": "अपने व्यंजनों को जोड़ना शुरू करें!",
- "SUN": "रवि",
"sVw": "यादृच्छिक नुस्खा देखने के लिए हिलाएं",
"sVwInfo": "जब आप तय नहीं कर सकते तो आपको क्या खाना बनाना है, यह चुनने में मदद करता है",
"Swedish": "स्वीडिश",
@@ -261,7 +245,6 @@
"Teaspoon": "छोटी चम्मच",
"Thai": "थाई",
"Theme": "थीम",
- "THU": "गुरु",
"title": "शीर्षक",
"tLInfo": "जिन व्यंजनों को आप बाद में आज़माना चाहते हैं, वे यहाँ सूचीबद्ध हैं",
"today": "आज",
@@ -272,7 +255,6 @@
"ts": "टैग",
"tsInfo": "रिक्त स्थान के साथ अलग",
"tsp": "छोटी चम्मच",
- "TUE": "मंगल",
"Turkish": "तुर्की",
"Undefined": "अपरिभाषित",
"unit": "इकाई",
@@ -283,7 +265,6 @@
"Vegetarian": "शाकाहारी",
"Vietnamese": "वियतनामी",
"wAgo": "%s हफ्ते पहले",
- "WED": "बुध",
"yesterday": "कल",
"yieldQ": "उपज की मात्रा",
"yieldU": "उपज इकाई",
@@ -316,13 +297,6 @@
"tmrw": "कल",
"tdy": "आज",
"cpy": "कॉपी",
- "sat": "शनिवार",
- "fri": "शुक्रवार",
- "thu": "गुरूवार",
- "wed": "बुधवार",
- "tue": "मंगलवार",
- "mon": "सोमवार",
- "sun": "रविवार",
"calVM": "कैलेंडर दृश्य मोड",
"oAP": "%1$s चल रहा है, %2$s रुका हुआ है",
"ttv": "देखने के लिए टैप करें",
@@ -333,5 +307,22 @@
"prstTU": "प्रीसेट समय अपडेट किया गया",
"ccwt": "टाइमर्स के साथ आत्मविश्वास से पकाएं!",
"gtD": "डेट पर जाएं",
- "random": "बेतरतीब"
+ "random": "बेतरतीब",
+ "esgbInfo": "यदि आपके पास नेविगेशन समस्याएं हैं तो इसे अक्षम करें",
+ "esgb": "वापस जाने के लिए किनारे से स्वाइप करें",
+ "ksavrInfo": "नुस्खा देखते समय स्क्रीन को बंद होने से रोकता है",
+ "ksavr": "रेसिपी देखते समय स्क्रीन को चालू रखें",
+ "rstBtn": "रीसेट",
+ "add": "जोड़ना",
+ "nvr": "कभी नहीँ",
+ "otaw": "एक सप्ताह से अधिक पुराना",
+ "otam": "एक महीने से अधिक पुराना",
+ "otay": "एक वर्ष से अधिक पुराना",
+ "admp": "भोजन योजनाओं को स्वतः हटाएं",
+ "plsCrt": "एक बनाने के लिए + बटन का प्रयोग करें",
+ "ehwmp": "भोजन योजना के साथ स्वस्थ खाओ!",
+ "selMT": "भोजन का प्रकार चुनें",
+ "d": "दिन",
+ "wk": "सप्ताह",
+ "mnth": "महीना"
}
diff --git a/app/i18n/id.json b/app/i18n/id.json
index 257da233..ce945712 100644
--- a/app/i18n/id.json
+++ b/app/i18n/id.json
@@ -18,9 +18,7 @@
"appInfo": "EnRecipes adalah buku resep digital sumber terbuka, ramah privasi yang memungkinkan anda untuk membuat, mengatur dan berbagi resep",
"apply": "MENERAPKAN",
"appRst": "Aplikasi perlu dimulai ulang",
- "April": "April",
"aStpBtn": "TAMBAH LANGKAH",
- "August": "Agustus",
"Barbecue": "barbekyu",
"Beverages": "Minuman",
"Black": "Hitam",
@@ -53,7 +51,6 @@
"Dark": "Gelap",
"db": "Basisdata",
"dBtn": "HAPUS",
- "December": "Desember",
"delRecInfo": "Anda akan menghapus resep %s secara permanen",
"delRecsInfo": "Anda akan menghapus %s secara permanen",
"Desserts": "Makanan pencuci mulut",
@@ -75,14 +72,12 @@
"expip": "Ekspor sedang berlangsung",
"expSuc": "Ekspor berhasil",
"favourites": "Favorit",
- "February": "Februari",
"Filipino": "Filipina",
"Filtered recipes": "Resep yang difilter",
"fl oz": "fl oz",
"fltr": "Saring",
"Fluid Ounce": "Ons Cairan",
"French": "Perancis",
- "FRI": "JUM",
"fsList": "Resep favorit Anda tercantum di sini",
"g": "g",
"gal": "gal",
@@ -111,12 +106,9 @@
"it": "Item",
"Italian": "Italia",
"Jamaican": "Jamaika",
- "January": "Januari",
"Japanese": "Jepang",
"Jewish": "Yahudi",
"joinTG": "Gabung grup Telegram",
- "July": "Juli",
- "June": "Juni",
"kEdit": "TETAP MENYUNTING",
"Kenyan": "Kenya",
"kg": "kg",
@@ -136,8 +128,6 @@
"lunch": "Makan siang",
"mAgo": "%s bulan yang lalu",
"Main dishes": "Hidangan utama",
- "March": "Maret",
- "May": "Mei",
"Meat": "Daging",
"medium": "sedang",
"Mexican": "Meksiko",
@@ -147,7 +137,6 @@
"minimal": "paling sedikit",
"ml": "ml",
"Moderate": "Sedang",
- "MON": "SEN",
"newCui": "Hidangan baru",
"Newest first": "Yang terbaru",
"newRec": "Resep baru",
@@ -162,10 +151,8 @@
"noRecs": "Tidak ada resep yang cocok dengan pencarian anda",
"noRecsInL": "Tidak ada resep di sini yang cocok dengan pencarian Anda",
"nos": "Catatan-catatan",
- "November": "November",
"nwCat": "Kategori baru",
"nwYiU": "Satuan hasil baru",
- "October": "Oktober",
"OK": "Baik",
"Oldest first": "Yang terlama",
"opts": "Pilihan",
@@ -223,12 +210,10 @@
"rst": "Mulai ulang",
"Russian": "Russia",
"Salads": "Salad",
- "SAT": "SAB",
"Sauces": "Saus",
"Scottish": "Skotlandia",
"Seafood": "Hidangan laut",
"selRec": "Pilih resep",
- "September": "September",
"ser": "Cari",
"Serving": "Penyajian",
"SET": "ATUR",
@@ -250,7 +235,6 @@
"stick": "batang",
"stp": "Langkah",
"strAdd": "Mulai tambahkan resep Anda!",
- "SUN": "MIN",
"sVw": "Kocok untuk melihat resep acak",
"sVwInfo": "Membantu anda untuk memilih apa yang dimasak ketika anda tidak bisa menentukan",
"Swedish": "Swedia",
@@ -261,7 +245,6 @@
"Teaspoon": "Sendok teh",
"Thai": "Thailand",
"Theme": "Tema",
- "THU": "KAM",
"title": "Judul",
"tLInfo": "Resep yang ingin Anda coba nanti tercantum di sini",
"today": "hari ini",
@@ -272,7 +255,6 @@
"ts": "Tag",
"tsInfo": "pisahkan dengan spasi",
"tsp": "sdt",
- "TUE": "SEL",
"Turkish": "Turki",
"Undefined": "Belum terdefinisi",
"unit": "Satuan",
@@ -283,7 +265,6 @@
"Vegetarian": "vegetarian",
"Vietnamese": "Vietnam",
"wAgo": "%s minggu yang lalu",
- "WED": "RAB",
"yesterday": "kemarin",
"yieldQ": "Kuantitas hasil",
"yieldU": "Satuan hasil",
diff --git a/app/i18n/it.json b/app/i18n/it.json
index 84ee21ff..2739ab57 100644
--- a/app/i18n/it.json
+++ b/app/i18n/it.json
@@ -17,10 +17,8 @@
"Appetizers": "Antipasti",
"appInfo": "EnRecipes è un ricettario digitale a codice aperto e rispettoso della riservatezza che ti consente di creare, gestire e condividere le tue ricette",
"apply": "APPLICA",
- "appRst": "Riavvio dell'app necessario",
- "April": "aprile",
+ "appRst": "Riavvio dell’app necessario",
"aStpBtn": "AGGIUNGI UN PASSO",
- "August": "agosto",
"Barbecue": "Grigliata",
"Beverages": "Bevande",
"Black": "Nero",
@@ -53,7 +51,6 @@
"Dark": "Scuro",
"db": "Banca dati",
"dBtn": "ELIMINA",
- "December": "dicembre",
"delRecInfo": "Stai per eliminare definitivamente la ricetta %s",
"delRecsInfo": "Stai per eliminare definitivamente %s",
"Desserts": "Dolci",
@@ -75,14 +72,12 @@
"expip": "Esportazione in corso",
"expSuc": "Exportation réussie",
"favourites": "Preferiti",
- "February": "febbraio",
"Filipino": "filippina",
"Filtered recipes": "Ricette filtrate",
"fl oz": "fl oz",
"fltr": "Filtro",
"Fluid Ounce": "Oncia liquida",
"French": "francese",
- "FRI": "ven",
"fsList": "Le tue ricette preferite sono elencate qui",
"g": "g",
"gal": "gal",
@@ -111,12 +106,9 @@
"it": "Voce",
"Italian": "italiana",
"Jamaican": "giamaicana",
- "January": "gennaio",
"Japanese": "giapponese",
"Jewish": "ebraica",
"joinTG": "Unisciti al gruppo Telegram",
- "July": "luglio",
- "June": "giugno",
"kEdit": "CONTINUA A MODIFICARE",
"Kenyan": "keniota",
"kg": "kg",
@@ -136,8 +128,6 @@
"lunch": "Pranzo",
"mAgo": "%s mesi fa",
"Main dishes": "Piatti principali",
- "March": "marzo",
- "May": "maggio",
"Meat": "Carne",
"medium": "medio",
"Mexican": "messicana",
@@ -147,7 +137,6 @@
"minimal": "Minima",
"ml": "ml",
"Moderate": "Moderato",
- "MON": "lun",
"newCui": "Nuova cucina",
"Newest first": "Prima la più ricente",
"newRec": "Nuova ricetta",
@@ -162,10 +151,8 @@
"noRecs": "Nessuna ricetta corrisponde alla tua ricerca",
"noRecsInL": "Nessuna delle ricette qui corrisponde alla tua ricerca",
"nos": "Note",
- "November": "novembre",
"nwCat": "Nuova categoria",
"nwYiU": "Nuova unità di resa",
- "October": "ottobre",
"OK": "OK",
"Oldest first": "Prima la più vecchia",
"opts": "Opzioni",
@@ -179,7 +166,7 @@
"Piece": "Pezzo",
"pinch": "pizzico",
"planner": "Pianificatore di pasti",
- "plsAdd": "Usa il pulsante più per aggiungerne uno",
+ "plsAdd": "Usa il pulsante + per aggiungerne uno",
"Portuguese": "portoghese",
"Poultry": "Pollame",
"Pound": "Libbra",
@@ -203,32 +190,30 @@
"req": "%s necessario",
"resNF": "Ricetta non trovata",
"rest": "Ripristina",
- "restCatL": "Reimposta l'elenco delle categorie",
- "restCuiL": "Reimposta l'elenco cucina",
+ "restCatL": "Reimposta l’elenco delle categorie",
+ "restCuiL": "Reimposta l’elenco cucina",
"restDone": "Reimpostazione eseguito",
- "restInfo": "Il ripristino di un elenco eliminerà le voci create dall'utente e ripristinerà le voci predefinite. Le ricette esistenti non saranno interessate.",
- "restUL": "Reimposta l'elenco delle unità",
- "restYUL": "Reimposta l'elenco delle unità di resa",
+ "restInfo": "Il ripristino di un elenco eliminerà le voci create dall’utente e ripristinerà le voci predefinite. Le ricette esistenti non saranno interessate.",
+ "restUL": "Reimposta l’elenco delle unità",
+ "restYUL": "Reimposta l’elenco delle unità di resa",
"Rice": "Riso",
- "rmCatInfo": "Stai per rimuovere %s dall'elenco delle categorie",
+ "rmCatInfo": "Stai per rimuovere %s dall’elenco delle categorie",
"rmCmb": "Combinazione rimossa",
- "rmCuiInfo": "Stai per rimuovere %s dall'elenco della cucina",
+ "rmCuiInfo": "Stai per rimuovere %s dall’elenco della cucina",
"rmIng": "Ingrediente rimosso",
"rmIns": "Istruzione rimossa",
"rmN": "Nota rimossa",
- "rmUInfo": "Stai per rimuovere %s dall'elenco delle unità",
- "rmYUInfo": "Stai per rimuovere %s dall'elenco delle unità di rendimento",
+ "rmUInfo": "Stai per rimuovere %s dall’elenco delle unità",
+ "rmYUInfo": "Stai per rimuovere %s dall’elenco delle unità di rendimento",
"Roll": "Rotolo",
"rp": "Rimuovi la foto",
"rst": "RIAVVIA",
"Russian": "russa",
"Salads": "Insalate",
- "SAT": "sab",
"Sauces": "Salse",
"Scottish": "scozzese",
"Seafood": "Frutti di mare",
"selRec": "Seleziona una ricetta",
- "September": "settembre",
"ser": "Cerca",
"Serving": "Porzione",
"SET": "IMPOSTA",
@@ -250,7 +235,6 @@
"stick": "bastone",
"stp": "Passo",
"strAdd": "Inizia ad aggiungere le tue ricette!",
- "SUN": "dom",
"sVw": "Scuoti per visualizzare una ricetta casuale",
"sVwInfo": "Ti aiuta a scegliere cosa cucinare quando non puoi decidere",
"Swedish": "svedese",
@@ -261,7 +245,6 @@
"Teaspoon": "Cucchiaino",
"Thai": "tailandese",
"Theme": "Tema",
- "THU": "gio",
"title": "Titolo",
"tLInfo": "Le ricette che vuoi provare in seguito sono elencate qui",
"today": "oggi",
@@ -272,7 +255,6 @@
"ts": "Etichette",
"tsInfo": "separa con spazi",
"tsp": "cucchiaino",
- "TUE": "mar",
"Turkish": "turca",
"Undefined": "Indefinito",
"unit": "unità",
@@ -283,7 +265,6 @@
"Vegetarian": "Vegetariano",
"Vietnamese": "vietnamita",
"wAgo": "%s settimane fa",
- "WED": "mer",
"yesterday": "ieri",
"yieldQ": "Quantità di resa",
"yieldU": "Unità di resa",
@@ -307,7 +288,7 @@
"minutes": "minuti",
"minute": "minuto",
"dlyDur": "Durata del ritardo",
- "delay": "Ritardo",
+ "delay": "Ritarda",
"notifSetg": "Impostazioni di notifica",
"tmrRm": "Contaminuti rimosso",
"delPrst": "Stai per eliminare %s dalle preimpostazioni",
@@ -325,13 +306,6 @@
"tmrw": "Domani",
"tdy": "Oggi",
"cpy": "copia",
- "sat": "sabato",
- "fri": "venerdì",
- "thu": "giovedì",
- "wed": "mercoledì",
- "tue": "martedì",
- "mon": "lunedì",
- "sun": "domenica",
"d": "Giorno",
"wk": "Settimana",
"mnth": "Mese",
@@ -342,7 +316,13 @@
"otay": "Dopo un anno",
"nvr": "Mai",
"admp": "Elimina automaticamente i piani pasto",
- "plsCrt": "Usa il pulsante più per crearne uno",
+ "plsCrt": "Usa il pulsante + per crearne uno",
"ehwmp": "Mangia sano con i piani dei pasti!",
- "selMT": "Seleziona il tipo di pasto"
+ "selMT": "Seleziona il tipo di pasto",
+ "rstBtn": "RIPRISTINA",
+ "add": "Aggiungi",
+ "esgbInfo": "Disabilita questa opzione se hai problemi di navigazione",
+ "esgb": "Scorri sul bordo per tornare indietro",
+ "ksavrInfo": "Impedisce che lo schermo si spenga durante la visualizzazione di una ricetta",
+ "ksavr": "Mantieni lo schermo attivo durante la visualizzazione di una ricetta"
}
diff --git a/app/i18n/ja.json b/app/i18n/ja.json
index 2167f57e..1a2a6335 100644
--- a/app/i18n/ja.json
+++ b/app/i18n/ja.json
@@ -18,9 +18,7 @@
"appInfo": "EnRecipesはレシピを作成・管理・共有することができる、オープンソースでプライバシーに配慮したデジタル料理本です",
"apply": "適用する",
"appRst": "アプリの再起動が必要",
- "April": "4月",
"aStpBtn": "手順を追加",
- "August": "8月",
"Barbecue": "キャンプ料理",
"Beverages": "飲物",
"Black": "黒",
@@ -53,7 +51,6 @@
"Dark": "ダーク",
"db": "データベース",
"dBtn": "削除",
- "December": "12月",
"delRecInfo": "レシピ %s を削除しようとしています",
"delRecsInfo": "%s 件のレシピを削除しようとしています",
"Desserts": "デザート",
@@ -75,14 +72,12 @@
"expip": "エクスポートを実行中",
"expSuc": "エクスポートに成功",
"favourites": "お気に入り",
- "February": "2月",
"Filipino": "フィリピン料理",
"Filtered recipes": "絞り込み結果",
"fl oz": "液量オンス",
"fltr": "絞り込み",
"Fluid Ounce": "液量オンス",
"French": "フランス料理",
- "FRI": "金",
"fsList": "お気に入りのレシピはここに表示されます",
"g": "g",
"gal": "ガロン",
@@ -109,12 +104,9 @@
"Irish": "アイルランド料理",
"Italian": "イタリア料理",
"Jamaican": "ジャマイカ料理",
- "January": "1月",
"Japanese": "和食",
"Jewish": "ユダヤ料理",
"joinTG": "Telegramグループに参加",
- "July": "7月",
- "June": "6月",
"kEdit": "編集を続ける",
"Kenyan": "ケニア料理",
"kg": "kg",
@@ -132,8 +124,6 @@
"lunch": "昼食",
"mAgo": "%s か月前",
"Main dishes": "主菜",
- "March": "3月",
- "May": "5月",
"Meat": "肉料理",
"Mexican": "メキシコ料理",
"mg": "mg",
@@ -142,7 +132,6 @@
"minimal": "最小",
"ml": "ml",
"Moderate": "普通",
- "MON": "月",
"newCui": "新しいジャンル",
"Newest first": "新しい順",
"newRec": "新しいレシピ",
@@ -156,10 +145,8 @@
"noRecs": "検索に一致するレシピがありません",
"noRecsInL": "検索に一致するレシピが見つかりませんでした",
"nos": "メモ",
- "November": "11月",
"nwCat": "新しいカテゴリー",
"nwYiU": "新しい仕上がり単位",
- "October": "10月",
"OK": "OK",
"Oldest first": "古いもの順",
"opts": "オプション",
@@ -215,12 +202,10 @@
"rst": "再起動",
"Russian": "ロシア料理",
"Salads": "サラダ",
- "SAT": "土",
"Sauces": "ソース",
"Scottish": "スコットランド料理",
"Seafood": "シーフード",
"selRec": "レシピを選択",
- "September": "9月",
"ser": "検索",
"Serving": "人前",
"SET": "設定",
@@ -240,7 +225,6 @@
"stars": "星評価",
"stp": "作り方",
"strAdd": "レシピを追加しましょう!",
- "SUN": "日",
"sVw": "振ってランダムなレシピを表示",
"sVwInfo": "何を作るか決められないときに使います",
"Swedish": "スウェーデン料理",
@@ -251,7 +235,6 @@
"Teaspoon": "小さじ",
"Thai": "タイ料理",
"Theme": "テーマ",
- "THU": "木",
"title": "タイトル",
"tLInfo": "あとで試したいレシピはここに並びます",
"today": "今日",
@@ -262,7 +245,6 @@
"ts": "タグ",
"tsInfo": "スペースで区切ってください",
"tsp": "小さじ",
- "TUE": "火",
"Turkish": "トルコ料理",
"unit": "個",
"Unit": "単位",
@@ -272,7 +254,6 @@
"Vegetarian": "ベジタリアン",
"Vietnamese": "ベトナム料理",
"wAgo": "%s 週前",
- "WED": "水",
"yesterday": "昨日",
"yieldQ": "仕上がり分量",
"yieldU": "仕上がり分量の単位",
@@ -289,5 +270,6 @@
"it": "材料",
"small": "小",
"large": "大",
- "medium": "中"
+ "medium": "中",
+ "sec": "s"
}
diff --git a/app/i18n/ml.json b/app/i18n/ml.json
index 22b596c5..4fc0f106 100644
--- a/app/i18n/ml.json
+++ b/app/i18n/ml.json
@@ -18,9 +18,7 @@
"appInfo": "നിങ്ങളുടെ പാചകക്കുറിപ്പുകൾ സൃഷ്ടിക്കാനും നിയന്ത്രിക്കാനും പങ്കിടാനും അനുവദിക്കുന്ന ഒരു ഓപ്പൺ സോഴ്സ്, സ്വകാര്യത കേന്ദ്രീകരിച്ച ഡിജിറ്റൽ പാചകപുസ്തകമാണ് എന്റെരെസിപീസ്",
"apply": "പ്രയോഗിക്കുക",
"appRst": "അപ്ലിക്കേഷൻ പുനരാരംഭിക്കൽ ആവശ്യമാണ്",
- "April": "ഏപ്രിൽ",
"aStpBtn": "നിർദ്ദേശം ചേർക്കുക",
- "August": "ഓഗസ്റ്റ്",
"Barbecue": "ബാർബിക്യൂ",
"Beverages": "പാനീയങ്ങൾ",
"Black": "കറുപ്പ്",
@@ -53,7 +51,6 @@
"Dark": "ഇരുണ്ടത്",
"db": "ഡാറ്റാബേസ്",
"dBtn": "ഇല്ലാതാക്കുക",
- "December": "ഡിസംബർ",
"delRecInfo": "%s പാചകക്കുറിപ്പ് നിങ്ങൾ ശാശ്വതമായി ഇല്ലാതാക്കാൻ പോകുന്നു",
"delRecsInfo": "നിങ്ങൾ %s ശാശ്വതമായി ഇല്ലാതാക്കാൻ പോകുന്നു",
"Desserts": "മധുരപലഹാരങ്ങൾ",
@@ -75,14 +72,12 @@
"expip": "കയറ്റുമതി പുരോഗതിയിലാണ്",
"expSuc": "കയറ്റുമതി വിജയം",
"favourites": "പ്രിയങ്കരങ്ങൾ",
- "February": "ഫെബ്രുവരി",
"Filipino": "ഫിലിപ്പിനോ",
"Filtered recipes": "ഫിൽട്ടർ ചെയ്ത പാചകക്കുറിപ്പുകൾ",
"fl oz": "ഫ്ലൂയിഡ് un ൺസ്",
"fltr": "ഫിൽട്ടർ ചെയ്യുക",
"Fluid Ounce": "ഫ്ലൂയിഡ് un ൺസ്",
"French": "ഫ്രഞ്ച്",
- "FRI": "വെള്ളി",
"fsList": "നിങ്ങളുടെ പ്രിയപ്പെട്ട പാചകക്കുറിപ്പുകൾ ഇവിടെ പട്ടികപ്പെടുത്തിയിട്ടുണ്ട്",
"g": "ഗ്രാം",
"gal": "ഗാലൺ",
@@ -111,12 +106,9 @@
"it": "ഇനം",
"Italian": "ഇറ്റാലിയൻ",
"Jamaican": "ജമൈക്കൻ",
- "January": "ജനുവരി",
"Japanese": "ജാപ്പനീസ്",
"Jewish": "ജൂതൻ",
"joinTG": "ടെലിഗ്രാം ഗ്രൂപ്പിൽ ചേരുക",
- "July": "ജൂലൈ",
- "June": "ജൂൺ",
"kEdit": "എഡിറ്റിംഗ് തുടരുക",
"Kenyan": "കെനിയൻ",
"kg": "കി. ഗ്രാം",
@@ -136,8 +128,6 @@
"lunch": "ഉച്ചഭക്ഷണം",
"mAgo": "%s മാസം മുമ്പ്",
"Main dishes": "പ്രധാന വിഭവങ്ങൾ",
- "March": "മാർച്ച്",
- "May": "മെയ്",
"Meat": "മാംസം",
"medium": "ഇടത്തരം",
"Mexican": "മെക്സിക്കൻ",
@@ -147,7 +137,6 @@
"minimal": "കുറഞ്ഞത്",
"ml": "മില്ലി",
"Moderate": "മിതത്വം",
- "MON": "തിങ്കൾ",
"newCui": "പുതിയ പാചകരീതി",
"Newest first": "ആദ്യത്തെ പുതിയത്",
"newRec": "പുതിയ പാചകക്കുറിപ്പ്",
@@ -162,10 +151,8 @@
"noRecs": "പാചകക്കുറിപ്പുകളൊന്നും നിങ്ങളുടെ തിരയലുമായി പൊരുത്തപ്പെടുന്നില്ല",
"noRecsInL": "ഇവിടെയുള്ള പാചകങ്ങളൊന്നും നിങ്ങളുടെ തിരയലുമായി പൊരുത്തപ്പെടുന്നില്ല",
"nos": "കുറിപ്പുകൾ",
- "November": "നവംബർ",
"nwCat": "പുതിയ വിഭാഗം",
"nwYiU": "പുതിയ വിളവ് യൂണിറ്റ്",
- "October": "ഒക്ടോബർ",
"OK": "ശരി",
"Oldest first": "ആദ്യം പഴയത്",
"opts": "ഓപ്ഷനുകൾ",
@@ -179,7 +166,7 @@
"Piece": "പീസ്",
"pinch": "നുള്ള്",
"planner": "ഭക്ഷണ പ്ലാനർ",
- "plsAdd": "ഒരെണ്ണം ചേർക്കാൻ പ്ലസ് ബട്ടൺ ഉപയോഗിക്കുക",
+ "plsAdd": "ഒരെണ്ണം ചേർക്കാൻ + ബട്ടൺ ഉപയോഗിക്കുക",
"Portuguese": "പോർച്ചുഗീസ്",
"Poultry": "കോഴി",
"Pound": "പൗണ്ട്",
@@ -223,12 +210,10 @@
"rst": "പുനരാരംഭിക്കുക",
"Russian": "റഷ്യൻ",
"Salads": "സലാഡുകൾ",
- "SAT": "ശനി",
"Sauces": "സോസുകൾ",
"Scottish": "സ്കോട്ടിഷ്",
"Seafood": "കടൽ ഭക്ഷണം",
"selRec": "പാചകക്കുറിപ്പ് തിരഞ്ഞെടുക്കുക",
- "September": "സെപ്റ്റംബർ",
"ser": "തിരയുക",
"Serving": "സേവിക്കുന്നു",
"SET": "സെറ്റ്",
@@ -250,7 +235,6 @@
"stick": "വടി",
"stp": "ഘട്ടം",
"strAdd": "നിങ്ങളുടെ പാചകക്കുറിപ്പുകൾ ചേർക്കാൻ ആരംഭിക്കുക!",
- "SUN": "ഞായ",
"sVw": "ക്രമരഹിതമായ പാചകക്കുറിപ്പ് കാണാൻ കുലുക്കുക",
"sVwInfo": "നിങ്ങൾക്ക് തീരുമാനിക്കാൻ കഴിയാത്തപ്പോൾ എന്താണ് പാചകം ചെയ്യേണ്ടതെന്ന് തിരഞ്ഞെടുക്കാൻ നിങ്ങളെ സഹായിക്കുന്നു",
"Swedish": "സ്വീഡിഷ്",
@@ -261,7 +245,6 @@
"Teaspoon": "ടീസ്പൂൺ",
"Thai": "തായ്",
"Theme": "തീം",
- "THU": "വ്യാഴം",
"title": "ശീർഷകം",
"tLInfo": "നിങ്ങൾ പിന്നീട് ശ്രമിക്കാൻ ആഗ്രഹിക്കുന്ന പാചകക്കുറിപ്പുകൾ ഇവിടെ പട്ടികപ്പെടുത്തിയിട്ടുണ്ട്",
"today": "ഇന്ന്",
@@ -272,7 +255,6 @@
"ts": "ടാഗുകൾ",
"tsInfo": "സ്പെയ്സുകൾ ഉപയോഗിച്ച് വേർതിരിക്കുക",
"tsp": "ടീസ്പൂൺ",
- "TUE": "ചൊവ്വ",
"Turkish": "ടർക്കിഷ്",
"Undefined": "നിർവചിച്ചിട്ടില്ല",
"unit": "യൂണിറ്റ്",
@@ -283,11 +265,64 @@
"Vegetarian": "വെജിറ്റേറിയൻ",
"Vietnamese": "വിയറ്റ്നാമീസ്",
"wAgo": "%s ആഴ്ച മുമ്പ്",
- "WED": "ബുധൻ",
"yesterday": "ഇന്നലെ",
"yieldQ": "വിളവ് അളവ്",
"yieldU": "വിളവ് യൂണിറ്റ്",
"yld": "വരുമാനം",
"buto": "%s ലേക്ക് ബാക്കപ്പ് ചെയ്തു",
- "sysDefB": "സിസ്റ്റം സ്ഥിരസ്ഥിതി + കറുപ്പ്"
+ "sysDefB": "സിസ്റ്റം സ്ഥിരസ്ഥിതി + കറുപ്പ്",
+ "esgbInfo": "നിങ്ങൾക്ക് എന്തെങ്കിലും നാവിഗേഷൻ പ്രശ്നങ്ങളുണ്ടെങ്കിൽ ഈ ഓപ്ഷൻ അപ്രാപ്തമാക്കുക",
+ "esgb": "തിരിച്ചുപോകാൻ എഡ്ജ് സ്വൈപ്പ്",
+ "ksavrInfo": "ഒരു പാചകക്കുറിപ്പ് കാണുമ്പോൾ സ്ക്രീൻ ഓഫാകുന്നത് തടയുന്നു",
+ "ksavr": "പാചകക്കുറിപ്പ് കാണുമ്പോൾ സ്ക്രീൻ ഓണാക്കുക",
+ "rstBtn": "പുനഃക്രമീകരിക്കുക",
+ "add": "ചേർക്കുക",
+ "nvr": "ഒരിക്കലും",
+ "otaw": "ഒരാഴ്ചയേക്കാൾ പഴയത്",
+ "otam": "ഒരു മാസത്തേക്കാൾ പഴയത്",
+ "otay": "ഒരു വർഷത്തേക്കാൾ പഴയത്",
+ "admp": "യാന്ത്രിക-ഇല്ലാതാക്കുക ഭക്ഷണ പദ്ധതികൾ",
+ "plsCrt": "ഒരെണ്ണം സൃഷ്ടിക്കാൻ + ബട്ടൺ ഉപയോഗിക്കുക",
+ "ehwmp": "ഭക്ഷണ പദ്ധതികളോടെ ആരോഗ്യത്തോടെ ഭക്ഷണം കഴിക്കുക!",
+ "selMT": "ഭക്ഷണ തരം തിരഞ്ഞെടുക്കുക",
+ "ystr": "തലേനാള്",
+ "tmrw": "അടുത്തദിവസം",
+ "tdy": "ഇന്നേദിവസം",
+ "cpy": "പകർപ്പ്",
+ "d": "ദിവസം",
+ "wk": "ആഴ്ച",
+ "mnth": "മാസം",
+ "calVM": "കലണ്ടർ വ്യൂ മോഡ്",
+ "oAP": "%1$s നിലവിലുള്ളത്, %2$s താൽക്കാലികമായി നിർത്തി",
+ "ttv": "കാണാൻ ടാപ്പുചെയ്യുക",
+ "dismissAll": "എല്ലാ ടൈമറുകളും നിരസിക്കുക",
+ "dismiss": "പുറംതള്ളുക",
+ "texp": "%s ടൈമറുകൾ കാലഹരണപ്പെട്ടു",
+ "wDBy": "%1$s %2$s വൈകി",
+ "prstTU": "പ്രീസെറ്റ് സമയം അപ്ഡേറ്റുചെയ്തു",
+ "ccwt": "ടൈമറുകളുമായി ആത്മവിശ്വാസത്തോടെ വേവിക്കുക!",
+ "gtD": "തീയതിയിലേക്ക് പോകുക",
+ "random": "വികലമായ",
+ "notifSetg": "അറിയിപ്പ് ക്രമീകരണങ്ങൾ",
+ "tmrRm": "ടൈമർ നീക്കംചെയ്തു",
+ "seconds": "സെക്കൻഡ്",
+ "hours": "മണിക്കൂറുകൾ",
+ "hour": "മണിക്കൂര്",
+ "minutes": "മിനിറ്റ്",
+ "minute": "മിനിറ്റ്",
+ "dlyDur": "കാലതാമസം",
+ "tmrvbrt": "ടൈമർ വൈബ്രേറ്റ്",
+ "tmrSnd": "ടൈമർ ശബ്ദം",
+ "aTPrst": "പ്രീസെറ്റുകളിലേക്ക് ചേർത്തു",
+ "fwr": "ഏത് പാചകത്തിന്?",
+ "delPrst": "നിങ്ങൾ പ്രീസെറ്റുകളിൽ നിന്ന് %s ഇല്ലാതാക്കാൻ പോകുന്നു",
+ "prsts": "പ്രെസ്റ്റുകൾ",
+ "prstBtn": "പ്രെസ്റ്റുകൾ",
+ "tmr": "ടൈമർ %s",
+ "delay": "താമസിക്കുക",
+ "stop": "നിർത്തുക",
+ "strtBtn": "ആരംഭിക്കുക",
+ "ntmr": "പുതിയ ടൈമർ",
+ "timer": "പാചക ടൈമർ",
+ "sec": "സെക്കൻഡ്"
}
diff --git a/app/i18n/nb-NO.json b/app/i18n/nb-NO.json
index c9a3d5ef..4e445e21 100644
--- a/app/i18n/nb-NO.json
+++ b/app/i18n/nb-NO.json
@@ -18,9 +18,7 @@
"appInfo": "EnRecipes er et fritt kokeboksprogram som respekterer ditt personvern der du kan lage, håndtere og dele dine oppskrifter",
"apply": "Bruk",
"appRst": "Programomstart kreves",
- "April": "April",
"aStpBtn": "Legg til steg",
- "August": "August",
"Barbecue": "Grill",
"Beverages": "Drikke",
"Black": "Svart",
@@ -53,7 +51,6 @@
"Dark": "Mørk",
"db": "Database",
"dBtn": "Slett",
- "December": "Desember",
"delRecInfo": "Du er i ferd med å slette oppskriften %s for godt",
"delRecsInfo": "Du er i ferd med å slette %s for godt",
"Desserts": "Desserter",
@@ -75,14 +72,12 @@
"expip": "Eksport pågår",
"expSuc": "Eksportert",
"favourites": "Favoritter",
- "February": "Februar",
"Filipino": "Filipinsk",
"Filtered recipes": "Filtrerte oppskrifter",
"fl oz": "flytende unse",
"fltr": "Filter",
"Fluid Ounce": "Flytende unse",
"French": "Fransk",
- "FRI": "Fre",
"fsList": "Dine favorittoppskrifter listes opp her",
"g": "g",
"gal": "gal",
@@ -111,12 +106,9 @@
"it": "Element",
"Italian": "Italiensk",
"Jamaican": "Jamaikansk",
- "January": "Januar",
"Japanese": "Japansk",
"Jewish": "Jødisk",
"joinTG": "Ta del i Telegram-gruppen",
- "July": "July",
- "June": "June",
"kEdit": "Fortsett å redigere",
"Kenyan": "Kenyansk",
"kg": "kg",
@@ -136,8 +128,6 @@
"lunch": "Lunsj",
"mAgo": "for %s måneder siden",
"Main dishes": "Hovedretter",
- "March": "March",
- "May": "May",
"Meat": "Kjøtt",
"medium": "middels",
"Mexican": "Meksikansk",
@@ -147,7 +137,6 @@
"minimal": "minimalistisk",
"ml": "ml",
"Moderate": "Moderat",
- "MON": "Man",
"newCui": "Nytt kjøkken",
"Newest first": "Nyeste først",
"newRec": "Ny oppskrift",
@@ -162,10 +151,8 @@
"noRecs": "Ingen oppskrifter samsvarte med søket ditt",
"noRecsInL": "Ingen av oppskriftene her samsvarer med søket",
"nos": "Notiser",
- "November": "November",
"nwCat": "Ny kategori",
"nwYiU": "Ny nyttemengdeenhet",
- "October": "Oktober",
"OK": "OK",
"Oldest first": "Eldste først",
"opts": "Innstillinger",
@@ -223,12 +210,10 @@
"rst": "Omstart",
"Russian": "Russisk",
"Salads": "Salater",
- "SAT": "Sat",
"Sauces": "Sauser",
"Scottish": "Skotsk",
"Seafood": "Sjømat",
"selRec": "Velg oppskrift",
- "September": "September",
"ser": "Søk",
"Serving": "Posjon",
"SET": "Sett",
@@ -250,7 +235,6 @@
"stick": "stang",
"stp": "Steg",
"strAdd": "Begynn å legge til oppskriftene dine!",
- "SUN": "Søn",
"sVw": "Rist for å vise tilfeldig oppskrift",
"sVwInfo": "Hjelper deg å velge hva du skal lage når du ikke kan bestemme deg",
"Swedish": "Svensk",
@@ -261,7 +245,6 @@
"Teaspoon": "Teskje",
"Thai": "Thailandsk",
"Theme": "Drakt",
- "THU": "Tor",
"title": "Tittel",
"tLInfo": "Oppskrifter du ønsker å prøve senere listes opp her",
"today": "i dag",
@@ -272,7 +255,6 @@
"ts": "Etiketter",
"tsInfo": "inndel med mellomrom",
"tsp": "ts",
- "TUE": "Tir",
"Turkish": "Tyrkisk",
"Undefined": "Udefinert",
"unit": "enhet",
@@ -283,7 +265,6 @@
"Vegetarian": "Vegetar",
"Vietnamese": "Vietnamesisk",
"wAgo": "for %s uker siden",
- "WED": "Ons",
"yesterday": "i går",
"yieldQ": "Nyttemengde",
"yieldU": "Enhet for nyttemengde",
diff --git a/app/i18n/nl.json b/app/i18n/nl.json
index 749e5e14..4f96cdb1 100644
--- a/app/i18n/nl.json
+++ b/app/i18n/nl.json
@@ -18,9 +18,7 @@
"appInfo": "EnRecipes in een open source, privacybewust digitaal kookboek waarmee je recepten kunt aanmaken, beheren en delen",
"apply": "TOEPASSEN",
"appRst": "Herstart vereist",
- "April": "april",
"aStpBtn": "STAP TOEVOEGEN",
- "August": "augustus",
"Barbecue": "Barbecue",
"Beverages": "Drankjes",
"Black": "Zwart",
@@ -53,7 +51,6 @@
"Dark": "Donker",
"db": "Databank",
"dBtn": "VERWIJDEREN",
- "December": "december",
"delRecInfo": "Je staat op het punt om %s te verwijderen",
"delRecsInfo": "Je staat op het punt om %s permanent te verwijderen",
"Desserts": "Nagerechten",
@@ -75,14 +72,12 @@
"expip": "Bezig met exporteren",
"expSuc": "Exporteren voltooid",
"favourites": "Favorieten",
- "February": "februari",
"Filipino": "Filipijns",
"Filtered recipes": "Gefilterde recepten",
"fl oz": "fl oz",
"fltr": "Filteren",
"Fluid Ounce": "Vloeibaar ons",
"French": "Frans",
- "FRI": "VRIJ",
"fsList": "Hier vind je je favoriete recepten terug",
"g": "g",
"gal": "gal",
@@ -111,12 +106,9 @@
"it": "Item",
"Italian": "Italiaans",
"Jamaican": "Jamaicaans",
- "January": "januari",
"Japanese": "Japans",
"Jewish": "Joods",
"joinTG": "Word lid van de Telegram-groep",
- "July": "juli",
- "June": "juni",
"kEdit": "DOORGAAN MET BEWERKEN",
"Kenyan": "Keniaans",
"kg": "kg",
@@ -136,8 +128,6 @@
"lunch": "Lunch",
"mAgo": "%s maanden geleden",
"Main dishes": "Hoofdgerechten",
- "March": "maart",
- "May": "mei",
"Meat": "Vlees",
"medium": "middelgroot",
"Mexican": "Mexicaans",
@@ -147,7 +137,6 @@
"minimal": "Minimaal",
"ml": "ml",
"Moderate": "Gemiddeld",
- "MON": "MA",
"newCui": "Nieuwe keuken",
"Newest first": "Nieuwste bovenaan",
"newRec": "Nieuw recept",
@@ -162,10 +151,8 @@
"noRecs": "Er zijn geen overeenkomende zoekresultaten",
"noRecsInL": "Geen van deze recepten komt overeen met je zoekopdracht",
"nos": "Aantekeningen",
- "November": "november",
"nwCat": "Nieuwe categorie",
"nwYiU": "Nieuwe eenheid",
- "October": "oktober",
"OK": "Oké",
"Oldest first": "Oudste bovenaan",
"opts": "Opties",
@@ -223,12 +210,10 @@
"rst": "HERSTARTEN",
"Russian": "Russisch",
"Salads": "Salades",
- "SAT": "ZA",
"Sauces": "Sausen",
"Scottish": "Schots",
"Seafood": "Zeevruchten",
"selRec": "Recept kiezen",
- "September": "september",
"ser": "Zoeken",
"Serving": "Portie",
"SET": "INSTELLEN",
@@ -250,7 +235,6 @@
"stick": "stokje",
"stp": "Stap",
"strAdd": "Voeg je recepten toe!",
- "SUN": "ZO",
"sVw": "Schudden om willekeurig recept te tonen",
"sVwInfo": "Handig voor als je even niet weet wat je wilt maken",
"Swedish": "Zweeds",
@@ -261,7 +245,6 @@
"Teaspoon": "Theelepel",
"Thai": "Thais",
"Theme": "Thema",
- "THU": "DO",
"title": "Naam",
"tLInfo": "Hier vind je de recepten terug die je later wilt uitproberen",
"today": "vandaag",
@@ -272,7 +255,6 @@
"ts": "Labels",
"tsInfo": "kommagescheiden",
"tsp": "tl",
- "TUE": "DI",
"Turkish": "Turks",
"Undefined": "Onbekend",
"unit": "eenheid",
@@ -283,7 +265,6 @@
"Vegetarian": "Vegetarisch",
"Vietnamese": "Vietnamees",
"wAgo": "%s weken geleden",
- "WED": "WOE",
"yesterday": "gisteren",
"yieldQ": "Hoeveelheid",
"yieldU": "Eenheid",
@@ -325,13 +306,6 @@
"tmrw": "Morgen",
"tdy": "Vandaag",
"cpy": "kopie",
- "sat": "zaterdag",
- "fri": "vrijdag",
- "thu": "donderdag",
- "wed": "woensdag",
- "tue": "dinsdag",
- "mon": "maandag",
- "sun": "zondag",
"d": "Dag",
"wk": "Week",
"mnth": "Maand",
@@ -344,5 +318,11 @@
"admp": "Schema's automatisch verwijderen",
"plsCrt": "Druk op de plusknop om een schema toe te voegen",
"ehwmp": "Eet gezond met maaltijdschema's!",
- "selMT": "Kies het soort maaltijd"
+ "selMT": "Kies het soort maaltijd",
+ "rstBtn": "STANDAARDWAARDEN",
+ "add": "Toevoegen",
+ "esgbInfo": "Schakel deze optie uit als je problemen ervaart tijdens het navigeren",
+ "esgb": "Vegen vanaf schermrand om terug te gaan",
+ "ksavrInfo": "Voorkomt dat het scherm wordt uitgeschakeld tijdens het bekijken van een recept",
+ "ksavr": "Scherm niet uitschakelen tijdens bekijken van recept"
}
diff --git a/app/i18n/pt-BR.json b/app/i18n/pt-BR.json
index 3bb49e54..f22800cd 100644
--- a/app/i18n/pt-BR.json
+++ b/app/i18n/pt-BR.json
@@ -5,7 +5,7 @@
"addCmbBtn": "ADICIONE COMBINAÇÃO",
"aFBu": "Adicione um receita para realizar um backup",
"aIngBtn": "ADICIONE INGREDIENTE",
- "aNBtn": "adicionar novo",
+ "aNBtn": "ADICIONAR NOVO",
"aNoBtn": "ADICIONAR NOTA",
"app.name": "EnRecipes",
"Appetizers": "Aperitivos",
@@ -18,29 +18,29 @@
"cat": "Categoria",
"cBtn": "CANCELAR",
"clove": "dente de alho",
- "cm": "Centimetro",
- "cmbs": "Combinação",
- "conBtn": "continuar",
+ "cm": "cm",
+ "cmbs": "Combinações",
+ "conBtn": "CONTINUAR",
"conf": "Confirmar",
"cookT": "Tempo de cozimento",
- "Created": "Criar",
+ "Created": "Criada",
"cup": "copo",
"Cup": "Copo",
"Dark": "Escuro",
- "db": "Base de dados",
- "dBtn": "Deletar",
+ "db": "Banco de dados",
+ "dBtn": "APAGAR",
"Desserts": "Sobremesas",
"dozen": "dúzia",
- "drop": "solta",
+ "drop": "gota",
"dsp": "cds",
"editRec": "Editar receita",
"EnRecipes": "EnRecipes",
"expBu": "Exportar backup completo",
"favourites": "Favoritos",
- "fl oz": "onça fluída",
- "Fluid Ounce": "Onça Fluída (Oz.)",
+ "fl oz": "fl oz",
+ "Fluid Ounce": "Onça fluída (Oz.)",
"fsList": "Suas receitas favoritas estão listadas aqui",
- "g": "grama",
+ "g": "g",
"gal": "gal",
"Gallon": "Galão",
"Gram": "Grama",
@@ -49,13 +49,13 @@
"hr": "h",
"impBu": "Importar dados",
"impInfo": "Suporta backups completos exportados por este aplicativo",
- "in": "Entrar",
+ "in": "in",
"ings": "Ingredientes",
"inss": "Instruções",
"intf": "Interface",
"it": "Item",
"joinTG": "Junte-se ao grupo Telegram",
- "kg": "Kilo",
+ "kg": "kg",
"Kilogram": "Quilograma",
"l": "litro",
"lang": "Idioma",
@@ -69,7 +69,7 @@
"Main dishes": "Pratos principais",
"Meat": "Carnes",
"medium": "médio",
- "mg": "Miligrama",
+ "mg": "mg",
"Millilitre": "Mililitro",
"min": "min",
"ml": "ml",
@@ -79,19 +79,18 @@
"no": "Nota",
"noFavs": "Ainda não há favoritos",
"Noodles": "Macarrão fita",
- "noRecs": "Nenhuma receita corresponde à sua pesquisa",
+ "noRecs": "Nenhuma receita corresponde à sua busca",
"nos": "Notas",
- "November": "Novembro",
"Ounce": "Onça",
"oz": "onça",
"Pasta": "Macarrão",
"Patty": "Empada",
"pht": "Foto da receita",
"piece": "peça",
- "Piece": "Pedaço",
+ "Piece": "Peça",
"pinch": "pitada",
"planner": "Planejador de refeições",
- "plsAdd": "Use o botão de adição para adicionar um",
+ "plsAdd": "Use o botão de adição para adicionar uma",
"Poultry": "Carne de aves",
"Pound": "Libra",
"prepT": "Tempo de preparação",
@@ -100,12 +99,12 @@
"rBtn": "REMOVER",
"rec": "Receita",
"recListEmp": "Nada aqui! Adicione algumas receitas e tente novamente",
- "recTitle": "Minha Receita Saudável",
+ "recTitle": "Minha receita saudável",
"Rice": "Arroz",
- "rmCatInfo": "Você está prestes a remover a categoria",
- "rmCuiInfo": "Você está prestes a remover a cozinha",
- "rmUInfo": "Você está prestes a remover a unidade",
- "rmYUInfo": "Você está prestes a remover a unidade de porção",
+ "rmCatInfo": "Você está prestes a remover %s da lista de categorias",
+ "rmCuiInfo": "Você está prestes a remover %s da lista de cozinha",
+ "rmUInfo": "Você está prestes a remover %s da lista de unidades",
+ "rmYUInfo": "Você está prestes a remover %s das unidades de porção",
"Roll": "Lista",
"rst": "REINICIAR",
"Salads": "Saladas",
@@ -114,11 +113,11 @@
"selRec": "Selecione a receita",
"ser": "Procurar",
"Serving": "Porção",
- "SET": "definir",
+ "SET": "DEFINIR",
"Settings": "Ajustes",
- "shr": "compartilhar",
+ "shr": "Compartilhar",
"Side dishes": "Acompanhamentos",
- "sltd": "Selecionar",
+ "sltd": "selecionada",
"small": "pequeno",
"Soups": "Sopas",
"srt": "Ordenar",
@@ -135,48 +134,36 @@
"trylater": "Experimentar depois",
"tsp": "cc",
"Undefined": "Indefinido",
- "unit": "Unidade",
- "Vegan": "Vegano",
- "Vegetarian": "Vegetariano",
+ "unit": "unidade",
+ "Vegan": "Vegana",
+ "Vegetarian": "Vegetariana",
"yieldQ": "Quantidade de porção",
"yieldU": "Unidade de porção",
- "MON": "SEG",
- "FRI": "SEX",
- "WED": "VIA",
"req": "Necessárias %s",
- "SAT": "SÁB",
- "SUN": "DOM",
- "THU": "QUI",
- "TUE": "TER",
- "July": "Julho",
- "June": "Junho",
- "kEdit": "EDITOR DE KEEP",
- "Kenyan": "Queniano",
- "Korean": "Coreano",
+ "kEdit": "CONTINUAR EDITANDO",
+ "Kenyan": "Queniana",
+ "Korean": "Coreana",
"Last updated": "Última atualização",
"ltAgo": "há muito tempo",
"lunch": "Almoço",
- "March": "Março",
- "May": "Maio",
- "Mexican": "Mexicano",
+ "Mexican": "Mexicana",
"minimal": "Mínimo",
"Moderate": "Moderado",
"newCui": "Nova cozinha",
- "Newest first": "O mais novo primeiro",
+ "Newest first": "A mais nova primeiro",
"newUnit": "Nova unidade",
- "Nigerian": "Nigeriano",
+ "Nigerian": "Nigeriana",
"noAccSensor": "O sensor do acelerômetro está desativado ou não está funcionando",
"noRecsInL": "Nenhuma das receitas aqui corresponde à sua busca",
"nwCat": "Nova categoria",
"nwYiU": "Nova unidade de porção",
- "October": "Outubro",
"OK": "OK",
- "Oldest first": "Os mais antigos",
+ "Oldest first": "As mais antigas primeiro",
"opts": "Opções",
"photogrid": "Grade de fotos",
- "Portuguese": "Português",
+ "Portuguese": "Portuguesa",
"priv": "Política de privacidade",
- "Quickest first": "Primeiro o mais rápido",
+ "Quickest first": "Primeiro a mais rápida",
"Rating": "Classificação",
"recE": "Já existe:",
"swm": "Início da semana na segunda",
@@ -186,70 +173,66 @@
"trySer": "PROCURAR EM TODAS AS RECEITAS?",
"ts": "Etiquetas",
"tsInfo": "separar com espaços",
- "Turkish": "Turco",
+ "Turkish": "Turca",
"Unit": "Unidade",
"unsaved": "Mudanças não salvas",
"untRec": "Receita sem título",
"Vietnamese": "Vietnamita",
"yesterday": "ontem",
- "buto": "Com apoio até %s",
- "Swedish": "Sueco",
+ "buto": "Backup em %s",
+ "Swedish": "Sueca",
"sVwInfo": "Ajuda a escolher o que cozinhar quando você não pode decidir",
"sVw": "Sacudir para ver a receita aleatória",
"stars": "Classificação em estrelas",
"sru": "Compartilhar receita usando...",
"srpu": "Compartilhar foto da receita usando...",
- "Sri Lankan": "Sri Lanka",
- "Spanish": "Espanhol",
+ "Sri Lankan": "Cingalesa",
+ "Spanish": "Espanhola",
"snacks": "Lanches",
- "Slowest first": "Mais lento primeiro",
+ "Slowest first": "Mais lenta primeiro",
"simple": "Simples",
- "September": "Setembro",
- "Scottish": "Escocês",
- "Russian": "Russo",
+ "Scottish": "Escocesa",
+ "Russian": "Russa",
"rp": "Retirar foto",
"rmN": "Nota removida",
- "rmIns": "Instrução retirada",
+ "rmIns": "Instrução removida",
"rmIng": "Ingrediente removido",
"rmCmb": "Combinação removida",
"restYUL": "Redefinir a lista de unidades de porção",
- "restUL": "Reiniciar a lista de unidades",
+ "restUL": "Redefinir a lista de unidades",
"restInfo": "A redefinição de uma lista eliminará as entradas criadas pelo usuário e restaurará as entradas padrão. As receitas existentes não serão afetadas.",
"restDone": "Reposição feita",
- "restCuiL": "Reiniciar a lista de cozinha",
+ "restCuiL": "Redefinir a lista de cozinha",
"restCatL": "Redefinir lista de categorias",
"rest": "Redefinir",
"resNF": "Receita não encontrada",
"recU": "Atualizado:",
"recs": "receitas",
- "recRm": "Receita retirada",
+ "recRm": "Receita removida",
"recF": "receitas encontradas",
"recI": "Importado:",
"recPic": "Foto da receita",
"aap": "Anexe uma foto",
"allCats": "Todas as categorias",
"allCuis": "Todas as culinárias",
- "allTs": "Todas as Tags",
- "American": "Americano",
+ "allTs": "Todas as etiquetas",
+ "American": "Americana",
"appCrd": "Compartilhado via EnRecipes. Obtenha-o no F-Droid, IzzyOnDroid ou na Play Store.",
"appInfo": "EnRecipes é um livro de receitas digital de código aberto, que lhe permite criar, gerenciar e compartilhar suas receitas",
"apply": "APLIQUE",
- "April": "Abril",
- "August": "Agosto",
"Black": "Preto",
- "Brazilian": "Brasileiro",
+ "Brazilian": "Brasileira",
"breakfast": "Café da manhã",
- "British": "Britânico",
+ "British": "Britânica",
"buEmp": "O arquivo de backup está vazio",
"buFol": "Pasta de backup",
"buInc": "Arquivo de backup malformado ou corrupto",
"buMod": "O arquivo de backup foi modificado em outro lugar",
- "Challenging": "Desafiando",
- "Chinese": "Chinês",
- "cPic": "Foto do corte",
+ "Challenging": "Difícil",
+ "Chinese": "Chinesa",
+ "cPic": "Recorte da foto",
"cui": "Cozinha",
- "Danish": "Dinamarquês",
- "December": "Dezembro",
+ "Danish": "Dinamarquesa",
"delRecInfo": "Você está prestes a apagar permanentemente a receita %s",
"delRecsInfo": "Você está prestes a apagar permanentemente %s",
"detailed": "Detalhado",
@@ -259,32 +242,30 @@
"disc": "Esta receita tem mudanças não salvas. O que você gostaria de fazer?",
"donate": "Doe",
"Easy": "Fácil",
- "Egyptian": "Egípcio",
- "English": "Inglês",
+ "Egyptian": "Egípcia",
+ "English": "Inglesa",
"expip": "Exportação em curso",
"expSuc": "Sucesso na exportação",
- "February": "Fevereiro",
"Filtered recipes": "Receitas filtradas",
"fltr": "Filtro",
- "French": "Francês",
- "German": "Alemão",
- "gh": "Vista em GitHub",
- "Greek": "Grego",
+ "French": "Francesa",
+ "German": "Alemã",
+ "gh": "Veja em GitHub",
+ "Greek": "Grega",
"grid": "Grade",
"guide": "Guia do usuário",
"impFail": "A importação falhou",
"impip": "Importação em curso",
"impSuc": "Importação com êxito",
- "Indian": "Índio",
+ "Indian": "Indiana",
"invFile": "Arquivo inválido",
- "Irish": "Irlandês",
- "Italian": "Italiano",
- "Jamaican": "Jamaicano",
- "January": "Janeiro",
- "Japanese": "Japonês",
- "Jewish": "Judeu",
+ "Irish": "Irlandesa",
+ "Italian": "Italiana",
+ "Jamaican": "Jamaicana",
+ "Japanese": "Japonesa",
+ "Jewish": "Judaica",
"yld": "Porção",
- "sysDefB": "Padrão do sistema + Preto",
+ "sysDefB": "Padrão do sistema + preto",
"wAgo": "%s semanas atrás",
"Thai": "Tailandesa",
"mAgo": "%s meses atrás",
@@ -292,24 +273,52 @@
"dAgo": "%s dias atrás",
"tmr": "Temporizador %s",
"strtBtn": "INICIAR",
- "ntmr": "Novo timer",
- "timer": "Temporizador de Culinária",
- "prstBtn": "PERSPECTIVAS",
+ "ntmr": "Novo temporizador",
+ "timer": "Temporizador de culinária",
+ "prstBtn": "PREDEFINIÇÕES",
"sec": "s",
"stop": "Parada",
"delay": "Atraso",
"fwr": "para qual receita?",
"aTPrst": "Adicionado às predefinições",
- "tmrSnd": "Som temporizador",
- "tmrvbrt": "Temporizador vibrar",
+ "tmrSnd": "Som do temporizador",
+ "tmrvbrt": "Vibração do temporizador",
"dlyDur": "Duração do atraso",
"minute": "minuto",
- "minutes": "atas",
+ "minutes": "minutos",
"hour": "hora",
"hours": "horas",
"seconds": "segundos",
"prsts": "Predefinições",
"delPrst": "Você está prestes a apagar %s das predefinições",
- "tmrRm": "Timer removido",
- "notifSetg": "Configurações de notificação"
+ "tmrRm": "Temporizador removido",
+ "notifSetg": "Configurações de notificação",
+ "admp": "Apagar automaticamente planos de refeições",
+ "wDBy": "%1$s foi atrasada por %2$s",
+ "otaw": "Mais antigas que 1 semana",
+ "otam": "Mais antigas que 1 mês",
+ "otay": "Mais antigas que 1 ano",
+ "plsCrt": "Use o botão mais para criar uma",
+ "ehwmp": "Coma saudavelmente com planejamento de refeições!",
+ "selMT": "Selecione tipo de refeição",
+ "ystr": "Ontem",
+ "tmrw": "Amanhã",
+ "tdy": "Hoje",
+ "cpy": "cópia",
+ "d": "Dia",
+ "wk": "Semana",
+ "mnth": "Mês",
+ "calVM": "Modo de vista de calendário",
+ "oAP": "%1$s decorrendo, %2$s pausado",
+ "ttv": "Pressionar para ver",
+ "dismissAll": "Rejeitar todos os temporizadores",
+ "dismiss": "Rejeitar",
+ "texp": "%s temporizadores expiraram",
+ "prstTU": "Tempo predefinido atualiado",
+ "ccwt": "Cozinhe co confiança com temporizadores!",
+ "random": "Aleatória",
+ "nvr": "Nunca",
+ "gtD": "Ir à data",
+ "rstBtn": "REINICIAR",
+ "add": "Adicionar"
}
diff --git a/app/i18n/pt.json b/app/i18n/pt.json
index 8694a3ae..82864389 100644
--- a/app/i18n/pt.json
+++ b/app/i18n/pt.json
@@ -14,7 +14,7 @@
"Chinese": "Chinesa",
"clove": "bulbo",
"cm": "cm",
- "Created": "Criado",
+ "Created": "Criada",
"cup": "copo",
"Cup": "Copo",
"Danish": "Dinamarquesa",
@@ -23,7 +23,7 @@
"Difficulty level": "Nível de dificuldade",
"dinner": "Jantar",
"dozen": "dúzia",
- "drop": "solta",
+ "drop": "gota",
"dsp": "colher de sobremesa",
"Easy": "Fácil",
"Egyptian": "Egípcia",
@@ -87,7 +87,7 @@
"planner": "Plano de refeições",
"Portuguese": "Portuguesa",
"Poultry": "Aves",
- "Pound": "Pound",
+ "Pound": "Libra",
"pt": "pt",
"qt": "qt",
"Quickest first": "Mais rápidas primeiro",
@@ -100,8 +100,8 @@
"Scottish": "Escocesa",
"Seafood": "Marisco",
"Serving": "Porção",
- "SET": "DEFINIR",
- "Settings": "Definições",
+ "SET": "APLICAR",
+ "Settings": "Configurações",
"Side dishes": "Acompanhamentos",
"Slowest first": "Mais lentas primeiro",
"small": "pequeno",
@@ -124,8 +124,8 @@
"Undefined": "Indefinido",
"unit": "unidade",
"Unit": "Unidade",
- "Vegan": "Vegano",
- "Vegetarian": "Vegetariano",
+ "Vegan": "Vegana",
+ "Vegetarian": "Vegetariana",
"Vietnamese": "Vietnamita",
"yesterday": "ontem",
"noAccSensor": "O sensor do acelerómetro ou está desativado ou não está a funcionar",
@@ -133,12 +133,12 @@
"rmCuiInfo": "Está prestes a retirar %s da lista de cozinha",
"rmUInfo": "Está prestes a remover %s da lista de unidades",
"rmYUInfo": "Está prestes a remover %s da lista de unidades de porções",
- "sVw": "Sacudir para ver a receita aleatória",
+ "sVw": "Agitar para ver uma receita aleatória",
"sVwInfo": "Ajuda-o a escolher o que deve cozinhar quando não consegue decidir",
"swm": "Começa na segunda-feira",
"sysDef": "Padrão do sistema",
"title": "Título",
- "tLInfo": "As receitas que quer experimentar mais tarde estão listadas aqui",
+ "tLInfo": "As receitas que quer experimentar mais tarde estão mostradas aqui",
"triedInfo": "Experimentou esta receita %s",
"trnsl": "Traduzir",
"ts": "Etiquetas",
@@ -148,25 +148,21 @@
"wAgo": "%s semanas atrás",
"photogrid": "Grelha de fotos",
"opts": "Opções",
- "October": "Outubro",
"nwYiU": "Nova unidade de porção",
"nwCat": "Nova categoria",
- "November": "Novembro",
"nos": "Notas",
"noRecsInL": "Nenhuma das receitas aqui apresentadas corresponde à sua pesquisa",
"fltr": "Filtro",
"Filtered recipes": "Receitas filtradas",
- "February": "Fevereiro",
"expSuc": "Exportado com sucesso",
"expip": "Exportação em curso",
"expBu": "Exportar cópia de segurança completa",
"editRec": "Editar receita",
"donate": "Doação",
- "disc": "Esta receita tem alterações não guardadas. O que gostaria de fazer?",
+ "disc": "Esta receita tem alterações por guardar. O que quer fazer?",
"detailed": "Detalhado",
"delRecsInfo": "Está prestes a eliminar permanentemente %s",
"delRecInfo": "Está prestes a eliminar permanentemente a receita %s",
- "December": "Dezembro",
"db": "Base de dados",
"dAgo": "%s dias atrás",
"cui": "Cozinha",
@@ -175,9 +171,9 @@
"conf": "Confirme",
"cmbs": "Combinações",
"cat": "Categoria",
- "buMod": "O ficheiro de cópia de segurança foi modificado noutro local",
+ "buMod": "O ficheiro da cópia de segurança foi alterado noutro local",
"buInfo": "Gera um ficheiro ZIP contendo todos os seus dados que podem ser importados de volta",
- "buInc": "Ficheiro da cópia de segurança está mal formado ou corrupto",
+ "buInc": "O ficheiro da cópia de segurança está mal formado ou corrupto",
"buFol": "Pasta da cópia de segurança",
"buEmp": "O ficheiro da cópia de segurança está vazio",
"Black": "Preto",
@@ -186,28 +182,21 @@
"buto": "Cópia de segurança guardada em %s",
"restDone": "Reposição feita",
"restCuiL": "Repor a lista de cozinha",
- "restCatL": "Reiniciar lista de categorias",
- "rest": "Reiniciar",
+ "restCatL": "Repor lista de categorias",
+ "rest": "Repor",
"resNF": "Receita não encontrada",
"req": "Necessário %s",
"recU": "Atualizado:",
"recTitle": "A minha receita saudável",
"recs": "receitas",
- "recRm": "Receita retirada",
- "recPic": "Fotografia de receita",
+ "recRm": "Receita removida",
+ "recPic": "Fotografia da receita",
"recListEmp": "Nada aqui! Adicione algumas receitas e tente novamente",
- "recI": "Importado:",
+ "recI": "Importadas:",
"recF": "receitas encontradas",
"recE": "Já existem:",
"rec": "Receita",
- "THU": "QUI",
- "WED": "QUA",
- "TUE": "TER",
- "SUN": "DOM",
- "SAT": "SÁB",
- "MON": "SEG",
- "FRI": "SEX",
- "sysDefB": "Padrão do sistema + Preto",
+ "sysDefB": "Padrão do sistema + preto",
"trySer": "PROCURAR EM TODAS AS RECEITAS?",
"stp": "Etapa",
"stars": "Classificação por estrelas",
@@ -218,7 +207,6 @@
"simple": "Simples",
"shr": "Partilhar",
"ser": "Pesquisar",
- "September": "Setembro",
"selRec": "Selecione a receita",
"rst": "REINICIAR",
"rp": "Remover fotografia",
@@ -229,11 +217,11 @@
"yld": "Porção",
"restYUL": "Repor lista de unidades de porções",
"restUL": "Repor lista de unidades",
- "restInfo": "A redefinição de uma lista eliminará as entradas criadas pelo utilizador e restaurará as entradas predefinidas. As receitas existentes não serão afetadas.",
+ "restInfo": "A reposição de uma lista eliminará as entradas criadas pelo utilizador e restaurará as entradas predefinidas. As receitas existentes não serão afetadas.",
"rBtn": "REMOVER",
"priv": "Política de privacidade",
"prepT": "Tempo de preparação",
- "plsAdd": "Use o botão mais para adicionar uma",
+ "plsAdd": "Use o botão + para adicionar uma",
"pht": "Fotografia da receita",
"noRecs": "Nenhuma receita corresponde à pesquisa",
"noFavs": "Ainda não tem favoritos",
@@ -244,17 +232,12 @@
"newRec": "Nova receita",
"newCui": "Nova cozinha",
"minimal": "Mínimo",
- "May": "Maio",
- "March": "Março",
"mAgo": "%s meses atrás",
"ltAgo": "há muito tempo",
"listVM": "Modo de vista em lista",
"lang": "Idioma",
"kEdit": "CONTINUAR A EDITAR",
- "June": "Junho",
- "July": "Julho",
"joinTG": "Junte-se ao grupo no Telegram",
- "January": "Janeiro",
"it": "Item",
"invFile": "Ficheiro inválido",
"intf": "Interface",
@@ -273,9 +256,7 @@
"dBtn": "ELIMINAR",
"conBtn": "CONTINUAR",
"cBtn": "CANCELAR",
- "August": "Agosto",
"aStpBtn": "ADICIONAR PASSO",
- "April": "Abril",
"appRst": "É necessário reiniciar a aplicação",
"apply": "APLICAR",
"appInfo": "EnRecipes é um livro de receitas digital de código aberto, amigo da privacidade, que lhe permite criar, gerir e partilhar as suas receitas",
@@ -303,12 +284,12 @@
"hour": "hora",
"hours": "horas",
"seconds": "segundos",
- "tmrvbrt": "Vibrador temporizador",
- "tmrSnd": "Som temporizador",
+ "tmrvbrt": "Vibrador do temporizador",
+ "tmrSnd": "Som do temporizador",
"aTPrst": "Adicionado às predefinições",
- "fwr": "para que receita?",
+ "fwr": "para qual receita?",
"prstBtn": "PREDEFINIÇÕES",
- "notifSetg": "Definições de notificação",
+ "notifSetg": "Configurações de notificação",
"tmrRm": "Temporizador removido",
"delPrst": "Está prestes a eliminar %s das predefinições",
"prsts": "Predefinições",
@@ -333,16 +314,11 @@
"tmrw": "Amanhã",
"tdy": "Hoje",
"cpy": "cópia",
- "sat": "Sábado",
- "fri": "Sexta-feira",
- "thu": "Quinta-feira",
- "wed": "Quarta-feira",
- "tue": "Terça-feira",
- "mon": "Segunda-feira",
- "sun": "Domingo",
"d": "Dia",
"wk": "Semana",
"mnth": "Mês",
"calVM": "Modo de vista tipo calendário",
- "oAP": "%1$s a decorrer, %2$s em pausa"
+ "oAP": "%1$s a decorrer, %2$s em pausa",
+ "rstBtn": "REINICIAR",
+ "add": "Adicionar"
}
diff --git a/app/i18n/ru.json b/app/i18n/ru.json
index 3aed474a..f7899de2 100644
--- a/app/i18n/ru.json
+++ b/app/i18n/ru.json
@@ -18,9 +18,7 @@
"appInfo": "EnRecipes - это цифровая кулинарная книга с открытым исходным кодом, обеспечивающая конфиденциальность, которая позволяет вам создавать, управлять и делиться своими рецептами",
"apply": "ПРИМЕНЯТЬ",
"appRst": "Требуется перезапуск приложения",
- "April": "Апрель",
"aStpBtn": "ДОБАВИТЬ ШАГ",
- "August": "Август",
"Barbecue": "Барбекю",
"Beverages": "Напитки",
"Black": "Чернить",
@@ -53,7 +51,6 @@
"Dark": "Темная",
"db": "База данных",
"dBtn": "УДАЛИТЬ",
- "December": "Декабрь",
"delRecInfo": "Вы собираетесь полностью удалить рецепт %s",
"delRecsInfo": "Вы собираетесь безвозвратно удалить %s",
"Desserts": "Десерты",
@@ -75,14 +72,12 @@
"expip": "Выполняется экспорт",
"expSuc": "Успех экспорта",
"favourites": "Избранное",
- "February": "Февраль",
"Filipino": "Филиппинская",
"Filtered recipes": "Отфильтрованные рецепты",
"fl oz": "жидкая унция",
"fltr": "Фильтр",
"Fluid Ounce": "Жидкая унция",
"French": "Французская",
- "FRI": "ПТ",
"fsList": "Здесь будут перечислены рецепты, которые вы отметили как любимые",
"g": "г",
"gal": "галлон",
@@ -111,12 +106,9 @@
"it": "Ингредиент",
"Italian": "Итальянская",
"Jamaican": "Ямайская",
- "January": "Январь",
"Japanese": "Японская",
"Jewish": "Еврейская",
"joinTG": "Присоединяйтесь к группе в Telegram",
- "July": "Июль",
- "June": "Июнь",
"kEdit": "ПРОДОЛЖИТЬ РЕДАКТИРОВАНИЕ",
"Kenyan": "Кенийская",
"kg": "кг",
@@ -136,8 +128,6 @@
"lunch": "Обед",
"mAgo": "%s месяцев назад",
"Main dishes": "Основные блюда",
- "March": "Март",
- "May": "Май",
"Meat": "Мясо",
"medium": "средний",
"Mexican": "Мексиканская",
@@ -147,7 +137,6 @@
"minimal": "Минимальный",
"ml": "мл",
"Moderate": "Средний",
- "MON": "ПН",
"newCui": "Новая кухня",
"Newest first": "Сначала новое",
"newRec": "Новый рецепт",
@@ -162,10 +151,8 @@
"noRecs": "По вашему запросу ничего не найдено",
"noRecsInL": "Ни один из рецептов здесь не соответствует вашему запросу",
"nos": "Заметки",
- "November": "Ноябрь",
"nwCat": "Новая категория",
"nwYiU": "Новая единица измерения подачи",
- "October": "Октябрь",
"OK": "ОК",
"Oldest first": "Сначала старые",
"opts": "Параметры",
@@ -223,12 +210,10 @@
"rst": "ПЕРЕЗАПУСТИТЬ",
"Russian": "Русская",
"Salads": "Салаты",
- "SAT": "СБ",
"Sauces": "Соусы",
"Scottish": "Шотландская",
"Seafood": "Морепродукты",
"selRec": "Выберите рецепт",
- "September": "Сентябрь",
"ser": "Поиск",
"Serving": "Порция",
"SET": "УСТАНОВИТЬ",
@@ -250,7 +235,6 @@
"stick": "палочка",
"stp": "Шаг",
"strAdd": "Начните добавлять свои рецепты!",
- "SUN": "ВС",
"sVw": "Встряхнуть, чтобы показать случайный рецепт",
"sVwInfo": "Помогает выбрать, что приготовить, когда вы не можете решить",
"Swedish": "Шведская",
@@ -261,7 +245,6 @@
"Teaspoon": "Чайная ложка",
"Thai": "Тайская",
"Theme": "Тема",
- "THU": "ЧТ",
"title": "Заголовок",
"tLInfo": "Здесь будут перечислены рецепты, которые вы хотите попробовать позже",
"today": "сегодня",
@@ -272,7 +255,6 @@
"ts": "Теги",
"tsInfo": "разделяйте пробелами",
"tsp": "ч.л..",
- "TUE": "ВТ",
"Turkish": "Турецкая",
"Undefined": "Не указано",
"unit": "единица измерения",
@@ -283,7 +265,6 @@
"Vegetarian": "Вегетарианский",
"Vietnamese": "Вьетнамская",
"wAgo": "%s недель назад",
- "WED": "СР",
"yesterday": "вчера",
"yieldQ": "Подавать в количестве",
"yieldU": "Подавать в",
diff --git a/app/i18n/ta.json b/app/i18n/ta.json
index 6cb2f9f1..9bca0be5 100644
--- a/app/i18n/ta.json
+++ b/app/i18n/ta.json
@@ -18,9 +18,7 @@
"appInfo": "என்ரெசிபீஸ் என்பது ஒரு திறந்த மூல, தனியுரிமைக்கு ஏற்ற டிஜிட்டல் சமையல் புத்தகம், இது உங்கள் சமையல் குறிப்புகளை உருவாக்க, நிர்வகிக்க மற்றும் பகிர உதவுகிறது",
"apply": "இடு",
"appRst": "பயன்பாட்டு மறுதொடக்கம் தேவை",
- "April": "ஏப்ரல்",
"aStpBtn": "செய்முறையைச் சேர்",
- "August": "ஆகஸ்ட்",
"Barbecue": "பார்பெக்யூ",
"Beverages": "பானங்கள்",
"Black": "கருப்பு",
@@ -53,7 +51,6 @@
"Dark": "இருள்",
"db": "தரவுத்தளம்",
"dBtn": "நீக்கு",
- "December": "டிசம்பர்",
"delRecInfo": "நீங்கள் %s சமையல் குறிப்பை நிரந்தரமாக நீக்க உள்ளீர்கள்",
"delRecsInfo": "நீங்கள் %s நிரந்தரமாக நீக்க உள்ளீர்கள்",
"Desserts": "இனிப்புகள்",
@@ -75,14 +72,12 @@
"expip": "ஏற்றுமதி செயலில் உள்ளது",
"expSuc": "வெற்றிகரமாக ஏற்றுமதி செய்யப்பட்டது",
"favourites": "பிடித்தவை",
- "February": "பிப்ரவரி",
"Filipino": "பிலிப்பைன்ஸ்",
"Filtered recipes": "வடிகட்டப்பட்ட சமையல் குறிப்புகள்",
"fl oz": "திரவ அவுன்ஸ",
"fltr": "வடிகட்டு",
"Fluid Ounce": "திரவ அவுன்ஸ்",
"French": "பிரஞ்சு",
- "FRI": "வெ",
"fsList": "உங்களுக்கு பிடித்த சமையல் குறிப்புகள் இங்கே பட்டியலிடப்படும்",
"g": "கிராம்",
"gal": "கேலன்",
@@ -111,12 +106,9 @@
"it": "பொருள்",
"Italian": "இத்தாலிய",
"Jamaican": "ஜமைக்கா",
- "January": "ஜனவரி",
"Japanese": "ஜப்பானிய",
"Jewish": "யூத",
"joinTG": "டெலிகிராம் குழுவில் சேர்க",
- "July": "ஜூலை",
- "June": "ஜூன்",
"kEdit": "தொடர்ந்து திருத்து",
"Kenyan": "கென்ய",
"kg": "கிலோகிராம்",
@@ -136,8 +128,6 @@
"lunch": "மதிய உணவு",
"mAgo": "%s மாதங்களுக்கு முன்பு",
"Main dishes": "முக்கிய உணவுகள்",
- "March": "மார்ச்",
- "May": "மே",
"Meat": "இறைச்சி",
"medium": "நடுத்தர",
"Mexican": "மெக்சிகன்",
@@ -147,7 +137,6 @@
"minimal": "குறைந்தபட்சம்",
"ml": "மில்லிலிட்டர்",
"Moderate": "மிதமானது",
- "MON": "தி",
"newCui": "புதிய உணவு வகை",
"Newest first": "புதியது முதலில்",
"newRec": "புதிய சமையல் குறிப்பு",
@@ -162,10 +151,8 @@
"noRecs": "உங்கள் தேடலுடன் எந்த சமையல் குறிப்புகளும் பொருந்தவில்லை",
"noRecsInL": "இங்குள்ள சமையல் குறிப்புகள் எதுவும் உங்கள் தேடலுடன் பொருந்தவில்லை",
"nos": "குறிப்புகள்",
- "November": "நவம்பர்",
"nwCat": "புதிய பகுப்பு",
"nwYiU": "புதிய மகசூல் அலகு",
- "October": "அக்டோபர்",
"OK": "சரி",
"Oldest first": "பழையன முதலில்",
"opts": "விருப்பங்கள்",
@@ -179,7 +166,7 @@
"Piece": "துண்டு",
"pinch": "கிள்ளு",
"planner": "உணவுத் திட்டம்",
- "plsAdd": "ஒன்றைச் சேர்க்க பிளஸ் பொத்தானைப் பயன்படுத்தவும்",
+ "plsAdd": "ஒன்றைச் சேர்க்க + பொத்தானைப் பயன்படுத்தவும்",
"Portuguese": "போர்த்துகீசியம்",
"Poultry": "கோழி",
"Pound": "பவுண்டு",
@@ -223,12 +210,10 @@
"rst": "மறுதொடக்கம்",
"Russian": "ரஷ்ய",
"Salads": "சாலடுகள்",
- "SAT": "ச",
"Sauces": "சாஸ்கள்",
"Scottish": "ஸ்காட்டிஷ்",
"Seafood": "கடல் உணவு",
"selRec": "சமையல் குறிப்பைத் தேர்ந்தெடுக்கவும்",
- "September": "செப்டம்பர்",
"ser": "தேடு",
"Serving": "கூறு",
"SET": "அமை",
@@ -250,7 +235,6 @@
"stick": "குச்சி",
"stp": "செய்முறை",
"strAdd": "உங்கள் சமையல் குறிப்புகளைச் சேர்க்கத் தொடங்குங்கள்!",
- "SUN": "ஞா",
"sVw": "சாதனத்தை அசைத்து சீரற்ற சமையல் குறிப்பை காண்க",
"sVwInfo": "நீங்கள் தீர்மானிக்க முடியாதபோது என்ன சமைக்கலாம் என்பதைத் தேர்வுசெய்ய உதவும்",
"Swedish": "ஸ்வீடிஷ்",
@@ -261,7 +245,6 @@
"Teaspoon": "டீஸ்பூன்",
"Thai": "தாய்",
"Theme": "தீம்",
- "THU": "வி",
"title": "தலைப்பு",
"tLInfo": "நீங்கள் பின்னர் முயற்சிக்க விரும்பும் சமையல் குறிப்புகள் இங்கே பட்டியலிடப்படும்",
"today": "இன்று",
@@ -272,7 +255,6 @@
"ts": "குறிச்சொற்கள்",
"tsInfo": "இடைவெளிகளுடன் பிரிக்கவும்",
"tsp": "டீஸ்பூன்",
- "TUE": "செ",
"Turkish": "துருக்கிய",
"Undefined": "வரையறுக்கப்படாதவை",
"unit": "அலகு",
@@ -283,7 +265,6 @@
"Vegetarian": "சைவம்",
"Vietnamese": "வியட்நாமிய",
"wAgo": "%s வாரங்களுக்கு முன்பு",
- "WED": "பு",
"yesterday": "நேற்று",
"yieldQ": "மகசூல் அளவு",
"yieldU": "மகசூல் அலகு",
@@ -325,13 +306,6 @@
"tmrw": "நாளை",
"tdy": "இன்று",
"cpy": "நகல்",
- "sat": "சனி",
- "fri": "வெள்ளி",
- "thu": "வியாழன்",
- "wed": "புதன்",
- "tue": "செவ்வாய்",
- "mon": "திங்கள்",
- "sun": "ஞாயிறு",
"calVM": "கேலெண்டர் காட்சி முறை",
"oAP": "%1$s செயலில் உள்ளது,%2$s இடைநிறுத்தப்பட்டது",
"d": "நாள்",
@@ -342,7 +316,13 @@
"otam": "ஒரு மாதத்திற்கும் மேலானது",
"otay": "ஒரு வருடத்திற்கும் மேலானது",
"admp": "உணவு திட்டங்களை தானாக நீக்கு",
- "plsCrt": "ஒன்றை உருவாக்க பிளஸ் பொத்தானைப் பயன்படுத்தவும்",
+ "plsCrt": "ஒன்றை உருவாக்க + பொத்தானைப் பயன்படுத்தவும்",
"ehwmp": "உணவு திட்டங்களுடன் ஆரோக்கியமாக சாப்பிடுங்கள்!",
- "selMT": "உணவு வகையைத் தேர்ந்தெடுக்கவும்"
+ "selMT": "உணவு வகையைத் தேர்ந்தெடுக்கவும்",
+ "esgbInfo": "வழிசெலுத்தலில் சிக்கல்கள் இருந்தால் இந்த விருப்பத்தை முடக்குக",
+ "esgb": "விளிம்பிலிருந்து ஸ்வைப் செய்து பின் செல்",
+ "ksavrInfo": "சமையல் குறிப்பு பார்க்கும் போது திரையை உறக்கநிலைக்குச் செல்லாது தடுக்கும்",
+ "ksavr": "சமையல் குறிப்பு பார்க்கும் போது திரையை விழித்திரு",
+ "rstBtn": "மீட்டமை",
+ "add": "சேர்"
}
diff --git a/app/i18n/te.json b/app/i18n/te.json
index 4e534116..fedc05ba 100644
--- a/app/i18n/te.json
+++ b/app/i18n/te.json
@@ -18,9 +18,7 @@
"appInfo": "నారెసిపీస్ అనేది ఓపెన్ సోర్స్, గోప్యతా-స్నేహపూర్వక డిజిటల్ కుక్బుక్, ఇది మీ వంటకాలను సృష్టించడానికి, నిర్వహించడానికి మరియు భాగస్వామ్యం చేయడానికి మిమ్మల్ని అనుమతిస్తుంది",
"apply": "వర్తించు",
"appRst": "అప్లికేషన్ పున art ప్రారంభం అవసరం",
- "April": "ఏప్రిల్",
"aStpBtn": "దశను జోడించండి",
- "August": "ఆగస్టు",
"Barbecue": "బార్బెక్యూ",
"Beverages": "పానీయాలు",
"Black": "నలుపు",
@@ -53,7 +51,6 @@
"Dark": "ముదురు",
"db": "డేటాబేస్",
"dBtn": "ఎంచుకోబడింది",
- "December": "డిసెంబర్",
"delRecInfo": "మీరు %s రెసిపీని శాశ్వతంగా తొలగించబోతున్నారు",
"delRecsInfo": "మీరు %s ని శాశ్వతంగా తొలగించబోతున్నారు",
"Desserts": "డెజర్ట్స్",
@@ -75,14 +72,12 @@
"expip": "ఎగుమతి పురోగతిలో ఉంది",
"expSuc": "ఎగుమతి విజయం",
"favourites": "ఇష్టమైనవి",
- "February": "ఫిబ్రవరి",
"Filipino": "ఫిలిపినో",
"Filtered recipes": "ఫిల్టర్ చేసిన వంటకాలు",
"fl oz": "ద్రవం oun న్స్",
"fltr": "ఫిల్టర్",
"Fluid Ounce": "ద్రవం oun న్స్",
"French": "ఫ్రెంచ్",
- "FRI": "శుక్ర",
"fsList": "ఇష్టమైన వంటకాలు ఇంకా ఏమీ లేవు",
"g": "గ్రాము",
"gal": "గాలన్",
@@ -111,12 +106,9 @@
"it": "అంశం",
"Italian": "ఇటాలియన్",
"Jamaican": "జమైకా",
- "January": "జనవరి",
"Japanese": "జపనీస్",
"Jewish": "యూదుల",
"joinTG": "టెలిగ్రామ్ సమూహంలో చేరండి",
- "July": "జూలై",
- "June": "జూన్",
"kEdit": "సవరణ కొనసాగించండి",
"Kenyan": "కెన్యా",
"kg": "కిలోగ్రాము",
@@ -136,8 +128,6 @@
"lunch": "భోజనం",
"mAgo": "%s నెలల క్రితం",
"Main dishes": "ప్రధాన వంటకాలు",
- "March": "మార్చి",
- "May": "మే",
"Meat": "మాంసం",
"medium": "మీడియం",
"Mexican": "మెక్సికన్",
@@ -147,7 +137,6 @@
"minimal": "కనిష్ట",
"ml": "మిల్లీలీటర్",
"Moderate": "మోస్తరు",
- "MON": "సోమ",
"newCui": "కొత్త వంటకాలు",
"Newest first": "క్రొత్తది మొదటిది",
"newRec": "కొత్త వంటకం",
@@ -162,10 +151,8 @@
"noRecs": "మీ శోధనకు వంటకాలు ఏవీ సరిపోలడం లేదు",
"noRecsInL": "ఇక్కడ ఉన్న వంటకాలు ఏవీ మీ శోధనతో సరిపోలడం లేదు",
"nos": "గమనికలు",
- "November": "నవంబర్",
"nwCat": "కొత్త వర్గం",
"nwYiU": "కొత్త దిగుబడి యూనిట్",
- "October": "అక్టోబర్",
"OK": "అలాగే",
"Oldest first": "పురాతన మొదటి",
"opts": "ఎంపికలు",
@@ -179,7 +166,7 @@
"Piece": "ముక్క",
"pinch": "చిటికెడు",
"planner": "భోజన ప్రణాళిక",
- "plsAdd": "ఒకదాన్ని జోడించడానికి ప్లస్ బటన్ను ఉపయోగించండి",
+ "plsAdd": "ఒకదాన్ని జోడించడానికి + బటన్ను ఉపయోగించండి",
"Portuguese": "పోర్చుగీస్",
"Poultry": "పౌల్ట్రీ",
"Pound": "పౌండ్",
@@ -223,12 +210,10 @@
"rst": "పునఃప్రారంభించు",
"Russian": "రష్యన్",
"Salads": "సలాడ్లు",
- "SAT": "శని",
"Sauces": "సాస్",
"Scottish": "స్కాటిష్",
"Seafood": "సముద్రపు ఆహారం",
"selRec": "రెసిపీని ఎంచుకోండి",
- "September": "సెప్టెంబర్",
"ser": "శోధించు",
"Serving": "అందిస్తోంది",
"SET": "సెట్",
@@ -250,7 +235,6 @@
"stick": "కర్ర",
"stp": "దశ",
"strAdd": "మీ వంటకాలను జోడించడం ప్రారంభించండి!",
- "SUN": "ఆది",
"sVw": "యాదృచ్ఛిక రెసిపీని చూడటానికి షేక్ చేయండి",
"sVwInfo": "మీరు నిర్ణయించలేనప్పుడు ఏమి ఉడికించాలో ఎంచుకోవడానికి మీకు సహాయపడుతుంది",
"Swedish": "స్వీడిష్",
@@ -261,7 +245,6 @@
"Teaspoon": "టీస్పూన్",
"Thai": "థాయ్",
"Theme": "థీమ్",
- "THU": "గురు",
"title": "శీర్షిక",
"tLInfo": "మీరు తరువాత ప్రయత్నించాలనుకునే వంటకాలు ఇక్కడ ఇవ్వబడ్డాయి",
"today": "ఈ రోజు",
@@ -272,7 +255,6 @@
"ts": "టాగ్లు",
"tsInfo": "ఖాళీలతో వేరు",
"tsp": "స్పూన్",
- "TUE": "మంగళ",
"Turkish": "టర్కిష్",
"Undefined": "వివరించబడలేదు",
"unit": "యూనిట్",
@@ -283,7 +265,6 @@
"Vegetarian": "శాఖాహారం",
"Vietnamese": "వియత్నామీస్",
"wAgo": "%s వారాల క్రితం",
- "WED": "బుధ",
"yesterday": "నిన్న",
"yieldQ": "దిగుబడి పరిమాణం",
"yieldU": "దిగుబడి యూనిట్",
@@ -316,13 +297,6 @@
"tmrw": "రేపు",
"tdy": "నేడు",
"cpy": "కాపీ",
- "sat": "శనివారం",
- "fri": "శుక్రవారం",
- "thu": "గురువారం",
- "wed": "బుధవారం",
- "tue": "మంగళవారం",
- "mon": "సోమవారం",
- "sun": "ఆదివారం",
"calVM": "క్యాలెండర్ వీక్షణ మోడ్",
"oAP": "%1$s పురోగతిలో ఉంది, %2$s పాజ్ చేయబడ్డాయి",
"ttv": "వీక్షించడానికి నొక్కండి",
@@ -333,5 +307,22 @@
"prstTU": "ప్రీసెట్ సమయం నవీకరించబడింది",
"ccwt": "టైమర్లతో నమ్మకంగా ఉడికించాలి!",
"gtD": "తేదీకి వెళ్ళండి",
- "random": "యాదృచ్ఛికం"
+ "random": "యాదృచ్ఛికం",
+ "esgbInfo": "మీకు నావిగేషన్ సమస్యలు ఉంటే ఈ ఎంపికను నిలిపివేయండి",
+ "esgb": "తిరిగి వెళ్ళడానికి అంచుని స్వైప్ చేయండి",
+ "ksavrInfo": "రెసిపీని చూసేటప్పుడు స్క్రీన్ ఆపివేయకుండా నిరోధిస్తుంది",
+ "ksavr": "రెసిపీని చూసేటప్పుడు స్క్రీన్ను మేల్కొని ఉండండి",
+ "rstBtn": "రీసెట్ చేయండి",
+ "add": "జోడించు",
+ "nvr": "ఎప్పుడూ",
+ "otaw": "వారం కన్నా పాతది",
+ "otam": "ఒక నెల కన్నా పాతది",
+ "otay": "ఒక సంవత్సరం కన్నా పాతది",
+ "admp": "భోజన పథకాలను స్వయంచాలకంగా తొలగించండి",
+ "plsCrt": "ఒకదాన్ని సృష్టించడానికి + బటన్ను ఉపయోగించండి",
+ "ehwmp": "భోజన పథకాలతో ఆరోగ్యంగా తినండి!",
+ "selMT": "భోజన రకాన్ని ఎంచుకోండి",
+ "d": "రోజు",
+ "wk": "వారం",
+ "mnth": "నెల"
}
From 7889eceea45dba8c40c4e175ae33ac5f21865172 Mon Sep 17 00:00:00 2001
From: vishnuraghavb
Date: Fri, 18 Jun 2021 18:22:03 +0530
Subject: [PATCH 02/10] ready for v2.0.0
---
app/app.scss | 267 ++++++--------
app/components/CookingTimer.vue | 52 ++-
app/components/EditRecipe.vue | 105 +++---
app/components/EnRecipes.vue | 261 +++++++-------
app/components/MealPlanner.vue | 318 ++++++++++-------
app/components/ViewRecipe.vue | 129 +++----
app/components/modals/Action.vue | 17 +-
app/components/modals/ActionWithSearch.vue | 34 +-
app/components/modals/Confirm.vue | 6 +-
app/components/modals/DMYPicker.vue | 6 +-
app/components/modals/Filter.vue | 54 ++-
app/components/modals/Prompt.vue | 6 +-
app/components/modals/TimePickerHM.vue | 6 +-
app/components/modals/TimePickerHMS.vue | 17 +-
app/components/settings/About.vue | 17 +-
app/components/settings/AppSettings.vue | 7 +
app/components/settings/CTSettings.vue | 10 +
app/components/settings/Database.vue | 11 +-
app/components/settings/Interface.vue | 22 +-
app/components/settings/MPSettings.vue | 13 +-
app/components/settings/Options.vue | 39 ++-
app/components/settings/Reset.vue | 9 +-
app/components/sub/OptionsList.vue | 12 +-
app/components/sub/SnackBar.vue | 4 +-
app/components/sub/Timer.vue | 22 +-
app/components/sub/Toast.vue | 2 +-
app/fonts/{enrecipes.ttf => EnRecipes.ttf} | Bin 17940 -> 18568 bytes
app/main.ts | 75 ++--
app/rtl-ui/dock-layout/index.android.ts | 52 ---
app/rtl-ui/dock-layout/index.d.ts | 1 -
app/rtl-ui/index.ts | 1 -
app/shared/mixins.ts | 30 +-
app/shared/utils.ts | 6 +-
app/store.ts | 78 +++--
package-lock.json | 382 +++++++++++++++------
package.json | 4 +-
translations/store-listing/hi/title.txt | 1 +
translations/store-listing/nb-NO/title.txt | 1 +
38 files changed, 1133 insertions(+), 944 deletions(-)
rename app/fonts/{enrecipes.ttf => EnRecipes.ttf} (89%)
delete mode 100644 app/rtl-ui/dock-layout/index.android.ts
delete mode 100644 app/rtl-ui/dock-layout/index.d.ts
create mode 100644 translations/store-listing/hi/title.txt
create mode 100644 translations/store-listing/nb-NO/title.txt
diff --git a/app/app.scss b/app/app.scss
index ddb33624..a0baa493 100644
--- a/app/app.scss
+++ b/app/app.scss
@@ -17,7 +17,7 @@ $t1: 25;
$t2: 21;
$t3: 17;
$t4: 14;
-$t5: 12; // Base size
+$t5: 12; // Base
$t6: 10;
Page {
@@ -25,29 +25,31 @@ Page {
font-size: $t4;
}
.ico {
- font-family: 'enrecipes';
- font-size: 24;
- vertical-alignment: center;
- &.sm {
+ font-family: 'EnRecipes';
+ font-size: 23;
+ &.s {
font-size: $t3;
opacity: 0.5;
}
}
+.vc {
+ vertical-align: center;
+}
.tb {
font-family: 'Inter-Bold', sans-serif;
}
-.tac {
+.tc {
text-align: center;
}
.tw {
text-wrap: true;
}
-.pageTitle {
- @extend .tb;
- @extend .tw;
+
+.pTitle {
font-size: $t1;
padding: 16 16 24;
}
+
.Light {
color: $gray9;
background: $gray1;
@@ -67,8 +69,9 @@ Page {
.appbar,
.modal {
background: $gray0;
+ box-shadow: 0 2 rgba($gray10, 0.1);
}
- .fieldLabel,
+ .fLabel,
.sub {
color: $gray6;
}
@@ -105,7 +108,7 @@ Page {
color: $gray0;
background: $gray8;
}
- .fieldLabel,
+ .fLabel,
.sub {
color: $gray5;
}
@@ -142,7 +145,7 @@ Page {
color: $gray1;
background: $gray9;
}
- .fieldLabel,
+ .fLabel,
.sub {
color: $gray6;
}
@@ -158,8 +161,9 @@ Page {
color: $gray10;
}
}
+
TextField.combField,
-#searchBar {
+#search {
border-color: transparent;
}
@@ -167,28 +171,24 @@ TextField.combField,
// Elements
TextField,
TextView {
- width: 100%;
+ // width: 100%;
padding: 14 8;
border-bottom-width: 1;
}
TextView {
line-height: 4;
}
-#searchBar {
+#search {
padding: 13 12;
}
-.inputField {
+.inputC {
margin-bottom: 24;
}
-.fieldLabel {
+.fLabel {
font-size: $t5;
}
-.progressContainer {
- width: 100%;
-}
progress {
color: $orange;
- width: 100%;
height: 2;
background-color: $gray5;
}
@@ -197,12 +197,17 @@ Switch {
off-background-color: $gray5;
}
button {
- background-color: transparent;
z-index: 0;
padding: 8;
border-radius: 12;
min-width: 0;
min-height: 0;
+ text-transform: none;
+ background-color: transparent;
+ &.sst {
+ width: 48;
+ height: 48;
+ }
&.ico {
width: 48;
height: 48;
@@ -212,36 +217,28 @@ button {
@extend .fade;
}
}
+ &.si {
+ width: 40;
+ height: 40;
+ }
&.text {
- @extend .tb;
color: $orange;
- &:active {
- @extend .fade;
- }
+ }
+ &.st {
+ font-size: $t5;
+ padding: 12;
}
&.big {
margin-top: 8;
padding: 16 0;
}
- &.sm {
- font-size: $t5;
- padding: 12;
- }
- &.min {
- width: 40;
- height: 40;
- vertical-alignment: center;
- }
- &.fb:active {
- @extend .fade;
- }
&.rate {
margin: 0 4 0 0;
width: 32;
height: 32;
- &:active {
- @extend .fade;
- }
+ }
+ &.fb:active {
+ @extend .fade;
}
}
ActivityIndicator {
@@ -255,52 +252,44 @@ ActivityIndicator {
// Home
.segment {
border-radius: 12;
- margin: 0 4 0 0;
- padding: 0 12;
- .value {
- padding: 0 0 0 8;
- vertical-alignment: center;
- &.r {
- padding: 0 8 0 0;
- transform: scaleX(-1);
- }
+ padding: 8;
+ .v {
+ padding: 0 4;
}
}
.select {
color: $orange;
@extend .hl;
}
-.emptyState {
+.t3 {
+ font-size: $t3;
+}
+.empty {
padding: 16 16 8;
- label {
- @extend .tw;
- }
- .title {
- @extend .tb;
- font-size: $t3;
- }
}
// -----------------------------
// Recipe Item
-.recipeItem {
+.recipe {
padding: 8 16;
- .recipeInfo {
- vertical-alignment: center;
+ .info {
padding: 0 8 4;
}
.title {
padding: 0 0 4;
}
}
-.attrs {
+.oh {
orientation: horizontal;
}
+.t6 {
+ font-size: $t6;
+}
.attr {
font-size: $t6;
- padding: 1 4;
+ padding: 0 4 2;
}
-.simple .recipeInfo {
+.simple .info {
padding: 8 0;
}
.minimal .title {
@@ -308,7 +297,7 @@ ActivityIndicator {
}
.grid {
padding: 8;
- .recipeInfo {
+ .info {
padding: 8 0 4;
}
&.odd {
@@ -318,7 +307,7 @@ ActivityIndicator {
padding: 8 16 8 8;
}
}
-.photogrid .recipeInfo {
+.photogrid .info {
padding: 8 0 0;
}
.lastItem {
@@ -401,7 +390,7 @@ ActivityIndicator {
margin: 24 16 0 0;
vertical-align: top;
}
-.photoviewer {
+.imgViewer {
width: 96;
height: 96;
opacity: 0;
@@ -417,92 +406,53 @@ ActivityIndicator {
@extend .tw;
}
}
-.ingredient {
+.check {
padding: 0 16;
- .value {
- @extend .tw;
- vertical-align: center;
- padding: 14 16;
- line-height: 4;
- }
-}
-.instruction {
- padding: 0 16;
- .count {
- @extend .tb;
- font-size: $t3;
- }
- .value {
- @extend .tw;
+ .v {
padding: 14 16;
line-height: 4;
}
}
.done {
opacity: 0.5;
- .value {
+ .v {
text-decoration: line-through;
}
}
-.combination {
- @extend .tw;
- text-align: left;
- padding: 16;
+.comb {
+ padding: 16 24;
line-height: 4;
}
.note {
- @extend .tw;
- line-height: 4;
- padding: 16 0;
-}
-.dateInfo {
- padding: 32 16 16;
- font-size: $t5;
+ padding: 16 24;
line-height: 4;
}
// -----------------------------
// AppBar
+
.appbar {
- z-index: 4;
- min-height: 56;
margin: 8;
padding: 4;
border-radius: 16;
- .title {
- @extend .tb;
- @extend .tw;
- vertical-align: center;
- margin: 0 12;
- line-height: 4;
- }
- .msg {
- padding: 14 16;
- margin: 0;
- }
.fab {
margin-left: 8;
}
- &.home {
- margin: 8 8 0;
- }
}
.sidebar {
margin-bottom: 0;
}
.toolbar {
- z-index: 4;
- padding: 4;
- margin: 0 0 52;
+ vertical-align: bottom;
+ height: 1;
+ transform: translateY(48);
.tool {
padding: 0 8;
- label {
- vertical-alignment: center;
- }
- .value,
- .ico {
- padding: 0 4;
- }
+ orientation: horizontal;
+ }
+ .v,
+ .ico {
+ padding: 0 4;
}
}
.fab {
@@ -512,64 +462,44 @@ ActivityIndicator {
// -----------------------------
// EditRecipe
-.sectionTitle {
- @extend .tb;
- @extend .tw;
- font-size: $t2;
- padding: 0;
+.section {
+ padding: 0 16;
margin: 32 0 16;
}
+.t2 {
+ font-size: $t2;
+}
.sticky {
width: 100%;
padding: 0 16 16;
- margin: 0;
-}
-.countdown {
- font-size: $t3;
- color: $orange;
}
// -----------------------------
// MealPlanner
-.monthSwitcher {
- padding: 0 16;
- .month {
- vertical-alignment: center;
- text-align: center;
- font-size: $t3;
- }
-}
.calendar {
padding: 0 16;
- .dayName {
- vertical-alignment: center;
- text-align: center;
- font-size: $t5;
- }
.accent.sub {
- color: rgba($orange, 0.5);
+ color: rgba($orange, 0.6);
}
}
.plans {
- padding: 8 16 80;
- width: 100%;
+ margin: 16 16 0;
.date {
- font-size: $t2;
- padding: 16 0;
+ margin: 16 0 8;
+ }
+ .type {
+ padding: 8 0;
}
.plan {
- padding: 8 0;
- }
- .meal {
- font-size: $t3;
- padding: 8 0;
- }
- .planContent {
min-height: 48;
- padding: 8;
+ padding: 4 0;
}
- .attr {
- padding: 0;
+ .info {
+ min-height: 40;
+ padding: 0 8;
+ }
+ .note {
+ padding: 4 0;
}
}
@@ -626,12 +556,6 @@ ActivityIndicator {
margin: 0 0 8;
}
}
-.noResInfo {
- @extend .tac;
- @extend .tw;
- padding: 16;
- line-height: 4;
-}
// -----------------------------
// Transitions
@@ -646,7 +570,7 @@ ActivityIndicator {
background-color: transparent;
}
100% {
- background-color: rgba($orange, 0.2);
+ background-color: rgba($orange, 0.1);
}
}
.fade {
@@ -660,7 +584,7 @@ ActivityIndicator {
opacity: 1;
}
100% {
- opacity: 0.5;
+ opacity: 0.75;
}
}
@@ -678,3 +602,12 @@ ActivityIndicator {
horizontal-alignment: right;
}
}
+.har {
+ horizontal-alignment: right;
+ &.r {
+ horizontal-alignment: left;
+ }
+}
+.edge {
+ width: 16;
+}
diff --git a/app/components/CookingTimer.vue b/app/components/CookingTimer.vue
index d0e4351f..b231369c 100644
--- a/app/components/CookingTimer.vue
+++ b/app/components/CookingTimer.vue
@@ -1,5 +1,5 @@
-
+
-
+
-
-
-
+
+
+
+
+
@@ -58,7 +70,6 @@
import { localize } from "@nativescript/localize";
import {
Observable,
- CoreTypes,
Application,
Utils,
Device,
@@ -128,12 +139,8 @@ export default {
object.bindingContext = new Observable();
if (this.activeTimers.filter((e: any) => e.done).length)
this.openReminder();
- this.keepScreenOnCountUp();
setNumber("isTimer", 1);
},
- pgUnload() {
- utils.keepScreenOn(0);
- },
abLoad({ object }) {
this.appbar = object;
},
@@ -151,19 +158,8 @@ export default {
scrollUp = y < this.scrollPos;
this.scrollPos = Math.abs(y);
let ab = this.appbar.translateY;
- if (!scrollUp && ab == 0) {
- this.appbar.animate({
- translate: { x: 0, y: 64 },
- duration: 200,
- curve: CoreTypes.AnimationCurve.ease,
- });
- } else if (scrollUp && ab == 64) {
- this.appbar.animate({
- translate: { x: 0, y: 0 },
- duration: 200,
- curve: CoreTypes.AnimationCurve.ease,
- });
- }
+ if (!scrollUp && ab == 0) this.animateBar(this.appbar, 0);
+ else if (scrollUp && ab == 64) this.animateBar(this.appbar, 1);
}
},
@@ -210,7 +206,6 @@ export default {
}
if (this.FGService)
setTimeout(() => this.activeTimers.length && show(), 250);
- this.keepScreenOnCountUp();
utils.wakeLock(ongoingCount);
},
timerAlert() {
@@ -390,7 +385,7 @@ export default {
this.animateBar(this.appbar, 0).then(() => {
this.showUndo = 0;
this.toast = localize(data);
- this.animateBar(this.toastbar, 1);
+ this.animateBar(this.toastbar, 1, 1);
let a = 5;
clearInterval(barTimer);
barTimer = setInterval(() => a-- < 1 && this.hideBar(), 1000);
@@ -404,7 +399,7 @@ export default {
this.showUndo = 1;
this.snackMsg = message;
this.countdown = 5;
- this.animateBar(this.snackbar, 1).then(() => {
+ this.animateBar(this.snackbar, 1, 1).then(() => {
let a = 5;
clearInterval(barTimer);
barTimer = setInterval(() => {
@@ -456,11 +451,6 @@ export default {
},
// HELPERS
- keepScreenOnCountUp() {
- utils.keepScreenOn(
- this.activeTimers.filter((e: any) => !e.isPaused).length
- );
- },
},
created() {
this.clearTimerInterval();
diff --git a/app/components/EditRecipe.vue b/app/components/EditRecipe.vue
index 0a54e8fd..d944bc63 100644
--- a/app/components/EditRecipe.vue
+++ b/app/components/EditRecipe.vue
@@ -3,7 +3,11 @@
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -315,10 +339,8 @@ import {
Screen,
Utils,
Observable,
- CoreTypes,
Frame,
Application,
- GridLayout,
} from "@nativescript/core";
import { getString, setString } from "@nativescript/core/application-settings";
import { localize } from "@nativescript/localize";
@@ -430,19 +452,10 @@ export default {
scrollUp = y < this.scrollPos;
this.scrollPos = Math.abs(y);
let ab = this.appbar.translateY;
- if (!scrollUp && ab == 0) {
- this.appbar.animate({
- translate: { x: 0, y: 64 },
- duration: 200,
- curve: CoreTypes.AnimationCurve.ease,
- });
- } else if (scrollUp && ab == 64) {
+ if (!scrollUp && ab == 0) this.animateBar(this.appbar, 0);
+ else if (scrollUp && ab == 64) {
Utils.ad.dismissSoftInput();
- this.appbar.animate({
- translate: { x: 0, y: 0 },
- duration: 200,
- curve: CoreTypes.AnimationCurve.ease,
- });
+ this.animateBar(this.appbar, 1);
}
}
},
@@ -844,7 +857,7 @@ export default {
this.showUndo = 1;
this.snackMsg = message;
this.countdown = 5;
- this.animateBar(this.snackbar, 1).then(() => {
+ this.animateBar(this.snackbar, 1, 1).then(() => {
let a = 5;
barTimer = setInterval(() => {
if (this.undo) {
diff --git a/app/components/EnRecipes.vue b/app/components/EnRecipes.vue
index 3f34288f..1bb74d56 100644
--- a/app/components/EnRecipes.vue
+++ b/app/components/EnRecipes.vue
@@ -1,6 +1,6 @@
-
-
+
+
-
+
-
+
-
+
@@ -65,7 +65,7 @@
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
@@ -129,7 +125,7 @@
-
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -189,7 +181,7 @@
-
+
@@ -227,7 +219,7 @@
-
+
-
-
+
+
-
+
-
-
+
+
@@ -259,7 +247,7 @@
-
+
@@ -278,66 +266,55 @@
-
+
-
-
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
null"
@@ -363,7 +340,7 @@
"
/>
@@ -451,7 +428,7 @@ let lastShake = 0;
let lastForce = 0;
let shakeCount = 0;
let typingTimer;
-let filterTimer;
+
export default {
data() {
return {
@@ -554,6 +531,23 @@ export default {
getRecipes() {
return [{}, {}].concat(this.filteredRecipes);
},
+ tbItems() {
+ return [
+ {
+ title: "timer",
+ icon: "timer",
+ comp: CookingTimer,
+ },
+ {
+ title: "planner",
+ icon: "cal",
+ comp: MealPlanner,
+ },
+ ];
+ },
+ tbRows() {
+ return "48, ".repeat(this.tbItems.length) + 48;
+ },
noResultFor() {
if (this.filterFavourites || this.filterTrylater || this.selCuisine)
return "noRecsInL";
@@ -562,17 +556,18 @@ export default {
imgWidth() {
return Screen.mainScreen.widthDIPs / 2 - 24;
},
- emptyState() {
+ empty() {
let rl = this.recipes.length;
let fr = this.filteredRecipes.length;
let ff = this.filterFavourites;
let ftl = this.filterTrylater;
let sq = this.searchQuery;
- let r: {
+ interface EmptyState {
title: string;
sub: string;
action?: Function;
- };
+ }
+ let r = {};
if (!rl && !ff && !ftl) {
r.title = "strAdd";
r.sub = "plsAdd";
@@ -626,9 +621,8 @@ export default {
setTimeout(() => {
if (this.listview) this.listview.refresh();
}, 1000);
- this.showTools && this.toggleTools();
},
- onPageUnload() {
+ pgUnload() {
if (this.shake) stopAccelerometerUpdates();
},
abLoad({ object }) {
@@ -656,19 +650,11 @@ export default {
}
},
showBars() {
- this.appbar.animate({
- translate: { x: 0, y: 0 },
- duration: 200,
- curve: CoreTypes.AnimationCurve.ease,
- });
+ this.animateBar(this.appbar, 1);
},
hideBars() {
this.showTools && this.toggleTools();
- this.appbar.animate({
- translate: { x: 0, y: 64 },
- duration: 200,
- curve: CoreTypes.AnimationCurve.ease,
- });
+ this.animateBar(this.appbar, 0);
},
getSpanSize(index) {
return (this.layout == "grid" || this.layout == "photogrid") &&
@@ -736,22 +722,25 @@ export default {
// Tools
toggleTools() {
if (this.showTools) {
- this.toolbar.translateY = 0;
this.toolbar
.animate({
- translate: { x: 0, y: 112 },
+ height: 0,
+ translate: { x: 0, y: 48 },
duration: 200,
- curve: CoreTypes.AnimationCurve.ease,
+ curve: CoreTypes.AnimationCurve.easeIn,
})
.then(() => (this.showTools = 0));
} else {
+ this.toolbar.height = 1;
this.showTools = 1;
- this.toolbar.translateY = 112;
- this.toolbar.animate({
- translate: { x: 0, y: 0 },
- duration: 200,
- curve: CoreTypes.AnimationCurve.ease,
- });
+ setTimeout(() => {
+ this.toolbar.animate({
+ height: 104,
+ duration: 200,
+ translate: { x: 0, y: 0 },
+ curve: CoreTypes.AnimationCurve.easeOut,
+ });
+ }, 1);
}
},
@@ -1126,24 +1115,16 @@ export default {
});
},
touchSelector({ object, action }, comp, title) {
- let selected = this.currentComp == comp;
- object.className = action.match(/down|move/)
- ? `segment r ${selected ? "select" : "fade"}`
- : `segment r ${selected && "select"}`;
- if (action == "up") this.navigateTo(comp, title);
- },
- touchRecipe({ object, action }) {
- let classes = object.className;
- if (!this.selectMode) {
- object.className = action.match(/down|move/)
- ? !classes.includes("fade")
- ? classes + " fade"
- : classes
- : classes.replace(/ fade/g, "");
+ if (this.currentComp != title) {
+ this.touchFade(object, action);
+ if (action == "up") this.navigateTo(comp, title);
}
},
+ touchRecipe({ object, action }) {
+ if (!this.selectMode) this.touchFade(object, action);
+ },
touchTool({ object, action }, comp, value) {
- object.className = action.match(/down|move/) ? `tool fade` : `tool`;
+ this.touchFade(object, action);
if (action == "up") this.navigateTo(comp, value, 1);
},
},
diff --git a/app/components/MealPlanner.vue b/app/components/MealPlanner.vue
index e37bca00..681f9029 100644
--- a/app/components/MealPlanner.vue
+++ b/app/components/MealPlanner.vue
@@ -6,34 +6,35 @@
rowSpan="3"
scrollBarIndicatorVisible="false"
>
-
+
-
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
diff --git a/app/components/ViewRecipe.vue b/app/components/ViewRecipe.vue
index c89ae113..d4cc75cd 100644
--- a/app/components/ViewRecipe.vue
+++ b/app/components/ViewRecipe.vue
@@ -10,7 +10,11 @@
paddingBottom="24"
>
-
+
@@ -108,8 +109,7 @@
@@ -118,18 +118,17 @@
orientation="horizontal"
v-for="(item, index) in recipe.ingredients"
:key="index + 'ing'"
- class="ingredient"
+ class="check"
@touch="touchIngredient($event, index)"
>
-
-
+
+
-
-
+
+
-
-
+
+
@@ -262,10 +264,23 @@
stretch="aspectFit"
@loaded="onImgViewLoad"
:src="recipe.image"
- class="photoviewer"
+ class="imgViewer"
/>
+
+
@@ -328,7 +343,7 @@ export default {
};
},
computed: {
- ...mapState(["icon", "recipes", "RTL"]),
+ ...mapState(["icon", "recipes", "RTL", "awakeViewer"]),
tempYieldQuantity() {
return Math.abs(this.yieldMultiplier) > 0
? Math.abs(parseFloat(this.yieldMultiplier))
@@ -363,7 +378,7 @@ export default {
object.bindingContext = new Observable();
if (this.yieldMultiplier == this.recipe.yieldQuantity)
this.yieldMultiplier = this.recipe.yieldQuantity;
- utils.keepScreenOn(1);
+ if (this.awakeViewer) utils.keepScreenOn(1);
this.syncCombinations();
this.view = object.page.getViewById("printview");
},
@@ -465,27 +480,15 @@ export default {
}
},
showBars() {
- this.appbar.animate({
- translate: { x: 0, y: 0 },
- duration: 200,
- curve: CoreTypes.AnimationCurve.ease,
- });
- this.sidebar.animate({
- translate: { x: 0, y: 0 },
- duration: 200,
- curve: CoreTypes.AnimationCurve.ease,
- });
+ this.animateBar(this.appbar, 1);
+ this.animateBar(this.sidebar, 1);
},
hideBars() {
- this.appbar.animate({
- translate: { x: 0, y: 64 },
- duration: 200,
- curve: CoreTypes.AnimationCurve.ease,
- });
+ this.animateBar(this.appbar, 0);
this.sidebar.animate({
translate: { x: this.RTL ? -64 : 64, y: 0 },
duration: 200,
- curve: CoreTypes.AnimationCurve.ease,
+ curve: CoreTypes.AnimationCurve.easeIn,
});
},
@@ -554,7 +557,7 @@ export default {
"triedInfo",
this.niceDate(this.recipe.lastTried)
);
- this.animateBar(this.toastbar, 1);
+ this.animateBar(this.toastbar, 1, 1);
let a = 10;
clearInterval(barTimer);
barTimer = setInterval(() => a-- < 1 && this.hideBar(), 1000);
@@ -657,9 +660,7 @@ export default {
// });
},
touchIngredient({ object, action }, index) {
- object.className = action.match(/down|move/)
- ? "ingredient fade"
- : "ingredient";
+ this.touchFade(object, action);
if (action == "up") this.checkChange(object, index);
},
checkChange(obj, index) {
@@ -681,25 +682,23 @@ export default {
},
touchInstruction({ object, action }) {
let hasDone = object.className.includes("done");
- object.className = action.match(/down|move/)
- ? `instruction ${hasDone ? "done" : "fade"}`
- : `instruction ${hasDone ? "done" : ""}`;
+ if (!hasDone) this.touchFade(object, action);
if (action == "up") this.stepDone(object);
},
stepDone(object) {
let a = object;
if (a.className.includes("done")) {
- a.className = "instruction";
+ a.className = "check";
this.stepsDid--;
} else {
- a.className = "instruction done";
+ a.className = "check done";
this.stepsDid++;
}
},
clearSteps() {
this.stepsDid = 0;
for (let i = 1; i < this.inscon.getChildrenCount(); i++) {
- this.inscon.getChildAt(i).className = "instruction";
+ this.inscon.getChildAt(i).className = "check";
}
},
getDates() {
@@ -838,11 +837,16 @@ export default {
});
if (setDate) this.$navigateBack();
},
- setRating(rating) {
- if (rating !== this.recipe.rating || rating === 1) {
+ touchRate({ object, action }, r) {
+ this.touchFade(object, action);
+ if (action == "up") this.setRating(r);
+ },
+ setRating(r) {
+ if (r !== this.recipe.rating || r === 1) {
+ if (this.recipe.rating == 1 && r == 1) r = 0;
this.setRatingAction({
id: this.currentRecipeID,
- rating,
+ rating: r,
});
}
},
@@ -861,7 +865,7 @@ export default {
createNote(note) {
let regex = /(https?:\/\/[^\s]+)/g;
const lbl = new RLabel();
- lbl.className = "note";
+ lbl.className = "note tw";
lbl.textWrap = true;
let fString = new FormattedString();
let arr = note.split(regex);
@@ -928,7 +932,7 @@ export default {
height: sw,
translate: { x: this.RTL ? -16 : 112 - sw, y: (sh - sw) / 3 },
duration: 200,
- curve: CoreTypes.AnimationCurve.ease,
+ curve: CoreTypes.AnimationCurve.easeOut,
})
)
.then(() =>
@@ -936,7 +940,7 @@ export default {
height: sh,
translate: { x: this.RTL ? -16 : 112 - sw, y: -((sh - sw) / 6) },
duration: 200,
- curve: CoreTypes.AnimationCurve.ease,
+ curve: CoreTypes.AnimationCurve.easeOut,
})
);
},
@@ -949,7 +953,7 @@ export default {
height: sw,
translate: { x: this.RTL ? -16 : 112 - sw, y: (sh - sw) / 3 },
duration: 200,
- curve: CoreTypes.AnimationCurve.ease,
+ curve: CoreTypes.AnimationCurve.easeIn,
})
.then(() =>
pv.animate({
@@ -957,7 +961,7 @@ export default {
height: 96,
translate: { x: 0, y: 0 },
duration: 200,
- curve: CoreTypes.AnimationCurve.ease,
+ curve: CoreTypes.AnimationCurve.easeIn,
})
)
.then(() =>
@@ -1112,9 +1116,8 @@ export default {
// Helpers
touchYield({ object, action }) {
- object.className = action.match(/down|move/)
- ? "value accent fade"
- : "value accent";
+ this.touchFade(object, action);
+
if (action == "up") this.changeYield();
},
},
diff --git a/app/components/modals/Action.vue b/app/components/modals/Action.vue
index b935cd09..0304c386 100644
--- a/app/components/modals/Action.vue
+++ b/app/components/modals/Action.vue
@@ -1,9 +1,5 @@
-
+
@@ -158,12 +154,7 @@ export default {
}
},
touch({ object, action }): void {
- let classes = object.className;
- object.className = action.match(/down|move/)
- ? !classes.includes("fade")
- ? classes + " fade"
- : classes
- : classes.replace(/ fade/g, "");
+ this.touchFade(object, action);
},
},
created() {
diff --git a/app/components/modals/ActionWithSearch.vue b/app/components/modals/ActionWithSearch.vue
index b837d020..09014e14 100644
--- a/app/components/modals/ActionWithSearch.vue
+++ b/app/components/modals/ActionWithSearch.vue
@@ -1,9 +1,5 @@
-
+
-
@@ -82,6 +74,12 @@ export default {
})
.filter((e) => this.recipeFilter(e));
},
+ noResult() {
+ if (!this.recipes.length) return "recListEmp";
+ else if (!this.filteredRecipes.length && this.searchQuery)
+ return "noRecs";
+ else 0;
+ },
},
methods: {
tapAction(recipe) {
@@ -101,9 +99,7 @@ export default {
);
},
touch({ object, action }, recipe) {
- object.className = action.match(/down|move/)
- ? "listItem fade"
- : "listItem ";
+ this.touchFade(object, action);
if (action == "up") this.tapAction(recipe);
},
},
diff --git a/app/components/modals/Confirm.vue b/app/components/modals/Confirm.vue
index 802ad536..b0c39776 100644
--- a/app/components/modals/Confirm.vue
+++ b/app/components/modals/Confirm.vue
@@ -1,6 +1,6 @@
@@ -16,13 +16,13 @@
diff --git a/app/components/modals/DMYPicker.vue b/app/components/modals/DMYPicker.vue
index e1982df0..b057703c 100644
--- a/app/components/modals/DMYPicker.vue
+++ b/app/components/modals/DMYPicker.vue
@@ -1,6 +1,6 @@
@@ -33,13 +33,13 @@
diff --git a/app/components/modals/Filter.vue b/app/components/modals/Filter.vue
index 795cdb80..b342a363 100644
--- a/app/components/modals/Filter.vue
+++ b/app/components/modals/Filter.vue
@@ -5,19 +5,19 @@
-
+
@@ -41,16 +41,16 @@
columns="auto, *, auto, auto"
class="actions"
>
-
+
@@ -66,7 +66,7 @@ let filterTimer;
export default {
data() {
return {
- filterType: "cuisine",
+ filter: "cuisine",
localCuisine: null,
localCategory: null,
localTag: null,
@@ -100,7 +100,7 @@ export default {
title: localize(this.localTag),
},
];
- switch (this.filterType) {
+ switch (this.filter) {
case "cuisine":
return arr.slice(0, -2);
case "category":
@@ -109,7 +109,7 @@ export default {
return arr;
},
filterList() {
- switch (this.filterType) {
+ switch (this.filter) {
case "cuisine":
return this.cuisineList;
case "category":
@@ -175,19 +175,19 @@ export default {
methods: {
...mapActions(["setCuisine", "setCategory", "setTag", "clearFilter"]),
pgLoad(args) {
- this.transparentPage(args);
+ this.mLoad(args);
this.localCuisine = this.selCuisine;
this.localCategory = this.selCategory;
this.localTag = this.selTag;
- if (this.localCuisine) this.filterType = "category";
- if (this.localCategory && this.localTag) this.filterType = "tag";
+ if (this.localCuisine) this.filter = "category";
+ if (this.localCategory && this.localTag) this.filter = "tag";
this.scrollToRight();
},
onScrollLoad(args) {
this.scrollview = args.object;
},
setFilterType(type) {
- this.filterType = type;
+ this.filter = type;
switch (type) {
case "cuisine":
this.localCategory = null;
@@ -210,14 +210,14 @@ export default {
},
setRecipeFilter(item) {
this.reset = 0;
- switch (this.filterType) {
+ switch (this.filter) {
case "cuisine":
this.localCuisine = item;
- this.filterType = "category";
+ this.filter = "category";
break;
case "category":
this.localCategory = item;
- if (this.tagList.length) this.filterType = "tag";
+ if (this.tagList.length) this.filter = "tag";
break;
default:
this.localTag = item;
@@ -233,23 +233,19 @@ export default {
this.$modal.close(this.reset);
},
resetFilter() {
- this.filterType = "cuisine";
+ this.filter = "cuisine";
this.localCuisine = this.localCategory = this.localTag = null;
this.reset = 1;
},
touch({ object, action }, item) {
- object.className = action.match(/down|move/)
- ? "listItem fade"
- : "listItem ";
+ this.touchFade(object, action);
if (action == "up") this.setRecipeFilter(item);
},
touchSelector({ object, action }, type) {
- let selected = this.filterType == type;
- let classes = `segment ${this.RTL ? "rtl" : ""} `;
- object.className = action.match(/down|move/)
- ? `${classes}${selected ? "select" : "fade"}`
- : `${classes}${selected && "select"}`;
- if (action == "up") this.setFilterType(type);
+ if (this.filter != type) {
+ this.touchFade(object, action);
+ if (action == "up") this.setFilterType(type);
+ }
},
},
};
diff --git a/app/components/modals/Prompt.vue b/app/components/modals/Prompt.vue
index 8a3c9fb9..1f6df716 100644
--- a/app/components/modals/Prompt.vue
+++ b/app/components/modals/Prompt.vue
@@ -1,6 +1,6 @@
@@ -28,13 +28,13 @@
diff --git a/app/components/modals/TimePickerHM.vue b/app/components/modals/TimePickerHM.vue
index a5fa110c..814d93b2 100644
--- a/app/components/modals/TimePickerHM.vue
+++ b/app/components/modals/TimePickerHM.vue
@@ -1,6 +1,6 @@
@@ -28,13 +28,13 @@
diff --git a/app/components/modals/TimePickerHMS.vue b/app/components/modals/TimePickerHMS.vue
index 27b7f5a0..17763902 100644
--- a/app/components/modals/TimePickerHMS.vue
+++ b/app/components/modals/TimePickerHMS.vue
@@ -1,9 +1,5 @@
-
+
@@ -47,17 +43,22 @@
>
-
+
diff --git a/app/components/settings/About.vue b/app/components/settings/About.vue
index 0cc63e92..455426bb 100644
--- a/app/components/settings/About.vue
+++ b/app/components/settings/About.vue
@@ -3,15 +3,15 @@
-
+
-
-
+
+
-
+
@@ -37,6 +37,13 @@
+
+
@@ -103,7 +110,7 @@ export default {
Utils.openUrl(url);
},
touch({ object, action }, url) {
- object.className = action.match(/down|move/) ? "option fade" : "option";
+ this.touchFade(object, action);
if (action == "up") this.openURL(url);
},
},
diff --git a/app/components/settings/AppSettings.vue b/app/components/settings/AppSettings.vue
index 7980c93b..94792d01 100644
--- a/app/components/settings/AppSettings.vue
+++ b/app/components/settings/AppSettings.vue
@@ -5,6 +5,13 @@
+
+
diff --git a/app/components/settings/CTSettings.vue b/app/components/settings/CTSettings.vue
index e642efd7..42c7f266 100644
--- a/app/components/settings/CTSettings.vue
+++ b/app/components/settings/CTSettings.vue
@@ -5,6 +5,13 @@
+
+
@@ -113,6 +120,9 @@ export default {
props: {
title: "tmrSnd",
list: getTones.tones.map((e) => e.title),
+ selected: getTones.tones.findIndex(
+ (e) => e.title == this.timerSound.title
+ ),
},
}).then(
(tone) =>
diff --git a/app/components/settings/Database.vue b/app/components/settings/Database.vue
index 70db2573..1f2d7185 100644
--- a/app/components/settings/Database.vue
+++ b/app/components/settings/Database.vue
@@ -22,8 +22,15 @@
columns="auto, *"
>
-
+
+
+
@@ -474,7 +481,7 @@ export default {
showToast(data) {
this.animateBar(this.appbar, 0).then(() => {
this.toast = data;
- this.animateBar(this.toastbar, 1);
+ this.animateBar(this.toastbar, 1, 1);
utils.timer(5, (val) => !val && this.hideBar());
});
},
diff --git a/app/components/settings/Interface.vue b/app/components/settings/Interface.vue
index f870f929..b604c16c 100644
--- a/app/components/settings/Interface.vue
+++ b/app/components/settings/Interface.vue
@@ -5,6 +5,13 @@
+
+
@@ -42,9 +49,7 @@ export default {
icon: "theme",
rtl: 0,
title: "Theme",
- subTitle: localize(
- ApplicationSettings.getString("theme", "sysDef")
- ),
+ subTitle: localize(ApplicationSettings.getString("theme", "sysDef")),
action: this.selectThemes,
},
{
@@ -71,6 +76,7 @@ export default {
props: {
title: "lang",
list: [...languages],
+ selected: this.applang,
},
}).then((action) => {
if (action && this.applang !== action) {
@@ -97,6 +103,7 @@ export default {
props: {
title: "Theme",
list: ["Light", "Dark", "Black", "sysDef", "sysDefB"],
+ selected: ApplicationSettings.getString("theme", "sysDef"),
},
}).then((action) => {
if (
@@ -116,13 +123,10 @@ export default {
props: {
title: "listVM",
list: ["detailed", "grid", "photogrid", "simple", "minimal"],
+ selected: this.layout,
},
- }).then((action) => {
- if (action && this.layoutMode !== action) {
- let act = action.toLowerCase();
- ApplicationSettings.setString("layout", act);
- this.setLayout(act);
- }
+ }).then((mode) => {
+ if (mode && this.layout !== mode) this.setLayout(mode.toLowerCase());
});
},
},
diff --git a/app/components/settings/MPSettings.vue b/app/components/settings/MPSettings.vue
index fc0624df..898f46ed 100644
--- a/app/components/settings/MPSettings.vue
+++ b/app/components/settings/MPSettings.vue
@@ -5,6 +5,13 @@
+
+
@@ -60,7 +67,8 @@ export default {
this.$showModal(Action, {
props: {
title: "calVM",
- list: ["mnth", "wk", "d"],
+ list: ["d", "wk", "mnth"],
+ selected: this.plannerView,
},
}).then((res) => {
if (res && this.plannerView != res) this.setPlannerView(res);
@@ -70,7 +78,8 @@ export default {
this.$showModal(Action, {
props: {
title: "admp",
- list: ["otay", "otam", "otaw", "nvr"],
+ list: ["otaw", "otam", "otay", "nvr"],
+ selected: this.planDeletion,
},
}).then((res) => {
if (res && this.planDeletion != res) this.setPlanDeletion(res);
diff --git a/app/components/settings/Options.vue b/app/components/settings/Options.vue
index 5a1d31a8..8cea49fb 100644
--- a/app/components/settings/Options.vue
+++ b/app/components/settings/Options.vue
@@ -13,6 +13,13 @@
+
+
@@ -35,7 +42,7 @@ export default {
};
},
computed: {
- ...mapState(["icon", "shake", "RTL"]),
+ ...mapState(["icon", "shake", "RTL", "edgeSwipe", "awakeViewer"]),
items() {
return [
{},
@@ -47,12 +54,28 @@ export default {
checked: !!this.shake,
action: this.toggleShake,
},
+ {
+ type: "switch",
+ icon: "awake",
+ title: "ksavr",
+ subTitle: localize("ksavrInfo"),
+ checked: !!this.awakeViewer,
+ action: this.toggleAwake,
+ },
+ {
+ type: "switch",
+ icon: "edge",
+ title: "esgb",
+ subTitle: localize("esgbInfo"),
+ checked: !!this.edgeSwipe,
+ action: this.toggleSwipe,
+ },
{},
];
},
},
methods: {
- ...mapActions(["setShake"]),
+ ...mapActions(["setShake", "toggleEdgeSwipe", "toggleAwakeViewer"]),
pgLoad({ object }) {
object.bindingContext = new Observable();
},
@@ -63,17 +86,23 @@ export default {
this.toastbar = object;
},
- // SHAKE VIEW RANDOM RECIPE
toggleShake() {
let checked = this.shake;
if (checked && !utils.hasAccelerometer())
this.showToast(localize("noAccSensor"));
- else this.setShake(!checked | 0);
+ else this.setShake(+!checked);
},
+ toggleSwipe() {
+ this.toggleEdgeSwipe(+!this.edgeSwipe);
+ },
+ toggleAwake() {
+ this.toggleAwakeViewer(+!this.awakeViewer);
+ },
+
showToast(data) {
this.animateBar(this.appbar, 0).then(() => {
this.toast = data;
- this.animateBar(this.toastbar, 1);
+ this.animateBar(this.toastbar, 1, 1);
utils.timer(5, (val) => !val && this.hideBar());
});
},
diff --git a/app/components/settings/Reset.vue b/app/components/settings/Reset.vue
index 4598ae97..d81d0b92 100644
--- a/app/components/settings/Reset.vue
+++ b/app/components/settings/Reset.vue
@@ -12,6 +12,13 @@
+
+
@@ -94,7 +101,7 @@ export default {
showToast() {
this.animateBar(this.appbar, 0).then(() => {
this.toast = localize("restDone");
- this.animateBar(this.toastbar, 1);
+ this.animateBar(this.toastbar, 1, 1);
});
utils.timer(5, (val) => !val && this.hideToast());
},
diff --git a/app/components/sub/OptionsList.vue b/app/components/sub/OptionsList.vue
index 5193bd04..13af9827 100644
--- a/app/components/sub/OptionsList.vue
+++ b/app/components/sub/OptionsList.vue
@@ -1,7 +1,7 @@
-
+
-
+
-
+
-
-
+
+
diff --git a/app/components/sub/Timer.vue b/app/components/sub/Timer.vue
index 7caa801e..3f53e68a 100644
--- a/app/components/sub/Timer.vue
+++ b/app/components/sub/Timer.vue
@@ -6,7 +6,7 @@
class="timer"
>
@@ -18,7 +18,7 @@
@@ -61,7 +61,7 @@ import { ApplicationSettings } from "@nativescript/core";
import { localize } from "@nativescript/localize";
import { mapState, mapActions } from "vuex";
import ActionWithSearch from "../modals/ActionWithSearch";
-import ViewRecipe from "../ViewRecipe";
+import EditRecipe from "../EditRecipe";
import * as utils from "~/shared/utils";
import { EvtBus } from "~/main";
export default {
@@ -150,13 +150,6 @@ export default {
);
this.initTimer();
},
- viewRecipe(recipeID) {
- this.$navigateTo(ViewRecipe, {
- props: {
- recipeID,
- },
- });
- },
attachRecipe() {
this.$showModal(ActionWithSearch, {
props: {
@@ -251,12 +244,7 @@ export default {
// HELPERS
touch({ object, action }) {
- let classes = object.className;
- classes = action.match(/down|move/)
- ? !classes.includes("fade")
- ? classes + " fade"
- : classes
- : classes.replace(/ fade/g, "");
+ this.touchFade(object, action);
if (action == "up") this.attachRecipe();
},
},
diff --git a/app/components/sub/Toast.vue b/app/components/sub/Toast.vue
index 81a0f45b..69f017ef 100644
--- a/app/components/sub/Toast.vue
+++ b/app/components/sub/Toast.vue
@@ -10,7 +10,7 @@
@loaded="onload"
>
-
+
diff --git a/app/fonts/enrecipes.ttf b/app/fonts/EnRecipes.ttf
similarity index 89%
rename from app/fonts/enrecipes.ttf
rename to app/fonts/EnRecipes.ttf
index d315bebba136a8945e9a331c6d23e6681f67e333..c2573d9501b943c55a6253056bc9e67e125ba7c8 100644
GIT binary patch
delta 1146
zcmaJ=OK1~e5T0q$MC@j_yJmNrl0NciR-3h!G@GTVt!ZldT1C*L9(AqJht*=y=d=mWqok;2Nf
zxtNCx{3N_exP8W)&YpdJjRJ<>P{5P??A$yhO5bSi?yC_@-9rOYFHc}sqVV3<#B#Eo
zm88M2+RF(7*QG!*bV#12`C=&|S#4Edc7cLxnJ9K%>t3Hj0QWYOsm-Eu3+6r>NJ9@C;q7b>BE
z7?DJ`Bj68d(OA93;9?l?k{QnuCmMn^PIa6<}1CiwPpHDoUJhY~EfSUYc=)>2
z>i*YO4JCf9q5Qn7I#qS%^_uhU+Q8?33s;iJSn7sW(2R0hEzXHuVjTSkU9qZYU9&oB
zUBdRnmVj>P2RP7*R7lWTbLOQ{t-g=$~cnv=nk3mmrSR^6DQ
z%T=_h>C(49aSJDd$>!bcDv4_bQV-2Bz3gPUQUuNVm?^nmSQY&>Va+erDup&QdLxuH
zjl|NkJLkBg-=V>7Jy(FOZ;=PPYiTs8m=+`%44I
uH@MWy>Fnf{e0B~}FaxJceClxL9vfs~60Xo~&cfWDqf##A`-|dX>c(#yY0wh@
delta 526
zcmeB}$T+2kv7UjEfq{XWp@D&!!N5OQ--us`Ee$BL2Z$4ra}x{1!!Dg-U|^I1@c%;7@Smq@@5%80rnaeP9Q%9$XCh8
zEvXP=P`C)>Hvsi0{(HMM
zkRJlnFs~rLxCH1>AaMOMafdsj^CU)ZM(52wjCv0BSD7RP1SFZ*#Kqlob&dGN#Q2SL
zb=}0p*_b2+1SFW)f#N#4MgpRu0!F$zKyh|0nP3x>U>TVZ6O#}bMy*gGNlBqlNg*Lg
z1dC}ll6w5+i$X2vg&PSp{_bQxCvjy^2m^6a_MGN;ew(ih+$R4~8EM93V9eOp^;egeRYNTg{)ESCpEZS&&-Hkjjw9P&B#K
eT~`ZD3@DS#kjYR0q>Is{Cf{*a#4v)#qXqzqvUkV;
diff --git a/app/main.ts b/app/main.ts
index f44bab0c..67e20a23 100644
--- a/app/main.ts
+++ b/app/main.ts
@@ -3,47 +3,51 @@ import store from './store'
import {
Application,
AndroidApplication,
- ApplicationSettings,
Utils,
Frame,
} from '@nativescript/core'
+import {
+ setNumber,
+ getNumber,
+ getString,
+} from '@nativescript/core/application-settings'
import { localize } from '@nativescript/localize'
import EnRecipes from './components/EnRecipes.vue'
import EditRecipe from './components/EditRecipe.vue'
import MealPlanner from './components/MealPlanner.vue'
import CookingTimer from './components/CookingTimer.vue'
-
// import GroceryList from './components/GroceryList.vue'
import * as utils from '~/shared/utils'
export const EvtBus = new Vue()
-let renderView = EnRecipes
+let renderView: any = EnRecipes
import CollectionView from '@nativescript-community/ui-collectionview/vue'
Vue.use(CollectionView)
-import { RGridLayout, RStackLayout, RDockLayout, RLabel } from './rtl-ui'
+import { RGridLayout, RStackLayout, RLabel } from './rtl-ui'
Vue.registerElement('RGridLayout', () => RGridLayout)
Vue.registerElement('RStackLayout', () => RStackLayout)
-Vue.registerElement('RDockLayout', () => RDockLayout)
Vue.registerElement('RLabel', () => RLabel)
import { myMixin } from './shared/mixins'
Vue.mixin(myMixin)
+Vue.filter('L', localize)
+
const initFrame = () => {
- const vm = store
+ const s = store
// MainInit
- vm.commit('setTheme', ApplicationSettings.getString('theme', 'sysDef'))
- vm.commit('initRecipes')
- vm.commit('initMealPlans')
- vm.commit('initListItems')
- vm.commit('initTimerPresets')
- if (!Object.keys(vm.state.timerSound).length) {
- let hasTimerSound = ApplicationSettings.getString('timerSound', null)
- vm.commit(
+ s.commit('setTheme', getString('theme', 'sysDef'))
+ s.commit('initRecipes')
+ s.commit('initMealPlans')
+ s.commit('initListItems')
+ s.commit('initTimerPresets')
+ if (!Object.keys(s.state.timerSound).length) {
+ let hasTimerSound = getString('timerSound', null)
+ s.commit(
'setTimerSound',
hasTimerSound ? JSON.parse(hasTimerSound) : utils.getTones().defaultTone
)
@@ -51,15 +55,14 @@ const initFrame = () => {
// InitFrame
const window = Application.android.startActivity.getWindow()
const decorView = window.getDecorView()
- utils.setBarColors(window, decorView, vm.state.theme)
- Frame.topmost().className = vm.state.theme
+ utils.setBarColors(window, decorView, s.state.theme)
+ Frame.topmost().className = s.state.theme
}
const showOverLockscreen = () => {
let ctx = Utils.ad.getApplicationContext()
const pm = ctx.getSystemService(android.content.Context.POWER_SERVICE)
let isScreenOff = !pm.isInteractive()
if (isScreenOff) {
- console.log('showOverLockscreen')
const window = Application.android.startActivity.getWindow()
const windowMgr = android.view.WindowManager
const flags =
@@ -82,19 +85,21 @@ const intentListener = ({ intent, android }: any) => {
break
case 'timer':
renderView = CookingTimer
- switch (ApplicationSettings.getNumber('isTimer', 0)) {
+ switch (getNumber('isTimer', 0)) {
case 0:
// Closing all modals if available before navigation
- let modals = Frame.topmost()._getRootModalViews()
- for (let i = modals.length - 1; i >= 0; i--) {
- Frame.topmost()
- ._getRootModalViews()
- [i].closeModal()
+ if (Frame.topmost()) {
+ let modals = Frame.topmost()._getRootModalViews()
+ for (let i = modals.length - 1; i >= 0; i--) {
+ Frame.topmost()
+ ._getRootModalViews()
+ [i].closeModal()
+ }
}
Vue.navigateTo(CookingTimer as any, {
animated: false,
})
- ApplicationSettings.setNumber('isTimer', 1)
+ setNumber('isTimer', 1)
break
case 2:
Vue.navigateBack()
@@ -108,17 +113,6 @@ const intentListener = ({ intent, android }: any) => {
}
}
-Application.on(Application.resumeEvent, () => {
- showOverLockscreen()
- if (
- utils.sysLocale() !==
- ApplicationSettings.getString('sysLocale', utils.sysLocale())
- ) {
- Frame.reloadPage()
- utils.updateLocale()
- }
-})
-
Application.on(Application.launchEvent, (args) => {
utils.updateLocale()
store.commit('setRTL')
@@ -130,6 +124,15 @@ Application.on(Application.launchEvent, (args) => {
Frame.on(Frame.loadedEvent, initFrame)
})
+Application.on(Application.resumeEvent, () => {
+ showOverLockscreen()
+ if (utils.sysLocale() !== getString('sysLocale', utils.sysLocale())) {
+ Frame.reloadPage()
+ utils.updateLocale()
+ store.commit('setRTL')
+ }
+})
+
Application.on(Application.exitEvent, () => {
renderView = EnRecipes
Application.android.off(
@@ -140,8 +143,6 @@ Application.on(Application.exitEvent, () => {
Vue.config.silent = false
-Vue.filter('L', localize)
-
new Vue({
store,
render: (h) => h('Frame', [h(renderView)]),
diff --git a/app/rtl-ui/dock-layout/index.android.ts b/app/rtl-ui/dock-layout/index.android.ts
deleted file mode 100644
index 14a51f8e..00000000
--- a/app/rtl-ui/dock-layout/index.android.ts
+++ /dev/null
@@ -1,52 +0,0 @@
-import { Property, DockLayout } from '@nativescript/core'
-
-class Common extends DockLayout {
- public rtl: boolean
-}
-const RTLProperty = new Property({
- name: 'rtl',
- defaultValue: false,
- valueConverter(v): boolean {
- return !!v
- },
-})
-RTLProperty.register(Common)
-
-export class RDockLayout extends Common {
- public initNativeView(): void {
- super.initNativeView()
- this._updateDirection()
- }
- [RTLProperty.setNative](rtl: boolean): void {
- this.rtl = rtl
- this._updateDirection()
- }
- public addChild(view): void {
- super.addChild(view)
- if (view.nativeViewProtected) {
- this._updateDirection()
- }
- }
- public removeChild(view): void {
- super.removeChild(view)
- if (view.nativeViewProtected) {
- this._updateDirection()
- }
- }
- private _updateDirection(): void {
- let v = this
- setTimeout(() => {
- v.nativeViewProtected.setRotationY(v.rtl ? 180 : 0)
- for (let i = 0; i < v.getChildrenCount(); i++) {
- let c = v.getChildAt(i).className
- let r = /(^|\s)rtl($|\s)/.test(c)
- let a = /(^|\s)a($|\s)/.test(c)
- if (!v.rtl) r = !r
- if (/(^|\s)a($|\s)/.test(c))
- v.getChildAt(i).horizontalAlignment = a ? 'left' : 'right'
- v.getChildAt(i).nativeView &&
- v.getChildAt(i).nativeView.setRotationY(v.rtl ? (r ? 0 : 180) : 0)
- }
- }, 1)
- }
-}
diff --git a/app/rtl-ui/dock-layout/index.d.ts b/app/rtl-ui/dock-layout/index.d.ts
deleted file mode 100644
index 3f95f04e..00000000
--- a/app/rtl-ui/dock-layout/index.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { RDockLayout } from './index.android'
diff --git a/app/rtl-ui/index.ts b/app/rtl-ui/index.ts
index 674bad71..6c0b5824 100644
--- a/app/rtl-ui/index.ts
+++ b/app/rtl-ui/index.ts
@@ -1,4 +1,3 @@
export { RGridLayout } from './grid-layout'
export { RStackLayout } from './stack-layout'
-export { RDockLayout } from './dock-layout'
export { RLabel } from './label'
diff --git a/app/shared/mixins.ts b/app/shared/mixins.ts
index 45ea1afe..5844b35d 100644
--- a/app/shared/mixins.ts
+++ b/app/shared/mixins.ts
@@ -5,7 +5,7 @@ const Intl = require('nativescript-intl')
export const myMixin = {
methods: {
- transparentPage({ object }) {
+ mLoad({ object }) {
object._dialogFragment
.getDialog()
.getWindow()
@@ -15,16 +15,14 @@ export const myMixin = {
)
)
},
- animateBar(obj, op) {
- if (op) {
- obj.translateY = 64
- obj.opacity = 0
- }
+ animateBar(obj, x: number, y?: number) {
+ let c = CoreTypes.AnimationCurve
+ if (y) obj.translateY = 64
return obj.animate({
- opacity: op,
- translate: { x: 0, y: op ? 0 : 64 },
+ opacity: 1,
+ translate: { x: 0, y: x ? 0 : 64 },
duration: 200,
- curve: CoreTypes.AnimationCurve.ease,
+ curve: x ? c.easeOut : c.easeIn,
})
},
totalTime(prepTime, cookTime) {
@@ -47,7 +45,19 @@ export const myMixin = {
;(args.object || args).android.setGravity(this.RTL ? 5 : 3)
},
getLocaleN(n) {
- return new Intl.NumberFormat(null).format(n)
+ return new Intl.NumberFormat(null).format(Number(n))
+ },
+ touchFade(object, action) {
+ let c = object.className
+ object.className = action.match(/down|move/)
+ ? !c.includes('fade')
+ ? c + ' fade'
+ : c
+ : c.replace(/ fade/g, '')
+ },
+ swipeBack({ direction }, method) {
+ if (this.$store.state.edgeSwipe)
+ if (direction == 1) method ? method(0) : this.$navigateBack()
},
},
}
diff --git a/app/shared/utils.ts b/app/shared/utils.ts
index 6c10bf52..7d8bff9f 100644
--- a/app/shared/utils.ts
+++ b/app/shared/utils.ts
@@ -328,12 +328,12 @@ export function shareImage(image, subject, title) {
share(intent, subject)
}
-export function keepScreenOn(bool) {
+export function keepScreenOn(n: number) {
let ctx =
Application.android.foregroundActivity || Application.android.startActivity
let window = ctx.getWindow()
let flag = android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
- bool ? window.addFlags(flag) : window.clearFlags(flag)
+ n ? window.addFlags(flag) : window.clearFlags(flag)
}
// TIMER NOTIFICATION
@@ -600,6 +600,8 @@ export function updateLocale() {
ctx.createConfigurationContext(config)
res.updateConfiguration(config, res.getDisplayMetrics())
ApplicationSettings.setNumber('RTL', config.getLayoutDirection() | 0)
+ } else {
+ ApplicationSettings.setNumber('RTL', sysRTL() | 0)
}
ApplicationSettings.setString('sysLocale', sysLocale())
}
diff --git a/app/store.ts b/app/store.ts
index ce64ea19..517a74b6 100644
--- a/app/store.ts
+++ b/app/store.ts
@@ -246,6 +246,8 @@ export default new Vuex.Store({
calv: '\ue941',
mpd: '\ue942',
madd: '\ue943',
+ awake: '\ue944',
+ edge: '\ue945',
},
sortType: 'random',
language: [
@@ -264,15 +266,15 @@ export default new Vuex.Store({
},
{
locale: 'en-IN',
- title: 'English (IN)',
+ title: 'English (India)',
},
{
locale: 'en-GB',
- title: 'English (UK)',
+ title: 'English (United Kingdom)',
},
{
locale: 'en-US',
- title: 'English (US)',
+ title: 'English (United States)',
},
{
locale: 'es',
@@ -284,15 +286,15 @@ export default new Vuex.Store({
},
{
locale: 'fr-BE',
- title: 'Français (BE)',
+ title: 'Français (Belgium)',
},
{
locale: 'fr-CA',
- title: 'Français (CA)',
+ title: 'Français (Canada)',
},
{
locale: 'fr-CH',
- title: 'Français (CH)',
+ title: 'Français (Switzerland)',
},
{
locale: 'hi',
@@ -306,14 +308,14 @@ export default new Vuex.Store({
locale: 'it',
title: 'Italiano',
},
- // {
- // locale: 'ja',
- // title: '日本語',
- // },
- // {
- // locale: 'ml',
- // title: 'മലയാളം',
- // },
+ {
+ locale: 'ja',
+ title: '日本語',
+ },
+ {
+ locale: 'ml',
+ title: 'മലയാളം',
+ },
{
locale: 'nb-NO',
title: 'Norsk bokmål',
@@ -328,7 +330,7 @@ export default new Vuex.Store({
},
{
locale: 'pt-BR',
- title: 'Português (BR)',
+ title: 'Português (Brazil)',
},
{
locale: 'ru',
@@ -364,8 +366,18 @@ export default new Vuex.Store({
RTL: getNumber('RTL', 0),
plannerView: getString('plannerView', 'wk'),
planDeletion: getString('planDeletion', 'nvr'),
+ edgeSwipe: getNumber('edgeSwipe', 1),
+ awakeViewer: getNumber('awakeViewer', 1),
},
mutations: {
+ toggleAwakeViewer(state) {
+ state.awakeViewer = +!state.awakeViewer
+ setNumber('awakeViewer', state.awakeViewer)
+ },
+ toggleEdgeSwipe(state) {
+ state.edgeSwipe = +!state.edgeSwipe
+ setNumber('edgeSwipe', state.edgeSwipe)
+ },
setPlanDeletion(state, s) {
state.planDeletion = s
setString('planDeletion', s)
@@ -483,6 +495,7 @@ export default new Vuex.Store({
},
setLayout(state, type) {
state.layout = type
+ setString('layout', type)
},
setSortType(state, sortType) {
state.sortType = sortType
@@ -817,24 +830,21 @@ export default new Vuex.Store({
let c = state.planDeletion
let date = new Date()
let d = new Date()
- if (c != 'nvr') {
- d.setHours(0, 0, 0, 0)
- let ld =
- c == 'otay'
- ? 365
- : c == 'otam'
- ? new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate()
- : 7
- d.setDate(d.getDate() - ld)
- }
+ d.setHours(0, 0, 0, 0)
+ let ld =
+ c == 'otay'
+ ? 365
+ : c == 'otam'
+ ? new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate()
+ : 7
+ d.setDate(d.getDate() - ld)
db.select(`SELECT * FROM mealPlans`).then((res) =>
- res.forEach((p: any) => {
- if (p.date < d.getTime())
- // DeletingOldMealPlans
- db.execute(`DELETE FROM mealPlans WHERE id = '${p.id}'`)
- else state.mealPlans.push(p)
- })
+ res.forEach((p: any) =>
+ c !== 'nvr' && p.date < d.getTime()
+ ? db.execute(`DELETE FROM mealPlans WHERE id = '${p.id}'`)
+ : state.mealPlans.push(p)
+ )
)
}
},
@@ -1024,6 +1034,12 @@ export default new Vuex.Store({
},
},
actions: {
+ toggleAwakeViewer({ commit }) {
+ commit('toggleAwakeViewer')
+ },
+ toggleEdgeSwipe({ commit }) {
+ commit('toggleEdgeSwipe')
+ },
setPlanDeletion({ commit }, s) {
commit('setPlanDeletion', s)
},
diff --git a/package-lock.json b/package-lock.json
index 16671ff8..fd3a110b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11,7 +11,7 @@
"dependencies": {
"@akylas/nativescript-sqlite": "^3.3.12",
"@nativescript-community/ui-collectionview": "^4.0.32",
- "@nativescript/core": "^8.0.7",
+ "@nativescript/core": "^8.0.8",
"@nativescript/localize": "^5.0.4",
"@triniwiz/nativescript-accelerometer": "^4.0.3",
"nativescript-imagecropper": "^4.0.1",
@@ -25,7 +25,7 @@
"@nativescript/webpack": "^5.0.0-beta.14",
"@types/node": "^15.12.2",
"nativescript-vue-template-compiler": "~2.9.0",
- "sass": "^1.34.1",
+ "sass": "^1.35.1",
"typescript": "^4.2.4",
"vue": "^2.6.13"
}
@@ -64,17 +64,17 @@
}
},
"node_modules/@babel/core": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.5.tgz",
- "integrity": "sha512-RN/AwP2DJmQTZSfiDaD+JQQ/J99KsIpOCfBE5pL+5jJSt7nI3nYGoAXZu+ffYSQ029NLs2DstZb+eR81uuARgg==",
+ "version": "7.14.6",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.6.tgz",
+ "integrity": "sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA==",
"dev": true,
"dependencies": {
"@babel/code-frame": "^7.14.5",
"@babel/generator": "^7.14.5",
"@babel/helper-compilation-targets": "^7.14.5",
"@babel/helper-module-transforms": "^7.14.5",
- "@babel/helpers": "^7.14.5",
- "@babel/parser": "^7.14.5",
+ "@babel/helpers": "^7.14.6",
+ "@babel/parser": "^7.14.6",
"@babel/template": "^7.14.5",
"@babel/traverse": "^7.14.5",
"@babel/types": "^7.14.5",
@@ -294,9 +294,9 @@
}
},
"node_modules/@babel/helpers": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.5.tgz",
- "integrity": "sha512-xtcWOuN9VL6nApgVHtq3PPcQv5qFBJzoSZzJ/2c0QK/IP/gxVcoWSNQwFEGvmbQsuS9rhYqjILDGGXcTkA705Q==",
+ "version": "7.14.6",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.6.tgz",
+ "integrity": "sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA==",
"dev": true,
"dependencies": {
"@babel/template": "^7.14.5",
@@ -384,9 +384,9 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.5.tgz",
- "integrity": "sha512-TM8C+xtH/9n1qzX+JNHi7AN2zHMTiPUtspO0ZdHflW8KaskkALhMmuMHb4bCmNdv9VAPzJX3/bXqkVLnAvsPfg==",
+ "version": "7.14.6",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.6.tgz",
+ "integrity": "sha512-oG0ej7efjEXxb4UgE+klVx+3j4MVo+A2vCzm7OUN4CLo6WhQ+vSOD2yJ8m7B+DghObxtLxt3EfgMWpq+AsWehQ==",
"dev": true,
"bin": {
"parser": "bin/babel-parser.js"
@@ -463,9 +463,9 @@
"dev": true
},
"node_modules/@nativescript/core": {
- "version": "8.0.7",
- "resolved": "https://registry.npmjs.org/@nativescript/core/-/core-8.0.7.tgz",
- "integrity": "sha512-2OLwPa5Y+9aKLyo0zWl0YSjWS0f+EFG8SdZe+uuU2mzEhCb8q9djdICjHynuXZkmrtQsx/lKjLhbtnoYQsMRvA==",
+ "version": "8.0.8",
+ "resolved": "https://registry.npmjs.org/@nativescript/core/-/core-8.0.8.tgz",
+ "integrity": "sha512-oeJIeHggLSXMBMwhIORW5WV3UyG4zu7M1G2VtG7Z6/Kd9JCUwglJTcP+1YPKt9emAPAz9bhGSCzMFpasNBPQzw==",
"hasInstallScript": true,
"dependencies": {
"@nativescript/hook": "~2.0.0",
@@ -709,15 +709,16 @@
"dev": true
},
"node_modules/@vue/component-compiler-utils": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.2.1.tgz",
- "integrity": "sha512-Mci9WJYLRjyJEBkGHMPxZ1ihJ9l6gOy2Gr6hpYZUNpQoe5+nbpeb3w00aP+PSHJygCF+fxJsqp7Af1zGDITzuw==",
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.2.2.tgz",
+ "integrity": "sha512-rAYMLmgMuqJFWAOb3Awjqqv5X3Q3hVr4jH/kgrFJpiU0j3a90tnNBplqbj+snzrgZhC9W128z+dtgMifOiMfJg==",
"dev": true,
"dependencies": {
"consolidate": "^0.15.1",
"hash-sum": "^1.0.2",
"lru-cache": "^4.1.2",
"merge-source-map": "^1.1.0",
+ "postcss": "^7.0.36",
"postcss-selector-parser": "^6.0.2",
"source-map": "~0.6.1",
"vue-template-es2015-compiler": "^1.9.0"
@@ -726,6 +727,86 @@
"prettier": "^1.18.2"
}
},
+ "node_modules/@vue/component-compiler-utils/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@vue/component-compiler-utils/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@vue/component-compiler-utils/node_modules/chalk/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@vue/component-compiler-utils/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/@vue/component-compiler-utils/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "node_modules/@vue/component-compiler-utils/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@vue/component-compiler-utils/node_modules/postcss": {
+ "version": "7.0.36",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz",
+ "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^2.4.2",
+ "source-map": "^0.6.1",
+ "supports-color": "^6.1.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
"node_modules/@vue/component-compiler-utils/node_modules/source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -735,6 +816,18 @@
"node": ">=0.10.0"
}
},
+ "node_modules/@vue/component-compiler-utils/node_modules/supports-color": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+ "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/@webassemblyjs/ast": {
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.0.tgz",
@@ -1344,24 +1437,24 @@
}
},
"node_modules/chokidar": {
- "version": "3.5.1",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz",
- "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==",
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz",
+ "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==",
"dev": true,
"dependencies": {
- "anymatch": "~3.1.1",
+ "anymatch": "~3.1.2",
"braces": "~3.0.2",
- "glob-parent": "~5.1.0",
+ "glob-parent": "~5.1.2",
"is-binary-path": "~2.1.0",
"is-glob": "~4.0.1",
"normalize-path": "~3.0.0",
- "readdirp": "~3.5.0"
+ "readdirp": "~3.6.0"
},
"engines": {
"node": ">= 8.10.0"
},
"optionalDependencies": {
- "fsevents": "~2.3.1"
+ "fsevents": "~2.3.2"
}
},
"node_modules/chokidar/node_modules/glob-parent": {
@@ -2279,9 +2372,9 @@
}
},
"node_modules/globby": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz",
- "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==",
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz",
+ "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==",
"dev": true,
"dependencies": {
"array-union": "^2.1.0",
@@ -3222,9 +3315,9 @@
}
},
"node_modules/postcss": {
- "version": "8.3.2",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.2.tgz",
- "integrity": "sha512-y1FK/AWdZlBF5lusS5j5l4/vF67+vQZt1SXPVJ32y1kRGDQyrs1zk32hG1cInRTu14P0V+orPz+ifwW/7rR4bg==",
+ "version": "8.3.5",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.5.tgz",
+ "integrity": "sha512-NxTuJocUhYGsMiMFHDUkmjSKT3EdH4/WbGF6GCi1NDGk+vbcUTun4fpbOqaPtD8IIsztA2ilZm2DhYCuyN58gA==",
"dev": true,
"dependencies": {
"colorette": "^1.2.2",
@@ -3528,9 +3621,9 @@
}
},
"node_modules/readdirp": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
- "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==",
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
"dev": true,
"dependencies": {
"picomatch": "^2.2.1"
@@ -3657,9 +3750,9 @@
"dev": true
},
"node_modules/sass": {
- "version": "1.34.1",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.34.1.tgz",
- "integrity": "sha512-scLA7EIZM+MmYlej6sdVr0HRbZX5caX5ofDT9asWnUJj21oqgsC+1LuNfm0eg+vM0fCTZHhwImTiCU0sx9h9CQ==",
+ "version": "1.35.1",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.35.1.tgz",
+ "integrity": "sha512-oCisuQJstxMcacOPmxLNiLlj4cUyN2+8xJnG7VanRoh2GOLr9RqkvI4AxA4a6LHVg/rsu+PmxXeGhrdSF9jCiQ==",
"dev": true,
"dependencies": {
"chokidar": ">=3.0.0 <4.0.0"
@@ -4170,9 +4263,10 @@
"integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ=="
},
"node_modules/typescript": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.2.tgz",
- "integrity": "sha512-zZ4hShnmnoVnAHpVHWpTcxdv7dWP60S2FsydQLV8V5PbS3FifjWFFRiHSWpDJahly88PRyV5teTSLoq4eG7mKw==",
+ "version": "4.3.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.3.tgz",
+ "integrity": "sha512-rUvLW0WtF7PF2b9yenwWUi9Da9euvDRhmH7BLyBG4DCFfOJ850LGNknmRpp8Z8kXNUPObdZQEfKOiHtXuQHHKA==",
+ "dev": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -4214,7 +4308,8 @@
"node_modules/vue": {
"version": "2.6.14",
"resolved": "https://registry.npmjs.org/vue/-/vue-2.6.14.tgz",
- "integrity": "sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ=="
+ "integrity": "sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ==",
+ "dev": true
},
"node_modules/vue-hot-reload-api": {
"version": "2.3.4",
@@ -4337,9 +4432,9 @@
}
},
"node_modules/webpack": {
- "version": "5.38.1",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.38.1.tgz",
- "integrity": "sha512-OqRmYD1OJbHZph6RUMD93GcCZy4Z4wC0ele4FXyYF0J6AxO1vOSuIlU1hkS/lDlR9CDYBz64MZRmdbdnFFoT2g==",
+ "version": "5.39.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.39.0.tgz",
+ "integrity": "sha512-25CHmuDj+oOTyteI13sUqNlCnjCnySuhiKWE/cRYPQYeoQ3ijHgyWX27CiyUKLNGq27v8S0mrksyTreT/xo7pg==",
"dev": true,
"dependencies": {
"@types/eslint-scope": "^3.7.0",
@@ -4592,9 +4687,9 @@
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
"node_modules/ws": {
- "version": "7.4.6",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
- "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==",
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.0.tgz",
+ "integrity": "sha512-6ezXvzOZupqKj4jUqbQ9tXuJNo+BR2gU8fFRk3XCP3e0G6WT414u5ELe6Y0vtp7kmSJ3F7YWObSNr1ESsgi4vw==",
"dev": true,
"engines": {
"node": ">=8.3.0"
@@ -4725,17 +4820,17 @@
"dev": true
},
"@babel/core": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.5.tgz",
- "integrity": "sha512-RN/AwP2DJmQTZSfiDaD+JQQ/J99KsIpOCfBE5pL+5jJSt7nI3nYGoAXZu+ffYSQ029NLs2DstZb+eR81uuARgg==",
+ "version": "7.14.6",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.6.tgz",
+ "integrity": "sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.14.5",
"@babel/generator": "^7.14.5",
"@babel/helper-compilation-targets": "^7.14.5",
"@babel/helper-module-transforms": "^7.14.5",
- "@babel/helpers": "^7.14.5",
- "@babel/parser": "^7.14.5",
+ "@babel/helpers": "^7.14.6",
+ "@babel/parser": "^7.14.6",
"@babel/template": "^7.14.5",
"@babel/traverse": "^7.14.5",
"@babel/types": "^7.14.5",
@@ -4901,9 +4996,9 @@
"dev": true
},
"@babel/helpers": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.5.tgz",
- "integrity": "sha512-xtcWOuN9VL6nApgVHtq3PPcQv5qFBJzoSZzJ/2c0QK/IP/gxVcoWSNQwFEGvmbQsuS9rhYqjILDGGXcTkA705Q==",
+ "version": "7.14.6",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.6.tgz",
+ "integrity": "sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA==",
"dev": true,
"requires": {
"@babel/template": "^7.14.5",
@@ -4975,9 +5070,9 @@
}
},
"@babel/parser": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.5.tgz",
- "integrity": "sha512-TM8C+xtH/9n1qzX+JNHi7AN2zHMTiPUtspO0ZdHflW8KaskkALhMmuMHb4bCmNdv9VAPzJX3/bXqkVLnAvsPfg==",
+ "version": "7.14.6",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.6.tgz",
+ "integrity": "sha512-oG0ej7efjEXxb4UgE+klVx+3j4MVo+A2vCzm7OUN4CLo6WhQ+vSOD2yJ8m7B+DghObxtLxt3EfgMWpq+AsWehQ==",
"dev": true
},
"@babel/template": {
@@ -5036,9 +5131,9 @@
"dev": true
},
"@nativescript/core": {
- "version": "8.0.7",
- "resolved": "https://registry.npmjs.org/@nativescript/core/-/core-8.0.7.tgz",
- "integrity": "sha512-2OLwPa5Y+9aKLyo0zWl0YSjWS0f+EFG8SdZe+uuU2mzEhCb8q9djdICjHynuXZkmrtQsx/lKjLhbtnoYQsMRvA==",
+ "version": "8.0.8",
+ "resolved": "https://registry.npmjs.org/@nativescript/core/-/core-8.0.8.tgz",
+ "integrity": "sha512-oeJIeHggLSXMBMwhIORW5WV3UyG4zu7M1G2VtG7Z6/Kd9JCUwglJTcP+1YPKt9emAPAz9bhGSCzMFpasNBPQzw==",
"requires": {
"@nativescript/hook": "~2.0.0",
"css-tree": "^1.1.2",
@@ -5227,26 +5322,99 @@
"dev": true
},
"@vue/component-compiler-utils": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.2.1.tgz",
- "integrity": "sha512-Mci9WJYLRjyJEBkGHMPxZ1ihJ9l6gOy2Gr6hpYZUNpQoe5+nbpeb3w00aP+PSHJygCF+fxJsqp7Af1zGDITzuw==",
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.2.2.tgz",
+ "integrity": "sha512-rAYMLmgMuqJFWAOb3Awjqqv5X3Q3hVr4jH/kgrFJpiU0j3a90tnNBplqbj+snzrgZhC9W128z+dtgMifOiMfJg==",
"dev": true,
"requires": {
"consolidate": "^0.15.1",
"hash-sum": "^1.0.2",
"lru-cache": "^4.1.2",
"merge-source-map": "^1.1.0",
+ "postcss": "^7.0.36",
"postcss-selector-parser": "^6.0.2",
"prettier": "^1.18.2",
"source-map": "~0.6.1",
"vue-template-es2015-compiler": "^1.9.0"
},
"dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "7.0.36",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz",
+ "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.2",
+ "source-map": "^0.6.1",
+ "supports-color": "^6.1.0"
+ }
+ },
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
+ },
+ "supports-color": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+ "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
}
}
},
@@ -5400,8 +5568,7 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.4.tgz",
"integrity": "sha512-cs3XLy+UcxiP6bj0A6u7MLLuwdXJ1c3Dtc0RkKg+wiI1g/Ti1om8+/2hc2A2B60NbBNAbMgyBMHvyymWm/j4wQ==",
- "dev": true,
- "requires": {}
+ "dev": true
},
"@webpack-cli/info": {
"version": "1.3.0",
@@ -5416,8 +5583,7 @@
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.5.1.tgz",
"integrity": "sha512-4vSVUiOPJLmr45S8rMGy7WDvpWxfFxfP/Qx/cxZFCfvoypTYpPPL1X8VIZMe0WTA+Jr7blUxwUSEZNkjoMTgSw==",
- "dev": true,
- "requires": {}
+ "dev": true
},
"@xtuc/ieee754": {
"version": "1.2.0",
@@ -5450,8 +5616,7 @@
"version": "0.2.7",
"resolved": "https://registry.npmjs.org/acorn-private-class-elements/-/acorn-private-class-elements-0.2.7.tgz",
"integrity": "sha512-+GZH2wOKNZOBI4OOPmzpo4cs6mW297sn6fgIk1dUI08jGjhAaEwvC39mN2gJAg2lmAQJ1rBkFqKWonL3Zz6PVA==",
- "dev": true,
- "requires": {}
+ "dev": true
},
"acorn-private-methods": {
"version": "0.3.3",
@@ -5504,8 +5669,7 @@
"version": "3.5.2",
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
"integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
- "dev": true,
- "requires": {}
+ "dev": true
},
"ansi-html": {
"version": "0.0.7",
@@ -5709,19 +5873,19 @@
}
},
"chokidar": {
- "version": "3.5.1",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz",
- "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==",
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz",
+ "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==",
"dev": true,
"requires": {
- "anymatch": "~3.1.1",
+ "anymatch": "~3.1.2",
"braces": "~3.0.2",
- "fsevents": "~2.3.1",
- "glob-parent": "~5.1.0",
+ "fsevents": "~2.3.2",
+ "glob-parent": "~5.1.2",
"is-binary-path": "~2.1.0",
"is-glob": "~4.0.1",
"normalize-path": "~3.0.0",
- "readdirp": "~3.5.0"
+ "readdirp": "~3.6.0"
},
"dependencies": {
"glob-parent": {
@@ -6425,9 +6589,9 @@
"dev": true
},
"globby": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz",
- "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==",
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz",
+ "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==",
"dev": true,
"requires": {
"array-union": "^2.1.0",
@@ -6502,8 +6666,7 @@
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz",
"integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==",
- "dev": true,
- "requires": {}
+ "dev": true
},
"ignore": {
"version": "5.1.8",
@@ -7141,9 +7304,9 @@
}
},
"postcss": {
- "version": "8.3.2",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.2.tgz",
- "integrity": "sha512-y1FK/AWdZlBF5lusS5j5l4/vF67+vQZt1SXPVJ32y1kRGDQyrs1zk32hG1cInRTu14P0V+orPz+ifwW/7rR4bg==",
+ "version": "8.3.5",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.5.tgz",
+ "integrity": "sha512-NxTuJocUhYGsMiMFHDUkmjSKT3EdH4/WbGF6GCi1NDGk+vbcUTun4fpbOqaPtD8IIsztA2ilZm2DhYCuyN58gA==",
"dev": true,
"requires": {
"colorette": "^1.2.2",
@@ -7216,8 +7379,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz",
"integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==",
- "dev": true,
- "requires": {}
+ "dev": true
},
"postcss-modules-local-by-default": {
"version": "4.0.0",
@@ -7343,9 +7505,9 @@
}
},
"readdirp": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
- "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==",
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
"dev": true,
"requires": {
"picomatch": "^2.2.1"
@@ -7437,9 +7599,9 @@
"dev": true
},
"sass": {
- "version": "1.34.1",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.34.1.tgz",
- "integrity": "sha512-scLA7EIZM+MmYlej6sdVr0HRbZX5caX5ofDT9asWnUJj21oqgsC+1LuNfm0eg+vM0fCTZHhwImTiCU0sx9h9CQ==",
+ "version": "1.35.1",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.35.1.tgz",
+ "integrity": "sha512-oCisuQJstxMcacOPmxLNiLlj4cUyN2+8xJnG7VanRoh2GOLr9RqkvI4AxA4a6LHVg/rsu+PmxXeGhrdSF9jCiQ==",
"dev": true,
"requires": {
"chokidar": ">=3.0.0 <4.0.0"
@@ -7804,9 +7966,10 @@
"integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ=="
},
"typescript": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.2.tgz",
- "integrity": "sha512-zZ4hShnmnoVnAHpVHWpTcxdv7dWP60S2FsydQLV8V5PbS3FifjWFFRiHSWpDJahly88PRyV5teTSLoq4eG7mKw=="
+ "version": "4.3.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.3.tgz",
+ "integrity": "sha512-rUvLW0WtF7PF2b9yenwWUi9Da9euvDRhmH7BLyBG4DCFfOJ850LGNknmRpp8Z8kXNUPObdZQEfKOiHtXuQHHKA==",
+ "dev": true
},
"universalify": {
"version": "2.0.0",
@@ -7838,7 +8001,8 @@
"vue": {
"version": "2.6.14",
"resolved": "https://registry.npmjs.org/vue/-/vue-2.6.14.tgz",
- "integrity": "sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ=="
+ "integrity": "sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ==",
+ "dev": true
},
"vue-hot-reload-api": {
"version": "2.3.4",
@@ -7922,8 +8086,7 @@
"vuex": {
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/vuex/-/vuex-3.6.2.tgz",
- "integrity": "sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw==",
- "requires": {}
+ "integrity": "sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw=="
},
"watchpack": {
"version": "2.2.0",
@@ -7936,9 +8099,9 @@
}
},
"webpack": {
- "version": "5.38.1",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.38.1.tgz",
- "integrity": "sha512-OqRmYD1OJbHZph6RUMD93GcCZy4Z4wC0ele4FXyYF0J6AxO1vOSuIlU1hkS/lDlR9CDYBz64MZRmdbdnFFoT2g==",
+ "version": "5.39.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.39.0.tgz",
+ "integrity": "sha512-25CHmuDj+oOTyteI13sUqNlCnjCnySuhiKWE/cRYPQYeoQ3ijHgyWX27CiyUKLNGq27v8S0mrksyTreT/xo7pg==",
"dev": true,
"requires": {
"@types/eslint-scope": "^3.7.0",
@@ -8115,11 +8278,10 @@
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
"ws": {
- "version": "7.4.6",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
- "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==",
- "dev": true,
- "requires": {}
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.0.tgz",
+ "integrity": "sha512-6ezXvzOZupqKj4jUqbQ9tXuJNo+BR2gU8fFRk3XCP3e0G6WT414u5ELe6Y0vtp7kmSJ3F7YWObSNr1ESsgi4vw==",
+ "dev": true
},
"xmlbuilder": {
"version": "9.0.7",
diff --git a/package.json b/package.json
index 6321d245..3bc66ac7 100644
--- a/package.json
+++ b/package.json
@@ -20,7 +20,7 @@
"dependencies": {
"@akylas/nativescript-sqlite": "^3.3.12",
"@nativescript-community/ui-collectionview": "^4.0.32",
- "@nativescript/core": "^8.0.7",
+ "@nativescript/core": "^8.0.8",
"@nativescript/localize": "^5.0.4",
"@triniwiz/nativescript-accelerometer": "^4.0.3",
"nativescript-imagecropper": "^4.0.1",
@@ -34,7 +34,7 @@
"@nativescript/webpack": "^5.0.0-beta.14",
"@types/node": "^15.12.2",
"nativescript-vue-template-compiler": "~2.9.0",
- "sass": "^1.34.1",
+ "sass": "^1.35.1",
"typescript": "^4.2.4",
"vue": "^2.6.13"
}
diff --git a/translations/store-listing/hi/title.txt b/translations/store-listing/hi/title.txt
new file mode 100644
index 00000000..d309baf5
--- /dev/null
+++ b/translations/store-listing/hi/title.txt
@@ -0,0 +1 @@
+EnRecipes
diff --git a/translations/store-listing/nb-NO/title.txt b/translations/store-listing/nb-NO/title.txt
new file mode 100644
index 00000000..d309baf5
--- /dev/null
+++ b/translations/store-listing/nb-NO/title.txt
@@ -0,0 +1 @@
+EnRecipes
From ffb069d20fd8c5c45ab21f46e54fd3f75581b056 Mon Sep 17 00:00:00 2001
From: vishnuraghavb
Date: Fri, 18 Jun 2021 21:52:03 +0530
Subject: [PATCH 03/10] cleaned store
---
app/store.ts | 543 +++++++++++++++++++++++++++++----------------------
1 file changed, 312 insertions(+), 231 deletions(-)
diff --git a/app/store.ts b/app/store.ts
index 517a74b6..2d25ed0e 100644
--- a/app/store.ts
+++ b/app/store.ts
@@ -169,6 +169,44 @@ const listItems = {
},
}
+interface IRecipe {
+ id: string
+ image: string
+ title: string
+ cuisine: string
+ category: string
+ tags: string[]
+ prepTime: string
+ cookTime: string
+ yieldQuantity: number
+ yieldUnit: string
+ difficulty: string
+ rating: number
+ ingredients: string[]
+ instructions: string[]
+ combinations: string[]
+ notes: string[]
+ favorite: 0 | 1
+ tried: 0 | 1
+ lastTried: number | null
+ lastModified: number | null
+ created: number | null
+}
+interface IMealPlan {
+ id: string
+ date: number
+ mealType: string
+ recipeID: string
+ quantity: number
+ note: string
+}
+interface IMealPlanOld {
+ title: string
+ startDate: number
+ type: string
+ eventColor: string
+}
+
export default new Vuex.Store({
state: {
recipes: [],
@@ -249,8 +287,8 @@ export default new Vuex.Store({
awake: '\ue944',
edge: '\ue945',
},
- sortType: 'random',
- language: [
+ sortT: 'random', // SortType
+ langs: [
{
locale: 'ar',
title: 'العربية',
@@ -345,70 +383,80 @@ export default new Vuex.Store({
title: 'తెలుగు',
},
],
- shake: getNumber('shake', 1),
- importSummary: {
+ shake: getNumber('shake', 1), // ShakeViewRandomRecipe
+ impSum: {
+ // ImportSummary
found: 0,
imported: 0,
updated: 0,
},
layout: getString('layout', 'detailed'),
- selCuisine: null,
- selCategory: null,
- selTag: null,
+ selCuisine: null, // SelectedCuisine
+ selCategory: null, // SelectedCategory
+ selTag: null, // SelectedTag
theme: 'sysDef',
- mondayFirst: getNumber('mondayFirst', 0),
- timerDelay: getNumber('timerDelay', 1),
- timerSound: {},
- timerVibrate: getNumber('timerVibrate', 0),
- timerPresets: [],
- activeTimers: [],
- FGService: 0,
+ startMon: getNumber('startMon', 0), // StartWithMonday
+ timerD: getNumber('timerD', 1), // TimerDelay
+ timerS: {}, // TimerSound
+ timerV: getNumber('timerV', 0), // TimerVibrate
+ timerPs: [], // TimerPresets
+ activeTs: [], // ActiveTimers
+ FGS: 0, // ForeGroundService
RTL: getNumber('RTL', 0),
- plannerView: getString('plannerView', 'wk'),
- planDeletion: getString('planDeletion', 'nvr'),
- edgeSwipe: getNumber('edgeSwipe', 1),
- awakeViewer: getNumber('awakeViewer', 1),
+ plannerV: getString('plannerV', 'wk'), // PlannerViewMode
+ planDel: getString('planDel', 'nvr'), // PlanDeletionCriteria
+ edgeS: getNumber('edgeS', 1), // EdgeSwipe
+ awakeV: getNumber('awakeV', 1), // AwakeViewer
},
mutations: {
- toggleAwakeViewer(state) {
- state.awakeViewer = +!state.awakeViewer
- setNumber('awakeViewer', state.awakeViewer)
+ // ToggleKeepAwakeOnRecipeViewer
+ toggleAwakeV(state) {
+ state.awakeV = +!state.awakeV
+ setNumber('awakeV', state.awakeV)
},
- toggleEdgeSwipe(state) {
- state.edgeSwipe = +!state.edgeSwipe
- setNumber('edgeSwipe', state.edgeSwipe)
+ // ToggleEdgeSwipe
+ toggleEdgeS(state) {
+ state.edgeS = +!state.edgeS
+ setNumber('edgeS', state.edgeS)
},
- setPlanDeletion(state, s) {
- state.planDeletion = s
- setString('planDeletion', s)
+ // SetPlanDeletionCriteria
+ setPlanDel(state, s: string) {
+ state.planDel = s
+ setString('planDel', s)
},
- setPlannerView(state, s) {
- state.plannerView = s
- setString('plannerView', s)
+ // SetPlannerViewMode
+ setPlannerV(state, s: string) {
+ state.plannerV = s
+ setString('plannerV', s)
},
+ // SetRTLLayout
setRTL(state) {
state.RTL = getNumber('RTL', 0)
},
- setFGService(state, val) {
- state.FGService = val
+ // SetForegroundService
+ setFgS(state, n: number) {
+ state.FGS = n
},
- addTimerPreset(state, timer) {
- let i = state.timerPresets.findIndex((e) => e.id == timer.id)
- if (state.timerPresets.some((e) => e.id == timer.id)) {
- state.timerPresets.splice(i, 1, timer)
- } else state.timerPresets.push(timer)
+ // AddTimerPreset
+ addTP(state, o) {
+ let i = state.timerPs.findIndex((e) => e.id == o.id)
+ if (state.timerPs.some((e) => e.id == o.id)) {
+ state.timerPs.splice(i, 1, o)
+ } else state.timerPs.push(o)
db.execute(
`REPLACE INTO timerPresets (id, label, time) VALUES (?, ?, ?)`,
- [timer.id, timer.label, timer.time]
+ [o.id, o.label, o.time]
)
},
- deleteTimerPreset(state, i) {
- let id = state.timerPresets[i]
- state.timerPresets.splice(i, 1)
+ // DeleteTimerPreset
+ deleteTP(state, n: number) {
+ let id = state.timerPs[n]
+ state.timerPs.splice(n, 1)
db.execute(`DELETE FROM timerPresets WHERE id = ${id}`)
},
- initTimerPresets(state) {
- if (!state.timerPresets.length)
+ // InitialiseTimerPreset
+ initTPs(state) {
+ if (!state.timerPs.length)
db.select(`SELECT * FROM timerPresets`).then((res) => {
res.forEach((t) => {
t.recipeID = 0
@@ -416,66 +464,78 @@ export default new Vuex.Store({
t.isPaused = 0
t.preset = 1
t.done = 0
- state.timerPresets.push(t)
+ state.timerPs.push(t)
})
})
},
- importTimerPresets(state, timers) {
- let newPresets = timers.filter(
- (e) => !state.timerPresets.some((f) => f.id === e.id)
+ // ImportTimerPresets
+ importTPs(state, ao) {
+ let newPresets = ao.filter(
+ (e) => !state.timerPs.some((f) => f.id === e.id)
)
newPresets.forEach((t) => {
db.execute(
`INSERT INTO timerPresets (id, label, time) VALUES (?, ?, ?)`,
[t.id, t.label, t.time]
)
- state.timerPresets.push(t)
+ state.timerPs.push(t)
})
},
- clearTimerInterval(state) {
- state.activeTimers.forEach((e) => {
+ // ClearActiveTimerInterval
+ clearATIs(state) {
+ state.activeTs.forEach((e) => {
clearInterval(e.timerInt)
e.timerInt = 0
})
},
- addActiveTimer(state, { timer, i }) {
- state.activeTimers.splice(i, 0, timer)
+ // AddActiveTimer
+ addAT(state, { timer, i }) {
+ state.activeTs.splice(i, 0, timer)
},
- sortActiveTimers(state) {
- let a = state.activeTimers.reduce((acc, e) => {
+ // SortActiveTimers
+ sortATs(state) {
+ let a = state.activeTs.reduce((acc, e) => {
;(acc[e.recipeID] = acc[e.recipeID] || []).push(e)
return acc
}, {})
- state.activeTimers = [...(Object).values(a).flat(2)]
+ state.activeTs = [...(Object).values(a).flat(2)]
},
- updateActiveTimer(state, timer) {
- let i = state.activeTimers.findIndex((e) => e.id == timer.id)
- state.activeTimers.splice(i, 1, timer)
+ // UpdateActiveTimer
+ updateAT(state, o) {
+ let i = state.activeTs.findIndex((e) => e.id == o.id)
+ state.activeTs.splice(i, 1, o)
},
- removeActiveTimer(state, i) {
- state.activeTimers.splice(i, 1)
+ // RemoveActiveTimer
+ removeAT(state, n: number) {
+ state.activeTs.splice(n, 1)
},
- setTimerDelay(state, n: number) {
- state.timerDelay = n
- setNumber('timerDelay', n)
+ // SetTimerDelay
+ setTD(state, n: number) {
+ state.timerD = n
+ setNumber('timerD', n)
},
- setTimerSound(state, sound) {
- state.timerSound = sound
- setString('timerSound', JSON.stringify(sound))
+ // SetTimerSound
+ setTS(state, s: string) {
+ state.timerS = s
+ setString('timerS', JSON.stringify(s))
},
- setTimerVibrate(state, n) {
- state.timerVibrate = n
- setNumber('timerVibrate', n)
+ // SetTimerVibrate
+ setTV(state, n: number) {
+ state.timerV = n
+ setNumber('timerV', n)
},
- clearImportSummary(state) {
- for (const key in state.importSummary) state.importSummary[key] = 0
+ // ClearImportSummary
+ clearIS(state) {
+ for (const key in state.impSum) state.impSum[key] = 0
},
- setFirstDay(state, n) {
- state.mondayFirst = n
- setNumber('mondayFirst', n)
+ // SetFirstDayMonday
+ setFD(state, n: number) {
+ state.startMon = n
+ setNumber('startMon', n)
},
- setTheme(state, theme) {
- switch (theme) {
+ // SetTheme
+ setT(state, s: string) {
+ switch (s) {
case 'sysDef':
state.theme =
Application.systemAppearance() == 'dark' ? 'Dark' : 'Light'
@@ -485,22 +545,26 @@ export default new Vuex.Store({
Application.systemAppearance() == 'dark' ? 'Black' : 'Light'
break
default:
- state.theme = theme
+ state.theme = s
break
}
- setString('theme', theme)
+ setString('theme', s)
},
- clearFilter(state) {
+ // ClearFilter
+ clearF(state) {
state.selCuisine = state.selCategory = state.selTag = null
},
- setLayout(state, type) {
- state.layout = type
- setString('layout', type)
+ // SetLayout
+ setL(state, s: string) {
+ state.layout = s
+ setString('layout', s)
},
- setSortType(state, sortType) {
- state.sortType = sortType
+ // SetSortType
+ setST(state, s: string) {
+ state.sortT = s
},
- initRecipes(state) {
+ // InitialiseRecipes
+ initRs(state) {
if (!state.recipes.length) {
db.select('SELECT * FROM recipes').then((res) => {
res.forEach((e) => {
@@ -514,9 +578,10 @@ export default new Vuex.Store({
})
}
state.shake = getNumber('shake', 1)
- state.sortType = getString('sortType', 'random')
+ state.sortT = getString('sortT', 'random')
},
- importRecipesFromJSON(state, recipes) {
+ // ImportRecipesFromJSON
+ importRsJSON(state, ao) {
let localRecipesIDs, partition
let imported = 0
let updated = 0
@@ -628,7 +693,7 @@ export default new Vuex.Store({
}
if (state.recipes.length) {
localRecipesIDs = state.recipes.map((e) => e.id)
- partition = recipes.reduce(
+ partition = ao.reduce(
(result, recipe) => {
localRecipesIDs.indexOf(recipe.id) < 0
? result[0].push(recipe) // create candidates
@@ -640,13 +705,14 @@ export default new Vuex.Store({
if (partition[0].length) createDocuments(partition[0])
if (partition[1].length) updateDocuments(partition[1])
} else {
- createDocuments(recipes)
+ createDocuments(ao)
}
- state.importSummary.found = recipes.length
- state.importSummary.imported = imported
- state.importSummary.updated = updated
+ state.impSum.found = ao.length
+ state.impSum.imported = imported
+ state.impSum.updated = updated
},
- importRecipesFromDB(state, recipes) {
+ // ImportRecipesFromDB
+ importRsDB(state, ao) {
let localRecipesIDs: string[], partition: any[]
let imported = 0
let updated = 0
@@ -699,7 +765,7 @@ export default new Vuex.Store({
}
if (state.recipes.length) {
localRecipesIDs = state.recipes.map((e) => e.id)
- partition = recipes.reduce(
+ partition = ao.reduce(
(result, recipe) => {
localRecipesIDs.indexOf(recipe.id) < 0
? result[0].push(recipe) // create candidates
@@ -710,20 +776,21 @@ export default new Vuex.Store({
)
if (partition[0].length) createDocuments(partition[0])
if (partition[1].length) updateDocuments(partition[1])
- } else createDocuments(recipes)
- state.importSummary.found = recipes.length
- state.importSummary.imported = imported
- state.importSummary.updated = updated
+ } else createDocuments(ao)
+ state.impSum.found = ao.length
+ state.impSum.imported = imported
+ state.impSum.updated = updated
},
- addRecipe(state, recipe) {
- let r = JSON.parse(JSON.stringify(recipe))
- Object.keys(recipe).forEach((e) => {
+ // AddRecipe
+ addR(state, o: IRecipe) {
+ let r = JSON.parse(JSON.stringify(o))
+ Object.keys(o).forEach((e) => {
if (e.match(/tags|ingredients|instructions|combinations|notes/))
r[e] = JSON.stringify(r[e])
if (e.match(/favorite|tried/)) r[e] = r[e] ? 1 : 0
})
- const cols = Object.keys(recipe).join(', ')
- const placeholder = Object.keys(recipe)
+ const cols = Object.keys(o).join(', ')
+ const placeholder = Object.keys(o)
.fill('?')
.join(', ')
db.execute(
@@ -732,18 +799,19 @@ export default new Vuex.Store({
)
let i: number
function exist({ id }, index: number) {
- if (id === recipe.id) {
+ if (id === o.id) {
i = index
return 1
}
return 0
}
state.recipes.some(exist)
- ? Object.assign(state.recipes[i], recipe)
- : state.recipes.push(recipe)
+ ? Object.assign(state.recipes[i], o)
+ : state.recipes.push(o)
},
- deleteRecipes(state, ids) {
- ids.forEach((id: string) => {
+ // DeleteRecipes
+ deleteRs(state, a) {
+ a.forEach((id: string) => {
let i = state.recipes.findIndex((e) => e.id === id)
getFileAccess().deleteFile(state.recipes[i].image)
state.recipes.splice(i, 1)
@@ -760,7 +828,8 @@ export default new Vuex.Store({
})
})
},
- initListItems(state) {
+ // InitialiseListItems
+ initLIs(state) {
if (!state.cuisines.length) {
db.select(`SELECT * FROM lists`).then((res) => {
if (!res.length) {
@@ -788,14 +857,16 @@ export default new Vuex.Store({
})
}
},
- importListItems(state, { data, listName }) {
+ // ImportListItems
+ importLIs(state, { data, listName }) {
state[listName] = [...new Set([...state[listName], ...data])]
if (listItems[listName].sort) state[listName].sort()
db.execute(
`UPDATE lists SET ${listName} = '${JSON.stringify(state[listName])}'`
)
},
- addListItem(state, { item, listName }) {
+ // AddListItem
+ addLI(state, { item, listName }) {
let lowercase = state[listName].map((e: string) => e.toLowerCase())
if (lowercase.indexOf(item.toLowerCase()) == -1) {
state[listName].push(item)
@@ -808,13 +879,15 @@ export default new Vuex.Store({
)
}
},
- removeListItem(state, { item, listName }) {
+ // RemoveListItem
+ removeLI(state, { item, listName }) {
state[listName].splice(state[listName].indexOf(item), 1)
db.execute(
`UPDATE lists SET ${listName} = '${JSON.stringify(state[listName])}'`
)
},
- resetListItems(state, listName) {
+ // ResetListItems
+ resetLIs(state, listName) {
let defs = listItems[listName].defs
state[listName] = [...defs]
if (listItems[listName].sort)
@@ -825,9 +898,10 @@ export default new Vuex.Store({
`UPDATE lists SET ${listName} = '${JSON.stringify(state[listName])}'`
)
},
- initMealPlans(state) {
+ // InitialiseMealPlans
+ initMPs(state) {
if (!state.mealPlans.length) {
- let c = state.planDeletion
+ let c = state.planDel
let date = new Date()
let d = new Date()
d.setHours(0, 0, 0, 0)
@@ -848,9 +922,10 @@ export default new Vuex.Store({
)
}
},
- importMealPlansFromJSON(state, mealPlans) {
+ // ImportMealPlansFromJSON
+ importMPsJSON(state, ao) {
let updatedMealPlans = []
- let newMealPlans = mealPlans.filter((e) => {
+ let newMealPlans = ao.filter((e) => {
if (e.hasOwnProperty('eventColor')) {
return !state.mealPlans.some((f) => {
let d = new Date(e.startDate)
@@ -930,8 +1005,9 @@ export default new Vuex.Store({
)
})
},
- importMealPlansFromDB(state, mealPlans) {
- let newMealPlans = mealPlans.filter(
+ // ImportMealPlansFromDB
+ importMPsDB(state, ao: IMealPlan[]) {
+ let newMealPlans = ao.filter(
(e) =>
!state.mealPlans.some((f) =>
Object.keys(f).every((key) => f[key] == e[key])
@@ -945,7 +1021,11 @@ export default new Vuex.Store({
)
})
},
- addMealPlan(state, { plan, index, inDB }) {
+ // AddMealPlan
+ addMP(
+ state,
+ { plan, index, inDB }: { plan: IMealPlan; index: number; inDB: number }
+ ) {
let mealPlan = {
id: plan.id,
date: plan.date,
@@ -968,7 +1048,11 @@ export default new Vuex.Store({
state.mealPlans.splice(index, 0, mealPlan)
}
},
- deleteMealPlan(state, { id, index, inDB }) {
+ // DeleteMealPlan
+ deleteMP(
+ state,
+ { id, index, inDB }: { id: string; index: number; inDB: number }
+ ) {
if (inDB) {
db.execute(`DELETE FROM mealPlans WHERE id = '${id}'`)
} else {
@@ -989,9 +1073,10 @@ export default new Vuex.Store({
)
}
},
- unSyncCombinations(state, { id, combinations }) {
+ // UnLinkCombinations
+ unLinkCs(state, { id, a }) {
state.recipes.forEach((e, i) => {
- if (combinations.includes(e.id)) {
+ if (a.includes(e.id)) {
state.recipes[i].combinations.splice(e.combinations.indexOf(id), 1)
db.execute(
`UPDATE recipes SET combinations = '${JSON.stringify(
@@ -1001,20 +1086,19 @@ export default new Vuex.Store({
}
})
},
- setShake(state, n) {
+ // SetShake
+ setS(state, n: number) {
state.shake = n
setNumber('shake', n)
},
- setRating(state, { id, rating }) {
+ // SetRating
+ setR(state, { id, rating }) {
let i = state.recipes.findIndex((e) => e.id == id)
state.recipes[i].rating = rating
db.execute(`UPDATE recipes SET rating = ${rating} WHERE id = '${id}'`)
},
- toggleCart(state, { id }) {
- let i = state.recipes.indexOf(state.recipes.filter((e) => e.id === id)[0])
- state.recipes[i].inBag = !state.recipes[i].inBag
- },
- unlinkBrokenImages(state) {
+ // UnLinkBrokenImages
+ unLinkBIs(state) {
state.recipes.forEach((r, i) => {
if (r.image && !File.exists(r.image)) {
r.image = null
@@ -1023,160 +1107,157 @@ export default new Vuex.Store({
}
})
},
- setCuisine(state, value) {
- state.selCuisine = value
+ setCuisine(state, s: string) {
+ state.selCuisine = s
},
- setCategory(state, value) {
- state.selCategory = value
+ setCategory(state, s: string) {
+ state.selCategory = s
},
- setTag(state, value) {
- state.selTag = value
+ setTag(state, s: string) {
+ state.selTag = s
},
},
actions: {
- toggleAwakeViewer({ commit }) {
- commit('toggleAwakeViewer')
+ toggleAwakeV({ commit }) {
+ commit('toggleAwakeV')
},
- toggleEdgeSwipe({ commit }) {
- commit('toggleEdgeSwipe')
+ toggleEdgeS({ commit }) {
+ commit('toggleEdgeS')
},
- setPlanDeletion({ commit }, s) {
- commit('setPlanDeletion', s)
+ setPlanDel({ commit }, s: string) {
+ commit('setPlanDel', s)
},
- setPlannerView({ commit }, s) {
- commit('setPlannerView', s)
+ setPlannerV({ commit }, s: string) {
+ commit('setPlannerV', s)
},
setRTL({ commit }) {
commit('setRTL')
},
- sortActiveTimers({ commit }) {
- commit('sortActiveTimers')
+ sortATs({ commit }) {
+ commit('sortATs')
},
- setFGService({ commit }, val) {
- commit('setFGService', val)
+ setFgS({ commit }, n: number) {
+ commit('setFgS', n)
},
- addTimerPreset({ commit }, timer) {
- commit('addTimerPreset', timer)
+ addTP({ commit }, o) {
+ commit('addTP', o)
},
- deleteTimerPreset({ commit }, timer) {
- commit('deleteTimerPreset', timer)
+ deleteTP({ commit }, o) {
+ commit('deleteTP', o)
},
- initTimerPresets({ commit }) {
- commit('initTimerPresets')
+ initTPs({ commit }) {
+ commit('initTPs')
},
- importTimerPresets({ commit }, timers) {
- commit('importTimerPresets', timers)
+ importTPs({ commit }, ao) {
+ commit('importTPs', ao)
},
- clearTimerInterval({ commit }) {
- commit('clearTimerInterval')
+ clearATIs({ commit }) {
+ commit('clearATIs')
},
- addActiveTimer({ commit }, timer) {
- commit('addActiveTimer', timer)
+ addAT({ commit }, o) {
+ commit('addAT', o)
},
- updateActiveTimer({ commit }, timer) {
- commit('updateActiveTimer', timer)
+ updateAT({ commit }, o) {
+ commit('updateAT', o)
},
- removeActiveTimer({ commit }, i) {
- commit('removeActiveTimer', i)
+ removeAT({ commit }, n: number) {
+ commit('removeAT', n)
},
- setTimerDelay({ commit }, n) {
- commit('setTimerDelay', n)
+ setTD({ commit }, n: number) {
+ commit('setTD', n)
},
- setTimerSound({ commit }, sound) {
- commit('setTimerSound', sound)
+ setTS({ commit }, s: string) {
+ commit('setTS', s)
},
- setTimerVibrate({ commit }, n) {
- commit('setTimerVibrate', n)
+ setTV({ commit }, n: number) {
+ commit('setTV', n)
},
- clearImportSummary({ commit }) {
- commit('clearImportSummary')
+ clearIS({ commit }) {
+ commit('clearIS')
},
- setFirstDay({ commit }, n) {
- commit('setFirstDay', n)
+ setFD({ commit }, n: number) {
+ commit('setFD', n)
},
- setTheme({ commit }, theme) {
- commit('setTheme', theme)
+ setT({ commit }, s: string) {
+ commit('setT', s)
},
- clearFilter({ commit }) {
- commit('clearFilter')
+ clearF({ commit }) {
+ commit('clearF')
},
- setLayout({ commit }, type) {
- commit('setLayout', type)
+ setL({ commit }, s: string) {
+ commit('setL', s)
},
- setSortType({ commit }, sortType) {
- commit('setSortType', sortType)
+ setST({ commit }, s: string) {
+ commit('setST', s)
},
- initRecipes({ commit }) {
- commit('initRecipes')
+ initRs({ commit }) {
+ commit('initRs')
},
- importRecipesFromJSON({ commit }, recipes) {
- commit('importRecipesFromJSON', recipes)
+ importRsJSON({ commit }, ao) {
+ commit('importRsJSON', ao)
},
- importRecipesFromDB({ commit }, recipes) {
- commit('importRecipesFromDB', recipes)
+ importRsDB({ commit }, ao) {
+ commit('importRsDB', ao)
},
- addRecipeAction({ commit }, recipe) {
- commit('addRecipe', recipe)
+ addR({ commit }, o) {
+ commit('addR', o)
},
- deleteRecipes({ commit }, ids) {
- commit('deleteRecipes', ids)
+ deleteRs({ commit }, a) {
+ commit('deleteRs', a)
},
- initListItems({ commit }) {
- commit('initListItems')
+ initLIs({ commit }) {
+ commit('initLIs')
},
- importListItems({ commit }, data) {
- commit('importListItems', data)
+ importLIs({ commit }, ao) {
+ commit('importLIs', ao)
},
- addListItemAction({ commit }, item) {
- commit('addListItem', item)
+ addLI({ commit }, s: string) {
+ commit('addLI', s)
},
- removeListItemAction({ commit }, item) {
- commit('removeListItem', item)
+ removeLI({ commit }, s: string) {
+ commit('removeLI', s)
},
- resetListItemsAction({ commit }, listName) {
- commit('resetListItems', listName)
+ resetLIs({ commit }, s: string) {
+ commit('resetLIs', s)
},
- initMealPlans({ commit }) {
- commit('initMealPlans')
+ initMPs({ commit }) {
+ commit('initMPs')
},
- importMealPlansFromJSON({ commit }, mealPlans) {
- commit('importMealPlansFromJSON', mealPlans)
+ importMPsJSON({ commit }, ao) {
+ commit('importMPsJSON', ao)
},
- importMealPlansFromDB({ commit }, mealPlans) {
- commit('importMealPlansFromDB', mealPlans)
+ importMPsDB({ commit }, ao) {
+ commit('importMPsDB', ao)
},
- addMealPlanAction({ commit }, mealPlan) {
- commit('addMealPlan', mealPlan)
+ addMP({ commit }, o) {
+ commit('addMP', o)
},
- deleteMealPlanAction({ commit }, mealPlan) {
- commit('deleteMealPlan', mealPlan)
+ deleteMP({ commit }, o) {
+ commit('deleteMP', o)
},
- toggleStateAction({ commit }, toggledRecipe) {
- commit('toggleState', toggledRecipe)
+ toggleState({ commit }, o) {
+ commit('toggleState', o)
},
- unSyncCombinationsAction({ commit }, combinations) {
- commit('unSyncCombinations', combinations)
+ unLinkCs({ commit }, a) {
+ commit('unLinkCs', a)
},
- setShake({ commit }, n) {
- commit('setShake', n)
+ setS({ commit }, n: number) {
+ commit('setS', n)
},
- setRatingAction({ commit }, rating) {
- commit('setRating', rating)
+ setR({ commit }, n: number) {
+ commit('setR', n)
},
- toggleCartAction({ commit }, recipe) {
- commit('toggleCart', recipe)
+ unLinkBIs({ commit }) {
+ commit('unLinkBIs')
},
- unlinkBrokenImages({ commit }) {
- commit('unlinkBrokenImages')
+ setCuisine({ commit }, s: string) {
+ commit('setCuisine', s)
},
- setCuisine({ commit }, value) {
- commit('setCuisine', value)
+ setCategory({ commit }, s: string) {
+ commit('setCategory', s)
},
- setCategory({ commit }, value) {
- commit('setCategory', value)
- },
- setTag({ commit }, value) {
- commit('setTag', value)
+ setTag({ commit }, s: string) {
+ commit('setTag', s)
},
},
})
From 395a242d4482532046f97527e2d8a4d09e63d5c1 Mon Sep 17 00:00:00 2001
From: vishnuraghavb
Date: Fri, 18 Jun 2021 21:52:24 +0530
Subject: [PATCH 04/10] updated fgservice location
---
app/ForegroundService.js | 37 -------------------------------------
webpack.config.js | 2 +-
2 files changed, 1 insertion(+), 38 deletions(-)
delete mode 100644 app/ForegroundService.js
diff --git a/app/ForegroundService.js b/app/ForegroundService.js
deleted file mode 100644
index 5a9e4b64..00000000
--- a/app/ForegroundService.js
+++ /dev/null
@@ -1,37 +0,0 @@
-import { TimerNotif } from './shared/utils'
-const superProto = android.app.Service.prototype
-
-android.app.Service.extend('com.tns.ForegroundService', {
- onStartCommand: function(intent, flags, startId) {
- superProto.onStartCommand.call(this, intent, flags, startId)
- return android.app.Service.START_STICKY
- },
- onCreate: function() {
- superProto.onCreate.call(this)
- this.startForeground(6, this.getNotification())
- },
- onBind: function(intent) {
- return superProto.onBind.call(this, intent)
- },
- onUnbind: function(intent) {
- return superProto.onUnbind.call(this, intent)
- },
- onDestroy: function() {
- this.stopForeground(true)
- },
- getNotification: function() {
- return TimerNotif.getNotification(
- {
- bID: 'info',
- cID: 'cti',
- cName: 'Cooking Timer info',
- description: `0 ongoing, 0 paused`,
- nID: 6,
- priority: -2,
- sound: null,
- title: 'EnRecipes is running',
- },
- this.getApplicationContext()
- )
- },
-})
diff --git a/webpack.config.js b/webpack.config.js
index bc678552..9ed0f21b 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -9,7 +9,7 @@ module.exports = (env) => {
const appComponents = [
'@nativescript/core/ui/frame',
'@nativescript/core/ui/frame/activity',
- path.resolve(__dirname, 'app/ForegroundService.js'),
+ path.resolve(__dirname, 'app/services/ForegroundService.js'),
]
appComponents.map((component) => {
config.entry('bundle').add(component)
From 926914e3c4f9ab132530c455537eb3e48c4a3068 Mon Sep 17 00:00:00 2001
From: vishnuraghavb
Date: Fri, 18 Jun 2021 21:52:36 +0530
Subject: [PATCH 05/10] updated fgservice location
---
app/services/ForegroundService.js | 37 +++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
create mode 100644 app/services/ForegroundService.js
diff --git a/app/services/ForegroundService.js b/app/services/ForegroundService.js
new file mode 100644
index 00000000..800bf5c7
--- /dev/null
+++ b/app/services/ForegroundService.js
@@ -0,0 +1,37 @@
+import { TimerNotif } from '../shared/utils'
+const superProto = android.app.Service.prototype
+
+android.app.Service.extend('com.tns.ForegroundService', {
+ onStartCommand: function(intent, flags, startId) {
+ superProto.onStartCommand.call(this, intent, flags, startId)
+ return android.app.Service.START_STICKY
+ },
+ onCreate: function() {
+ superProto.onCreate.call(this)
+ this.startForeground(6, this.getNotification())
+ },
+ onBind: function(intent) {
+ return superProto.onBind.call(this, intent)
+ },
+ onUnbind: function(intent) {
+ return superProto.onUnbind.call(this, intent)
+ },
+ onDestroy: function() {
+ this.stopForeground(true)
+ },
+ getNotification: function() {
+ return TimerNotif.getNotification(
+ {
+ bID: 'info',
+ cID: 'cti',
+ cName: 'Cooking Timer info',
+ description: `0 ongoing, 0 paused`,
+ nID: 6,
+ priority: -2,
+ sound: null,
+ title: 'EnRecipes is running',
+ },
+ this.getApplicationContext()
+ )
+ },
+})
From 460c5a5cbe1ffa9c50955a926d0f65a04ba370e0 Mon Sep 17 00:00:00 2001
From: vishnuraghavb
Date: Fri, 18 Jun 2021 21:52:54 +0530
Subject: [PATCH 06/10] cleaning utils
---
app/shared/utils.ts | 110 ++++++++++++++++----------------------------
1 file changed, 39 insertions(+), 71 deletions(-)
diff --git a/app/shared/utils.ts b/app/shared/utils.ts
index 7d8bff9f..01364e1c 100644
--- a/app/shared/utils.ts
+++ b/app/shared/utils.ts
@@ -15,48 +15,13 @@ declare const global, android, androidx, com, java, Array: any
const View = android.view.View
const PowerManager = android.os.PowerManager
-const pm = Utils.android
- .getApplicationContext()
- .getSystemService(android.content.Context.POWER_SERVICE)
+const ctx = Utils.android.getApplicationContext()
+const pm = ctx.getSystemService(android.content.Context.POWER_SERVICE)
const wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, 'Timers')
-
const sdkv = parseInt(Device.sdkVersion)
-export function restartApp() {
- const ctx = Utils.ad.getApplicationContext()
- let mStartActivity = new android.content.Intent(
- ctx,
- Application.android.startActivity.getClass()
- )
- let mPendingIntentId = Math.random() * 100000
- let mPendingIntent = android.app.PendingIntent.getActivity(
- ctx,
- mPendingIntentId,
- mStartActivity,
- android.app.PendingIntent.FLAG_CANCEL_CURRENT
- )
- let mgr = ctx.getSystemService(android.content.Context.ALARM_SERVICE)
- mgr.set(
- android.app.AlarmManager.RTC,
- java.lang.System.currentTimeMillis() + 100,
- mPendingIntent
- )
- android.os.Process.killProcess(android.os.Process.myPid())
-}
-export function openAppSettingsPage() {
- let intent = new android.content.Intent(
- android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS
- )
- intent.addCategory(android.content.Intent.CATEGORY_DEFAULT)
- intent.setData(
- android.net.Uri.parse(
- 'package:' + Application.android.context.getPackageName()
- )
- )
- Application.android.foregroundActivity.startActivity(intent)
-}
export function hasAccelerometer() {
- let ctx = Utils.ad.getApplicationContext()
+ // let ctx = Utils.ad.getApplicationContext()
let sensorManager = ctx.getSystemService(
android.content.Context.SENSOR_SERVICE
)
@@ -98,7 +63,7 @@ function callIntent(ctx, intent, msg, pickerType) {
)
})
}
-// IMAGE PICKER
+// ImagePicker
export function getRecipePhoto() {
const ctx =
Application.android.foregroundActivity || Application.android.startActivity
@@ -114,6 +79,7 @@ export function getRecipePhoto() {
}
)
}
+
export function copyPhotoToCache(src: string, dest: string) {
const ContentResolver = Application.android.nativeApp.getContentResolver()
const isURI = src.includes('content://')
@@ -147,7 +113,7 @@ export function copyPhotoToCache(src: string, dest: string) {
})
}
-// COPY DB FILE
+// CopyDbFile
export function copyDBToExport() {
const src = path.join(knownFolders.documents().path, 'EnRecipes.db')
const dst = path.join(
@@ -167,7 +133,7 @@ export function copyDBToExport() {
}
}
-// BACKUP FOLDER PICKER
+// BackupFolderPicker
export function getBackupFolder() {
const ctx =
Application.android.foregroundActivity || Application.android.startActivity
@@ -183,7 +149,7 @@ export function getBackupFolder() {
)
}
-// BACKUP FILE PICKER
+// BackupFilePicker
export function getBackupFile() {
const ctx =
Application.android.foregroundActivity || Application.android.startActivity
@@ -202,7 +168,7 @@ export function getBackupFile() {
)
}
-// ZIP OPERATIONS
+// ZipOperations
export class Zip {
static getSubFiles(src: string, isRootFolder?: number) {
const fileList = new java.util.ArrayList()
@@ -216,7 +182,7 @@ export class Zip {
if (isRootFolder) {
fileList.add(tempList[i])
}
- fileList.addAll(Zip.getSubFiles(tempList[i].getAbsolutePath()))
+ fileList.addAll(this.getSubFiles(tempList[i].getAbsolutePath()))
}
}
return fileList
@@ -233,7 +199,7 @@ export class Zip {
let destFile = uri.createFile('application/zip', filename).getUri()
const outputStream = ContentResolver.openOutputStream(destFile)
const zipOutputStream = new java.util.zip.ZipOutputStream(outputStream)
- const sourceFiles = Zip.getSubFiles(src, 1)
+ const sourceFiles = this.getSubFiles(src, 1)
for (let i = 0; i < sourceFiles.size(); i++) {
let len
let buffer = Array.create('byte', 4096)
@@ -291,10 +257,10 @@ export class Zip {
}
}
-// SHARE OPERATIONS
+// ShareOperations
function share(intent, subject) {
- const ctx = Application.android.context
+ // const ctx = Application.android.context
const shareIntent = android.content.Intent.createChooser(intent, subject)
shareIntent.setFlags(android.content.Intent.FLAG_ACTIVITY_NEW_TASK)
ctx.startActivity(shareIntent)
@@ -310,7 +276,7 @@ export function shareText(text, subject) {
share(intent, subject)
}
export function shareImage(image, subject, title) {
- let ctx = Application.android.context
+ // let ctx = Application.android.context
const intent = getSendIntent('image/jpeg')
const baos = new java.io.ByteArrayOutputStream()
image.android.compress(android.graphics.Bitmap.CompressFormat.JPEG, 100, baos)
@@ -336,7 +302,21 @@ export function keepScreenOn(n: number) {
n ? window.addFlags(flag) : window.clearFlags(flag)
}
-// TIMER NOTIFICATION
+interface INotification {
+ multi?: boolean
+ actions?: number
+ bID: string
+ cID: string
+ nID: number
+ cName: string
+ description: string
+ priority: number
+ sound: string
+ title: string
+ vibrate?: number
+}
+
+// TimerNotification
export class TimerNotif {
static getIcon(ctx, icon) {
const packageName = ctx.getApplicationInfo().packageName
@@ -347,7 +327,7 @@ export class TimerNotif {
)
}
static clear(nID) {
- let ctx = Utils.ad.getApplicationContext()
+ // let ctx = Utils.ad.getApplicationContext()
const NotifySrv = ctx.getSystemService(
android.content.Context.NOTIFICATION_SERVICE
)
@@ -366,18 +346,7 @@ export class TimerNotif {
sound,
title,
vibrate,
- }: {
- multi?: boolean
- actions?: number
- bID: string
- cID: string
- cName: string
- description: string
- priority: number
- sound: string
- title: string
- vibrate?: number
- },
+ }: INotification,
ctx
) {
let soundUri: any
@@ -423,7 +392,7 @@ export class TimerNotif {
PendingIntent.FLAG_UPDATE_CURRENT
)
- // Action intent
+ // ActionIntent
let actionInt1,
actionInt2,
actionInt3,
@@ -457,8 +426,7 @@ export class TimerNotif {
)
}
- // CREATE NOTIFICATION
-
+ // CreateNotification
let icon = this.getIcon(ctx, 'notify')
let builder = new NotificationCompat.Builder(ctx, cID)
.setColor(new Color('#ff5200').android)
@@ -489,8 +457,8 @@ export class TimerNotif {
return notification
}
- static show(data) {
- const ctx = Utils.ad.getApplicationContext()
+ static show(data: INotification) {
+ // const ctx = Utils.ad.getApplicationContext()
const NotifySrv = ctx.getSystemService(
android.content.Context.NOTIFICATION_SERVICE
)
@@ -530,10 +498,10 @@ export class Printer {
}
}
-// GET RINGTONES LIST
+// GetRingtonesList
export function getTones() {
const RingtoneManager = android.media.RingtoneManager
- let ctx = Utils.ad.getApplicationContext()
+ // let ctx = Utils.ad.getApplicationContext()
const ringtonesMgr = new RingtoneManager(ctx)
ringtonesMgr.setType(RingtoneManager.TYPE_ALARM)
const cursor = ringtonesMgr.getCursor()
@@ -566,7 +534,7 @@ export function getTones() {
return { tones, defaultTone: defaultToneUri ? defaultTone : tones[0] }
}
-//WAKE LOCK
+// WakeLock
export function wakeLock(n): void {
n ? !wl.isHeld() && wl.acquire() : wl.isHeld() && wl.release()
}
@@ -589,7 +557,7 @@ export function updateLocale() {
let lang = ApplicationSettings.getString('appLocale', 'none').split('-')
const l = lang[0]
const c = lang[1]
- const ctx = Utils.android.getApplicationContext()
+ // const ctx = Utils.android.getApplicationContext()
const res = ctx.getResources()
const config = res.getConfiguration()
if (l !== 'none') {
From dfbacb66a6fa01edd02f206bdd16617d087d0c8f Mon Sep 17 00:00:00 2001
From: vishnuraghavb
Date: Sat, 19 Jun 2021 00:06:38 +0530
Subject: [PATCH 07/10] cleaned styles
---
app/app.scss | 65 +++++++++++++++-------------------------------------
1 file changed, 19 insertions(+), 46 deletions(-)
diff --git a/app/app.scss b/app/app.scss
index a0baa493..60c61cee 100644
--- a/app/app.scss
+++ b/app/app.scss
@@ -257,10 +257,6 @@ ActivityIndicator {
padding: 0 4;
}
}
-.select {
- color: $orange;
- @extend .hl;
-}
.t3 {
font-size: $t3;
}
@@ -313,12 +309,6 @@ ActivityIndicator {
.lastItem {
margin-bottom: 128;
}
-.selected {
- @extend .hl;
-}
-.unselected {
- background-color: transparent;
-}
.imgHolder {
border-radius: 12;
}
@@ -340,9 +330,8 @@ ActivityIndicator {
// -----------------------------
// Settings
-.group-info {
+.groupInfo {
padding: 16 16 16 72;
- line-height: 4;
&.r {
padding: 16 72 16 16;
}
@@ -364,14 +353,11 @@ ActivityIndicator {
}
}
}
-.listSpace {
- height: 72;
-}
// -----------------------------
// About
-.app-info {
- .icon {
+.appInfo {
+ .logo {
horizontal-alignment: center;
}
.name {
@@ -390,18 +376,18 @@ ActivityIndicator {
margin: 24 16 0 0;
vertical-align: top;
}
-.imgViewer {
+.imgV {
width: 96;
height: 96;
opacity: 0;
background: #000;
}
-.attribute {
+.attrT {
margin: 8 16;
.sub {
font-size: $t5;
}
- .value {
+ .v {
@extend .tb;
@extend .tw;
}
@@ -419,10 +405,6 @@ ActivityIndicator {
text-decoration: line-through;
}
}
-.comb {
- padding: 16 24;
- line-height: 4;
-}
.note {
padding: 16 24;
line-height: 4;
@@ -519,35 +501,16 @@ ActivityIndicator {
.input {
padding: 0 16 8;
}
- .description {
- line-height: 4;
- padding: 0 16 8;
- }
ListPicker {
width: 30%;
height: 144;
margin: 16 0;
}
.listItem {
- letter-spacing: 0;
- text-transform: none;
line-height: 4;
padding: 13 16;
- margin: 0;
background-color: transparent;
}
- .shareItem {
- border-radius: 12;
- margin: 0 8 8;
- text-align: center;
- .ico {
- padding: 16 0 0;
- }
- .item {
- @extend .tw;
- padding: 8 16 16;
- }
- }
.actions {
padding: 4;
}
@@ -559,13 +522,17 @@ ActivityIndicator {
// -----------------------------
// Transitions
-.hl {
- animation-name: hl;
+.select {
+ color: $orange;
+ animation-name: select;
animation-duration: 0.2s;
animation-fill-mode: forwards;
animation-timing-function: ease;
}
-@keyframes hl {
+.deselect {
+ background-color: transparent;
+}
+@keyframes select {
0% {
background-color: transparent;
}
@@ -611,3 +578,9 @@ ActivityIndicator {
.edge {
width: 16;
}
+.ls {
+ height: 72;
+}
+.lh4 {
+ line-height: 4;
+}
From 58be4cec5c235ee832f9e1fa0411c71986ca707b Mon Sep 17 00:00:00 2001
From: vishnuraghavb
Date: Sat, 19 Jun 2021 00:07:01 +0530
Subject: [PATCH 08/10] cleaned code
---
app/components/CookingTimer.vue | 85 +++++++++----------
app/components/EditRecipe.vue | 96 +++++++++++-----------
app/components/EnRecipes.vue | 50 +++++-------
app/components/MealPlanner.vue | 38 ++++-----
app/components/ViewRecipe.vue | 103 ++++++------------------
app/components/modals/Action.vue | 22 ++---
app/components/modals/Confirm.vue | 8 +-
app/components/modals/Filter.vue | 2 +-
app/components/modals/TimePickerHMS.vue | 4 +-
app/components/modals/TimerReminder.vue | 12 ++-
app/components/settings/About.vue | 16 ++--
app/components/settings/AppSettings.vue | 1 -
app/components/settings/CTSettings.vue | 29 +++----
app/components/settings/Database.vue | 54 ++++++-------
app/components/settings/Interface.vue | 19 +++--
app/components/settings/MPSettings.vue | 20 ++---
app/components/settings/Options.vue | 14 ++--
app/components/settings/Reset.vue | 9 +--
app/components/sub/OptionsList.vue | 4 +-
app/components/sub/Timer.vue | 19 ++---
app/main.ts | 16 ++--
app/store.ts | 12 +--
22 files changed, 264 insertions(+), 369 deletions(-)
diff --git a/app/components/CookingTimer.vue b/app/components/CookingTimer.vue
index b231369c..8c16dd1b 100644
--- a/app/components/CookingTimer.vue
+++ b/app/components/CookingTimer.vue
@@ -12,7 +12,7 @@
-
+
-
+
@@ -115,11 +115,11 @@ export default {
...mapState([
"icon",
"recipes",
- "timerSound",
- "timerVibrate",
- "timerPresets",
- "activeTimers",
- "FGService",
+ "timerS",
+ "timerV",
+ "timerPs",
+ "activeTs",
+ "FGS",
"RTL",
]),
hasBackStack() {
@@ -127,18 +127,10 @@ export default {
},
},
methods: {
- ...mapActions([
- "addActiveTimer",
- "removeActiveTimer",
- "clearTimerInterval",
- "addTimerPreset",
- "updateActiveTimer",
- "setFGService",
- ]),
+ ...mapActions(["addAT", "removeAT", "clearATIs", "updateAT", "setFgS"]),
pgLoad({ object }) {
object.bindingContext = new Observable();
- if (this.activeTimers.filter((e: any) => e.done).length)
- this.openReminder();
+ if (this.activeTs.filter((e: any) => e.done).length) this.openReminder();
setNumber("isTimer", 1);
},
abLoad({ object }) {
@@ -188,8 +180,8 @@ export default {
// NOTIFICATION HANDLERS
timerInfo() {
- let activeCount = this.activeTimers.length;
- let pausedCount = this.activeTimers.filter((e) => e.isPaused).length;
+ let activeCount = this.activeTs.length;
+ let pausedCount = this.activeTs.filter((e) => e.isPaused).length;
let ongoingCount = activeCount - pausedCount;
this.foregroundService(activeCount);
function show() {
@@ -204,13 +196,12 @@ export default {
title: localize("timer"),
});
}
- if (this.FGService)
- setTimeout(() => this.activeTimers.length && show(), 250);
+ if (this.FGS) setTimeout(() => this.activeTs.length && show(), 250);
utils.wakeLock(ongoingCount);
},
timerAlert() {
let title, description, bID;
- let firedTimers = this.activeTimers.filter((e) => e.done);
+ let firedTimers = this.activeTs.filter((e) => e.done);
let timer = firedTimers[0];
if (firedTimers.length > 1) {
title = localize("texp", firedTimers.length);
@@ -235,9 +226,9 @@ export default {
multi: firedTimers.length > 1,
nID: 7,
priority: 1,
- sound: this.timerSound.uri,
+ sound: this.timerS.uri,
title,
- vibrate: this.timerVibrate,
+ vibrate: this.timerV,
});
if (firedTimers.length == 1) {
Application.android.registerBroadcastReceiver(bID, (ctx, intent) => {
@@ -255,7 +246,7 @@ export default {
}
},
openReminder() {
- this.clearTimerInterval();
+ this.clearATIs();
this.$showModal(TimerReminder, {
fullscreen: true,
props: {
@@ -266,7 +257,7 @@ export default {
showToast: this.showToast,
},
}).then(() => {
- this.clearTimerInterval();
+ this.clearATIs();
this.key = Math.floor(Math.random() * 900) + 100;
});
},
@@ -276,16 +267,16 @@ export default {
ctx,
com.tns.ForegroundService.class
);
- if (n && !this.FGService) {
+ if (n && !this.FGS) {
parseInt(Device.sdkVersion) < 26
? ctx.startService(intent)
: ctx.startForegroundService(intent);
- this.setFGService(1);
- setNumber("FGService", 1);
- } else if (!this.activeTimers.length) {
+ this.setFgS(1);
+ setNumber("FGS", 1);
+ } else if (!this.activeTs.length) {
ctx.stopService(intent);
- this.setFGService(0);
- setNumber("FGService", 0);
+ this.setFgS(0);
+ setNumber("FGS", 0);
}
},
@@ -294,14 +285,14 @@ export default {
this.$showModal(TimePickerHMS, {
props: {
title: "ntmr",
- label: `${localize("tmr", this.activeTimers.length + 1)}`,
+ label: `${localize("tmr", this.activeTs.length + 1)}`,
action: "strtBtn",
- showPreset: this.timerPresets.length,
+ showPreset: this.timerPs.length,
},
}).then((res) => {
if (res) {
if (res == "presets") {
- let list = this.timerPresets.map(
+ let list = this.timerPs.map(
(e) => `${e.label} - ${this.formattedTime(e.time)}`
);
this.$showModal(Action, {
@@ -312,22 +303,22 @@ export default {
}).then((preset) => {
if (preset) {
let timer = JSON.parse(
- JSON.stringify(this.timerPresets[list.indexOf(preset)])
+ JSON.stringify(this.timerPs[list.indexOf(preset)])
);
timer.id = utils.getRandomID(1);
timer.recipeID = this.recipeID;
timer.timerInt = timer.isPaused = 0;
timer.preset = timer.mode = 1;
- this.addActiveTimer({
+ this.addAT({
timer,
- i: this.activeTimers.length,
+ i: this.activeTs.length,
});
this.timerInfo();
}
});
} else {
let mode = res.time != "00:00:00" ? 1 : 0;
- this.addActiveTimer({
+ this.addAT({
timer: {
id: utils.getRandomID(1),
label: res.label,
@@ -339,7 +330,7 @@ export default {
done: 0,
mode,
},
- i: this.activeTimers.length,
+ i: this.activeTs.length,
});
this.timerInfo();
}
@@ -347,11 +338,11 @@ export default {
});
},
removeTimer(id, noUndo) {
- let i = this.activeTimers.findIndex((e) => e.id == id);
- let temp = this.activeTimers[i];
+ let i = this.activeTs.findIndex((e) => e.id == id);
+ let temp = this.activeTs[i];
clearInterval(temp.timerInt);
temp.timerInt = 0;
- this.removeActiveTimer(i);
+ this.removeAT(i);
let secs = [getNumber(`${temp.id}c`, 0), getNumber(`${temp.id}d`, 0)];
function removeSettings() {
remove(`${temp.id}c`);
@@ -363,7 +354,7 @@ export default {
.then(() => {
setNumber(`${temp.id}c`, secs[0]),
setNumber(`${temp.id}d`, secs[1]),
- this.addActiveTimer({
+ this.addAT({
timer: temp,
i,
});
@@ -377,7 +368,7 @@ export default {
togglePause(timer, n) {
timer.isPaused =
typeof n === "number" ? n : (!timer.isPaused as boolean | 0);
- this.updateActiveTimer(timer);
+ this.updateAT(timer);
n ? 0 : this.timerInfo();
},
showToast(data) {
@@ -453,7 +444,7 @@ export default {
// HELPERS
},
created() {
- this.clearTimerInterval();
+ this.clearATIs();
this.recipeID && this.addTimer();
},
destroyed() {
diff --git a/app/components/EditRecipe.vue b/app/components/EditRecipe.vue
index d944bc63..94d1dd4b 100644
--- a/app/components/EditRecipe.vue
+++ b/app/components/EditRecipe.vue
@@ -391,7 +391,7 @@ export default {
modalOpen: 0,
saving: 0,
cacheImagePath: null,
- unSyncCombinations: [],
+ unLinkCombs: [],
difficultyLevels: ["Easy", "Moderate", "Challenging"],
appbar: null,
snackbar: null,
@@ -427,11 +427,7 @@ export default {
},
},
methods: {
- ...mapActions([
- "addRecipeAction",
- "addListItemAction",
- "unSyncCombinationsAction",
- ]),
+ ...mapActions(["addR", "addLI", "unLinkCs"]),
pgLoad({ object }) {
object.bindingContext = new Observable();
this.hijackBackEvent();
@@ -491,37 +487,39 @@ export default {
knownFolders.temp().path,
`${utils.getRandomID(0)}.jpg`
);
- utils.copyPhotoToCache(uri, this.cacheImagePath).then((imgPath) => {
- if (imgPath) {
- ImageSource.fromFile(imgPath).then((image) => {
- ImageCropper.prototype
- .show(
- image,
- {
- width: 1080,
- height: 1080,
- },
- {
- hideBottomControls: true,
- toolbarTitle: localize("cPic"),
- statusBarColor: "#ff5200",
- toolbarTextColor: aT == "Light" ? "#212529" : "#f1f3f5",
- toolbarColor:
- aT == "Light"
- ? "#f1f3f5"
- : aT == "Dark"
- ? "#212529"
- : "#000000",
- cropFrameColor: "#ff5200",
- }
- )
- .then((cropped) => {
- cropped.image.saveToFile(this.cacheImagePath, "jpg", 75);
- this.recipe.image = this.cacheImagePath;
- });
- });
- }
- });
+ utils
+ .copyPhotoToCache(uri.toString(), this.cacheImagePath)
+ .then((imgPath) => {
+ if (imgPath) {
+ ImageSource.fromFile(imgPath).then((image) => {
+ ImageCropper.prototype
+ .show(
+ image,
+ {
+ width: 1080,
+ height: 1080,
+ },
+ {
+ hideBottomControls: true,
+ toolbarTitle: localize("cPic"),
+ statusBarColor: "#ff5200",
+ toolbarTextColor: aT == "Light" ? "#212529" : "#f1f3f5",
+ toolbarColor:
+ aT == "Light"
+ ? "#f1f3f5"
+ : aT == "Dark"
+ ? "#212529"
+ : "#000000",
+ cropFrameColor: "#ff5200",
+ }
+ )
+ .then((cropped) => {
+ cropped.image.saveToFile(this.cacheImagePath, "jpg", 75);
+ this.recipe.image = this.cacheImagePath;
+ });
+ });
+ }
+ });
}
});
},
@@ -558,7 +556,7 @@ export default {
this.modalOpen = 0;
if (item.length) {
this.recipe.cuisine = item;
- this.addListItemAction({
+ this.addLI({
item,
listName: "cuisines",
});
@@ -572,7 +570,7 @@ export default {
if (focus) this.autoFocusField("category", 0);
} else
this.cuisines.includes(this.recipe.cuisine)
- ? mull
+ ? null
: (this.recipe.cuisine = "Undefined");
}
});
@@ -597,7 +595,7 @@ export default {
this.modalOpen = 0;
if (item.length) {
this.recipe.category = item;
- this.addListItemAction({
+ this.addLI({
item,
listName: "categories",
});
@@ -611,7 +609,7 @@ export default {
if (focus) this.autoFocusField("tags", 1);
} else
this.categories.includes(this.recipe.category)
- ? mull
+ ? null
: (this.recipe.category = "Undefined");
}
});
@@ -636,7 +634,7 @@ export default {
this.modalOpen = 0;
if (item.length) {
this.recipe.yieldUnit = item;
- this.addListItemAction({
+ this.addLI({
item,
listName: "yieldUnits",
});
@@ -650,7 +648,7 @@ export default {
if (focus) this.autoFocusField("difficultyLevel", 0);
} else
this.yieldUnits.includes(this.recipe.yieldUnit)
- ? mull
+ ? null
: (this.recipe.yieldUnit = "Serving");
}
});
@@ -670,7 +668,7 @@ export default {
if (focus) this.addIngredient();
} else
this.difficultyLevels.includes(this.recipe.difficulty)
- ? mull
+ ? null
: (this.recipe.difficulty = "Easy");
});
},
@@ -694,7 +692,7 @@ export default {
this.modalOpen = 0;
if (item.length) {
this.recipe.ingredients[index].unit = item;
- this.addListItemAction({
+ this.addLI({
item,
listName: "units",
});
@@ -785,7 +783,7 @@ export default {
removeCombination(id) {
let index = this.recipe.combinations.indexOf(id);
this.recipe.combinations.splice(index, 1);
- this.unSyncCombinations.push(id);
+ this.unLinkCombs.push(id);
this.showUndoBar("rmCmb").then((res) =>
this.recipe.combinations.splice(index, 0, id)
);
@@ -832,14 +830,14 @@ export default {
} else if (this.tempRecipe.image) {
getFileAccess().deleteFile(this.tempRecipe.image);
}
- this.unSyncCombinationsAction({
+ this.unLinkCs({
id: this.recipeID,
- combinations: this.unSyncCombinations,
+ combs: this.unLinkCombs,
});
this.saveRecipe();
},
saveRecipe() {
- this.addRecipeAction(this.recipe);
+ this.addR(this.recipe);
this.saving = 0;
this.dupRecipe
? this.$navigateTo(EnRecipes, {
diff --git a/app/components/EnRecipes.vue b/app/components/EnRecipes.vue
index 1bb74d56..9abda719 100644
--- a/app/components/EnRecipes.vue
+++ b/app/components/EnRecipes.vue
@@ -111,7 +111,7 @@
-
+
this.onSensorData(data));
- else this.setShake(0);
+ else this.setS(0);
}
this.hijackBackEvent();
setTimeout(() => {
@@ -695,12 +682,12 @@ export default {
"Newest first",
"Oldest first",
],
- selected: this.sortType,
+ selected: this.sortT,
},
}).then((action) => {
- if (action && this.sortType !== action) {
- this.setSortType(action);
- ApplicationSettings.setString("sortType", action);
+ if (action && this.sortT !== action) {
+ this.setST(action);
+ ApplicationSettings.setString("sortT", action);
this.updateSort();
}
this.hijackBackEvent();
@@ -782,7 +769,7 @@ export default {
},
}).then((action) => {
if (action) {
- this.deleteRecipes(this.selection);
+ this.deleteRs(this.selection);
if (!this.filteredRecipes.length) this.goToHome();
this.clearSelection();
}
@@ -883,7 +870,7 @@ export default {
}).length;
break;
}
- return count && this.getLocaleN(count);
+ return count && this.localeN(count);
},
centerLabel({ object }) {
object.android.setGravity(17);
@@ -904,7 +891,6 @@ export default {
},
randomRecipeID() {
- // TODO: show only from selected filter
let min = 0;
let max = this.filteredRecipes.length - 1;
let randomIndex = Math.round(Math.random() * (max - min));
@@ -952,7 +938,7 @@ export default {
}
let dl1 = difficultyLevel(a.difficulty);
let dl2 = difficultyLevel(b.difficulty);
- switch (this.sortType) {
+ switch (this.sortT) {
case "random":
return 0.5 - Math.random();
case "title":
@@ -989,7 +975,7 @@ export default {
id == this.filteredRecipes[length - 2].id)
? "lastItem"
: "";
- let selection = this.selection.includes(id) ? "selected" : "unselected";
+ let selection = this.selection.includes(id) ? "select" : "deselect";
let classes = itemPos + " " + selection;
return l2 ? classes + oddOrEven : classes;
},
@@ -1034,7 +1020,7 @@ export default {
goToHome() {
this.setComp("EnRecipes");
this.filterFavourites = this.filterTrylater = null;
- this.clearFilter();
+ this.clearF();
},
navigateTo(to, title, page) {
this.showTools && this.toggleTools();
@@ -1056,7 +1042,7 @@ export default {
this.setComp(title);
this.filterFavourites = to == "favourites";
this.filterTrylater = to == "trylater";
- this.clearFilter();
+ this.clearF();
}
},
stSwipe({ direction }) {
@@ -1070,7 +1056,7 @@ export default {
this.setComp(comps[index - 1]);
this.filterFavourites = comps[index - 1] == "favourites";
this.filterTrylater = comps[index - 1] == "trylater";
- this.clearFilter();
+ this.clearF();
}
break;
case 2:
@@ -1084,7 +1070,7 @@ export default {
break;
}
},
- addRecipe() {
+ addR() {
this.showTools && this.toggleTools();
this.$navigateTo(EditRecipe, {
props: {
diff --git a/app/components/MealPlanner.vue b/app/components/MealPlanner.vue
index 681f9029..cffa375e 100644
--- a/app/components/MealPlanner.vue
+++ b/app/components/MealPlanner.vue
@@ -63,7 +63,7 @@
@@ -132,7 +132,7 @@
-
+
@@ -246,9 +246,9 @@ export default {
"recipes",
"layout",
"mealPlans",
- "mondayFirst",
+ "startMon",
"RTL",
- "plannerView",
+ "plannerV",
]),
todaysTime() {
return new Date(this.year, this.month, this.date, 0).getTime();
@@ -269,12 +269,12 @@ export default {
calRows() {
let h = (Screen.mainScreen.widthDIPs - 32) / 8;
if (h < 48) h = 48;
- let pv = this.plannerView;
+ let pv = this.plannerV;
return pv != "d" ? `${h}, `.repeat(pv == "wk" ? 1 : 6) + h : 0;
},
getDayNames() {
let dNames =
- this.plannerView != "d" &&
+ this.plannerV != "d" &&
this.getCal.slice(0, 7).map((d) => {
let date = new Date(d.y, d.m, d.d);
return new Intl.DateTimeFormat(null, {
@@ -293,7 +293,7 @@ export default {
) {
a.push({
d: d.getDate(),
- ld: this.getLocaleN(d.getDate()),
+ ld: this.localeN(d.getDate()),
m: d.getMonth(),
y: d.getFullYear(),
});
@@ -301,15 +301,15 @@ export default {
return a;
};
- let pv = this.plannerView;
+ let pv = this.plannerV;
let date = new Date(
this.year,
this.month,
- pv == "mnth" ? 1 : this.date - this.mondayFirst
+ pv == "mnth" ? 1 : this.date - this.startMon
);
return pv != "d"
? getDays(
- date.setDate(date.getDate() - date.getDay() + this.mondayFirst),
+ date.setDate(date.getDate() - date.getDay() + this.startMon),
date.setDate(date.getDate() + (pv == "mnth" ? 41 : 6))
)
: [];
@@ -332,7 +332,7 @@ export default {
return /minimal/.test(this.layout);
},
mpItems() {
- let pv = this.plannerView;
+ let pv = this.plannerV;
let days =
pv == "wk"
? this.getCal.slice(0, 7)
@@ -387,7 +387,7 @@ export default {
},
},
methods: {
- ...mapActions(["addMealPlanAction", "deleteMealPlanAction"]),
+ ...mapActions(["addMP", "deleteMP"]),
pgLoad({ object }) {
object.bindingContext = new Observable();
this.showBar();
@@ -439,7 +439,7 @@ export default {
getYield(id) {
let mp = this.mealPlans.filter((e) => e.id == id)[0];
let r = this.recipes.filter((e) => e.id === mp.recipeID)[0];
- return r ? `${this.getLocaleN(mp.quantity)} ${localize(r.yieldUnit)}` : 0;
+ return r ? `${this.localeN(mp.quantity)} ${localize(r.yieldUnit)}` : 0;
},
// NavigationHandlers
@@ -476,7 +476,7 @@ export default {
// Calendar
navigate(dir) {
if (this.RTL) dir = !dir;
- let pv = this.plannerView;
+ let pv = this.plannerV;
let date = new Date(this.year, this.month, this.date);
let sd =
pv == "mnth"
@@ -557,7 +557,7 @@ export default {
// DataHandlers
newMealPlan({ plan, index, inDB }) {
- this.addMealPlanAction({
+ this.addMP({
plan,
index,
inDB,
@@ -655,7 +655,7 @@ export default {
deleteTempFromDB() {
if (this.temp) {
let { plan, index } = this.temp;
- this.deleteMealPlanAction({ id: plan.id, index, inDB: 1 });
+ this.deleteMP({ id: plan.id, index, inDB: 1 });
this.temp = 0;
}
},
@@ -664,11 +664,11 @@ export default {
let index = this.mealPlans.findIndex((e) => e.id == id);
let plan = this.mealPlans.filter((e) => e.id == id)[0];
this.temp = { plan, index };
- this.deleteMealPlanAction({ id, index });
+ this.deleteMP({ id, index });
this.showUndoBar(plan.note ? "rmN" : "recRm")
.then(() => this.newMealPlan({ plan, index }))
.catch(() => {
- this.deleteMealPlanAction({ id, index, inDB: 1 });
+ this.deleteMP({ id, index, inDB: 1 });
});
},
showUndoBar(message) {
@@ -750,7 +750,7 @@ export default {
options.year = "numeric";
options.month = "long";
}
- if (this.plannerView == "d") {
+ if (this.plannerV == "d") {
options.weekday = "long";
options.day = "numeric";
options.month = "short";
diff --git a/app/components/ViewRecipe.vue b/app/components/ViewRecipe.vue
index d4cc75cd..ae5b6b11 100644
--- a/app/components/ViewRecipe.vue
+++ b/app/components/ViewRecipe.vue
@@ -51,60 +51,57 @@
>
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -139,7 +136,7 @@
:key="index + 'ins'"
class="check"
>
-
+
@@ -152,7 +149,7 @@
@@ -343,7 +340,7 @@ export default {
};
},
computed: {
- ...mapState(["icon", "recipes", "RTL", "awakeViewer"]),
+ ...mapState(["icon", "recipes", "RTL", "awakeV"]),
tempYieldQuantity() {
return Math.abs(this.yieldMultiplier) > 0
? Math.abs(parseFloat(this.yieldMultiplier))
@@ -372,13 +369,13 @@ export default {
},
},
methods: {
- ...mapActions(["toggleStateAction", "setRatingAction", "toggleCartAction"]),
+ ...mapActions(["toggleState", "setR"]),
pgLoad({ object }) {
this.busyDup = this.busyEdit = this.photoOpen = 0;
object.bindingContext = new Observable();
if (this.yieldMultiplier == this.recipe.yieldQuantity)
this.yieldMultiplier = this.recipe.yieldQuantity;
- if (this.awakeViewer) utils.keepScreenOn(1);
+ if (this.awakeV) utils.keepScreenOn(1);
this.syncCombinations();
this.view = object.page.getViewById("printview");
},
@@ -504,8 +501,8 @@ export default {
s = this.stepsDid;
break;
}
- c = this.getLocaleN(c);
- s = s && this.getLocaleN(s);
+ c = this.localeN(c);
+ s = s && this.localeN(s);
let text = s ? ` (${s}/${c})` : ` (${c})`;
return localize(title) + text;
},
@@ -572,48 +569,6 @@ export default {
: this.animateBar(this.appbar, 1);
});
},
- // getMeasure(value: number, unit: string) {
- // let vm = this;
- // function roundedQ(val: number) {
- // return Math.abs(
- // Math.round(
- // (val / vm.recipe.yieldQuantity) * vm.tempYieldQuantity * 100
- // ) / 100
- // );
- // }
- // if (value) {
- // let rounded = Math.abs(
- // Math.round(
- // (value / this.recipe.yieldQuantity) * this.tempYieldQuantity * 100
- // ) / 100
- // );
- // let lUnit = localize(unit);
-
- // switch (unit) {
- // //IMPERIAL
- // case "g":
- // return rounded < 1000
- // ? `${rounded} ${lUnit} `
- // : `${roundedQ(rounded / 1000)} ${localize("kg")} `;
- // case "ml":
- // return rounded < 1000
- // ? `${rounded} ${lUnit} `
- // : `${roundedQ(rounded / 1000)} ${localize("l")} `;
-
- // //METRIC
- // case "tsp":
- // return rounded < 3
- // ? `${rounded} ${lUnit} `
- // : `${roundedQ(rounded / 3)} ${localize("tbsp")} `;
- // case "in":
- // return rounded < 12
- // ? `${rounded} ${lUnit} `
- // : `${roundedQ(rounded / 12)} ${localize("ft")} `;
- // default:
- // return `${rounded} ${lUnit} `;
- // }
- // } else return "";
- // },
roundedQuantity(quantity: number) {
return Math.abs(
Math.round(
@@ -830,7 +785,7 @@ export default {
// DataHandlers
toggle(key: string, setDate: boolean) {
- this.toggleStateAction({
+ this.toggleState({
id: this.currentRecipeID,
key,
setDate,
@@ -844,22 +799,14 @@ export default {
setRating(r) {
if (r !== this.recipe.rating || r === 1) {
if (this.recipe.rating == 1 && r == 1) r = 0;
- this.setRatingAction({
+ this.setR({
id: this.currentRecipeID,
- rating: r,
+ r,
});
}
},
// ShoppingList
- toggleCart() {
- if (!this.recipe.inBag) {
- } else {
- }
- this.toggleCartAction({
- id: this.currentRecipeID,
- });
- },
// Notes
createNote(note) {
diff --git a/app/components/modals/Action.vue b/app/components/modals/Action.vue
index 0304c386..d467ea3a 100644
--- a/app/components/modals/Action.vue
+++ b/app/components/modals/Action.vue
@@ -80,10 +80,10 @@ export default {
};
},
computed: {
- ...mapState(["sortType", "icon", "theme", "RTL"]),
+ ...mapState(["icon", "theme", "RTL"]),
},
methods: {
- ...mapActions(["removeListItemAction", "deleteTimerPreset"]),
+ ...mapActions(["removeLI", "deleteTP"]),
localized(item: string): string {
return this.title !== "lang" ? localize(item) : item;
},
@@ -114,22 +114,22 @@ export default {
let vm = this;
let index = this.newList.findIndex((e) => e === item);
let localizedItem = `"${localize(item)}"`;
- function removeListItem(listName: string, desc: string): void {
+ function removeLI(listName: string, desc: string): void {
vm.removeConfirmation(`${localize(desc, localizedItem)}`).then(
(action: boolean) => {
if (action)
- vm.removeListItemAction({
+ vm.removeLI({
item,
listName,
});
}
);
}
- function deleteTimerPreset(): void {
+ function deleteTP(): void {
vm.deletionConfirmation(`${localize("delPrst", `"${item}"`)}`).then(
(action: boolean) => {
if (action) {
- vm.deleteTimerPreset(index);
+ vm.deleteTP(index);
vm.newList.splice(index, 1);
}
}
@@ -137,19 +137,19 @@ export default {
}
switch (this.title) {
case "cui":
- removeListItem("cuisines", "rmCuiInfo");
+ removeLI("cuisines", "rmCuiInfo");
break;
case "cat":
- removeListItem("categories", "rmCatInfo");
+ removeLI("categories", "rmCatInfo");
break;
case "yieldU":
- removeListItem("yieldUnits", "rmYUInfo");
+ removeLI("yieldUnits", "rmYUInfo");
break;
case "Unit":
- removeListItem("units", "rmUInfo");
+ removeLI("units", "rmUInfo");
break;
case "prsts":
- deleteTimerPreset();
+ deleteTP();
break;
}
},
diff --git a/app/components/modals/Confirm.vue b/app/components/modals/Confirm.vue
index b0c39776..b952b62c 100644
--- a/app/components/modals/Confirm.vue
+++ b/app/components/modals/Confirm.vue
@@ -1,15 +1,11 @@
-
+
diff --git a/app/components/modals/Filter.vue b/app/components/modals/Filter.vue
index b342a363..a96ff09d 100644
--- a/app/components/modals/Filter.vue
+++ b/app/components/modals/Filter.vue
@@ -173,7 +173,7 @@ export default {
},
},
methods: {
- ...mapActions(["setCuisine", "setCategory", "setTag", "clearFilter"]),
+ ...mapActions(["setCuisine", "setCategory", "setTag"]),
pgLoad(args) {
this.mLoad(args);
this.localCuisine = this.selCuisine;
diff --git a/app/components/modals/TimePickerHMS.vue b/app/components/modals/TimePickerHMS.vue
index 17763902..99421cf8 100644
--- a/app/components/modals/TimePickerHMS.vue
+++ b/app/components/modals/TimePickerHMS.vue
@@ -57,7 +57,7 @@
col="3"
class="text tb st fb"
:text="action | L"
- @tap="sendRespose"
+ @tap="respond"
/>
@@ -122,7 +122,7 @@ export default {
object.focus();
setTimeout(() => Utils.ad.showSoftInput(object.android), 100);
},
- sendRespose() {
+ respond() {
this.$modal.close({
label: this.setLabel ? this.setLabel : this.label,
time: this.selectedTime,
diff --git a/app/components/modals/TimerReminder.vue b/app/components/modals/TimerReminder.vue
index bd6d116f..4384ca35 100644
--- a/app/components/modals/TimerReminder.vue
+++ b/app/components/modals/TimerReminder.vue
@@ -21,7 +21,7 @@
:timerAlert="timerAlert"
:showToast="showToast"
/>
-
+
@@ -42,10 +42,9 @@
import { Application, Screen, Device, Color, Utils } from "@nativescript/core";
import Timer from "../sub/Timer.vue";
import * as utils from "~/shared/utils";
-import { mapState, mapActions } from "vuex";
+import { mapState } from "vuex";
const windowMgr = android.view.WindowManager;
-const View = android.view.View as any;
-const ViewGroup = android.view.ViewGroup;
+
export default {
components: { Timer },
props: [
@@ -56,12 +55,12 @@ export default {
"showToast",
],
computed: {
- ...mapState(["icon", "theme", "activeTimers"]),
+ ...mapState(["icon", "theme", "activeTs"]),
screenWidth() {
return Screen.mainScreen.widthDIPs;
},
timers() {
- let timers = this.activeTimers.filter((e) => e.done);
+ let timers = this.activeTs.filter((e) => e.done);
if (!timers.length) {
this.$modal.close(1);
this.isScreenLocked && this.turnOffScreen();
@@ -81,7 +80,6 @@ export default {
},
},
methods: {
- ...mapActions(["clearTimerInterval"]),
pgLoad({ object }) {
let dialog = object._dialogFragment.getDialog();
let dialogWindow = dialog.getWindow();
diff --git a/app/components/settings/About.vue b/app/components/settings/About.vue
index 455426bb..7accd14f 100644
--- a/app/components/settings/About.vue
+++ b/app/components/settings/About.vue
@@ -6,16 +6,16 @@
-
-
+
+
-
+
-
+
-
+
e.n == this.timerDelay)
- ].l,
+ this.delayList[this.delayList.findIndex((e) => e.n == this.timerD)]
+ .l,
action: this.showDelayList,
},
...list,
@@ -87,14 +86,14 @@ export default {
...Array.from(Array(6), (_, x) => (x + 1) * 5),
].map((e) => {
return {
- l: `${this.getLocaleN(e)} ${localize(e > 1 ? "minutes" : "minute")}`,
+ l: `${this.localeN(e)} ${localize(e > 1 ? "minutes" : "minute")}`,
n: e,
};
});
},
},
methods: {
- ...mapActions(["setTimerDelay", "setTimerSound", "setTimerVibrate"]),
+ ...mapActions(["setTD", "setTS", "setTV"]),
pgLoad({ object }) {
object.bindingContext = new Observable();
ApplicationSettings.setNumber("isTimer", 2);
@@ -104,12 +103,12 @@ export default {
props: {
title: "dlyDur",
list: this.delayList.map((e) => e.l),
- selected: this.delayList.findIndex((e) => e.n == this.timerDelay),
+ selected: this.delayList.findIndex((e) => e.n == this.timerD),
},
}).then(
(res) =>
res &&
- this.setTimerDelay(
+ this.setTD(
this.delayList[this.delayList.findIndex((e) => e.l == res)].n
)
);
@@ -121,18 +120,18 @@ export default {
title: "tmrSnd",
list: getTones.tones.map((e) => e.title),
selected: getTones.tones.findIndex(
- (e) => e.title == this.timerSound.title
+ (e) => e.title == this.timerS.title
),
},
}).then(
(tone) =>
tone &&
- tone !== this.timerSound.title &&
- this.setTimerSound(getTones.tones.filter((e) => e.title === tone)[0])
+ tone !== this.timerS.title &&
+ this.setTS(getTones.tones.filter((e) => e.title === tone)[0])
);
},
toggleTimerVibrate() {
- this.setTimerVibrate(!this.timerVibrate | 0);
+ this.setTV(!this.timerV | 0);
},
openNotificationChannelSettings() {
const ctx = Application.android.context;
@@ -147,8 +146,6 @@ export default {
intent.setFlags(android.content.Intent.FLAG_ACTIVITY_NEW_TASK);
ctx.startActivity(intent);
},
-
- // HELPERS
channelExists() {
if (Device.sdkVersion * 1 >= 26) {
const ctx = Utils.ad.getApplicationContext();
diff --git a/app/components/settings/Database.vue b/app/components/settings/Database.vue
index 1f2d7185..0c3bb5bb 100644
--- a/app/components/settings/Database.vue
+++ b/app/components/settings/Database.vue
@@ -75,7 +75,7 @@ export default {
"yieldUnits",
"units",
"mealPlans",
- "importSummary",
+ "impSum",
"RTL",
]),
items() {
@@ -108,14 +108,14 @@ export default {
},
methods: {
...mapActions([
- "importListItems",
- "importRecipesFromJSON",
- "importRecipesFromDB",
- "importMealPlansFromJSON",
- "importMealPlansFromDB",
- "importTimerPresets",
- "unlinkBrokenImages",
- "clearImportSummary",
+ "importLIs",
+ "importRsJSON",
+ "importRsDB",
+ "importMPsJSON",
+ "importMPsDB",
+ "importTPs",
+ "unLinkBIs",
+ "clearIS",
]),
pgLoad({ object }) {
object.bindingContext = new Observable();
@@ -144,10 +144,8 @@ export default {
android.content.Intent.FLAG_GRANT_READ_URI_PERMISSION |
android.content.Intent.FLAG_GRANT_WRITE_URI_PERMISSION;
utils.getBackupFolder().then((uri) => {
- console.log(uri.toString());
if (uri != null) {
// ReleaseExistingPermissions
-
if (this.backupFolder && this.backupFolder != uri.toString())
ContentResolver.releasePersistableUriPermission(
new android.net.Uri.parse(this.backupFolder),
@@ -256,7 +254,7 @@ export default {
function importImages() {
const timer = setInterval(() => {
if (!vm.progress) clearInterval(timer);
- if (vm.progress && vm.importSummary.found) {
+ if (vm.progress && vm.impSum.found) {
Folder.exists(images)
? vm.importImages(uri)
: vm.showImportSummary();
@@ -270,8 +268,6 @@ export default {
importImages();
} else if (File.exists(recipes)) {
// IMPORT FROM JSON FILES
- console.log("import from json");
-
this.isFileDataValid([
{
path: recipes,
@@ -309,7 +305,6 @@ export default {
} else this.failedImport(localize("buInc"));
},
isFileDataValid(file) {
- console.log("isFileDataValid");
const files = file.filter((e) => File.exists(e.path));
if (files.length) {
let isValid = files.map(() => 0);
@@ -362,7 +357,7 @@ export default {
// Import recipes
db.select("SELECT * FROM recipes").then((res) => {
- this.importRecipesFromDB(res);
+ this.importRsDB(res);
});
// Import listitems
@@ -370,7 +365,7 @@ export default {
`SELECT cuisines, categories, yieldUnits, units FROM lists`
).then((res) =>
Object.keys(res[0]).forEach((listName) =>
- this.importListItems({
+ this.importLIs({
data: JSON.parse(res[0][listName]),
listName,
})
@@ -379,46 +374,45 @@ export default {
// Import mealPlans
db.select(`SELECT * FROM mealPlans`).then((res) =>
- this.importMealPlansFromDB(res)
+ this.importMPsDB(res)
);
- // Import timerPresets
+ // Import timerPs
db.select(`SELECT * FROM timerPresets`).then((res) =>
- this.importTimerPresets(res)
+ this.importTPs(res)
);
},
importData(data, db) {
- console.log("importing");
switch (db) {
case "recipes":
- this.importRecipesFromJSON(data);
+ this.importRsJSON(data);
break;
case "userCuisines":
- this.importListItems({
+ this.importLIs({
data,
listName: "cuisines",
});
break;
case "userCategories":
- this.importListItems({
+ this.importLIs({
data,
listName: "categories",
});
break;
case "userYieldUnits":
- this.importListItems({
+ this.importLIs({
data,
listName: "yieldUnits",
});
break;
case "userUnits":
- this.importListItems({
+ this.importLIs({
data,
listName: "units",
});
break;
case "mealPlans":
- this.importMealPlansFromJSON(data);
+ this.importMPsJSON(data);
break;
}
},
@@ -437,14 +431,14 @@ export default {
});
});
this.showImportSummary();
- this.unlinkBrokenImages();
+ this.unLinkBIs();
}
});
},
showImportSummary() {
this.progress = null;
this.releaseBackEvent();
- let { found, imported, updated } = this.importSummary;
+ let { found, imported, updated } = this.impSum;
let exists = Math.abs(found - imported - updated) + updated;
let importedNote = `\n${localize("recI")} ${imported}`;
let existsNote = `\n${localize("recE")} ${exists}`;
@@ -457,7 +451,7 @@ export default {
)}\n${importedNote}${existsNote}${updatedNote}`,
okButtonText: "OK",
},
- }).then(() => this.clearImportSummary());
+ }).then(() => this.clearIS());
},
// NAVIGATION HANDLERS
diff --git a/app/components/settings/Interface.vue b/app/components/settings/Interface.vue
index b604c16c..1cff751e 100644
--- a/app/components/settings/Interface.vue
+++ b/app/components/settings/Interface.vue
@@ -32,7 +32,7 @@ export default {
};
},
computed: {
- ...mapState(["icon", "language", "theme", "layout", "RTL"]),
+ ...mapState(["icon", "langs", "theme", "layout", "RTL"]),
items() {
return [
{},
@@ -65,13 +65,13 @@ export default {
},
},
methods: {
- ...mapActions(["setTheme", "setLayout", "setRTL"]),
+ ...mapActions(["setT", "setL", "setRTL"]),
pgLoad({ object }) {
object.bindingContext = new Observable();
},
- // LANGUAGE SELECTION
+ // LanguageSelection
setAppLang() {
- let languages = this.language.map((e) => e.title);
+ let languages = this.langs.map((e) => e.title);
this.$showModal(Action, {
props: {
title: "lang",
@@ -84,8 +84,7 @@ export default {
"appLocale",
"none"
).split("-");
- let locale = this.language.filter((e) => e.title === action)[0]
- .locale;
+ let locale = this.langs.filter((e) => e.title === action)[0].locale;
if (currentLocale !== locale) {
this.applang = action;
ApplicationSettings.setString("applang", action);
@@ -97,7 +96,7 @@ export default {
}
});
},
- // THEME SELECTION
+ // ThemeSelection
selectThemes() {
this.$showModal(Action, {
props: {
@@ -112,12 +111,12 @@ export default {
? 1
: this.theme != action)
) {
- this.setTheme(action);
+ this.setT(action);
Frame.reloadPage();
}
});
},
- // LAYOUT MODE
+ // LayoutMode
setLayoutMode() {
this.$showModal(Action, {
props: {
@@ -126,7 +125,7 @@ export default {
selected: this.layout,
},
}).then((mode) => {
- if (mode && this.layout !== mode) this.setLayout(mode.toLowerCase());
+ if (mode && this.layout !== mode) this.setL(mode.toLowerCase());
});
},
},
diff --git a/app/components/settings/MPSettings.vue b/app/components/settings/MPSettings.vue
index 898f46ed..fe10400d 100644
--- a/app/components/settings/MPSettings.vue
+++ b/app/components/settings/MPSettings.vue
@@ -26,7 +26,7 @@ import { localize } from "@nativescript/localize";
export default {
components: { OptionsList },
computed: {
- ...mapState(["icon", "mondayFirst", "RTL", "plannerView", "planDeletion"]),
+ ...mapState(["icon", "startMon", "RTL", "plannerV", "planDel"]),
items() {
return [
{},
@@ -34,21 +34,21 @@ export default {
type: "list",
icon: "calv",
title: "calVM",
- subTitle: localize(this.plannerView),
+ subTitle: localize(this.plannerV),
action: this.selectPlannerView,
},
{
type: "switch",
icon: "week",
title: "swm",
- checked: !!this.mondayFirst,
+ checked: !!this.startMon,
action: this.toggleFirstDay,
},
{
type: "list",
icon: "mpd",
title: "admp",
- subTitle: localize(this.planDeletion),
+ subTitle: localize(this.planDel),
action: this.selectDeletionTime,
},
{},
@@ -56,22 +56,22 @@ export default {
},
},
methods: {
- ...mapActions(["setFirstDay", "setPlannerView", "setPlanDeletion"]),
+ ...mapActions(["setFD", "setPlannerV", "setPlanDel"]),
pgLoad({ object }) {
object.bindingContext = new Observable();
},
toggleFirstDay() {
- this.setFirstDay(!this.mondayFirst | 0);
+ this.setFD(!this.startMon | 0);
},
selectPlannerView() {
this.$showModal(Action, {
props: {
title: "calVM",
list: ["d", "wk", "mnth"],
- selected: this.plannerView,
+ selected: this.plannerV,
},
}).then((res) => {
- if (res && this.plannerView != res) this.setPlannerView(res);
+ if (res && this.plannerV != res) this.setPlannerV(res);
});
},
selectDeletionTime() {
@@ -79,10 +79,10 @@ export default {
props: {
title: "admp",
list: ["otaw", "otam", "otay", "nvr"],
- selected: this.planDeletion,
+ selected: this.planDel,
},
}).then((res) => {
- if (res && this.planDeletion != res) this.setPlanDeletion(res);
+ if (res && this.planDel != res) this.setPlanDel(res);
});
},
},
diff --git a/app/components/settings/Options.vue b/app/components/settings/Options.vue
index 8cea49fb..f706824a 100644
--- a/app/components/settings/Options.vue
+++ b/app/components/settings/Options.vue
@@ -42,7 +42,7 @@ export default {
};
},
computed: {
- ...mapState(["icon", "shake", "RTL", "edgeSwipe", "awakeViewer"]),
+ ...mapState(["icon", "shake", "RTL", "edgeS", "awakeV"]),
items() {
return [
{},
@@ -59,7 +59,7 @@ export default {
icon: "awake",
title: "ksavr",
subTitle: localize("ksavrInfo"),
- checked: !!this.awakeViewer,
+ checked: !!this.awakeV,
action: this.toggleAwake,
},
{
@@ -67,7 +67,7 @@ export default {
icon: "edge",
title: "esgb",
subTitle: localize("esgbInfo"),
- checked: !!this.edgeSwipe,
+ checked: !!this.edgeS,
action: this.toggleSwipe,
},
{},
@@ -75,7 +75,7 @@ export default {
},
},
methods: {
- ...mapActions(["setShake", "toggleEdgeSwipe", "toggleAwakeViewer"]),
+ ...mapActions(["setS", "toggleEdgeS", "toggleAwakeV"]),
pgLoad({ object }) {
object.bindingContext = new Observable();
},
@@ -90,13 +90,13 @@ export default {
let checked = this.shake;
if (checked && !utils.hasAccelerometer())
this.showToast(localize("noAccSensor"));
- else this.setShake(+!checked);
+ else this.setS(+!checked);
},
toggleSwipe() {
- this.toggleEdgeSwipe(+!this.edgeSwipe);
+ this.toggleEdgeS(+!this.edgeS);
},
toggleAwake() {
- this.toggleAwakeViewer(+!this.awakeViewer);
+ this.toggleAwakeV(+!this.awakeV);
},
showToast(data) {
diff --git a/app/components/settings/Reset.vue b/app/components/settings/Reset.vue
index d81d0b92..4e5588f4 100644
--- a/app/components/settings/Reset.vue
+++ b/app/components/settings/Reset.vue
@@ -1,7 +1,7 @@
-
+
-
+
diff --git a/app/components/sub/Timer.vue b/app/components/sub/Timer.vue
index 3f53e68a..0ccd8d10 100644
--- a/app/components/sub/Timer.vue
+++ b/app/components/sub/Timer.vue
@@ -82,7 +82,7 @@ export default {
};
},
computed: {
- ...mapState(["icon", "recipes", "timerDelay", "timerPresets", "RTL"]),
+ ...mapState(["icon", "recipes", "timerD", "timerPs", "RTL"]),
getRecipeTitle() {
let { recipeID } = this.timer;
if (recipeID) {
@@ -137,12 +137,7 @@ export default {
},
},
methods: {
- ...mapActions([
- "removeActiveTimer",
- "addTimerPreset",
- "deleteTimerPreset",
- "sortActiveTimers",
- ]),
+ ...mapActions(["addTP", "sortATs"]),
pLoaded({ object }) {
this.pBar = object.android;
this.pBar.setRotation(
@@ -165,7 +160,7 @@ export default {
} else if (res) {
let timer = this.timer;
timer.recipeID = res;
- this.sortActiveTimers();
+ this.sortATs();
}
});
},
@@ -211,7 +206,7 @@ export default {
this.timer.isPaused ? this.resetInterval() : this.initTimer();
},
addPreset() {
- let exist = this.timerPresets.some((e) => e.id == this.timer.id);
+ let exist = this.timerPs.some((e) => e.id == this.timer.id);
this.timer.preset = 1;
if (this.countUp) {
this.timer.time = new Date(this.count * 1000)
@@ -221,14 +216,14 @@ export default {
let timer = JSON.parse(JSON.stringify(this.timer));
let { recipeID, timerInt, isPaused, preset, done, mode, ...presetTimer } =
timer;
- this.addTimerPreset(presetTimer);
+ this.addTP(presetTimer);
exist ? this.showToast("prstTU") : this.showToast("aTPrst");
},
addDelay() {
this.timer.done = 0;
- let td = this.timerDelay;
+ let td = this.timerD;
let delayDur =
- this.getLocaleN(td) + " " + localize(td > 1 ? "minutes" : "minute");
+ this.localeN(td) + " " + localize(td > 1 ? "minutes" : "minute");
this.showToast(localize("wDBy", this.timer.label, delayDur));
let delay = td * 60;
if (this.done) this.delay = delay;
diff --git a/app/main.ts b/app/main.ts
index 67e20a23..b0e6ca4f 100644
--- a/app/main.ts
+++ b/app/main.ts
@@ -40,15 +40,15 @@ Vue.filter('L', localize)
const initFrame = () => {
const s = store
// MainInit
- s.commit('setTheme', getString('theme', 'sysDef'))
- s.commit('initRecipes')
- s.commit('initMealPlans')
- s.commit('initListItems')
- s.commit('initTimerPresets')
- if (!Object.keys(s.state.timerSound).length) {
- let hasTimerSound = getString('timerSound', null)
+ s.commit('setT', getString('theme', 'sysDef'))
+ s.commit('initRs')
+ s.commit('initMPs')
+ s.commit('initLIs')
+ s.commit('initTPs')
+ if (!Object.keys(s.state.timerS).length) {
+ let hasTimerSound = getString('timerS', null)
s.commit(
- 'setTimerSound',
+ 'setTS',
hasTimerSound ? JSON.parse(hasTimerSound) : utils.getTones().defaultTone
)
}
diff --git a/app/store.ts b/app/store.ts
index 2d25ed0e..3bf75ee8 100644
--- a/app/store.ts
+++ b/app/store.ts
@@ -1051,7 +1051,7 @@ export default new Vuex.Store({
// DeleteMealPlan
deleteMP(
state,
- { id, index, inDB }: { id: string; index: number; inDB: number }
+ { id, index, inDB }: { id: string; index: number; inDB?: number }
) {
if (inDB) {
db.execute(`DELETE FROM mealPlans WHERE id = '${id}'`)
@@ -1074,9 +1074,9 @@ export default new Vuex.Store({
}
},
// UnLinkCombinations
- unLinkCs(state, { id, a }) {
+ unLinkCs(state, { id, combs }) {
state.recipes.forEach((e, i) => {
- if (a.includes(e.id)) {
+ if (combs.includes(e.id)) {
state.recipes[i].combinations.splice(e.combinations.indexOf(id), 1)
db.execute(
`UPDATE recipes SET combinations = '${JSON.stringify(
@@ -1092,10 +1092,10 @@ export default new Vuex.Store({
setNumber('shake', n)
},
// SetRating
- setR(state, { id, rating }) {
+ setR(state, { id, r }) {
let i = state.recipes.findIndex((e) => e.id == id)
- state.recipes[i].rating = rating
- db.execute(`UPDATE recipes SET rating = ${rating} WHERE id = '${id}'`)
+ state.recipes[i].rating = r
+ db.execute(`UPDATE recipes SET rating = ${r} WHERE id = '${id}'`)
},
// UnLinkBrokenImages
unLinkBIs(state) {
From 61b35bb07576a3e9a5963a3d628ae972f89a5fcc Mon Sep 17 00:00:00 2001
From: vishnuraghavb
Date: Sat, 19 Jun 2021 00:07:12 +0530
Subject: [PATCH 09/10] cleaned code
---
app/shared/mixins.ts | 8 +++----
app/shared/utils.ts | 55 ++++++++++++++++++--------------------------
2 files changed, 26 insertions(+), 37 deletions(-)
diff --git a/app/shared/mixins.ts b/app/shared/mixins.ts
index 5844b35d..d1d0702f 100644
--- a/app/shared/mixins.ts
+++ b/app/shared/mixins.ts
@@ -34,8 +34,8 @@ export const myMixin = {
let hr = localize('hr')
let min = localize('min')
let mins = h * 60 + m
- h = h && this.getLocaleN(h)
- m = m && this.getLocaleN(m)
+ h = h && this.localeN(h)
+ m = m && this.localeN(m)
return {
time: h ? (m ? `${h} ${hr} ${m} ${min}` : `${h} ${hr}`) : `${m} ${min}`,
duration: `${mins}`,
@@ -44,7 +44,7 @@ export const myMixin = {
setGravity(args) {
;(args.object || args).android.setGravity(this.RTL ? 5 : 3)
},
- getLocaleN(n) {
+ localeN(n) {
return new Intl.NumberFormat(null).format(Number(n))
},
touchFade(object, action) {
@@ -56,7 +56,7 @@ export const myMixin = {
: c.replace(/ fade/g, '')
},
swipeBack({ direction }, method) {
- if (this.$store.state.edgeSwipe)
+ if (this.$store.state.edgeS)
if (direction == 1) method ? method(0) : this.$navigateBack()
},
},
diff --git a/app/shared/utils.ts b/app/shared/utils.ts
index 01364e1c..a9c610c7 100644
--- a/app/shared/utils.ts
+++ b/app/shared/utils.ts
@@ -21,16 +21,12 @@ const wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, 'Timers')
const sdkv = parseInt(Device.sdkVersion)
export function hasAccelerometer() {
- // let ctx = Utils.ad.getApplicationContext()
- let sensorManager = ctx.getSystemService(
- android.content.Context.SENSOR_SERVICE
- )
- return sensorManager.getDefaultSensor(
- android.hardware.Sensor.TYPE_ACCELEROMETER
- )
+ return ctx
+ .getSystemService(android.content.Context.SENSOR_SERVICE)
+ .getDefaultSensor(android.hardware.Sensor.TYPE_ACCELEROMETER)
}
export function vibrate(duration) {
- let vibratorService = Application.android.context.getSystemService(
+ let vibratorService = ctx.getSystemService(
android.content.Context.VIBRATOR_SERVICE
)
if (vibratorService.hasVibrator()) vibratorService.vibrate(duration)
@@ -83,10 +79,13 @@ export function getRecipePhoto() {
export function copyPhotoToCache(src: string, dest: string) {
const ContentResolver = Application.android.nativeApp.getContentResolver()
const isURI = src.includes('content://')
+ console.log(src, dest, isURI)
+
return new Promise((resolve) => {
if (isURI) {
+ const uri = new android.net.Uri.parse(src)
const input = new java.io.BufferedInputStream(
- ContentResolver.openInputStream(src)
+ ContentResolver.openInputStream(uri)
)
let size = input.available()
let buffer = Array.create('byte', size)
@@ -260,7 +259,6 @@ export class Zip {
// ShareOperations
function share(intent, subject) {
- // const ctx = Application.android.context
const shareIntent = android.content.Intent.createChooser(intent, subject)
shareIntent.setFlags(android.content.Intent.FLAG_ACTIVITY_NEW_TASK)
ctx.startActivity(shareIntent)
@@ -276,7 +274,6 @@ export function shareText(text, subject) {
share(intent, subject)
}
export function shareImage(image, subject, title) {
- // let ctx = Application.android.context
const intent = getSendIntent('image/jpeg')
const baos = new java.io.ByteArrayOutputStream()
image.android.compress(android.graphics.Bitmap.CompressFormat.JPEG, 100, baos)
@@ -295,7 +292,7 @@ export function shareImage(image, subject, title) {
}
export function keepScreenOn(n: number) {
- let ctx =
+ const ctx =
Application.android.foregroundActivity || Application.android.startActivity
let window = ctx.getWindow()
let flag = android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
@@ -327,28 +324,23 @@ export class TimerNotif {
)
}
static clear(nID) {
- // let ctx = Utils.ad.getApplicationContext()
const NotifySrv = ctx.getSystemService(
android.content.Context.NOTIFICATION_SERVICE
)
- // nID ? NotifySrv.cancel(nID) : NotifySrv.cancelAll()
NotifySrv.cancel(nID)
}
- static getNotification(
- {
- multi,
- actions,
- bID,
- cID,
- cName,
- description,
- priority,
- sound,
- title,
- vibrate,
- }: INotification,
- ctx
- ) {
+ static getNotification({
+ multi,
+ actions,
+ bID,
+ cID,
+ cName,
+ description,
+ priority,
+ sound,
+ title,
+ vibrate,
+ }: INotification) {
let soundUri: any
if (sound) soundUri = new android.net.Uri.parse(sound)
const NotifyMgr = android.app.NotificationManager
@@ -458,11 +450,10 @@ export class TimerNotif {
return notification
}
static show(data: INotification) {
- // const ctx = Utils.ad.getApplicationContext()
const NotifySrv = ctx.getSystemService(
android.content.Context.NOTIFICATION_SERVICE
)
- NotifySrv.notify(data.nID, this.getNotification(data, ctx))
+ NotifySrv.notify(data.nID, this.getNotification(data))
}
}
export class Printer {
@@ -501,7 +492,6 @@ export class Printer {
// GetRingtonesList
export function getTones() {
const RingtoneManager = android.media.RingtoneManager
- // let ctx = Utils.ad.getApplicationContext()
const ringtonesMgr = new RingtoneManager(ctx)
ringtonesMgr.setType(RingtoneManager.TYPE_ALARM)
const cursor = ringtonesMgr.getCursor()
@@ -557,7 +547,6 @@ export function updateLocale() {
let lang = ApplicationSettings.getString('appLocale', 'none').split('-')
const l = lang[0]
const c = lang[1]
- // const ctx = Utils.android.getApplicationContext()
const res = ctx.getResources()
const config = res.getConfiguration()
if (l !== 'none') {
From f63bf33135bde75a1ebd24285ccf75eecc2dfebf Mon Sep 17 00:00:00 2001
From: vishnuraghavb
Date: Sun, 20 Jun 2021 23:24:47 +0530
Subject: [PATCH 10/10] ready for v2.0.0
---
README.md | 63 +++-
app/app.scss | 36 +-
app/components/CookingTimer.vue | 4 +-
app/components/EditRecipe.vue | 6 +-
app/components/EnRecipes.vue | 34 +-
app/components/MealPlanner.vue | 90 +++--
app/components/ViewRecipe.vue | 62 +--
app/components/modals/ActionWithSearch.vue | 3 -
app/components/settings/About.vue | 2 +-
app/components/settings/AppSettings.vue | 2 +-
app/components/settings/CTSettings.vue | 2 +-
app/components/settings/Database.vue | 8 +-
app/components/settings/Interface.vue | 2 +-
app/components/settings/MPSettings.vue | 2 +-
app/components/settings/Options.vue | 2 +-
app/components/settings/Reset.vue | 2 +-
app/components/sub/SnackBar.vue | 10 +-
app/components/sub/Timer.vue | 18 +-
app/components/sub/Toast.vue | 4 +-
app/fonts/EnRecipes.ttf | Bin 18568 -> 18768 bytes
app/resources/Android/app.gradle | 2 +-
.../src/main/res/values-ar/strings.xml | 33 +-
.../src/main/res/values-da/strings.xml | 33 +-
.../src/main/res/values-de/strings.xml | 39 +-
.../src/main/res/values-en-rIN/strings.xml | 39 +-
.../src/main/res/values-en-rUS/strings.xml | 39 +-
.../src/main/res/values-es/strings.xml | 69 ++--
.../src/main/res/values-fi/strings.xml | 352 ------------------
.../src/main/res/values-fr-rBE/strings.xml | 39 +-
.../src/main/res/values-fr-rCA/strings.xml | 41 +-
.../src/main/res/values-fr-rCH/strings.xml | 39 +-
.../src/main/res/values-fr/strings.xml | 39 +-
.../src/main/res/values-hi/strings.xml | 57 +--
.../src/main/res/values-id/strings.xml | 33 +-
.../src/main/res/values-it/strings.xml | 59 +--
.../src/main/res/values-ja/strings.xml | 35 +-
.../src/main/res/values-ml/strings.xml | 131 +++----
.../src/main/res/values-nb-rNO/strings.xml | 33 +-
.../src/main/res/values-night/styles.xml | 9 +-
.../src/main/res/values-nl/strings.xml | 33 +-
.../src/main/res/values-pt-rBR/strings.xml | 239 ++++++------
.../src/main/res/values-pt/strings.xml | 81 ++--
.../src/main/res/values-ru/strings.xml | 33 +-
.../src/main/res/values-ta/strings.xml | 37 +-
.../src/main/res/values-te/strings.xml | 57 +--
.../Android/src/main/res/values/strings.xml | 35 +-
app/shared/mixins.ts | 6 +
app/shared/utils.ts | 4 +-
app/store.ts | 2 +
assets/Screenshots/1.png | Bin 55466 -> 0 bytes
assets/Screenshots/10.png | Bin 57281 -> 0 bytes
assets/Screenshots/2.png | Bin 54034 -> 0 bytes
assets/Screenshots/3.png | Bin 139116 -> 0 bytes
assets/Screenshots/4.png | Bin 44513 -> 0 bytes
assets/Screenshots/5.png | Bin 134750 -> 0 bytes
assets/Screenshots/6.png | Bin 81752 -> 0 bytes
assets/Screenshots/7.png | Bin 24806 -> 0 bytes
assets/Screenshots/8.png | Bin 37688 -> 0 bytes
assets/Screenshots/9.png | Bin 28964 -> 0 bytes
fastlane/metadata/android/ar/changelogs/1.txt | 3 -
.../metadata/android/ar/full_description.txt | 35 --
.../metadata/android/ar/short_description.txt | 1 -
fastlane/metadata/android/ar/title.txt | 1 -
fastlane/metadata/android/de/changelogs/1.txt | 9 +-
.../android/de/images/featureGraphic.png | Bin 0 -> 11801 bytes
fastlane/metadata/android/de/images/icon.png | Bin 0 -> 5324 bytes
.../android/de/images/phoneScreenshots/1.png | Bin 0 -> 455450 bytes
.../android/de/images/phoneScreenshots/2.png | Bin 0 -> 455378 bytes
.../android/de/images/phoneScreenshots/3.png | Bin 0 -> 243077 bytes
.../android/de/images/phoneScreenshots/4.png | Bin 0 -> 178169 bytes
.../android/de/images/phoneScreenshots/5.png | Bin 0 -> 190651 bytes
.../android/de/images/phoneScreenshots/6.png | Bin 0 -> 200539 bytes
.../android/de/images/phoneScreenshots/7.png | Bin 0 -> 55364 bytes
.../android/de/images/phoneScreenshots/8.png | Bin 0 -> 103289 bytes
.../metadata/android/en-GB/changelogs/1.txt | 3 +-
.../android/en-GB/images/featureGraphic.png | Bin 11538 -> 11801 bytes
.../en-GB/images/phoneScreenshots/2.png | Bin 455857 -> 455378 bytes
.../en-GB/images/phoneScreenshots/3.png | Bin 449537 -> 243077 bytes
.../en-GB/images/phoneScreenshots/4.png | Bin 243077 -> 178169 bytes
.../en-GB/images/phoneScreenshots/5.png | Bin 177195 -> 190651 bytes
.../en-GB/images/phoneScreenshots/6.png | Bin 176129 -> 200539 bytes
.../en-GB/images/phoneScreenshots/7.png | Bin 96366 -> 55364 bytes
.../metadata/android/en-IN/changelogs/1.txt | 4 +
.../android/en-IN/images/featureGraphic.png | Bin 0 -> 11801 bytes
.../metadata/android/en-IN/images/icon.png | Bin 0 -> 5324 bytes
.../en-IN/images/phoneScreenshots/1.png | Bin 0 -> 455450 bytes
.../en-IN/images/phoneScreenshots/2.png | Bin 0 -> 455378 bytes
.../en-IN/images/phoneScreenshots/3.png | Bin 0 -> 243077 bytes
.../en-IN/images/phoneScreenshots/4.png | Bin 0 -> 178169 bytes
.../en-IN/images/phoneScreenshots/5.png | Bin 0 -> 190651 bytes
.../en-IN/images/phoneScreenshots/6.png | Bin 0 -> 200539 bytes
.../en-IN/images/phoneScreenshots/7.png | Bin 0 -> 55364 bytes
.../en-IN/images/phoneScreenshots/8.png | Bin 0 -> 103289 bytes
.../metadata/android/en-US/changelogs/1.txt | 9 +
.../android/en-US/full_description.txt | 18 +-
.../android/en-US/images/featureGraphic.png | Bin 0 -> 11801 bytes
.../metadata/android/en-US/images/icon.png | Bin 0 -> 5324 bytes
.../en-US/images/phoneScreenshots/1.png | Bin 0 -> 455450 bytes
.../en-US/images/phoneScreenshots/2.png | Bin 0 -> 455378 bytes
.../en-US/images/phoneScreenshots/3.png | Bin 0 -> 243077 bytes
.../en-US/images/phoneScreenshots/4.png | Bin 0 -> 178169 bytes
.../en-US/images/phoneScreenshots/5.png | Bin 0 -> 190651 bytes
.../en-US/images/phoneScreenshots/6.png | Bin 0 -> 200539 bytes
.../en-US/images/phoneScreenshots/7.png | Bin 0 -> 55364 bytes
.../en-US/images/phoneScreenshots/8.png | Bin 0 -> 103289 bytes
.../android/es-AR/full_description.txt | 27 --
.../android/es-AR/short_description.txt | 1 -
fastlane/metadata/android/es-AR/title.txt | 1 -
.../metadata/android/es/short_description.txt | 1 -
fastlane/metadata/android/es/title.txt | 1 -
.../metadata/android/fi/short_description.txt | 1 -
fastlane/metadata/android/fi/title.txt | 1 -
.../metadata/android/fr-CA/changelogs/1.txt | 8 +-
.../android/fr-CA/images/featureGraphic.png | Bin 0 -> 11801 bytes
.../metadata/android/fr-CA/images/icon.png | Bin 0 -> 5324 bytes
.../fr-CA/images/phoneScreenshots/1.png | Bin 0 -> 455450 bytes
.../fr-CA/images/phoneScreenshots/2.png | Bin 0 -> 455378 bytes
.../fr-CA/images/phoneScreenshots/3.png | Bin 0 -> 243077 bytes
.../fr-CA/images/phoneScreenshots/4.png | Bin 0 -> 178169 bytes
.../fr-CA/images/phoneScreenshots/5.png | Bin 0 -> 190651 bytes
.../fr-CA/images/phoneScreenshots/6.png | Bin 0 -> 200539 bytes
.../fr-CA/images/phoneScreenshots/7.png | Bin 0 -> 55364 bytes
.../fr-CA/images/phoneScreenshots/8.png | Bin 0 -> 103289 bytes
fastlane/metadata/android/fr/changelogs/1.txt | 8 +-
.../android/fr/images/featureGraphic.png | Bin 0 -> 11801 bytes
fastlane/metadata/android/fr/images/icon.png | Bin 0 -> 5324 bytes
.../android/fr/images/phoneScreenshots/1.png | Bin 0 -> 455450 bytes
.../android/fr/images/phoneScreenshots/2.png | Bin 0 -> 455378 bytes
.../android/fr/images/phoneScreenshots/3.png | Bin 0 -> 243077 bytes
.../android/fr/images/phoneScreenshots/4.png | Bin 0 -> 178169 bytes
.../android/fr/images/phoneScreenshots/5.png | Bin 0 -> 190651 bytes
.../android/fr/images/phoneScreenshots/6.png | Bin 0 -> 200539 bytes
.../android/fr/images/phoneScreenshots/7.png | Bin 0 -> 55364 bytes
.../android/fr/images/phoneScreenshots/8.png | Bin 0 -> 103289 bytes
fastlane/metadata/android/hi/changelogs/1.txt | 3 -
.../metadata/android/hi/full_description.txt | 35 --
.../metadata/android/hi/short_description.txt | 1 -
.../metadata/android/id/short_description.txt | 1 -
fastlane/metadata/android/id/title.txt | 1 -
fastlane/metadata/android/it/changelogs/1.txt | 8 +
.../android/it/images/featureGraphic.png | Bin 0 -> 11801 bytes
fastlane/metadata/android/it/images/icon.png | Bin 0 -> 5324 bytes
.../android/it/images/phoneScreenshots/1.png | Bin 0 -> 455450 bytes
.../android/it/images/phoneScreenshots/2.png | Bin 0 -> 455378 bytes
.../android/it/images/phoneScreenshots/3.png | Bin 0 -> 243077 bytes
.../android/it/images/phoneScreenshots/4.png | Bin 0 -> 178169 bytes
.../android/it/images/phoneScreenshots/5.png | Bin 0 -> 190651 bytes
.../android/it/images/phoneScreenshots/6.png | Bin 0 -> 200539 bytes
.../android/it/images/phoneScreenshots/7.png | Bin 0 -> 55364 bytes
.../android/it/images/phoneScreenshots/8.png | Bin 0 -> 103289 bytes
.../android/nb-NO/full_description.txt | 27 --
.../android/nb-NO/short_description.txt | 1 -
fastlane/metadata/android/nl/changelogs/1.txt | 6 +-
.../android/nl/images/featureGraphic.png | Bin 0 -> 11801 bytes
fastlane/metadata/android/nl/images/icon.png | Bin 0 -> 5324 bytes
.../android/nl/images/phoneScreenshots/1.png | Bin 0 -> 455450 bytes
.../android/nl/images/phoneScreenshots/2.png | Bin 0 -> 455378 bytes
.../android/nl/images/phoneScreenshots/3.png | Bin 0 -> 243077 bytes
.../android/nl/images/phoneScreenshots/4.png | Bin 0 -> 178169 bytes
.../android/nl/images/phoneScreenshots/5.png | Bin 0 -> 190651 bytes
.../android/nl/images/phoneScreenshots/6.png | Bin 0 -> 200539 bytes
.../android/nl/images/phoneScreenshots/7.png | Bin 0 -> 55364 bytes
.../android/nl/images/phoneScreenshots/8.png | Bin 0 -> 103289 bytes
fastlane/metadata/android/pt/changelogs/1.txt | 5 -
.../metadata/android/pt/full_description.txt | 34 --
.../metadata/android/pt/short_description.txt | 1 -
fastlane/metadata/android/pt/title.txt | 1 -
fastlane/metadata/android/ta/changelogs/1.txt | 9 +
.../android/ta/images/featureGraphic.png | Bin 0 -> 11801 bytes
fastlane/metadata/android/ta/images/icon.png | Bin 0 -> 5324 bytes
.../android/ta/images/phoneScreenshots/1.png | Bin 0 -> 455450 bytes
.../android/ta/images/phoneScreenshots/2.png | Bin 0 -> 455378 bytes
.../android/ta/images/phoneScreenshots/3.png | Bin 0 -> 243077 bytes
.../android/ta/images/phoneScreenshots/4.png | Bin 0 -> 178169 bytes
.../android/ta/images/phoneScreenshots/5.png | Bin 0 -> 190651 bytes
.../android/ta/images/phoneScreenshots/6.png | Bin 0 -> 200539 bytes
.../android/ta/images/phoneScreenshots/7.png | Bin 0 -> 55364 bytes
.../android/ta/images/phoneScreenshots/8.png | Bin 0 -> 103289 bytes
package-lock.json | 76 ++--
package.json | 4 +-
180 files changed, 742 insertions(+), 1603 deletions(-)
delete mode 100644 app/resources/Android/src/main/res/values-fi/strings.xml
delete mode 100644 assets/Screenshots/1.png
delete mode 100644 assets/Screenshots/10.png
delete mode 100644 assets/Screenshots/2.png
delete mode 100644 assets/Screenshots/3.png
delete mode 100644 assets/Screenshots/4.png
delete mode 100644 assets/Screenshots/5.png
delete mode 100644 assets/Screenshots/6.png
delete mode 100644 assets/Screenshots/7.png
delete mode 100644 assets/Screenshots/8.png
delete mode 100644 assets/Screenshots/9.png
delete mode 100644 fastlane/metadata/android/ar/changelogs/1.txt
delete mode 100644 fastlane/metadata/android/ar/full_description.txt
delete mode 100644 fastlane/metadata/android/ar/short_description.txt
delete mode 100644 fastlane/metadata/android/ar/title.txt
create mode 100644 fastlane/metadata/android/de/images/featureGraphic.png
create mode 100644 fastlane/metadata/android/de/images/icon.png
create mode 100644 fastlane/metadata/android/de/images/phoneScreenshots/1.png
create mode 100644 fastlane/metadata/android/de/images/phoneScreenshots/2.png
create mode 100644 fastlane/metadata/android/de/images/phoneScreenshots/3.png
create mode 100644 fastlane/metadata/android/de/images/phoneScreenshots/4.png
create mode 100644 fastlane/metadata/android/de/images/phoneScreenshots/5.png
create mode 100644 fastlane/metadata/android/de/images/phoneScreenshots/6.png
create mode 100644 fastlane/metadata/android/de/images/phoneScreenshots/7.png
create mode 100644 fastlane/metadata/android/de/images/phoneScreenshots/8.png
create mode 100644 fastlane/metadata/android/en-IN/images/featureGraphic.png
create mode 100644 fastlane/metadata/android/en-IN/images/icon.png
create mode 100644 fastlane/metadata/android/en-IN/images/phoneScreenshots/1.png
create mode 100644 fastlane/metadata/android/en-IN/images/phoneScreenshots/2.png
create mode 100644 fastlane/metadata/android/en-IN/images/phoneScreenshots/3.png
create mode 100644 fastlane/metadata/android/en-IN/images/phoneScreenshots/4.png
create mode 100644 fastlane/metadata/android/en-IN/images/phoneScreenshots/5.png
create mode 100644 fastlane/metadata/android/en-IN/images/phoneScreenshots/6.png
create mode 100644 fastlane/metadata/android/en-IN/images/phoneScreenshots/7.png
create mode 100644 fastlane/metadata/android/en-IN/images/phoneScreenshots/8.png
create mode 100644 fastlane/metadata/android/en-US/changelogs/1.txt
create mode 100644 fastlane/metadata/android/en-US/images/featureGraphic.png
create mode 100644 fastlane/metadata/android/en-US/images/icon.png
create mode 100644 fastlane/metadata/android/en-US/images/phoneScreenshots/1.png
create mode 100644 fastlane/metadata/android/en-US/images/phoneScreenshots/2.png
create mode 100644 fastlane/metadata/android/en-US/images/phoneScreenshots/3.png
create mode 100644 fastlane/metadata/android/en-US/images/phoneScreenshots/4.png
create mode 100644 fastlane/metadata/android/en-US/images/phoneScreenshots/5.png
create mode 100644 fastlane/metadata/android/en-US/images/phoneScreenshots/6.png
create mode 100644 fastlane/metadata/android/en-US/images/phoneScreenshots/7.png
create mode 100644 fastlane/metadata/android/en-US/images/phoneScreenshots/8.png
delete mode 100644 fastlane/metadata/android/es-AR/full_description.txt
delete mode 100644 fastlane/metadata/android/es-AR/short_description.txt
delete mode 100644 fastlane/metadata/android/es-AR/title.txt
delete mode 100644 fastlane/metadata/android/es/short_description.txt
delete mode 100644 fastlane/metadata/android/es/title.txt
delete mode 100644 fastlane/metadata/android/fi/short_description.txt
delete mode 100644 fastlane/metadata/android/fi/title.txt
create mode 100644 fastlane/metadata/android/fr-CA/images/featureGraphic.png
create mode 100644 fastlane/metadata/android/fr-CA/images/icon.png
create mode 100644 fastlane/metadata/android/fr-CA/images/phoneScreenshots/1.png
create mode 100644 fastlane/metadata/android/fr-CA/images/phoneScreenshots/2.png
create mode 100644 fastlane/metadata/android/fr-CA/images/phoneScreenshots/3.png
create mode 100644 fastlane/metadata/android/fr-CA/images/phoneScreenshots/4.png
create mode 100644 fastlane/metadata/android/fr-CA/images/phoneScreenshots/5.png
create mode 100644 fastlane/metadata/android/fr-CA/images/phoneScreenshots/6.png
create mode 100644 fastlane/metadata/android/fr-CA/images/phoneScreenshots/7.png
create mode 100644 fastlane/metadata/android/fr-CA/images/phoneScreenshots/8.png
create mode 100644 fastlane/metadata/android/fr/images/featureGraphic.png
create mode 100644 fastlane/metadata/android/fr/images/icon.png
create mode 100644 fastlane/metadata/android/fr/images/phoneScreenshots/1.png
create mode 100644 fastlane/metadata/android/fr/images/phoneScreenshots/2.png
create mode 100644 fastlane/metadata/android/fr/images/phoneScreenshots/3.png
create mode 100644 fastlane/metadata/android/fr/images/phoneScreenshots/4.png
create mode 100644 fastlane/metadata/android/fr/images/phoneScreenshots/5.png
create mode 100644 fastlane/metadata/android/fr/images/phoneScreenshots/6.png
create mode 100644 fastlane/metadata/android/fr/images/phoneScreenshots/7.png
create mode 100644 fastlane/metadata/android/fr/images/phoneScreenshots/8.png
delete mode 100644 fastlane/metadata/android/hi/changelogs/1.txt
delete mode 100644 fastlane/metadata/android/hi/full_description.txt
delete mode 100644 fastlane/metadata/android/hi/short_description.txt
delete mode 100644 fastlane/metadata/android/id/short_description.txt
delete mode 100644 fastlane/metadata/android/id/title.txt
create mode 100644 fastlane/metadata/android/it/changelogs/1.txt
create mode 100644 fastlane/metadata/android/it/images/featureGraphic.png
create mode 100644 fastlane/metadata/android/it/images/icon.png
create mode 100644 fastlane/metadata/android/it/images/phoneScreenshots/1.png
create mode 100644 fastlane/metadata/android/it/images/phoneScreenshots/2.png
create mode 100644 fastlane/metadata/android/it/images/phoneScreenshots/3.png
create mode 100644 fastlane/metadata/android/it/images/phoneScreenshots/4.png
create mode 100644 fastlane/metadata/android/it/images/phoneScreenshots/5.png
create mode 100644 fastlane/metadata/android/it/images/phoneScreenshots/6.png
create mode 100644 fastlane/metadata/android/it/images/phoneScreenshots/7.png
create mode 100644 fastlane/metadata/android/it/images/phoneScreenshots/8.png
delete mode 100644 fastlane/metadata/android/nb-NO/full_description.txt
delete mode 100644 fastlane/metadata/android/nb-NO/short_description.txt
create mode 100644 fastlane/metadata/android/nl/images/featureGraphic.png
create mode 100644 fastlane/metadata/android/nl/images/icon.png
create mode 100644 fastlane/metadata/android/nl/images/phoneScreenshots/1.png
create mode 100644 fastlane/metadata/android/nl/images/phoneScreenshots/2.png
create mode 100644 fastlane/metadata/android/nl/images/phoneScreenshots/3.png
create mode 100644 fastlane/metadata/android/nl/images/phoneScreenshots/4.png
create mode 100644 fastlane/metadata/android/nl/images/phoneScreenshots/5.png
create mode 100644 fastlane/metadata/android/nl/images/phoneScreenshots/6.png
create mode 100644 fastlane/metadata/android/nl/images/phoneScreenshots/7.png
create mode 100644 fastlane/metadata/android/nl/images/phoneScreenshots/8.png
delete mode 100644 fastlane/metadata/android/pt/changelogs/1.txt
delete mode 100644 fastlane/metadata/android/pt/full_description.txt
delete mode 100644 fastlane/metadata/android/pt/short_description.txt
delete mode 100644 fastlane/metadata/android/pt/title.txt
create mode 100644 fastlane/metadata/android/ta/changelogs/1.txt
create mode 100644 fastlane/metadata/android/ta/images/featureGraphic.png
create mode 100644 fastlane/metadata/android/ta/images/icon.png
create mode 100644 fastlane/metadata/android/ta/images/phoneScreenshots/1.png
create mode 100644 fastlane/metadata/android/ta/images/phoneScreenshots/2.png
create mode 100644 fastlane/metadata/android/ta/images/phoneScreenshots/3.png
create mode 100644 fastlane/metadata/android/ta/images/phoneScreenshots/4.png
create mode 100644 fastlane/metadata/android/ta/images/phoneScreenshots/5.png
create mode 100644 fastlane/metadata/android/ta/images/phoneScreenshots/6.png
create mode 100644 fastlane/metadata/android/ta/images/phoneScreenshots/7.png
create mode 100644 fastlane/metadata/android/ta/images/phoneScreenshots/8.png
diff --git a/README.md b/README.md
index b29fcc19..9c297a2e 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,13 @@
+## :warning: Important Notice :warning:
+
+To continue receiving updates, please update your EnRecipes to v2.0.0
+
+There are some significant changes in this version. So, in order to continue, you must do the following:
+
+1. Export a full backup.
+2. Uninstall EnRecipes.
+3. Install v2.0.0 and Import your data.
+
![](fastlane/metadata/android/en-GB/images/featureGraphic.png)
A Simple, Offline Recipe Manager
@@ -15,7 +25,7 @@
![Donate to Vishnu Raghav](assets/Images/donate.svg)
Important Links
-User Guide - Privacy Policy - Contribution Guide - Roadmap - Telegram Group - Website
+User Guide · Privacy Policy · Contribution Guide · Roadmap · Telegram Group · Website
## Features
@@ -32,7 +42,7 @@
- Create meal plans
- Set cooking timers
- You can Import or Export your data
-- Has Light, Dark and Black themes
+- Light, Dark and Black themes
## Highlights
@@ -41,10 +51,6 @@
- No special permissions required
- No annoying ads or pop-ups
-**Languages being translated**:
-
-[![Translation status](https://hosted.weblate.org/widgets/enrecipes/-/app-translations/multi-auto.svg)](https://hosted.weblate.org/engage/enrecipes/)
-
Check the [Roadmap](https://github.com/vishnuraghavb/EnRecipes/projects/1) for upcoming features.
Please read the [User Guide](https://github.com/vishnuraghavb/EnRecipes/wiki/User-Guide) to get the most out of EnRecipes.
@@ -55,11 +61,11 @@ Please read the [User Guide](https://github.com/vishnuraghavb/EnRecipes/wiki/Use
| :---------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------: |
| **Home - Light theme** | **Home - Dark theme** |
|
|
|
-| **Home - Black theme** | **Recipe view** |
+| **Recipe view** | **Scale ingredients** |
|
|
|
-| **Share menu** | **Scale ingredients** |
+| **Share menu** | **Meal Planner** |
|
|
|
-| **Meal planner** | **About** |
+| **Cooking Timer** | **About** |
## Contribution
@@ -75,19 +81,52 @@ You can,
- [Join the Telegram group](http://t.me/enrecipes) (quicker replies)
- Contact me at apps@vishnuraghav.com
-### Looking to translate the app to your own language?
+### Looking to translate EnRecipes?
EnRecipes is being translated using [Weblate](https://hosted.weblate.org/engage/enrecipes/). See [translation instructions](https://github.com/vishnuraghavb/EnRecipes/wiki/Translation-Instructions) in the wiki for more information.
-
+
+
+
## Credits
This app was written in my free time using NativeScript-Vue. I would like to thank all those people who helped me understand the concepts during the process and my special thanks to the NativeScript team and the community. I also would like to thank the members of the [EnRecipes Telegram group](https://t.me/enrecipes) for contributing their ideas for this project.
-### Recipes used in the Screenshots
+### Translation credits
+
+| Language | Translator(s) |
+| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Arabic | [phwright](https://hosted.weblate.org/user/phwright/) |
+| Catalan | J. Lavoie |
+| Danish | [mondstern](https://hosted.weblate.org/user/mondstern/), Henrik Dankvardt, J. Lavoie, Allan Nordhøy, Jonas Hansen |
+| Dutch | Heimen Stoffels |
+| English (India) | Vishnu Raghav B |
+| English (United Kingdom) | Vishnu Raghav B |
+| English (United States) | Vishnu Raghav B |
+| Finnish | J. Lavoie |
+| French | J. Lavoie, Swann Fournial, fabeuss, [mondstern](https://hosted.weblate.org/user/mondstern/) |
+| French (Canada) | Swann Fournial, J. Lavoie |
+| French (Switzerland) | Swann Fournial, J. Lavoie |
+| French (Belgium) | Swann Fournial, J. Lavoie |
+| German | J. Lavoie, nautilusx, Swann Fournial |
+| Hindi | Vishnu Raghav B, V |
+| Indonesian | Reza Almanda, [mondstern](https://hosted.weblate.org/user/mondstern/) |
+| Italian | J. Lavoie, [mondstern](https://hosted.weblate.org/user/mondstern/), Andrea Ghensi |
+| Japanese | Y. Sakamoto, K. Herbert |
+| Malayalam | Vishnu Raghav B |
+| Norwegian Bokmål | Allan Nordhøy, [mondstern](https://hosted.weblate.org/user/mondstern/), Lars A Reinton |
+| Portuguese | Sérgio Morais, [mondstern](https://hosted.weblate.org/user/mondstern/), J. Lavoie |
+| Portuguese (Brazil) | [mondstern](https://hosted.weblate.org/user/mondstern/), Sérgio Morais, Wesley, Ricardo Zamarrenho Carvalho Correa, J. Lavoie, Nínive de Jesus Celestino, emmanuel einstein campos vasconcelos, Fabio Oliveira |
+| Russian | dm9pZCAq, [mondstern](https://hosted.weblate.org/user/mondstern/), Leca |
+| Spanish | taraletti, J. Lavoie, Sansom, [mondstern](https://hosted.weblate.org/user/mondstern/), Diego |
+| Spanish (Argentina) | another-sapiens |
+| Tamil | Vishnu Raghav B |
+
+### Screenshot recipe credits
- **Meen Pollichathu** by [Bency Veronica](https://www.instagram.com/bencys_lil_kitchen)
- **Curd Vada** by P. Shanmugalakshmi
diff --git a/app/app.scss b/app/app.scss
index 60c61cee..7ce68960 100644
--- a/app/app.scss
+++ b/app/app.scss
@@ -54,7 +54,6 @@ Page {
color: $gray9;
background: $gray1;
Page,
- .filters,
.sticky {
background: $gray1;
}
@@ -79,7 +78,7 @@ Page {
color: $gray3;
background: $gray2;
}
- .snackBar {
+ .snackbar {
color: $gray1;
background: $gray9;
}
@@ -91,7 +90,6 @@ Page {
color: $gray1;
background: $gray9;
Page,
- .filters,
.sticky {
background: $gray9;
}
@@ -116,7 +114,7 @@ Page {
color: $gray9;
background: $gray10;
}
- .snackBar {
+ .snackbar {
color: $gray9;
background: $gray1;
}
@@ -128,7 +126,6 @@ Page {
color: $gray2;
background: $gray10;
Page,
- .filters,
.sticky {
background: $gray10;
}
@@ -153,7 +150,7 @@ Page {
color: $gray10;
background: $gray9;
}
- .snackBar {
+ .snackbar {
color: $gray10;
background: $gray2;
}
@@ -179,7 +176,7 @@ TextView {
line-height: 4;
}
#search {
- padding: 13 12;
+ padding: 13 8;
}
.inputC {
margin-bottom: 24;
@@ -414,26 +411,23 @@ ActivityIndicator {
// AppBar
.appbar {
- margin: 8;
- padding: 4;
+ margin: 0 8 8;
border-radius: 16;
- .fab {
- margin-left: 8;
+ padding: 2;
+ .ico {
+ margin: 2;
}
}
-.sidebar {
- margin-bottom: 0;
-}
.toolbar {
- vertical-align: bottom;
height: 1;
+ vertical-align: bottom;
transform: translateY(48);
+ padding: 4 2;
.tool {
- padding: 0 8;
orientation: horizontal;
+ padding: 0 8;
}
- .v,
- .ico {
+ .v {
padding: 0 4;
}
}
@@ -459,15 +453,15 @@ ActivityIndicator {
// -----------------------------
// MealPlanner
.calendar {
- padding: 0 16;
+ padding: 0 16 16;
.accent.sub {
color: rgba($orange, 0.6);
}
}
.plans {
- margin: 16 16 0;
+ margin: 0 16;
.date {
- margin: 16 0 8;
+ padding: 16 0 8;
}
.type {
padding: 8 0;
diff --git a/app/components/CookingTimer.vue b/app/components/CookingTimer.vue
index 8c16dd1b..24eaf053 100644
--- a/app/components/CookingTimer.vue
+++ b/app/components/CookingTimer.vue
@@ -38,8 +38,8 @@
:hidden="showUndo"
columns="auto, *, auto"
>
-
-
+
+
-
+
-
+
@@ -306,7 +306,7 @@
class="tool"
@touch="touchTool($event, item.comp, item.title)"
>
-
+
@@ -320,10 +320,7 @@
@touch="() => null"
>
{
this.toolbar.animate({
- height: 104,
+ height: 52 * this.tbItems.length + 8,
duration: 200,
translate: { x: 0, y: 0 },
curve: CoreTypes.AnimationCurve.easeOut,
@@ -734,7 +731,6 @@ export default {
// ListHandlers
addToSelection(id) {
this.showTools && this.toggleTools();
-
this.selectMode = 1;
this.appbar.translateY = 0;
this.selection.includes(id)
@@ -872,9 +868,7 @@ export default {
}
return count && this.localeN(count);
},
- centerLabel({ object }) {
- object.android.setGravity(17);
- },
+
focusField({ object }) {
if (this.RTL) object.android.setGravity(5);
setTimeout((e) => {
diff --git a/app/components/MealPlanner.vue b/app/components/MealPlanner.vue
index cffa375e..37b8a87f 100644
--- a/app/components/MealPlanner.vue
+++ b/app/components/MealPlanner.vue
@@ -1,7 +1,8 @@
-
+
@@ -72,7 +74,7 @@
:rtl="RTL"
class="plan vc"
columns="auto, *, auto"
- @touch="!edit && touchRecipe"
+ @touch="!edit && touchRecipe($event)"
@tap="!edit && viewRecipe(item.id)"
>
-
-
+
+
@@ -118,7 +115,7 @@
@@ -127,7 +124,7 @@
col="2"
class="ico si"
:text="icon.x"
- @tap="removeRecipe(item.id)"
+ @tap="removePlan(item.id)"
/>
@@ -174,7 +171,12 @@
@tap="hasRecipes ? toggleEditMode() : randomMealPlan()"
col="3"
/> -->
-
+