started grocery list

This commit is contained in:
vishnuraghavb 2021-01-13 10:32:48 +05:30
parent 1a567d6d08
commit 9ea3ec757c
36 changed files with 4564 additions and 847 deletions

View file

@ -56,10 +56,10 @@ Page {
background: $gray1;
}
.combination,
.group-info,
.overviewItem,
.recipeItem,
.textCard {
.textCard,
.titleContainer {
background: white;
}
TextField.combinationToken {
@ -71,6 +71,7 @@ Page {
.time .bx {
color: $gray8;
}
.group-info,
.option .bx,
.option .info {
color: $gray7;
@ -109,10 +110,6 @@ Page {
color: $gray1;
background: $gray9;
}
// TabView {
// tab-background-color: $gray9;
// selected-tab-text-color: $gray1;
// }
MDButton,
MDRipple {
ripple-color: rgba($gray4, 0.1);
@ -128,18 +125,17 @@ Page {
.overviewItem,
.recipeItem,
.textCard,
.titleContainer,
TextField.combinationToken {
background: $gray8;
}
.group-info {
background: #111;
}
.sd-group-header,
.sd-item,
.tag,
.time .bx {
color: $gray3;
}
.group-info,
.option .bx,
.option .info {
color: $gray5;
@ -233,9 +229,6 @@ ActionBar {
MDButton.bx {
padding: 0;
margin: 0;
&.flip {
transform: scaleX(-1);
}
}
.title {
padding-left: 12;
@ -347,6 +340,19 @@ MDButton {
vertical-alignment: center;
}
}
.searchAll {
font-size: 14;
width: auto;
height: auto;
min-width: 0;
padding: 12;
border-radius: 4;
letter-spacing: 0;
// text-transform: none;
margin: 16;
color: $orange;
horizontal-alignment: center;
}
}
// -----------------------------
// Recipe Items
@ -421,7 +427,7 @@ RadListView {
text-align: center;
padding: 16;
line-height: 6;
margin-top: 8;
// margin-top: 8;
border-radius: 4;
}
.main-container {
@ -449,7 +455,7 @@ RadListView {
width: 100%;
border-radius: 4;
.appIcon {
height: 96;
height: 104;
}
}
// -----------------------------
@ -512,6 +518,10 @@ RadListView {
.ingredient {
font-family: 'Orkney-Regular';
margin: 0 0 0 4;
color: blue;
}
.red {
color: red;
}
.count {
width: 24;
@ -534,15 +544,11 @@ RadListView {
border-color: transparent;
}
.combination {
margin: 8 8 0;
margin: 0 8 8;
border-radius: 4;
font-size: 14;
.bx {
font-size: 24;
padding: 0 0 0 16;
}
.combinationTitle {
padding: 14 24;
padding: 14 16;
margin: 0;
line-height: 6;
}
@ -624,21 +630,22 @@ MDButton.closeBtn {
font-size: 14;
padding: 0 0 0 16;
}
MDRipple {
background: white;
}
.recipes {
margin: 0 8 8 16;
.recipe {
margin: 0 8;
.titleContainer {
border-radius: 4;
margin: 0 8 8;
}
.recipeTitle {
font-size: 14;
padding: 14 16;
line-height: 6;
}
}
// .closeBtn {
// margin: 0 16 0 4;
// vertical-alignment: top;
// }
.closeBtn {
margin: 8 0;
vertical-alignment: top;
}
MDButton,
MDRipple {
ripple-color: rgba($gray6, 0.2);
@ -657,6 +664,14 @@ MDButton.closeBtn {
color: $gray1;
background: $gray9;
}
.dialogIcon {
text-align: center;
padding: 32;
font-size: 48;
&.flip {
transform: scaleX(-1);
}
}
.dialogTitle {
line-height: 6;
padding: 24 24 16;
@ -684,6 +699,18 @@ MDButton.closeBtn {
.actionsContainer {
padding: 8;
}
.shareItem {
border-radius: 4;
margin: 0 16 16;
android-elevation: 1;
text-align: center;
.bx {
padding: 16 0 0;
}
.item {
padding: 8 16 16;
}
}
.action {
font-size: 12;
padding: 12;

View file

@ -1,148 +0,0 @@
<template>
<Page @loaded="onPageLoad">
<ActionBar :androidElevation="viewIsScrolled ? 4 : 0">
<GridLayout rows="*" columns="auto, *">
<MDButton variant="text" class="bx" :text="icon.menu" automationText="Back" @tap="showDrawer" col="0" />
<Label class="title orkm" :text="'About' | L" col="1" />
</GridLayout>
</ActionBar>
<ScrollView @scroll="onScroll">
<StackLayout class="main-container">
<StackLayout horizontalAlignment="center" orientation="horizontal" class="appIconContainer">
<Image src="res://logo" class="appIcon" stretch="aspectFit" />
</StackLayout>
<StackLayout class="m-8"></StackLayout>
<GridLayout columns="auto, *" class="option">
<Label col="0" class="bx" :text="icon.info" />
<StackLayout col="1">
<Label :text="'Version' | L" />
<Label :text="getVersion" class="info" textWrap="true" />
</StackLayout>
</GridLayout>
<GridLayout columns="auto, *" class="option">
<MDRipple colSpan="2" @tap="openURL('https://github.com/vishnuraghavb/enrecipes')" />
<Label col="0" class="bx" :text="icon.github" />
<Label verticalAlignment="center" col="1" :text="'View on GitHub' | L" textWrap="true" />
</GridLayout>
<GridLayout columns="auto, *" class="option">
<MDRipple colSpan="2" @tap="openURL('https://github.com/vishnuraghavb/EnRecipes/blob/main/PRIVACY.md')" />
<Label col="0" class="bx" :text="icon.lock" />
<Label verticalAlignment="center" col="1" :text="'Privacy policy' | L" textWrap="true" />
</GridLayout>
<GridLayout columns="auto, *" class="option">
<MDRipple colSpan="2" @tap="openURL('https://github.com/vishnuraghavb/EnRecipes/wiki/User-Guide')" />
<Label col="0" class="bx" :text="icon.compass" />
<Label verticalAlignment="center" col="1" :text="'User guide' | L" textWrap="true" />
</GridLayout>
<GridLayout columns="auto, *" class="option">
<MDRipple colSpan="2" @tap="openURL('https://www.vishnuraghav.com/donate')" />
<Label col="0" class="bx" :text="icon.donate" />
<Label verticalAlignment="center" col="1" :text="'Donate' | L" textWrap="true" />
</GridLayout>
<GridLayout columns="auto, *" class="option">
<MDRipple colSpan="2" @tap="openURL('https://t.me/enrecipes')" />
<Label col="0" class="bx" :text="icon.telegram" />
<StackLayout col="1">
<Label :text="'Join the Telegram group' | L" textWrap="true" />
<Label :text="'for reporting issues, suggestions and feedback' | L" class="info" textWrap="true" />
</StackLayout>
</GridLayout>
<StackLayout class="hr m-10"></StackLayout>
<Label :text="'Author' | L" class="group-header orkm" />
<GridLayout columns="auto, *" class="option">
<MDRipple colSpan="2" @tap="openURL('https://www.vishnuraghav.com')" />
<Label col="0" class="bx" :text="icon.user" />
<Label verticalAlignment="center" col="1" :text="'Vishnu Raghav B' | L" textWrap="true" />
</GridLayout>
<StackLayout class="hr m-10"></StackLayout>
<Label :text="'Contributors' | L" class="group-header orkm" />
<GridLayout columns="auto, *" class="option">
<MDRipple colSpan="2" @tap="openURL('https://codeberg.org/mondstern')" />
<Label col="0" class="bx" :text="icon.link" />
<StackLayout col="1">
<Label text="mondstern" textWrap="true" />
<Label :text="'Translator' | L" class="info" textWrap="true" />
</StackLayout>
</GridLayout>
<GridLayout columns="auto, *" class="option">
<MDRipple colSpan="2" @tap="openURL('https://github.com/epicalxyz')" />
<Label col="0" class="bx" :text="icon.github" />
<StackLayout col="1">
<Label text="EpicalXYZ" textWrap="true" />
<Label :text="'Translator' | L" class="info" textWrap="true" />
</StackLayout>
</GridLayout>
<GridLayout columns="auto, *" class="option">
<MDRipple colSpan="2" @tap="openURL('https://github.com/dm9pZCAq')" />
<Label col="0" class="bx" :text="icon.github" />
<StackLayout col="1">
<Label text="dm9pZCAq" textWrap="true" />
<Label :text="'Translator' | L" class="info" textWrap="true" />
</StackLayout>
</GridLayout>
<GridLayout columns="auto, *" class="option">
<MDRipple colSpan="2" @tap="openURL('https://github.com/taraletti')" />
<Label col="0" class="bx" :text="icon.github" />
<StackLayout col="1">
<Label text="AHaro88" textWrap="true" />
<Label :text="'Translator' | L" class="info" textWrap="true" />
</StackLayout>
</GridLayout>
<GridLayout columns="auto, *" class="option">
<MDRipple colSpan="2" @tap="openURL('https://github.com/RAPXT')" />
<Label col="0" class="bx" :text="icon.github" />
<StackLayout col="1">
<Label text="RAPXT" textWrap="true" />
<Label :text="'Translator' | L" class="info" textWrap="true" />
</StackLayout>
</GridLayout>
</StackLayout>
</ScrollView>
</Page>
</template>
<script>
import {
Application,
Utils,
Observable
} from "@nativescript/core"
import {
mapActions,
mapState
} from "vuex"
import * as utils from "~/shared/utils"
export default {
computed: {
...mapState( [ "icon", "currentComponent" ] ),
getVersion() {
let ctx = Application.android.context
return ctx.getPackageManager().getPackageInfo( ctx.getPackageName(), 0 ).versionName
},
},
data() {
return {
viewIsScrolled: false,
appTheme: "Light",
}
},
methods: {
...mapActions( [ "setCurrentComponentAction" ] ),
onPageLoad( args ) {
const page = args.object;
page.bindingContext = new Observable();
this.setCurrentComponentAction( "About" )
},
// HELPERS
showDrawer() {
utils.showDrawer()
},
onScroll( args ) {
this.viewIsScrolled = args.scrollY ? true : false
},
openURL( url ) {
Utils.openUrl( url )
},
},
}
</script>

View file

@ -1,4 +1,4 @@
<template>
GroceryListcui<template>
<Page @loaded="onPageLoad" actionBarHidden="true" :androidStatusBarBackground="appTheme == 'Light' ? '#f1f3f5' : '#212529'">
<RadSideDrawer allowEdgeSwipe="true" showOverNavigation="true" ref="drawer" id="sideDrawer" drawerContentSize="280" gesturesEnabled="true" drawerTransition="SlideInOnTopTransition">
<GridLayout rows="*, auto" columns="*" ~drawerContent class="sd">
@ -6,9 +6,9 @@
<GridLayout rows="48" columns="auto, *, auto" v-for="(item, index) in topmenu" :key="index" class="sd-item orkm" :class="{
'selected-sd-item': currentComponent === item.component,
}">
<MDRipple row="0" colSpan="3" @tap="navigateTo(item.component, item.component, false)" />
<Label col="0" row="0" class="bx" :text="icon[item.icon]" />
<Label col="1" row="0" :text="`${item.title}` | L" />
<MDRipple colSpan="3" @tap="navigateTo(item.component, item.component, false)" />
<Label col="0" class="bx" :text="icon[item.icon]" />
<Label col="1" :text="`${item.title}` | L" />
<Label class="recipeCount" v-if="getRecipeCount(item.title)" :text="getRecipeCount(item.title)" col="2" />
</GridLayout>
<GridLayout class="sd-group-header orkm" rows="auto" columns="*, auto" v-if="cuisinesWithRecipes.length">
@ -20,13 +20,13 @@
<GridLayout v-for="(item, index) in getRecipeList" :key="index" class="sd-item orkm" :class="{
'selected-sd-item': selectedTag == item,
}" columns="auto, *, auto">
<MDRipple row="0" colSpan="3" @tap="setRecipeFilter(item)" />
<MDRipple colSpan="3" @tap="setFilter && setRecipeFilter(item)" />
<Label col="0" class="bx" :text="icon[selectedFilterType]" />
<Label col="1" :text="`${item}` | L" />
<Label class="recipeCount" :text="getRecipeCount(item)" col="2" />
</GridLayout>
<GridLayout v-if="selectedFilterType=='tag' && !tagsWithRecipes.length" columns="*" rows="*">
<Label class="noTags" :text="'No tags available' | L" textWrap="true" />
<GridLayout v-if="selectedFilterType =='tag' && !tagsWithRecipes.length" columns="*" rows="*">
<Label class="noTags" :text="'noTs' | L" textWrap="true" />
</GridLayout>
</StackLayout>
</ScrollView>
@ -34,32 +34,38 @@
<StackLayout row="1">
<StackLayout class="hr" margin="0 8 8"></StackLayout>
<GridLayout rows="48" columns="auto, *" class="sd-item orkm" :class="{
'selected-sd-item': currentComponent === 'MealPlanner',
'selected-sd-item': currentComponent == 'MealPlanner',
}">
<MDRipple row="0" colSpan="3" @tap="navigateTo(MealPlanner, 'MealPlanner', true)" />
<Label col="0" row="0" class="bx" :text="icon.calendar" />
<Label col="2" row="0" :text="'Meal Planner' | L" />
<Label col="0" class="bx" :text="icon.calendar" />
<Label col="2" :text="'planner' | L" />
</GridLayout>
<!-- <GridLayout rows="48" columns="auto, *" class="sd-item orkm" :class="{
'selected-sd-item': currentComponent === 'MealPlanner',
<GridLayout rows="48" columns="auto, *" class="sd-item orkm" :class="{
'selected-sd-item': currentComponent == 'GroceryList',
}">
<MDRipple row="0" colSpan="3" @tap="navigateTo(MealPlanner, 'MealPlanner', true)" />
<Label col="0" row="0" class="bx" :text="icon.cart" />
<Label col="2" row="0" :text="'Shopping List' | L" />
</GridLayout> -->
<MDRipple row="0" colSpan="3" @tap="navigateTo(GroceryList, 'GroceryList', true)" />
<Label col="0" class="bx" :text="icon.cart" />
<Label col="2" :text="'grocery' | L" />
</GridLayout>
<StackLayout class="hr" margin="8"></StackLayout>
<GridLayout class="sd-item orkm" :class="{
'selected-sd-item': currentComponent == item.title,
}" v-for="(item, index) in bottommenu" :key="index" rows="48" columns="auto, *">
<MDRipple colSpan="3" @tap="navigateTo(item.component, 'item.title', true)" />
<Label class="bx" col="0" :text="icon[item.icon]" />
<Label col="2" :text="`${item.title}` | L" />
'selected-sd-item': currentComponent == 'Settings',
}" rows="48" columns="auto, *">
<MDRipple colSpan="3" @tap="navigateTo(Settings, 'Settings', true)" />
<Label class="bx" col="0" :text="icon.cog" />
<Label col="2" :text="'Settings' | L" />
</GridLayout>
</StackLayout>
</GridLayout>
<Frame ~mainContent id="main-frame">
<EnRecipes ref="enrecipes" :filterFavourites="filterFavourites" :filterTrylater="filterTrylater" :selectedCuisine="selectedCuisine" :selectedCategory="selectedCategory" :selectedTag="selectedTag" :closeDrawer="closeDrawer"
:hijackGlobalBackEvent="hijackGlobalBackEvent" :releaseGlobalBackEvent="releaseGlobalBackEvent" />
:hijackGlobalBackEvent="hijackGlobalBackEvent" :releaseGlobalBackEvent="releaseGlobalBackEvent"
@backToHome="backToHome"
/>
</Frame>
</RadSideDrawer>
</Page>
@ -87,9 +93,10 @@ import {
from "vuex"
import EnRecipes from "./EnRecipes"
import MealPlanner from "./MealPlanner"
import GroceryList from "./GroceryList"
import Settings from "./Settings"
import About from "./About"
import PromptDialog from "./modal/PromptDialog"
let filterTimer;
export default {
data() {
return {
@ -100,41 +107,37 @@ export default {
filterFavourites: false,
filterTrylater: false,
MealPlanner: MealPlanner,
GroceryList: GroceryList,
Settings: Settings,
topmenu: [ {
title: "EnRecipes",
component: "EnRecipes",
icon: "home",
}, {
title: "Try Later",
title: "trylater",
component: "Try Later",
icon: "trylater",
}, {
title: "Favourites",
title: "favourites",
component: "Favourites",
icon: "heart",
}, ],
bottommenu: [ {
title: "Settings",
component: Settings,
icon: "cog",
}, {
title: "About",
component: About,
icon: "info",
}, ],
appTheme: "Light",
setFilter: true,
}
},
components: {
EnRecipes,
MealPlanner,
GroceryList,
Settings
},
computed: {
...mapState( [ "icon", "recipes", "cuisines", "categories", "yieldUnits", "mealPlans", "currentComponent" ] ),
getCurrentPath() {
let path = "/"
if ( this.selectedCuisine ) path += localize( this.selectedCuisine )
else path = "Cuisines"
else path = "cuis"
if ( this.selectedCategory ) path += "/" + localize( this.selectedCategory )
if ( this.selectedTag ) path += "/" + localize( this.selectedTag )
return path;
@ -153,22 +156,22 @@ export default {
}
},
cuisinesWithRecipes() {
let arr = this.recipes.map( ( e ) => e.cuisine )
return arr.length ? [ "All Cuisines", ...new Set( arr ) ] : []
let arr = this.recipes.map( ( e ) => e.cuisine ).sort()
return arr.length ? [ "allCuis", ...new Set( arr ) ] : []
},
categoriesWithRecipes() {
let arr = this.recipes.map( e => ( this.selectedCuisine === "All Cuisines" || e.cuisine === this.selectedCuisine ) && e.category ).filter( e => e )
return arr.length ? [ "All Categories", ...new Set( arr ) ] : []
let arr = this.recipes.map( e => ( this.selectedCuisine === "allCuis" || e.cuisine === this.selectedCuisine ) && e.category ).filter( e => e ).sort()
return arr.length ? [ "allCats", ...new Set( arr ) ] : []
},
tagsWithRecipes() {
let arr = this.recipes.map( e => {
if ( this.selectedCuisine === "All Cuisines" && this.selectedCategory === "All Categories" && e.tags.length ) return e.tags;
else if ( this.selectedCuisine === "All Cuisines" && e.category === this.selectedCategory && e.tags.length ) return e.tags;
else if ( this.selectedCategory === "All Categories" && e.cuisine === this.selectedCuisine && e.tags.length ) return e.tags;
if ( this.selectedCuisine === "allCuis" && this.selectedCategory === "allCats" && e.tags.length ) return e.tags;
else if ( this.selectedCuisine === "allCuis" && e.category === this.selectedCategory && e.tags.length ) return e.tags;
else if ( this.selectedCategory === "allCats" && e.cuisine === this.selectedCuisine && e.tags.length ) return e.tags;
else if ( e.category === this.selectedCategory && e.cuisine === this.selectedCuisine && e.tags.length ) return e.tags;
} ).flat().filter( e => e )
let showAllTags = this.selectedCuisine === "All Cuisines" && this.selectedCategory === "All Categories"
return arr.length ? [ !showAllTags && "All Tags", ...new Set( arr ) ].filter( e => e ) : []
} ).flat().filter( e => e ).sort()
let showAllTags = this.selectedCuisine === "allCuis" && this.selectedCategory === "allCats"
return arr.length ? [ !showAllTags && "allTs", ...new Set( arr ) ].filter( e => e ) : []
},
},
methods: {
@ -183,36 +186,44 @@ export default {
},
// HELPERS
setRecipeFilter( item ) {
this.setFilter = this.filterFavourites = this.filterTrylater = false
this.$navigateBack( {
frame: "main-frame",
backstackVisible: false
} )
this.filterFavourites = this.filterTrylater = false
if ( this.selectedCuisine == null ) {
this.selectedFilterType = 'category'
this.selectedCuisine = item
} else if ( this.selectedCategory == null ) {
this.selectedFilterType = 'tag'
this.selectedCategory = item
if ( !this.tagsWithRecipes.length ) this.closeDrawer()
} else {
this.selectedTag = item;
this.closeDrawer()
}
this.setCurrentComponentAction( "Filtered result" )
this.$refs.enrecipes.updateFilter()
setTimeout( e => {
if ( this.selectedCuisine == null ) {
this.selectedCuisine = item
this.selectedFilterType = 'category'
} else if ( this.selectedCategory == null ) {
this.selectedCategory = item
this.selectedFilterType = 'tag'
if ( !this.tagsWithRecipes.length ) this.closeDrawer()
} else {
this.selectedTag = item;
this.closeDrawer()
}
this.setFilter = true
}, 200 )
clearTimeout( filterTimer )
filterTimer = setTimeout( e => {
this.setCurrentComponentAction( "Filtered recipes" )
this.$refs.enrecipes.updateFilter()
}, 750 )
},
previousRecipeFilter() {
if ( this.selectedCategory ) {
this.selectedFilterType = 'category'
this.selectedTag = this.selectedCategory = null
this.setCurrentComponentAction( "Filtered result" )
this.setCurrentComponentAction( "Filtered recipes" )
} else {
this.selectedFilterType = 'cuisine'
this.selectedCuisine = null
this.setCurrentComponentAction( "EnRecipes" )
}
this.$refs.enrecipes.updateFilter()
clearTimeout( filterTimer )
filterTimer = setTimeout( e => this.$refs.enrecipes.updateFilter(), 750 )
},
closeDrawer() {
this.$refs.drawer.nativeView.closeDrawer()
@ -223,31 +234,31 @@ export default {
case 'EnRecipes':
count = this.recipes.length
break;
case 'Try Later':
case 'trylater':
count = this.recipes.filter( e => !e.tried ).length
break;
case 'Favourites':
case 'favourites':
count = this.recipes.filter( e => e.isFavorite ).length
break;
default: {
switch ( this.selectedFilterType ) {
case 'cuisine':
count = this.recipes.filter( e => arg === "All Cuisines" ? e.cuisine : e.cuisine === arg ).length
count = this.recipes.filter( e => arg === "allCuis" ? e.cuisine : e.cuisine === arg ).length
break;
case 'category':
count = this.recipes.filter( e => this.selectedCuisine === "All Cuisines" ? arg === "All Categories" ? e.category : e.category === arg : arg === "All Categories" ? e.cuisine === this.selectedCuisine && e.category : e.cuisine === this
count = this.recipes.filter( e => this.selectedCuisine === "allCuis" ? arg === "allCats" ? e.category : e.category === arg : arg === "allCats" ? e.cuisine === this.selectedCuisine && e.category : e.cuisine === this
.selectedCuisine && e.category === arg ).length
break;
case 'tag':
count = this.recipes.filter( e => {
if ( this.selectedCuisine === "All Cuisines" && this.selectedCategory === "All Categories" ) {
return e.tags.includes( arg ) || arg === "All Tags"
} else if ( this.selectedCuisine === "All Cuisines" && e.category === this.selectedCategory ) {
return e.tags.includes( arg ) || arg === "All Tags"
} else if ( this.selectedCategory === "All Categories" && e.cuisine === this.selectedCuisine ) {
return e.tags.includes( arg ) || arg === "All Tags"
if ( this.selectedCuisine === "allCuis" && this.selectedCategory === "allCats" ) {
return e.tags.includes( arg ) || arg === "allTs"
} else if ( this.selectedCuisine === "allCuis" && e.category === this.selectedCategory ) {
return e.tags.includes( arg ) || arg === "allTs"
} else if ( this.selectedCategory === "allCats" && e.cuisine === this.selectedCuisine ) {
return e.tags.includes( arg ) || arg === "allTs"
} else if ( e.category === this.selectedCategory && e.cuisine === this.selectedCuisine ) {
return e.tags.includes( arg ) || arg === "All Tags"
return e.tags.includes( arg ) || arg === "allTs"
}
} ).length
break;
@ -271,16 +282,19 @@ export default {
preventDefault()
this.closeDrawer()
} else if (
[ "Favourites", "Try Later", "Filtered result" ].includes( this.currentComponent ) ) {
[ "Favourites", "Try Later", "Filtered recipes" ].includes( this.currentComponent ) ) {
preventDefault()
this.setCurrentComponentAction( "EnRecipes" )
this.filterFavourites = this.filterTrylater = false
this.selectedTag = this.selectedCategory = this.selectedCuisine = null
this.selectedFilterType = "cuisine"
this.$refs.enrecipes.updateFilter()
this.backToHome()
this.releaseGlobalBackEvent()
}
},
backToHome() {
this.setCurrentComponentAction( "EnRecipes" )
this.filterFavourites = this.filterTrylater = false
this.selectedTag = this.selectedCategory = this.selectedCuisine = null
this.selectedFilterType = "cuisine"
this.$refs.enrecipes.updateFilter()
},
navigateTo( to, title, isTrueComponent ) {
if ( title !== this.currentComponent ) {
if ( isTrueComponent ) {

View file

@ -1,5 +1,5 @@
<template>
<Page @loaded="onPageLoad" @unloaded="releaseBackEvent">
<Page @loaded="onPageLoad" @unloaded="onPageUnload">
<ActionBar :androidElevation="viewIsScrolled ? 4 : 0">
<GridLayout rows="*" columns="auto, *, auto">
<MDButton variant="text" class="bx" :text="icon.back" automationText="Back" col="0" @tap="navigateBack" />
@ -21,45 +21,45 @@
</AbsoluteLayout>
<StackLayout margin="0 16">
<AbsoluteLayout class="inputField">
<TextField :hint="'My Healthy Recipe' | L" v-model="recipeContent.title" @loaded="setInputTypeText($event, 'words')" />
<Label top="0" class="fieldLabel" :text="'Title' | L" />
<TextField :hint="'recTitle' | L" v-model="recipeContent.title" @loaded="setInputTypeText($event, 'words')" />
<Label top="0" class="fieldLabel" :text="'title' | L" />
</AbsoluteLayout>
<GridLayout columns="*, 8, *">
<AbsoluteLayout class="inputField" col="0">
<TextField :text="`${recipeContent.cuisine}` | L" editable="false" @focus="modalOpen === false && showCuisine(true)" @tap="showCuisine(false)" />
<Label top="0" class="fieldLabel" :text="'Cuisine' | L" />
<Label top="0" class="fieldLabel" :text="'cui' | L" />
</AbsoluteLayout>
<AbsoluteLayout class="inputField" col="2">
<TextField ref='category' :text="`${recipeContent.category}` | L" editable="false" @focus="modalOpen === false && showCategories(true)" @tap="showCategories(false)" />
<Label top="0" class="fieldLabel" :text="'Category' | L" />
<Label top="0" class="fieldLabel" :text="'cat' | L" />
</AbsoluteLayout>
</GridLayout>
<AbsoluteLayout class="inputField">
<TextField autocapitalizationType="words" ref='tags' :hint="`${$options.filters.L('separate with spaces')}`" v-model="tags" @textChange="splitTags" returnKeyType="next" />
<Label top="0" class="fieldLabel" :text="`${$options.filters.L('Tags')} (${$options.filters.L('separate with spaces')})`" />
<TextField autocapitalizationType="words" ref='tags' :hint="`${$options.filters.L('tsInfo')}`" v-model="tags" @textChange="splitTags" returnKeyType="next" />
<Label top="0" class="fieldLabel" :text="`${$options.filters.L('ts')} (${$options.filters.L('tsInfo')})`" />
</AbsoluteLayout>
<GridLayout columns="*, 8, *">
<AbsoluteLayout class="inputField" col="0">
<TextField :text="timeRequired('prepTime')" editable="false" @focus="
modalOpen === false && setTimeRequired(true, 'prepTime')
" @tap="setTimeRequired(false, 'prepTime')" />
<Label top="0" class="fieldLabel" :text="'Preparation time' | L" />
<Label top="0" class="fieldLabel" :text="'prepT' | L" />
</AbsoluteLayout>
<AbsoluteLayout class="inputField" col="2">
<TextField ref="cookTime" :text="timeRequired('cookTime')" editable="false" @focus="
modalOpen === false && setTimeRequired(true, 'cookTime')
" @tap="setTimeRequired(false, 'cookTime')" />
<Label top="0" class="fieldLabel" :text="'Cooking time' | L" />
<Label top="0" class="fieldLabel" :text="'cookT' | L" />
</AbsoluteLayout>
</GridLayout>
<GridLayout columns="*, 8, *">
<AbsoluteLayout class="inputField" col="0">
<TextField ref="yieldQuantity" v-model="recipeContent.yield.quantity" hint="1" keyboardType="number" returnKeyType="next" />
<Label top="0" class="fieldLabel" :text="'Yield quantity' | L" />
<Label top="0" class="fieldLabel" :text="'yieldQ' | L" />
</AbsoluteLayout>
<AbsoluteLayout class="inputField" col="2">
<TextField :text="`${recipeContent.yield.unit}` | L" editable="false" @focus="modalOpen === false && showYieldUnits(true)" @tap="showYieldUnits(false)" />
<Label top="0" class="fieldLabel" :text="'Yield measured in' | L" />
<Label top="0" class="fieldLabel" :text="'yieldU' | L" />
</AbsoluteLayout>
</GridLayout>
<GridLayout columns="*, 8, *">
@ -71,46 +71,46 @@
<StackLayout class="hr" margin="24 16"></StackLayout>
</StackLayout>
<StackLayout margin="0 16">
<Label :text="'Ingredients' | L" class="sectionTitle" />
<Label :text="'ings' | L" class="sectionTitle" />
<GridLayout columns="auto,8,auto,8,*,8,auto" v-for="(ingredient, index) in recipeContent.ingredients" :key="index">
<TextField width="60" col="0" @loaded="!recipeContent.ingredients[index].item && focusField($event)" v-model="recipeContent.ingredients[index].quantity" hint="1.00" keyboardType="number" returnKeyType="next" />
<TextField width="76" col="2" :text="`${recipeContent.ingredients[index].unit}` | L" editable="false" @focus="modalOpen === false && showUnits($event, true, index)" @tap="showUnits($event, false, index)" />
<TextField ref="ingredient" @loaded="setInputTypeText($event, 'sentence')" col="4" v-model="recipeContent.ingredients[index].item" :hint="`${$options.filters.L('Item')} ${index + 1}`"
<TextField ref="ingredient" @loaded="setInputTypeText($event, 'sentence')" col="4" v-model="recipeContent.ingredients[index].item" :hint="`${$options.filters.L('it')} ${index + 1}`"
@returnPress="index+1 == recipeContent.ingredients.length && addIngredient()" />
<MDButton variant="text" col="6" class="bx closeBtn" :text="icon.close" @tap="removeIngredient(index)" />
</GridLayout>
<MDButton variant="text" class="text-btn orkm" :text="`+ ${$options.filters.L('ADD INGREDIENT')}`" @tap="addIngredient()" />
<MDButton variant="text" class="text-btn orkm" :text="`+ ${$options.filters.L('aIngBtn')}`" @tap="addIngredient()" />
<StackLayout class="hr" margin="24 16"></StackLayout>
</StackLayout>
<StackLayout margin="0 16">
<Label :text="'Instructions' | L" class="sectionTitle" />
<Label :text="'inss' | L" class="sectionTitle" />
<GridLayout columns="*,8,auto" v-for="(instruction, index) in recipeContent.instructions" :key="index">
<TextView @loaded="focusField($event, 'multiLine')" col="0" :hint="`${$options.filters.L('Step')} ${index + 1}`" v-model="recipeContent.instructions[index]" />
<TextView @loaded="focusField($event, 'multiLine')" col="0" :hint="`${$options.filters.L('stp')} ${index + 1}`" v-model="recipeContent.instructions[index]" />
<MDButton variant="text" col="2" class="bx closeBtn" :text="icon.close" @tap="removeInstruction(index)" />
</GridLayout>
<MDButton variant="text" class="text-btn orkm" :text="`+ ${$options.filters.L('ADD STEP')}`" @tap="addInstruction" />
<MDButton variant="text" class="text-btn orkm" :text="`+ ${$options.filters.L('aStpBtn')}`" @tap="addInstruction" />
<StackLayout class="hr" margin="24 16"></StackLayout>
</StackLayout>
<StackLayout margin="0 16">
<Label :text="'Notes' | L" class="sectionTitle" />
<Label :text="'nos' | L" class="sectionTitle" />
<GridLayout columns="*,8,auto" v-for="(note, index) in recipeContent.notes" :key="index">
<TextView @loaded="focusField($event, 'multiLine')" col="0" :hint="`${$options.filters.L('Note')} ${index + 1}`" v-model="recipeContent.notes[index]" />
<TextView @loaded="focusField($event, 'multiLine')" col="0" :hint="`${$options.filters.L('no')} ${index + 1}`" v-model="recipeContent.notes[index]" />
<MDButton variant="text" col="2" class="bx closeBtn" :text="icon.close" @tap="removeNote(index)" />
</GridLayout>
<MDButton variant="text" class="text-btn orkm" :text="`+ ${$options.filters.L('ADD NOTE')}`" @tap="addNote" />
<MDButton variant="text" class="text-btn orkm" :text="`+ ${$options.filters.L('aNoBtn')}`" @tap="addNote" />
<StackLayout class="hr" margin="24 16"></StackLayout>
</StackLayout>
<StackLayout margin="0 16">
<Label :text="'Combinations' | L" class="sectionTitle" />
<Label :text="'cmbs' | L" class="sectionTitle" />
<GridLayout columns="*,8,auto" v-for="(combination, index) in recipeContent.combinations" :key="index">
<TextField class="combinationToken" col="0" :text="getCombinationTitle(combination)" editable="false" />
<MDButton variant="text" col="2" class="bx closeBtn" :text="icon.close" @tap="removeCombination(combination)" />
</GridLayout>
<MDButton variant="text" class="text-btn orkm" :text="`+ ${$options.filters.L('ADD COMBINATION')}`" @tap="showCombinations" />
<MDButton variant="text" class="text-btn orkm" :text="`+ ${$options.filters.L('addCmbBtn')}`" @tap="showCombinations" />
</StackLayout>
</StackLayout>
</ScrollView>
@ -143,6 +143,10 @@ import {
localize
}
from "@nativescript/localize"
import {
SnackBar
} from '@nativescript-community/ui-material-snackbar';
const snackbar = new SnackBar();
import {
mapState,
mapActions
@ -159,7 +163,7 @@ export default {
props: [ "recipeID", "selectedCuisine", "selectedCategory", "selectedTag", "filterFavourites", "filterTrylater", "navigationFromView", ],
data() {
return {
title: "New recipe",
title: "newRec",
viewIsScrolled: false,
recipeContent: {
imageSrc: null,
@ -184,6 +188,7 @@ export default {
lastTried: null,
lastModified: null,
created: null,
inCart: false,
},
tempRecipeContent: {},
tags: undefined,
@ -220,6 +225,10 @@ export default {
page.bindingContext = new Observable();
this.showFab = true
},
onPageUnload() {
this.releaseBackEvent()
snackbar.dismiss()
},
timeRequired( time ) {
let t = this.recipeContent[ time ].split( ":" )
let h = parseInt( t[ 0 ] )
@ -268,7 +277,7 @@ export default {
let min = t[ 1 ]
this.$showModal( ListPicker, {
props: {
title: `${time == "prepTime" ? "Preparation" : "Cooking"} time`,
title: `${time == "prepTime" ? "prepT" : "cookT"}`,
action: "SET",
selectedHr: hr,
selectedMin: min,
@ -301,23 +310,24 @@ export default {
this.releaseBackEvent()
this.$showModal( ActionDialog, {
props: {
title: "Cuisine",
title: "cui",
list: this.cuisines,
stretch: true,
action: "ADD NEW",
action: "aNBtn",
helpIcon: 'cuisine',
},
} ).then( ( action ) => {
if ( action == "ADD NEW" ) {
if ( action == "aNBtn" ) {
this.$showModal( PromptDialog, {
props: {
title: "New cuisine",
action: "ADD",
title: "newCui",
action: "aBtn",
helpIcon: 'cuisine',
},
} ).then( ( item ) => {
this.hijackBackEvent()
if ( item.length ) {
this.recipeContent.cuisine = item
ApplicationSettings.setString( "previousCuisine", item )
this.addListItemAction( {
item,
listName: 'cuisines'
@ -328,7 +338,6 @@ export default {
} )
} else if ( action ) {
this.recipeContent.cuisine = action
ApplicationSettings.setString( "previousCuisine", action )
this.hijackBackEvent()
this.modalOpen = false
if ( focus ) this.autoFocusField( "category", false )
@ -343,23 +352,24 @@ export default {
this.releaseBackEvent()
this.$showModal( ActionDialog, {
props: {
title: "Category",
title: "cat",
list: this.categories,
stretch: true,
action: "ADD NEW",
action: "aNBtn",
helpIcon: 'category',
},
} ).then( ( action ) => {
if ( action == "ADD NEW" ) {
if ( action == "aNBtn" ) {
this.$showModal( PromptDialog, {
props: {
title: "New category",
action: "ADD",
title: "nwCat",
action: "aBtn",
helpIcon: 'category',
},
} ).then( ( item ) => {
this.hijackBackEvent()
if ( item.length ) {
this.recipeContent.category = item
ApplicationSettings.setString( "previousCategory", item )
this.addListItemAction( {
item,
listName: 'categories'
@ -370,7 +380,6 @@ export default {
} )
} else if ( action ) {
this.recipeContent.category = action
ApplicationSettings.setString( "previousCategory", action )
this.hijackBackEvent()
this.modalOpen = false
if ( focus ) this.autoFocusField( "tags", true )
@ -385,23 +394,24 @@ export default {
this.releaseBackEvent()
this.$showModal( ActionDialog, {
props: {
title: "Yield measured in",
title: "yieldU",
list: this.yieldUnits,
stretch: true,
action: "ADD NEW",
action: "aNBtn",
helpIcon: 'dish',
},
} ).then( ( action ) => {
if ( action == "ADD NEW" ) {
if ( action == "aNBtn" ) {
this.$showModal( PromptDialog, {
props: {
title: "New yield unit",
action: "ADD",
title: "nwYiU",
action: "aBtn",
helpIcon: 'dish',
},
} ).then( ( item ) => {
this.hijackBackEvent()
if ( item.length ) {
this.recipeContent.yield.unit = item
ApplicationSettings.setString( "previousYieldUnit", item )
this.addListItemAction( {
item,
listName: 'yieldUnits'
@ -412,7 +422,6 @@ export default {
} )
} else if ( action ) {
this.recipeContent.yield.unit = action
ApplicationSettings.setString( "previousYieldUnit", action )
this.hijackBackEvent()
this.modalOpen = false
if ( focus ) this.autoFocusField( "difficultyLevel", false )
@ -430,6 +439,7 @@ export default {
title: "Difficulty level",
list: this.difficultyLevels,
stretch: false,
helpIcon: 'meter',
},
} ).then( ( action ) => {
if ( action ) {
@ -448,18 +458,19 @@ export default {
this.releaseBackEvent()
this.$showModal( ActionDialog, {
props: {
title: "Units",
title: "Unit",
list: this.units,
stretch: true,
action: "ADD NEW",
action: "aNBtn",
helpIcon: 'ruler',
},
} ).then( ( action ) => {
this.hijackBackEvent()
if ( action == "ADD NEW" ) {
if ( action == "aNBtn" ) {
this.$showModal( PromptDialog, {
props: {
title: "New unit",
action: "ADD",
title: "newUnit",
action: "aBtn",
helpIcon: 'ruler',
},
} ).then( ( item ) => {
this.hijackBackEvent()
@ -472,12 +483,11 @@ export default {
this.modalOpen = false
if ( focus && this.recipeContent.ingredients.length - 1 === index )
this.autoFocusRefField( 'ingredient', index )
}
} )
} else if ( action ) {
this.recipeContent.ingredients[ index ].unit = action
this.hijackBackEvent()
this.modalOpen = false
if ( focus && this.recipeContent.ingredients.length - 1 === index ) this.autoFocusRefField( 'ingredient', index )
}
@ -514,10 +524,12 @@ export default {
this.blockModal = true
this.$showModal( ConfirmDialog, {
props: {
title: "Unsaved changes",
description: localize( "Are you sure you want to discard unsaved changes to this recipe?" ),
cancelButtonText: "DISCARD",
okButtonText: "KEEP EDITING",
title: "unsaved",
description: localize( "disc" ),
cancelButtonText: "disBtn",
okButtonText: "kEdit",
helpIcon: 'error',
bgColor: '#c92a2a',
},
} ).then( ( action ) => {
this.blockModal = false
@ -550,9 +562,11 @@ export default {
this.blockModal = true
this.$showModal( ConfirmDialog, {
props: {
title: "Recipe photo",
cancelButtonText: "REMOVE",
okButtonText: "REPLACE PHOTO",
title: "recPic",
cancelButtonText: "rBtn",
okButtonText: "repBtn",
helpIcon: 'image',
bgColor: '#adb5bd',
},
} ).then( ( action ) => {
this.blockModal = false
@ -570,10 +584,12 @@ export default {
permissionConfirmation() {
return this.$showModal( ConfirmDialog, {
props: {
title: "Grant permission",
description: localize( "EnRecipes requires storage permission in order to set recipe photo." ),
cancelButtonText: "NOT NOW",
okButtonText: "CONTINUE",
title: "grant",
description: localize( "reqAcc" ),
cancelButtonText: "nNBtn",
okButtonText: "conBtn",
helpIcon: 'folder',
bgColor: '#ff5200',
},
} )
},
@ -590,7 +606,7 @@ export default {
ApplicationSettings.setBoolean( "storagePermissionAsked", true )
break
case "denied":
Toast.makeText( localize( "Permission denied" ) ).show()
Toast.makeText( localize( "dend" ) ).show()
break
default:
break
@ -618,7 +634,7 @@ export default {
height: 1080,
}, {
hideBottomControls: true,
toolbarTitle: localize( "Crop photo" ),
toolbarTitle: localize( "cPic" ),
statusBarColor: "#ff5200",
toolbarTextColor: this.appTheme == "light" ? "#212529" : "#f1f3f5",
toolbarColor: this.appTheme == "light" ? "#f1f3f5" : "#212529",
@ -646,14 +662,16 @@ export default {
joinTags() {
this.tags = this.recipeContent.tags.join( " " )
},
fieldDeletionConfirm( title ) {
return this.$showModal( ConfirmDialog, {
props: {
title,
cancelButtonText: "CANCEL",
okButtonText: "REMOVE",
},
} )
undoDeletion( message ) {
return snackbar
.action( {
message,
textColor: this.appTheme == "light" ? "#f1f3f5" : "#212529",
actionTextColor: '#ff5200',
backgroundColor: this.appTheme == "light" ? "#212529" : "#f1f3f5",
actionText: 'Undo',
hideDelay: 5000
} )
},
addIngredient() {
let ingredients = this.recipeContent.ingredients
@ -667,10 +685,11 @@ export default {
removeIngredient( index ) {
this.modalOpen = true
if ( this.recipeContent.ingredients[ index ].item.length ) {
this.fieldDeletionConfirm( "Remove ingredient?" ).then( ( res ) => {
if ( res ) {
this.recipeContent.ingredients.splice( index, 1 )
}
let item = this.recipeContent.ingredients[ index ]
this.recipeContent.ingredients.splice( index, 1 )
this.undoDeletion( `${this.$options.filters.L('rmIng')}` ).then( res => {
if ( res.command === 'action' )
this.recipeContent.ingredients.splice( index, 0, item )
} )
} else {
this.recipeContent.ingredients.splice( index, 1 )
@ -682,15 +701,35 @@ export default {
},
removeInstruction( index ) {
if ( this.recipeContent.instructions[ index ].length ) {
this.fieldDeletionConfirm( "Remove instruction?" ).then( ( res ) => {
res && this.recipeContent.instructions.splice( index, 1 )
let item = this.recipeContent.instructions[ index ]
this.recipeContent.instructions.splice( index, 1 )
this.undoDeletion( `${this.$options.filters.L('rmIns')}` ).then( res => {
if ( res.command === 'action' ) {
this.recipeContent.instructions.splice( index, 0, item )
}
} )
} else this.recipeContent.instructions.splice( index, 1 )
},
addNote() {
this.recipeContent.notes.push( "" )
},
removeNote( index ) {
if ( this.recipeContent.notes[ index ].length ) {
let item = this.recipeContent.notes[ index ]
this.recipeContent.notes.splice( index, 1 )
this.undoDeletion( `${this.$options.filters.L('rmN')}` ).then( res => {
if ( res.command === 'action' ) {
this.recipeContent.notes.splice( index, 0, item )
}
} )
} else this.recipeContent.notes.splice( index, 1 )
},
getCombinationTitle( id ) {
return this.recipes.filter( ( e ) => e.id === id )[ 0 ].title
},
showCombinations() {
this.modalOpen = true
this.releaseBackEvent()
let existingCombinations = [ ...this.recipeContent.combinations,
this.recipeContent.id,
]
@ -698,10 +737,12 @@ export default {
( e ) => !existingCombinations.includes( e.id ) )
this.$showModal( ActionDialogWithSearch, {
props: {
title: "Select a recipe",
title: "selRec",
recipes: filteredRecipes,
helpIcon: 'outline',
},
} ).then( ( res ) => {
this.hijackBackEvent()
if ( res ) {
this.recipeContent.combinations.push( res )
}
@ -709,26 +750,18 @@ export default {
},
removeCombination( id ) {
let index = this.recipeContent.combinations.indexOf( id )
this.fieldDeletionConfirm( "Remove combination?" ).then( res => {
if ( res ) {
this.recipeContent.combinations.splice( index, 1 )
this.unSyncCombinations.push( id )
this.recipeContent.combinations.splice( index, 1 )
this.unSyncCombinations.push( id )
this.undoDeletion( `${this.$options.filters.L('rmCmb')}` ).then( res => {
if ( res.command === 'action' ) {
console.log( this.recipeContent.combinations, index, id );
this.recipeContent.combinations.splice( index, 0, id )
}
} )
},
addNote() {
this.recipeContent.notes.push( "" )
},
removeNote( index ) {
if ( this.recipeContent.notes[ index ].length ) {
this.fieldDeletionConfirm( "Remove note?" ).then( ( res ) => {
if ( res ) this.recipeContent.notes.splice( index, 1 )
} )
} else this.recipeContent.notes.splice( index, 1 )
},
// SAVE OPERATION
clearEmptyFields() {
if ( !this.recipeContent.title ) this.recipeContent.title = localize( "Untitled Recipe" )
if ( !this.recipeContent.title ) this.recipeContent.title = localize( "untRec" )
if ( !this.recipeContent.yield.quantity ) this.recipeContent.yield.quantity = 1
this.recipeContent.ingredients = this.recipeContent.ingredients.filter(
( e ) => e.item )
@ -744,6 +777,9 @@ export default {
this.saving = this.modalOpen = true
this.clearEmptyFields()
this.recipeContent.lastModified = new Date()
ApplicationSettings.setString( "previousCuisine", this.recipeContent.cuisine )
ApplicationSettings.setString( "previousCategory", this.recipeContent.category )
ApplicationSettings.setString( "previousYieldUnit", this.recipeContent.yield.unit )
if ( this.cacheImagePath ) {
let recipeImage = path.join( knownFolders.documents().getFolder( "EnRecipes" ).getFolder( "Images" ).path, `${this.getRandomID()}.jpg` )
let binarySource = File.fromPath( this.cacheImagePath ).readSync()
@ -787,16 +823,16 @@ export default {
setTimeout( ( e ) => {
this.setCurrentComponentAction( "EditRecipe" )
}, 500 )
this.title = this.recipeID ? "Edit recipe" : "New recipe"
this.title = this.recipeID ? "editRec" : "newRec"
if ( this.recipeID ) {
let recipe = this.recipes.filter( ( e ) => e.id === this.recipeID )[ 0 ]
Object.assign( this.recipeContent, JSON.parse( JSON.stringify( recipe ) ) )
Object.assign( this.tempRecipeContent, JSON.parse( JSON.stringify( this.recipeContent ) ) )
if ( this.recipeContent.tags.length ) this.joinTags()
} else {
this.recipeContent.cuisine = this.selectedCuisine ? /All/.test( this.selectedCuisine ) ? "Undefined" : this.selectedCuisine : ApplicationSettings.getString( "previousCuisine", "Undefined" )
this.recipeContent.category = this.selectedCategory ? /All/.test( this.selectedCategory ) ? "Undefined" : this.selectedCategory : ApplicationSettings.getString( "previousCategory", "Undefined" )
if ( this.selectedTag && !/All/.test( this.selectedTag ) ) {
this.recipeContent.cuisine = this.selectedCuisine ? /all/.test( this.selectedCuisine ) ? "Undefined" : this.selectedCuisine : ApplicationSettings.getString( "previousCuisine", "Undefined" )
this.recipeContent.category = this.selectedCategory ? /all/.test( this.selectedCategory ) ? "Undefined" : this.selectedCategory : ApplicationSettings.getString( "previousCategory", "Undefined" )
if ( this.selectedTag && !/all/.test( this.selectedTag ) ) {
this.tags = this.selectedTag
this.splitTags()
}

View file

@ -3,7 +3,7 @@
<ActionBar :androidElevation="viewIsScrolled ? 4 : 0">
<GridLayout v-if="showSearch" columns="auto, *" verticalAlignment="center">
<MDButton class="bx" :text="icon.back" variant="text" automationText="Back" col="0" @tap="closeSearch" />
<SearchBar col="1" :hint="'Search' | L" v-model="searchQuery" @textChange="updateFilter" @clear="clearSearch" />
<SearchBar col="1" :hint="'ser' | L" v-model="searchQuery" @textChange="callUpdateFilter" @clear="clearSearch" />
</GridLayout>
<GridLayout v-else columns="auto, *, auto, auto">
<MDButton class="bx" col="0" variant="text" @tap="showDrawer" :text="icon.menu" automationText="Back" />
@ -32,9 +32,9 @@
<StackLayout class="attrContainer" orientation="horizontal" row="0">
<Label class="bx small" :text="icon.starLine" />
<Label class="attr" :text="recipe.rating" />
<Label class="bx small" :text="icon.meter" />
<Label class="bx small" :text="icon.meterLine" />
<Label class="attr" :text="`${recipe.difficulty}` | L" />
<Label class="bx small" :text="icon.time" />
<Label class="bx small" :text="icon.timeLine" />
<Label class="attr" :text="
`${
formattedTotalTime(recipe.prepTime, recipe.cookTime).time
@ -67,32 +67,25 @@
!filterTrylater
" @tap="addRecipe">
<Label class="bx icon" :text="icon.plusCircle" />
<Label class="title orkm" :text="'Start adding your recipes!' | L" textWrap="true" />
<Label class="title orkm" :text="'strAdd' | L" textWrap="true" />
<StackLayout orientation="horizontal" horizontalAlignment="center">
<Label :text="'Use the plus button to add one' | L" textWrap="true" />
<Label :text="'plsAdd' | L" textWrap="true" />
</StackLayout>
</StackLayout>
<StackLayout row="1" class="emptyState" v-if="!filteredRecipes.length && filterTrylater && !searchQuery">
<Label class="bx icon" :text="icon.trylaterLine" textWrap="true" />
<Label class="title orkm" :text="'All done!' | L" textWrap="true" />
<Label :text="'Recipes you mark as try later will be listed here' | L" textWrap="true" />
<Label class="title orkm" :text="'aD' | L" textWrap="true" />
<Label :text="'tLInfo' | L" textWrap="true" />
</StackLayout>
<StackLayout row="1" class="emptyState" v-if="!filteredRecipes.length && filterFavourites && !searchQuery">
<Label class="bx icon" :text="icon.heartLine" textWrap="true" />
<Label class="title orkm" :text="'No favourites yet' | L" textWrap="true" />
<Label :text="'Recipes you mark as favourite will be listed here' | L" textWrap="true" />
</StackLayout>
<StackLayout row="1" class="emptyState" v-if="selectedCuisine && !filteredRecipes.length && !searchQuery">
<Label class="bx icon" :text="icon.categoryLine" textWrap="true" />
<Label class="title orkm" :text="'Category looks empty' | L" textWrap="true" />
<StackLayout orientation="horizontal" horizontalAlignment="center">
<Label :text="'Use the plus button to add one' | L" textWrap="true" />
</StackLayout>
<Label class="title orkm" :text="'noFavs' | L" textWrap="true" />
<Label :text="'fsList' | L" textWrap="true" />
</StackLayout>
<StackLayout row="1" class="emptyState" v-if="!filteredRecipes.length && searchQuery">
<Label class="bx icon" :text="icon.search" textWrap="true" />
<Label class="title orkm" :text="'No recipes found' | L" textWrap="true" />
<Label :text="`${noResultFor}` | L" textWrap="true" />
<Label class="title orkm" :text="`${noResultFor}` | L" textWrap="true" />
<MDButton v-if="filterFavourites || filterTrylater || selectedCuisine" variant="text" class="searchAll orkm" :text="'trySer' | L" @tap="searchAll" />
</StackLayout>
</GridLayout>
<GridLayout id="btnFabContainer" rows="*, auto" columns="*, auto">
@ -106,6 +99,7 @@
<script>
import {
Frame,
ApplicationSettings,
AndroidApplication,
Utils,
@ -142,6 +136,7 @@ let lastTime = 0;
let lastShake = 0;
let lastForce = 0;
let shakeCount = 0;
let typingTimer;
export default {
props: [ "filterFavourites", "filterTrylater", "closeDrawer", "selectedCategory", "selectedCuisine", "selectedTag", "hijackGlobalBackEvent", "releaseGlobalBackEvent" ],
components: {
@ -155,32 +150,41 @@ export default {
showSearch: false,
rightAction: false,
deletionDialogActive: false,
showFAB: false
showFAB: false,
filterDone: true,
};
},
computed: {
...mapState( [ "sortType", "icon", "recipes", "currentComponent", "shakeEnabled" ] ),
filteredRecipes() {
let ingredients = this.recipes.map( e => e.ingredients.map( f => f.item.toLowerCase() ).join() ).join()
let tags = this.recipes.map( e => e.tags.map( f => f.toLowerCase() ).join() ).join()
if ( this.filterFavourites ) {
return this.recipes.filter( e => e.isFavorite && ( tags.includes( this.searchQuery ) || e.title.toLowerCase().includes( this.searchQuery ) || ingredients.includes( this.searchQuery ) ) )
} else if ( this.filterTrylater ) {
return this.recipes.filter( e => !e.tried && ( tags.includes( this.searchQuery ) || e.title.toLowerCase().includes( this.searchQuery ) || ingredients.includes( this.searchQuery ) ) )
} else if ( this.selectedCuisine ) {
return this.recipes.filter( e => {
return this.recipeFilter( e ) && ( tags.includes( this.searchQuery ) || e.title.toLowerCase().includes( this.searchQuery ) || ingredients.includes( this.searchQuery ) )
} )
let vm = this
function getIngredients( e ) {
return e.ingredients.map( f => f.item.toLowerCase() ).join().includes( vm.searchQuery );
}
if ( this.filterDone ) {
if ( this.filterFavourites ) {
return this.recipes.filter( e => e.isFavorite && ( e.title.toLowerCase().includes( this.searchQuery ) || getIngredients( e ) ) )
} else if ( this.filterTrylater ) {
return this.recipes.filter( e => !e.tried && ( e.title.toLowerCase().includes( this.searchQuery ) || getIngredients( e ) ) )
} else if ( this.selectedCuisine ) {
return this.recipes.filter( e => {
return this.recipeFilter( e ) && ( e.title.toLowerCase().includes( this.searchQuery ) || getIngredients( e ) )
} )
} else {
return this.recipes.filter( e => e.title.toLowerCase().includes( this.searchQuery ) || getIngredients( e ) )
}
} else {
return this.recipes.filter( e => tags.includes( this.searchQuery ) || e.title.toLowerCase().includes( this.searchQuery ) || ingredients.includes( this.searchQuery ) )
return "A";
}
},
noResultFor() {
if ( this.selectedCuisine ) return "Your search did not match any recipes in the filtered result";
if ( this.filterFavourites ) return "Your search did not match any recipes in your favourites";
if ( this.filterTrylater ) return "Your search did not match any recipes in your try later list";
return "Your search did not match any recipes";
if ( this.filterFavourites ) return "noRecsInFavs";
if ( this.filterTrylater ) return "noRecsInTL";
if ( this.selectedCuisine ) return "noRecsInFtr";
return "noRecs";
},
},
methods: {
@ -188,13 +192,17 @@ export default {
onPageLoad( args ) {
const page = args.object;
page.bindingContext = new Observable();
this.filterFavourites ? this.setComponent( "Favourites" ) : this.filterTrylater ? this.setComponent( "Try Later" ) : this.selectedCuisine ? this.setComponent( "Filtered result" ) : this.setComponent( "EnRecipes" );
this.filterFavourites ? this.setComponent( "Favourites" ) : this.filterTrylater ? this.setComponent( "Try Later" ) : this.selectedCuisine ? this.setComponent( "Filtered recipes" ) : this.setComponent( "EnRecipes" );
this.showFAB = true;
if ( this.shakeEnabled ) startAccelerometerUpdates( data => this.onSensorData( data ) )
if ( this.showSearch )
this.hijackLocalBackEvent()
},
onPageUnload() {
if ( this.shakeEnabled ) stopAccelerometerUpdates();
this.releaseGlobalBackEvent();
this.releaseLocalBackEvent();
},
// HELPERS
showDrawer() {
@ -246,15 +254,18 @@ export default {
},
recipeFilter( e ) {
let cuisineMatched = e.cuisine === this.selectedCuisine
let allCuisines = /All/.test( this.selectedCuisine )
let allCuisines = /allCuis/.test( this.selectedCuisine )
let categoryMatched = e.category === this.selectedCategory
let allCategories = /All/.test( this.selectedCategory )
let allCategories = /allCats/.test( this.selectedCategory )
let tagMatched = e.tags.includes( this.selectedTag )
let allTags = /All/.test( this.selectedTag )
let allTags = /allTs/.test( this.selectedTag )
let cuisine = cuisineMatched || allCuisines
return this.selectedTag && !allTags ? ( categoryMatched || allCategories ) && cuisine && tagMatched : this.selectedCategory && !allCategories ? cuisine && categoryMatched : cuisine
},
searchAll() {
this.$emit( "backToHome" )
},
// NAVIGATION HANDLERS
hijackLocalBackEvent() {
this.releaseGlobalBackEvent();
@ -307,9 +318,11 @@ export default {
this.releaseGlobalBackEvent();
this.$showModal( ActionDialog, {
props: {
title: "Sort by",
title: "srt",
list: [ "Title", "Quickest first", "Slowest first", "Rating", "Difficulty level", "Last updated", "Newest first", "Oldest first" ],
stretch: false
stretch: false,
helpIcon: 'sort',
bgColor: '#adb5bd',
}
} ).then( action => {
if ( action && action !== "Cancel" && this.sortType !== action ) {
@ -377,24 +390,31 @@ export default {
break;
}
},
callUpdateFilter() {
clearTimeout( typingTimer )
this.filterDone = false
typingTimer = setTimeout( e => {
this.updateFilter()
}, 750 )
},
updateFilter() {
let listView = this.$refs.listView.nativeView;
setTimeout( e => {
listView.filteringFunction = undefined;
listView.filteringFunction = this.filterFunction;
}, 1 );
this.filterDone = true
},
filterFunction( e ) {
let ingredients = e.ingredients.map( e => e.item.toLowerCase() ).join()
let tags = e.tags.map( e => e.toLowerCase() ).join()
let ingredients = e.ingredients.map( e => e.item.toLowerCase() ).join().includes( this.searchQuery )
if ( this.filterFavourites ) {
return e.isFavorite ? tags.includes( this.searchQuery ) || e.title.toLowerCase().includes( this.searchQuery ) || ingredients.includes( this.searchQuery ) : false;
return e.isFavorite ? e.title.toLowerCase().includes( this.searchQuery ) || ingredients : false;
} else if ( this.filterTrylater ) {
return e.tried ? false : tags.includes( this.searchQuery ) || e.title.toLowerCase().includes( this.searchQuery ) || ingredients.includes( this.searchQuery );
return e.tried ? false : e.title.toLowerCase().includes( this.searchQuery ) || ingredients
} else if ( this.selectedCuisine ) {
return this.recipeFilter( e ) ? tags.includes( this.searchQuery ) || e.title.toLowerCase().includes( this.searchQuery ) || ingredients.includes( this.searchQuery ) : false;
return this.recipeFilter( e ) ? e.title.toLowerCase().includes( this.searchQuery ) || ingredients : false;
} else {
return tags.includes( this.searchQuery ) || e.title.toLowerCase().includes( this.searchQuery ) || ingredients.includes( this.searchQuery );
return e.title.toLowerCase().includes( this.searchQuery ) || ingredients
}
},
onSwiping( {
@ -423,10 +443,12 @@ export default {
this.deletionDialogActive = true;
this.$showModal( ConfirmDialog, {
props: {
title: localize( "Delete recipe?" ),
description: `${localize('Are you sure you want to delete the recipe')} "${this.recipes[index].title}"?`,
cancelButtonText: "CANCEL",
okButtonText: "DELETE"
title: localize( "conf" ),
description: `${localize('delRecInfo')} "${this.recipes[index].title}"`,
cancelButtonText: "cBtn",
okButtonText: "dBtn",
helpIcon: 'trash',
bgColor: '#c92a2a',
}
} ).then( action => {
if ( action ) {
@ -434,6 +456,8 @@ export default {
index,
id: recipeID
} );
if ( !this.filteredRecipes.length )
this.$emit( 'backToHome' )
}
this.deletionDialogActive = false;
} );

View file

@ -0,0 +1,95 @@
<template>
<Page @loaded="onPageLoad">
<ActionBar flat="true">
<GridLayout rows="*" columns="auto, *, auto">
<MDButton class="bx left" variant="text" :text="icon.menu" automationText="Back" @tap="showDrawer" col="0" />
<Label class="title orkm" :text="'grocery' | L" col="1" />
<MDButton class="bx left" variant="text" :text="icon.today" automationText="today" col="2" />
</GridLayout>
</ActionBar>
<GridLayout columns="" rows="">
</GridLayout>
</Page>
</template>
<script>
import {
ApplicationSettings,
Color,
Page,
Observable,
Device
}
from "@nativescript/core"
import {
SnackBar
} from '@nativescript-community/ui-material-snackbar';
const snackbar = new SnackBar();
import {
mapState,
mapActions
}
from "vuex"
import ConfirmDialog from "./modal/ConfirmDialog.vue"
import * as utils from "~/shared/utils"
export default {
data() {
return {
viewIsScrolled: false,
appTheme: "Light",
}
},
computed: {
...mapState( [ "icon", "recipes", "mealPlans" ] ),
isLightMode() {
return this.appTheme === "Light"
},
},
methods: {
...mapActions( [ "setCurrentComponentAction" ] ),
onPageLoad( args ) {
const page = args.object;
page.bindingContext = new Observable();
this.setCurrentComponentAction( "GroceryList" )
},
// HELPERS
showDrawer() {
utils.showDrawer()
},
onScroll( args ) {
this.viewIsScrolled = args.scrollY ? true : false
},
// NAVIGATION HANDLERS
viewRecipe( recipeID ) {
let recipe = this.recipes.filter( ( e ) => e.id === recipeID )[ 0 ]
if ( recipe ) {
this.$navigateTo( ViewRecipe, {
props: {
filterTrylater: true,
recipeID,
},
backstackVisible: false,
} )
}
},
// DATA HANDLERS
undoRemove( message ) {
return snackbar
.action( {
message,
textColor: this.appTheme == "Light" ? "#f1f3f5" : "#212529",
actionTextColor: '#ff5200',
backgroundColor: this.appTheme == "Light" ? "#212529" : "#f1f3f5",
actionText: 'Undo',
hideDelay: 5000
} )
},
},
created() {
this.appTheme = ApplicationSettings.getString( "appTheme", "Light" )
},
}
</script>

View file

@ -1,9 +1,9 @@
<template>
<Page @loaded="onPageLoad">
<Page @loaded="onPageLoad" @unloaded="onPageUnload">
<ActionBar flat="true">
<GridLayout rows="*" columns="auto, *, auto">
<MDButton class="bx left" variant="text" :text="icon.menu" automationText="Back" @tap="showDrawer" col="0" />
<Label class="title orkm" :text="'Meal Planner' | L" col="1" />
<Label class="title orkm" :text="'planner' | L" col="1" />
<MDButton class="bx left" variant="text" :text="icon.today" automationText="today" @tap="goToToday" col="2" />
</GridLayout>
</ActionBar>
@ -13,13 +13,16 @@
<ScrollView row="1" width="100%" height="100%" @scroll="onScroll">
<StackLayout class="dayPlan">
<StackLayout v-for="(mealType, index) in mealTimes" :key="'mealType' + index" class="plansContainer" :class="mealType">
<GridLayout columns="*, auto" class="header">
<GridLayout columns="auto, auto" class="header">
<Label col="0" class="periodLabel orkm" :text="mealType | L" />
<MDButton col="1" variant="text" class="bx" :text="icon.plus" @tap="addRecipe(mealType)" />
</GridLayout>
<GridLayout class="recipes" :paddingTop="index == 0?8:0" columns="*" v-for="(recipeID, index) in getRecipes[mealType]" :key="mealType + index">
<MDRipple @tap="viewRecipe(recipeID)" @longPress="removeRecipe(mealType, recipeID)" />
<Label verticalAlignment="center" class="recipeTitle" col="0" :text="getRecipeTitle(recipeID)" textWrap="true" />
<GridLayout class="recipe" :paddingTop="index == 0?8:0" columns="*, auto" v-for="(recipeID, index) in getRecipes[mealType]" :key="mealType + index">
<GridLayout androidElevation="1" col="0" columns="*" class="titleContainer">
<MDRipple class="recipeRipple" @tap="viewRecipe(recipeID)" />
<Label verticalAlignment="center" class="recipeTitle" :text="getRecipeTitle(recipeID)" textWrap="true" />
</GridLayout>
<MDButton variant="text" col="1" class="bx closeBtn" :text="icon.close" @tap="removeRecipe(mealType, recipeID)" />
</GridLayout>
</StackLayout>
</StackLayout>
@ -51,6 +54,10 @@ import {
CalendarEvent
}
from "nativescript-ui-calendar"
import {
SnackBar
} from '@nativescript-community/ui-material-snackbar';
const snackbar = new SnackBar();
import {
mapState,
mapActions
@ -66,7 +73,6 @@ export default {
viewIsScrolled: false,
appTheme: "Light",
mealTimes: [ "breakfast", "lunch", "dinner", "snacks" ],
eventList: [],
selectedDayMealPlans: [],
viewMode: CalendarViewMode.Month,
transitionMode: CalendarTransitionMode.Slide,
@ -204,6 +210,9 @@ export default {
page.bindingContext = new Observable();
this.setCurrentComponentAction( "MealPlanner" )
},
onPageUnload(args){
snackbar.dismiss()
},
onCalendarLoad( args ) {
args.object.locale = `${Device.language}-${Device.language.toUpperCase()}`
args.object.monthViewStyle = this.monthViewStyle
@ -233,7 +242,7 @@ export default {
},
getRecipeTitle( id ) {
let recipe = this.recipes.filter( ( e ) => e.id === id )[ 0 ]
return recipe ? recipe.title : `[ ${this.$options.filters.L('Recipe not found')} ]`
return recipe ? recipe.title : `[ ${this.$options.filters.L('resNF')} ]`
},
// NAVIGATION HANDLERS
viewRecipe( recipeID ) {
@ -253,21 +262,24 @@ export default {
let filteredRecipes = this.recipes.filter( ( e ) => this.getRecipes[ mealType ] ? !this.getRecipes[ mealType ].includes( e.id ) : true )
this.$showModal( ActionDialogWithSearch, {
props: {
title: "Select a recipe",
title: "selRec",
recipes: filteredRecipes,
helpIcon: "calendar",
},
} ).then( ( recipeID ) => {
recipeID && this.newEvent( recipeID, mealType )
recipeID && this.newEvent( recipeID, mealType, null )
} )
},
removeRecipeConfirm( mealType ) {
return this.$showModal( ConfirmDialog, {
props: {
title: `Remove recipe from ${mealType}?`,
cancelButtonText: "CANCEL",
okButtonText: "REMOVE",
},
} )
undoRemove( message ) {
return snackbar
.action( {
message,
textColor: this.appTheme == "Light" ? "#f1f3f5" : "#212529",
actionTextColor: '#ff5200',
backgroundColor: this.appTheme == "Light" ? "#212529" : "#f1f3f5",
actionText: 'Undo',
hideDelay: 5000
} )
},
removeRecipe( mealType, recipeID ) {
let startHour = {
@ -276,16 +288,19 @@ export default {
dinner: 10,
snacks: 15,
}
this.removeRecipeConfirm( mealType ).then( ( res ) => {
if ( res ) {
let actualMealPlan = this.selectedDayMealPlans.filter(
( e ) => e.startDate.getHours() === startHour[ mealType ] && e.title === recipeID )[ 0 ]
let mealPlan = {
title: actualMealPlan.title,
startDate: actualMealPlan.startDate,
}
this.deleteMealPlanAction( mealPlan )
this.updateSelectedDatePlans()
let actualMealPlan = this.selectedDayMealPlans.filter(
( e ) => e.startDate.getHours() === startHour[ mealType ] && e.title === recipeID )[ 0 ]
let mealPlan = {
title: actualMealPlan.title,
startDate: actualMealPlan.startDate,
}
let index = this.mealPlans.findIndex( e =>
e.title === mealPlan.title && new Date( e.startDate ).getTime() === new Date( mealPlan.startDate ).getTime() )
this.deleteMealPlanAction( mealPlan )
this.updateSelectedDatePlans()
this.undoRemove( `${this.$options.filters.L('recRm')}` ).then( res => {
if ( res.command === 'action' ) {
this.newEvent( recipeID, mealType, index )
}
} )
},
@ -300,7 +315,7 @@ export default {
this.selectedDate = args.date
this.selectedDayMealPlans = args.object.getEventsForDate( args.date )
},
newEvent( recipeID, mealType ) {
newEvent( recipeID, mealType, index ) {
let date = new Date( this.selectedDate )
const selectedDate = () => {
return {
@ -335,7 +350,8 @@ export default {
let event = new CalendarEvent( recipeID, mealTime[ mealType ].start, mealTime[ mealType ].end, false, new Color( this.color[ mealType ] ) )
this.addMealPlanAction( {
event,
eventColor: this.color[ mealType ]
eventColor: this.color[ mealType ],
index
} )
this.updateSelectedDatePlans()
},

View file

@ -8,12 +8,12 @@
</ActionBar>
<ScrollView @scroll="onScroll">
<StackLayout class="main-container">
<Label :text="'Interface' | L" class="group-header orkm" />
<Label :text="'intf' | L" class="group-header orkm" />
<GridLayout columns="auto, *" class="option">
<MDRipple colSpan="2" @tap="selectAppLanguage" />
<Label col="0" verticalAlignment="center" class="bx" :text="icon.globe" />
<StackLayout col="1">
<Label :text="'App language' | L" />
<Label :text="'lang' | L" />
<Label :text="appLanguage" class="info" />
</StackLayout>
</GridLayout>
@ -26,28 +26,23 @@
</StackLayout>
</GridLayout>
<StackLayout class="hr m-10"></StackLayout>
<Label :text="'Options' | L" class="group-header orkm" />
<!-- <GridLayout columns="auto, *, auto" class="option">
<Label col="0" verticalAlignment="center" class="bx" :text="icon.show" />
<Label col="1" verticalAlignment="center" :text="'Keep display on while viewing a recipe' | L" textWrap="true" />
<Switch :color="shakeEnabled ? '#ff5200' : appTheme==='Light' ? '#495057' : '#adb5bd'" verticalAlignment="center" col="2" :checked="shakeEnabled" @checkedChange="toggleShake" />
</GridLayout> -->
<Label :text="'opts' | L" class="group-header orkm" />
<GridLayout columns="auto, *, auto" class="option">
<Label col="0" verticalAlignment="center" class="bx" :text="icon.shuffle" />
<StackLayout col="1">
<Label :text="'Shake to view random recipe' | L" textWrap="true" />
<Label :text="`Helps you choose what to cook when you can't decide` | L" class="info" textWrap="true" />
<Label :text="'sVw' | L" textWrap="true" />
<Label :text="`sVwInfo` | L" class="info" textWrap="true" />
</StackLayout>
<Switch :color="shakeEnabled ? '#ff5200' : appTheme==='Light' ? '#495057' : '#adb5bd'" verticalAlignment="center" col="2" :checked="shakeEnabled" @checkedChange="toggleShake" />
</GridLayout>
<StackLayout class="hr m-10"></StackLayout>
<Label :text="'Database' | L" class="group-header orkm" />
<Label :text="'db' | L" class="group-header orkm" />
<GridLayout columns="auto, *" class="option">
<MDRipple colSpan="2" @tap="exportCheck" />
<Label col="0" class="bx" :text="icon.export" />
<StackLayout col="1">
<Label :text="'Export a full backup' | L" textWrap="true" />
<Label v-if="!backupInProgress" :text="'Generates a zip file that contains all your data. This file can be imported back.' | L" class="info" textWrap="true" />
<Label :text="'expBu' | L" textWrap="true" />
<Label v-if="!backupInProgress" :text="'buInfo' | L" class="info" textWrap="true" />
<GridLayout class="progressContainer" v-else columns="*, 64">
<MDProgress col="0" :value="backupProgress" maxValue="100"></MDProgress>
<Label col="1" :text="` ${backupProgress}%`" />
@ -58,33 +53,76 @@
<MDRipple colSpan="2" @tap="importCheck" />
<Label col="0" class="bx" :text="icon.import" />
<StackLayout col="1">
<Label :text="'Import from backup' | L" textWrap="true" />
<Label :text="'Supports full backups exported by this app' | L" class="info" textWrap="true" />
<Label :text="'impBu' | L" textWrap="true" />
<Label :text="'impInfo' | L" class="info" textWrap="true" />
</StackLayout>
</GridLayout>
<StackLayout class="hr m-10"></StackLayout>
<Label :text="'Reset' | L" class="group-header orkm" />
<Label :text="'rest' | L" class="group-header orkm" />
<GridLayout columns="auto, *" class="option">
<MDRipple colSpan="2" @tap="resetListItems('cuisines')" />
<Label col="0" class="bx" :text="icon.reset" />
<Label col="1" verticalAlignment="center" :text="'Reset cuisines list' | L" textWrap="true" />
<Label col="1" verticalAlignment="center" :text="'restCuiL' | L" textWrap="true" />
</GridLayout>
<GridLayout columns="auto, *" class="option">
<MDRipple colSpan="2" @tap="resetListItems('categories')" />
<Label col="0" class="bx" :text="icon.reset" />
<Label col="1" verticalAlignment="center" :text="'Reset categories list' | L" textWrap="true" />
<Label col="1" verticalAlignment="center" :text="'Reset category list' | L" textWrap="true" />
</GridLayout>
<GridLayout columns="auto, *" class="option">
<MDRipple colSpan="2" @tap="resetListItems('yieldUnits')" />
<Label col="0" class="bx" :text="icon.reset" />
<Label col="1" verticalAlignment="center" :text="'Reset yield units list' | L" textWrap="true" />
<Label col="1" verticalAlignment="center" :text="'Reset yield unit list' | L" textWrap="true" />
</GridLayout>
<GridLayout columns="auto, *" class="option">
<MDRipple colSpan="2" @tap="resetListItems('units')" />
<Label col="0" class="bx" :text="icon.reset" />
<Label col="1" verticalAlignment="center" :text="'Reset units list' | L" textWrap="true" />
<Label col="1" verticalAlignment="center" :text="'Reset unit list' | L" textWrap="true" />
</GridLayout>
<Label class="group-info" :text="'Resetting a list will NOT delete your existing entries but only restores the deleted default entries.' | L" textWrap="true" />
<Label class="group-info" :text="'restInfo' | L" textWrap="true" />
<StackLayout class="hr m-10"></StackLayout>
<Label :text="'help' | L" class="group-header orkm" />
<GridLayout columns="auto, *" class="option">
<MDRipple colSpan="2" @tap="openURL('https://github.com/vishnuraghavb/EnRecipes/wiki/User-Guide')" />
<Label col="0" class="bx" :text="icon.compass" />
<Label verticalAlignment="center" col="1" :text="'guide' | L" textWrap="true" />
</GridLayout>
<GridLayout columns="auto, *" class="option">
<MDRipple colSpan="2" @tap="openURL('https://t.me/enrecipes')" />
<Label col="0" class="bx" :text="icon.telegram" />
<StackLayout col="1">
<Label :text="'joinTG' | L" textWrap="true" />
<Label :text="'tgInfo' | L" class="info" textWrap="true" />
</StackLayout>
</GridLayout>
<StackLayout class="hr m-10"></StackLayout>
<Label :text="'About' | L" class="group-header orkm" />
<GridLayout columns="auto, *" class="option">
<Label col="0" class="bx" :text="icon.info" />
<StackLayout col="1">
<Label :text="'ver' | L" />
<Label :text="getVersion" class="info" textWrap="true" />
</StackLayout>
</GridLayout>
<GridLayout columns="auto, *" class="option">
<MDRipple colSpan="2" @tap="openURL('https://github.com/vishnuraghavb/EnRecipes/blob/main/PRIVACY.md')" />
<Label col="0" class="bx" :text="icon.lock" />
<Label verticalAlignment="center" col="1" :text="'priv' | L" textWrap="true" />
</GridLayout>
<GridLayout columns="auto, *" class="option">
<MDRipple colSpan="2" @tap="openURL('https://github.com/vishnuraghavb/enrecipes')" />
<Label col="0" class="bx" :text="icon.github" />
<Label verticalAlignment="center" col="1" :text="'gh' | L" textWrap="true" />
</GridLayout>
<GridLayout columns="auto, *" class="option">
<MDRipple colSpan="2" @tap="openURL('https://www.vishnuraghav.com/donate')" />
<Label col="0" class="bx" :text="icon.donate" />
<Label verticalAlignment="center" col="1" :text="'donate' | L" textWrap="true" />
</GridLayout>
<Label class="group-info" :text="'appInfo' | L" textWrap="true" />
</StackLayout>
</ScrollView>
</Page>
@ -92,6 +130,8 @@
<script>
import {
Application,
Utils,
ApplicationSettings,
path,
knownFolders,
@ -134,6 +174,10 @@ export default {
},
computed: {
...mapState( [ "icon", "recipes", "cuisines", "categories", "yieldUnits", "units", "mealPlans", "currentComponent", "language", "shakeEnabled", "importSummary" ] ),
getVersion() {
let ctx = Application.android.context
return ctx.getPackageManager().getPackageInfo( ctx.getPackageName(), 0 ).versionName
},
},
methods: {
...mapActions( [ "setCurrentComponentAction", "importListItemsAction", "importRecipesAction", "importMealPlansAction", "resetListItemsAction", "setShakeAction", "unlinkBrokenImages" ] ),
@ -149,14 +193,18 @@ export default {
onScroll( args ) {
this.viewIsScrolled = args.scrollY ? true : false
},
openURL( url ) {
Utils.openUrl( url )
},
// LANGUAGE SELECTION
selectAppLanguage() {
let languages = this.language.map( e => e.title )
this.$showModal( ActionDialog, {
props: {
title: "App language",
title: "lang",
list: [ ...languages ],
stretch: true,
helpIcon: 'globe',
},
} ).then( ( action ) => {
if ( action && action !== "Cancel" && this.appLanguage !== action ) {
@ -165,17 +213,19 @@ export default {
if ( currentLocale !== locale ) {
this.$showModal( ConfirmDialog, {
props: {
title: "Restart required",
description: localize( "EnRecipes needs to be restarted for the app language to take effect." ),
cancelButtonText: "CANCEL",
okButtonText: "RESTART",
title: "appRst",
description: localize( "nLangInfo" ),
cancelButtonText: "cBtn",
okButtonText: "rst",
helpIcon: 'restart',
bgColor: '#ff5200',
},
} ).then( ( result ) => {
if ( result ) {
this.appLanguage = action
ApplicationSettings.setString( "appLanguage", action )
overrideLocale( locale )
setTimeout( ( e ) => utils.restartApp(), 250 )
setTimeout( utils.restartApp, 250 )
}
} )
}
@ -188,22 +238,25 @@ export default {
props: {
title: "Theme",
list: [ "Light", "Dark" ],
stretch: false
stretch: false,
helpIcon: 'theme',
},
} ).then( ( action ) => {
if ( action && action !== "Cancel" && this.appTheme !== action ) {
this.$showModal( ConfirmDialog, {
props: {
title: "Restart required",
description: localize( "EnRecipes needs to be restarted for the theme change to take effect." ),
cancelButtonText: "CANCEL",
okButtonText: "RESTART",
title: "appRst",
description: localize( "nThmInfo" ),
cancelButtonText: "cBtn",
okButtonText: "rst",
helpIcon: 'restart',
bgColor: '#ff5200',
},
} ).then( ( result ) => {
if ( result ) {
this.appTheme = action
ApplicationSettings.setString( "appTheme", action )
setTimeout( ( e ) => utils.restartApp(), 250 )
setTimeout( utils.restartApp, 250 )
}
} )
}
@ -219,9 +272,9 @@ export default {
// EXPORT HANDLERS
exportCheck() {
if ( !this.recipes.length ) {
Toast.makeText( localize( "Add at least one recipe to perform a backup" ), "long" ).show()
Toast.makeText( localize( "aFBu" ) ).show()
} else {
this.permissionCheck( this.permissionConfirmation, localize( "EnRecipes requires storage permission in order to backup your data to this device." ), this.exportBackup )
this.permissionCheck( this.permissionConfirmation, localize( "reqAcc" ), this.exportBackup )
}
},
exportBackup() {
@ -242,6 +295,7 @@ export default {
} ).then( ( success ) => {
Toast.makeText( "Backup file successfully saved to Download folder", "long" ).show()
this.exportFiles( "delete" )
setTimeout( e => this.backupInProgress = false, 3000 )
} )
},
exportFiles( option ) {
@ -279,14 +333,14 @@ export default {
},
// IMPORT HANDLERS
importCheck() {
this.permissionCheck( this.permissionConfirmation, localize( "EnRecipes requires storage permission in order to import your data from a previous backup." ), this.openFilePicker )
this.permissionCheck( this.permissionConfirmation, localize( "reqAcc" ), this.openFilePicker )
},
openFilePicker() {
Filepicker.create( {
mode: "single",
extensions: [ "zip" ],
} ).present().then( ( selection ) => {
Toast.makeText( localize( "Verifying..." ) ).show()
Toast.makeText( localize( "vrfy" ) + '...' ).show()
let zipPath = selection[ 0 ]
this.validateZipContent( zipPath )
} )
@ -344,7 +398,7 @@ export default {
File.fromPath( file.path ).readText().then( ( data ) => {
isValid[ i ] = this.hasValidJSON( data )
if ( !isValid[ i ] ) {
this.failedImport( `${localize("Backup file has been modified externally.")}\n\n${localize("Invalid file:")} ${file.file}` )
this.failedImport( `${localize("buMod")}\n\n${localize("invFile")}: ${file.file}` )
return 0;
}
if ( isValid.every( e => e === true ) ) {
@ -357,15 +411,17 @@ export default {
} )
} )
} else {
this.failedImport( localize( "Backup file seems empty." ) )
this.failedImport( localize( "buEmp" ) )
}
},
failedImport( description ) {
this.$showModal( ConfirmDialog, {
props: {
title: "Import failed",
title: "impFail",
description,
okButtonText: "OK",
helpIcon: 'error',
bgColor: '#c92a2a',
},
} )
},
@ -415,7 +471,7 @@ export default {
}, ] )
} else {
Folder.fromPath( extractedFolderPath ).remove()
this.failedImport( localize( "Backup file is incorrect or corrupt." ) )
this.failedImport( localize( "buInc" ) )
}
if ( Folder.exists( cacheFolderPath + "/Images" ) ) {
this.importImages( cacheFolderPath + "/Images" )
@ -429,7 +485,6 @@ export default {
directory: dest,
overwrite: true,
} ).then( ( res ) => {
Toast.makeText( localize( "Import successful" ) ).show()
this.showImportSummary()
this.unlinkBrokenImages()
} )
@ -440,15 +495,17 @@ export default {
imported,
updated
} = this.importSummary
let exists = found - imported + updated
let importedNote = `\n${imported} ${localize('recipes imported')}`
let existsNote = `\n${exists} ${localize('recipes already exists')}`
let updatedNote = `\n${updated} ${localize('recipes updated')}`
let exists = Math.abs( found - imported - updated ) + updated
let importedNote = `\n${imported} ${localize('recI')}`
let existsNote = `\n${exists} ${localize('recE')}`
let updatedNote = `\n${updated} ${localize('recU')}`
this.$showModal( ConfirmDialog, {
props: {
title: "Import summary",
description: `${found} ${localize('recipes found')}${ importedNote}${existsNote}${updatedNote}`,
title: "impSuc",
description: `${found} ${localize('recF')}${ importedNote}${existsNote}${updatedNote}`,
okButtonText: "OK",
helpIcon: 'success',
bgColor: '#94d82d',
},
} )
},
@ -461,7 +518,7 @@ export default {
let status = res[ Object.keys( res )[ 0 ] ]
if ( status === "authorized" ) action()
if ( status !== "denied" ) ApplicationSettings.setBoolean( "storagePermissionAsked", true )
else Toast.makeText( localize( "Permission denied" ) ).show()
else Toast.makeText( localize( "dend" ) ).show()
} )
}
} )
@ -479,22 +536,25 @@ export default {
permissionConfirmation( description ) {
return this.$showModal( ConfirmDialog, {
props: {
title: "Grant permission",
title: "grant",
description,
cancelButtonText: "NOT NOW",
okButtonText: "CONTINUE",
cancelButtonText: "nNBtn",
okButtonText: "conBtn",
helpIcon: 'folder',
bgColor: '#ff5200',
},
} )
},
// RESET
resetListItems( listName ) {
this.resetListItemsAction( listName )
Toast.makeText( localize( "Reset successful" ) ).show()
Toast.makeText( localize( "restDone" ) ).show()
}
},
mounted() {
this.appTheme = ApplicationSettings.getString( "appTheme", "Light" )
this.appLanguage = ApplicationSettings.getString( "appLanguage", localize( "System default" ) )
this.appLanguage = ApplicationSettings.getString( "appLanguage", localize( "sysDef" ) )
},
}
</script>

View file

@ -7,7 +7,7 @@
<MDButton v-if="!filterTrylater" variant="text" class="bx" :text="recipe.tried ? icon.trylaterLine : icon.trylater" @tap="toggleTrylater" />
<MDButton v-else variant="text" class="bx" :text="icon.check" @tap="recipeTried" />
<MDButton variant="text" class="bx" :text="recipe.isFavorite ? icon.heart : icon.heartLine" @tap="toggleFavourite" />
<!-- <MDButton variant="text" class="bx" :text="icon.emptyCart" /> -->
<MDButton variant="text" class="bx" :text="recipe.inCart ? icon.cart : icon.emptyCart" @tap="toggleCart" />
<MDButton variant="text" v-if="!busy" class="bx" :text="icon.edit" @tap="editRecipe" />
<MDActivityIndicator v-else :busy="busy" />
</FlexboxLayout>
@ -17,23 +17,23 @@
<Tabs width="100%" height="100%" :selectedIndex="selectedTabIndex" @selectedIndexChange="selectedIndexChange" class="viewRecipe">
<TabStrip :androidElevation="viewIsScrolled ? 4 : 0">
<TabStripItem>
<Label :text="'Overview' | L"></Label>
<Label :text="'ovw' | L"></Label>
</TabStripItem>
<TabStripItem>
<Label :text="'Ingredients' | L"></Label>
<Label :text="'ings' | L"></Label>
</TabStripItem>
<TabStripItem>
<Label :text="'Instructions' | L"></Label>
</TabStripItem>
<TabStripItem>
<Label :text="'Notes' | L"></Label>
<Label :text="'nos' | L"></Label>
</TabStripItem>
<TabStripItem>
<Label :text="'Combinations' | L"></Label>
<Label :text="'cmbs' | L"></Label>
</TabStripItem>
</TabStrip>
<TabContentItem>
<ScrollView @scroll="onScroll">
<ScrollView @scroll="onScroll" @loaded="overviewLoaded">
<StackLayout>
<StackLayout width="100%" :height="screenWidth" verticalAlignment="center" class="imageHolder">
<Image v-if="recipe.imageSrc" :src="recipe.imageSrc" stretch="aspectFill" width="100%" :height="screenWidth" />
@ -49,7 +49,7 @@
<Label class="attr" :text="`${$options.filters.L('Preparation time')}: ${formattedTime(recipe.prepTime)}`" textWrap="true" />
<Label class="attr" :text="`${$options.filters.L('Cooking time')}: ${formattedTime(recipe.cookTime)}`" textWrap="true" />
<FlexboxLayout v-if="recipe.tags.length" class="tagsContainer" flexWrap="wrap">
<Label class="tagsTitle" :text="`${$options.filters.L('Tags')}: `" />
<Label class="tagsTitle" :text="`${$options.filters.L('ts')}: `" />
<Label v-for="(tag, index) in recipe.tags" :key="index" v-if="tag" :text="tag" class="tag" textWrap="false" />
</FlexboxLayout>
<GridLayout rows="auto, auto" columns="*, *" class="overviewContainer">
@ -59,8 +59,8 @@
<Label row="1" class="itemCount" :text="
`${recipe.ingredients.length} ${
recipe.ingredients.length == 1
? $options.filters.L('Ingredient')
: $options.filters.L('Ingredients')
? $options.filters.L('ing')
: $options.filters.L('ings')
}`
" textWrap="true" />
</GridLayout>
@ -81,8 +81,8 @@
<Label row="1" class="itemCount" :text="
`${recipe.notes.length} ${
recipe.notes.length == 1
? $options.filters.L('Note')
: $options.filters.L('Notes')
? $options.filters.L('no')
: $options.filters.L('nos')
}`
" textWrap="true" />
</GridLayout>
@ -92,8 +92,8 @@
<Label row="1" class="itemCount" :text="
`${recipe.combinations.length} ${
recipe.combinations.length == 1
? $options.filters.L('Combination')
: $options.filters.L('Combinations')
? $options.filters.L('cmb')
: $options.filters.L('cmbs')
}`
" textWrap="true" />
</GridLayout>
@ -109,19 +109,18 @@
<GridLayout v-if="!recipe.ingredients.length" rows="*, auto, *, 88" columns="*" class="emptyStateContainer">
<StackLayout col="0" row="1" class="emptyState">
<Label class="bx icon" :text="icon.item" textWrap="true" />
<Label class="title orkm" :text="'Use the pencil button to add some ingredients' | L" textWrap="true" />
<Label class="title orkm" :text="'pAIng' | L" textWrap="true" />
</StackLayout>
</GridLayout>
<StackLayout v-else padding="16 16 72">
<AbsoluteLayout class="inputField">
<TextField width="50%" v-model="yieldMultiplier" keyboardType="number" />
<Label top="0" class="fieldLabel" :text="`${$options.filters.L('Required')} ${$options.filters.L(recipe.yield.unit)}`" />
<Label top="0" class="fieldLabel" :text="`${$options.filters.L('req')} ${$options.filters.L(recipe.yield.unit)}`" />
</AbsoluteLayout>
<Label padding="16 0 8" class="title orkm" :text="
`${$options.filters.L('Ingredients')} (${positiveYieldMultiplier} ${$options.filters.L(recipe.yield.unit)})`
`${$options.filters.L('ings')} (${positiveYieldMultiplier} ${$options.filters.L(recipe.yield.unit)})`
" textWrap="true" />
<StackLayout v-for="(item, index) in recipe.ingredients" :key="index">
<check-box class="ingredient" checkPadding="16" fillColor="#ff5200" :text="
<check-box v-for="(item, index) in recipe.ingredients" :key="index" class="ingredient" style="font-family: 'Orkney-Regular'" checkPadding="16" @checkedChange="checkChange" :text="
`${
roundedQuantity(item.quantity)
? roundedQuantity(item.quantity) + ' '
@ -130,7 +129,6 @@
item.item
}`
" />
</StackLayout>
</StackLayout>
</ScrollView>
</TabContentItem>
@ -139,7 +137,7 @@
<GridLayout v-if="!recipe.instructions.length" rows="*, auto, *, 88" columns="*" class="emptyStateContainer">
<StackLayout col="0" row="1" class="emptyState">
<Label class="bx icon" :text="icon.step" textWrap="true" />
<Label class="title orkm" :text="'Use the pencil button to add some instructions' | L" textWrap="true" />
<Label class="title orkm" :text="'pAIns' | L" textWrap="true" />
</StackLayout>
</GridLayout>
<StackLayout v-else padding="20 16 62">
@ -157,7 +155,7 @@
<GridLayout v-if="!recipe.notes.length" rows="*, auto, *, 88" columns="*" class="emptyStateContainer">
<StackLayout col="0" row="1" class="emptyState">
<Label class="bx icon" :text="icon.note" textWrap="true" />
<Label class="title orkm" :text="'Use the pencil button to add some notes' | L" textWrap="true" />
<Label class="title orkm" :text="'pANo' | L" textWrap="true" />
</StackLayout>
</GridLayout>
<StackLayout v-else padding="20 16 62" @loaded="createNotes">
@ -169,14 +167,13 @@
<GridLayout v-if="!recipe.combinations.length" rows="*, auto, *, 88" columns="*" class="emptyStateContainer">
<StackLayout col="0" row="1" class="emptyState">
<Label class="bx icon" :text="icon.outline" textWrap="true" />
<Label class="title orkm" :text="'Use the pencil button to add some combinations' | L" textWrap="true" />
<Label class="title orkm" :text="'pACmb' | L" textWrap="true" />
</StackLayout>
</GridLayout>
<StackLayout v-else padding="0 0 80">
<GridLayout columns="auto, *" v-for="(combination, index) in recipe.combinations" :key="index" androidElevation="1" class="combination">
<MDRipple colSpan="2" @tap="viewCombination(combination)" />
<Label col="0" class="bx" :text="icon.food" />
<Label col="1" verticalAlignment="center" class="combinationTitle" :text="getCombinationTitle(combination)" textWrap="true" />
<StackLayout v-else padding="8 0 80">
<GridLayout columns="*" v-for="(combination, index) in recipe.combinations" :key="index" androidElevation="1" class="combination">
<MDRipple @tap="viewCombination(combination)" />
<Label verticalAlignment="center" class="combinationTitle" :text="getCombinationTitle(combination)" textWrap="true" />
</GridLayout>
</StackLayout>
</ScrollView>
@ -242,6 +239,8 @@ export default {
viewIsScrolled: false,
isScrolled: [ false, false, false, false, false, false ],
hideActionBar: false,
overviewTab: null,
checks: [],
}
},
computed: {
@ -257,7 +256,7 @@ export default {
},
},
methods: {
...mapActions( [ "toggleStateAction", "setCurrentComponentAction", "overwriteRecipeAction", "setRecipeAsTriedAction", "setRatingAction" ] ),
...mapActions( [ "toggleStateAction", "setCurrentComponentAction", "overwriteRecipeAction", "setRecipeAsTriedAction", "setRatingAction", "toggleCartAction" ] ),
onPageLoad( args ) {
const page = args.object;
page.bindingContext = new Observable();
@ -274,6 +273,9 @@ export default {
feedback.hide()
this.keepScreenOn( false )
},
overviewLoaded( args ) {
this.overviewTab = args
},
// HELPERS
niceDates( time ) {
let lastTried = new Date( time ).getTime()
@ -287,8 +289,8 @@ export default {
return localize( value )
}
return (
( diff < 86400 && lastTried > midnight && duration( "today" ) ) || ( dayDiff == 1 && "yesterday" ) || ( dayDiff < 7 && dayDiff + " " + duration( "days ago" ) ) || ( dayDiff < 31 && Math.round( dayDiff / 7 ) + " " + duration(
"weeks ago" ) ) || ( dayDiff < 366 && Math.round( dayDiff / 30 ) + " " + duration( "months ago" ) ) || ( dayDiff > 365 && duration( "long time ago" ) ) )
( diff < 86400 && lastTried > midnight && duration( "today" ) ) || ( dayDiff == 1 && "yesterday" ) || ( dayDiff < 7 && dayDiff + " " + duration( "dAgo" ) ) || ( dayDiff < 31 && Math.round( dayDiff / 7 ) + " " + duration(
"wAgo" ) ) || ( dayDiff < 366 && Math.round( dayDiff / 30 ) + " " + duration( "mAgo" ) ) || ( dayDiff > 365 && duration( "ltAgo" ) ) )
},
selectedIndexChange( args ) {
this.selectedTabIndex = args.object.selectedIndex
@ -296,7 +298,7 @@ export default {
},
showLastTried() {
feedback.show( {
title: `${localize('You tried this recipe:')} ${this.niceDates(
title: `${localize('triedInfo')} ${this.niceDates(
this.recipe.lastTried
)}`,
titleColor: new Color( `${this.isLightMode ? "#f1f3f5" : "#212529"}` ),
@ -348,6 +350,10 @@ export default {
recipe: this.recipe,
} )
},
checkChange( args, index ) {
let check = args.object
this.checks[ index ] = !this.checks[ index ]
},
// NAVIGATION HANDLERS
onScroll( args ) {
this.viewIsScrolled = this.isScrolled[ this.selectedTabIndex ] = args.scrollY > 8 ? true : false
@ -369,6 +375,7 @@ export default {
this.currentRecipeID = combination
this.syncCombinations()
this.selectedTabIndex = 0
this.overviewTab.object.scrollToVerticalOffset( 0, true )
setTimeout(
( e ) => this.recipe.tried && this.recipe.lastTried && this.showLastTried(), 500 )
},
@ -377,7 +384,8 @@ export default {
if ( this.recipe.imageSrc ) {
this.$showModal( ShareChooser, {
props: {
title: "Share",
title: "shr",
helpIcon: 'share',
},
} ).then( ( result ) => {
switch ( result ) {
@ -400,12 +408,12 @@ export default {
shareRecipe() {
let overview = `${
this.recipe.title
}\n\n${localize( "Cuisine" )}: ${localize( this.recipe.cuisine)}\n${localize( "Category" )}: ${localize( this.recipe.category)}\n${localize( "Tags" )}: ${this.recipe.tags.join(", ")}\n${localize( "Star rating" )}: ${this.recipe.rating}\n${localize( "Difficulty level" )}: ${localize( this.recipe.difficulty)}\n${localize("Preparation time")}: ${this.formattedTime(
}\n\n${localize( "Cuisine" )}: ${localize( this.recipe.cuisine)}\n${localize( "Category" )}: ${localize( this.recipe.category)}\n${localize( "ts" )}: ${this.recipe.tags.join(", ")}\n${localize( "stars" )}: ${this.recipe.rating}\n${localize( "Difficulty level" )}: ${localize( this.recipe.difficulty)}\n${localize("Preparation time")}: ${this.formattedTime(
this.recipe.prepTime
)}\n${localize( "Cooking time" )}: ${this.formattedTime(this.recipe.cookTime)}\n`
let shareContent = overview
if ( this.recipe.ingredients.length ) {
let ingredients = `\n\n${localize( "Ingredients" )} (${
let ingredients = `\n\n${localize( "ings" )} (${
this.yieldMultiplier
} ${localize( this.recipe.yield.unit )}):\n\n`
this.recipe.ingredients.forEach( ( e ) => {
@ -425,20 +433,20 @@ export default {
shareContent += instructions
}
if ( this.recipe.notes.length ) {
let notes = `\n${localize( "Notes" )}:\n\n`
let notes = `\n${localize( "nos" )}:\n\n`
this.recipe.notes.forEach( ( e, i ) => {
notes += `${i + 1}. ${e}\n\n`
} )
shareContent += notes
}
if ( this.recipe.combinations.length ) {
let combinations = `\n${localize( "Combinations" )}:\n\n`
let combinations = `\n${localize( "cmbs" )}:\n\n`
this.recipe.combinations.forEach( ( e, i ) => {
combinations += `${i + 1}. ${this.getCombinationTitle(e)}\n\n`
} )
shareContent += combinations
}
let sharenote = '\n' + localize( "Shared via EnRecipes. Get it on Play Store or F-Droid." )
let sharenote = '\n' + localize( "appCrd" )
shareContent += sharenote
SocialShare.shareText( shareContent, "Share recipe using" )
},
@ -452,11 +460,11 @@ export default {
} )
},
toggleFavourite() {
this.recipe.isFavorite ? Toast.makeText( localize( "Removed from Favourites" ) ).show() : Toast.makeText( localize( "Added to Favourites" ) ).show()
this.recipe.isFavorite ? Toast.makeText( localize( "unfavd" ) ).show() : Toast.makeText( localize( "favd" ) ).show()
this.toggle( "isFavorite" )
},
toggleTrylater() {
this.recipe.tried ? Toast.makeText( localize( "Added to Try Later" ) ).show() : Toast.makeText( localize( "Removed from Try Later" ) ).show()
this.recipe.tried ? Toast.makeText( localize( "aTry" ) ).show() : Toast.makeText( localize( "rmTry" ) ).show()
this.toggle( "tried" )
},
recipeTried() {
@ -476,6 +484,18 @@ export default {
} )
}
},
// SHOPPINGLIST
toggleCart() {
if ( !this.recipe.inCart ) {
} else {
}
this.toggleCartAction( {
id: this.currentRecipeID,
recipe: this.recipe,
} )
},
// NOTES
createNote( note, i ) {
const vm = this
@ -527,6 +547,7 @@ export default {
},
created() {
this.recipe = this.recipes.filter( ( e ) => e.id === this.currentRecipeID )[ 0 ]
this.checks = this.recipe.ingredients.map( e => true )
},
mounted() {
this.showFab = true

View file

@ -1,16 +1,17 @@
<template>
<Page>
<GridLayout columns="*" :rows="`auto, ${stretch? '*':'auto'}, auto`" class="dialogContainer" :class="appTheme">
<Label row="0" class="dialogTitle orkm" :text="`${title}` | L" />
<ScrollView row="1" width="100%">
<GridLayout columns="*" :rows="`auto, auto, ${stretch? '*':'auto'}, auto`" class="dialogContainer" :class="appTheme">
<Label row="0" class="bx dialogIcon" backgroundColor="#adb5bd" :color="iconColor" :text="icon[helpIcon]" />
<Label row="1" class="dialogTitle orkm" :text="`${title}` | L" />
<ScrollView row="2" width="100%">
<StackLayout>
<MDButton v-for="(item, index) in newList" :key="index" class="actionItem" variant="text" :rippleColor="rippleColor" :text="`${title==='Sort by' && sortType=== item ? '→ ':''}${localized(item)}`" @loaded="onLabelLoaded" @tap="tapAction(item)"
<MDButton v-for="(item, index) in newList" :key="index" class="actionItem" :color="title==='srt' && sortType=== item ? '#ff5200':''" variant="text" :rippleColor="rippleColor" :text="`${localized(item)}${title==='srt' && sortType=== item ? '*':''}`" @loaded="onLabelLoaded" @tap="tapAction(item)"
@longPress="removeItem(index)" />
</StackLayout>
</ScrollView>
<GridLayout row="2" rows="auto" columns="auto, *, auto" class="actionsContainer">
<GridLayout row="3" rows="auto" columns="auto, *, auto" class="actionsContainer">
<MDButton :rippleColor="rippleColor" variant="text" v-if="action" col="0" class="action orkm pull-left" :text="`${action}` | L" @tap="$modal.close(action)" />
<MDButton :rippleColor="rippleColor" variant="text" col="2" class="action orkm pull-right" :text="'CANCEL' | L" @tap="$modal.close(false)" />
<MDButton :rippleColor="rippleColor" variant="text" col="2" class="action orkm pull-right" :text="'cBtn' | L" @tap="$modal.close(false)" />
</GridLayout>
</GridLayout>
</Page>
@ -18,8 +19,7 @@
<script>
import {
Application,
Screen
Application
} from "@nativescript/core"
import * as Toast from "nativescript-toast"
import {
@ -33,28 +33,31 @@ import {
from "vuex"
import ConfirmDialog from "./ConfirmDialog.vue"
export default {
props: [ "title", "list", "stretch", "action" ],
props: [ "title", "list", "stretch", "action", "helpIcon" ],
data() {
return {
newList: this.list,
}
},
computed: {
...mapState( [ "sortType" ] ),
...mapState( [ "sortType", 'icon' ] ),
appTheme() {
return Application.systemAppearance()
},
rippleColor() {
return this.appTheme == "light" ? "rgba(134,142,150,0.2)" : "rgba(206,212,218,0.1)"
isLightMode() {
return this.appTheme == "light"
},
screenHeight() {
return Math.round( Screen.mainScreen.heightDIPs )
rippleColor() {
return this.isLightMode ? "rgba(134,142,150,0.2)" : "rgba(206,212,218,0.1)"
},
iconColor() {
return this.isLightMode ? "#f1f3f5" : "#212529"
},
},
methods: {
...mapActions( [ "removeListItemAction" ] ),
localized( item ) {
if ( this.title !== 'App language' )
if ( this.title !== 'lang' )
return localize( item )
else
return item
@ -68,10 +71,12 @@ export default {
deletionConfirmation( type, description ) {
return this.$showModal( ConfirmDialog, {
props: {
title: `Remove ${type}?`,
title: 'conf',
description,
cancelButtonText: "CANCEL",
okButtonText: "REMOVE",
cancelButtonText: "cBtn",
okButtonText: "rBtn",
helpIcon: 'fail',
bgColor: '#c92a2a',
},
} )
},
@ -79,29 +84,27 @@ export default {
let item = this.newList[ index ]
let vm = this
function removeListItem( type, listName ) {
vm.deletionConfirmation( type, `${vm.$options.filters.L('Are you sure you want to remove')} "${vm.$options.filters.L(item)}"?` ).then( action => {
if ( action != null && action ) {
vm.newList.splice( index, 1 )
function removeListItem( type, listName, desc ) {
vm.deletionConfirmation( type, `${localize(desc)} "${localize(item)}"\n\n${localize('rmLIInfo')}` ).then( action => {
if ( action != null && action )
vm.removeListItemAction( {
item,
listName
} )
}
} )
}
switch ( this.title ) {
case "Cuisine":
removeListItem( 'cuisine', "cuisines" )
case "cui":
removeListItem( 'cuisine', "cuisines", "rmCuiInfo" )
break;
case "Category":
removeListItem( "category", "categories" )
case "cat":
removeListItem( "category", "categories", "rmCatInfo" )
break;
case "Yield measured in":
removeListItem( "yield unit", "yieldUnits" )
case "yieldU":
removeListItem( "yield unit", "yieldUnits", "rmYUInfo" )
break;
case "Units":
removeListItem( "unit", "units" )
case "Unit":
removeListItem( "unit", "units", "rmUInfo" )
break;
default:
}

View file

@ -1,17 +1,18 @@
<template>
<Page>
<GridLayout columns="*" rows="auto, auto, *, auto" class="dialogContainer" :class="appTheme">
<Label row="0" class="dialogTitle orkm" :text="`${title}` | L" textWrap='true' />
<StackLayout row="1" v-if="filteredRecipes.length || searchQuery" padding="0 24 24">
<GridLayout columns="*" rows="auto, auto, auto, *, auto" class="dialogContainer" :class="appTheme">
<Label row="0" class="bx dialogIcon" backgroundColor="#adb5bd" :color="iconColor" :text="icon[helpIcon]" />
<Label row="1" class="dialogTitle orkm" :text="`${title}` | L" textWrap='true' />
<StackLayout row="2" v-if="filteredRecipes.length || searchQuery" padding="0 24 24">
<TextField :hint="'Search' | L" v-model="searchQuery" />
</StackLayout>
<ScrollView row="2" width="100%" :height="height ? height : ''">
<ScrollView row="3" width="100%" :height="height ? height : ''">
<StackLayout>
<MDButton v-for="(recipe, index) in filteredRecipes" :key="index" class="actionItem" variant="text" :rippleColor="rippleColor" :text="recipe.title" @loaded="onLabelLoaded" @tap="tapAction(recipe)" />
<Label padding="24" lineHeight="6" v-if="!filteredRecipes.length" :text="'Nothing here! Add some recipes and try again.' | L" textAlignment="center" textWrap="true" />
<Label padding="24" lineHeight="6" v-if="!filteredRecipes.length" :text="'recListEmp' | L" textAlignment="center" textWrap="true" />
</StackLayout>
</ScrollView>
<GridLayout row="3" rows="auto" columns="auto, *, auto" class="actionsContainer">
<GridLayout row="4" rows="auto" columns="auto, *, auto" class="actionsContainer">
<MDButton :rippleColor="rippleColor" variant="text" v-if="action" col="0" class="action orkm pull-left" :text="`${action}` | L" @tap="$modal.close(action)" />
<MDButton :rippleColor="rippleColor" variant="text" col="2" class="action orkm pull-right" :text="'CANCEL' | L" @tap="$modal.close(false)" />
</GridLayout>
@ -21,26 +22,33 @@
<script>
import {
Application,
Screen
Application
}
from "@nativescript/core"
import {
mapState
}
from "vuex"
export default {
props: [ "title", "recipes", "height", "action" ],
props: [ "title", "recipes", "height", "action", "helpIcon" ],
data() {
return {
searchQuery: "",
}
},
computed: {
...mapState( [ 'icon' ] ),
appTheme() {
return Application.systemAppearance()
},
rippleColor() {
return this.appTheme == "light" ? "rgba(134,142,150,0.2)" : "rgba(206,212,218,0.1)"
isLightMode() {
return this.appTheme == "light"
},
screenHeight() {
return Math.round( Screen.mainScreen.heightDIPs )
rippleColor() {
return this.isLightMode ? "rgba(134,142,150,0.2)" : "rgba(206,212,218,0.1)"
},
iconColor() {
return this.isLightMode ? "#f1f3f5" : "#212529"
},
filteredRecipes() {
return this.recipes.map( ( e, i ) => {

View file

@ -1,6 +1,7 @@
<template>
<Page>
<StackLayout class="dialogContainer" :class="appTheme">
<Label class="bx dialogIcon" :backgroundColor="bgColor" :color="iconColor" :text="icon[helpIcon]" />
<Label class="dialogTitle orkm" :text="`${title}` | L" textWrap="true" />
<Label v-if="description" class="dialogDescription" :text="description" textWrap="true" />
<GridLayout rows="auto" columns="*, auto, auto" class="actionsContainer">
@ -16,14 +17,25 @@ import {
Application
}
from "@nativescript/core"
import {
mapState
}
from "vuex"
export default {
props: [ "title", "description", "cancelButtonText", "okButtonText" ],
props: [ "title", "description", "cancelButtonText", "okButtonText", "helpIcon", "bgColor" ],
computed: {
...mapState( [ "icon" ] ),
appTheme() {
return Application.systemAppearance()
},
isLightMode() {
return this.appTheme == "light"
},
rippleColor() {
return this.appTheme == "light" ? "rgba(134,142,150,0.2)" : "rgba(206,212,218,0.1)"
return this.isLightMode ? "rgba(134,142,150,0.2)" : "rgba(206,212,218,0.1)"
},
iconColor() {
return this.isLightMode ? "#f1f3f5" : "#212529"
},
},
}

View file

@ -1,13 +1,14 @@
<template>
<Page>
<StackLayout class="dialogContainer" :class="appTheme">
<Label class="bx dialogIcon" backgroundColor="#adb5bd" :color="iconColor" :text="icon.time" />
<Label class="dialogTitle orkm" :text="`${title}` | L" />
<StackLayout class="dialogListPicker" orientation="horizontal" horizontalAlignment="center">
<ListPicker ref="hrPicker" :items="hrsList" :selectedIndex="hrIndex" @selectedIndexChange="setHrs"></ListPicker>
<ListPicker ref="minPicker" :items="minsList" :selectedIndex="minIndex" @selectedIndexChange="setMins"></ListPicker>
</StackLayout>
<GridLayout rows="auto" columns="*, auto, auto" class="actionsContainer">
<MDButton :rippleColor="rippleColor" variant="text" col="1" class="action orkm" :text="'CANCEL' | L" @tap="$modal.close(false)" />
<MDButton :rippleColor="rippleColor" variant="text" col="1" class="action orkm" :text="'cBtn' | L" @tap="$modal.close(false)" />
<MDButton :rippleColor="rippleColor" variant="text" col="2" class="action orkm" :text="`${action}` | L" @tap="$modal.close(selectedTime)" />
</GridLayout>
</StackLayout>
@ -19,6 +20,10 @@ import {
Application
}
from "@nativescript/core"
import {
mapState
}
from "vuex"
import {
localize
}
@ -34,6 +39,7 @@ export default {
}
},
computed: {
...mapState( [ "icon" ] ),
hrsList() {
let h = [ ...Array( 24 ).keys() ]
this.hrs = h
@ -53,8 +59,14 @@ export default {
appTheme() {
return Application.systemAppearance()
},
isLightMode() {
return this.appTheme == "light"
},
rippleColor() {
return this.appTheme == "light" ? "rgba(134,142,150,0.2)" : "rgba(206,212,218,0.1)"
return this.isLightMode ? "rgba(134,142,150,0.2)" : "rgba(206,212,218,0.1)"
},
iconColor() {
return this.isLightMode ? "#f1f3f5" : "#212529"
},
selectedTime() {
return this.selectedHrs + ":" + this.selectedMins

View file

@ -1,12 +1,13 @@
<template>
<Page>
<StackLayout class="dialogContainer" :class="appTheme">
<Label class="bx dialogIcon" backgroundColor="#adb5bd" :color="iconColor" :text="icon[helpIcon]" />
<Label class="dialogTitle orkm" :text="`${title}` | L" textWrap='true' />
<StackLayout class="dialogInput">
<TextField @loaded="focusField" :hint="hint ? hint : ''" v-model="category" autocapitalizationType="words" @returnPress="$modal.close(category)" />
</StackLayout>
<GridLayout rows="auto" columns="*, auto, auto" class="actionsContainer">
<MDButton :rippleColor="rippleColor" variant="text" col="1" class="action orkm" :text="'CANCEL' | L" @tap="$modal.close(false)" />
<MDButton :rippleColor="rippleColor" variant="text" col="1" class="action orkm" :text="'cBtn' | L" @tap="$modal.close(false)" />
<MDButton :rippleColor="rippleColor" variant="text" col="2" class="action orkm" :text="`${action}` | L" @tap="$modal.close(category)" />
</GridLayout>
</StackLayout>
@ -23,19 +24,30 @@ import {
localize
}
from '@nativescript/localize'
import {
mapState
}
from "vuex"
export default {
props: [ "title", "hint", "text", "action" ],
props: [ "title", "hint", "text", "action", "helpIcon" ],
data() {
return {
category: null,
}
},
computed: {
...mapState( [ "icon" ] ),
appTheme() {
return Application.systemAppearance()
},
isLightMode() {
return this.appTheme == "light"
},
rippleColor() {
return this.appTheme == "light" ? "rgba(134,142,150,0.2)" : "rgba(206,212,218,0.1)"
return this.isLightMode ? "rgba(134,142,150,0.2)" : "rgba(206,212,218,0.1)"
},
iconColor() {
return this.isLightMode ? "#f1f3f5" : "#212529"
},
},
methods: {

View file

@ -1,10 +1,28 @@
<template>
<Page>
<StackLayout class="dialogContainer" :class="appTheme">
<Label class="bx dialogIcon flip" backgroundColor="#adb5bd" :color="iconColor" :text="icon[helpIcon]" />
<Label class="dialogTitle orkm" :text="`${title}` | L" />
<GridLayout rows="auto, auto" columns="*" class="actionsContainer">
<MDButton :rippleColor="rippleColor" :backgroundColor="backgroundColor" row="0" class="actionIcon" src="res://photo" :text="'Photo' | L" @tap="$modal.close('photo')" />
<MDButton :rippleColor="rippleColor" :backgroundColor="backgroundColor" row="1" class="actionIcon" src="res://detail" :text="'Recipe' | L" @tap="$modal.close('recipe')" />
<GridLayout rows="auto, auto, auto" columns="*" class="actionsContainer">
<GridLayout class="shareItem" :backgroundColor="bgColor" row="0" columns="*" rows="auto, auto">
<MDRipple :rippleColor="rippleColor" rowSpan="2" @tap="$modal.close('photo')" />
<Label row="0" class="bx" :text="icon.image" />
<Label row="1" class="item" :text="'pht' | L" textWrap="true" />
</GridLayout>
<GridLayout class="shareItem" :backgroundColor="bgColor" row="1" columns="*" rows="auto, auto">
<MDRipple :rippleColor="rippleColor" rowSpan="2" @tap="$modal.close('recipe')" />
<Label row="0" class="bx" :text="icon.text" />
<Label row="1" class="item" :text="'rec' | L" textWrap="true" />
</GridLayout>
<GridLayout class="shareItem" :backgroundColor="bgColor" row="2" columns="*" rows="auto, auto">
<MDRipple :rippleColor="rippleColor" rowSpan="2" @tap="$modal.close('file')" />
<Label row="0" class="bx" :text="icon.zip" />
<Label row="1" class="item" :text="'fil' | L" textWrap="true" />
</GridLayout>
</GridLayout>
<GridLayout rows="auto" columns="*, auto" class="actionsContainer">
<MDButton :rippleColor="rippleColor" variant="text" col="1" class="action orkm" :text="'cBtn' | L" @tap="$modal.close()" />
</GridLayout>
</StackLayout>
</Page>
@ -18,17 +36,23 @@ import {
mapState
} from "vuex"
export default {
props: [ "title" ],
props: [ "title", "helpIcon" ],
computed: {
...mapState( [ "icon" ] ),
appTheme() {
return Application.systemAppearance()
},
rippleColor() {
return this.appTheme == "light" ? "rgba(134,142,150,0.2)" : "rgba(206,212,218,0.1)"
isLightMode() {
return this.appTheme == "light"
},
backgroundColor() {
return this.appTheme == "light" ? "#fff" : "#343a40"
rippleColor() {
return this.isLightMode ? "rgba(134,142,150,0.2)" : "rgba(206,212,218,0.1)"
},
iconColor() {
return this.isLightMode ? "#f1f3f5" : "#212529"
},
bgColor() {
return this.isLightMode ? "#fff" : "#343a40"
},
},
}

View file

@ -133,27 +133,26 @@
"rmCatInfo": "You are about to remove the category:",
"rmYUInfo": "You are about to remove the yield unit:",
"rmUInfo": "You are about to remove the unit:",
"rmLIInfo": "Existing recipes will not be affected.",
"rmLIInfo": "Existing recipes will not be affected",
"aBtn": "ADD",
"selRec": "Select recipe",
"recListEmp": "Nothing here! Add some recipes and try again.",
"recListEmp": "Nothing here! Add some recipes and try again",
"recTitle": "My Healthy Recipe",
"hr": "hr",
"min": "min",
"pht": "Photo",
"rec": "Recipe",
"ovw": "Overview",
"shr": "Share",
"pht": "Recipe photo",
"rec": "Recipe as text",
"fil": "Recipe as file",
"ovw": "Overview",
"aNBtn": "ADD NEW",
"SET": "SET",
"appRst": "App restart required",
"rst": "RESTART",
"nThmInfo": "Restart EnRecipes to use the new theme.",
"nLangInfo": "Restart EnRecipes to use the new language.",
"nThmInfo": "Restart EnRecipes to use the new theme",
"nLangInfo": "Restart EnRecipes to use the new language",
"grant": "Grant access",
"expReq": "Storage permission is required in order to export a backup.",
"impReq": "Storage permission is required in order to import data.",
"phtReq": "Storage permission is required in order to set a recipe photo.",
"reqAcc": "EnRecipes requires storage permission in order to set recipe photo, export and import data",
"nNBtn": "NOT NOW",
"conBtn": "CONTINUE",
"dend": "Access denied",
@ -271,13 +270,13 @@
"untRec": "Untitled Recipe",
"recRm": "Recipe removed",
"impFail": "Import failed",
"buInc": "Malformed or corrupt backup file.",
"buEmp": "The backup file is empty.",
"buMod": "The backup file was modified elsewhere.",
"buInc": "Malformed or corrupt backup file",
"buEmp": "The backup file is empty",
"buMod": "The backup file was modified elsewhere",
"buSuc": "Backup saved successfully to the Download folder",
"invFile": "Invalid file",
"donate": "Donate",
"appInfo": "EnRecipes is an open source, privacy-friendly digital cookbook that lets you create, manage and share your recipes.",
"appInfo": "EnRecipes is an open source, privacy-friendly digital cookbook that lets you create, manage and share your recipes",
"help": "Help",
"trySer": "SEARCH IN ALL THE RECIPES?"
}

View file

@ -15,8 +15,8 @@
android {
defaultConfig {
versionCode 5
versionName '1.2.5'
versionCode 6
versionName '1.3.0'
applicationId 'com.vishnuraghav.enrecipes'
minSdkVersion 21
generatedDensities = []

View file

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="_Import_failed_Z1dbs6t">"Kunne ikke importere"</string>
<string name="_Invalid_file__Z2bRAst">"Invalid file:"</string>
<string name="_Backup_file_has_been_modified_externally__Wjiqq">"Backup file has been modified externally."</string>
<string name="_Backup_file_seems_empty__Zd7qfR">"Backup file seems empty."</string>
@ -253,11 +254,11 @@
<string name="Piece">"Stykke"</string>
<string name="Serving">"Serverer"</string>
<string name="Vegetarian">"Vegetarisk"</string>
<string name="Vegan">"Vegetarisk"</string>
<string name="Vegan">"Vegansk"</string>
<string name="Undefined">"Ikke defineret"</string>
<string name="Soups">"Suppe"</string>
<string name="Snacks">"Snackbar"</string>
<string name="_Side_dishes_Z1Et4Vg">"Side retter"</string>
<string name="_Side_dishes_Z1Et4Vg">"Sideretter"</string>
<string name="Seafood">"Skaldyr"</string>
<string name="Sauces">"Sauce"</string>
<string name="Salads">"Salater"</string>
@ -287,5 +288,158 @@
<string name="_app_name_1k3Sbz">"EnRecipes"</string>
<string name="app_name">"EnRecipes"</string>
<string name="title_activity_kimera">"EnRecipes"</string>
<string name="_Import_failed_Z1dbs6t">"Import failed"</string>
<string name="trySer">"SEARCH IN ALL THE RECIPES?"</string>
<string name="help">"Help"</string>
<string name="appInfo">"EnRecipes is an open source, privacy-friendly digital cookbook that lets you create, manage and share your recipes"</string>
<string name="donate">"Donate"</string>
<string name="invFile">"Invalid file"</string>
<string name="buSuc">"Backup saved successfully to the Download folder"</string>
<string name="buMod">"The backup file was modified elsewhere"</string>
<string name="buEmp">"The backup file is empty"</string>
<string name="buInc">"Malformed or corrupt backup file"</string>
<string name="impFail">"Import failed"</string>
<string name="recRm">"Recipe removed"</string>
<string name="untRec">"Untitled Recipe"</string>
<string name="stars">"Star rating"</string>
<string name="_Filtered_recipes_Z1alhhu">"Filtered recipes"</string>
<string name="recU">"recipes updated"</string>
<string name="recE">"recipes already exists"</string>
<string name="recI">"recipes imported"</string>
<string name="recF">"recipes found"</string>
<string name="impSuc">"Import success"</string>
<string name="tsInfo">"separate with spaces"</string>
<string name="ts">"Tags"</string>
<string name="noTs">"No tags available"</string>
<string name="allTs">"All Tags"</string>
<string name="allCats">"All Categories"</string>
<string name="allCuis">"All Cuisines"</string>
<string name="cuis">"Cuisines"</string>
<string name="cui">"Cuisine"</string>
<string name="newUnit">"New unit"</string>
<string name="newCui">"New cuisine"</string>
<string name="resNF">"Recipe not found"</string>
<string name="restDone">"Reset done"</string>
<string name="restInfo">"Resetting a list will delete user-created entries and restore default entries. Existing recipes will not be affected."</string>
<string name="restUL">"Reset unit list"</string>
<string name="restYUL">"Reset yield unit list"</string>
<string name="restCatL">"Reset category list"</string>
<string name="restCuiL">"Reset cuisine list"</string>
<string name="rest">"Reset"</string>
<string name="sVwInfo">"Helps you choose what to cook when you can\'t decide"</string>
<string name="sVw">"Shake to view random recipe"</string>
<string name="opts">"Options"</string>
<string name="guide">"User guide"</string>
<string name="priv">"Privacy policy"</string>
<string name="gh">"View on GitHub"</string>
<string name="appCrd">"Shared via EnRecipes. Get it on F-Droid, IzzyOnDroid or the Play Store."</string>
<string name="vrfy">"Verifying"</string>
<string name="ltAgo">"a long time ago"</string>
<string name="mAgo">"months ago"</string>
<string name="wAgo">"weeks ago"</string>
<string name="dAgo">"days ago"</string>
<string name="triedInfo">"You tried this recipe:"</string>
<string name="cPic">"Crop photo"</string>
<string name="repBtn">"REPLACE PHOTO"</string>
<string name="recPic">"Recipe photo"</string>
<string name="req">"Required"</string>
<string name="nwCat">"New category"</string>
<string name="nwYiU">"New yield unit"</string>
<string name="rmCmb">"Combination removed"</string>
<string name="rmN">"Note removed"</string>
<string name="rmIns">"Instruction removed"</string>
<string name="rmIng">"Ingredient removed"</string>
<string name="kEdit">"KEEP EDITING"</string>
<string name="disBtn">"DISCARD"</string>
<string name="disc">"This recipe has unsaved changes. What would you like to do?"</string>
<string name="unsaved">"Unsaved changes"</string>
<string name="ser">"Search"</string>
<string name="dBtn">"DELETE"</string>
<string name="delRecInfo">"You are about to permanently delete the recipe:"</string>
<string name="delRec">"Delete confirmation"</string>
<string name="conf">"Confirm"</string>
<string name="rmTry">"Removed from Try Later"</string>
<string name="aTry">"Added to Try Later"</string>
<string name="unfavd">"Removed from Favourites"</string>
<string name="favd">"Added to Favourites"</string>
<string name="aFBu">"Add a recipe to perform a backup"</string>
<string name="dend">"Access denied"</string>
<string name="conBtn">"CONTINUE"</string>
<string name="nNBtn">"NOT NOW"</string>
<string name="reqAcc">"EnRecipes requires storage permission in order to set recipe photo, export and import data"</string>
<string name="grant">"Grant access"</string>
<string name="nLangInfo">"Restart EnRecipes to use the new language"</string>
<string name="nThmInfo">"Restart EnRecipes to use the new theme"</string>
<string name="rst">"RESTART"</string>
<string name="appRst">"App restart required"</string>
<string name="aNBtn">"ADD NEW"</string>
<string name="ovw">"Overview"</string>
<string name="fil">"Recipe as file"</string>
<string name="rec">"Recipe as text"</string>
<string name="pht">"Recipe photo"</string>
<string name="shr">"Share"</string>
<string name="recTitle">"My Healthy Recipe"</string>
<string name="recListEmp">"Nothing here! Add some recipes and try again"</string>
<string name="selRec">"Select recipe"</string>
<string name="aBtn">"ADD"</string>
<string name="rmLIInfo">"Existing recipes will not be affected"</string>
<string name="rmUInfo">"You are about to remove the unit:"</string>
<string name="rmYUInfo">"You are about to remove the yield unit:"</string>
<string name="rmCatInfo">"You are about to remove the category:"</string>
<string name="rmCuiInfo">"You are about to remove the cuisine:"</string>
<string name="rBtn">"REMOVE"</string>
<string name="cBtn">"CANCEL"</string>
<string name="srt">"Sort by"</string>
<string name="stp">"Step"</string>
<string name="it">"Item"</string>
<string name="aNoBtn">"ADD NOTE"</string>
<string name="nos">"Notes"</string>
<string name="no">"Note"</string>
<string name="addCmbBtn">"ADD COMBINATION"</string>
<string name="cmbs">"Combinations"</string>
<string name="cmb">"Combination"</string>
<string name="aStpBtn">"ADD STEP"</string>
<string name="inss">"Instructions"</string>
<string name="ins">"Instruction"</string>
<string name="aIngBtn">"ADD INGREDIENT"</string>
<string name="ings">"Ingredients"</string>
<string name="ing">"Ingredient"</string>
<string name="yieldU">"Yield unit"</string>
<string name="yieldQ">"Yield quantity"</string>
<string name="cookT">"Cooking time"</string>
<string name="prepT">"Preparation time"</string>
<string name="cat">"Category"</string>
<string name="title">"Title"</string>
<string name="editRec">"Edit recipe"</string>
<string name="newRec">"New recipe"</string>
<string name="tgInfo">"For reporting issues, suggestions and feedback"</string>
<string name="joinTG">"Join the Telegram group"</string>
<string name="ver">"Version"</string>
<string name="impInfo">"Supports full backups exported by this app"</string>
<string name="impBu">"Import data"</string>
<string name="buInfo">"Generates a ZIP file containing all your data that can be imported back"</string>
<string name="expBu">"Export full backup"</string>
<string name="db">"Database"</string>
<string name="sysDef">"System default"</string>
<string name="lang">"Language"</string>
<string name="intf">"Interface"</string>
<string name="noRecsInFtr">"No recipes match your search in the Filtered recipes"</string>
<string name="noRecsInFavs">"No recipes match your search in the Favourites list"</string>
<string name="noRecsInTL">"No recipes match your search in the Try Later list"</string>
<string name="noRecs">"No recipes match your search"</string>
<string name="fsList">"Your favourite recipes are listed here"</string>
<string name="noFavs">"No favourites yet"</string>
<string name="tLInfo">"Recipes you want to try later are listed here"</string>
<string name="aD">"All done!"</string>
<string name="pANo">"Use the pencil button to add notes"</string>
<string name="pACmb">"Use the pencil button to add combinations"</string>
<string name="pAIns">"Use the pencil button to add instructions"</string>
<string name="pAIng">"Use the pencil button to add ingredients"</string>
<string name="plsAdd">"Use the plus button to add one"</string>
<string name="strAdd">"Start adding your recipes!"</string>
<string name="grocery">"Grocery List"</string>
<string name="planner">"Meal Planner"</string>
<string name="favourites">"Favourites"</string>
<string name="trylater">"Try Later"</string>
<string name="Donate">"Donate"</string>
<string name="Combination">"Combination"</string>
</resources>

View file

@ -1,10 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="_Invalid_file__Z2bRAst">"Invalid file:"</string>
<string name="_Backup_file_has_been_modified_externally__Wjiqq">"Backup file has been modified externally."</string>
<string name="_Backup_file_seems_empty__Zd7qfR">"Backup file seems empty."</string>
<string name="_Backup_file_is_incorrect_or_corrupt__1jXb8N">"Backup file is incorrect or corrupt."</string>
<string name="_Import_failed_Z1dbs6t">"Import failed"</string>
<string name="Donate">"Spenden"</string>
<string name="Combination">"Kombination"</string>
<string name="_Invalid_file__Z2bRAst">"Ungültige Datei:"</string>
<string name="_Backup_file_has_been_modified_externally__Wjiqq">"Sicherungsdatei an anderer Stelle geändert."</string>
<string name="_Backup_file_seems_empty__Zd7qfR">"Die Datensicherung ist leer."</string>
<string name="_Backup_file_is_incorrect_or_corrupt__1jXb8N">"Fehlerhafte oder beschädigte Sicherungsdatei."</string>
<string name="_Import_failed_Z1dbs6t">"Import fehlgeschlagen"</string>
<string name="_Remove_recipe_from_snacks__MNnCU">"Entferne Rezept von Imbiss?"</string>
<string name="_Remove_recipe_from_dinner__8sWfY">"Entferne Rezept von Abendessen?"</string>
<string name="_Remove_recipe_from_lunch__Zwpsg2">"Entferne Rezept von Mittagessen?"</string>
@ -18,11 +20,11 @@
<string name="_recipes_already_exists_2jqW2s">"Rezept existiert bereits"</string>
<string name="_recipes_imported_1NGeRw">"Rezepte importiert"</string>
<string name="_recipes_found_ZDdUgV">"Rezepte gefunden"</string>
<string name="_Import_summary_244SkL">"Import Zusammenfassung"</string>
<string name="_Import_summary_244SkL">"Importzusammenfassung"</string>
<string name="_separate_with_spaces_ZHKOfw">"trennen mit Leerzeichen"</string>
<string name="Tags">"Tags"</string>
<string name="_No_tags_available_Z1C5GqD">"Keine Tags vorhanden"</string>
<string name="_All_Tags_28gMyY">"Alle Tags"</string>
<string name="Tags">"Markierungen"</string>
<string name="_No_tags_available_Z1C5GqD">"Keine Markierungen vorhanden"</string>
<string name="_All_Tags_28gMyY">"Alle Markierungen"</string>
<string name="_All_Categories_Z23JSTS">"Alle Kategorien"</string>
<string name="Vietnamese">"Vietnamesisch"</string>
<string name="Turkish">"Türkisch"</string>
@ -75,27 +77,27 @@
<string name="Rating">"Bewertung"</string>
<string name="_Slowest_first_hHjY6">"Langsamste zuerst"</string>
<string name="_Quickest_first_Z1CpP7N">"Schnellste zuerst"</string>
<string name="_Your_search_did_not_match_any_recipes_in_the_filtered_result_1TV6QQ">"Deine Suche ergab keine Übereinstimmung mit den Rezepten im gefilterten Ergebnis"</string>
<string name="_Your_search_did_not_match_any_recipes_in_the_filtered_result_1TV6QQ">"Konnte keine solchen Rezepte finden."</string>
<string name="_Recipe_not_found_2qGveM">"Rezept nicht gefunden"</string>
<string name="_Reset_successful_YxqWK">"Zurücksetzen erfolgreich"</string>
<string name="_Reset_units_list_msRS3">"Einheiten Liste zurücksetzen"</string>
<string name="_Reset_yield_units_list_ZjouMk">"Ertragseinheiten Liste zurücksetzen"</string>
<string name="_Reset_categories_list_Z1JmKra">"Kategorien Liste zurücksetzen"</string>
<string name="_Reset_cuisines_list_1kWL8I">"Küchen Liste zurücksetzen"</string>
<string name="_Resetting_a_list_will_NOT_delete_your_existing_entries_but_only_restores_the_deleted_default_entries__Z28mk0h">"Das Zurücksetzen einer Liste löscht NICHT deine vorhandenen Einträge, sondern stellt nur die gelöschten Standardeinträge wieder her"</string>
<string name="_Reset_successful_YxqWK">"Zurücksetzen erledigt"</string>
<string name="_Reset_units_list_msRS3">"Einheiten-Liste zurücksetzen"</string>
<string name="_Reset_yield_units_list_ZjouMk">"Ertragseinheiten-Liste zurücksetzen"</string>
<string name="_Reset_categories_list_Z1JmKra">"Kategorien-Liste zurücksetzen"</string>
<string name="_Reset_cuisines_list_1kWL8I">"Küchen-Liste zurücksetzen"</string>
<string name="_Resetting_a_list_will_NOT_delete_your_existing_entries_but_only_restores_the_deleted_default_entries__Z28mk0h">"Durch das Zurücksetzen von Listen werden nur gelöschte Standardeinträge wiederhergestellt. Bestehende Einträge werden nicht gelöscht."</string>
<string name="Reset">"Zurücksetzen"</string>
<string name="_Helps_you_choose_what_to_cook_when_you_can_t_decide_muiMv">"Hilft dir wenn du dich nicht entscheiden kannst, was gekocht werden soll"</string>
<string name="_Shake_to_view_random_recipe_ZTK9F2">"Schütteln um zufälliges Rezept anzuzeigen"</string>
<string name="_Helps_you_choose_what_to_cook_when_you_can_t_decide_muiMv">"Hilft dir, wenn du dich nicht entscheiden kannst, was du kochen willst"</string>
<string name="_Shake_to_view_random_recipe_ZTK9F2">"Schütteln, um ein zufälliges Rezept zu erhalten"</string>
<string name="Options">"Optionen"</string>
<string name="_User_guide_2uDJCF">"Anleitung"</string>
<string name="_Privacy_policy_Zb4ht5">"Datenschutz"</string>
<string name="_View_on_GitHub_Z2qOqmx">"Auf GitHub ansehen"</string>
<string name="Translator">"Übersetzer"</string>
<string name="Translator">"Übersetzt von"</string>
<string name="Contributors">"Mitwirkende"</string>
<string name="_Shared_via_EnRecipes__Get_it_on_Play_Store_or_F_Droid__Z2oTOK1">"Geteilt über EnRecipes. Hole es Dir aus dem Play Store oder von F-Droid."</string>
<string name="_Shared_via_EnRecipes__Get_it_on_Play_Store_or_F_Droid__Z2oTOK1">"Über EnRecipes geteilt. Hol es dir auf F-Droid, IzzyOnDroid oder im Play Store."</string>
<string name="_Permission_denied_Z7wlWK">"Berechtigung verweigert"</string>
<string name="_Import_successful_2bLM3e">"Import erfolgreich"</string>
<string name="_Verifying____cS102">"Überprüfen..."</string>
<string name="_Import_successful_2bLM3e">"Importiert"</string>
<string name="_Verifying____cS102">"Überprüfen …"</string>
<string name="_long_time_ago_1nwlFA">"vor langer Zeit"</string>
<string name="_months_ago_Z1TsskA">"Monate zuvor"</string>
<string name="_weeks_ago_Z2sT1GA">"Wochen zuvor"</string>
@ -105,12 +107,12 @@
<string name="_You_tried_this_recipe__ZUJOl3">"Du hast dieses Rezept ausprobiert:"</string>
<string name="snacks">"Imbiss"</string>
<string name="dinner">"Abendessen"</string>
<string name="lunch">"Mittag"</string>
<string name="lunch">"Mittagessen"</string>
<string name="breakfast">"Frühstück"</string>
<string name="_Crop_photo_1VL04J">"Foto zuschneiden"</string>
<string name="_REPLACE_PHOTO_ZLHhwH">"FOTO ERSETZEN"</string>
<string name="_Recipe_photo_eqm9B">"Rezept Foto"</string>
<string name="_EnRecipes_requires_storage_permission_in_order_to_set_recipe_photo__23OnNT">"EnRecipes erfordert Speicherberechtigung, um Rezept Fotos zu setzen."</string>
<string name="_Recipe_photo_eqm9B">"Rezeptfoto"</string>
<string name="_EnRecipes_requires_storage_permission_in_order_to_set_recipe_photo__23OnNT">"Erteile die Speicherberechtigung zum Speichern eines Rezeptfotos."</string>
<string name="Required">"Erforderlich"</string>
<string name="_New_category_Weg73">"Neue Kategorie"</string>
<string name="_New_yield_unit_1Oevd2">"Neue Ertragseinheit"</string>
@ -120,26 +122,26 @@
<string name="_Remove_ingredient__2puvMO">"Zutaten entfernen?"</string>
<string name="_KEEP_EDITING_1o9uy3">"WEITER BEARBEITEN"</string>
<string name="DISCARD">"VERWERFEN"</string>
<string name="_Are_you_sure_you_want_to_discard_unsaved_changes_to_this_recipe__Z1G7sVC">"Möchtest Du nicht gespeicherte Änderungen an diesem Rezept verwerfen?"</string>
<string name="_Are_you_sure_you_want_to_discard_unsaved_changes_to_this_recipe__Z1G7sVC">"Alle nicht gespeicherten Änderungen an diesem Rezept verwerfen?"</string>
<string name="_Unsaved_changes_9fqb4">"Nicht gespeicherte Änderungen"</string>
<string name="Search">"Suche"</string>
<string name="_Are_you_sure_you_want_to_delete_the_recipe_29DH9w">"Möchtest Du das Rezept wirklich löschen"</string>
<string name="_Are_you_sure_you_want_to_delete_the_recipe_29DH9w">"Das Rezept löschen"</string>
<string name="DELETE">"LÖSCHEN"</string>
<string name="_Delete_recipe__Z2tMYtE">"Rezept löschen?"</string>
<string name="_Removed_from_Try_Later_1h5Bkp">"Aus Später ausprobieren entfernt"</string>
<string name="_Added_to_Try_Later_Z1gaF37">"In Später ausprobieren hinzugefügt"</string>
<string name="_Removed_from_Favourites_Z5k7LR">"Aus Favoriten entfernt"</string>
<string name="_Added_to_Favourites_2mzllO">"Zu Favoriten Hinzugefügt"</string>
<string name="_Add_at_least_one_recipe_to_perform_a_backup_17xYaH">"Füge mindestens ein Rezept hinzu, um eine Sicherung durchzuführen"</string>
<string name="_EnRecipes_requires_storage_permission_in_order_to_backup_your_data_to_this_device__2cbvIq">"EnRecipes benötigt Speicherberechtigung, um Deine Daten auf diesem Gerät zu sichern."</string>
<string name="_Added_to_Favourites_2mzllO">"Zu Favoriten hinzugefügt"</string>
<string name="_Add_at_least_one_recipe_to_perform_a_backup_17xYaH">"Füge zuerst ein Rezept hinzu, um eine Sicherung durchzuführen."</string>
<string name="_EnRecipes_requires_storage_permission_in_order_to_backup_your_data_to_this_device__2cbvIq">"Erteile die Speicherberechtigung zum Sichern von EnRecipe-Daten auf dem Gerät."</string>
<string name="CONTINUE">"FORTSETZEN"</string>
<string name="_NOT_NOW_Z1HD7qX">"NICHT JETZT"</string>
<string name="_EnRecipes_requires_storage_permission_in_order_to_import_your_data_from_a_previous_backup__1CKjb7">"EnRecipes benötigt Speicherberechtigung, um Deine Daten aus einer früheren Sicherung zu importieren."</string>
<string name="_EnRecipes_requires_storage_permission_in_order_to_import_your_data_from_a_previous_backup__1CKjb7">"Erteile die Speicherberechtigung zum Importieren deiner Daten aus einer vorherigen Sicherung."</string>
<string name="_Grant_permission_Z1UQBuh">"Erlaubnis erteilen"</string>
<string name="_EnRecipes_needs_to_be_restarted_for_the_app_language_to_take_effect__ZWGUtY">"EnRecipes muss neu gestartet werden, damit die neu eingestellte Sprache geändert wird"</string>
<string name="_EnRecipes_needs_to_be_restarted_for_the_theme_change_to_take_effect__2kU319">"EnRecipes muss neu gestartet werden, damit der Themenwechsel wirksam wird."</string>
<string name="_EnRecipes_needs_to_be_restarted_for_the_app_language_to_take_effect__ZWGUtY">"Starte EnRecipes neu, um die neue Sprache zu verwenden."</string>
<string name="_EnRecipes_needs_to_be_restarted_for_the_theme_change_to_take_effect__2kU319">"Starte EnRecipes neu, um das neue Thema zu verwenden."</string>
<string name="RESTART">"NEUSTARTEN"</string>
<string name="_Restart_required_Z22YINL">"Neustart erforderlich"</string>
<string name="_Restart_required_Z22YINL">"Neustart der Anwendung erforderlich"</string>
<string name="SET">"EINSTELLEN"</string>
<string name="_ADD_NEW_Zv8FjM">"NEU ANLEGEN"</string>
<string name="Share">"Teilen"</string>
@ -149,7 +151,7 @@
<string name="min">"min"</string>
<string name="hr">"h"</string>
<string name="_My_Healthy_Recipe_Z1EqB8f">"Mein Gesundes Rezept"</string>
<string name="_Nothing_here__Add_some_recipes_and_try_again__Z25A7Q">"Hier ist nichts! Füge einige Rezepte hinzu und versuche es erneut."</string>
<string name="_Nothing_here__Add_some_recipes_and_try_again__Z25A7Q">"Füge Rezepte hinzu, um sie hier zu sehen."</string>
<string name="_Select_a_recipe_2lL8x2">"Rezept auswählen"</string>
<string name="ADD">"HINZUFÜGEN"</string>
<string name="REMOVE">"ENTFERNEN"</string>
@ -178,35 +180,35 @@
<string name="_New_recipe_Z1Y2YKJ">"Neues Rezept"</string>
<string name="_Vishnu_Raghav_B_1qnRnC">"Vishnu Raghav B"</string>
<string name="Author">"Autor"</string>
<string name="_for_reporting_issues__suggestions_and_feedback_Z1JUmyE">"für die Meldung von Problemen, Anregungen und Feedback"</string>
<string name="_for_reporting_issues__suggestions_and_feedback_Z1JUmyE">"für die Meldung von Problemen, Anregungen und Rückmeldung"</string>
<string name="_Join_the_Telegram_group_ZAXQgc">"Tritt der Telegrammgruppe bei"</string>
<string name="Version">"Version"</string>
<string name="_Supports_full_backups_exported_by_this_app_ZYs4f2">"Unterstützt vollständige Backups, die von dieser App exportiert werden"</string>
<string name="_Import_from_backup_Z28HsC0">"Importieren vom Backup"</string>
<string name="_Generates_a_zip_file_that_contains_all_your_data__This_file_can_be_imported_back__Z19m3xY">"Erzeugt eine zip-Datei, die alle Daten enthält. Diese Datei kann wieder importiert werden."</string>
<string name="_Export_a_full_backup_TJfra">"Exportieren in ein Backup"</string>
<string name="_Supports_full_backups_exported_by_this_app_ZYs4f2">"Unterstützt vollständige Datensicherungen, die von dieser Anwendung exportiert werden"</string>
<string name="_Import_from_backup_Z28HsC0">"Von der Datensicherung importieren"</string>
<string name="_Generates_a_zip_file_that_contains_all_your_data__This_file_can_be_imported_back__Z19m3xY">"Generiert eine ZIP-Datei mit all deinen Daten, die du an anderer Stelle importieren kannst."</string>
<string name="_Export_a_full_backup_TJfra">"Eine vollständinge Datensicherung exportieren"</string>
<string name="Database">"Datenbank"</string>
<string name="Dark">"Dunkel"</string>
<string name="Light">"Hell"</string>
<string name="Theme">"Thema"</string>
<string name="_System_default_Z1jruVS">"System Standard"</string>
<string name="_App_language_DzFsk">"App Sprache"</string>
<string name="_System_default_Z1jruVS">"System"</string>
<string name="_App_language_DzFsk">"Sprache"</string>
<string name="Interface">"Benutzeroberfläche"</string>
<string name="_Your_search_did_not_match_any_recipes_in_your_try_later_list_Z2wWbA1">"Deine Suche stimmte nicht mit Rezepten in Deiner Später versuchen Liste überein"</string>
<string name="_Your_search_did_not_match_any_recipes_in_your_favourites_1ylvHN">"Deine Suche stimmte nicht mit Rezepten in Deinen Favoriten überein"</string>
<string name="_Your_search_did_not_match_any_recipes_in_this_category_P7J4V">"Deine Suche stimmte nicht mit Rezepten in dieser Kategorie überein"</string>
<string name="_Your_search_did_not_match_any_recipes_Z1eppHH">"Deine Suche stimmte nicht mit Rezepten überein"</string>
<string name="_Your_search_did_not_match_any_recipes_in_your_try_later_list_Z2wWbA1">"Solche „später auszuprobieren Rezepte“ konnten nicht gefunden werden."</string>
<string name="_Your_search_did_not_match_any_recipes_in_your_favourites_1ylvHN">"Solche Favoriten konnten nicht gefunden werden."</string>
<string name="_Your_search_did_not_match_any_recipes_in_this_category_P7J4V">"Solche Rezepte konnte in dieser Kategorie nicht gefunden werden."</string>
<string name="_Your_search_did_not_match_any_recipes_Z1eppHH">"Solche Rezepte konnten nicht gefunden werden."</string>
<string name="_No_recipes_found_Z125IxD">"Keine Rezepte gefunden"</string>
<string name="_Category_looks_empty_ZAK5qU">"Kategorie ist leer"</string>
<string name="_Recipes_you_mark_as_favourite_will_be_listed_here_Z1iIHgY">"Rezepte, die Du als Favorit markierst, werden hier aufgelistet"</string>
<string name="_Category_looks_empty_ZAK5qU">"Füge Kategorien hinzu, um sie hier zu sehen."</string>
<string name="_Recipes_you_mark_as_favourite_will_be_listed_here_Z1iIHgY">"Markiere Rezepte als Favorit markierst, um sie hier zu sehen."</string>
<string name="_No_favourites_yet_aPSoG">"Noch keine Favoriten"</string>
<string name="_Recipes_you_mark_as_try_later_will_be_listed_here_Z1ITwPV">"Rezepte, die mit Später ausprobieren markiert sind, werden hier aufgelistet"</string>
<string name="_Recipes_you_mark_as_try_later_will_be_listed_here_Z1ITwPV">"Rezepte, die du später ausprobieren willst, sind hier aufgelistet."</string>
<string name="_All_done__72KYl">"Alles fertig!"</string>
<string name="_Use_the_pencil_button_to_add_some_notes_Z1wyyeb">"Verwende das Stift-Symbol, um einige Notizen hinzuzufügen"</string>
<string name="_Use_the_pencil_button_to_add_some_combinations_6NhFS">"Verwende das Stift-Symbol, um einige Kombinationen hinzuzufügen"</string>
<string name="_Use_the_pencil_button_to_add_some_instructions_ZAi0PH">"Verwende das Stift-Symbol, um einige Zubereitungen hinzuzufügen"</string>
<string name="_Use_the_pencil_button_to_add_some_ingredients_Z1xOX8S">"Verwende das Stift-Symbol, um einige Zutaten hinzuzufügen"</string>
<string name="_Use_the_plus_button_to_add_one_1h20ms">"Verwende das Plus-Symbol, um eins hinzuzufügen"</string>
<string name="_Use_the_pencil_button_to_add_some_notes_Z1wyyeb">"Verwende das Stift-Symbol, um einige Notizen hinzuzufügen."</string>
<string name="_Use_the_pencil_button_to_add_some_combinations_6NhFS">"Verwende das Stift-Symbol, um einige Kombinationen hinzuzufügen."</string>
<string name="_Use_the_pencil_button_to_add_some_instructions_ZAi0PH">"Verwende das Stift-Symbol, um einige Zubereitungen hinzuzufügen."</string>
<string name="_Use_the_pencil_button_to_add_some_ingredients_Z1xOX8S">"Verwende das Stift-Symbol, um einige Zutaten hinzuzufügen."</string>
<string name="_Use_the_plus_button_to_add_one_1h20ms">"Verwende das Plus-Symbol, um eins hinzuzufügen."</string>
<string name="_Start_adding_your_recipes__rwnVV">"Beginne deine Rezepte hinzuzufügen!"</string>
<string name="large">"groß"</string>
<string name="medium">"medium"</string>
@ -233,7 +235,7 @@
<string name="cup">"Tasse"</string>
<string name="_fl_oz_72kqu">"fl"</string>
<string name="tbsp">"EL"</string>
<string name="dsp">"SL"</string>
<string name="dsp">"DL"</string>
<string name="tsp">"TL"</string>
<string name="Unit">"Einheit"</string>
<string name="unit">"Einheit"</string>
@ -257,7 +259,7 @@
<string name="Vegan">"Vegan"</string>
<string name="Undefined">"Unsortiert"</string>
<string name="Soups">"Suppen"</string>
<string name="Snacks">"Snacks"</string>
<string name="Snacks">"Imbisse"</string>
<string name="_Side_dishes_Z1Et4Vg">"Beilagen"</string>
<string name="Seafood">"Meeresfrüchte"</string>
<string name="Sauces">"Soßen"</string>
@ -268,7 +270,7 @@
<string name="Noodles">"Nudeln"</string>
<string name="Meat">"Fleisch"</string>
<string name="_Main_dishes_u6RGQ">"Hauptspeisen"</string>
<string name="Lunch">"Mittag"</string>
<string name="Lunch">"Mittagessen"</string>
<string name="Healthy">"Gesund"</string>
<string name="Drinks">"Getränke"</string>
<string name="Dinner">"Abendessen"</string>
@ -288,4 +290,156 @@
<string name="_app_name_1k3Sbz">"EnRecipes"</string>
<string name="app_name">"EnRecipes"</string>
<string name="title_activity_kimera">"EnRecipes"</string>
<string name="trySer">"SEARCH IN ALL THE RECIPES?"</string>
<string name="help">"Help"</string>
<string name="appInfo">"EnRecipes is an open source, privacy-friendly digital cookbook that lets you create, manage and share your recipes"</string>
<string name="donate">"Donate"</string>
<string name="invFile">"Invalid file"</string>
<string name="buSuc">"Backup saved successfully to the Download folder"</string>
<string name="buMod">"The backup file was modified elsewhere"</string>
<string name="buEmp">"The backup file is empty"</string>
<string name="buInc">"Malformed or corrupt backup file"</string>
<string name="impFail">"Import failed"</string>
<string name="recRm">"Recipe removed"</string>
<string name="untRec">"Untitled Recipe"</string>
<string name="stars">"Star rating"</string>
<string name="_Filtered_recipes_Z1alhhu">"Filtered recipes"</string>
<string name="recU">"recipes updated"</string>
<string name="recE">"recipes already exists"</string>
<string name="recI">"recipes imported"</string>
<string name="recF">"recipes found"</string>
<string name="impSuc">"Import success"</string>
<string name="tsInfo">"separate with spaces"</string>
<string name="ts">"Tags"</string>
<string name="noTs">"No tags available"</string>
<string name="allTs">"All Tags"</string>
<string name="allCats">"All Categories"</string>
<string name="allCuis">"All Cuisines"</string>
<string name="cuis">"Cuisines"</string>
<string name="cui">"Cuisine"</string>
<string name="newUnit">"New unit"</string>
<string name="newCui">"New cuisine"</string>
<string name="resNF">"Recipe not found"</string>
<string name="restDone">"Reset done"</string>
<string name="restInfo">"Resetting a list will delete user-created entries and restore default entries. Existing recipes will not be affected."</string>
<string name="restUL">"Reset unit list"</string>
<string name="restYUL">"Reset yield unit list"</string>
<string name="restCatL">"Reset category list"</string>
<string name="restCuiL">"Reset cuisine list"</string>
<string name="rest">"Reset"</string>
<string name="sVwInfo">"Helps you choose what to cook when you can\'t decide"</string>
<string name="sVw">"Shake to view random recipe"</string>
<string name="opts">"Options"</string>
<string name="guide">"User guide"</string>
<string name="priv">"Privacy policy"</string>
<string name="gh">"View on GitHub"</string>
<string name="appCrd">"Shared via EnRecipes. Get it on F-Droid, IzzyOnDroid or the Play Store."</string>
<string name="vrfy">"Verifying"</string>
<string name="ltAgo">"a long time ago"</string>
<string name="mAgo">"months ago"</string>
<string name="wAgo">"weeks ago"</string>
<string name="dAgo">"days ago"</string>
<string name="triedInfo">"You tried this recipe:"</string>
<string name="cPic">"Crop photo"</string>
<string name="repBtn">"REPLACE PHOTO"</string>
<string name="recPic">"Recipe photo"</string>
<string name="req">"Required"</string>
<string name="nwCat">"New category"</string>
<string name="nwYiU">"New yield unit"</string>
<string name="rmCmb">"Combination removed"</string>
<string name="rmN">"Note removed"</string>
<string name="rmIns">"Instruction removed"</string>
<string name="rmIng">"Ingredient removed"</string>
<string name="kEdit">"KEEP EDITING"</string>
<string name="disBtn">"DISCARD"</string>
<string name="disc">"This recipe has unsaved changes. What would you like to do?"</string>
<string name="unsaved">"Unsaved changes"</string>
<string name="ser">"Search"</string>
<string name="dBtn">"DELETE"</string>
<string name="delRecInfo">"You are about to permanently delete the recipe:"</string>
<string name="delRec">"Delete confirmation"</string>
<string name="conf">"Confirm"</string>
<string name="rmTry">"Removed from Try Later"</string>
<string name="aTry">"Added to Try Later"</string>
<string name="unfavd">"Removed from Favourites"</string>
<string name="favd">"Added to Favourites"</string>
<string name="aFBu">"Add a recipe to perform a backup"</string>
<string name="dend">"Access denied"</string>
<string name="conBtn">"CONTINUE"</string>
<string name="nNBtn">"NOT NOW"</string>
<string name="reqAcc">"EnRecipes requires storage permission in order to set recipe photo, export and import data"</string>
<string name="grant">"Grant access"</string>
<string name="nLangInfo">"Restart EnRecipes to use the new language"</string>
<string name="nThmInfo">"Restart EnRecipes to use the new theme"</string>
<string name="rst">"RESTART"</string>
<string name="appRst">"App restart required"</string>
<string name="aNBtn">"ADD NEW"</string>
<string name="ovw">"Overview"</string>
<string name="fil">"Recipe as file"</string>
<string name="rec">"Recipe as text"</string>
<string name="pht">"Recipe photo"</string>
<string name="shr">"Share"</string>
<string name="recTitle">"My Healthy Recipe"</string>
<string name="recListEmp">"Nothing here! Add some recipes and try again"</string>
<string name="selRec">"Select recipe"</string>
<string name="aBtn">"ADD"</string>
<string name="rmLIInfo">"Existing recipes will not be affected"</string>
<string name="rmUInfo">"You are about to remove the unit:"</string>
<string name="rmYUInfo">"You are about to remove the yield unit:"</string>
<string name="rmCatInfo">"You are about to remove the category:"</string>
<string name="rmCuiInfo">"You are about to remove the cuisine:"</string>
<string name="rBtn">"REMOVE"</string>
<string name="cBtn">"CANCEL"</string>
<string name="srt">"Sort by"</string>
<string name="stp">"Step"</string>
<string name="it">"Item"</string>
<string name="aNoBtn">"ADD NOTE"</string>
<string name="nos">"Notes"</string>
<string name="no">"Note"</string>
<string name="addCmbBtn">"ADD COMBINATION"</string>
<string name="cmbs">"Combinations"</string>
<string name="cmb">"Combination"</string>
<string name="aStpBtn">"ADD STEP"</string>
<string name="inss">"Instructions"</string>
<string name="ins">"Instruction"</string>
<string name="aIngBtn">"ADD INGREDIENT"</string>
<string name="ings">"Ingredients"</string>
<string name="ing">"Ingredient"</string>
<string name="yieldU">"Yield unit"</string>
<string name="yieldQ">"Yield quantity"</string>
<string name="cookT">"Cooking time"</string>
<string name="prepT">"Preparation time"</string>
<string name="cat">"Category"</string>
<string name="title">"Title"</string>
<string name="editRec">"Edit recipe"</string>
<string name="newRec">"New recipe"</string>
<string name="tgInfo">"For reporting issues, suggestions and feedback"</string>
<string name="joinTG">"Join the Telegram group"</string>
<string name="ver">"Version"</string>
<string name="impInfo">"Supports full backups exported by this app"</string>
<string name="impBu">"Import data"</string>
<string name="buInfo">"Generates a ZIP file containing all your data that can be imported back"</string>
<string name="expBu">"Export full backup"</string>
<string name="db">"Database"</string>
<string name="sysDef">"System default"</string>
<string name="lang">"Language"</string>
<string name="intf">"Interface"</string>
<string name="noRecsInFtr">"No recipes match your search in the Filtered recipes"</string>
<string name="noRecsInFavs">"No recipes match your search in the Favourites list"</string>
<string name="noRecsInTL">"No recipes match your search in the Try Later list"</string>
<string name="noRecs">"No recipes match your search"</string>
<string name="fsList">"Your favourite recipes are listed here"</string>
<string name="noFavs">"No favourites yet"</string>
<string name="tLInfo">"Recipes you want to try later are listed here"</string>
<string name="aD">"All done!"</string>
<string name="pANo">"Use the pencil button to add notes"</string>
<string name="pACmb">"Use the pencil button to add combinations"</string>
<string name="pAIns">"Use the pencil button to add instructions"</string>
<string name="pAIng">"Use the pencil button to add ingredients"</string>
<string name="plsAdd">"Use the plus button to add one"</string>
<string name="strAdd">"Start adding your recipes!"</string>
<string name="grocery">"Grocery List"</string>
<string name="planner">"Meal Planner"</string>
<string name="favourites">"Favourites"</string>
<string name="trylater">"Try Later"</string>
</resources>

View file

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="_Import_failed_Z1dbs6t">"Error en la importación"</string>
<string name="_Invalid_file__Z2bRAst">"Invalid file:"</string>
<string name="_Backup_file_has_been_modified_externally__Wjiqq">"Backup file has been modified externally."</string>
<string name="_Backup_file_seems_empty__Zd7qfR">"Backup file seems empty."</string>
@ -94,7 +95,7 @@
<string name="_Shared_via_EnRecipes__Get_it_on_Play_Store_or_F_Droid__Z2oTOK1">"Compartido via EnRecipes. Consíguela en Play Store o F-Droid."</string>
<string name="_Permission_denied_Z7wlWK">"Permiso denegado"</string>
<string name="_Import_successful_2bLM3e">"Importado satisfactoriamente"</string>
<string name="_Verifying____cS102">"Verificando..."</string>
<string name="_Verifying____cS102">"Verificando"</string>
<string name="_long_time_ago_1nwlFA">"hace mucho tiempo"</string>
<string name="_months_ago_Z1TsskA">"hace meses"</string>
<string name="_weeks_ago_Z2sT1GA">"semanas atrás"</string>
@ -287,5 +288,158 @@
<string name="_app_name_1k3Sbz">"EnRecipes"</string>
<string name="app_name">"EnRecipes"</string>
<string name="title_activity_kimera">"EnRecipes"</string>
<string name="_Import_failed_Z1dbs6t">"Import failed"</string>
<string name="trySer">"SEARCH IN ALL THE RECIPES?"</string>
<string name="help">"Help"</string>
<string name="appInfo">"EnRecipes is an open source, privacy-friendly digital cookbook that lets you create, manage and share your recipes"</string>
<string name="donate">"Donate"</string>
<string name="invFile">"Invalid file"</string>
<string name="buSuc">"Backup saved successfully to the Download folder"</string>
<string name="buMod">"The backup file was modified elsewhere"</string>
<string name="buEmp">"The backup file is empty"</string>
<string name="buInc">"Malformed or corrupt backup file"</string>
<string name="impFail">"Import failed"</string>
<string name="recRm">"Recipe removed"</string>
<string name="untRec">"Untitled Recipe"</string>
<string name="stars">"Star rating"</string>
<string name="_Filtered_recipes_Z1alhhu">"Filtered recipes"</string>
<string name="recU">"recipes updated"</string>
<string name="recE">"recipes already exists"</string>
<string name="recI">"recipes imported"</string>
<string name="recF">"recipes found"</string>
<string name="impSuc">"Import success"</string>
<string name="tsInfo">"separate with spaces"</string>
<string name="ts">"Tags"</string>
<string name="noTs">"No tags available"</string>
<string name="allTs">"All Tags"</string>
<string name="allCats">"All Categories"</string>
<string name="allCuis">"All Cuisines"</string>
<string name="cuis">"Cuisines"</string>
<string name="cui">"Cuisine"</string>
<string name="newUnit">"New unit"</string>
<string name="newCui">"New cuisine"</string>
<string name="resNF">"Recipe not found"</string>
<string name="restDone">"Reset done"</string>
<string name="restInfo">"Resetting a list will delete user-created entries and restore default entries. Existing recipes will not be affected."</string>
<string name="restUL">"Reset unit list"</string>
<string name="restYUL">"Reset yield unit list"</string>
<string name="restCatL">"Reset category list"</string>
<string name="restCuiL">"Reset cuisine list"</string>
<string name="rest">"Reset"</string>
<string name="sVwInfo">"Helps you choose what to cook when you can\'t decide"</string>
<string name="sVw">"Shake to view random recipe"</string>
<string name="opts">"Options"</string>
<string name="guide">"User guide"</string>
<string name="priv">"Privacy policy"</string>
<string name="gh">"View on GitHub"</string>
<string name="appCrd">"Shared via EnRecipes. Get it on F-Droid, IzzyOnDroid or the Play Store."</string>
<string name="vrfy">"Verifying"</string>
<string name="ltAgo">"a long time ago"</string>
<string name="mAgo">"months ago"</string>
<string name="wAgo">"weeks ago"</string>
<string name="dAgo">"days ago"</string>
<string name="triedInfo">"You tried this recipe:"</string>
<string name="cPic">"Crop photo"</string>
<string name="repBtn">"REPLACE PHOTO"</string>
<string name="recPic">"Recipe photo"</string>
<string name="req">"Required"</string>
<string name="nwCat">"New category"</string>
<string name="nwYiU">"New yield unit"</string>
<string name="rmCmb">"Combination removed"</string>
<string name="rmN">"Note removed"</string>
<string name="rmIns">"Instruction removed"</string>
<string name="rmIng">"Ingredient removed"</string>
<string name="kEdit">"KEEP EDITING"</string>
<string name="disBtn">"DISCARD"</string>
<string name="disc">"This recipe has unsaved changes. What would you like to do?"</string>
<string name="unsaved">"Unsaved changes"</string>
<string name="ser">"Search"</string>
<string name="dBtn">"DELETE"</string>
<string name="delRecInfo">"You are about to permanently delete the recipe:"</string>
<string name="delRec">"Delete confirmation"</string>
<string name="conf">"Confirm"</string>
<string name="rmTry">"Removed from Try Later"</string>
<string name="aTry">"Added to Try Later"</string>
<string name="unfavd">"Removed from Favourites"</string>
<string name="favd">"Added to Favourites"</string>
<string name="aFBu">"Add a recipe to perform a backup"</string>
<string name="dend">"Access denied"</string>
<string name="conBtn">"CONTINUE"</string>
<string name="nNBtn">"NOT NOW"</string>
<string name="reqAcc">"EnRecipes requires storage permission in order to set recipe photo, export and import data"</string>
<string name="grant">"Grant access"</string>
<string name="nLangInfo">"Restart EnRecipes to use the new language"</string>
<string name="nThmInfo">"Restart EnRecipes to use the new theme"</string>
<string name="rst">"RESTART"</string>
<string name="appRst">"App restart required"</string>
<string name="aNBtn">"ADD NEW"</string>
<string name="ovw">"Overview"</string>
<string name="fil">"Recipe as file"</string>
<string name="rec">"Recipe as text"</string>
<string name="pht">"Recipe photo"</string>
<string name="shr">"Share"</string>
<string name="recTitle">"My Healthy Recipe"</string>
<string name="recListEmp">"Nothing here! Add some recipes and try again"</string>
<string name="selRec">"Select recipe"</string>
<string name="aBtn">"ADD"</string>
<string name="rmLIInfo">"Existing recipes will not be affected"</string>
<string name="rmUInfo">"You are about to remove the unit:"</string>
<string name="rmYUInfo">"You are about to remove the yield unit:"</string>
<string name="rmCatInfo">"You are about to remove the category:"</string>
<string name="rmCuiInfo">"You are about to remove the cuisine:"</string>
<string name="rBtn">"REMOVE"</string>
<string name="cBtn">"CANCEL"</string>
<string name="srt">"Sort by"</string>
<string name="stp">"Step"</string>
<string name="it">"Item"</string>
<string name="aNoBtn">"ADD NOTE"</string>
<string name="nos">"Notes"</string>
<string name="no">"Note"</string>
<string name="addCmbBtn">"ADD COMBINATION"</string>
<string name="cmbs">"Combinations"</string>
<string name="cmb">"Combination"</string>
<string name="aStpBtn">"ADD STEP"</string>
<string name="inss">"Instructions"</string>
<string name="ins">"Instruction"</string>
<string name="aIngBtn">"ADD INGREDIENT"</string>
<string name="ings">"Ingredients"</string>
<string name="ing">"Ingredient"</string>
<string name="yieldU">"Yield unit"</string>
<string name="yieldQ">"Yield quantity"</string>
<string name="cookT">"Cooking time"</string>
<string name="prepT">"Preparation time"</string>
<string name="cat">"Category"</string>
<string name="title">"Title"</string>
<string name="editRec">"Edit recipe"</string>
<string name="newRec">"New recipe"</string>
<string name="tgInfo">"For reporting issues, suggestions and feedback"</string>
<string name="joinTG">"Join the Telegram group"</string>
<string name="ver">"Version"</string>
<string name="impInfo">"Supports full backups exported by this app"</string>
<string name="impBu">"Import data"</string>
<string name="buInfo">"Generates a ZIP file containing all your data that can be imported back"</string>
<string name="expBu">"Export full backup"</string>
<string name="db">"Database"</string>
<string name="sysDef">"System default"</string>
<string name="lang">"Language"</string>
<string name="intf">"Interface"</string>
<string name="noRecsInFtr">"No recipes match your search in the Filtered recipes"</string>
<string name="noRecsInFavs">"No recipes match your search in the Favourites list"</string>
<string name="noRecsInTL">"No recipes match your search in the Try Later list"</string>
<string name="noRecs">"No recipes match your search"</string>
<string name="fsList">"Your favourite recipes are listed here"</string>
<string name="noFavs">"No favourites yet"</string>
<string name="tLInfo">"Recipes you want to try later are listed here"</string>
<string name="aD">"All done!"</string>
<string name="pANo">"Use the pencil button to add notes"</string>
<string name="pACmb">"Use the pencil button to add combinations"</string>
<string name="pAIns">"Use the pencil button to add instructions"</string>
<string name="pAIng">"Use the pencil button to add ingredients"</string>
<string name="plsAdd">"Use the plus button to add one"</string>
<string name="strAdd">"Start adding your recipes!"</string>
<string name="grocery">"Grocery List"</string>
<string name="planner">"Meal Planner"</string>
<string name="favourites">"Favourites"</string>
<string name="trylater">"Try Later"</string>
<string name="Donate">"Donate"</string>
<string name="Combination">"Combination"</string>
</resources>

View file

@ -0,0 +1,445 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="Donate">""</string>
<string name="Combination">""</string>
<string name="_Invalid_file__Z2bRAst">""</string>
<string name="_Backup_file_has_been_modified_externally__Wjiqq">""</string>
<string name="_Backup_file_seems_empty__Zd7qfR">""</string>
<string name="_Backup_file_is_incorrect_or_corrupt__1jXb8N">""</string>
<string name="_Import_failed_Z1dbs6t">""</string>
<string name="_Remove_recipe_from_snacks__MNnCU">""</string>
<string name="_Remove_recipe_from_dinner__8sWfY">""</string>
<string name="_Remove_recipe_from_lunch__Zwpsg2">""</string>
<string name="_Remove_recipe_from_breakfast__ZvYyFG">""</string>
<string name="_Untitled_Recipe_Zv0UxP">""</string>
<string name="_Star_rating_Z11p4Kw">""</string>
<string name="Created">""</string>
<string name="_Filtered_result_1AMEXe">""</string>
<string name="OK">""</string>
<string name="_recipes_updated_Z2arFrR">""</string>
<string name="_recipes_already_exists_2jqW2s">""</string>
<string name="_recipes_imported_1NGeRw">""</string>
<string name="_recipes_found_ZDdUgV">""</string>
<string name="_Import_summary_244SkL">""</string>
<string name="_separate_with_spaces_ZHKOfw">""</string>
<string name="Tags">""</string>
<string name="_No_tags_available_Z1C5GqD">""</string>
<string name="_All_Tags_28gMyY">""</string>
<string name="_All_Categories_Z23JSTS">""</string>
<string name="Vietnamese">""</string>
<string name="Turkish">""</string>
<string name="Thai">""</string>
<string name="Swedish">""</string>
<string name="_Sri_Lankan_Z7GfBa">""</string>
<string name="Spanish">""</string>
<string name="Scottish">""</string>
<string name="Russian">""</string>
<string name="Portuguese">""</string>
<string name="Nigerian">""</string>
<string name="Mexican">""</string>
<string name="Korean">""</string>
<string name="Kenyan">""</string>
<string name="Jewish">""</string>
<string name="Japanese">""</string>
<string name="Jamaican">""</string>
<string name="Italian">""</string>
<string name="Irish">""</string>
<string name="Indian">""</string>
<string name="Greek">""</string>
<string name="German">""</string>
<string name="French">""</string>
<string name="Filipino">""</string>
<string name="English">""</string>
<string name="Egyptian">""</string>
<string name="Danish">""</string>
<string name="Chinese">""</string>
<string name="British">""</string>
<string name="Brazilian">""</string>
<string name="American">""</string>
<string name="_All_Cuisines_2hjCp9">""</string>
<string name="Cuisines">""</string>
<string name="Cuisine">""</string>
<string name="_Are_you_sure_you_want_to_remove_ZOnf22">""</string>
<string name="Units">""</string>
<string name="_Remove_unit__2x26yq">""</string>
<string name="_Remove_yield_unit__Z1duBWR">""</string>
<string name="_Remove_category__2reaxz">""</string>
<string name="_Remove_cuisine__22ftcL">""</string>
<string name="_New_unit_1CVEEA">""</string>
<string name="_New_cuisine_Zrvs3z">""</string>
<string name="Challenging">""</string>
<string name="Moderate">""</string>
<string name="Easy">""</string>
<string name="_Oldest_first_Z6cq4h">""</string>
<string name="_Newest_first_2Sb3c">""</string>
<string name="_Last_updated_Z2gEbLD">""</string>
<string name="_Difficulty_level_cSL5d">""</string>
<string name="Rating">""</string>
<string name="_Slowest_first_hHjY6">""</string>
<string name="_Quickest_first_Z1CpP7N">""</string>
<string name="_Your_search_did_not_match_any_recipes_in_the_filtered_result_1TV6QQ">""</string>
<string name="_Recipe_not_found_2qGveM">""</string>
<string name="_Reset_successful_YxqWK">""</string>
<string name="_Reset_units_list_msRS3">""</string>
<string name="_Reset_yield_units_list_ZjouMk">""</string>
<string name="_Reset_categories_list_Z1JmKra">""</string>
<string name="_Reset_cuisines_list_1kWL8I">""</string>
<string name="_Resetting_a_list_will_NOT_delete_your_existing_entries_but_only_restores_the_deleted_default_entries__Z28mk0h">""</string>
<string name="Reset">""</string>
<string name="_Helps_you_choose_what_to_cook_when_you_can_t_decide_muiMv">""</string>
<string name="_Shake_to_view_random_recipe_ZTK9F2">""</string>
<string name="Options">""</string>
<string name="_User_guide_2uDJCF">""</string>
<string name="_Privacy_policy_Zb4ht5">""</string>
<string name="_View_on_GitHub_Z2qOqmx">""</string>
<string name="Translator">""</string>
<string name="Contributors">""</string>
<string name="_Shared_via_EnRecipes__Get_it_on_Play_Store_or_F_Droid__Z2oTOK1">""</string>
<string name="_Permission_denied_Z7wlWK">""</string>
<string name="_Import_successful_2bLM3e">""</string>
<string name="_Verifying____cS102">""</string>
<string name="_long_time_ago_1nwlFA">""</string>
<string name="_months_ago_Z1TsskA">""</string>
<string name="_weeks_ago_Z2sT1GA">""</string>
<string name="_days_ago_2iCYkm">""</string>
<string name="yesterday">""</string>
<string name="today">""</string>
<string name="_You_tried_this_recipe__ZUJOl3">""</string>
<string name="snacks">""</string>
<string name="dinner">""</string>
<string name="lunch">""</string>
<string name="breakfast">""</string>
<string name="_Crop_photo_1VL04J">""</string>
<string name="_REPLACE_PHOTO_ZLHhwH">""</string>
<string name="_Recipe_photo_eqm9B">""</string>
<string name="_EnRecipes_requires_storage_permission_in_order_to_set_recipe_photo__23OnNT">""</string>
<string name="Required">""</string>
<string name="_New_category_Weg73">""</string>
<string name="_New_yield_unit_1Oevd2">""</string>
<string name="_Remove_note__2wyMVE">""</string>
<string name="_Remove_combination__1dr2LS">""</string>
<string name="_Remove_instruction__vkJfi">""</string>
<string name="_Remove_ingredient__2puvMO">""</string>
<string name="_KEEP_EDITING_1o9uy3">""</string>
<string name="DISCARD">""</string>
<string name="_Are_you_sure_you_want_to_discard_unsaved_changes_to_this_recipe__Z1G7sVC">""</string>
<string name="_Unsaved_changes_9fqb4">""</string>
<string name="Search">""</string>
<string name="_Are_you_sure_you_want_to_delete_the_recipe_29DH9w">""</string>
<string name="DELETE">""</string>
<string name="_Delete_recipe__Z2tMYtE">""</string>
<string name="_Removed_from_Try_Later_1h5Bkp">""</string>
<string name="_Added_to_Try_Later_Z1gaF37">""</string>
<string name="_Removed_from_Favourites_Z5k7LR">""</string>
<string name="_Added_to_Favourites_2mzllO">""</string>
<string name="_Add_at_least_one_recipe_to_perform_a_backup_17xYaH">""</string>
<string name="_EnRecipes_requires_storage_permission_in_order_to_backup_your_data_to_this_device__2cbvIq">""</string>
<string name="CONTINUE">""</string>
<string name="_NOT_NOW_Z1HD7qX">""</string>
<string name="_EnRecipes_requires_storage_permission_in_order_to_import_your_data_from_a_previous_backup__1CKjb7">""</string>
<string name="_Grant_permission_Z1UQBuh">""</string>
<string name="_EnRecipes_needs_to_be_restarted_for_the_app_language_to_take_effect__ZWGUtY">""</string>
<string name="_EnRecipes_needs_to_be_restarted_for_the_theme_change_to_take_effect__2kU319">""</string>
<string name="RESTART">""</string>
<string name="_Restart_required_Z22YINL">""</string>
<string name="SET">""</string>
<string name="_ADD_NEW_Zv8FjM">""</string>
<string name="Share">""</string>
<string name="Overview">""</string>
<string name="Recipe">""</string>
<string name="Photo">""</string>
<string name="min">""</string>
<string name="hr">""</string>
<string name="_My_Healthy_Recipe_Z1EqB8f">""</string>
<string name="_Nothing_here__Add_some_recipes_and_try_again__Z25A7Q">""</string>
<string name="_Select_a_recipe_2lL8x2">""</string>
<string name="ADD">""</string>
<string name="REMOVE">""</string>
<string name="CANCEL">""</string>
<string name="_Sort_by_Zq01TF">""</string>
<string name="Step">""</string>
<string name="Item">""</string>
<string name="_ADD_NOTE_ZyNw1r">""</string>
<string name="Notes">""</string>
<string name="Note">""</string>
<string name="_ADD_COMBINATION_2q9HWq">""</string>
<string name="Combinations">""</string>
<string name="_ADD_STEP_ZyMPOe">""</string>
<string name="Instructions">""</string>
<string name="Instruction">""</string>
<string name="_ADD_INGREDIENT_29sSLU">""</string>
<string name="Ingredients">""</string>
<string name="Ingredient">""</string>
<string name="_Yield_measured_in_2OoRT">""</string>
<string name="_Yield_quantity_ZHx3jw">""</string>
<string name="_Cooking_time_2w2fEw">""</string>
<string name="_Preparation_time_15BfxT">""</string>
<string name="Category">""</string>
<string name="Title">""</string>
<string name="_Edit_recipe_ZPvwDP">""</string>
<string name="_New_recipe_Z1Y2YKJ">""</string>
<string name="_Vishnu_Raghav_B_1qnRnC">""</string>
<string name="Author">""</string>
<string name="_for_reporting_issues__suggestions_and_feedback_Z1JUmyE">""</string>
<string name="_Join_the_Telegram_group_ZAXQgc">""</string>
<string name="Version">""</string>
<string name="_Supports_full_backups_exported_by_this_app_ZYs4f2">""</string>
<string name="_Import_from_backup_Z28HsC0">""</string>
<string name="_Generates_a_zip_file_that_contains_all_your_data__This_file_can_be_imported_back__Z19m3xY">""</string>
<string name="_Export_a_full_backup_TJfra">""</string>
<string name="Database">""</string>
<string name="Dark">""</string>
<string name="Light">""</string>
<string name="Theme">""</string>
<string name="_System_default_Z1jruVS">""</string>
<string name="_App_language_DzFsk">""</string>
<string name="Interface">""</string>
<string name="_Your_search_did_not_match_any_recipes_in_your_try_later_list_Z2wWbA1">""</string>
<string name="_Your_search_did_not_match_any_recipes_in_your_favourites_1ylvHN">""</string>
<string name="_Your_search_did_not_match_any_recipes_in_this_category_P7J4V">""</string>
<string name="_Your_search_did_not_match_any_recipes_Z1eppHH">""</string>
<string name="_No_recipes_found_Z125IxD">""</string>
<string name="_Category_looks_empty_ZAK5qU">""</string>
<string name="_Recipes_you_mark_as_favourite_will_be_listed_here_Z1iIHgY">""</string>
<string name="_No_favourites_yet_aPSoG">""</string>
<string name="_Recipes_you_mark_as_try_later_will_be_listed_here_Z1ITwPV">""</string>
<string name="_All_done__72KYl">""</string>
<string name="_Use_the_pencil_button_to_add_some_notes_Z1wyyeb">""</string>
<string name="_Use_the_pencil_button_to_add_some_combinations_6NhFS">""</string>
<string name="_Use_the_pencil_button_to_add_some_instructions_ZAi0PH">""</string>
<string name="_Use_the_pencil_button_to_add_some_ingredients_Z1xOX8S">""</string>
<string name="_Use_the_plus_button_to_add_one_1h20ms">""</string>
<string name="_Start_adding_your_recipes__rwnVV">""</string>
<string name="large">""</string>
<string name="medium">""</string>
<string name="small">""</string>
<string name="stick">""</string>
<string name="dozen">""</string>
<string name="drop">""</string>
<string name="pinch">""</string>
<string name="piece">""</string>
<string name="clove">""</string>
<string name="leaf">""</string>
<string name="in">""</string>
<string name="cm">""</string>
<string name="kg">""</string>
<string name="g">""</string>
<string name="mg">""</string>
<string name="lb">""</string>
<string name="oz">""</string>
<string name="l">""</string>
<string name="ml">""</string>
<string name="gal">""</string>
<string name="qt">""</string>
<string name="pt">""</string>
<string name="cup">""</string>
<string name="_fl_oz_72kqu">""</string>
<string name="tbsp">""</string>
<string name="dsp">""</string>
<string name="tsp">""</string>
<string name="unit">""</string>
<string name="Loaf">""</string>
<string name="Patty">""</string>
<string name="Roll">""</string>
<string name="Litre">""</string>
<string name="Millilitre">""</string>
<string name="Gallon">""</string>
<string name="Cup">""</string>
<string name="Kilogram">""</string>
<string name="Gram">""</string>
<string name="Pound">""</string>
<string name="Ounce">""</string>
<string name="_Fluid_Ounce_bd10L">""</string>
<string name="Tablespoon">""</string>
<string name="Teaspoon">""</string>
<string name="Piece">""</string>
<string name="Serving">""</string>
<string name="Vegetarian">""</string>
<string name="Vegan">""</string>
<string name="Undefined">""</string>
<string name="Soups">""</string>
<string name="Snacks">""</string>
<string name="_Side_dishes_Z1Et4Vg">""</string>
<string name="Seafood">""</string>
<string name="Sauces">""</string>
<string name="Salads">""</string>
<string name="Rice">""</string>
<string name="Poultry">""</string>
<string name="Pasta">""</string>
<string name="Noodles">""</string>
<string name="Meat">""</string>
<string name="_Main_dishes_u6RGQ">""</string>
<string name="Lunch">""</string>
<string name="Healthy">""</string>
<string name="Drinks">""</string>
<string name="Dinner">""</string>
<string name="Desserts">""</string>
<string name="Breakfast">""</string>
<string name="Breads">""</string>
<string name="Beverages">""</string>
<string name="Barbecue">""</string>
<string name="Appetizers">""</string>
<string name="About">""</string>
<string name="Settings">""</string>
<string name="Categories">""</string>
<string name="_Meal_Planner_2aq4oj">""</string>
<string name="Favourites">""</string>
<string name="_Try_Later_If7PG">""</string>
<string name="EnRecipes">""</string>
<string name="_app_name_1k3Sbz">""</string>
<string name="app_name">""</string>
<string name="title_activity_kimera">""</string>
<string name="trySer">"SEARCH IN ALL THE RECIPES?"</string>
<string name="help">"Help"</string>
<string name="appInfo">"EnRecipes is an open source, privacy-friendly digital cookbook that lets you create, manage and share your recipes"</string>
<string name="donate">"Donate"</string>
<string name="invFile">"Invalid file"</string>
<string name="buSuc">"Backup saved successfully to the Download folder"</string>
<string name="buMod">"The backup file was modified elsewhere"</string>
<string name="buEmp">"The backup file is empty"</string>
<string name="buInc">"Malformed or corrupt backup file"</string>
<string name="impFail">"Import failed"</string>
<string name="recRm">"Recipe removed"</string>
<string name="untRec">"Untitled Recipe"</string>
<string name="stars">"Star rating"</string>
<string name="_Filtered_recipes_Z1alhhu">"Filtered recipes"</string>
<string name="recU">"recipes updated"</string>
<string name="recE">"recipes already exists"</string>
<string name="recI">"recipes imported"</string>
<string name="recF">"recipes found"</string>
<string name="impSuc">"Import success"</string>
<string name="tsInfo">"separate with spaces"</string>
<string name="ts">"Tags"</string>
<string name="noTs">"No tags available"</string>
<string name="allTs">"All Tags"</string>
<string name="allCats">"All Categories"</string>
<string name="allCuis">"All Cuisines"</string>
<string name="cuis">"Cuisines"</string>
<string name="cui">"Cuisine"</string>
<string name="Unit">"Unit"</string>
<string name="newUnit">"New unit"</string>
<string name="newCui">"New cuisine"</string>
<string name="resNF">"Recipe not found"</string>
<string name="restDone">"Reset done"</string>
<string name="restInfo">"Resetting a list will delete user-created entries and restore default entries. Existing recipes will not be affected."</string>
<string name="restUL">"Reset unit list"</string>
<string name="restYUL">"Reset yield unit list"</string>
<string name="restCatL">"Reset category list"</string>
<string name="restCuiL">"Reset cuisine list"</string>
<string name="rest">"Reset"</string>
<string name="sVwInfo">"Helps you choose what to cook when you can\'t decide"</string>
<string name="sVw">"Shake to view random recipe"</string>
<string name="opts">"Options"</string>
<string name="guide">"User guide"</string>
<string name="priv">"Privacy policy"</string>
<string name="gh">"View on GitHub"</string>
<string name="appCrd">"Shared via EnRecipes. Get it on F-Droid, IzzyOnDroid or the Play Store."</string>
<string name="vrfy">"Verifying"</string>
<string name="ltAgo">"a long time ago"</string>
<string name="mAgo">"months ago"</string>
<string name="wAgo">"weeks ago"</string>
<string name="dAgo">"days ago"</string>
<string name="triedInfo">"You tried this recipe:"</string>
<string name="cPic">"Crop photo"</string>
<string name="repBtn">"REPLACE PHOTO"</string>
<string name="recPic">"Recipe photo"</string>
<string name="req">"Required"</string>
<string name="nwCat">"New category"</string>
<string name="nwYiU">"New yield unit"</string>
<string name="rmCmb">"Combination removed"</string>
<string name="rmN">"Note removed"</string>
<string name="rmIns">"Instruction removed"</string>
<string name="rmIng">"Ingredient removed"</string>
<string name="kEdit">"KEEP EDITING"</string>
<string name="disBtn">"DISCARD"</string>
<string name="disc">"This recipe has unsaved changes. What would you like to do?"</string>
<string name="unsaved">"Unsaved changes"</string>
<string name="ser">"Search"</string>
<string name="dBtn">"DELETE"</string>
<string name="delRecInfo">"You are about to permanently delete the recipe:"</string>
<string name="delRec">"Delete confirmation"</string>
<string name="conf">"Confirm"</string>
<string name="rmTry">"Removed from Try Later"</string>
<string name="aTry">"Added to Try Later"</string>
<string name="unfavd">"Removed from Favourites"</string>
<string name="favd">"Added to Favourites"</string>
<string name="aFBu">"Add a recipe to perform a backup"</string>
<string name="dend">"Access denied"</string>
<string name="conBtn">"CONTINUE"</string>
<string name="nNBtn">"NOT NOW"</string>
<string name="reqAcc">"EnRecipes requires storage permission in order to set recipe photo, export and import data"</string>
<string name="grant">"Grant access"</string>
<string name="nLangInfo">"Restart EnRecipes to use the new language"</string>
<string name="nThmInfo">"Restart EnRecipes to use the new theme"</string>
<string name="rst">"RESTART"</string>
<string name="appRst">"App restart required"</string>
<string name="aNBtn">"ADD NEW"</string>
<string name="ovw">"Overview"</string>
<string name="fil">"Recipe as file"</string>
<string name="rec">"Recipe as text"</string>
<string name="pht">"Recipe photo"</string>
<string name="shr">"Share"</string>
<string name="recTitle">"My Healthy Recipe"</string>
<string name="recListEmp">"Nothing here! Add some recipes and try again"</string>
<string name="selRec">"Select recipe"</string>
<string name="aBtn">"ADD"</string>
<string name="rmLIInfo">"Existing recipes will not be affected"</string>
<string name="rmUInfo">"You are about to remove the unit:"</string>
<string name="rmYUInfo">"You are about to remove the yield unit:"</string>
<string name="rmCatInfo">"You are about to remove the category:"</string>
<string name="rmCuiInfo">"You are about to remove the cuisine:"</string>
<string name="rBtn">"REMOVE"</string>
<string name="cBtn">"CANCEL"</string>
<string name="srt">"Sort by"</string>
<string name="stp">"Step"</string>
<string name="it">"Item"</string>
<string name="aNoBtn">"ADD NOTE"</string>
<string name="nos">"Notes"</string>
<string name="no">"Note"</string>
<string name="addCmbBtn">"ADD COMBINATION"</string>
<string name="cmbs">"Combinations"</string>
<string name="cmb">"Combination"</string>
<string name="aStpBtn">"ADD STEP"</string>
<string name="inss">"Instructions"</string>
<string name="ins">"Instruction"</string>
<string name="aIngBtn">"ADD INGREDIENT"</string>
<string name="ings">"Ingredients"</string>
<string name="ing">"Ingredient"</string>
<string name="yieldU">"Yield unit"</string>
<string name="yieldQ">"Yield quantity"</string>
<string name="cookT">"Cooking time"</string>
<string name="prepT">"Preparation time"</string>
<string name="cat">"Category"</string>
<string name="title">"Title"</string>
<string name="editRec">"Edit recipe"</string>
<string name="newRec">"New recipe"</string>
<string name="tgInfo">"For reporting issues, suggestions and feedback"</string>
<string name="joinTG">"Join the Telegram group"</string>
<string name="ver">"Version"</string>
<string name="impInfo">"Supports full backups exported by this app"</string>
<string name="impBu">"Import data"</string>
<string name="buInfo">"Generates a ZIP file containing all your data that can be imported back"</string>
<string name="expBu">"Export full backup"</string>
<string name="db">"Database"</string>
<string name="sysDef">"System default"</string>
<string name="lang">"Language"</string>
<string name="intf">"Interface"</string>
<string name="noRecsInFtr">"No recipes match your search in the Filtered recipes"</string>
<string name="noRecsInFavs">"No recipes match your search in the Favourites list"</string>
<string name="noRecsInTL">"No recipes match your search in the Try Later list"</string>
<string name="noRecs">"No recipes match your search"</string>
<string name="fsList">"Your favourite recipes are listed here"</string>
<string name="noFavs">"No favourites yet"</string>
<string name="tLInfo">"Recipes you want to try later are listed here"</string>
<string name="aD">"All done!"</string>
<string name="pANo">"Use the pencil button to add notes"</string>
<string name="pACmb">"Use the pencil button to add combinations"</string>
<string name="pAIns">"Use the pencil button to add instructions"</string>
<string name="pAIng">"Use the pencil button to add ingredients"</string>
<string name="plsAdd">"Use the plus button to add one"</string>
<string name="strAdd">"Start adding your recipes!"</string>
<string name="grocery">"Grocery List"</string>
<string name="planner">"Meal Planner"</string>
<string name="favourites">"Favourites"</string>
<string name="trylater">"Try Later"</string>
</resources>

View file

@ -0,0 +1,445 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="Combination">"Combinaison"</string>
<string name="Donate">"Faire un don"</string>
<string name="_Invalid_file__Z2bRAst">"Fichier invalide :"</string>
<string name="_Backup_file_has_been_modified_externally__Wjiqq">"Fichier de sauvegarde modifié ailleurs."</string>
<string name="_Backup_file_seems_empty__Zd7qfR">"La sauvegarde est vide."</string>
<string name="_Backup_file_is_incorrect_or_corrupt__1jXb8N">"Fichier de sauvegarde malformé ou corrompu."</string>
<string name="_Import_failed_Z1dbs6t">"Limportation a échoué"</string>
<string name="_Remove_recipe_from_snacks__MNnCU">"Retirer la recette des en-cas?"</string>
<string name="_Remove_recipe_from_dinner__8sWfY">"Retirer la recette du souper?"</string>
<string name="_Remove_recipe_from_lunch__Zwpsg2">"Retirer la recette du dîner?"</string>
<string name="_Remove_recipe_from_breakfast__ZvYyFG">"Retirer la recette du déjeuner?"</string>
<string name="_Untitled_Recipe_Zv0UxP">"Recette sans titre"</string>
<string name="_Star_rating_Z11p4Kw">"Évaluation étoilée"</string>
<string name="Created">"Créé"</string>
<string name="_Filtered_result_1AMEXe">"Résultat filtré"</string>
<string name="OK">"OK"</string>
<string name="_recipes_updated_Z2arFrR">"recettes mises à jour"</string>
<string name="_recipes_already_exists_2jqW2s">"recettes existent déjà"</string>
<string name="_recipes_imported_1NGeRw">"recettes importées"</string>
<string name="_recipes_found_ZDdUgV">"recettes trouvées"</string>
<string name="_Import_summary_244SkL">"Récapitulatif de limportation"</string>
<string name="_separate_with_spaces_ZHKOfw">"séparer avec des espaces"</string>
<string name="Tags">"Étiquettes"</string>
<string name="_No_tags_available_Z1C5GqD">"Aucune étiquette disponible"</string>
<string name="_All_Tags_28gMyY">"Toutes les étiquettes"</string>
<string name="_All_Categories_Z23JSTS">"toutes les catégories"</string>
<string name="Vietnamese">"vietnamienne"</string>
<string name="Turkish">"turque"</string>
<string name="Thai">"thaïlandaise"</string>
<string name="Swedish">"suédoise"</string>
<string name="_Sri_Lankan_Z7GfBa">"sri-lankaise"</string>
<string name="Spanish">"espagnole"</string>
<string name="Scottish">"écossaise"</string>
<string name="Russian">"russe"</string>
<string name="Portuguese">"portugaise"</string>
<string name="Nigerian">"nigériane"</string>
<string name="Mexican">"mexicaine"</string>
<string name="Korean">"coréenne"</string>
<string name="Kenyan">"kényane"</string>
<string name="Jewish">"juive"</string>
<string name="Japanese">"japonaise"</string>
<string name="Jamaican">"jamaïcaine"</string>
<string name="Italian">"italienne"</string>
<string name="Irish">"irlandaise"</string>
<string name="Indian">"indienne"</string>
<string name="Greek">"grecque"</string>
<string name="German">"allemande"</string>
<string name="French">"française"</string>
<string name="Filipino">"philippine"</string>
<string name="English">"anglaise"</string>
<string name="Egyptian">"égyptienne"</string>
<string name="Danish">"danoise"</string>
<string name="Chinese">"chinoise"</string>
<string name="British">"britannique"</string>
<string name="Brazilian">"brésilienne"</string>
<string name="American">"états-unienne"</string>
<string name="_All_Cuisines_2hjCp9">"Toutes les cuisines"</string>
<string name="Cuisines">"Cuisines"</string>
<string name="Cuisine">"Cuisine"</string>
<string name="_Are_you_sure_you_want_to_remove_ZOnf22">"Êtes-vous sûr·e de vouloir désinstaller"</string>
<string name="Units">"Unités"</string>
<string name="_Remove_unit__2x26yq">"Retirer lunité?"</string>
<string name="_Remove_yield_unit__Z1duBWR">"Retirer lunité de rendement?"</string>
<string name="_Remove_category__2reaxz">"Supprimer la catégorie?"</string>
<string name="_Remove_cuisine__22ftcL">"Retirer la cuisine?"</string>
<string name="_New_unit_1CVEEA">"Nouvelle unité"</string>
<string name="_New_cuisine_Zrvs3z">"Nouvelle cuisine"</string>
<string name="Challenging">"Difficile"</string>
<string name="Moderate">"Modéré"</string>
<string name="Easy">"Facile"</string>
<string name="_Oldest_first_Z6cq4h">"La plus ancienne dabord"</string>
<string name="_Newest_first_2Sb3c">"La plus récente dabord"</string>
<string name="_Last_updated_Z2gEbLD">"Denière mise à jour"</string>
<string name="_Difficulty_level_cSL5d">"Niveau de difficulté"</string>
<string name="Rating">"Évaluation"</string>
<string name="_Slowest_first_hHjY6">"La plus lente dabord"</string>
<string name="_Quickest_first_Z1CpP7N">"La plus rapide dabord"</string>
<string name="_Your_search_did_not_match_any_recipes_in_the_filtered_result_1TV6QQ">"Impossible de trouver de telles recettes."</string>
<string name="_Recipe_not_found_2qGveM">"Recette introuvable"</string>
<string name="_Reset_successful_YxqWK">"Réinitialisation terminée"</string>
<string name="_Reset_units_list_msRS3">"Réinitialiser la liste des unités"</string>
<string name="_Reset_yield_units_list_ZjouMk">"Réinitialiser la liste des unités de rendement"</string>
<string name="_Reset_categories_list_Z1JmKra">"Réinitialiser la liste des catégories"</string>
<string name="_Reset_cuisines_list_1kWL8I">"Réinitialiser la liste des cuisines"</string>
<string name="_Resetting_a_list_will_NOT_delete_your_existing_entries_but_only_restores_the_deleted_default_entries__Z28mk0h">"La réinitialisation des listes ne restaure que les entrées par défaut supprimées. Les entrées existantes ne sont pas supprimées."</string>
<string name="Reset">"Réinitialiser"</string>
<string name="_Helps_you_choose_what_to_cook_when_you_can_t_decide_muiMv">"Vous aide quand vous ne pouvez pas décider quoi cuisiner"</string>
<string name="_Shake_to_view_random_recipe_ZTK9F2">"Secouez pour voir une recette au hasard"</string>
<string name="Options">"Options"</string>
<string name="_User_guide_2uDJCF">"Guide dutilisation"</string>
<string name="_Privacy_policy_Zb4ht5">"Politique de confidentialité"</string>
<string name="_View_on_GitHub_Z2qOqmx">"Voir sur GitHub"</string>
<string name="Translator">"Traduit par"</string>
<string name="Contributors">"Contributeur·ice·s"</string>
<string name="_Shared_via_EnRecipes__Get_it_on_Play_Store_or_F_Droid__Z2oTOK1">"Partagé via EnRecipes. Téléchargez-le sur F-Droid, IzzyOnDroid ou le Play Store."</string>
<string name="_Permission_denied_Z7wlWK">"Autorisation refusée"</string>
<string name="_Import_successful_2bLM3e">"Importé"</string>
<string name="_Verifying____cS102">"Vérification…"</string>
<string name="_long_time_ago_1nwlFA">"il y a longtemps"</string>
<string name="_months_ago_Z1TsskA">"mois de ça"</string>
<string name="_weeks_ago_Z2sT1GA">"semaines de ça"</string>
<string name="_days_ago_2iCYkm">"jours de ça"</string>
<string name="yesterday">"hier"</string>
<string name="today">"aujourdhui"</string>
<string name="_You_tried_this_recipe__ZUJOl3">"Vous avez essayé cette recette :"</string>
<string name="snacks">"en-cas"</string>
<string name="dinner">"souper"</string>
<string name="lunch">"dîner"</string>
<string name="breakfast">"Déjeuner"</string>
<string name="_Crop_photo_1VL04J">"Recadrer la photo"</string>
<string name="_REPLACE_PHOTO_ZLHhwH">"REMPLACER LA PHOTO"</string>
<string name="_Recipe_photo_eqm9B">"Photo de recette"</string>
<string name="_EnRecipes_requires_storage_permission_in_order_to_set_recipe_photo__23OnNT">"Accordez lautorisation de stockage pour enregistrer une photo de recette."</string>
<string name="Required">"Obligatoire"</string>
<string name="_New_category_Weg73">"Nouvelle catégorie"</string>
<string name="_New_yield_unit_1Oevd2">"Nouvelle unité de rendement"</string>
<string name="_Remove_note__2wyMVE">"Retirer la note?"</string>
<string name="_Remove_combination__1dr2LS">"Retirer la combinaison?"</string>
<string name="_Remove_instruction__vkJfi">"Retirer linstruction?"</string>
<string name="_Remove_ingredient__2puvMO">"Retirer lingrédient?"</string>
<string name="_KEEP_EDITING_1o9uy3">"CONTINUER LÉDITION"</string>
<string name="DISCARD">"ABANDONNER"</string>
<string name="_Are_you_sure_you_want_to_discard_unsaved_changes_to_this_recipe__Z1G7sVC">"Annuler toutes les modifications non enregistrées de cette recette?"</string>
<string name="_Unsaved_changes_9fqb4">"Modifications non enregistrées"</string>
<string name="Search">"Chercher"</string>
<string name="_Are_you_sure_you_want_to_delete_the_recipe_29DH9w">"Supprimer la recette"</string>
<string name="DELETE">"SUPPRIMER"</string>
<string name="_Delete_recipe__Z2tMYtE">"Supprimer la recette?"</string>
<string name="_Removed_from_Try_Later_1h5Bkp">"Retiré dEssayer plus tard"</string>
<string name="_Added_to_Try_Later_Z1gaF37">"Ajouté à Essayer plus tard"</string>
<string name="_Removed_from_Favourites_Z5k7LR">"Retiré des favoris"</string>
<string name="_Added_to_Favourites_2mzllO">"Ajouté aux favoris"</string>
<string name="_Add_at_least_one_recipe_to_perform_a_backup_17xYaH">"Ajoutez une recette dabord pour effectuer une sauvegarde."</string>
<string name="_EnRecipes_requires_storage_permission_in_order_to_backup_your_data_to_this_device__2cbvIq">"Accordez lautorisation de stockage pour sauvegarder les données EnRecipe sur lappareil."</string>
<string name="CONTINUE">"CONTINUER"</string>
<string name="_NOT_NOW_Z1HD7qX">"PAS MAINTENANT"</string>
<string name="_EnRecipes_requires_storage_permission_in_order_to_import_your_data_from_a_previous_backup__1CKjb7">"Accordez lautorisation de stockage pour importer vos données à partir dune sauvegarde précédente."</string>
<string name="_Grant_permission_Z1UQBuh">"Autoriser"</string>
<string name="_EnRecipes_needs_to_be_restarted_for_the_app_language_to_take_effect__ZWGUtY">"Redémarrez EnRecipes pour utiliser la nouvelle langue."</string>
<string name="_EnRecipes_needs_to_be_restarted_for_the_theme_change_to_take_effect__2kU319">"Redémarrez EnRecipes pour utiliser le nouveau thème."</string>
<string name="RESTART">"REDÉMARRER"</string>
<string name="_Restart_required_Z22YINL">"Redémarrage de lappli nécessaire"</string>
<string name="SET">"DÉFINIR"</string>
<string name="_ADD_NEW_Zv8FjM">"AJOUTER"</string>
<string name="Share">"Partager"</string>
<string name="Overview">"Aperçu"</string>
<string name="Recipe">"Recette"</string>
<string name="Photo">"Photo"</string>
<string name="min">"min"</string>
<string name="hr">"h"</string>
<string name="_My_Healthy_Recipe_Z1EqB8f">"Ma recette saine"</string>
<string name="_Nothing_here__Add_some_recipes_and_try_again__Z25A7Q">"Ajoutez des recettes pour les voir ici."</string>
<string name="_Select_a_recipe_2lL8x2">"Sélectionnez une recette"</string>
<string name="ADD">"AJOUTER"</string>
<string name="REMOVE">"RETIRER"</string>
<string name="CANCEL">"ANNULER"</string>
<string name="_Sort_by_Zq01TF">"Trier par"</string>
<string name="Step">"Étape"</string>
<string name="Item">"Élément"</string>
<string name="_ADD_NOTE_ZyNw1r">"AJOUTER UNE NOTE"</string>
<string name="Notes">"Notes"</string>
<string name="Note">"Note"</string>
<string name="_ADD_COMBINATION_2q9HWq">"AJOUTER UNE COMBINAISON"</string>
<string name="Combinations">"Combinaisons"</string>
<string name="_ADD_STEP_ZyMPOe">"AJOUTER UNE ÉTAPE"</string>
<string name="Instructions">"Instructions"</string>
<string name="Instruction">"Instruction"</string>
<string name="_ADD_INGREDIENT_29sSLU">"AJOUTER UN INGRÉDIENT"</string>
<string name="Ingredients">"Ingrédients"</string>
<string name="Ingredient">"Ingrédient"</string>
<string name="_Yield_measured_in_2OoRT">"Rendement mesuré en"</string>
<string name="_Yield_quantity_ZHx3jw">"Quantité de rendement"</string>
<string name="_Cooking_time_2w2fEw">"Temps de cuisson"</string>
<string name="_Preparation_time_15BfxT">"Temps de préparation"</string>
<string name="Category">"Catégorie"</string>
<string name="Title">"Titre"</string>
<string name="_Edit_recipe_ZPvwDP">"Modifier la recette"</string>
<string name="_New_recipe_Z1Y2YKJ">"Nouvelle recette"</string>
<string name="_Vishnu_Raghav_B_1qnRnC">"Vishnu Raghav B"</string>
<string name="Author">"Auteur·e"</string>
<string name="_for_reporting_issues__suggestions_and_feedback_Z1JUmyE">"pour signaler des problèmes, faire des suggestions et des remarques"</string>
<string name="_Join_the_Telegram_group_ZAXQgc">"Rejoignez le groupe Telegram"</string>
<string name="Version">"Version"</string>
<string name="_Supports_full_backups_exported_by_this_app_ZYs4f2">"Prend en charge les sauvegardes complètes exportées par cette application"</string>
<string name="_Import_from_backup_Z28HsC0">"Importer depuis la sauvegarde"</string>
<string name="_Generates_a_zip_file_that_contains_all_your_data__This_file_can_be_imported_back__Z19m3xY">"Génère un fichier ZIP de toutes vos données que vous pouvez importer ailleurs."</string>
<string name="_Export_a_full_backup_TJfra">"Exporter une sauvegarde complète"</string>
<string name="Database">"Base de données"</string>
<string name="Dark">"Sombre"</string>
<string name="Light">"Clair"</string>
<string name="Theme">"Thème"</string>
<string name="_System_default_Z1jruVS">"Système"</string>
<string name="_App_language_DzFsk">"Langue"</string>
<string name="Interface">"Interface"</string>
<string name="_Your_search_did_not_match_any_recipes_in_your_try_later_list_Z2wWbA1">"Impossible de trouver de telles recettes à essayer plus tard."</string>
<string name="_Your_search_did_not_match_any_recipes_in_your_favourites_1ylvHN">"Impossible de trouver de tels favoris."</string>
<string name="_Your_search_did_not_match_any_recipes_in_this_category_P7J4V">"Impossible de trouver de telles recettes dans cette catégorie."</string>
<string name="_Your_search_did_not_match_any_recipes_Z1eppHH">"Impossible de trouver de telles recettes."</string>
<string name="_No_recipes_found_Z125IxD">"Aucune recette trouvée"</string>
<string name="_Category_looks_empty_ZAK5qU">"Ajoutez des catégories pour les voir ici."</string>
<string name="_Recipes_you_mark_as_favourite_will_be_listed_here_Z1iIHgY">"Mettez les recettes en favoris pour les voir ici."</string>
<string name="_No_favourites_yet_aPSoG">"Pas encore de favoris"</string>
<string name="_Recipes_you_mark_as_try_later_will_be_listed_here_Z1ITwPV">"Les recettes que vous voulez essayer plus tard sont listées ici."</string>
<string name="_All_done__72KYl">"Cest fini!"</string>
<string name="_Use_the_pencil_button_to_add_some_notes_Z1wyyeb">"Utilisez le bouton crayon pour ajouter des notes."</string>
<string name="_Use_the_pencil_button_to_add_some_combinations_6NhFS">"Utilisez le bouton crayon pour ajouter des combinaisons."</string>
<string name="_Use_the_pencil_button_to_add_some_instructions_ZAi0PH">"Utilisez le bouton crayon pour ajouter des instructions."</string>
<string name="_Use_the_pencil_button_to_add_some_ingredients_Z1xOX8S">"Utilisez le bouton crayon pour ajouter des ingrédients."</string>
<string name="_Use_the_plus_button_to_add_one_1h20ms">"Utilisez le bouton plus pour en ajouter une."</string>
<string name="_Start_adding_your_recipes__rwnVV">"Commencez à ajouter vos recettes!"</string>
<string name="large">"grand"</string>
<string name="medium">"moyen"</string>
<string name="small">"petit"</string>
<string name="stick">"barre"</string>
<string name="dozen">"douzaine"</string>
<string name="drop">"goutte"</string>
<string name="pinch">"pincée"</string>
<string name="piece">"morceau"</string>
<string name="clove">"gousse"</string>
<string name="leaf">"feuille"</string>
<string name="in">"in"</string>
<string name="cm">"cm"</string>
<string name="kg">"kg"</string>
<string name="g">"g"</string>
<string name="mg">"mg"</string>
<string name="lb">"lb"</string>
<string name="oz">"oz"</string>
<string name="l">"l"</string>
<string name="ml">"ml"</string>
<string name="gal">"gal"</string>
<string name="qt">"qt"</string>
<string name="pt">"pt"</string>
<string name="cup">"tasse"</string>
<string name="_fl_oz_72kqu">"oz liq"</string>
<string name="tbsp">"cuillérée"</string>
<string name="dsp">"c.à.d"</string>
<string name="tsp">"c.à.c"</string>
<string name="Unit">"Unité"</string>
<string name="unit">"unité"</string>
<string name="Loaf">"Miche"</string>
<string name="Patty">"Pâté"</string>
<string name="Roll">"Rouleau"</string>
<string name="Litre">"Litre"</string>
<string name="Millilitre">"Millilitre"</string>
<string name="Gallon">"Gallon"</string>
<string name="Cup">"Tasse"</string>
<string name="Kilogram">"Kilogramme"</string>
<string name="Gram">"Gramme"</string>
<string name="Pound">"Livre"</string>
<string name="Ounce">"Once"</string>
<string name="_Fluid_Ounce_bd10L">"Once liquide"</string>
<string name="Tablespoon">"Cuillère à table"</string>
<string name="Teaspoon">"Cuillerée à thé"</string>
<string name="Piece">"Morceau"</string>
<string name="Serving">"Portion"</string>
<string name="Vegetarian">"Végétarien"</string>
<string name="Vegan">"Végétalien"</string>
<string name="Undefined">"Indéfini"</string>
<string name="Soups">"Soupes"</string>
<string name="Snacks">"En-cas"</string>
<string name="_Side_dishes_Z1Et4Vg">"Plats daccompagnement"</string>
<string name="Seafood">"Fruits de mer"</string>
<string name="Sauces">"Sauces"</string>
<string name="Salads">"Salades"</string>
<string name="Rice">"Riz"</string>
<string name="Poultry">"Volaille"</string>
<string name="Pasta">"Pâtes"</string>
<string name="Noodles">"Nouilles"</string>
<string name="Meat">"Viande"</string>
<string name="_Main_dishes_u6RGQ">"Plats principaux"</string>
<string name="Lunch">"Dîner"</string>
<string name="Healthy">"Sain"</string>
<string name="Drinks">"Boissons alcoolisées"</string>
<string name="Dinner">"Souper"</string>
<string name="Desserts">"Desserts"</string>
<string name="Breakfast">"Déjeuner"</string>
<string name="Breads">"Pains"</string>
<string name="Beverages">"Boissons"</string>
<string name="Barbecue">"Barbecue"</string>
<string name="Appetizers">"Hors-dœuvre"</string>
<string name="About">"À propos"</string>
<string name="Settings">"Paramètres"</string>
<string name="Categories">"Catégories"</string>
<string name="_Meal_Planner_2aq4oj">"Organisateur de repas"</string>
<string name="Favourites">"Favoris"</string>
<string name="_Try_Later_If7PG">"Essayer plus tard"</string>
<string name="EnRecipes">"EnRecipes"</string>
<string name="_app_name_1k3Sbz">""</string>
<string name="app_name">""</string>
<string name="title_activity_kimera">""</string>
<string name="trySer">"SEARCH IN ALL THE RECIPES?"</string>
<string name="help">"Help"</string>
<string name="appInfo">"EnRecipes is an open source, privacy-friendly digital cookbook that lets you create, manage and share your recipes"</string>
<string name="donate">"Donate"</string>
<string name="invFile">"Invalid file"</string>
<string name="buSuc">"Backup saved successfully to the Download folder"</string>
<string name="buMod">"The backup file was modified elsewhere"</string>
<string name="buEmp">"The backup file is empty"</string>
<string name="buInc">"Malformed or corrupt backup file"</string>
<string name="impFail">"Import failed"</string>
<string name="recRm">"Recipe removed"</string>
<string name="untRec">"Untitled Recipe"</string>
<string name="stars">"Star rating"</string>
<string name="_Filtered_recipes_Z1alhhu">"Filtered recipes"</string>
<string name="recU">"recipes updated"</string>
<string name="recE">"recipes already exists"</string>
<string name="recI">"recipes imported"</string>
<string name="recF">"recipes found"</string>
<string name="impSuc">"Import success"</string>
<string name="tsInfo">"separate with spaces"</string>
<string name="ts">"Tags"</string>
<string name="noTs">"No tags available"</string>
<string name="allTs">"All Tags"</string>
<string name="allCats">"All Categories"</string>
<string name="allCuis">"All Cuisines"</string>
<string name="cuis">"Cuisines"</string>
<string name="cui">"Cuisine"</string>
<string name="newUnit">"New unit"</string>
<string name="newCui">"New cuisine"</string>
<string name="resNF">"Recipe not found"</string>
<string name="restDone">"Reset done"</string>
<string name="restInfo">"Resetting a list will delete user-created entries and restore default entries. Existing recipes will not be affected."</string>
<string name="restUL">"Reset unit list"</string>
<string name="restYUL">"Reset yield unit list"</string>
<string name="restCatL">"Reset category list"</string>
<string name="restCuiL">"Reset cuisine list"</string>
<string name="rest">"Reset"</string>
<string name="sVwInfo">"Helps you choose what to cook when you can\'t decide"</string>
<string name="sVw">"Shake to view random recipe"</string>
<string name="opts">"Options"</string>
<string name="guide">"User guide"</string>
<string name="priv">"Privacy policy"</string>
<string name="gh">"View on GitHub"</string>
<string name="appCrd">"Shared via EnRecipes. Get it on F-Droid, IzzyOnDroid or the Play Store."</string>
<string name="vrfy">"Verifying"</string>
<string name="ltAgo">"a long time ago"</string>
<string name="mAgo">"months ago"</string>
<string name="wAgo">"weeks ago"</string>
<string name="dAgo">"days ago"</string>
<string name="triedInfo">"You tried this recipe:"</string>
<string name="cPic">"Crop photo"</string>
<string name="repBtn">"REPLACE PHOTO"</string>
<string name="recPic">"Recipe photo"</string>
<string name="req">"Required"</string>
<string name="nwCat">"New category"</string>
<string name="nwYiU">"New yield unit"</string>
<string name="rmCmb">"Combination removed"</string>
<string name="rmN">"Note removed"</string>
<string name="rmIns">"Instruction removed"</string>
<string name="rmIng">"Ingredient removed"</string>
<string name="kEdit">"KEEP EDITING"</string>
<string name="disBtn">"DISCARD"</string>
<string name="disc">"This recipe has unsaved changes. What would you like to do?"</string>
<string name="unsaved">"Unsaved changes"</string>
<string name="ser">"Search"</string>
<string name="dBtn">"DELETE"</string>
<string name="delRecInfo">"You are about to permanently delete the recipe:"</string>
<string name="delRec">"Delete confirmation"</string>
<string name="conf">"Confirm"</string>
<string name="rmTry">"Removed from Try Later"</string>
<string name="aTry">"Added to Try Later"</string>
<string name="unfavd">"Removed from Favourites"</string>
<string name="favd">"Added to Favourites"</string>
<string name="aFBu">"Add a recipe to perform a backup"</string>
<string name="dend">"Access denied"</string>
<string name="conBtn">"CONTINUE"</string>
<string name="nNBtn">"NOT NOW"</string>
<string name="reqAcc">"EnRecipes requires storage permission in order to set recipe photo, export and import data"</string>
<string name="grant">"Grant access"</string>
<string name="nLangInfo">"Restart EnRecipes to use the new language"</string>
<string name="nThmInfo">"Restart EnRecipes to use the new theme"</string>
<string name="rst">"RESTART"</string>
<string name="appRst">"App restart required"</string>
<string name="aNBtn">"ADD NEW"</string>
<string name="ovw">"Overview"</string>
<string name="fil">"Recipe as file"</string>
<string name="rec">"Recipe as text"</string>
<string name="pht">"Recipe photo"</string>
<string name="shr">"Share"</string>
<string name="recTitle">"My Healthy Recipe"</string>
<string name="recListEmp">"Nothing here! Add some recipes and try again"</string>
<string name="selRec">"Select recipe"</string>
<string name="aBtn">"ADD"</string>
<string name="rmLIInfo">"Existing recipes will not be affected"</string>
<string name="rmUInfo">"You are about to remove the unit:"</string>
<string name="rmYUInfo">"You are about to remove the yield unit:"</string>
<string name="rmCatInfo">"You are about to remove the category:"</string>
<string name="rmCuiInfo">"You are about to remove the cuisine:"</string>
<string name="rBtn">"REMOVE"</string>
<string name="cBtn">"CANCEL"</string>
<string name="srt">"Sort by"</string>
<string name="stp">"Step"</string>
<string name="it">"Item"</string>
<string name="aNoBtn">"ADD NOTE"</string>
<string name="nos">"Notes"</string>
<string name="no">"Note"</string>
<string name="addCmbBtn">"ADD COMBINATION"</string>
<string name="cmbs">"Combinations"</string>
<string name="cmb">"Combination"</string>
<string name="aStpBtn">"ADD STEP"</string>
<string name="inss">"Instructions"</string>
<string name="ins">"Instruction"</string>
<string name="aIngBtn">"ADD INGREDIENT"</string>
<string name="ings">"Ingredients"</string>
<string name="ing">"Ingredient"</string>
<string name="yieldU">"Yield unit"</string>
<string name="yieldQ">"Yield quantity"</string>
<string name="cookT">"Cooking time"</string>
<string name="prepT">"Preparation time"</string>
<string name="cat">"Category"</string>
<string name="title">"Title"</string>
<string name="editRec">"Edit recipe"</string>
<string name="newRec">"New recipe"</string>
<string name="tgInfo">"For reporting issues, suggestions and feedback"</string>
<string name="joinTG">"Join the Telegram group"</string>
<string name="ver">"Version"</string>
<string name="impInfo">"Supports full backups exported by this app"</string>
<string name="impBu">"Import data"</string>
<string name="buInfo">"Generates a ZIP file containing all your data that can be imported back"</string>
<string name="expBu">"Export full backup"</string>
<string name="db">"Database"</string>
<string name="sysDef">"System default"</string>
<string name="lang">"Language"</string>
<string name="intf">"Interface"</string>
<string name="noRecsInFtr">"No recipes match your search in the Filtered recipes"</string>
<string name="noRecsInFavs">"No recipes match your search in the Favourites list"</string>
<string name="noRecsInTL">"No recipes match your search in the Try Later list"</string>
<string name="noRecs">"No recipes match your search"</string>
<string name="fsList">"Your favourite recipes are listed here"</string>
<string name="noFavs">"No favourites yet"</string>
<string name="tLInfo">"Recipes you want to try later are listed here"</string>
<string name="aD">"All done!"</string>
<string name="pANo">"Use the pencil button to add notes"</string>
<string name="pACmb">"Use the pencil button to add combinations"</string>
<string name="pAIns">"Use the pencil button to add instructions"</string>
<string name="pAIng">"Use the pencil button to add ingredients"</string>
<string name="plsAdd">"Use the plus button to add one"</string>
<string name="strAdd">"Start adding your recipes!"</string>
<string name="grocery">"Grocery List"</string>
<string name="planner">"Meal Planner"</string>
<string name="favourites">"Favourites"</string>
<string name="trylater">"Try Later"</string>
</resources>

View file

@ -0,0 +1,445 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="Donate">""</string>
<string name="Combination">""</string>
<string name="_Invalid_file__Z2bRAst">""</string>
<string name="_Backup_file_has_been_modified_externally__Wjiqq">""</string>
<string name="_Backup_file_seems_empty__Zd7qfR">""</string>
<string name="_Backup_file_is_incorrect_or_corrupt__1jXb8N">""</string>
<string name="_Import_failed_Z1dbs6t">""</string>
<string name="_Remove_recipe_from_snacks__MNnCU">""</string>
<string name="_Remove_recipe_from_dinner__8sWfY">""</string>
<string name="_Remove_recipe_from_lunch__Zwpsg2">""</string>
<string name="_Remove_recipe_from_breakfast__ZvYyFG">""</string>
<string name="_Untitled_Recipe_Zv0UxP">""</string>
<string name="_Star_rating_Z11p4Kw">""</string>
<string name="Created">""</string>
<string name="_Filtered_result_1AMEXe">""</string>
<string name="OK">""</string>
<string name="_recipes_updated_Z2arFrR">""</string>
<string name="_recipes_already_exists_2jqW2s">""</string>
<string name="_recipes_imported_1NGeRw">""</string>
<string name="_recipes_found_ZDdUgV">""</string>
<string name="_Import_summary_244SkL">""</string>
<string name="_separate_with_spaces_ZHKOfw">""</string>
<string name="Tags">""</string>
<string name="_No_tags_available_Z1C5GqD">""</string>
<string name="_All_Tags_28gMyY">""</string>
<string name="_All_Categories_Z23JSTS">""</string>
<string name="Vietnamese">""</string>
<string name="Turkish">""</string>
<string name="Thai">""</string>
<string name="Swedish">""</string>
<string name="_Sri_Lankan_Z7GfBa">""</string>
<string name="Spanish">""</string>
<string name="Scottish">""</string>
<string name="Russian">""</string>
<string name="Portuguese">""</string>
<string name="Nigerian">""</string>
<string name="Mexican">""</string>
<string name="Korean">""</string>
<string name="Kenyan">""</string>
<string name="Jewish">""</string>
<string name="Japanese">""</string>
<string name="Jamaican">""</string>
<string name="Italian">""</string>
<string name="Irish">""</string>
<string name="Indian">""</string>
<string name="Greek">""</string>
<string name="German">""</string>
<string name="French">""</string>
<string name="Filipino">""</string>
<string name="English">""</string>
<string name="Egyptian">""</string>
<string name="Danish">""</string>
<string name="Chinese">""</string>
<string name="British">""</string>
<string name="Brazilian">""</string>
<string name="American">""</string>
<string name="_All_Cuisines_2hjCp9">""</string>
<string name="Cuisines">""</string>
<string name="Cuisine">""</string>
<string name="_Are_you_sure_you_want_to_remove_ZOnf22">""</string>
<string name="Units">""</string>
<string name="_Remove_unit__2x26yq">""</string>
<string name="_Remove_yield_unit__Z1duBWR">""</string>
<string name="_Remove_category__2reaxz">""</string>
<string name="_Remove_cuisine__22ftcL">""</string>
<string name="_New_unit_1CVEEA">""</string>
<string name="_New_cuisine_Zrvs3z">""</string>
<string name="Challenging">""</string>
<string name="Moderate">""</string>
<string name="Easy">""</string>
<string name="_Oldest_first_Z6cq4h">""</string>
<string name="_Newest_first_2Sb3c">""</string>
<string name="_Last_updated_Z2gEbLD">""</string>
<string name="_Difficulty_level_cSL5d">""</string>
<string name="Rating">""</string>
<string name="_Slowest_first_hHjY6">""</string>
<string name="_Quickest_first_Z1CpP7N">""</string>
<string name="_Your_search_did_not_match_any_recipes_in_the_filtered_result_1TV6QQ">""</string>
<string name="_Recipe_not_found_2qGveM">""</string>
<string name="_Reset_successful_YxqWK">""</string>
<string name="_Reset_units_list_msRS3">""</string>
<string name="_Reset_yield_units_list_ZjouMk">""</string>
<string name="_Reset_categories_list_Z1JmKra">""</string>
<string name="_Reset_cuisines_list_1kWL8I">""</string>
<string name="_Resetting_a_list_will_NOT_delete_your_existing_entries_but_only_restores_the_deleted_default_entries__Z28mk0h">""</string>
<string name="Reset">""</string>
<string name="_Helps_you_choose_what_to_cook_when_you_can_t_decide_muiMv">""</string>
<string name="_Shake_to_view_random_recipe_ZTK9F2">""</string>
<string name="Options">""</string>
<string name="_User_guide_2uDJCF">""</string>
<string name="_Privacy_policy_Zb4ht5">""</string>
<string name="_View_on_GitHub_Z2qOqmx">""</string>
<string name="Translator">""</string>
<string name="Contributors">""</string>
<string name="_Shared_via_EnRecipes__Get_it_on_Play_Store_or_F_Droid__Z2oTOK1">""</string>
<string name="_Permission_denied_Z7wlWK">""</string>
<string name="_Import_successful_2bLM3e">""</string>
<string name="_Verifying____cS102">""</string>
<string name="_long_time_ago_1nwlFA">""</string>
<string name="_months_ago_Z1TsskA">""</string>
<string name="_weeks_ago_Z2sT1GA">""</string>
<string name="_days_ago_2iCYkm">""</string>
<string name="yesterday">""</string>
<string name="today">""</string>
<string name="_You_tried_this_recipe__ZUJOl3">""</string>
<string name="snacks">""</string>
<string name="dinner">""</string>
<string name="lunch">""</string>
<string name="breakfast">""</string>
<string name="_Crop_photo_1VL04J">""</string>
<string name="_REPLACE_PHOTO_ZLHhwH">""</string>
<string name="_Recipe_photo_eqm9B">""</string>
<string name="_EnRecipes_requires_storage_permission_in_order_to_set_recipe_photo__23OnNT">""</string>
<string name="Required">""</string>
<string name="_New_category_Weg73">""</string>
<string name="_New_yield_unit_1Oevd2">""</string>
<string name="_Remove_note__2wyMVE">""</string>
<string name="_Remove_combination__1dr2LS">""</string>
<string name="_Remove_instruction__vkJfi">""</string>
<string name="_Remove_ingredient__2puvMO">""</string>
<string name="_KEEP_EDITING_1o9uy3">""</string>
<string name="DISCARD">""</string>
<string name="_Are_you_sure_you_want_to_discard_unsaved_changes_to_this_recipe__Z1G7sVC">""</string>
<string name="_Unsaved_changes_9fqb4">""</string>
<string name="Search">""</string>
<string name="_Are_you_sure_you_want_to_delete_the_recipe_29DH9w">""</string>
<string name="DELETE">""</string>
<string name="_Delete_recipe__Z2tMYtE">""</string>
<string name="_Removed_from_Try_Later_1h5Bkp">""</string>
<string name="_Added_to_Try_Later_Z1gaF37">""</string>
<string name="_Removed_from_Favourites_Z5k7LR">""</string>
<string name="_Added_to_Favourites_2mzllO">""</string>
<string name="_Add_at_least_one_recipe_to_perform_a_backup_17xYaH">""</string>
<string name="_EnRecipes_requires_storage_permission_in_order_to_backup_your_data_to_this_device__2cbvIq">""</string>
<string name="CONTINUE">""</string>
<string name="_NOT_NOW_Z1HD7qX">""</string>
<string name="_EnRecipes_requires_storage_permission_in_order_to_import_your_data_from_a_previous_backup__1CKjb7">""</string>
<string name="_Grant_permission_Z1UQBuh">""</string>
<string name="_EnRecipes_needs_to_be_restarted_for_the_app_language_to_take_effect__ZWGUtY">""</string>
<string name="_EnRecipes_needs_to_be_restarted_for_the_theme_change_to_take_effect__2kU319">""</string>
<string name="RESTART">""</string>
<string name="_Restart_required_Z22YINL">""</string>
<string name="SET">""</string>
<string name="_ADD_NEW_Zv8FjM">""</string>
<string name="Share">""</string>
<string name="Overview">""</string>
<string name="Recipe">""</string>
<string name="Photo">""</string>
<string name="min">""</string>
<string name="hr">""</string>
<string name="_My_Healthy_Recipe_Z1EqB8f">""</string>
<string name="_Nothing_here__Add_some_recipes_and_try_again__Z25A7Q">""</string>
<string name="_Select_a_recipe_2lL8x2">""</string>
<string name="ADD">""</string>
<string name="REMOVE">""</string>
<string name="CANCEL">""</string>
<string name="_Sort_by_Zq01TF">""</string>
<string name="Step">""</string>
<string name="Item">""</string>
<string name="_ADD_NOTE_ZyNw1r">""</string>
<string name="Notes">""</string>
<string name="Note">""</string>
<string name="_ADD_COMBINATION_2q9HWq">""</string>
<string name="Combinations">""</string>
<string name="_ADD_STEP_ZyMPOe">""</string>
<string name="Instructions">""</string>
<string name="Instruction">""</string>
<string name="_ADD_INGREDIENT_29sSLU">""</string>
<string name="Ingredients">""</string>
<string name="Ingredient">""</string>
<string name="_Yield_measured_in_2OoRT">""</string>
<string name="_Yield_quantity_ZHx3jw">""</string>
<string name="_Cooking_time_2w2fEw">""</string>
<string name="_Preparation_time_15BfxT">""</string>
<string name="Category">""</string>
<string name="Title">""</string>
<string name="_Edit_recipe_ZPvwDP">""</string>
<string name="_New_recipe_Z1Y2YKJ">""</string>
<string name="_Vishnu_Raghav_B_1qnRnC">""</string>
<string name="Author">""</string>
<string name="_for_reporting_issues__suggestions_and_feedback_Z1JUmyE">""</string>
<string name="_Join_the_Telegram_group_ZAXQgc">""</string>
<string name="Version">""</string>
<string name="_Supports_full_backups_exported_by_this_app_ZYs4f2">""</string>
<string name="_Import_from_backup_Z28HsC0">""</string>
<string name="_Generates_a_zip_file_that_contains_all_your_data__This_file_can_be_imported_back__Z19m3xY">""</string>
<string name="_Export_a_full_backup_TJfra">""</string>
<string name="Database">""</string>
<string name="Dark">""</string>
<string name="Light">""</string>
<string name="Theme">""</string>
<string name="_System_default_Z1jruVS">""</string>
<string name="_App_language_DzFsk">""</string>
<string name="Interface">""</string>
<string name="_Your_search_did_not_match_any_recipes_in_your_try_later_list_Z2wWbA1">""</string>
<string name="_Your_search_did_not_match_any_recipes_in_your_favourites_1ylvHN">""</string>
<string name="_Your_search_did_not_match_any_recipes_in_this_category_P7J4V">""</string>
<string name="_Your_search_did_not_match_any_recipes_Z1eppHH">""</string>
<string name="_No_recipes_found_Z125IxD">""</string>
<string name="_Category_looks_empty_ZAK5qU">""</string>
<string name="_Recipes_you_mark_as_favourite_will_be_listed_here_Z1iIHgY">""</string>
<string name="_No_favourites_yet_aPSoG">""</string>
<string name="_Recipes_you_mark_as_try_later_will_be_listed_here_Z1ITwPV">""</string>
<string name="_All_done__72KYl">""</string>
<string name="_Use_the_pencil_button_to_add_some_notes_Z1wyyeb">""</string>
<string name="_Use_the_pencil_button_to_add_some_combinations_6NhFS">""</string>
<string name="_Use_the_pencil_button_to_add_some_instructions_ZAi0PH">""</string>
<string name="_Use_the_pencil_button_to_add_some_ingredients_Z1xOX8S">""</string>
<string name="_Use_the_plus_button_to_add_one_1h20ms">""</string>
<string name="_Start_adding_your_recipes__rwnVV">""</string>
<string name="large">""</string>
<string name="medium">""</string>
<string name="small">""</string>
<string name="stick">""</string>
<string name="dozen">""</string>
<string name="drop">""</string>
<string name="pinch">""</string>
<string name="piece">""</string>
<string name="clove">""</string>
<string name="leaf">""</string>
<string name="in">""</string>
<string name="cm">""</string>
<string name="kg">""</string>
<string name="g">""</string>
<string name="mg">""</string>
<string name="lb">""</string>
<string name="oz">""</string>
<string name="l">""</string>
<string name="ml">""</string>
<string name="gal">""</string>
<string name="qt">""</string>
<string name="pt">""</string>
<string name="cup">""</string>
<string name="_fl_oz_72kqu">""</string>
<string name="tbsp">""</string>
<string name="dsp">""</string>
<string name="tsp">""</string>
<string name="unit">""</string>
<string name="Loaf">""</string>
<string name="Patty">""</string>
<string name="Roll">""</string>
<string name="Litre">""</string>
<string name="Millilitre">""</string>
<string name="Gallon">""</string>
<string name="Cup">""</string>
<string name="Kilogram">""</string>
<string name="Gram">""</string>
<string name="Pound">""</string>
<string name="Ounce">""</string>
<string name="_Fluid_Ounce_bd10L">""</string>
<string name="Tablespoon">""</string>
<string name="Teaspoon">""</string>
<string name="Piece">""</string>
<string name="Serving">""</string>
<string name="Vegetarian">""</string>
<string name="Vegan">""</string>
<string name="Undefined">""</string>
<string name="Soups">""</string>
<string name="Snacks">""</string>
<string name="_Side_dishes_Z1Et4Vg">""</string>
<string name="Seafood">""</string>
<string name="Sauces">""</string>
<string name="Salads">""</string>
<string name="Rice">""</string>
<string name="Poultry">""</string>
<string name="Pasta">""</string>
<string name="Noodles">""</string>
<string name="Meat">""</string>
<string name="_Main_dishes_u6RGQ">""</string>
<string name="Lunch">""</string>
<string name="Healthy">""</string>
<string name="Drinks">""</string>
<string name="Dinner">""</string>
<string name="Desserts">""</string>
<string name="Breakfast">""</string>
<string name="Breads">""</string>
<string name="Beverages">""</string>
<string name="Barbecue">""</string>
<string name="Appetizers">""</string>
<string name="About">""</string>
<string name="Settings">""</string>
<string name="Categories">""</string>
<string name="_Meal_Planner_2aq4oj">""</string>
<string name="Favourites">""</string>
<string name="_Try_Later_If7PG">""</string>
<string name="EnRecipes">""</string>
<string name="_app_name_1k3Sbz">""</string>
<string name="app_name">""</string>
<string name="title_activity_kimera">""</string>
<string name="trySer">"SEARCH IN ALL THE RECIPES?"</string>
<string name="help">"Help"</string>
<string name="appInfo">"EnRecipes is an open source, privacy-friendly digital cookbook that lets you create, manage and share your recipes"</string>
<string name="donate">"Donate"</string>
<string name="invFile">"Invalid file"</string>
<string name="buSuc">"Backup saved successfully to the Download folder"</string>
<string name="buMod">"The backup file was modified elsewhere"</string>
<string name="buEmp">"The backup file is empty"</string>
<string name="buInc">"Malformed or corrupt backup file"</string>
<string name="impFail">"Import failed"</string>
<string name="recRm">"Recipe removed"</string>
<string name="untRec">"Untitled Recipe"</string>
<string name="stars">"Star rating"</string>
<string name="_Filtered_recipes_Z1alhhu">"Filtered recipes"</string>
<string name="recU">"recipes updated"</string>
<string name="recE">"recipes already exists"</string>
<string name="recI">"recipes imported"</string>
<string name="recF">"recipes found"</string>
<string name="impSuc">"Import success"</string>
<string name="tsInfo">"separate with spaces"</string>
<string name="ts">"Tags"</string>
<string name="noTs">"No tags available"</string>
<string name="allTs">"All Tags"</string>
<string name="allCats">"All Categories"</string>
<string name="allCuis">"All Cuisines"</string>
<string name="cuis">"Cuisines"</string>
<string name="cui">"Cuisine"</string>
<string name="Unit">"Unit"</string>
<string name="newUnit">"New unit"</string>
<string name="newCui">"New cuisine"</string>
<string name="resNF">"Recipe not found"</string>
<string name="restDone">"Reset done"</string>
<string name="restInfo">"Resetting a list will delete user-created entries and restore default entries. Existing recipes will not be affected."</string>
<string name="restUL">"Reset unit list"</string>
<string name="restYUL">"Reset yield unit list"</string>
<string name="restCatL">"Reset category list"</string>
<string name="restCuiL">"Reset cuisine list"</string>
<string name="rest">"Reset"</string>
<string name="sVwInfo">"Helps you choose what to cook when you can\'t decide"</string>
<string name="sVw">"Shake to view random recipe"</string>
<string name="opts">"Options"</string>
<string name="guide">"User guide"</string>
<string name="priv">"Privacy policy"</string>
<string name="gh">"View on GitHub"</string>
<string name="appCrd">"Shared via EnRecipes. Get it on F-Droid, IzzyOnDroid or the Play Store."</string>
<string name="vrfy">"Verifying"</string>
<string name="ltAgo">"a long time ago"</string>
<string name="mAgo">"months ago"</string>
<string name="wAgo">"weeks ago"</string>
<string name="dAgo">"days ago"</string>
<string name="triedInfo">"You tried this recipe:"</string>
<string name="cPic">"Crop photo"</string>
<string name="repBtn">"REPLACE PHOTO"</string>
<string name="recPic">"Recipe photo"</string>
<string name="req">"Required"</string>
<string name="nwCat">"New category"</string>
<string name="nwYiU">"New yield unit"</string>
<string name="rmCmb">"Combination removed"</string>
<string name="rmN">"Note removed"</string>
<string name="rmIns">"Instruction removed"</string>
<string name="rmIng">"Ingredient removed"</string>
<string name="kEdit">"KEEP EDITING"</string>
<string name="disBtn">"DISCARD"</string>
<string name="disc">"This recipe has unsaved changes. What would you like to do?"</string>
<string name="unsaved">"Unsaved changes"</string>
<string name="ser">"Search"</string>
<string name="dBtn">"DELETE"</string>
<string name="delRecInfo">"You are about to permanently delete the recipe:"</string>
<string name="delRec">"Delete confirmation"</string>
<string name="conf">"Confirm"</string>
<string name="rmTry">"Removed from Try Later"</string>
<string name="aTry">"Added to Try Later"</string>
<string name="unfavd">"Removed from Favourites"</string>
<string name="favd">"Added to Favourites"</string>
<string name="aFBu">"Add a recipe to perform a backup"</string>
<string name="dend">"Access denied"</string>
<string name="conBtn">"CONTINUE"</string>
<string name="nNBtn">"NOT NOW"</string>
<string name="reqAcc">"EnRecipes requires storage permission in order to set recipe photo, export and import data"</string>
<string name="grant">"Grant access"</string>
<string name="nLangInfo">"Restart EnRecipes to use the new language"</string>
<string name="nThmInfo">"Restart EnRecipes to use the new theme"</string>
<string name="rst">"RESTART"</string>
<string name="appRst">"App restart required"</string>
<string name="aNBtn">"ADD NEW"</string>
<string name="ovw">"Overview"</string>
<string name="fil">"Recipe as file"</string>
<string name="rec">"Recipe as text"</string>
<string name="pht">"Recipe photo"</string>
<string name="shr">"Share"</string>
<string name="recTitle">"My Healthy Recipe"</string>
<string name="recListEmp">"Nothing here! Add some recipes and try again"</string>
<string name="selRec">"Select recipe"</string>
<string name="aBtn">"ADD"</string>
<string name="rmLIInfo">"Existing recipes will not be affected"</string>
<string name="rmUInfo">"You are about to remove the unit:"</string>
<string name="rmYUInfo">"You are about to remove the yield unit:"</string>
<string name="rmCatInfo">"You are about to remove the category:"</string>
<string name="rmCuiInfo">"You are about to remove the cuisine:"</string>
<string name="rBtn">"REMOVE"</string>
<string name="cBtn">"CANCEL"</string>
<string name="srt">"Sort by"</string>
<string name="stp">"Step"</string>
<string name="it">"Item"</string>
<string name="aNoBtn">"ADD NOTE"</string>
<string name="nos">"Notes"</string>
<string name="no">"Note"</string>
<string name="addCmbBtn">"ADD COMBINATION"</string>
<string name="cmbs">"Combinations"</string>
<string name="cmb">"Combination"</string>
<string name="aStpBtn">"ADD STEP"</string>
<string name="inss">"Instructions"</string>
<string name="ins">"Instruction"</string>
<string name="aIngBtn">"ADD INGREDIENT"</string>
<string name="ings">"Ingredients"</string>
<string name="ing">"Ingredient"</string>
<string name="yieldU">"Yield unit"</string>
<string name="yieldQ">"Yield quantity"</string>
<string name="cookT">"Cooking time"</string>
<string name="prepT">"Preparation time"</string>
<string name="cat">"Category"</string>
<string name="title">"Title"</string>
<string name="editRec">"Edit recipe"</string>
<string name="newRec">"New recipe"</string>
<string name="tgInfo">"For reporting issues, suggestions and feedback"</string>
<string name="joinTG">"Join the Telegram group"</string>
<string name="ver">"Version"</string>
<string name="impInfo">"Supports full backups exported by this app"</string>
<string name="impBu">"Import data"</string>
<string name="buInfo">"Generates a ZIP file containing all your data that can be imported back"</string>
<string name="expBu">"Export full backup"</string>
<string name="db">"Database"</string>
<string name="sysDef">"System default"</string>
<string name="lang">"Language"</string>
<string name="intf">"Interface"</string>
<string name="noRecsInFtr">"No recipes match your search in the Filtered recipes"</string>
<string name="noRecsInFavs">"No recipes match your search in the Favourites list"</string>
<string name="noRecsInTL">"No recipes match your search in the Try Later list"</string>
<string name="noRecs">"No recipes match your search"</string>
<string name="fsList">"Your favourite recipes are listed here"</string>
<string name="noFavs">"No favourites yet"</string>
<string name="tLInfo">"Recipes you want to try later are listed here"</string>
<string name="aD">"All done!"</string>
<string name="pANo">"Use the pencil button to add notes"</string>
<string name="pACmb">"Use the pencil button to add combinations"</string>
<string name="pAIns">"Use the pencil button to add instructions"</string>
<string name="pAIng">"Use the pencil button to add ingredients"</string>
<string name="plsAdd">"Use the plus button to add one"</string>
<string name="strAdd">"Start adding your recipes!"</string>
<string name="grocery">"Grocery List"</string>
<string name="planner">"Meal Planner"</string>
<string name="favourites">"Favourites"</string>
<string name="trylater">"Try Later"</string>
</resources>

View file

@ -0,0 +1,445 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="Combination">"Combinaison"</string>
<string name="Donate">"Faire un don"</string>
<string name="_Invalid_file__Z2bRAst">"Fichier invalide :"</string>
<string name="_Backup_file_has_been_modified_externally__Wjiqq">"Fichier de sauvegarde modifié ailleurs."</string>
<string name="_Backup_file_seems_empty__Zd7qfR">"La sauvegarde est vide."</string>
<string name="_Backup_file_is_incorrect_or_corrupt__1jXb8N">"Fichier de sauvegarde malformé ou corrompu."</string>
<string name="_Import_failed_Z1dbs6t">"Limportation a échoué"</string>
<string name="_Remove_recipe_from_snacks__MNnCU">"Retirer la recette des en-cas ?"</string>
<string name="_Remove_recipe_from_dinner__8sWfY">"Retirer la recette du dîner ?"</string>
<string name="_Remove_recipe_from_lunch__Zwpsg2">"Retirer la recette du déjeuner ?"</string>
<string name="_Remove_recipe_from_breakfast__ZvYyFG">"Retirer la recette du petit déjeuner ?"</string>
<string name="_Untitled_Recipe_Zv0UxP">"Recette sans titre"</string>
<string name="_Star_rating_Z11p4Kw">"Évaluation étoilée"</string>
<string name="Created">"Créé"</string>
<string name="_Filtered_result_1AMEXe">"Résultat filtré"</string>
<string name="OK">"OK"</string>
<string name="_recipes_updated_Z2arFrR">"recettes mises à jour"</string>
<string name="_recipes_already_exists_2jqW2s">"recettes existent déjà"</string>
<string name="_recipes_imported_1NGeRw">"recettes importées"</string>
<string name="_recipes_found_ZDdUgV">"recettes trouvées"</string>
<string name="_Import_summary_244SkL">"Récapitulatif de limportation"</string>
<string name="_separate_with_spaces_ZHKOfw">"séparer avec des espaces"</string>
<string name="Tags">"Étiquettes"</string>
<string name="_No_tags_available_Z1C5GqD">"Aucune étiquette disponible"</string>
<string name="_All_Tags_28gMyY">"Toutes les étiquettes"</string>
<string name="_All_Categories_Z23JSTS">"toutes les catégories"</string>
<string name="Vietnamese">"vietnamienne"</string>
<string name="Turkish">"turque"</string>
<string name="Thai">"thaïlandaise"</string>
<string name="Swedish">"suédoise"</string>
<string name="_Sri_Lankan_Z7GfBa">"sri-lankaise"</string>
<string name="Spanish">"espagnole"</string>
<string name="Scottish">"écossaise"</string>
<string name="Russian">"russe"</string>
<string name="Portuguese">"portugaise"</string>
<string name="Nigerian">"nigériane"</string>
<string name="Mexican">"mexicaine"</string>
<string name="Korean">"coréenne"</string>
<string name="Kenyan">"kényane"</string>
<string name="Jewish">"juive"</string>
<string name="Japanese">"japonaise"</string>
<string name="Jamaican">"jamaïcaine"</string>
<string name="Italian">"italienne"</string>
<string name="Irish">"irlandaise"</string>
<string name="Indian">"indienne"</string>
<string name="Greek">"grecque"</string>
<string name="German">"allemande"</string>
<string name="French">"française"</string>
<string name="Filipino">"philippine"</string>
<string name="English">"anglaise"</string>
<string name="Egyptian">"égyptienne"</string>
<string name="Danish">"danoise"</string>
<string name="Chinese">"chinoise"</string>
<string name="British">"britannique"</string>
<string name="Brazilian">"brésilienne"</string>
<string name="American">"états-unienne"</string>
<string name="_All_Cuisines_2hjCp9">"Toutes les cuisines"</string>
<string name="Cuisines">"Cuisines"</string>
<string name="Cuisine">"Cuisine"</string>
<string name="_Are_you_sure_you_want_to_remove_ZOnf22">"Êtes-vous sûr·e de vouloir désinstaller"</string>
<string name="Units">"Unités"</string>
<string name="_Remove_unit__2x26yq">"Retirer lunité ?"</string>
<string name="_Remove_yield_unit__Z1duBWR">"Retirer lunité de rendement ?"</string>
<string name="_Remove_category__2reaxz">"Supprimer la catégorie ?"</string>
<string name="_Remove_cuisine__22ftcL">"Retirer la cuisine ?"</string>
<string name="_New_unit_1CVEEA">"Nouvelle unité"</string>
<string name="_New_cuisine_Zrvs3z">"Nouvelle cuisine"</string>
<string name="Challenging">"Difficile"</string>
<string name="Moderate">"Modéré"</string>
<string name="Easy">"Facile"</string>
<string name="_Oldest_first_Z6cq4h">"La plus ancienne dabord"</string>
<string name="_Newest_first_2Sb3c">"La plus récente dabord"</string>
<string name="_Last_updated_Z2gEbLD">"Denière mise à jour"</string>
<string name="_Difficulty_level_cSL5d">"Niveau de difficulté"</string>
<string name="Rating">"Évaluation"</string>
<string name="_Slowest_first_hHjY6">"La plus lente dabord"</string>
<string name="_Quickest_first_Z1CpP7N">"La plus rapide dabord"</string>
<string name="_Your_search_did_not_match_any_recipes_in_the_filtered_result_1TV6QQ">"Impossible de trouver de telles recettes."</string>
<string name="_Recipe_not_found_2qGveM">"Recette introuvable"</string>
<string name="_Reset_successful_YxqWK">"Réinitialisation terminée"</string>
<string name="_Reset_units_list_msRS3">"Réinitialiser la liste des unités"</string>
<string name="_Reset_yield_units_list_ZjouMk">"Réinitialiser la liste des unités de rendement"</string>
<string name="_Reset_categories_list_Z1JmKra">"Réinitialiser la liste des catégories"</string>
<string name="_Reset_cuisines_list_1kWL8I">"Réinitialiser la liste des cuisines"</string>
<string name="_Resetting_a_list_will_NOT_delete_your_existing_entries_but_only_restores_the_deleted_default_entries__Z28mk0h">"La réinitialisation des listes ne restaure que les entrées par défaut supprimées. Les entrées existantes ne sont pas supprimées."</string>
<string name="Reset">"Réinitialiser"</string>
<string name="_Helps_you_choose_what_to_cook_when_you_can_t_decide_muiMv">"Vous aide quand vous ne pouvez pas décider quoi cuisiner"</string>
<string name="_Shake_to_view_random_recipe_ZTK9F2">"Secouez pour voir une recette au hasard"</string>
<string name="Options">"Options"</string>
<string name="_User_guide_2uDJCF">"Guide dutilisation"</string>
<string name="_Privacy_policy_Zb4ht5">"Politique de confidentialité"</string>
<string name="_View_on_GitHub_Z2qOqmx">"Voir sur GitHub"</string>
<string name="Translator">"Traduit par"</string>
<string name="Contributors">"Contributeur·ice·s"</string>
<string name="_Shared_via_EnRecipes__Get_it_on_Play_Store_or_F_Droid__Z2oTOK1">"Partagé via EnRecipes. Téléchargez-le sur F-Droid, IzzyOnDroid ou le Play Store."</string>
<string name="_Permission_denied_Z7wlWK">"Autorisation refusée"</string>
<string name="_Import_successful_2bLM3e">"Importé"</string>
<string name="_Verifying____cS102">"Vérification…"</string>
<string name="_long_time_ago_1nwlFA">"il y a longtemps"</string>
<string name="_months_ago_Z1TsskA">"mois de ça"</string>
<string name="_weeks_ago_Z2sT1GA">"semaines de ça"</string>
<string name="_days_ago_2iCYkm">"jours de ça"</string>
<string name="yesterday">"hier"</string>
<string name="today">"aujourdhui"</string>
<string name="_You_tried_this_recipe__ZUJOl3">"Vous avez essayé cette recette :"</string>
<string name="snacks">"en-cas"</string>
<string name="dinner">"dîner"</string>
<string name="lunch">"déjeuner"</string>
<string name="breakfast">"Petit déjeuner"</string>
<string name="_Crop_photo_1VL04J">"Recadrer la photo"</string>
<string name="_REPLACE_PHOTO_ZLHhwH">"REMPLACER LA PHOTO"</string>
<string name="_Recipe_photo_eqm9B">"Photo de recette"</string>
<string name="_EnRecipes_requires_storage_permission_in_order_to_set_recipe_photo__23OnNT">"Accordez lautorisation de stockage pour enregistrer une photo de recette."</string>
<string name="Required">"Obligatoire"</string>
<string name="_New_category_Weg73">"Nouvelle catégorie"</string>
<string name="_New_yield_unit_1Oevd2">"Nouvelle unité de rendement"</string>
<string name="_Remove_note__2wyMVE">"Retirer la note ?"</string>
<string name="_Remove_combination__1dr2LS">"Retirer la combinaison ?"</string>
<string name="_Remove_instruction__vkJfi">"Retirer linstruction ?"</string>
<string name="_Remove_ingredient__2puvMO">"Retirer lingrédient ?"</string>
<string name="_KEEP_EDITING_1o9uy3">"CONTINUER LÉDITION"</string>
<string name="DISCARD">"ABANDONNER"</string>
<string name="_Are_you_sure_you_want_to_discard_unsaved_changes_to_this_recipe__Z1G7sVC">"Annuler toutes les modifications non enregistrées de cette recette ?"</string>
<string name="_Unsaved_changes_9fqb4">"Modifications non enregistrées"</string>
<string name="Search">"Chercher"</string>
<string name="_Are_you_sure_you_want_to_delete_the_recipe_29DH9w">"Supprimer la recette"</string>
<string name="DELETE">"SUPPRIMER"</string>
<string name="_Delete_recipe__Z2tMYtE">"Supprimer la recette ?"</string>
<string name="_Removed_from_Try_Later_1h5Bkp">"Retiré dEssayer plus tard"</string>
<string name="_Added_to_Try_Later_Z1gaF37">"Ajouté à Essayer plus tard"</string>
<string name="_Removed_from_Favourites_Z5k7LR">"Retiré des favoris"</string>
<string name="_Added_to_Favourites_2mzllO">"Ajouté aux favoris"</string>
<string name="_Add_at_least_one_recipe_to_perform_a_backup_17xYaH">"Ajoutez une recette dabord pour effectuer une sauvegarde."</string>
<string name="_EnRecipes_requires_storage_permission_in_order_to_backup_your_data_to_this_device__2cbvIq">"Accordez lautorisation de stockage pour sauvegarder les données EnRecipe sur lappareil."</string>
<string name="CONTINUE">"CONTINUER"</string>
<string name="_NOT_NOW_Z1HD7qX">"PAS MAINTENANT"</string>
<string name="_EnRecipes_requires_storage_permission_in_order_to_import_your_data_from_a_previous_backup__1CKjb7">"Accordez lautorisation de stockage pour importer vos données à partir dune sauvegarde précédente."</string>
<string name="_Grant_permission_Z1UQBuh">"Autoriser"</string>
<string name="_EnRecipes_needs_to_be_restarted_for_the_app_language_to_take_effect__ZWGUtY">"Redémarrez EnRecipes pour utiliser la nouvelle langue."</string>
<string name="_EnRecipes_needs_to_be_restarted_for_the_theme_change_to_take_effect__2kU319">"Redémarrez EnRecipes pour utiliser le nouveau thème."</string>
<string name="RESTART">"REDÉMARRER"</string>
<string name="_Restart_required_Z22YINL">"Redémarrage de lappli nécessaire"</string>
<string name="SET">"DÉFINIR"</string>
<string name="_ADD_NEW_Zv8FjM">"AJOUTER"</string>
<string name="Share">"Partager"</string>
<string name="Overview">"Aperçu"</string>
<string name="Recipe">"Recette"</string>
<string name="Photo">"Photo"</string>
<string name="min">"min"</string>
<string name="hr">"h"</string>
<string name="_My_Healthy_Recipe_Z1EqB8f">"Ma recette saine"</string>
<string name="_Nothing_here__Add_some_recipes_and_try_again__Z25A7Q">"Ajoutez des recettes pour les voir ici."</string>
<string name="_Select_a_recipe_2lL8x2">"Sélectionnez une recette"</string>
<string name="ADD">"AJOUTER"</string>
<string name="REMOVE">"RETIRER"</string>
<string name="CANCEL">"ANNULER"</string>
<string name="_Sort_by_Zq01TF">"Trier par"</string>
<string name="Step">"Étape"</string>
<string name="Item">"Élément"</string>
<string name="_ADD_NOTE_ZyNw1r">"AJOUTER UNE NOTE"</string>
<string name="Notes">"Notes"</string>
<string name="Note">"Note"</string>
<string name="_ADD_COMBINATION_2q9HWq">"AJOUTER UNE COMBINAISON"</string>
<string name="Combinations">"Combinaisons"</string>
<string name="_ADD_STEP_ZyMPOe">"AJOUTER UNE ÉTAPE"</string>
<string name="Instructions">"Instructions"</string>
<string name="Instruction">"Instruction"</string>
<string name="_ADD_INGREDIENT_29sSLU">"AJOUTER UN INGRÉDIENT"</string>
<string name="Ingredients">"Ingrédients"</string>
<string name="Ingredient">"Ingrédient"</string>
<string name="_Yield_measured_in_2OoRT">"Rendement mesuré en"</string>
<string name="_Yield_quantity_ZHx3jw">"Quantité de rendement"</string>
<string name="_Cooking_time_2w2fEw">"Temps de cuisson"</string>
<string name="_Preparation_time_15BfxT">"Temps de préparation"</string>
<string name="Category">"Catégorie"</string>
<string name="Title">"Titre"</string>
<string name="_Edit_recipe_ZPvwDP">"Modifier la recette"</string>
<string name="_New_recipe_Z1Y2YKJ">"Nouvelle recette"</string>
<string name="_Vishnu_Raghav_B_1qnRnC">"Vishnu Raghav B"</string>
<string name="Author">"Auteur·e"</string>
<string name="_for_reporting_issues__suggestions_and_feedback_Z1JUmyE">"pour signaler des problèmes, faire des suggestions et des remarques"</string>
<string name="_Join_the_Telegram_group_ZAXQgc">"Rejoignez le groupe Telegram"</string>
<string name="Version">"Version"</string>
<string name="_Supports_full_backups_exported_by_this_app_ZYs4f2">"Prend en charge les sauvegardes complètes exportées par cette application"</string>
<string name="_Import_from_backup_Z28HsC0">"Importer depuis la sauvegarde"</string>
<string name="_Generates_a_zip_file_that_contains_all_your_data__This_file_can_be_imported_back__Z19m3xY">"Génère un fichier ZIP de toutes vos données que vous pouvez importer ailleurs."</string>
<string name="_Export_a_full_backup_TJfra">"Exporter une sauvegarde complète"</string>
<string name="Database">"Base de données"</string>
<string name="Dark">"Sombre"</string>
<string name="Light">"Clair"</string>
<string name="Theme">"Thème"</string>
<string name="_System_default_Z1jruVS">"Système"</string>
<string name="_App_language_DzFsk">"Langue"</string>
<string name="Interface">"Interface"</string>
<string name="_Your_search_did_not_match_any_recipes_in_your_try_later_list_Z2wWbA1">"Impossible de trouver de telles recettes à essayer plus tard."</string>
<string name="_Your_search_did_not_match_any_recipes_in_your_favourites_1ylvHN">"Impossible de trouver de tels favoris."</string>
<string name="_Your_search_did_not_match_any_recipes_in_this_category_P7J4V">"Impossible de trouver de telles recettes dans cette catégorie."</string>
<string name="_Your_search_did_not_match_any_recipes_Z1eppHH">"Impossible de trouver de telles recettes."</string>
<string name="_No_recipes_found_Z125IxD">"Aucune recette trouvée"</string>
<string name="_Category_looks_empty_ZAK5qU">"Ajoutez des catégories pour les voir ici."</string>
<string name="_Recipes_you_mark_as_favourite_will_be_listed_here_Z1iIHgY">"Mettez les recettes en favoris pour les voir ici."</string>
<string name="_No_favourites_yet_aPSoG">"Pas encore de favoris"</string>
<string name="_Recipes_you_mark_as_try_later_will_be_listed_here_Z1ITwPV">"Les recettes que vous voulez essayer plus tard sont listées ici."</string>
<string name="_All_done__72KYl">"Cest fini !"</string>
<string name="_Use_the_pencil_button_to_add_some_notes_Z1wyyeb">"Utilisez le bouton crayon pour ajouter des notes."</string>
<string name="_Use_the_pencil_button_to_add_some_combinations_6NhFS">"Utilisez le bouton crayon pour ajouter des combinaisons."</string>
<string name="_Use_the_pencil_button_to_add_some_instructions_ZAi0PH">"Utilisez le bouton crayon pour ajouter des instructions."</string>
<string name="_Use_the_pencil_button_to_add_some_ingredients_Z1xOX8S">"Utilisez le bouton crayon pour ajouter des ingrédients."</string>
<string name="_Use_the_plus_button_to_add_one_1h20ms">"Utilisez le bouton plus pour en ajouter une."</string>
<string name="_Start_adding_your_recipes__rwnVV">"Commencez à ajouter vos recettes !"</string>
<string name="large">"grand"</string>
<string name="medium">"moyen"</string>
<string name="small">"petit"</string>
<string name="stick">"barre"</string>
<string name="dozen">"douzaine"</string>
<string name="drop">"goutte"</string>
<string name="pinch">"pincée"</string>
<string name="piece">"morceau"</string>
<string name="clove">"gousse"</string>
<string name="leaf">"feuille"</string>
<string name="in">"in"</string>
<string name="cm">"cm"</string>
<string name="kg">"kg"</string>
<string name="g">"g"</string>
<string name="mg">"mg"</string>
<string name="lb">"lb"</string>
<string name="oz">"oz"</string>
<string name="l">"l"</string>
<string name="ml">"ml"</string>
<string name="gal">"gal"</string>
<string name="qt">"qt"</string>
<string name="pt">"pt"</string>
<string name="cup">"tasse"</string>
<string name="_fl_oz_72kqu">"oz liq"</string>
<string name="tbsp">"cuillérée"</string>
<string name="dsp">"c.à.d"</string>
<string name="tsp">"c.à.c"</string>
<string name="Unit">"Unité"</string>
<string name="unit">"unité"</string>
<string name="Loaf">"Miche"</string>
<string name="Patty">"Pâté"</string>
<string name="Roll">"Rouleau"</string>
<string name="Litre">"Litre"</string>
<string name="Millilitre">"Millilitre"</string>
<string name="Gallon">"Gallon"</string>
<string name="Cup">"Tasse"</string>
<string name="Kilogram">"Kilogramme"</string>
<string name="Gram">"Gramme"</string>
<string name="Pound">"Livre"</string>
<string name="Ounce">"Once"</string>
<string name="_Fluid_Ounce_bd10L">"Once liquide"</string>
<string name="Tablespoon">"Cuillère à soupe"</string>
<string name="Teaspoon">"Cuillère à café"</string>
<string name="Piece">"Morceau"</string>
<string name="Serving">"Portion"</string>
<string name="Vegetarian">"Végétarien"</string>
<string name="Vegan">"Végétalien"</string>
<string name="Undefined">"Indéfini"</string>
<string name="Soups">"Soupes"</string>
<string name="Snacks">"En-cas"</string>
<string name="_Side_dishes_Z1Et4Vg">"Plats daccompagnement"</string>
<string name="Seafood">"Fruits de mer"</string>
<string name="Sauces">"Sauces"</string>
<string name="Salads">"Salades"</string>
<string name="Rice">"Riz"</string>
<string name="Poultry">"Volaille"</string>
<string name="Pasta">"Pâtes"</string>
<string name="Noodles">"Nouilles"</string>
<string name="Meat">"Viande"</string>
<string name="_Main_dishes_u6RGQ">"Plats principaux"</string>
<string name="Lunch">"Déjeuner"</string>
<string name="Healthy">"Sain"</string>
<string name="Drinks">"Boissons alcoolisées"</string>
<string name="Dinner">"Dîner"</string>
<string name="Desserts">"Desserts"</string>
<string name="Breakfast">"Petit déjeuner"</string>
<string name="Breads">"Pains"</string>
<string name="Beverages">"Boissons"</string>
<string name="Barbecue">"Barbecue"</string>
<string name="Appetizers">"Hors-dœuvre"</string>
<string name="About">"À propos"</string>
<string name="Settings">"Paramètres"</string>
<string name="Categories">"Catégories"</string>
<string name="_Meal_Planner_2aq4oj">"Organisateur de repas"</string>
<string name="Favourites">"Favoris"</string>
<string name="_Try_Later_If7PG">"Essayer plus tard"</string>
<string name="EnRecipes">"EnRecipes"</string>
<string name="_app_name_1k3Sbz">"EnRecipes"</string>
<string name="app_name">"EnRecipes"</string>
<string name="title_activity_kimera">"EnRecipes"</string>
<string name="trySer">"SEARCH IN ALL THE RECIPES?"</string>
<string name="help">"Help"</string>
<string name="appInfo">"EnRecipes is an open source, privacy-friendly digital cookbook that lets you create, manage and share your recipes"</string>
<string name="donate">"Donate"</string>
<string name="invFile">"Invalid file"</string>
<string name="buSuc">"Backup saved successfully to the Download folder"</string>
<string name="buMod">"The backup file was modified elsewhere"</string>
<string name="buEmp">"The backup file is empty"</string>
<string name="buInc">"Malformed or corrupt backup file"</string>
<string name="impFail">"Import failed"</string>
<string name="recRm">"Recipe removed"</string>
<string name="untRec">"Untitled Recipe"</string>
<string name="stars">"Star rating"</string>
<string name="_Filtered_recipes_Z1alhhu">"Filtered recipes"</string>
<string name="recU">"recipes updated"</string>
<string name="recE">"recipes already exists"</string>
<string name="recI">"recipes imported"</string>
<string name="recF">"recipes found"</string>
<string name="impSuc">"Import success"</string>
<string name="tsInfo">"separate with spaces"</string>
<string name="ts">"Tags"</string>
<string name="noTs">"No tags available"</string>
<string name="allTs">"All Tags"</string>
<string name="allCats">"All Categories"</string>
<string name="allCuis">"All Cuisines"</string>
<string name="cuis">"Cuisines"</string>
<string name="cui">"Cuisine"</string>
<string name="newUnit">"New unit"</string>
<string name="newCui">"New cuisine"</string>
<string name="resNF">"Recipe not found"</string>
<string name="restDone">"Reset done"</string>
<string name="restInfo">"Resetting a list will delete user-created entries and restore default entries. Existing recipes will not be affected."</string>
<string name="restUL">"Reset unit list"</string>
<string name="restYUL">"Reset yield unit list"</string>
<string name="restCatL">"Reset category list"</string>
<string name="restCuiL">"Reset cuisine list"</string>
<string name="rest">"Reset"</string>
<string name="sVwInfo">"Helps you choose what to cook when you can\'t decide"</string>
<string name="sVw">"Shake to view random recipe"</string>
<string name="opts">"Options"</string>
<string name="guide">"User guide"</string>
<string name="priv">"Privacy policy"</string>
<string name="gh">"View on GitHub"</string>
<string name="appCrd">"Shared via EnRecipes. Get it on F-Droid, IzzyOnDroid or the Play Store."</string>
<string name="vrfy">"Verifying"</string>
<string name="ltAgo">"a long time ago"</string>
<string name="mAgo">"months ago"</string>
<string name="wAgo">"weeks ago"</string>
<string name="dAgo">"days ago"</string>
<string name="triedInfo">"You tried this recipe:"</string>
<string name="cPic">"Crop photo"</string>
<string name="repBtn">"REPLACE PHOTO"</string>
<string name="recPic">"Recipe photo"</string>
<string name="req">"Required"</string>
<string name="nwCat">"New category"</string>
<string name="nwYiU">"New yield unit"</string>
<string name="rmCmb">"Combination removed"</string>
<string name="rmN">"Note removed"</string>
<string name="rmIns">"Instruction removed"</string>
<string name="rmIng">"Ingredient removed"</string>
<string name="kEdit">"KEEP EDITING"</string>
<string name="disBtn">"DISCARD"</string>
<string name="disc">"This recipe has unsaved changes. What would you like to do?"</string>
<string name="unsaved">"Unsaved changes"</string>
<string name="ser">"Search"</string>
<string name="dBtn">"DELETE"</string>
<string name="delRecInfo">"You are about to permanently delete the recipe:"</string>
<string name="delRec">"Delete confirmation"</string>
<string name="conf">"Confirm"</string>
<string name="rmTry">"Removed from Try Later"</string>
<string name="aTry">"Added to Try Later"</string>
<string name="unfavd">"Removed from Favourites"</string>
<string name="favd">"Added to Favourites"</string>
<string name="aFBu">"Add a recipe to perform a backup"</string>
<string name="dend">"Access denied"</string>
<string name="conBtn">"CONTINUE"</string>
<string name="nNBtn">"NOT NOW"</string>
<string name="reqAcc">"EnRecipes requires storage permission in order to set recipe photo, export and import data"</string>
<string name="grant">"Grant access"</string>
<string name="nLangInfo">"Restart EnRecipes to use the new language"</string>
<string name="nThmInfo">"Restart EnRecipes to use the new theme"</string>
<string name="rst">"RESTART"</string>
<string name="appRst">"App restart required"</string>
<string name="aNBtn">"ADD NEW"</string>
<string name="ovw">"Overview"</string>
<string name="fil">"Recipe as file"</string>
<string name="rec">"Recipe as text"</string>
<string name="pht">"Recipe photo"</string>
<string name="shr">"Share"</string>
<string name="recTitle">"My Healthy Recipe"</string>
<string name="recListEmp">"Nothing here! Add some recipes and try again"</string>
<string name="selRec">"Select recipe"</string>
<string name="aBtn">"ADD"</string>
<string name="rmLIInfo">"Existing recipes will not be affected"</string>
<string name="rmUInfo">"You are about to remove the unit:"</string>
<string name="rmYUInfo">"You are about to remove the yield unit:"</string>
<string name="rmCatInfo">"You are about to remove the category:"</string>
<string name="rmCuiInfo">"You are about to remove the cuisine:"</string>
<string name="rBtn">"REMOVE"</string>
<string name="cBtn">"CANCEL"</string>
<string name="srt">"Sort by"</string>
<string name="stp">"Step"</string>
<string name="it">"Item"</string>
<string name="aNoBtn">"ADD NOTE"</string>
<string name="nos">"Notes"</string>
<string name="no">"Note"</string>
<string name="addCmbBtn">"ADD COMBINATION"</string>
<string name="cmbs">"Combinations"</string>
<string name="cmb">"Combination"</string>
<string name="aStpBtn">"ADD STEP"</string>
<string name="inss">"Instructions"</string>
<string name="ins">"Instruction"</string>
<string name="aIngBtn">"ADD INGREDIENT"</string>
<string name="ings">"Ingredients"</string>
<string name="ing">"Ingredient"</string>
<string name="yieldU">"Yield unit"</string>
<string name="yieldQ">"Yield quantity"</string>
<string name="cookT">"Cooking time"</string>
<string name="prepT">"Preparation time"</string>
<string name="cat">"Category"</string>
<string name="title">"Title"</string>
<string name="editRec">"Edit recipe"</string>
<string name="newRec">"New recipe"</string>
<string name="tgInfo">"For reporting issues, suggestions and feedback"</string>
<string name="joinTG">"Join the Telegram group"</string>
<string name="ver">"Version"</string>
<string name="impInfo">"Supports full backups exported by this app"</string>
<string name="impBu">"Import data"</string>
<string name="buInfo">"Generates a ZIP file containing all your data that can be imported back"</string>
<string name="expBu">"Export full backup"</string>
<string name="db">"Database"</string>
<string name="sysDef">"System default"</string>
<string name="lang">"Language"</string>
<string name="intf">"Interface"</string>
<string name="noRecsInFtr">"No recipes match your search in the Filtered recipes"</string>
<string name="noRecsInFavs">"No recipes match your search in the Favourites list"</string>
<string name="noRecsInTL">"No recipes match your search in the Try Later list"</string>
<string name="noRecs">"No recipes match your search"</string>
<string name="fsList">"Your favourite recipes are listed here"</string>
<string name="noFavs">"No favourites yet"</string>
<string name="tLInfo">"Recipes you want to try later are listed here"</string>
<string name="aD">"All done!"</string>
<string name="pANo">"Use the pencil button to add notes"</string>
<string name="pACmb">"Use the pencil button to add combinations"</string>
<string name="pAIns">"Use the pencil button to add instructions"</string>
<string name="pAIng">"Use the pencil button to add ingredients"</string>
<string name="plsAdd">"Use the plus button to add one"</string>
<string name="strAdd">"Start adding your recipes!"</string>
<string name="grocery">"Grocery List"</string>
<string name="planner">"Meal Planner"</string>
<string name="favourites">"Favourites"</string>
<string name="trylater">"Try Later"</string>
</resources>

View file

@ -0,0 +1,445 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="Combination">"Kombinasjon"</string>
<string name="Donate">"Doner"</string>
<string name="_Invalid_file__Z2bRAst">"Ugyldig fil:"</string>
<string name="_Backup_file_has_been_modified_externally__Wjiqq">"Sikkerhetskopifilen har blitt endret eksternt."</string>
<string name="_Backup_file_seems_empty__Zd7qfR">"Sikkerhetskopifilen ser ut til å være tom."</string>
<string name="_Backup_file_is_incorrect_or_corrupt__1jXb8N">"Sikkerhetskopifilen er feilformatert eller skadet."</string>
<string name="_Import_failed_Z1dbs6t">"Kunne ikke importere"</string>
<string name="_Remove_recipe_from_snacks__MNnCU">"Fjern oppskrift fra snacks?"</string>
<string name="_Remove_recipe_from_dinner__8sWfY">"Fjern oppskrift fra middag?"</string>
<string name="_Remove_recipe_from_lunch__Zwpsg2">"Fjern oppskrift fra lunsj?"</string>
<string name="_Remove_recipe_from_breakfast__ZvYyFG">"Fjern oppskrift fra frokost?"</string>
<string name="_Untitled_Recipe_Zv0UxP">"Oppskrift uten tittel"</string>
<string name="_Star_rating_Z11p4Kw">"Stjernevurdering"</string>
<string name="Created">"Opprettet"</string>
<string name="_Filtered_result_1AMEXe">"Filtrert resultat"</string>
<string name="OK">"OK"</string>
<string name="_recipes_updated_Z2arFrR">"oppskrifter oppdatert"</string>
<string name="_recipes_already_exists_2jqW2s">"oppskrifter finnes allerede"</string>
<string name="_recipes_imported_1NGeRw">"oppskrifter importert"</string>
<string name="_recipes_found_ZDdUgV">"oppskrifter funnet"</string>
<string name="_Import_summary_244SkL">"Importsammendrag"</string>
<string name="_separate_with_spaces_ZHKOfw">"inndel med mellomrom"</string>
<string name="Tags">"Etiketter"</string>
<string name="_No_tags_available_Z1C5GqD">"Ingen tilgjengelige etiketter"</string>
<string name="_All_Tags_28gMyY">"Alle etiketter"</string>
<string name="_All_Categories_Z23JSTS">"Alle kategorier"</string>
<string name="Vietnamese">"Vietnamesisk"</string>
<string name="Turkish">"Tyrkisk"</string>
<string name="Thai">"Thailandsk"</string>
<string name="Swedish">"Svensk"</string>
<string name="_Sri_Lankan_Z7GfBa">"Srilankisk"</string>
<string name="Spanish">"Spansk"</string>
<string name="Scottish">"Skotsk"</string>
<string name="Russian">"Russisk"</string>
<string name="Portuguese">"Portugisisk"</string>
<string name="Nigerian">"Nigeriansk"</string>
<string name="Mexican">"Meksikansk"</string>
<string name="Korean">"Koreansk"</string>
<string name="Kenyan">"Kenyansk"</string>
<string name="Jewish">"Jødisk"</string>
<string name="Japanese">"Japansk"</string>
<string name="Jamaican">"Jamaikansk"</string>
<string name="Italian">"Italiensk"</string>
<string name="Irish">"Irsk"</string>
<string name="Indian">"Indisk"</string>
<string name="Greek">"Gresk"</string>
<string name="German">"Tysk"</string>
<string name="French">"Fransk"</string>
<string name="Filipino">"Filipinsk"</string>
<string name="English">"Engelsk"</string>
<string name="Egyptian">"Egyptisk"</string>
<string name="Danish">"Dansk"</string>
<string name="Chinese">"Kinesisk"</string>
<string name="British">"Britisk"</string>
<string name="Brazilian">"Brasiliansk"</string>
<string name="American">"Amerikansk"</string>
<string name="_All_Cuisines_2hjCp9">"Alle kjøkken"</string>
<string name="Cuisines">"Kjøkken"</string>
<string name="Cuisine">"Kjøkken"</string>
<string name="_Are_you_sure_you_want_to_remove_ZOnf22">"Er du sikker på at du vil fjerne"</string>
<string name="Units">"Enheter"</string>
<string name="_Remove_unit__2x26yq">"Fjern enhet?"</string>
<string name="_Remove_yield_unit__Z1duBWR">"Fjern utbytteenhet?"</string>
<string name="_Remove_category__2reaxz">"Fjern kategori?"</string>
<string name="_Remove_cuisine__22ftcL">"Fjern kjøkken?"</string>
<string name="_New_unit_1CVEEA">"Ny enhet"</string>
<string name="_New_cuisine_Zrvs3z">"Nytt kjøkken"</string>
<string name="Challenging">"Utfordrende"</string>
<string name="Moderate">"Moderat"</string>
<string name="Easy">"Enkelt"</string>
<string name="_Oldest_first_Z6cq4h">"Eldste først"</string>
<string name="_Newest_first_2Sb3c">"Nyeste først"</string>
<string name="_Last_updated_Z2gEbLD">"Sist oppdatert"</string>
<string name="_Difficulty_level_cSL5d">"Vanskelighetsnivå"</string>
<string name="Rating">"Vudering"</string>
<string name="_Slowest_first_hHjY6">"Tregeste først"</string>
<string name="_Quickest_first_Z1CpP7N">"Raskeste først"</string>
<string name="_Your_search_did_not_match_any_recipes_in_the_filtered_result_1TV6QQ">"Fant ingen slike oppskrifter"</string>
<string name="_Recipe_not_found_2qGveM">"Fant ikke oppskrift"</string>
<string name="_Reset_successful_YxqWK">"Tilbakestilt"</string>
<string name="_Reset_units_list_msRS3">"TIlbakestill enhetslister"</string>
<string name="_Reset_yield_units_list_ZjouMk">"Tilbakestill utbytteenhetsliste"</string>
<string name="_Reset_categories_list_Z1JmKra">"Tilbakestill kategoriliste"</string>
<string name="_Reset_cuisines_list_1kWL8I">"Tilbakestill kjøkkenliste"</string>
<string name="_Resetting_a_list_will_NOT_delete_your_existing_entries_but_only_restores_the_deleted_default_entries__Z28mk0h">"TIlbakestilling av lister gjenoppretter kun forvalgte oppføringer. Eksisterende oppføringer slettes ikke."</string>
<string name="Reset">"Tilbakestill"</string>
<string name="_Helps_you_choose_what_to_cook_when_you_can_t_decide_muiMv">"Hjelper deg å velge hva du skal lage når du ikke kan bestemme deg"</string>
<string name="_Shake_to_view_random_recipe_ZTK9F2">"Rist for å vise tilfeldig oppskrift"</string>
<string name="Options">"Innstillinger"</string>
<string name="_User_guide_2uDJCF">"Brukerguide"</string>
<string name="_Privacy_policy_Zb4ht5">"Personvernspraksis"</string>
<string name="_View_on_GitHub_Z2qOqmx">"Vis på GitHub"</string>
<string name="Translator">"Oversatt av"</string>
<string name="Contributors">"Bidragsytere"</string>
<string name="_Shared_via_EnRecipes__Get_it_on_Play_Store_or_F_Droid__Z2oTOK1">"Delt via EnRecipes. Skaff de på F-Droid eller IzzyOnDroid."</string>
<string name="_Permission_denied_Z7wlWK">"Tilgang nektet"</string>
<string name="_Import_successful_2bLM3e">"Importert"</string>
<string name="_Verifying____cS102">"Bekrefter …"</string>
<string name="_long_time_ago_1nwlFA">"for lenge siden"</string>
<string name="_months_ago_Z1TsskA">"måneder siden"</string>
<string name="_weeks_ago_Z2sT1GA">"uker siden"</string>
<string name="_days_ago_2iCYkm">"dager siden"</string>
<string name="yesterday">"i går"</string>
<string name="today">"i dag"</string>
<string name="_You_tried_this_recipe__ZUJOl3">"Du har prøvd denne oppskriften:"</string>
<string name="snacks">"snacks"</string>
<string name="dinner">"middag"</string>
<string name="lunch">"lunsj"</string>
<string name="breakfast">"frokost"</string>
<string name="_Crop_photo_1VL04J">"Beskjær bilde"</string>
<string name="_REPLACE_PHOTO_ZLHhwH">"Erstatt bilde"</string>
<string name="_Recipe_photo_eqm9B">"Oppskriftsbilde"</string>
<string name="_EnRecipes_requires_storage_permission_in_order_to_set_recipe_photo__23OnNT">"Innvilg lagringstilgang for å sette oppskriftsbilde."</string>
<string name="Required">"Påkrevd"</string>
<string name="_New_category_Weg73">"Ny kategori"</string>
<string name="_New_yield_unit_1Oevd2">"Ny utbytteenhet"</string>
<string name="_Remove_note__2wyMVE">"Fjern anmerkning?"</string>
<string name="_Remove_combination__1dr2LS">"Fjern kombinasjon?"</string>
<string name="_Remove_instruction__vkJfi">"Fjern instruksjon?"</string>
<string name="_Remove_ingredient__2puvMO">"Fjern indigrediens?"</string>
<string name="_KEEP_EDITING_1o9uy3">"Rediger videre"</string>
<string name="DISCARD">"Forkast"</string>
<string name="_Are_you_sure_you_want_to_discard_unsaved_changes_to_this_recipe__Z1G7sVC">"Er du sikker på at du vil forkaste alle ulagrede endringer i denne oppskriften?"</string>
<string name="_Unsaved_changes_9fqb4">"Ulagrede endringer"</string>
<string name="Search">"Søk"</string>
<string name="_Are_you_sure_you_want_to_delete_the_recipe_29DH9w">"Er du sikker på at du vil slette oppskrift"</string>
<string name="DELETE">"Slett"</string>
<string name="_Delete_recipe__Z2tMYtE">"Slett oppskrift?"</string>
<string name="_Removed_from_Try_Later_1h5Bkp">"Fjernet fra prøv senere"</string>
<string name="_Added_to_Try_Later_Z1gaF37">"Lagt til for senere bruk"</string>
<string name="_Removed_from_Favourites_Z5k7LR">"Fjernet fra favoritter"</string>
<string name="_Added_to_Favourites_2mzllO">"Lagt til i favoritter"</string>
<string name="_Add_at_least_one_recipe_to_perform_a_backup_17xYaH">"Legg til minst én oppskrift for å utføre en sikkerhetskopi"</string>
<string name="_EnRecipes_requires_storage_permission_in_order_to_backup_your_data_to_this_device__2cbvIq">"Innvilg lagringstilgang for å sikkerhetskopiere dataen din til enheten."</string>
<string name="CONTINUE">"Fortsett"</string>
<string name="_NOT_NOW_Z1HD7qX">"Ikke nå"</string>
<string name="_EnRecipes_requires_storage_permission_in_order_to_import_your_data_from_a_previous_backup__1CKjb7">"Innvilg lagringstilgang for å importere dataen din fra en tidligere sikkerhetskopi."</string>
<string name="_Grant_permission_Z1UQBuh">"Innvilg tilgang"</string>
<string name="_EnRecipes_needs_to_be_restarted_for_the_app_language_to_take_effect__ZWGUtY">"Start programmet på ny for å bruke nytt språk."</string>
<string name="_EnRecipes_needs_to_be_restarted_for_the_theme_change_to_take_effect__2kU319">"Start programmet ny for å ikle ny drakt."</string>
<string name="RESTART">"Omstart"</string>
<string name="_Restart_required_Z22YINL">"Omstart kreves"</string>
<string name="SET">"Sett"</string>
<string name="_ADD_NEW_Zv8FjM">"Legg til ny"</string>
<string name="Share">"Del"</string>
<string name="Overview">"Oversikt"</string>
<string name="Recipe">"Oppskrift"</string>
<string name="Photo">"Bilde"</string>
<string name="min">"min"</string>
<string name="hr">"t"</string>
<string name="_My_Healthy_Recipe_Z1EqB8f">"Min sunne oppskrift"</string>
<string name="_Nothing_here__Add_some_recipes_and_try_again__Z25A7Q">"Legg til oppskrifter for å se dem her."</string>
<string name="_Select_a_recipe_2lL8x2">"Velg en oppskrift"</string>
<string name="ADD">"Legg til"</string>
<string name="REMOVE">"Fjern"</string>
<string name="CANCEL">"Avbryt"</string>
<string name="_Sort_by_Zq01TF">"Sorter etter"</string>
<string name="Step">"Trinn"</string>
<string name="Item">"Element"</string>
<string name="_ADD_NOTE_ZyNw1r">"Legg til anmerkning"</string>
<string name="Notes">"Anmerkninger"</string>
<string name="Note">"Anmerkning"</string>
<string name="_ADD_COMBINATION_2q9HWq">"Legg til kombinasjon"</string>
<string name="Combinations">"Kombinasjoner"</string>
<string name="_ADD_STEP_ZyMPOe">"Legg til trinn"</string>
<string name="Instructions">"Instruksjoner"</string>
<string name="Instruction">"Instruksjon"</string>
<string name="_ADD_INGREDIENT_29sSLU">"Legg til indigrediens"</string>
<string name="Ingredients">"Indigredienser"</string>
<string name="Ingredient">"Indigrediens"</string>
<string name="_Yield_measured_in_2OoRT">"Avkastning målt i"</string>
<string name="_Yield_quantity_ZHx3jw">"Kapasitet antall"</string>
<string name="_Cooking_time_2w2fEw">"Tilberedningstid"</string>
<string name="_Preparation_time_15BfxT">"Forberedelsestid"</string>
<string name="Category">"Kategori"</string>
<string name="Title">"Tittel"</string>
<string name="_Edit_recipe_ZPvwDP">"Rediger oppskrift"</string>
<string name="_New_recipe_Z1Y2YKJ">"Ny oppskrift"</string>
<string name="_Vishnu_Raghav_B_1qnRnC">"Vishnu Raghav B."</string>
<string name="Author">"Utvikler"</string>
<string name="_for_reporting_issues__suggestions_and_feedback_Z1JUmyE">"for innrapportering av feil, forslag og tilbakemeldinger"</string>
<string name="_Join_the_Telegram_group_ZAXQgc">"Ta del i Telegram-gruppen"</string>
<string name="Version">"Versjon"</string>
<string name="_Supports_full_backups_exported_by_this_app_ZYs4f2">"Støtter fulle sikkerhetskopier eksporter av programmet"</string>
<string name="_Import_from_backup_Z28HsC0">"Importer fra sikkerhetskopi"</string>
<string name="_Generates_a_zip_file_that_contains_all_your_data__This_file_can_be_imported_back__Z19m3xY">"Lager en ZIP-fil som har all din data. Den kan du importere andre steder."</string>
<string name="_Export_a_full_backup_TJfra">"Eksporter en full sikkerhetskopi"</string>
<string name="Database">"Database"</string>
<string name="Dark">"Mørk"</string>
<string name="Light">"Lys"</string>
<string name="Theme">"Drakt"</string>
<string name="_System_default_Z1jruVS">"Systemforvalg"</string>
<string name="_App_language_DzFsk">"Programspråk"</string>
<string name="Interface">"Grensesnitt"</string>
<string name="_Your_search_did_not_match_any_recipes_in_your_try_later_list_Z2wWbA1">"Fant ingen slike oppskrifter for senere bruk"</string>
<string name="_Your_search_did_not_match_any_recipes_in_your_favourites_1ylvHN">"Fant ingen slike oppskrifter i dine favoritter"</string>
<string name="_Your_search_did_not_match_any_recipes_in_this_category_P7J4V">"Fant ingen slike oppskrifter i denne kategorien"</string>
<string name="_Your_search_did_not_match_any_recipes_Z1eppHH">"Fant ingen slike oppskrifter"</string>
<string name="_No_recipes_found_Z125IxD">"Fant ingen oppskrifter"</string>
<string name="_Category_looks_empty_ZAK5qU">"Tom kategori"</string>
<string name="_Recipes_you_mark_as_favourite_will_be_listed_here_Z1iIHgY">"Oppskrifter du merker som favoritter vil vises her"</string>
<string name="_No_favourites_yet_aPSoG">"Ingen favoritter enda"</string>
<string name="_Recipes_you_mark_as_try_later_will_be_listed_here_Z1ITwPV">"Oppskrifter du vil prøve senere vil vises her"</string>
<string name="_All_done__72KYl">"Ferdig."</string>
<string name="_Use_the_pencil_button_to_add_some_notes_Z1wyyeb">"Bruk blyant-knappen for å legge til nonen anmerkninger"</string>
<string name="_Use_the_pencil_button_to_add_some_combinations_6NhFS">"Bruk blyant-knappen for å legge til noen kombinasjoner"</string>
<string name="_Use_the_pencil_button_to_add_some_instructions_ZAi0PH">"Bruk blyant-knappen for å legge instruksjoner"</string>
<string name="_Use_the_pencil_button_to_add_some_ingredients_Z1xOX8S">"Bruk blyant-knappen for å legge til indigredienser"</string>
<string name="_Use_the_plus_button_to_add_one_1h20ms">"Bruk +knappen for å legge til en"</string>
<string name="_Start_adding_your_recipes__rwnVV">"Legg til dine oppskrifter."</string>
<string name="large">"stor"</string>
<string name="medium">"middels"</string>
<string name="small">"liten"</string>
<string name="stick">"stang"</string>
<string name="dozen">"dusin"</string>
<string name="drop">"dråpe"</string>
<string name="pinch">"klype"</string>
<string name="piece">"stykke"</string>
<string name="clove">"fedd"</string>
<string name="leaf">"blad"</string>
<string name="in">"in"</string>
<string name="cm">"cm"</string>
<string name="kg">"kg"</string>
<string name="g">"g"</string>
<string name="mg">"mg"</string>
<string name="lb">"lb"</string>
<string name="oz">"uns"</string>
<string name="l">"l"</string>
<string name="ml">"ml"</string>
<string name="gal">"gal"</string>
<string name="qt">"¼"</string>
<string name="pt">"pt"</string>
<string name="cup">"kopp"</string>
<string name="_fl_oz_72kqu">"flytende unse"</string>
<string name="tbsp">"ss"</string>
<string name="dsp">"bs"</string>
<string name="tsp">"ts"</string>
<string name="Unit">"Enhet"</string>
<string name="unit">"enhet"</string>
<string name="Loaf">"Leiv"</string>
<string name="Patty">"Burger"</string>
<string name="Roll">"Rull"</string>
<string name="Litre">"Liter"</string>
<string name="Millilitre">"Milliliter"</string>
<string name="Gallon">"Gallon"</string>
<string name="Cup">"Kopp"</string>
<string name="Kilogram">"Kilo"</string>
<string name="Gram">"Gram"</string>
<string name="Pound">"Pund"</string>
<string name="Ounce">"Unse"</string>
<string name="_Fluid_Ounce_bd10L">"Flytende unse"</string>
<string name="Tablespoon">"Spiseskje"</string>
<string name="Teaspoon">"Teskje"</string>
<string name="Piece">"Stykke"</string>
<string name="Serving">"Posjon"</string>
<string name="Vegetarian">"Vegetar"</string>
<string name="Vegan">"Vegansk"</string>
<string name="Undefined">"Udefinert"</string>
<string name="Soups">"Supper"</string>
<string name="Snacks">"Snacks"</string>
<string name="_Side_dishes_Z1Et4Vg">"Sideretter"</string>
<string name="Seafood">"Sjømat"</string>
<string name="Sauces">"Sauser"</string>
<string name="Salads">"Salater"</string>
<string name="Rice">"Ris"</string>
<string name="Poultry">"Fjerkre"</string>
<string name="Pasta">"Pasta"</string>
<string name="Noodles">"Nudler"</string>
<string name="Meat">"Kjøtt"</string>
<string name="_Main_dishes_u6RGQ">"Hovedretter"</string>
<string name="Lunch">"Lunsj"</string>
<string name="Healthy">"Sunt"</string>
<string name="Drinks">"Drinker"</string>
<string name="Dinner">"Middag"</string>
<string name="Desserts">"Desserter"</string>
<string name="Breakfast">"Frokost"</string>
<string name="Breads">"Brød"</string>
<string name="Beverages">"Drikke"</string>
<string name="Barbecue">"Grill"</string>
<string name="Appetizers">"Forretter"</string>
<string name="About">"Om"</string>
<string name="Settings">"Innstillinger"</string>
<string name="Categories">"Kategorier"</string>
<string name="_Meal_Planner_2aq4oj">"Måltidsplanlegger"</string>
<string name="Favourites">"Favoritter"</string>
<string name="_Try_Later_If7PG">"Prøv igjen senere"</string>
<string name="EnRecipes">"EnRecipes"</string>
<string name="_app_name_1k3Sbz">"EnRecipes"</string>
<string name="app_name">"EnRecipes"</string>
<string name="title_activity_kimera">"EnRecipes"</string>
<string name="trySer">"SEARCH IN ALL THE RECIPES?"</string>
<string name="help">"Help"</string>
<string name="appInfo">"EnRecipes is an open source, privacy-friendly digital cookbook that lets you create, manage and share your recipes"</string>
<string name="donate">"Donate"</string>
<string name="invFile">"Invalid file"</string>
<string name="buSuc">"Backup saved successfully to the Download folder"</string>
<string name="buMod">"The backup file was modified elsewhere"</string>
<string name="buEmp">"The backup file is empty"</string>
<string name="buInc">"Malformed or corrupt backup file"</string>
<string name="impFail">"Import failed"</string>
<string name="recRm">"Recipe removed"</string>
<string name="untRec">"Untitled Recipe"</string>
<string name="stars">"Star rating"</string>
<string name="_Filtered_recipes_Z1alhhu">"Filtered recipes"</string>
<string name="recU">"recipes updated"</string>
<string name="recE">"recipes already exists"</string>
<string name="recI">"recipes imported"</string>
<string name="recF">"recipes found"</string>
<string name="impSuc">"Import success"</string>
<string name="tsInfo">"separate with spaces"</string>
<string name="ts">"Tags"</string>
<string name="noTs">"No tags available"</string>
<string name="allTs">"All Tags"</string>
<string name="allCats">"All Categories"</string>
<string name="allCuis">"All Cuisines"</string>
<string name="cuis">"Cuisines"</string>
<string name="cui">"Cuisine"</string>
<string name="newUnit">"New unit"</string>
<string name="newCui">"New cuisine"</string>
<string name="resNF">"Recipe not found"</string>
<string name="restDone">"Reset done"</string>
<string name="restInfo">"Resetting a list will delete user-created entries and restore default entries. Existing recipes will not be affected."</string>
<string name="restUL">"Reset unit list"</string>
<string name="restYUL">"Reset yield unit list"</string>
<string name="restCatL">"Reset category list"</string>
<string name="restCuiL">"Reset cuisine list"</string>
<string name="rest">"Reset"</string>
<string name="sVwInfo">"Helps you choose what to cook when you can\'t decide"</string>
<string name="sVw">"Shake to view random recipe"</string>
<string name="opts">"Options"</string>
<string name="guide">"User guide"</string>
<string name="priv">"Privacy policy"</string>
<string name="gh">"View on GitHub"</string>
<string name="appCrd">"Shared via EnRecipes. Get it on F-Droid, IzzyOnDroid or the Play Store."</string>
<string name="vrfy">"Verifying"</string>
<string name="ltAgo">"a long time ago"</string>
<string name="mAgo">"months ago"</string>
<string name="wAgo">"weeks ago"</string>
<string name="dAgo">"days ago"</string>
<string name="triedInfo">"You tried this recipe:"</string>
<string name="cPic">"Crop photo"</string>
<string name="repBtn">"REPLACE PHOTO"</string>
<string name="recPic">"Recipe photo"</string>
<string name="req">"Required"</string>
<string name="nwCat">"New category"</string>
<string name="nwYiU">"New yield unit"</string>
<string name="rmCmb">"Combination removed"</string>
<string name="rmN">"Note removed"</string>
<string name="rmIns">"Instruction removed"</string>
<string name="rmIng">"Ingredient removed"</string>
<string name="kEdit">"KEEP EDITING"</string>
<string name="disBtn">"DISCARD"</string>
<string name="disc">"This recipe has unsaved changes. What would you like to do?"</string>
<string name="unsaved">"Unsaved changes"</string>
<string name="ser">"Search"</string>
<string name="dBtn">"DELETE"</string>
<string name="delRecInfo">"You are about to permanently delete the recipe:"</string>
<string name="delRec">"Delete confirmation"</string>
<string name="conf">"Confirm"</string>
<string name="rmTry">"Removed from Try Later"</string>
<string name="aTry">"Added to Try Later"</string>
<string name="unfavd">"Removed from Favourites"</string>
<string name="favd">"Added to Favourites"</string>
<string name="aFBu">"Add a recipe to perform a backup"</string>
<string name="dend">"Access denied"</string>
<string name="conBtn">"CONTINUE"</string>
<string name="nNBtn">"NOT NOW"</string>
<string name="reqAcc">"EnRecipes requires storage permission in order to set recipe photo, export and import data"</string>
<string name="grant">"Grant access"</string>
<string name="nLangInfo">"Restart EnRecipes to use the new language"</string>
<string name="nThmInfo">"Restart EnRecipes to use the new theme"</string>
<string name="rst">"RESTART"</string>
<string name="appRst">"App restart required"</string>
<string name="aNBtn">"ADD NEW"</string>
<string name="ovw">"Overview"</string>
<string name="fil">"Recipe as file"</string>
<string name="rec">"Recipe as text"</string>
<string name="pht">"Recipe photo"</string>
<string name="shr">"Share"</string>
<string name="recTitle">"My Healthy Recipe"</string>
<string name="recListEmp">"Nothing here! Add some recipes and try again"</string>
<string name="selRec">"Select recipe"</string>
<string name="aBtn">"ADD"</string>
<string name="rmLIInfo">"Existing recipes will not be affected"</string>
<string name="rmUInfo">"You are about to remove the unit:"</string>
<string name="rmYUInfo">"You are about to remove the yield unit:"</string>
<string name="rmCatInfo">"You are about to remove the category:"</string>
<string name="rmCuiInfo">"You are about to remove the cuisine:"</string>
<string name="rBtn">"REMOVE"</string>
<string name="cBtn">"CANCEL"</string>
<string name="srt">"Sort by"</string>
<string name="stp">"Step"</string>
<string name="it">"Item"</string>
<string name="aNoBtn">"ADD NOTE"</string>
<string name="nos">"Notes"</string>
<string name="no">"Note"</string>
<string name="addCmbBtn">"ADD COMBINATION"</string>
<string name="cmbs">"Combinations"</string>
<string name="cmb">"Combination"</string>
<string name="aStpBtn">"ADD STEP"</string>
<string name="inss">"Instructions"</string>
<string name="ins">"Instruction"</string>
<string name="aIngBtn">"ADD INGREDIENT"</string>
<string name="ings">"Ingredients"</string>
<string name="ing">"Ingredient"</string>
<string name="yieldU">"Yield unit"</string>
<string name="yieldQ">"Yield quantity"</string>
<string name="cookT">"Cooking time"</string>
<string name="prepT">"Preparation time"</string>
<string name="cat">"Category"</string>
<string name="title">"Title"</string>
<string name="editRec">"Edit recipe"</string>
<string name="newRec">"New recipe"</string>
<string name="tgInfo">"For reporting issues, suggestions and feedback"</string>
<string name="joinTG">"Join the Telegram group"</string>
<string name="ver">"Version"</string>
<string name="impInfo">"Supports full backups exported by this app"</string>
<string name="impBu">"Import data"</string>
<string name="buInfo">"Generates a ZIP file containing all your data that can be imported back"</string>
<string name="expBu">"Export full backup"</string>
<string name="db">"Database"</string>
<string name="sysDef">"System default"</string>
<string name="lang">"Language"</string>
<string name="intf">"Interface"</string>
<string name="noRecsInFtr">"No recipes match your search in the Filtered recipes"</string>
<string name="noRecsInFavs">"No recipes match your search in the Favourites list"</string>
<string name="noRecsInTL">"No recipes match your search in the Try Later list"</string>
<string name="noRecs">"No recipes match your search"</string>
<string name="fsList">"Your favourite recipes are listed here"</string>
<string name="noFavs">"No favourites yet"</string>
<string name="tLInfo">"Recipes you want to try later are listed here"</string>
<string name="aD">"All done!"</string>
<string name="pANo">"Use the pencil button to add notes"</string>
<string name="pACmb">"Use the pencil button to add combinations"</string>
<string name="pAIns">"Use the pencil button to add instructions"</string>
<string name="pAIng">"Use the pencil button to add ingredients"</string>
<string name="plsAdd">"Use the plus button to add one"</string>
<string name="strAdd">"Start adding your recipes!"</string>
<string name="grocery">"Grocery List"</string>
<string name="planner">"Meal Planner"</string>
<string name="favourites">"Favourites"</string>
<string name="trylater">"Try Later"</string>
</resources>

View file

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="_Import_failed_Z1dbs6t">"Importeren mislukt"</string>
<string name="_Invalid_file__Z2bRAst">"Invalid file:"</string>
<string name="_Backup_file_has_been_modified_externally__Wjiqq">"Backup file has been modified externally."</string>
<string name="_Backup_file_seems_empty__Zd7qfR">"Backup file seems empty."</string>
@ -94,7 +95,7 @@
<string name="_Shared_via_EnRecipes__Get_it_on_Play_Store_or_F_Droid__Z2oTOK1">"Gedeeld via EnRecipes. Haal het in de Play Store of bij F-Droid."</string>
<string name="_Permission_denied_Z7wlWK">"toestemming geweigerd"</string>
<string name="_Import_successful_2bLM3e">"Succesvol importeren"</string>
<string name="_Verifying____cS102">"Het controleren..."</string>
<string name="_Verifying____cS102">"Het controleren"</string>
<string name="_long_time_ago_1nwlFA">"lang geleden"</string>
<string name="_months_ago_Z1TsskA">"voorgaande maanden"</string>
<string name="_weeks_ago_Z2sT1GA">"voorgaande weken"</string>
@ -199,7 +200,7 @@
<string name="_Category_looks_empty_ZAK5qU">"Categorie is leeg"</string>
<string name="_Recipes_you_mark_as_favourite_will_be_listed_here_Z1iIHgY">"Recepten die u als favoriet markeert staan hier vermeld"</string>
<string name="_No_favourites_yet_aPSoG">"Nog geen favorieten"</string>
<string name="_Recipes_you_mark_as_try_later_will_be_listed_here_Z1ITwPV">"Recepten die gemarkeerd zijn met \'Try later\' staan hier vermeld."</string>
<string name="_Recipes_you_mark_as_try_later_will_be_listed_here_Z1ITwPV">"Recepten die u markeert als proberen later zal hier worden vermeld"</string>
<string name="_All_done__72KYl">"Alles klaar!"</string>
<string name="_Use_the_pencil_button_to_add_some_notes_Z1wyyeb">"Gebruik het potloodicoon om wat aantekeningen toe te voegen"</string>
<string name="_Use_the_pencil_button_to_add_some_combinations_6NhFS">"Gebruik het potloodicoon om enkele combinaties toe te voegen"</string>
@ -287,5 +288,158 @@
<string name="_app_name_1k3Sbz">"EnRecipes"</string>
<string name="app_name">"EnRecipes"</string>
<string name="title_activity_kimera">"EnRecipes"</string>
<string name="_Import_failed_Z1dbs6t">"Import failed"</string>
<string name="trySer">"SEARCH IN ALL THE RECIPES?"</string>
<string name="help">"Help"</string>
<string name="appInfo">"EnRecipes is an open source, privacy-friendly digital cookbook that lets you create, manage and share your recipes"</string>
<string name="donate">"Donate"</string>
<string name="invFile">"Invalid file"</string>
<string name="buSuc">"Backup saved successfully to the Download folder"</string>
<string name="buMod">"The backup file was modified elsewhere"</string>
<string name="buEmp">"The backup file is empty"</string>
<string name="buInc">"Malformed or corrupt backup file"</string>
<string name="impFail">"Import failed"</string>
<string name="recRm">"Recipe removed"</string>
<string name="untRec">"Untitled Recipe"</string>
<string name="stars">"Star rating"</string>
<string name="_Filtered_recipes_Z1alhhu">"Filtered recipes"</string>
<string name="recU">"recipes updated"</string>
<string name="recE">"recipes already exists"</string>
<string name="recI">"recipes imported"</string>
<string name="recF">"recipes found"</string>
<string name="impSuc">"Import success"</string>
<string name="tsInfo">"separate with spaces"</string>
<string name="ts">"Tags"</string>
<string name="noTs">"No tags available"</string>
<string name="allTs">"All Tags"</string>
<string name="allCats">"All Categories"</string>
<string name="allCuis">"All Cuisines"</string>
<string name="cuis">"Cuisines"</string>
<string name="cui">"Cuisine"</string>
<string name="newUnit">"New unit"</string>
<string name="newCui">"New cuisine"</string>
<string name="resNF">"Recipe not found"</string>
<string name="restDone">"Reset done"</string>
<string name="restInfo">"Resetting a list will delete user-created entries and restore default entries. Existing recipes will not be affected."</string>
<string name="restUL">"Reset unit list"</string>
<string name="restYUL">"Reset yield unit list"</string>
<string name="restCatL">"Reset category list"</string>
<string name="restCuiL">"Reset cuisine list"</string>
<string name="rest">"Reset"</string>
<string name="sVwInfo">"Helps you choose what to cook when you can\'t decide"</string>
<string name="sVw">"Shake to view random recipe"</string>
<string name="opts">"Options"</string>
<string name="guide">"User guide"</string>
<string name="priv">"Privacy policy"</string>
<string name="gh">"View on GitHub"</string>
<string name="appCrd">"Shared via EnRecipes. Get it on F-Droid, IzzyOnDroid or the Play Store."</string>
<string name="vrfy">"Verifying"</string>
<string name="ltAgo">"a long time ago"</string>
<string name="mAgo">"months ago"</string>
<string name="wAgo">"weeks ago"</string>
<string name="dAgo">"days ago"</string>
<string name="triedInfo">"You tried this recipe:"</string>
<string name="cPic">"Crop photo"</string>
<string name="repBtn">"REPLACE PHOTO"</string>
<string name="recPic">"Recipe photo"</string>
<string name="req">"Required"</string>
<string name="nwCat">"New category"</string>
<string name="nwYiU">"New yield unit"</string>
<string name="rmCmb">"Combination removed"</string>
<string name="rmN">"Note removed"</string>
<string name="rmIns">"Instruction removed"</string>
<string name="rmIng">"Ingredient removed"</string>
<string name="kEdit">"KEEP EDITING"</string>
<string name="disBtn">"DISCARD"</string>
<string name="disc">"This recipe has unsaved changes. What would you like to do?"</string>
<string name="unsaved">"Unsaved changes"</string>
<string name="ser">"Search"</string>
<string name="dBtn">"DELETE"</string>
<string name="delRecInfo">"You are about to permanently delete the recipe:"</string>
<string name="delRec">"Delete confirmation"</string>
<string name="conf">"Confirm"</string>
<string name="rmTry">"Removed from Try Later"</string>
<string name="aTry">"Added to Try Later"</string>
<string name="unfavd">"Removed from Favourites"</string>
<string name="favd">"Added to Favourites"</string>
<string name="aFBu">"Add a recipe to perform a backup"</string>
<string name="dend">"Access denied"</string>
<string name="conBtn">"CONTINUE"</string>
<string name="nNBtn">"NOT NOW"</string>
<string name="reqAcc">"EnRecipes requires storage permission in order to set recipe photo, export and import data"</string>
<string name="grant">"Grant access"</string>
<string name="nLangInfo">"Restart EnRecipes to use the new language"</string>
<string name="nThmInfo">"Restart EnRecipes to use the new theme"</string>
<string name="rst">"RESTART"</string>
<string name="appRst">"App restart required"</string>
<string name="aNBtn">"ADD NEW"</string>
<string name="ovw">"Overview"</string>
<string name="fil">"Recipe as file"</string>
<string name="rec">"Recipe as text"</string>
<string name="pht">"Recipe photo"</string>
<string name="shr">"Share"</string>
<string name="recTitle">"My Healthy Recipe"</string>
<string name="recListEmp">"Nothing here! Add some recipes and try again"</string>
<string name="selRec">"Select recipe"</string>
<string name="aBtn">"ADD"</string>
<string name="rmLIInfo">"Existing recipes will not be affected"</string>
<string name="rmUInfo">"You are about to remove the unit:"</string>
<string name="rmYUInfo">"You are about to remove the yield unit:"</string>
<string name="rmCatInfo">"You are about to remove the category:"</string>
<string name="rmCuiInfo">"You are about to remove the cuisine:"</string>
<string name="rBtn">"REMOVE"</string>
<string name="cBtn">"CANCEL"</string>
<string name="srt">"Sort by"</string>
<string name="stp">"Step"</string>
<string name="it">"Item"</string>
<string name="aNoBtn">"ADD NOTE"</string>
<string name="nos">"Notes"</string>
<string name="no">"Note"</string>
<string name="addCmbBtn">"ADD COMBINATION"</string>
<string name="cmbs">"Combinations"</string>
<string name="cmb">"Combination"</string>
<string name="aStpBtn">"ADD STEP"</string>
<string name="inss">"Instructions"</string>
<string name="ins">"Instruction"</string>
<string name="aIngBtn">"ADD INGREDIENT"</string>
<string name="ings">"Ingredients"</string>
<string name="ing">"Ingredient"</string>
<string name="yieldU">"Yield unit"</string>
<string name="yieldQ">"Yield quantity"</string>
<string name="cookT">"Cooking time"</string>
<string name="prepT">"Preparation time"</string>
<string name="cat">"Category"</string>
<string name="title">"Title"</string>
<string name="editRec">"Edit recipe"</string>
<string name="newRec">"New recipe"</string>
<string name="tgInfo">"For reporting issues, suggestions and feedback"</string>
<string name="joinTG">"Join the Telegram group"</string>
<string name="ver">"Version"</string>
<string name="impInfo">"Supports full backups exported by this app"</string>
<string name="impBu">"Import data"</string>
<string name="buInfo">"Generates a ZIP file containing all your data that can be imported back"</string>
<string name="expBu">"Export full backup"</string>
<string name="db">"Database"</string>
<string name="sysDef">"System default"</string>
<string name="lang">"Language"</string>
<string name="intf">"Interface"</string>
<string name="noRecsInFtr">"No recipes match your search in the Filtered recipes"</string>
<string name="noRecsInFavs">"No recipes match your search in the Favourites list"</string>
<string name="noRecsInTL">"No recipes match your search in the Try Later list"</string>
<string name="noRecs">"No recipes match your search"</string>
<string name="fsList">"Your favourite recipes are listed here"</string>
<string name="noFavs">"No favourites yet"</string>
<string name="tLInfo">"Recipes you want to try later are listed here"</string>
<string name="aD">"All done!"</string>
<string name="pANo">"Use the pencil button to add notes"</string>
<string name="pACmb">"Use the pencil button to add combinations"</string>
<string name="pAIns">"Use the pencil button to add instructions"</string>
<string name="pAIng">"Use the pencil button to add ingredients"</string>
<string name="plsAdd">"Use the plus button to add one"</string>
<string name="strAdd">"Start adding your recipes!"</string>
<string name="grocery">"Grocery List"</string>
<string name="planner">"Meal Planner"</string>
<string name="favourites">"Favourites"</string>
<string name="trylater">"Try Later"</string>
<string name="Donate">"Donate"</string>
<string name="Combination">"Combination"</string>
</resources>

View file

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="_Import_failed_Z1dbs6t">"Importeren mislukt"</string>
<string name="_Invalid_file__Z2bRAst">"Invalid file:"</string>
<string name="_Backup_file_has_been_modified_externally__Wjiqq">"Backup file has been modified externally."</string>
<string name="_Backup_file_seems_empty__Zd7qfR">"Backup file seems empty."</string>
@ -94,7 +95,7 @@
<string name="_Shared_via_EnRecipes__Get_it_on_Play_Store_or_F_Droid__Z2oTOK1">"Partilhado via EnRecipes. Download na Play Store ou F-Droid."</string>
<string name="_Permission_denied_Z7wlWK">"Permissão recusada"</string>
<string name="_Import_successful_2bLM3e">"Importado com sucesso"</string>
<string name="_Verifying____cS102">"A Verificar..."</string>
<string name="_Verifying____cS102">"A Verificar"</string>
<string name="_long_time_ago_1nwlFA">"há muito tempo"</string>
<string name="_months_ago_Z1TsskA">"meses atrás"</string>
<string name="_weeks_ago_Z2sT1GA">"semanas atrás"</string>
@ -287,5 +288,158 @@
<string name="_app_name_1k3Sbz">"EnRecipes"</string>
<string name="app_name">"EnRecipes"</string>
<string name="title_activity_kimera">"EnRecipes"</string>
<string name="_Import_failed_Z1dbs6t">"Import failed"</string>
<string name="trySer">"SEARCH IN ALL THE RECIPES?"</string>
<string name="help">"Help"</string>
<string name="appInfo">"EnRecipes is an open source, privacy-friendly digital cookbook that lets you create, manage and share your recipes"</string>
<string name="donate">"Donate"</string>
<string name="invFile">"Invalid file"</string>
<string name="buSuc">"Backup saved successfully to the Download folder"</string>
<string name="buMod">"The backup file was modified elsewhere"</string>
<string name="buEmp">"The backup file is empty"</string>
<string name="buInc">"Malformed or corrupt backup file"</string>
<string name="impFail">"Import failed"</string>
<string name="recRm">"Recipe removed"</string>
<string name="untRec">"Untitled Recipe"</string>
<string name="stars">"Star rating"</string>
<string name="_Filtered_recipes_Z1alhhu">"Filtered recipes"</string>
<string name="recU">"recipes updated"</string>
<string name="recE">"recipes already exists"</string>
<string name="recI">"recipes imported"</string>
<string name="recF">"recipes found"</string>
<string name="impSuc">"Import success"</string>
<string name="tsInfo">"separate with spaces"</string>
<string name="ts">"Tags"</string>
<string name="noTs">"No tags available"</string>
<string name="allTs">"All Tags"</string>
<string name="allCats">"All Categories"</string>
<string name="allCuis">"All Cuisines"</string>
<string name="cuis">"Cuisines"</string>
<string name="cui">"Cuisine"</string>
<string name="newUnit">"New unit"</string>
<string name="newCui">"New cuisine"</string>
<string name="resNF">"Recipe not found"</string>
<string name="restDone">"Reset done"</string>
<string name="restInfo">"Resetting a list will delete user-created entries and restore default entries. Existing recipes will not be affected."</string>
<string name="restUL">"Reset unit list"</string>
<string name="restYUL">"Reset yield unit list"</string>
<string name="restCatL">"Reset category list"</string>
<string name="restCuiL">"Reset cuisine list"</string>
<string name="rest">"Reset"</string>
<string name="sVwInfo">"Helps you choose what to cook when you can\'t decide"</string>
<string name="sVw">"Shake to view random recipe"</string>
<string name="opts">"Options"</string>
<string name="guide">"User guide"</string>
<string name="priv">"Privacy policy"</string>
<string name="gh">"View on GitHub"</string>
<string name="appCrd">"Shared via EnRecipes. Get it on F-Droid, IzzyOnDroid or the Play Store."</string>
<string name="vrfy">"Verifying"</string>
<string name="ltAgo">"a long time ago"</string>
<string name="mAgo">"months ago"</string>
<string name="wAgo">"weeks ago"</string>
<string name="dAgo">"days ago"</string>
<string name="triedInfo">"You tried this recipe:"</string>
<string name="cPic">"Crop photo"</string>
<string name="repBtn">"REPLACE PHOTO"</string>
<string name="recPic">"Recipe photo"</string>
<string name="req">"Required"</string>
<string name="nwCat">"New category"</string>
<string name="nwYiU">"New yield unit"</string>
<string name="rmCmb">"Combination removed"</string>
<string name="rmN">"Note removed"</string>
<string name="rmIns">"Instruction removed"</string>
<string name="rmIng">"Ingredient removed"</string>
<string name="kEdit">"KEEP EDITING"</string>
<string name="disBtn">"DISCARD"</string>
<string name="disc">"This recipe has unsaved changes. What would you like to do?"</string>
<string name="unsaved">"Unsaved changes"</string>
<string name="ser">"Search"</string>
<string name="dBtn">"DELETE"</string>
<string name="delRecInfo">"You are about to permanently delete the recipe:"</string>
<string name="delRec">"Delete confirmation"</string>
<string name="conf">"Confirm"</string>
<string name="rmTry">"Removed from Try Later"</string>
<string name="aTry">"Added to Try Later"</string>
<string name="unfavd">"Removed from Favourites"</string>
<string name="favd">"Added to Favourites"</string>
<string name="aFBu">"Add a recipe to perform a backup"</string>
<string name="dend">"Access denied"</string>
<string name="conBtn">"CONTINUE"</string>
<string name="nNBtn">"NOT NOW"</string>
<string name="reqAcc">"EnRecipes requires storage permission in order to set recipe photo, export and import data"</string>
<string name="grant">"Grant access"</string>
<string name="nLangInfo">"Restart EnRecipes to use the new language"</string>
<string name="nThmInfo">"Restart EnRecipes to use the new theme"</string>
<string name="rst">"RESTART"</string>
<string name="appRst">"App restart required"</string>
<string name="aNBtn">"ADD NEW"</string>
<string name="ovw">"Overview"</string>
<string name="fil">"Recipe as file"</string>
<string name="rec">"Recipe as text"</string>
<string name="pht">"Recipe photo"</string>
<string name="shr">"Share"</string>
<string name="recTitle">"My Healthy Recipe"</string>
<string name="recListEmp">"Nothing here! Add some recipes and try again"</string>
<string name="selRec">"Select recipe"</string>
<string name="aBtn">"ADD"</string>
<string name="rmLIInfo">"Existing recipes will not be affected"</string>
<string name="rmUInfo">"You are about to remove the unit:"</string>
<string name="rmYUInfo">"You are about to remove the yield unit:"</string>
<string name="rmCatInfo">"You are about to remove the category:"</string>
<string name="rmCuiInfo">"You are about to remove the cuisine:"</string>
<string name="rBtn">"REMOVE"</string>
<string name="cBtn">"CANCEL"</string>
<string name="srt">"Sort by"</string>
<string name="stp">"Step"</string>
<string name="it">"Item"</string>
<string name="aNoBtn">"ADD NOTE"</string>
<string name="nos">"Notes"</string>
<string name="no">"Note"</string>
<string name="addCmbBtn">"ADD COMBINATION"</string>
<string name="cmbs">"Combinations"</string>
<string name="cmb">"Combination"</string>
<string name="aStpBtn">"ADD STEP"</string>
<string name="inss">"Instructions"</string>
<string name="ins">"Instruction"</string>
<string name="aIngBtn">"ADD INGREDIENT"</string>
<string name="ings">"Ingredients"</string>
<string name="ing">"Ingredient"</string>
<string name="yieldU">"Yield unit"</string>
<string name="yieldQ">"Yield quantity"</string>
<string name="cookT">"Cooking time"</string>
<string name="prepT">"Preparation time"</string>
<string name="cat">"Category"</string>
<string name="title">"Title"</string>
<string name="editRec">"Edit recipe"</string>
<string name="newRec">"New recipe"</string>
<string name="tgInfo">"For reporting issues, suggestions and feedback"</string>
<string name="joinTG">"Join the Telegram group"</string>
<string name="ver">"Version"</string>
<string name="impInfo">"Supports full backups exported by this app"</string>
<string name="impBu">"Import data"</string>
<string name="buInfo">"Generates a ZIP file containing all your data that can be imported back"</string>
<string name="expBu">"Export full backup"</string>
<string name="db">"Database"</string>
<string name="sysDef">"System default"</string>
<string name="lang">"Language"</string>
<string name="intf">"Interface"</string>
<string name="noRecsInFtr">"No recipes match your search in the Filtered recipes"</string>
<string name="noRecsInFavs">"No recipes match your search in the Favourites list"</string>
<string name="noRecsInTL">"No recipes match your search in the Try Later list"</string>
<string name="noRecs">"No recipes match your search"</string>
<string name="fsList">"Your favourite recipes are listed here"</string>
<string name="noFavs">"No favourites yet"</string>
<string name="tLInfo">"Recipes you want to try later are listed here"</string>
<string name="aD">"All done!"</string>
<string name="pANo">"Use the pencil button to add notes"</string>
<string name="pACmb">"Use the pencil button to add combinations"</string>
<string name="pAIns">"Use the pencil button to add instructions"</string>
<string name="pAIng">"Use the pencil button to add ingredients"</string>
<string name="plsAdd">"Use the plus button to add one"</string>
<string name="strAdd">"Start adding your recipes!"</string>
<string name="grocery">"Grocery List"</string>
<string name="planner">"Meal Planner"</string>
<string name="favourites">"Favourites"</string>
<string name="trylater">"Try Later"</string>
<string name="Donate">"Donate"</string>
<string name="Combination">"Combination"</string>
</resources>

View file

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="_Import_failed_Z1dbs6t">"Импорт не удался"</string>
<string name="_Invalid_file__Z2bRAst">"Invalid file:"</string>
<string name="_Backup_file_has_been_modified_externally__Wjiqq">"Backup file has been modified externally."</string>
<string name="_Backup_file_seems_empty__Zd7qfR">"Backup file seems empty."</string>
@ -94,7 +95,7 @@
<string name="_Shared_via_EnRecipes__Get_it_on_Play_Store_or_F_Droid__Z2oTOK1">"Отправлено через EnRecipes. Скачайте его в Play Store или F-Droid."</string>
<string name="_Permission_denied_Z7wlWK">"В доступе отказано"</string>
<string name="_Import_successful_2bLM3e">"Импортировано успешно"</string>
<string name="_Verifying____cS102">"Проверка ..."</string>
<string name="_Verifying____cS102">"Проверка "</string>
<string name="_long_time_ago_1nwlFA">"давно"</string>
<string name="_months_ago_Z1TsskA">"несколько месяцев назад"</string>
<string name="_weeks_ago_Z2sT1GA">"несколько недель назад"</string>
@ -287,5 +288,158 @@
<string name="_app_name_1k3Sbz">"EnRecipes"</string>
<string name="app_name">"EnRecipes"</string>
<string name="title_activity_kimera">"EnRecipes"</string>
<string name="_Import_failed_Z1dbs6t">"Import failed"</string>
<string name="trySer">"SEARCH IN ALL THE RECIPES?"</string>
<string name="help">"Help"</string>
<string name="appInfo">"EnRecipes is an open source, privacy-friendly digital cookbook that lets you create, manage and share your recipes"</string>
<string name="donate">"Donate"</string>
<string name="invFile">"Invalid file"</string>
<string name="buSuc">"Backup saved successfully to the Download folder"</string>
<string name="buMod">"The backup file was modified elsewhere"</string>
<string name="buEmp">"The backup file is empty"</string>
<string name="buInc">"Malformed or corrupt backup file"</string>
<string name="impFail">"Import failed"</string>
<string name="recRm">"Recipe removed"</string>
<string name="untRec">"Untitled Recipe"</string>
<string name="stars">"Star rating"</string>
<string name="_Filtered_recipes_Z1alhhu">"Filtered recipes"</string>
<string name="recU">"recipes updated"</string>
<string name="recE">"recipes already exists"</string>
<string name="recI">"recipes imported"</string>
<string name="recF">"recipes found"</string>
<string name="impSuc">"Import success"</string>
<string name="tsInfo">"separate with spaces"</string>
<string name="ts">"Tags"</string>
<string name="noTs">"No tags available"</string>
<string name="allTs">"All Tags"</string>
<string name="allCats">"All Categories"</string>
<string name="allCuis">"All Cuisines"</string>
<string name="cuis">"Cuisines"</string>
<string name="cui">"Cuisine"</string>
<string name="newUnit">"New unit"</string>
<string name="newCui">"New cuisine"</string>
<string name="resNF">"Recipe not found"</string>
<string name="restDone">"Reset done"</string>
<string name="restInfo">"Resetting a list will delete user-created entries and restore default entries. Existing recipes will not be affected."</string>
<string name="restUL">"Reset unit list"</string>
<string name="restYUL">"Reset yield unit list"</string>
<string name="restCatL">"Reset category list"</string>
<string name="restCuiL">"Reset cuisine list"</string>
<string name="rest">"Reset"</string>
<string name="sVwInfo">"Helps you choose what to cook when you can\'t decide"</string>
<string name="sVw">"Shake to view random recipe"</string>
<string name="opts">"Options"</string>
<string name="guide">"User guide"</string>
<string name="priv">"Privacy policy"</string>
<string name="gh">"View on GitHub"</string>
<string name="appCrd">"Shared via EnRecipes. Get it on F-Droid, IzzyOnDroid or the Play Store."</string>
<string name="vrfy">"Verifying"</string>
<string name="ltAgo">"a long time ago"</string>
<string name="mAgo">"months ago"</string>
<string name="wAgo">"weeks ago"</string>
<string name="dAgo">"days ago"</string>
<string name="triedInfo">"You tried this recipe:"</string>
<string name="cPic">"Crop photo"</string>
<string name="repBtn">"REPLACE PHOTO"</string>
<string name="recPic">"Recipe photo"</string>
<string name="req">"Required"</string>
<string name="nwCat">"New category"</string>
<string name="nwYiU">"New yield unit"</string>
<string name="rmCmb">"Combination removed"</string>
<string name="rmN">"Note removed"</string>
<string name="rmIns">"Instruction removed"</string>
<string name="rmIng">"Ingredient removed"</string>
<string name="kEdit">"KEEP EDITING"</string>
<string name="disBtn">"DISCARD"</string>
<string name="disc">"This recipe has unsaved changes. What would you like to do?"</string>
<string name="unsaved">"Unsaved changes"</string>
<string name="ser">"Search"</string>
<string name="dBtn">"DELETE"</string>
<string name="delRecInfo">"You are about to permanently delete the recipe:"</string>
<string name="delRec">"Delete confirmation"</string>
<string name="conf">"Confirm"</string>
<string name="rmTry">"Removed from Try Later"</string>
<string name="aTry">"Added to Try Later"</string>
<string name="unfavd">"Removed from Favourites"</string>
<string name="favd">"Added to Favourites"</string>
<string name="aFBu">"Add a recipe to perform a backup"</string>
<string name="dend">"Access denied"</string>
<string name="conBtn">"CONTINUE"</string>
<string name="nNBtn">"NOT NOW"</string>
<string name="reqAcc">"EnRecipes requires storage permission in order to set recipe photo, export and import data"</string>
<string name="grant">"Grant access"</string>
<string name="nLangInfo">"Restart EnRecipes to use the new language"</string>
<string name="nThmInfo">"Restart EnRecipes to use the new theme"</string>
<string name="rst">"RESTART"</string>
<string name="appRst">"App restart required"</string>
<string name="aNBtn">"ADD NEW"</string>
<string name="ovw">"Overview"</string>
<string name="fil">"Recipe as file"</string>
<string name="rec">"Recipe as text"</string>
<string name="pht">"Recipe photo"</string>
<string name="shr">"Share"</string>
<string name="recTitle">"My Healthy Recipe"</string>
<string name="recListEmp">"Nothing here! Add some recipes and try again"</string>
<string name="selRec">"Select recipe"</string>
<string name="aBtn">"ADD"</string>
<string name="rmLIInfo">"Existing recipes will not be affected"</string>
<string name="rmUInfo">"You are about to remove the unit:"</string>
<string name="rmYUInfo">"You are about to remove the yield unit:"</string>
<string name="rmCatInfo">"You are about to remove the category:"</string>
<string name="rmCuiInfo">"You are about to remove the cuisine:"</string>
<string name="rBtn">"REMOVE"</string>
<string name="cBtn">"CANCEL"</string>
<string name="srt">"Sort by"</string>
<string name="stp">"Step"</string>
<string name="it">"Item"</string>
<string name="aNoBtn">"ADD NOTE"</string>
<string name="nos">"Notes"</string>
<string name="no">"Note"</string>
<string name="addCmbBtn">"ADD COMBINATION"</string>
<string name="cmbs">"Combinations"</string>
<string name="cmb">"Combination"</string>
<string name="aStpBtn">"ADD STEP"</string>
<string name="inss">"Instructions"</string>
<string name="ins">"Instruction"</string>
<string name="aIngBtn">"ADD INGREDIENT"</string>
<string name="ings">"Ingredients"</string>
<string name="ing">"Ingredient"</string>
<string name="yieldU">"Yield unit"</string>
<string name="yieldQ">"Yield quantity"</string>
<string name="cookT">"Cooking time"</string>
<string name="prepT">"Preparation time"</string>
<string name="cat">"Category"</string>
<string name="title">"Title"</string>
<string name="editRec">"Edit recipe"</string>
<string name="newRec">"New recipe"</string>
<string name="tgInfo">"For reporting issues, suggestions and feedback"</string>
<string name="joinTG">"Join the Telegram group"</string>
<string name="ver">"Version"</string>
<string name="impInfo">"Supports full backups exported by this app"</string>
<string name="impBu">"Import data"</string>
<string name="buInfo">"Generates a ZIP file containing all your data that can be imported back"</string>
<string name="expBu">"Export full backup"</string>
<string name="db">"Database"</string>
<string name="sysDef">"System default"</string>
<string name="lang">"Language"</string>
<string name="intf">"Interface"</string>
<string name="noRecsInFtr">"No recipes match your search in the Filtered recipes"</string>
<string name="noRecsInFavs">"No recipes match your search in the Favourites list"</string>
<string name="noRecsInTL">"No recipes match your search in the Try Later list"</string>
<string name="noRecs">"No recipes match your search"</string>
<string name="fsList">"Your favourite recipes are listed here"</string>
<string name="noFavs">"No favourites yet"</string>
<string name="tLInfo">"Recipes you want to try later are listed here"</string>
<string name="aD">"All done!"</string>
<string name="pANo">"Use the pencil button to add notes"</string>
<string name="pACmb">"Use the pencil button to add combinations"</string>
<string name="pAIns">"Use the pencil button to add instructions"</string>
<string name="pAIng">"Use the pencil button to add ingredients"</string>
<string name="plsAdd">"Use the plus button to add one"</string>
<string name="strAdd">"Start adding your recipes!"</string>
<string name="grocery">"Grocery List"</string>
<string name="planner">"Meal Planner"</string>
<string name="favourites">"Favourites"</string>
<string name="trylater">"Try Later"</string>
<string name="Donate">"Donate"</string>
<string name="Combination">"Combination"</string>
</resources>

View file

@ -95,7 +95,7 @@
<string name="_Shared_via_EnRecipes__Get_it_on_Play_Store_or_F_Droid__Z2oTOK1">"என்ரெசிபீஸ் வழியாக பகிரப்பட்டது. அதை ப்ளே ஸ்டோர் அல்லது எஃப்-டிரயோடு இருந்து பெறுங்கள்."</string>
<string name="_Permission_denied_Z7wlWK">"அனுமதி மறுக்கப்பட்டது"</string>
<string name="_Import_successful_2bLM3e">"வெற்றிகரமாக இறக்குமதி செய்யப்பட்டது"</string>
<string name="_Verifying____cS102">"சரிபார்க்கிறது..."</string>
<string name="_Verifying____cS102">"சரிபார்க்கிறது"</string>
<string name="_long_time_ago_1nwlFA">"வெகுகாலத்திற்கு முன்பு"</string>
<string name="_months_ago_Z1TsskA">"மாதங்களுக்கு முன்பு"</string>
<string name="_weeks_ago_Z2sT1GA">"வாரங்களுக்கு முன்பு"</string>
@ -276,11 +276,11 @@
<string name="Breakfast">"காலை உணவு"</string>
<string name="Breads">"ரொட்டிகள்"</string>
<string name="Beverages">"பானங்கள்"</string>
<string name="Barbecue">"பார்பிக்யூ"</string>
<string name="Barbecue">"பார்பக்யூ"</string>
<string name="Appetizers">"பசித்தூண்டி"</string>
<string name="About">"பற்றி"</string>
<string name="Settings">"அமைப்புகள்"</string>
<string name="Categories">"பகுப்புகள்"</string>
<string name="Categories">"பிரிவுகள்"</string>
<string name="_Meal_Planner_2aq4oj">"உணவுத் திட்டம்"</string>
<string name="Favourites">"பிடித்தவை"</string>
<string name="_Try_Later_If7PG">"பின்னர் முயற்சிக்க"</string>
@ -288,4 +288,158 @@
<string name="_app_name_1k3Sbz">"என்ரெசிபீஸ்"</string>
<string name="app_name">"என்ரெசிபீஸ்"</string>
<string name="title_activity_kimera">"என்ரெசிபீஸ்"</string>
<string name="trySer">"SEARCH IN ALL THE RECIPES?"</string>
<string name="help">"Help"</string>
<string name="appInfo">"EnRecipes is an open source, privacy-friendly digital cookbook that lets you create, manage and share your recipes"</string>
<string name="donate">"Donate"</string>
<string name="invFile">"Invalid file"</string>
<string name="buSuc">"Backup saved successfully to the Download folder"</string>
<string name="buMod">"The backup file was modified elsewhere"</string>
<string name="buEmp">"The backup file is empty"</string>
<string name="buInc">"Malformed or corrupt backup file"</string>
<string name="impFail">"Import failed"</string>
<string name="recRm">"Recipe removed"</string>
<string name="untRec">"Untitled Recipe"</string>
<string name="stars">"Star rating"</string>
<string name="_Filtered_recipes_Z1alhhu">"Filtered recipes"</string>
<string name="recU">"recipes updated"</string>
<string name="recE">"recipes already exists"</string>
<string name="recI">"recipes imported"</string>
<string name="recF">"recipes found"</string>
<string name="impSuc">"Import success"</string>
<string name="tsInfo">"separate with spaces"</string>
<string name="ts">"Tags"</string>
<string name="noTs">"No tags available"</string>
<string name="allTs">"All Tags"</string>
<string name="allCats">"All Categories"</string>
<string name="allCuis">"All Cuisines"</string>
<string name="cuis">"Cuisines"</string>
<string name="cui">"Cuisine"</string>
<string name="newUnit">"New unit"</string>
<string name="newCui">"New cuisine"</string>
<string name="resNF">"Recipe not found"</string>
<string name="restDone">"Reset done"</string>
<string name="restInfo">"Resetting a list will delete user-created entries and restore default entries. Existing recipes will not be affected."</string>
<string name="restUL">"Reset unit list"</string>
<string name="restYUL">"Reset yield unit list"</string>
<string name="restCatL">"Reset category list"</string>
<string name="restCuiL">"Reset cuisine list"</string>
<string name="rest">"Reset"</string>
<string name="sVwInfo">"Helps you choose what to cook when you can\'t decide"</string>
<string name="sVw">"Shake to view random recipe"</string>
<string name="opts">"Options"</string>
<string name="guide">"User guide"</string>
<string name="priv">"Privacy policy"</string>
<string name="gh">"View on GitHub"</string>
<string name="appCrd">"Shared via EnRecipes. Get it on F-Droid, IzzyOnDroid or the Play Store."</string>
<string name="vrfy">"Verifying"</string>
<string name="ltAgo">"a long time ago"</string>
<string name="mAgo">"months ago"</string>
<string name="wAgo">"weeks ago"</string>
<string name="dAgo">"days ago"</string>
<string name="triedInfo">"You tried this recipe:"</string>
<string name="cPic">"Crop photo"</string>
<string name="repBtn">"REPLACE PHOTO"</string>
<string name="recPic">"Recipe photo"</string>
<string name="req">"Required"</string>
<string name="nwCat">"New category"</string>
<string name="nwYiU">"New yield unit"</string>
<string name="rmCmb">"Combination removed"</string>
<string name="rmN">"Note removed"</string>
<string name="rmIns">"Instruction removed"</string>
<string name="rmIng">"Ingredient removed"</string>
<string name="kEdit">"KEEP EDITING"</string>
<string name="disBtn">"DISCARD"</string>
<string name="disc">"This recipe has unsaved changes. What would you like to do?"</string>
<string name="unsaved">"Unsaved changes"</string>
<string name="ser">"Search"</string>
<string name="dBtn">"DELETE"</string>
<string name="delRecInfo">"You are about to permanently delete the recipe:"</string>
<string name="delRec">"Delete confirmation"</string>
<string name="conf">"Confirm"</string>
<string name="rmTry">"Removed from Try Later"</string>
<string name="aTry">"Added to Try Later"</string>
<string name="unfavd">"Removed from Favourites"</string>
<string name="favd">"Added to Favourites"</string>
<string name="aFBu">"Add a recipe to perform a backup"</string>
<string name="dend">"Access denied"</string>
<string name="conBtn">"CONTINUE"</string>
<string name="nNBtn">"NOT NOW"</string>
<string name="reqAcc">"EnRecipes requires storage permission in order to set recipe photo, export and import data"</string>
<string name="grant">"Grant access"</string>
<string name="nLangInfo">"Restart EnRecipes to use the new language"</string>
<string name="nThmInfo">"Restart EnRecipes to use the new theme"</string>
<string name="rst">"RESTART"</string>
<string name="appRst">"App restart required"</string>
<string name="aNBtn">"ADD NEW"</string>
<string name="ovw">"Overview"</string>
<string name="fil">"Recipe as file"</string>
<string name="rec">"Recipe as text"</string>
<string name="pht">"Recipe photo"</string>
<string name="shr">"Share"</string>
<string name="recTitle">"My Healthy Recipe"</string>
<string name="recListEmp">"Nothing here! Add some recipes and try again"</string>
<string name="selRec">"Select recipe"</string>
<string name="aBtn">"ADD"</string>
<string name="rmLIInfo">"Existing recipes will not be affected"</string>
<string name="rmUInfo">"You are about to remove the unit:"</string>
<string name="rmYUInfo">"You are about to remove the yield unit:"</string>
<string name="rmCatInfo">"You are about to remove the category:"</string>
<string name="rmCuiInfo">"You are about to remove the cuisine:"</string>
<string name="rBtn">"REMOVE"</string>
<string name="cBtn">"CANCEL"</string>
<string name="srt">"Sort by"</string>
<string name="stp">"Step"</string>
<string name="it">"Item"</string>
<string name="aNoBtn">"ADD NOTE"</string>
<string name="nos">"Notes"</string>
<string name="no">"Note"</string>
<string name="addCmbBtn">"ADD COMBINATION"</string>
<string name="cmbs">"Combinations"</string>
<string name="cmb">"Combination"</string>
<string name="aStpBtn">"ADD STEP"</string>
<string name="inss">"Instructions"</string>
<string name="ins">"Instruction"</string>
<string name="aIngBtn">"ADD INGREDIENT"</string>
<string name="ings">"Ingredients"</string>
<string name="ing">"Ingredient"</string>
<string name="yieldU">"Yield unit"</string>
<string name="yieldQ">"Yield quantity"</string>
<string name="cookT">"Cooking time"</string>
<string name="prepT">"Preparation time"</string>
<string name="cat">"Category"</string>
<string name="title">"Title"</string>
<string name="editRec">"Edit recipe"</string>
<string name="newRec">"New recipe"</string>
<string name="tgInfo">"For reporting issues, suggestions and feedback"</string>
<string name="joinTG">"Join the Telegram group"</string>
<string name="ver">"Version"</string>
<string name="impInfo">"Supports full backups exported by this app"</string>
<string name="impBu">"Import data"</string>
<string name="buInfo">"Generates a ZIP file containing all your data that can be imported back"</string>
<string name="expBu">"Export full backup"</string>
<string name="db">"Database"</string>
<string name="sysDef">"System default"</string>
<string name="lang">"Language"</string>
<string name="intf">"Interface"</string>
<string name="noRecsInFtr">"No recipes match your search in the Filtered recipes"</string>
<string name="noRecsInFavs">"No recipes match your search in the Favourites list"</string>
<string name="noRecsInTL">"No recipes match your search in the Try Later list"</string>
<string name="noRecs">"No recipes match your search"</string>
<string name="fsList">"Your favourite recipes are listed here"</string>
<string name="noFavs">"No favourites yet"</string>
<string name="tLInfo">"Recipes you want to try later are listed here"</string>
<string name="aD">"All done!"</string>
<string name="pANo">"Use the pencil button to add notes"</string>
<string name="pACmb">"Use the pencil button to add combinations"</string>
<string name="pAIns">"Use the pencil button to add instructions"</string>
<string name="pAIng">"Use the pencil button to add ingredients"</string>
<string name="plsAdd">"Use the plus button to add one"</string>
<string name="strAdd">"Start adding your recipes!"</string>
<string name="grocery">"Grocery List"</string>
<string name="planner">"Meal Planner"</string>
<string name="favourites">"Favourites"</string>
<string name="trylater">"Try Later"</string>
<string name="Donate">"Donate"</string>
<string name="Combination">"Combination"</string>
</resources>

View file

@ -1,29 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="_Invalid_file__Z2bRAst">"Invalid file:"</string>
<string name="_Backup_file_has_been_modified_externally__Wjiqq">"Backup file has been modified externally."</string>
<string name="_Backup_file_seems_empty__Zd7qfR">"Backup file seems empty."</string>
<string name="_Backup_file_is_incorrect_or_corrupt__1jXb8N">"Backup file is incorrect or corrupt."</string>
<string name="_Import_failed_Z1dbs6t">"Import failed"</string>
<string name="_Remove_recipe_from_snacks__MNnCU">"Remove recipe from snacks?"</string>
<string name="_Remove_recipe_from_dinner__8sWfY">"Remove recipe from dinner?"</string>
<string name="_Remove_recipe_from_lunch__Zwpsg2">"Remove recipe from lunch?"</string>
<string name="_Remove_recipe_from_breakfast__ZvYyFG">"Remove recipe from breakfast?"</string>
<string name="_Untitled_Recipe_Zv0UxP">"Untitled Recipe"</string>
<string name="_Star_rating_Z11p4Kw">"Star rating"</string>
<string name="trySer">"SEARCH IN ALL THE RECIPES?"</string>
<string name="help">"Help"</string>
<string name="appInfo">"EnRecipes is an open source, privacy-friendly digital cookbook that lets you create, manage and share your recipes"</string>
<string name="donate">"Donate"</string>
<string name="invFile">"Invalid file"</string>
<string name="buSuc">"Backup saved successfully to the Download folder"</string>
<string name="buMod">"The backup file was modified elsewhere"</string>
<string name="buEmp">"The backup file is empty"</string>
<string name="buInc">"Malformed or corrupt backup file"</string>
<string name="impFail">"Import failed"</string>
<string name="recRm">"Recipe removed"</string>
<string name="untRec">"Untitled Recipe"</string>
<string name="stars">"Star rating"</string>
<string name="Created">"Created"</string>
<string name="_Filtered_result_1AMEXe">"Filtered result"</string>
<string name="_Filtered_recipes_Z1alhhu">"Filtered recipes"</string>
<string name="OK">"OK"</string>
<string name="_recipes_updated_Z2arFrR">"recipes updated"</string>
<string name="_recipes_already_exists_2jqW2s">"recipes already exists"</string>
<string name="_recipes_imported_1NGeRw">"recipes imported"</string>
<string name="_recipes_found_ZDdUgV">"recipes found"</string>
<string name="_Import_summary_244SkL">"Import summary"</string>
<string name="_separate_with_spaces_ZHKOfw">"separate with spaces"</string>
<string name="Tags">"Tags"</string>
<string name="_No_tags_available_Z1C5GqD">"No tags available"</string>
<string name="_All_Tags_28gMyY">"All Tags"</string>
<string name="_All_Categories_Z23JSTS">"All Categories"</string>
<string name="recU">"recipes updated"</string>
<string name="recE">"recipes already exists"</string>
<string name="recI">"recipes imported"</string>
<string name="recF">"recipes found"</string>
<string name="impSuc">"Import success"</string>
<string name="tsInfo">"separate with spaces"</string>
<string name="ts">"Tags"</string>
<string name="noTs">"No tags available"</string>
<string name="allTs">"All Tags"</string>
<string name="allCats">"All Categories"</string>
<string name="Vietnamese">"Vietnamese"</string>
<string name="Turkish">"Turkish"</string>
<string name="Thai">"Thai"</string>
@ -54,17 +56,12 @@
<string name="British">"British"</string>
<string name="Brazilian">"Brazilian"</string>
<string name="American">"American"</string>
<string name="_All_Cuisines_2hjCp9">"All Cuisines"</string>
<string name="Cuisines">"Cuisines"</string>
<string name="Cuisine">"Cuisine"</string>
<string name="_Are_you_sure_you_want_to_remove_ZOnf22">"Are you sure you want to remove"</string>
<string name="Units">"Units"</string>
<string name="_Remove_unit__2x26yq">"Remove unit?"</string>
<string name="_Remove_yield_unit__Z1duBWR">"Remove yield unit?"</string>
<string name="_Remove_category__2reaxz">"Remove category?"</string>
<string name="_Remove_cuisine__22ftcL">"Remove cuisine?"</string>
<string name="_New_unit_1CVEEA">"New unit"</string>
<string name="_New_cuisine_Zrvs3z">"New cuisine"</string>
<string name="allCuis">"All Cuisines"</string>
<string name="cuis">"Cuisines"</string>
<string name="cui">"Cuisine"</string>
<string name="Unit">"Unit"</string>
<string name="newUnit">"New unit"</string>
<string name="newCui">"New cuisine"</string>
<string name="Challenging">"Challenging"</string>
<string name="Moderate">"Moderate"</string>
<string name="Easy">"Easy"</string>
@ -75,139 +72,137 @@
<string name="Rating">"Rating"</string>
<string name="_Slowest_first_hHjY6">"Slowest first"</string>
<string name="_Quickest_first_Z1CpP7N">"Quickest first"</string>
<string name="_Your_search_did_not_match_any_recipes_in_the_filtered_result_1TV6QQ">"Your search did not match any recipes in the filtered result"</string>
<string name="_Recipe_not_found_2qGveM">"Recipe not found"</string>
<string name="_Reset_successful_YxqWK">"Reset successful"</string>
<string name="_Reset_units_list_msRS3">"Reset units list"</string>
<string name="_Reset_yield_units_list_ZjouMk">"Reset yield units list"</string>
<string name="_Reset_categories_list_Z1JmKra">"Reset categories list"</string>
<string name="_Reset_cuisines_list_1kWL8I">"Reset cuisines list"</string>
<string name="_Resetting_a_list_will_NOT_delete_your_existing_entries_but_only_restores_the_deleted_default_entries__Z28mk0h">"Resetting a list will NOT delete your existing entries but only restores the deleted default entries."</string>
<string name="Reset">"Reset"</string>
<string name="_Helps_you_choose_what_to_cook_when_you_can_t_decide_muiMv">"Helps you choose what to cook when you can\'t decide"</string>
<string name="_Shake_to_view_random_recipe_ZTK9F2">"Shake to view random recipe"</string>
<string name="Options">"Options"</string>
<string name="_User_guide_2uDJCF">"User guide"</string>
<string name="_Privacy_policy_Zb4ht5">"Privacy policy"</string>
<string name="_View_on_GitHub_Z2qOqmx">"View on GitHub"</string>
<string name="Translator">"Translator"</string>
<string name="Contributors">"Contributors"</string>
<string name="_Shared_via_EnRecipes__Get_it_on_Play_Store_or_F_Droid__Z2oTOK1">"Shared via EnRecipes. Get it on Play Store or F-Droid."</string>
<string name="_Permission_denied_Z7wlWK">"Permission denied"</string>
<string name="_Import_successful_2bLM3e">"Import successful"</string>
<string name="_Verifying____cS102">"Verifying..."</string>
<string name="_long_time_ago_1nwlFA">"long time ago"</string>
<string name="_months_ago_Z1TsskA">"months ago"</string>
<string name="_weeks_ago_Z2sT1GA">"weeks ago"</string>
<string name="_days_ago_2iCYkm">"days ago"</string>
<string name="resNF">"Recipe not found"</string>
<string name="restDone">"Reset done"</string>
<string name="restInfo">"Resetting a list will delete user-created entries and restore default entries. Existing recipes will not be affected."</string>
<string name="restUL">"Reset unit list"</string>
<string name="restYUL">"Reset yield unit list"</string>
<string name="restCatL">"Reset category list"</string>
<string name="restCuiL">"Reset cuisine list"</string>
<string name="rest">"Reset"</string>
<string name="sVwInfo">"Helps you choose what to cook when you can\'t decide"</string>
<string name="sVw">"Shake to view random recipe"</string>
<string name="opts">"Options"</string>
<string name="guide">"User guide"</string>
<string name="priv">"Privacy policy"</string>
<string name="gh">"View on GitHub"</string>
<string name="appCrd">"Shared via EnRecipes. Get it on F-Droid, IzzyOnDroid or the Play Store."</string>
<string name="vrfy">"Verifying"</string>
<string name="ltAgo">"a long time ago"</string>
<string name="mAgo">"months ago"</string>
<string name="wAgo">"weeks ago"</string>
<string name="dAgo">"days ago"</string>
<string name="yesterday">"yesterday"</string>
<string name="today">"today"</string>
<string name="_You_tried_this_recipe__ZUJOl3">"You tried this recipe:"</string>
<string name="triedInfo">"You tried this recipe:"</string>
<string name="snacks">"snacks"</string>
<string name="dinner">"dinner"</string>
<string name="lunch">"lunch"</string>
<string name="breakfast">"breakfast"</string>
<string name="_Crop_photo_1VL04J">"Crop photo"</string>
<string name="_REPLACE_PHOTO_ZLHhwH">"REPLACE PHOTO"</string>
<string name="_Recipe_photo_eqm9B">"Recipe photo"</string>
<string name="_EnRecipes_requires_storage_permission_in_order_to_set_recipe_photo__23OnNT">"EnRecipes requires storage permission in order to set recipe photo."</string>
<string name="Required">"Required"</string>
<string name="_New_category_Weg73">"New category"</string>
<string name="_New_yield_unit_1Oevd2">"New yield unit"</string>
<string name="_Remove_note__2wyMVE">"Remove note?"</string>
<string name="_Remove_combination__1dr2LS">"Remove combination?"</string>
<string name="_Remove_instruction__vkJfi">"Remove instruction?"</string>
<string name="_Remove_ingredient__2puvMO">"Remove ingredient?"</string>
<string name="_KEEP_EDITING_1o9uy3">"KEEP EDITING"</string>
<string name="DISCARD">"DISCARD"</string>
<string name="_Are_you_sure_you_want_to_discard_unsaved_changes_to_this_recipe__Z1G7sVC">"Are you sure you want to discard unsaved changes to this recipe?"</string>
<string name="_Unsaved_changes_9fqb4">"Unsaved changes"</string>
<string name="Search">"Search"</string>
<string name="_Are_you_sure_you_want_to_delete_the_recipe_29DH9w">"Are you sure you want to delete the recipe"</string>
<string name="DELETE">"DELETE"</string>
<string name="_Delete_recipe__Z2tMYtE">"Delete recipe?"</string>
<string name="_Removed_from_Try_Later_1h5Bkp">"Removed from Try Later"</string>
<string name="_Added_to_Try_Later_Z1gaF37">"Added to Try Later"</string>
<string name="_Removed_from_Favourites_Z5k7LR">"Removed from Favourites"</string>
<string name="_Added_to_Favourites_2mzllO">"Added to Favourites"</string>
<string name="_Add_at_least_one_recipe_to_perform_a_backup_17xYaH">"Add at least one recipe to perform a backup"</string>
<string name="_EnRecipes_requires_storage_permission_in_order_to_backup_your_data_to_this_device__2cbvIq">"EnRecipes requires storage permission in order to backup your data to this device."</string>
<string name="CONTINUE">"CONTINUE"</string>
<string name="_NOT_NOW_Z1HD7qX">"NOT NOW"</string>
<string name="_EnRecipes_requires_storage_permission_in_order_to_import_your_data_from_a_previous_backup__1CKjb7">"EnRecipes requires storage permission in order to import your data from a previous backup."</string>
<string name="_Grant_permission_Z1UQBuh">"Grant permission"</string>
<string name="_EnRecipes_needs_to_be_restarted_for_the_app_language_to_take_effect__ZWGUtY">"EnRecipes needs to be restarted for the app language to take effect."</string>
<string name="_EnRecipes_needs_to_be_restarted_for_the_theme_change_to_take_effect__2kU319">"EnRecipes needs to be restarted for the theme change to take effect."</string>
<string name="RESTART">"RESTART"</string>
<string name="_Restart_required_Z22YINL">"Restart required"</string>
<string name="breakfast">"Breakfast"</string>
<string name="cPic">"Crop photo"</string>
<string name="repBtn">"REPLACE PHOTO"</string>
<string name="recPic">"Recipe photo"</string>
<string name="req">"Required"</string>
<string name="nwCat">"New category"</string>
<string name="nwYiU">"New yield unit"</string>
<string name="rmCmb">"Combination removed"</string>
<string name="rmN">"Note removed"</string>
<string name="rmIns">"Instruction removed"</string>
<string name="rmIng">"Ingredient removed"</string>
<string name="kEdit">"KEEP EDITING"</string>
<string name="disBtn">"DISCARD"</string>
<string name="disc">"This recipe has unsaved changes. What would you like to do?"</string>
<string name="unsaved">"Unsaved changes"</string>
<string name="ser">"Search"</string>
<string name="dBtn">"DELETE"</string>
<string name="delRecInfo">"You are about to permanently delete the recipe:"</string>
<string name="delRec">"Delete confirmation"</string>
<string name="conf">"Confirm"</string>
<string name="rmTry">"Removed from Try Later"</string>
<string name="aTry">"Added to Try Later"</string>
<string name="unfavd">"Removed from Favourites"</string>
<string name="favd">"Added to Favourites"</string>
<string name="aFBu">"Add a recipe to perform a backup"</string>
<string name="dend">"Access denied"</string>
<string name="conBtn">"CONTINUE"</string>
<string name="nNBtn">"NOT NOW"</string>
<string name="reqAcc">"EnRecipes requires storage permission in order to set recipe photo, export and import data"</string>
<string name="grant">"Grant access"</string>
<string name="nLangInfo">"Restart EnRecipes to use the new language"</string>
<string name="nThmInfo">"Restart EnRecipes to use the new theme"</string>
<string name="rst">"RESTART"</string>
<string name="appRst">"App restart required"</string>
<string name="SET">"SET"</string>
<string name="_ADD_NEW_Zv8FjM">"ADD NEW"</string>
<string name="Share">"Share"</string>
<string name="Overview">"Overview"</string>
<string name="Recipe">"Recipe"</string>
<string name="Photo">"Photo"</string>
<string name="aNBtn">"ADD NEW"</string>
<string name="ovw">"Overview"</string>
<string name="fil">"Recipe as file"</string>
<string name="rec">"Recipe as text"</string>
<string name="pht">"Recipe photo"</string>
<string name="shr">"Share"</string>
<string name="min">"min"</string>
<string name="hr">"hr"</string>
<string name="_My_Healthy_Recipe_Z1EqB8f">"My Healthy Recipe"</string>
<string name="_Nothing_here__Add_some_recipes_and_try_again__Z25A7Q">"Nothing here! Add some recipes and try again."</string>
<string name="_Select_a_recipe_2lL8x2">"Select a recipe"</string>
<string name="ADD">"ADD"</string>
<string name="REMOVE">"REMOVE"</string>
<string name="CANCEL">"CANCEL"</string>
<string name="_Sort_by_Zq01TF">"Sort by"</string>
<string name="Step">"Step"</string>
<string name="Item">"Item"</string>
<string name="_ADD_NOTE_ZyNw1r">"ADD NOTE"</string>
<string name="Notes">"Notes"</string>
<string name="Note">"Note"</string>
<string name="_ADD_COMBINATION_2q9HWq">"ADD COMBINATION"</string>
<string name="Combinations">"Combinations"</string>
<string name="_ADD_STEP_ZyMPOe">"ADD STEP"</string>
<string name="Instructions">"Instructions"</string>
<string name="Instruction">"Instruction"</string>
<string name="_ADD_INGREDIENT_29sSLU">"ADD INGREDIENT"</string>
<string name="Ingredients">"Ingredients"</string>
<string name="Ingredient">"Ingredient"</string>
<string name="_Yield_measured_in_2OoRT">"Yield measured in"</string>
<string name="_Yield_quantity_ZHx3jw">"Yield quantity"</string>
<string name="_Cooking_time_2w2fEw">"Cooking time"</string>
<string name="_Preparation_time_15BfxT">"Preparation time"</string>
<string name="Category">"Category"</string>
<string name="Title">"Title"</string>
<string name="_Edit_recipe_ZPvwDP">"Edit recipe"</string>
<string name="_New_recipe_Z1Y2YKJ">"New recipe"</string>
<string name="_Vishnu_Raghav_B_1qnRnC">"Vishnu Raghav B"</string>
<string name="Author">"Author"</string>
<string name="_for_reporting_issues__suggestions_and_feedback_Z1JUmyE">"for reporting issues, suggestions and feedback"</string>
<string name="_Join_the_Telegram_group_ZAXQgc">"Join the Telegram group"</string>
<string name="Version">"Version"</string>
<string name="_Supports_full_backups_exported_by_this_app_ZYs4f2">"Supports full backups exported by this app"</string>
<string name="_Import_from_backup_Z28HsC0">"Import from backup"</string>
<string name="_Generates_a_zip_file_that_contains_all_your_data__This_file_can_be_imported_back__Z19m3xY">"Generates a zip file that contains all your data. This file can be imported back."</string>
<string name="_Export_a_full_backup_TJfra">"Export a full backup"</string>
<string name="Database">"Database"</string>
<string name="recTitle">"My Healthy Recipe"</string>
<string name="recListEmp">"Nothing here! Add some recipes and try again"</string>
<string name="selRec">"Select recipe"</string>
<string name="aBtn">"ADD"</string>
<string name="rmLIInfo">"Existing recipes will not be affected"</string>
<string name="rmUInfo">"You are about to remove the unit:"</string>
<string name="rmYUInfo">"You are about to remove the yield unit:"</string>
<string name="rmCatInfo">"You are about to remove the category:"</string>
<string name="rmCuiInfo">"You are about to remove the cuisine:"</string>
<string name="rBtn">"REMOVE"</string>
<string name="cBtn">"CANCEL"</string>
<string name="srt">"Sort by"</string>
<string name="stp">"Step"</string>
<string name="it">"Item"</string>
<string name="aNoBtn">"ADD NOTE"</string>
<string name="nos">"Notes"</string>
<string name="no">"Note"</string>
<string name="addCmbBtn">"ADD COMBINATION"</string>
<string name="cmbs">"Combinations"</string>
<string name="cmb">"Combination"</string>
<string name="aStpBtn">"ADD STEP"</string>
<string name="inss">"Instructions"</string>
<string name="ins">"Instruction"</string>
<string name="aIngBtn">"ADD INGREDIENT"</string>
<string name="ings">"Ingredients"</string>
<string name="ing">"Ingredient"</string>
<string name="yieldU">"Yield unit"</string>
<string name="yieldQ">"Yield quantity"</string>
<string name="cookT">"Cooking time"</string>
<string name="prepT">"Preparation time"</string>
<string name="cat">"Category"</string>
<string name="title">"Title"</string>
<string name="editRec">"Edit recipe"</string>
<string name="newRec">"New recipe"</string>
<string name="tgInfo">"For reporting issues, suggestions and feedback"</string>
<string name="joinTG">"Join the Telegram group"</string>
<string name="ver">"Version"</string>
<string name="impInfo">"Supports full backups exported by this app"</string>
<string name="impBu">"Import data"</string>
<string name="buInfo">"Generates a ZIP file containing all your data that can be imported back"</string>
<string name="expBu">"Export full backup"</string>
<string name="db">"Database"</string>
<string name="Dark">"Dark"</string>
<string name="Light">"Light"</string>
<string name="Theme">"Theme"</string>
<string name="_System_default_Z1jruVS">"System default"</string>
<string name="_App_language_DzFsk">"App language"</string>
<string name="Interface">"Interface"</string>
<string name="_Your_search_did_not_match_any_recipes_in_your_try_later_list_Z2wWbA1">"Your search did not match any recipes in your try later list"</string>
<string name="_Your_search_did_not_match_any_recipes_in_your_favourites_1ylvHN">"Your search did not match any recipes in your favourites"</string>
<string name="_Your_search_did_not_match_any_recipes_in_this_category_P7J4V">"Your search did not match any recipes in this category"</string>
<string name="_Your_search_did_not_match_any_recipes_Z1eppHH">"Your search did not match any recipes"</string>
<string name="_No_recipes_found_Z125IxD">"No recipes found"</string>
<string name="_Category_looks_empty_ZAK5qU">"Category looks empty"</string>
<string name="_Recipes_you_mark_as_favourite_will_be_listed_here_Z1iIHgY">"Recipes you mark as favourite will be listed here"</string>
<string name="_No_favourites_yet_aPSoG">"No favourites yet"</string>
<string name="_Recipes_you_mark_as_try_later_will_be_listed_here_Z1ITwPV">"Recipes you mark as try later will be listed here"</string>
<string name="_All_done__72KYl">"All done!"</string>
<string name="_Use_the_pencil_button_to_add_some_notes_Z1wyyeb">"Use the pencil button to add some notes"</string>
<string name="_Use_the_pencil_button_to_add_some_combinations_6NhFS">"Use the pencil button to add some combinations"</string>
<string name="_Use_the_pencil_button_to_add_some_instructions_ZAi0PH">"Use the pencil button to add some instructions"</string>
<string name="_Use_the_pencil_button_to_add_some_ingredients_Z1xOX8S">"Use the pencil button to add some ingredients"</string>
<string name="_Use_the_plus_button_to_add_one_1h20ms">"Use the plus button to add one"</string>
<string name="_Start_adding_your_recipes__rwnVV">"Start adding your recipes!"</string>
<string name="sysDef">"System default"</string>
<string name="lang">"Language"</string>
<string name="intf">"Interface"</string>
<string name="noRecsInFtr">"No recipes match your search in the Filtered recipes"</string>
<string name="noRecsInFavs">"No recipes match your search in the Favourites list"</string>
<string name="noRecsInTL">"No recipes match your search in the Try Later list"</string>
<string name="noRecs">"No recipes match your search"</string>
<string name="fsList">"Your favourite recipes are listed here"</string>
<string name="noFavs">"No favourites yet"</string>
<string name="tLInfo">"Recipes you want to try later are listed here"</string>
<string name="aD">"All done!"</string>
<string name="pANo">"Use the pencil button to add notes"</string>
<string name="pACmb">"Use the pencil button to add combinations"</string>
<string name="pAIns">"Use the pencil button to add instructions"</string>
<string name="pAIng">"Use the pencil button to add ingredients"</string>
<string name="plsAdd">"Use the plus button to add one"</string>
<string name="strAdd">"Start adding your recipes!"</string>
<string name="large">"large"</string>
<string name="medium">"medium"</string>
<string name="small">"small"</string>
@ -233,9 +228,8 @@
<string name="cup">"cup"</string>
<string name="_fl_oz_72kqu">"fl oz"</string>
<string name="tbsp">"tbsp"</string>
<string name="dsp">"dsp"</string>
<string name="dsp">"dstspn"</string>
<string name="tsp">"tsp"</string>
<string name="Unit">"Unit"</string>
<string name="unit">"unit"</string>
<string name="Loaf">"Loaf"</string>
<string name="Patty">"Patty"</string>
@ -280,12 +274,172 @@
<string name="Appetizers">"Appetizers"</string>
<string name="About">"About"</string>
<string name="Settings">"Settings"</string>
<string name="Categories">"Categories"</string>
<string name="_Meal_Planner_2aq4oj">"Meal Planner"</string>
<string name="Favourites">"Favourites"</string>
<string name="_Try_Later_If7PG">"Try Later"</string>
<string name="grocery">"Grocery List"</string>
<string name="planner">"Meal Planner"</string>
<string name="favourites">"Favourites"</string>
<string name="trylater">"Try Later"</string>
<string name="EnRecipes">"EnRecipes"</string>
<string name="_app_name_1k3Sbz">"EnRecipes"</string>
<string name="app_name">"EnRecipes"</string>
<string name="title_activity_kimera">"EnRecipes"</string>
<string name="_Import_failed_Z1dbs6t">"Import failed"</string>
<string name="_Invalid_file__Z2bRAst">"Invalid file:"</string>
<string name="_Backup_file_has_been_modified_externally__Wjiqq">"Backup file has been modified externally."</string>
<string name="_Backup_file_seems_empty__Zd7qfR">"Backup file seems empty."</string>
<string name="_Backup_file_is_incorrect_or_corrupt__1jXb8N">"Backup file is incorrect or corrupt."</string>
<string name="_Remove_recipe_from_snacks__MNnCU">"Remove recipe from snacks?"</string>
<string name="_Remove_recipe_from_dinner__8sWfY">"Remove recipe from dinner?"</string>
<string name="_Remove_recipe_from_lunch__Zwpsg2">"Remove recipe from lunch?"</string>
<string name="_Remove_recipe_from_breakfast__ZvYyFG">"Remove recipe from breakfast?"</string>
<string name="_Untitled_Recipe_Zv0UxP">"Untitled Recipe"</string>
<string name="_Star_rating_Z11p4Kw">"Star rating"</string>
<string name="_Filtered_result_1AMEXe">"Filtered result"</string>
<string name="_recipes_updated_Z2arFrR">"recipes updated"</string>
<string name="_recipes_already_exists_2jqW2s">"recipes already exists"</string>
<string name="_recipes_imported_1NGeRw">"recipes imported"</string>
<string name="_recipes_found_ZDdUgV">"recipes found"</string>
<string name="_Import_summary_244SkL">"Import summary"</string>
<string name="_separate_with_spaces_ZHKOfw">"separate with spaces"</string>
<string name="Tags">"Tags"</string>
<string name="_No_tags_available_Z1C5GqD">"No tags available"</string>
<string name="_All_Tags_28gMyY">"All Tags"</string>
<string name="_All_Categories_Z23JSTS">"All Categories"</string>
<string name="_All_Cuisines_2hjCp9">"All Cuisines"</string>
<string name="Cuisines">"Cuisines"</string>
<string name="Cuisine">"Cuisine"</string>
<string name="_Are_you_sure_you_want_to_remove_ZOnf22">"Are you sure you want to remove"</string>
<string name="Units">"Units"</string>
<string name="_Remove_unit__2x26yq">"Remove unit?"</string>
<string name="_Remove_yield_unit__Z1duBWR">"Remove yield unit?"</string>
<string name="_Remove_category__2reaxz">"Remove category?"</string>
<string name="_Remove_cuisine__22ftcL">"Remove cuisine?"</string>
<string name="_New_unit_1CVEEA">"New unit"</string>
<string name="_New_cuisine_Zrvs3z">"New cuisine"</string>
<string name="_Your_search_did_not_match_any_recipes_in_the_filtered_result_1TV6QQ">"Your search did not match any recipes in the filtered result"</string>
<string name="_Recipe_not_found_2qGveM">"Recipe not found"</string>
<string name="_Reset_successful_YxqWK">"Reset successful"</string>
<string name="_Reset_units_list_msRS3">"Reset units list"</string>
<string name="_Reset_yield_units_list_ZjouMk">"Reset yield units list"</string>
<string name="_Reset_categories_list_Z1JmKra">"Reset categories list"</string>
<string name="_Reset_cuisines_list_1kWL8I">"Reset cuisines list"</string>
<string name="_Resetting_a_list_will_NOT_delete_your_existing_entries_but_only_restores_the_deleted_default_entries__Z28mk0h">"Resetting a list will NOT delete your existing entries but only restores the deleted default entries."</string>
<string name="Reset">"Reset"</string>
<string name="_Helps_you_choose_what_to_cook_when_you_can_t_decide_muiMv">"Helps you choose what to cook when you can\'t decide"</string>
<string name="_Shake_to_view_random_recipe_ZTK9F2">"Shake to view random recipe"</string>
<string name="Options">"Options"</string>
<string name="_User_guide_2uDJCF">"User guide"</string>
<string name="_Privacy_policy_Zb4ht5">"Privacy policy"</string>
<string name="_View_on_GitHub_Z2qOqmx">"View on GitHub"</string>
<string name="Translator">"Translator"</string>
<string name="Contributors">"Contributors"</string>
<string name="_Shared_via_EnRecipes__Get_it_on_Play_Store_or_F_Droid__Z2oTOK1">"Shared via EnRecipes. Get it on Play Store or F-Droid."</string>
<string name="_Permission_denied_Z7wlWK">"Permission denied"</string>
<string name="_Import_successful_2bLM3e">"Import successful"</string>
<string name="_Verifying____cS102">"Verifying..."</string>
<string name="_long_time_ago_1nwlFA">"long time ago"</string>
<string name="_months_ago_Z1TsskA">"months ago"</string>
<string name="_weeks_ago_Z2sT1GA">"weeks ago"</string>
<string name="_days_ago_2iCYkm">"days ago"</string>
<string name="_You_tried_this_recipe__ZUJOl3">"You tried this recipe:"</string>
<string name="_Crop_photo_1VL04J">"Crop photo"</string>
<string name="_REPLACE_PHOTO_ZLHhwH">"REPLACE PHOTO"</string>
<string name="_Recipe_photo_eqm9B">"Recipe photo"</string>
<string name="_EnRecipes_requires_storage_permission_in_order_to_set_recipe_photo__23OnNT">"EnRecipes requires storage permission in order to set recipe photo."</string>
<string name="Required">"Required"</string>
<string name="_New_category_Weg73">"New category"</string>
<string name="_New_yield_unit_1Oevd2">"New yield unit"</string>
<string name="_Remove_note__2wyMVE">"Remove note?"</string>
<string name="_Remove_combination__1dr2LS">"Remove combination?"</string>
<string name="_Remove_instruction__vkJfi">"Remove instruction?"</string>
<string name="_Remove_ingredient__2puvMO">"Remove ingredient?"</string>
<string name="_KEEP_EDITING_1o9uy3">"KEEP EDITING"</string>
<string name="DISCARD">"DISCARD"</string>
<string name="_Are_you_sure_you_want_to_discard_unsaved_changes_to_this_recipe__Z1G7sVC">"Are you sure you want to discard unsaved changes to this recipe?"</string>
<string name="_Unsaved_changes_9fqb4">"Unsaved changes"</string>
<string name="Search">"Search"</string>
<string name="_Are_you_sure_you_want_to_delete_the_recipe_29DH9w">"Are you sure you want to delete the recipe"</string>
<string name="DELETE">"DELETE"</string>
<string name="_Delete_recipe__Z2tMYtE">"Delete recipe?"</string>
<string name="_Removed_from_Try_Later_1h5Bkp">"Removed from Try Later"</string>
<string name="_Added_to_Try_Later_Z1gaF37">"Added to Try Later"</string>
<string name="_Removed_from_Favourites_Z5k7LR">"Removed from Favourites"</string>
<string name="_Added_to_Favourites_2mzllO">"Added to Favourites"</string>
<string name="_Add_at_least_one_recipe_to_perform_a_backup_17xYaH">"Add at least one recipe to perform a backup"</string>
<string name="_EnRecipes_requires_storage_permission_in_order_to_backup_your_data_to_this_device__2cbvIq">"EnRecipes requires storage permission in order to backup your data to this device."</string>
<string name="CONTINUE">"CONTINUE"</string>
<string name="_NOT_NOW_Z1HD7qX">"NOT NOW"</string>
<string name="_EnRecipes_requires_storage_permission_in_order_to_import_your_data_from_a_previous_backup__1CKjb7">"EnRecipes requires storage permission in order to import your data from a previous backup."</string>
<string name="_Grant_permission_Z1UQBuh">"Grant permission"</string>
<string name="_EnRecipes_needs_to_be_restarted_for_the_app_language_to_take_effect__ZWGUtY">"EnRecipes needs to be restarted for the app language to take effect."</string>
<string name="_EnRecipes_needs_to_be_restarted_for_the_theme_change_to_take_effect__2kU319">"EnRecipes needs to be restarted for the theme change to take effect."</string>
<string name="RESTART">"RESTART"</string>
<string name="_Restart_required_Z22YINL">"Restart required"</string>
<string name="_ADD_NEW_Zv8FjM">"ADD NEW"</string>
<string name="Share">"Share"</string>
<string name="Overview">"Overview"</string>
<string name="Recipe">"Recipe"</string>
<string name="Photo">"Photo"</string>
<string name="_My_Healthy_Recipe_Z1EqB8f">"My Healthy Recipe"</string>
<string name="_Nothing_here__Add_some_recipes_and_try_again__Z25A7Q">"Nothing here! Add some recipes and try again."</string>
<string name="_Select_a_recipe_2lL8x2">"Select a recipe"</string>
<string name="ADD">"ADD"</string>
<string name="REMOVE">"REMOVE"</string>
<string name="CANCEL">"CANCEL"</string>
<string name="_Sort_by_Zq01TF">"Sort by"</string>
<string name="Step">"Step"</string>
<string name="Item">"Item"</string>
<string name="_ADD_NOTE_ZyNw1r">"ADD NOTE"</string>
<string name="Notes">"Notes"</string>
<string name="Note">"Note"</string>
<string name="_ADD_COMBINATION_2q9HWq">"ADD COMBINATION"</string>
<string name="Combinations">"Combinations"</string>
<string name="_ADD_STEP_ZyMPOe">"ADD STEP"</string>
<string name="Instructions">"Instructions"</string>
<string name="Instruction">"Instruction"</string>
<string name="_ADD_INGREDIENT_29sSLU">"ADD INGREDIENT"</string>
<string name="Ingredients">"Ingredients"</string>
<string name="Ingredient">"Ingredient"</string>
<string name="_Yield_measured_in_2OoRT">"Yield measured in"</string>
<string name="_Yield_quantity_ZHx3jw">"Yield quantity"</string>
<string name="_Cooking_time_2w2fEw">"Cooking time"</string>
<string name="_Preparation_time_15BfxT">"Preparation time"</string>
<string name="Category">"Category"</string>
<string name="Title">"Title"</string>
<string name="_Edit_recipe_ZPvwDP">"Edit recipe"</string>
<string name="_New_recipe_Z1Y2YKJ">"New recipe"</string>
<string name="_Vishnu_Raghav_B_1qnRnC">"Vishnu Raghav B"</string>
<string name="Author">"Author"</string>
<string name="_for_reporting_issues__suggestions_and_feedback_Z1JUmyE">"for reporting issues, suggestions and feedback"</string>
<string name="_Join_the_Telegram_group_ZAXQgc">"Join the Telegram group"</string>
<string name="Version">"Version"</string>
<string name="_Supports_full_backups_exported_by_this_app_ZYs4f2">"Supports full backups exported by this app"</string>
<string name="_Import_from_backup_Z28HsC0">"Import from backup"</string>
<string name="_Generates_a_zip_file_that_contains_all_your_data__This_file_can_be_imported_back__Z19m3xY">"Generates a zip file that contains all your data. This file can be imported back."</string>
<string name="_Export_a_full_backup_TJfra">"Export a full backup"</string>
<string name="Database">"Database"</string>
<string name="_System_default_Z1jruVS">"System default"</string>
<string name="_App_language_DzFsk">"App language"</string>
<string name="Interface">"Interface"</string>
<string name="_Your_search_did_not_match_any_recipes_in_your_try_later_list_Z2wWbA1">"Your search did not match any recipes in your try later list"</string>
<string name="_Your_search_did_not_match_any_recipes_in_your_favourites_1ylvHN">"Your search did not match any recipes in your favourites"</string>
<string name="_Your_search_did_not_match_any_recipes_in_this_category_P7J4V">"Your search did not match any recipes in this category"</string>
<string name="_Your_search_did_not_match_any_recipes_Z1eppHH">"Your search did not match any recipes"</string>
<string name="_No_recipes_found_Z125IxD">"No recipes found"</string>
<string name="_Category_looks_empty_ZAK5qU">"Category looks empty"</string>
<string name="_Recipes_you_mark_as_favourite_will_be_listed_here_Z1iIHgY">"Recipes you mark as favourite will be listed here"</string>
<string name="_No_favourites_yet_aPSoG">"No favourites yet"</string>
<string name="_Recipes_you_mark_as_try_later_will_be_listed_here_Z1ITwPV">"Recipes you mark as try later will be listed here"</string>
<string name="_All_done__72KYl">"All done!"</string>
<string name="_Use_the_pencil_button_to_add_some_notes_Z1wyyeb">"Use the pencil button to add some notes"</string>
<string name="_Use_the_pencil_button_to_add_some_combinations_6NhFS">"Use the pencil button to add some combinations"</string>
<string name="_Use_the_pencil_button_to_add_some_instructions_ZAi0PH">"Use the pencil button to add some instructions"</string>
<string name="_Use_the_pencil_button_to_add_some_ingredients_Z1xOX8S">"Use the pencil button to add some ingredients"</string>
<string name="_Use_the_plus_button_to_add_one_1h20ms">"Use the plus button to add one"</string>
<string name="_Start_adding_your_recipes__rwnVV">"Start adding your recipes!"</string>
<string name="Categories">"Categories"</string>
<string name="_Meal_Planner_2aq4oj">"Meal Planner"</string>
<string name="Favourites">"Favourites"</string>
<string name="_Try_Later_If7PG">"Try Later"</string>
<string name="Donate">"Donate"</string>
<string name="Combination">"Combination"</string>
</resources>

View file

@ -170,7 +170,7 @@ export default new Vuex.Store({
plus: "\ueb21",
plusCircle: "\ueb22",
close: "\uebe9",
image: "\uea7f",
image: "\ued47",
food: "\ueb3e",
back: "\uea95",
save: "\uedeb",
@ -190,7 +190,8 @@ export default new Vuex.Store({
copy: "\ue9e6",
check: "\ue9a4",
telegram: "\ueec7",
time: "\ueba2",
time: "\uee1a",
timeLine: "\ueba2",
item: "\ue99d",
step: "\ue948",
source: "\ueaa0",
@ -207,11 +208,21 @@ export default new Vuex.Store({
reset: "\ueb3d",
emptyCart: "\ue999",
cart: "\uec77",
meter: "\ueb96",
meter: "\uee11",
meterLine: "\ueb96",
star: "\uee0a",
starLine: "\ueb83",
compass: "\uecb4",
show: "\uedfd"
show: "\uedfd",
ruler: "\uede9",
dish: "\uecd9",
restart: "\ueb3f",
fail: "\uee58",
success: "\uec85",
folder: "\ued1e",
error: "\uecf7",
zip: "\ued03",
text: "\ued82"
},
currentComponent: "EnRecipes",
sortType: "Oldest first",
@ -270,6 +281,8 @@ export default new Vuex.Store({
r.rating = 0
if (!r.hasOwnProperty("created"))
r.created = r.lastModified
if (!r.hasOwnProperty("inCart"))
r.inCart = false
state.recipes.push(r);
});
state.shakeEnabled = ApplicationSettings.getBoolean("shakeEnabled", true)
@ -298,6 +311,8 @@ export default new Vuex.Store({
r.rating = 0
if (!r.hasOwnProperty("created"))
r.created = r.lastModified
if (!r.hasOwnProperty("inCart"))
r.inCart = false
return r;
});
}
@ -442,11 +457,7 @@ export default new Vuex.Store({
resetListItems(state, listName) {
let stateName = listItems[listName].stateName;
let defaultItems = listItems[listName].defaultItems;
let items = new Set([
...defaultItems,
...state[listName]
]);
state[listName] = [...items];
state[listName] = [...defaultItems];
if (listItems[listName].sort) {
state[stateName].sort();
}
@ -469,8 +480,17 @@ export default new Vuex.Store({
];
mealPlansDB.updateDocument("mealPlans", {mealPlans: state.mealPlans});
},
addMealPlan(state, {event, eventColor}) {
state.mealPlans.push({title: event.title, startDate: event.startDate, endDate: event.endDate, eventColor});
addMealPlan(state, {event, eventColor, index}) {
let mealPlan = {
title: event.title,
startDate: event.startDate,
endDate: event.endDate,
eventColor
}
if (index != null)
state.mealPlans.splice(index, 0, mealPlan);
else
state.mealPlans.push(mealPlan);
mealPlansDB.updateDocument("mealPlans", {
mealPlans: [...state.mealPlans]
});
@ -525,6 +545,11 @@ export default new Vuex.Store({
state.recipes[index].rating = rating
EnRecipesDB.updateDocument(id, recipe);
},
toggleCart(state, {id, recipe}) {
let index = state.recipes.indexOf(state.recipes.filter(e => e.id === id)[0]);
state.recipes[index].inCart = !state.recipes[index].inCart
EnRecipesDB.updateDocument(id, recipe);
},
unlinkBrokenImages(state) {
state.recipes.forEach((r, i) => {
if (r.imageSrc && !File.exists(r.imageSrc)) {
@ -640,6 +665,11 @@ export default new Vuex.Store({
}, rating) {
commit("setRating", rating);
},
toggleCartAction({
commit
}, recipe) {
commit("toggleCart", recipe);
},
unlinkBrokenImages({commit}) {
commit("unlinkBrokenImages");
}

View file

@ -0,0 +1,6 @@
- New: Grocery list
- New: Share individual recipe as file
- Added app languages: French, Norwegian Bokmål
- Deprecated: Search recipe with tag.
- Updated translations
- Several UI improvements and bug fixes

View file

@ -22,6 +22,6 @@ EnRecipes is an easy to use, privacy-friendly digital cookbook that lets you cre
* No internet access is required and never asks for any unwanted permissions
* Private by Design
<b>Credits</b>
<b>Credits:</b>
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 Telegram EnRecipes group for contributing their ideas for this project.

8
package-lock.json generated
View file

@ -1112,6 +1112,14 @@
"@nativescript-community/ui-material-core": "^5.1.16"
}
},
"@nativescript-community/ui-material-snackbar": {
"version": "5.1.16",
"resolved": "https://registry.npmjs.org/@nativescript-community/ui-material-snackbar/-/ui-material-snackbar-5.1.16.tgz",
"integrity": "sha512-I6hxRfiuEyy8VEZ2B3KWEAER6iHy9m7IS+yoVFIYeSFSNc+S2RPNPpTFyuCx2gud2q1inn6p5KAe51zFjIFwBg==",
"requires": {
"@nativescript-community/ui-material-core": "^5.1.16"
}
},
"@nativescript/android": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/@nativescript/android/-/android-7.0.1.tgz",

View file

@ -11,6 +11,7 @@
"@nativescript-community/ui-material-floatingactionbutton": "^5.1.16",
"@nativescript-community/ui-material-progress": "^5.1.16",
"@nativescript-community/ui-material-ripple": "^5.1.16",
"@nativescript-community/ui-material-snackbar": "^5.1.16",
"@nativescript/core": "~7.0.0",
"@nativescript/localize": "^5.0.2",
"@nativescript/social-share": "^2.0.1",