Merge remote-tracking branch 'origin/main' into main
|
@ -6,7 +6,7 @@
|
|||
<a href="https://www.gnu.org/licenses/gpl-3.0" alt="License: GPLv3"><img src="https://img.shields.io/badge/license-GPL%20v3-blue"></a> <a href="https://github.com/vishnuraghavb/EnRecipes/releases" alt="Release version"><img src="https://img.shields.io/github/v/release/vishnuraghavb/EnRecipes?color=ff5200"/></a> <a href="https://hosted.weblate.org/engage/enrecipes/">
|
||||
<img src="https://hosted.weblate.org/widgets/enrecipes/-/app-translations/svg-badge.svg" alt="Translation status" /></a>
|
||||
<p align="center">
|
||||
<a href="https://play.google.com/store/apps/details?id=com.vishnuraghav.enrecipes"><img src="assets/Images/google-play-badge.png" height="80"/></a><a href="https://apt.izzysoft.de/fdroid/index/apk/com.vishnuraghav.enrecipes"><img src="assets/Images/IzzyOnDroid.png" height="80"/></a><br>You can also get the <a href="https://github.com/vishnuraghavb/EnRecipes/releases/latest">latest release on GitHub</a>
|
||||
<a href="https://play.google.com/store/apps/details?id=com.vishnuraghav.EnRecipes"><img src="assets/Images/google-play-badge.png" height="80"/></a><a href="https://apt.izzysoft.de/fdroid/index/apk/com.vishnuraghav.EnRecipes"><img src="assets/Images/IzzyOnDroid.png" height="80"/></a><br>You can also get the <a href="https://github.com/vishnuraghavb/EnRecipes/releases/latest">latest release on GitHub</a>
|
||||
</p>
|
||||
<h2 align="center">Enjoying EnRecipes?</h2>
|
||||
<p align="center">Please consider making a small donation to help fund the project. Developing an application, especially one that is open source and completely free, takes a lot of time and effort.
|
||||
|
|
39
app/ForegroundService.js
Normal file
|
@ -0,0 +1,39 @@
|
|||
import { TimerNotif } from './shared/utils'
|
||||
const superProto = android.app.Service.prototype
|
||||
android.app.Service.extend('com.tns.ForegroundService', {
|
||||
onStartCommand: function(intent, flags, startId) {
|
||||
console.log('onStartCommand')
|
||||
superProto.onStartCommand.call(this, intent, flags, startId)
|
||||
return android.app.Service.START_STICKY
|
||||
},
|
||||
onCreate: function() {
|
||||
console.log('onCreate')
|
||||
superProto.onCreate.call(this)
|
||||
this.startForeground(777, this.getNotification())
|
||||
},
|
||||
onBind: function(intent) {
|
||||
return superProto.onBind.call(this, intent)
|
||||
},
|
||||
onUnbind: function(intent) {
|
||||
return superProto.onUnbind.call(this, intent)
|
||||
},
|
||||
onDestroy: function() {
|
||||
console.log('onDestroy')
|
||||
this.stopForeground(true)
|
||||
},
|
||||
getNotification: function() {
|
||||
return TimerNotif.getNotification(
|
||||
{
|
||||
bID: 'bringToFront',
|
||||
cID: 'cti',
|
||||
cName: 'Cooking Timer info',
|
||||
description: `0 ongoing, 0 paused`,
|
||||
nID: 777,
|
||||
priority: -2,
|
||||
sound: null,
|
||||
title: 'EnRecipes is running',
|
||||
},
|
||||
this.getApplicationContext()
|
||||
)
|
||||
},
|
||||
})
|
75
app/app.scss
|
@ -12,11 +12,11 @@ $gray10: #000000;
|
|||
$orange: #ff5200;
|
||||
|
||||
Page {
|
||||
font-family: "Inter-Medium";
|
||||
font-family: 'Inter-Medium';
|
||||
font-size: 14;
|
||||
}
|
||||
.ico {
|
||||
font-family: "enrecipes";
|
||||
font-family: 'enrecipes';
|
||||
font-size: 24;
|
||||
vertical-alignment: center;
|
||||
&.sm {
|
||||
|
@ -25,7 +25,7 @@ Page {
|
|||
}
|
||||
}
|
||||
.tb {
|
||||
font-family: "Inter-Bold";
|
||||
font-family: 'Inter-Bold';
|
||||
}
|
||||
.tac {
|
||||
text-align: center;
|
||||
|
@ -180,7 +180,7 @@ TextView {
|
|||
.progressContainer {
|
||||
width: 100%;
|
||||
}
|
||||
Progress {
|
||||
progress {
|
||||
margin: 16;
|
||||
background-color: $gray5;
|
||||
}
|
||||
|
@ -203,7 +203,7 @@ Switch {
|
|||
@extend .hl;
|
||||
}
|
||||
}
|
||||
Button {
|
||||
button {
|
||||
background-color: transparent;
|
||||
z-index: 0;
|
||||
padding: 8;
|
||||
|
@ -240,7 +240,7 @@ Button {
|
|||
width: 32;
|
||||
height: 32;
|
||||
min-width: 0;
|
||||
margin: 0 0 0 8;
|
||||
margin: 0 0 0 4;
|
||||
vertical-alignment: center;
|
||||
}
|
||||
&.rate {
|
||||
|
@ -253,7 +253,7 @@ Button {
|
|||
// HOME
|
||||
.emptyState {
|
||||
padding: 16 16 8;
|
||||
Label {
|
||||
label {
|
||||
@extend .tw;
|
||||
}
|
||||
.title {
|
||||
|
@ -312,6 +312,25 @@ Button {
|
|||
border-radius: 12;
|
||||
}
|
||||
// -----------------------------
|
||||
// COOKING TIMER
|
||||
|
||||
.singleTimer {
|
||||
padding: 8 16;
|
||||
.info {
|
||||
margin: 8;
|
||||
}
|
||||
.recipeTitle {
|
||||
horizontal-alignment: left;
|
||||
// font-size: 12;
|
||||
}
|
||||
progress {
|
||||
color: $orange;
|
||||
width: 100%;
|
||||
height: 4;
|
||||
margin: 8 0 0;
|
||||
}
|
||||
}
|
||||
// -----------------------------
|
||||
// SETTINGS
|
||||
.group-info {
|
||||
padding: 16 16 16 72;
|
||||
|
@ -334,9 +353,9 @@ Button {
|
|||
font-size: 12;
|
||||
}
|
||||
}
|
||||
.listSpace {
|
||||
height: 72;
|
||||
}
|
||||
}
|
||||
.listSpace {
|
||||
height: 72;
|
||||
}
|
||||
|
||||
// -----------------------------
|
||||
|
@ -376,9 +395,9 @@ Button {
|
|||
@extend .tb;
|
||||
@extend .tw;
|
||||
}
|
||||
.clickable {
|
||||
color: $orange;
|
||||
}
|
||||
}
|
||||
.clickable {
|
||||
color: $orange;
|
||||
}
|
||||
.ingredient {
|
||||
padding: 0 16;
|
||||
|
@ -452,7 +471,7 @@ Button {
|
|||
horizontal-alignment: left;
|
||||
.tool {
|
||||
padding: 0 12;
|
||||
Label {
|
||||
label {
|
||||
vertical-alignment: center;
|
||||
}
|
||||
.ico {
|
||||
|
@ -509,7 +528,7 @@ Button {
|
|||
color: $orange;
|
||||
}
|
||||
.activeDay {
|
||||
background-color: rgba($orange, 0.2);
|
||||
@extend .hl;
|
||||
}
|
||||
}
|
||||
.dayPlan {
|
||||
|
@ -549,7 +568,8 @@ Button {
|
|||
}
|
||||
ListPicker {
|
||||
width: 25%;
|
||||
height: 160;
|
||||
height: 128;
|
||||
margin: 16 0;
|
||||
}
|
||||
.listItem {
|
||||
@extend .tw;
|
||||
|
@ -596,19 +616,34 @@ ActivityIndicator {
|
|||
}
|
||||
// -----------------------------
|
||||
// Transitions
|
||||
.blink {
|
||||
animation-name: blink;
|
||||
animation-duration: 1s;
|
||||
animation-iteration-count: infinite;
|
||||
animation-timing-function: ease;
|
||||
}
|
||||
@keyframes blink {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
50% {
|
||||
opacity: 1;
|
||||
}
|
||||
100% {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
.hl {
|
||||
animation-name: hl;
|
||||
animation-duration: 0.2s;
|
||||
animation-fill-mode: forwards;
|
||||
animation-timing-function: ease-out;
|
||||
animation-timing-function: ease;
|
||||
}
|
||||
@keyframes hl {
|
||||
0% {
|
||||
opacity: 0.5;
|
||||
background-color: transparent;
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
background-color: rgba($orange, 0.2);
|
||||
}
|
||||
}
|
||||
|
@ -616,7 +651,7 @@ ActivityIndicator {
|
|||
animation-name: fade;
|
||||
animation-duration: 0.2s;
|
||||
animation-fill-mode: forwards;
|
||||
animation-timing-function: ease-out;
|
||||
animation-timing-function: ease;
|
||||
}
|
||||
@keyframes fade {
|
||||
0% {
|
||||
|
|
393
app/components/CookingTimer.vue
Normal file
|
@ -0,0 +1,393 @@
|
|||
<template>
|
||||
<Page @loaded="onPageLoad" actionBarHidden="true">
|
||||
<GridLayout rows="*, auto" columns="*">
|
||||
<ScrollView
|
||||
@scroll="onScroll($event)"
|
||||
rowSpan="2"
|
||||
scrollBarIndicatorVisible="false"
|
||||
>
|
||||
<StackLayout>
|
||||
<GridLayout rows="auto" columns="*, auto, 8">
|
||||
<Label class="pageTitle" :text="'timer' | L" />
|
||||
<Button
|
||||
col="1"
|
||||
class="ico"
|
||||
:text="icon.cog"
|
||||
@tap="$navigateTo(CTSettings)"
|
||||
/>
|
||||
</GridLayout>
|
||||
<Timer
|
||||
v-for="(timer, i) in activeTimers"
|
||||
:key="timer.id"
|
||||
:timer="timer"
|
||||
:timerIndex="i"
|
||||
:formattedTime="formattedTime"
|
||||
:removeTimer="removeTimer"
|
||||
:addToPreset="addToPreset"
|
||||
:togglePause="togglePause"
|
||||
:fireTimer="fireTimer"
|
||||
/>
|
||||
<StackLayout class="listSpace"> </StackLayout>
|
||||
</StackLayout>
|
||||
</ScrollView>
|
||||
<GridLayout
|
||||
row="1"
|
||||
@loaded="onAppBarLoad"
|
||||
class="appbar"
|
||||
:hidden="showUndo"
|
||||
columns="auto, *, auto"
|
||||
>
|
||||
<Button class="ico" :text="icon.back" @tap="$navigateBack()" />
|
||||
<Button class="ico fab" :text="icon.plus" @tap="addTimer" col="2" />
|
||||
</GridLayout>
|
||||
<SnackBar
|
||||
:hidden="!showUndo || toast"
|
||||
:count="countdown"
|
||||
:msg="snackMsg"
|
||||
:undo="undoDel"
|
||||
:action="hideBar"
|
||||
/>
|
||||
<Toast :toast="toast" :action="hideBar" />
|
||||
</GridLayout>
|
||||
</Page>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { localize } from "@nativescript/localize";
|
||||
import {
|
||||
Observable,
|
||||
CoreTypes,
|
||||
Application,
|
||||
ApplicationSettings,
|
||||
AndroidApplication,
|
||||
Utils,
|
||||
Device,
|
||||
} from "@nativescript/core";
|
||||
import { mapState, mapActions } from "vuex";
|
||||
|
||||
import Action from "./modals/Action.vue";
|
||||
import CTSettings from "./settings/CTSettings.vue";
|
||||
import TimePickerHMS from "./modals/TimePickerHMS.vue";
|
||||
import TimerReminder from "./modals/TimerReminder.vue";
|
||||
import Timer from "./sub/Timer.vue";
|
||||
import Toast from "./sub/Toast.vue";
|
||||
import SnackBar from "./sub/SnackBar.vue";
|
||||
|
||||
import * as utils from "~/shared/utils";
|
||||
import { EventBus } from "~/main";
|
||||
let undoTimer,
|
||||
firingTimers = [];
|
||||
declare const com: any;
|
||||
|
||||
export default {
|
||||
components: { Timer, Toast, SnackBar },
|
||||
props: ["recipeID"],
|
||||
data() {
|
||||
return {
|
||||
scrollPos: 1,
|
||||
appbar: null,
|
||||
countdown: 5,
|
||||
snackMsg: null,
|
||||
showUndo: false,
|
||||
undo: false,
|
||||
CTSettings: CTSettings,
|
||||
toast: null,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapState([
|
||||
"icon",
|
||||
"recipes",
|
||||
"currentComponent",
|
||||
"timerSound",
|
||||
"timerVibrate",
|
||||
"timerDelay",
|
||||
"timerPresets",
|
||||
"activeTimers",
|
||||
]),
|
||||
},
|
||||
methods: {
|
||||
...mapActions([
|
||||
"setComponent",
|
||||
"addActiveTimer",
|
||||
"removeActiveTimer",
|
||||
"clearTimerInterval",
|
||||
"addTimerPreset",
|
||||
"updateActiveTimer",
|
||||
]),
|
||||
onPageLoad({ object }) {
|
||||
object.bindingContext = new Observable();
|
||||
this.setComponent("CookingTimer");
|
||||
},
|
||||
onAppBarLoad({ object }) {
|
||||
this.appbar = object;
|
||||
},
|
||||
onScroll(args) {
|
||||
let scrollUp;
|
||||
let y = args.scrollY;
|
||||
if (y) {
|
||||
scrollUp = y < this.scrollPos;
|
||||
this.scrollPos = Math.abs(y);
|
||||
let ab = this.appbar.translateY;
|
||||
if (!scrollUp && ab == 0) {
|
||||
this.appbar.animate({
|
||||
translate: { x: 0, y: 64 },
|
||||
duration: 250,
|
||||
curve: CoreTypes.AnimationCurve.ease,
|
||||
});
|
||||
} else if (scrollUp && ab == 64) {
|
||||
this.appbar.animate({
|
||||
translate: { x: 0, y: 0 },
|
||||
duration: 250,
|
||||
curve: CoreTypes.AnimationCurve.ease,
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
// HELPERS
|
||||
getRecipeTitle(id) {
|
||||
let recipe = this.recipes.filter((e) => e.id === id)[0];
|
||||
return recipe ? recipe.title : `[ ${localize("resNF")} ]`;
|
||||
},
|
||||
formattedTime(time) {
|
||||
let hr = localize("hr");
|
||||
let min = localize("min");
|
||||
let sec = localize("sec");
|
||||
|
||||
let t = time.split(":");
|
||||
|
||||
let h = parseInt(t[0]);
|
||||
let m = parseInt(t[1]);
|
||||
let s = parseInt(t[2]);
|
||||
|
||||
let hasHrs = h ? `${h} ${hr}` : "";
|
||||
let hasMins = m ? `${h ? " " : ""}${m} ${min}` : "";
|
||||
let hasSecs = s ? `${h || m ? " " : ""}${s} ${sec}` : "";
|
||||
|
||||
return hasHrs + hasMins + hasSecs;
|
||||
},
|
||||
|
||||
// NOTIFICATION HANDLERS
|
||||
notifyTimers() {
|
||||
let activeCount = this.activeTimers.length;
|
||||
let pausedCount = this.activeTimers.filter((e) => e.isPaused).length;
|
||||
let ongoingCount = activeCount - pausedCount;
|
||||
console.log("notifying");
|
||||
utils.TimerNotif.show({
|
||||
bID: "bringToFront",
|
||||
cID: "cti",
|
||||
cName: "Cooking Timer info",
|
||||
description: `${ongoingCount} ongoing, ${pausedCount} paused`,
|
||||
nID: 777,
|
||||
priority: -2,
|
||||
sound: null,
|
||||
title: localize("timer"),
|
||||
});
|
||||
if (activeCount <= 0) this.foregroundService(false);
|
||||
},
|
||||
fireTimer(timer) {
|
||||
console.log("firing");
|
||||
let description = timer.recipeID
|
||||
? " - " + this.getRecipeTitle(timer.recipeID)
|
||||
: "";
|
||||
let title = timer.label;
|
||||
let time = this.formattedTime(timer.time);
|
||||
let bID = "timer" + timer.id;
|
||||
utils.TimerNotif.show({
|
||||
actions: true,
|
||||
bID,
|
||||
cID: "cta",
|
||||
cName: "Cooking Timer alerts",
|
||||
description: time,
|
||||
nID: timer.id,
|
||||
priority: 1,
|
||||
sound: this.timerSound.uri,
|
||||
title: title + description,
|
||||
vibrate: this.timerVibrate,
|
||||
});
|
||||
Application.android.registerBroadcastReceiver(bID, (ctx, intent) => {
|
||||
let action = intent.getStringExtra("action");
|
||||
console.log(action, "firing");
|
||||
EventBus.$emit(bID, action);
|
||||
});
|
||||
firingTimers.push(timer);
|
||||
// if (firingTimers.length == 1) {
|
||||
// this.$showModal(TimerReminder, {
|
||||
// fullscreen: true,
|
||||
// props: {
|
||||
// timers: firingTimers,
|
||||
// stop: this.stopFiringTimers,
|
||||
// formattedTime: this.formattedTime,
|
||||
// },
|
||||
// });
|
||||
// }
|
||||
},
|
||||
stopFiringTimers() {
|
||||
firingTimers.forEach((e) => utils.TimerNotif.clear(e.id));
|
||||
firingTimers = [];
|
||||
},
|
||||
openReminder() {},
|
||||
foregroundService(bool) {
|
||||
const ctx = Utils.ad.getApplicationContext();
|
||||
const intent = new android.content.Intent(
|
||||
ctx,
|
||||
com.tns.ForegroundService.class
|
||||
);
|
||||
if (bool)
|
||||
parseInt(Device.sdkVersion) < 26
|
||||
? ctx.startService(intent)
|
||||
: ctx.startForegroundService(intent);
|
||||
else ctx.stopService(intent);
|
||||
},
|
||||
|
||||
// DATA HANDLERS
|
||||
addTimer() {
|
||||
this.foregroundService(true);
|
||||
this.$showModal(TimePickerHMS, {
|
||||
props: {
|
||||
title: "ntmr",
|
||||
label: `${localize("tmr", this.activeTimers.length + 1)}`,
|
||||
action: "strtBtn",
|
||||
showPreset: this.timerPresets.length,
|
||||
},
|
||||
}).then((res) => {
|
||||
if (res) {
|
||||
if (res == "presets") {
|
||||
let list = this.timerPresets.map(
|
||||
(e) => `${e.label} - ${this.formattedTime(e.time)}`
|
||||
);
|
||||
this.$showModal(Action, {
|
||||
props: {
|
||||
title: "tmrPrsts",
|
||||
list,
|
||||
},
|
||||
}).then((preset) => {
|
||||
if (preset) {
|
||||
let timer = JSON.parse(
|
||||
JSON.stringify(this.timerPresets[list.indexOf(preset)])
|
||||
);
|
||||
timer.id = this.getRandomID();
|
||||
this.addActiveTimer({
|
||||
timer,
|
||||
index: this.activeTimers.length,
|
||||
});
|
||||
this.notifyTimers();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
if (res.time != "00:00:00") {
|
||||
this.addActiveTimer({
|
||||
timer: {
|
||||
id: this.getRandomID(),
|
||||
label: res.label,
|
||||
recipeID: this.recipeID,
|
||||
time: res.time,
|
||||
timerInterval: null,
|
||||
isPaused: false,
|
||||
preset: 0,
|
||||
},
|
||||
index: this.activeTimers.length,
|
||||
});
|
||||
this.notifyTimers();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
removeTimer(id, index, noUndo) {
|
||||
let temp = this.activeTimers[index];
|
||||
this.removeActiveTimer(index);
|
||||
utils.TimerNotif.clear(id);
|
||||
if (!noUndo) {
|
||||
this.showUndoBar("tmrClr")
|
||||
.then(() => {
|
||||
this.foregroundService(true);
|
||||
this.addActiveTimer({
|
||||
timer: temp,
|
||||
index,
|
||||
});
|
||||
this.notifyTimers();
|
||||
})
|
||||
.catch(() => {
|
||||
ApplicationSettings.remove(`${temp.id}progress`);
|
||||
});
|
||||
}
|
||||
this.notifyTimers();
|
||||
},
|
||||
addToPreset(timer) {
|
||||
timer = JSON.parse(JSON.stringify(timer));
|
||||
timer.recipeID = timer.timerInterval = null;
|
||||
timer.preset = 1;
|
||||
this.addTimerPreset(timer);
|
||||
this.showToast("aTPrst");
|
||||
},
|
||||
togglePause(timer, bool) {
|
||||
if (typeof bool === "boolean") timer.isPaused = bool;
|
||||
else timer.isPaused = !timer.isPaused;
|
||||
this.updateActiveTimer(timer);
|
||||
this.notifyTimers();
|
||||
},
|
||||
showToast(data) {
|
||||
this.toast = localize(data);
|
||||
utils.timer(5, (val) => {
|
||||
if (!val) this.toast = val;
|
||||
});
|
||||
},
|
||||
showUndoBar(message) {
|
||||
return new Promise((resolve, reject) => {
|
||||
clearTimeout(undoTimer);
|
||||
this.showUndo = true;
|
||||
this.snackMsg = message;
|
||||
this.countdown = 5;
|
||||
let a = 5;
|
||||
undoTimer = setInterval(() => {
|
||||
if (this.undo) {
|
||||
this.showUndo = this.undo = false;
|
||||
clearTimeout(undoTimer);
|
||||
resolve(true);
|
||||
}
|
||||
this.countdown = Math.round((a -= 0.1));
|
||||
if (this.countdown < 1) {
|
||||
this.showUndo = false;
|
||||
clearTimeout(undoTimer);
|
||||
reject(true);
|
||||
}
|
||||
}, 100);
|
||||
});
|
||||
},
|
||||
hideBar({ object }) {
|
||||
this.appbar.translateY = 64;
|
||||
object
|
||||
.animate({
|
||||
opacity: 0,
|
||||
translate: { x: 0, y: 64 },
|
||||
duration: 250,
|
||||
curve: CoreTypes.AnimationCurve.ease,
|
||||
})
|
||||
.then(() => {
|
||||
this.showUndo = false;
|
||||
this.toast = null;
|
||||
this.appbar.animate({
|
||||
translate: { x: 0, y: 0 },
|
||||
duration: 250,
|
||||
curve: CoreTypes.AnimationCurve.ease,
|
||||
});
|
||||
object.opacity = 1;
|
||||
object.translateY = 0;
|
||||
clearTimeout(undoTimer);
|
||||
});
|
||||
},
|
||||
undoDel() {
|
||||
this.undo = true;
|
||||
},
|
||||
|
||||
// HELPERS
|
||||
getRandomID() {
|
||||
return Math.floor(Math.random() * 9000000000) + 1000000000;
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.clearTimerInterval();
|
||||
},
|
||||
};
|
||||
</script>
|
|
@ -10,8 +10,8 @@
|
|||
<Label class="pageTitle" padding="16 0" :text="`${title}` | L" />
|
||||
<Image
|
||||
margin="8 0 32"
|
||||
v-if="recipe.imageSrc"
|
||||
:src="recipe.imageSrc"
|
||||
v-if="recipe.image"
|
||||
:src="recipe.image"
|
||||
stretch="aspectFit"
|
||||
class="imgHolder"
|
||||
:width="screenWidth - 32"
|
||||
|
@ -95,7 +95,7 @@
|
|||
<Label class="fieldLabel" :text="'yieldQ' | L" />
|
||||
<TextField
|
||||
ref="yieldQuantity"
|
||||
v-model="recipe.yield.quantity"
|
||||
v-model="recipe.yieldQuantity"
|
||||
hint="1"
|
||||
keyboardType="number"
|
||||
returnKeyType="next"
|
||||
|
@ -104,7 +104,7 @@
|
|||
<StackLayout class="inputField" col="2">
|
||||
<Label class="fieldLabel" :text="'yieldU' | L" />
|
||||
<TextField
|
||||
:text="`${recipe.yield.unit}` | L"
|
||||
:text="`${recipe.yieldUnit}` | L"
|
||||
editable="false"
|
||||
@focus="!modalOpen && showYieldUnits(true)"
|
||||
@tap="showYieldUnits(false)"
|
||||
|
@ -252,23 +252,41 @@
|
|||
<GridLayout
|
||||
row="1"
|
||||
@loaded="onAppBarLoad"
|
||||
:colSpan="hasChanges || showUndo ? '2' : '1'"
|
||||
:hidden="showUndo"
|
||||
class="appbar"
|
||||
:class="{ snackBar: showUndo }"
|
||||
:colSpan="hasChanges ? 2 : 1"
|
||||
columns="auto, *, auto"
|
||||
>
|
||||
<Button v-if="showUndo" :text="countdown" class="countdown ico tb" />
|
||||
<Button v-else class="ico" :text="icon.back" @tap="navigateBack" />
|
||||
<Label class="title" col="1" :hidden="!showUndo" :text="snackMsg | L" />
|
||||
<Button class="ico" :text="icon.back" @tap="navigateBack" />
|
||||
<Button
|
||||
v-if="(hasChanges && !saving) || showUndo"
|
||||
v-if="hasChanges && !saving"
|
||||
class="ico fab"
|
||||
:text="showUndo ? icon.undo : icon.save"
|
||||
:text="icon.save"
|
||||
col="2"
|
||||
@tap="showUndo ? undoDel() : saveOperation()"
|
||||
@tap="saveOperation()"
|
||||
/>
|
||||
<ActivityIndicator col="2" v-if="saving" :busy="saving" />
|
||||
</GridLayout>
|
||||
<SnackBar
|
||||
:hidden="!showUndo"
|
||||
colSpan="2"
|
||||
:count="countdown"
|
||||
:msg="snackMsg"
|
||||
:undo="undoDel"
|
||||
:action="hideUndoBar"
|
||||
/>
|
||||
<!-- <GridLayout
|
||||
row="1"
|
||||
class="appbar snackBar"
|
||||
:hidden="!showUndo"
|
||||
colSpan="2"
|
||||
columns="auto, *, auto"
|
||||
@swipe="hideUndoBar"
|
||||
>
|
||||
<Button :text="countdown" class="ico countdown tb" />
|
||||
<Label class="title" col="1" :text="snackMsg | L" />
|
||||
<Button class="ico fab" :text="icon.undo" @tap="undoDel" col="3" />
|
||||
</GridLayout> -->
|
||||
</GridLayout>
|
||||
</Page>
|
||||
</template>
|
||||
|
@ -276,7 +294,6 @@
|
|||
<script>
|
||||
import {
|
||||
AndroidApplication,
|
||||
Application,
|
||||
ApplicationSettings,
|
||||
File,
|
||||
getFileAccess,
|
||||
|
@ -291,14 +308,18 @@ import {
|
|||
import { localize } from "@nativescript/localize";
|
||||
import { ImageCropper } from "nativescript-imagecropper";
|
||||
import { mapState, mapActions } from "vuex";
|
||||
import ActionDialog from "./modal/ActionDialog.vue";
|
||||
import ActionDialogWithSearch from "./modal/ActionDialogWithSearch.vue";
|
||||
import ConfirmDialog from "./modal/ConfirmDialog.vue";
|
||||
import PromptDialog from "./modal/PromptDialog.vue";
|
||||
import ListPicker from "./modal/ListPicker.vue";
|
||||
import Action from "./modals/Action";
|
||||
import ActionWithSearch from "./modals/ActionWithSearch";
|
||||
import Confirm from "./modals/Confirm";
|
||||
import Prompt from "./modals/Prompt";
|
||||
import TimePickerHM from "./modals/TimePickerHM";
|
||||
import * as utils from "~/shared/utils";
|
||||
import SnackBar from "./sub/SnackBar";
|
||||
let undoTimer;
|
||||
export default {
|
||||
components: {
|
||||
SnackBar,
|
||||
},
|
||||
props: [
|
||||
"recipeID",
|
||||
"filterFavourites",
|
||||
|
@ -309,34 +330,32 @@ export default {
|
|||
return {
|
||||
title: "newRec",
|
||||
recipe: {
|
||||
imageSrc: null,
|
||||
title: undefined,
|
||||
id: this.recipeID ? this.recipeID : this.getRandomID(),
|
||||
image: null,
|
||||
title: null,
|
||||
cuisine: "Undefined",
|
||||
category: "Undefined",
|
||||
tags: [],
|
||||
prepTime: "00:00",
|
||||
cookTime: "00:00",
|
||||
yield: {
|
||||
quantity: undefined,
|
||||
unit: "Serving",
|
||||
},
|
||||
yieldQuantity: null,
|
||||
yieldUnit: "Serving",
|
||||
difficulty: "Easy",
|
||||
rating: 0,
|
||||
ingredients: [],
|
||||
instructions: [],
|
||||
combinations: [],
|
||||
notes: [],
|
||||
isFavorite: false,
|
||||
tried: true,
|
||||
favorite: 0,
|
||||
tried: 1,
|
||||
lastTried: null,
|
||||
lastModified: null,
|
||||
created: null,
|
||||
inBag: false,
|
||||
},
|
||||
tempRecipe: {},
|
||||
tags: undefined,
|
||||
modalOpen: false,
|
||||
newRecipeID: null,
|
||||
// newRecipeID: null,
|
||||
saving: false,
|
||||
cacheImagePath: null,
|
||||
unSyncCombinations: [],
|
||||
|
@ -374,13 +393,11 @@ export default {
|
|||
...mapActions([
|
||||
"setComponent",
|
||||
"addRecipeAction",
|
||||
"overwriteRecipeAction",
|
||||
"addListItemAction",
|
||||
"unSyncCombinationsAction",
|
||||
]),
|
||||
onPageLoad(args) {
|
||||
const page = args.object;
|
||||
page.bindingContext = new Observable();
|
||||
onPageLoad({ object }) {
|
||||
object.bindingContext = new Observable();
|
||||
this.hijackBackEvent();
|
||||
},
|
||||
onPageUnload() {
|
||||
|
@ -416,9 +433,9 @@ export default {
|
|||
// PHOTO HANDLERS
|
||||
imageHandler() {
|
||||
this.clearEmptyFields(true);
|
||||
if (this.recipe.imageSrc) {
|
||||
if (this.recipe.image) {
|
||||
this.modalOpen = true;
|
||||
this.$showModal(ActionDialog, {
|
||||
this.$showModal(Action, {
|
||||
props: {
|
||||
title: "recPic",
|
||||
list: ["aap", "rp"],
|
||||
|
@ -430,7 +447,7 @@ export default {
|
|||
this.imagePicker();
|
||||
break;
|
||||
case "rp":
|
||||
this.recipe.imageSrc = null;
|
||||
this.recipe.image = null;
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
@ -470,7 +487,7 @@ export default {
|
|||
)
|
||||
.then((cropped) => {
|
||||
cropped.image.saveToFile(this.cacheImagePath, "jpg", 75);
|
||||
this.recipe.imageSrc = this.cacheImagePath;
|
||||
this.recipe.image = this.cacheImagePath;
|
||||
});
|
||||
});
|
||||
}
|
||||
|
@ -482,7 +499,7 @@ export default {
|
|||
// DATA LIST
|
||||
showCuisine(focus) {
|
||||
this.modalOpen = true;
|
||||
this.$showModal(ActionDialog, {
|
||||
this.$showModal(Action, {
|
||||
props: {
|
||||
title: "cui",
|
||||
list: this.cuisines,
|
||||
|
@ -490,7 +507,7 @@ export default {
|
|||
},
|
||||
}).then((action) => {
|
||||
if (action == "aNBtn") {
|
||||
this.$showModal(PromptDialog, {
|
||||
this.$showModal(Prompt, {
|
||||
props: {
|
||||
title: "newCui",
|
||||
action: "aBtn",
|
||||
|
@ -520,7 +537,7 @@ export default {
|
|||
},
|
||||
showCategories(focus) {
|
||||
this.modalOpen = true;
|
||||
this.$showModal(ActionDialog, {
|
||||
this.$showModal(Action, {
|
||||
props: {
|
||||
title: "cat",
|
||||
list: this.categories,
|
||||
|
@ -528,7 +545,7 @@ export default {
|
|||
},
|
||||
}).then((action) => {
|
||||
if (action == "aNBtn") {
|
||||
this.$showModal(PromptDialog, {
|
||||
this.$showModal(Prompt, {
|
||||
props: {
|
||||
title: "nwCat",
|
||||
action: "aBtn",
|
||||
|
@ -558,7 +575,7 @@ export default {
|
|||
},
|
||||
showYieldUnits(focus) {
|
||||
this.modalOpen = true;
|
||||
this.$showModal(ActionDialog, {
|
||||
this.$showModal(Action, {
|
||||
props: {
|
||||
title: "yieldU",
|
||||
list: this.yieldUnits,
|
||||
|
@ -566,7 +583,7 @@ export default {
|
|||
},
|
||||
}).then((action) => {
|
||||
if (action == "aNBtn") {
|
||||
this.$showModal(PromptDialog, {
|
||||
this.$showModal(Prompt, {
|
||||
props: {
|
||||
title: "nwYiU",
|
||||
action: "aBtn",
|
||||
|
@ -574,7 +591,7 @@ export default {
|
|||
}).then((item) => {
|
||||
this.modalOpen = false;
|
||||
if (item.length) {
|
||||
this.recipe.yield.unit = item;
|
||||
this.recipe.yieldUnit = item;
|
||||
this.addListItemAction({
|
||||
item,
|
||||
listName: "yieldUnits",
|
||||
|
@ -585,18 +602,18 @@ export default {
|
|||
} else {
|
||||
this.modalOpen = false;
|
||||
if (action) {
|
||||
this.recipe.yield.unit = action;
|
||||
this.recipe.yieldUnit = action;
|
||||
if (focus) this.autoFocusField("difficultyLevel", false);
|
||||
} else
|
||||
this.yieldUnits.includes(this.recipe.yield.unit)
|
||||
this.yieldUnits.includes(this.recipe.yieldUnit)
|
||||
? mull
|
||||
: (this.recipe.yield.unit = "Serving");
|
||||
: (this.recipe.yieldUnit = "Serving");
|
||||
}
|
||||
});
|
||||
},
|
||||
showDifficultyLevel(focus) {
|
||||
this.modalOpen = true;
|
||||
this.$showModal(ActionDialog, {
|
||||
this.$showModal(Action, {
|
||||
props: {
|
||||
title: "Difficulty level",
|
||||
list: this.difficultyLevels,
|
||||
|
@ -614,7 +631,7 @@ export default {
|
|||
},
|
||||
showUnits(e, focus, index) {
|
||||
this.modalOpen = true;
|
||||
this.$showModal(ActionDialog, {
|
||||
this.$showModal(Action, {
|
||||
props: {
|
||||
title: "Unit",
|
||||
list: this.units,
|
||||
|
@ -622,7 +639,7 @@ export default {
|
|||
},
|
||||
}).then((action) => {
|
||||
if (action == "aNBtn") {
|
||||
this.$showModal(PromptDialog, {
|
||||
this.$showModal(Prompt, {
|
||||
props: {
|
||||
title: "newUnit",
|
||||
action: "aBtn",
|
||||
|
@ -656,7 +673,7 @@ export default {
|
|||
let filteredRecipes = this.recipes.filter(
|
||||
(e) => !existingCombinations.includes(e.id)
|
||||
);
|
||||
this.$showModal(ActionDialogWithSearch, {
|
||||
this.$showModal(ActionWithSearch, {
|
||||
props: {
|
||||
title: "selRec",
|
||||
recipes: filteredRecipes,
|
||||
|
@ -731,7 +748,7 @@ export default {
|
|||
// SAVE OPERATION
|
||||
clearEmptyFields(bool) {
|
||||
if (!this.recipe.title && !bool) this.recipe.title = localize("untRec");
|
||||
if (!this.recipe.yield.quantity) this.recipe.yield.quantity = 1;
|
||||
if (!this.recipe.yieldQuantity) this.recipe.yieldQuantity = 1;
|
||||
this.recipe.ingredients = this.recipe.ingredients.filter((e) => e.item);
|
||||
let vm = this;
|
||||
|
||||
|
@ -744,13 +761,10 @@ export default {
|
|||
saveOperation() {
|
||||
this.saving = this.modalOpen = true;
|
||||
this.clearEmptyFields();
|
||||
this.recipe.lastModified = new Date();
|
||||
this.recipe.lastModified = new Date().getTime();
|
||||
ApplicationSettings.setString("previousCuisine", this.recipe.cuisine);
|
||||
ApplicationSettings.setString("previousCategory", this.recipe.category);
|
||||
ApplicationSettings.setString(
|
||||
"previousYieldUnit",
|
||||
this.recipe.yield.unit
|
||||
);
|
||||
ApplicationSettings.setString("previousYieldUnit", this.recipe.yieldUnit);
|
||||
if (this.cacheImagePath) {
|
||||
let recipeImage = path.join(
|
||||
knownFolders.documents().getFolder("EnRecipes").getFolder("Images")
|
||||
|
@ -759,18 +773,18 @@ export default {
|
|||
);
|
||||
let binarySource = File.fromPath(this.cacheImagePath).readSync();
|
||||
File.fromPath(recipeImage).writeSync(binarySource);
|
||||
this.recipe.imageSrc = recipeImage;
|
||||
this.recipe.image = recipeImage;
|
||||
knownFolders.temp().clear();
|
||||
}
|
||||
if (this.recipe.imageSrc) {
|
||||
if (this.recipe.image) {
|
||||
if (
|
||||
this.tempRecipe.imageSrc &&
|
||||
this.tempRecipe.imageSrc !== this.recipe.imageSrc
|
||||
this.tempRecipe.image &&
|
||||
this.tempRecipe.image !== this.recipe.image
|
||||
) {
|
||||
getFileAccess().deleteFile(this.tempRecipe.imageSrc);
|
||||
getFileAccess().deleteFile(this.tempRecipe.image);
|
||||
}
|
||||
} else if (this.tempRecipe.imageSrc) {
|
||||
getFileAccess().deleteFile(this.tempRecipe.imageSrc);
|
||||
} else if (this.tempRecipe.image) {
|
||||
getFileAccess().deleteFile(this.tempRecipe.image);
|
||||
}
|
||||
this.unSyncCombinationsAction({
|
||||
id: this.recipeID,
|
||||
|
@ -779,18 +793,7 @@ export default {
|
|||
this.saveRecipe();
|
||||
},
|
||||
saveRecipe() {
|
||||
if (this.recipeID) {
|
||||
this.overwriteRecipeAction({
|
||||
id: this.recipeID,
|
||||
recipe: this.recipe,
|
||||
});
|
||||
} else {
|
||||
this.recipe.id = this.newRecipeID;
|
||||
this.addRecipeAction({
|
||||
id: this.newRecipeID,
|
||||
recipe: this.recipe,
|
||||
});
|
||||
}
|
||||
this.addRecipeAction(this.recipe);
|
||||
setTimeout(() => (this.saving = false), 100);
|
||||
this.$navigateBack();
|
||||
},
|
||||
|
@ -819,6 +822,27 @@ export default {
|
|||
}, 100);
|
||||
});
|
||||
},
|
||||
hideUndoBar({ object }) {
|
||||
object
|
||||
.animate({
|
||||
opacity: 0,
|
||||
translate: { x: 0, y: 64 },
|
||||
duration: 250,
|
||||
curve: CoreTypes.AnimationCurve.ease,
|
||||
})
|
||||
.then(() => {
|
||||
this.showUndo = false;
|
||||
this.appbar.translateY = 64;
|
||||
this.appbar.animate({
|
||||
translate: { x: 0, y: 0 },
|
||||
duration: 250,
|
||||
curve: CoreTypes.AnimationCurve.ease,
|
||||
});
|
||||
object.opacity = 1;
|
||||
object.translateY = 0;
|
||||
clearTimeout(undoTimer);
|
||||
});
|
||||
},
|
||||
undoDel() {
|
||||
this.undo = true;
|
||||
},
|
||||
|
@ -910,7 +934,7 @@ export default {
|
|||
let t = this.recipe[time].split(":");
|
||||
let hr = t[0];
|
||||
let min = t[1];
|
||||
this.$showModal(ListPicker, {
|
||||
this.$showModal(TimePickerHM, {
|
||||
props: {
|
||||
title: `${time == "prepTime" ? "prepT" : "cookT"}`,
|
||||
action: "SET",
|
||||
|
@ -962,7 +986,7 @@ export default {
|
|||
navigateBack() {
|
||||
if (this.hasChanges) {
|
||||
this.modalOpen = true;
|
||||
this.$showModal(ConfirmDialog, {
|
||||
this.$showModal(Confirm, {
|
||||
props: {
|
||||
title: "unsaved",
|
||||
description: localize("disc"),
|
||||
|
@ -1001,15 +1025,15 @@ export default {
|
|||
this.tags = this.selectedTag;
|
||||
this.splitTags();
|
||||
}
|
||||
this.recipe.yield.unit = ApplicationSettings.getString(
|
||||
this.recipe.yieldUnit = ApplicationSettings.getString(
|
||||
"previousYieldUnit",
|
||||
"Serving"
|
||||
);
|
||||
if (this.filterFavourites) this.recipe.isFavorite = true;
|
||||
if (this.filterFavourites) this.recipe.favorite = true;
|
||||
if (this.filterTrylater) this.recipe.tried = false;
|
||||
this.recipe.created = new Date();
|
||||
this.recipe.created = new Date().getTime();
|
||||
Object.assign(this.tempRecipe, JSON.parse(JSON.stringify(this.recipe)));
|
||||
this.newRecipeID = this.getRandomID();
|
||||
// this.newRecipeID = this.getRandomID();
|
||||
}
|
||||
},
|
||||
};
|
||||
|
|
|
@ -12,13 +12,13 @@
|
|||
@scroll="!selectMode && onScroll($event)"
|
||||
>
|
||||
<v-template name="header">
|
||||
<GridLayout rows="auto" columns="*, auto, 12">
|
||||
<GridLayout rows="auto" columns="*, auto, 8">
|
||||
<Label class="pageTitle" :text="`${currentComponent}` | L" />
|
||||
<Button
|
||||
col="1"
|
||||
class="ico"
|
||||
:text="icon.cog"
|
||||
@tap="navigateTo(Settings, 'Settings', true)"
|
||||
@tap="navigateTo(AppSettings, 'Settings', true)"
|
||||
/>
|
||||
</GridLayout>
|
||||
</v-template>
|
||||
|
@ -78,8 +78,8 @@
|
|||
<Image
|
||||
class="imgHolder"
|
||||
verticalAlignment="center"
|
||||
v-if="recipe.imageSrc"
|
||||
:src="recipe.imageSrc"
|
||||
v-if="recipe.image"
|
||||
:src="recipe.image"
|
||||
stretch="none"
|
||||
decodeWidth="96"
|
||||
decodeHeight="96"
|
||||
|
@ -143,8 +143,8 @@
|
|||
>
|
||||
<Image
|
||||
class="imgHolder"
|
||||
v-if="recipe.imageSrc"
|
||||
:src="recipe.imageSrc"
|
||||
v-if="recipe.image"
|
||||
:src="recipe.image"
|
||||
stretch="aspectFit"
|
||||
:decodeWidth="imgWidth"
|
||||
:decodeHeight="imgWidth"
|
||||
|
@ -198,8 +198,8 @@
|
|||
>
|
||||
<Image
|
||||
class="imgHolder"
|
||||
v-if="recipe.imageSrc"
|
||||
:src="recipe.imageSrc"
|
||||
v-if="recipe.image"
|
||||
:src="recipe.image"
|
||||
stretch="aspectFit"
|
||||
:decodeWidth="imgWidth"
|
||||
:decodeHeight="imgWidth"
|
||||
|
@ -311,11 +311,20 @@
|
|||
</GridLayout>
|
||||
<GridLayout
|
||||
row="1"
|
||||
rows="auto"
|
||||
rows="auto, auto"
|
||||
columns="auto"
|
||||
class="appbar toolbar"
|
||||
:hidden="!showTools"
|
||||
>
|
||||
<GridLayout
|
||||
rows="48"
|
||||
class="tool"
|
||||
columns="auto, *"
|
||||
@touch="touchTool($event, CookingTimer, 'CookingTimer')"
|
||||
>
|
||||
<Label class="ico" :text="icon.timer" />
|
||||
<Label col="1" :text="'timer' | L" />
|
||||
</GridLayout>
|
||||
<GridLayout
|
||||
row="1"
|
||||
rows="48"
|
||||
|
@ -416,15 +425,17 @@ import {
|
|||
startAccelerometerUpdates,
|
||||
stopAccelerometerUpdates,
|
||||
} from "@triniwiz/nativescript-accelerometer";
|
||||
|
||||
import { mapActions, mapState } from "vuex";
|
||||
import ViewRecipe from "./ViewRecipe";
|
||||
import EditRecipe from "./EditRecipe";
|
||||
import MealPlanner from "./MealPlanner";
|
||||
import CookingTimer from "./CookingTimer";
|
||||
import GroceryList from "./GroceryList";
|
||||
import Settings from "./Settings";
|
||||
import ActionDialog from "./modal/ActionDialog.vue";
|
||||
import ConfirmDialog from "./modal/ConfirmDialog.vue";
|
||||
import Filters from "./modal/Filters.vue";
|
||||
import AppSettings from "./settings/AppSettings";
|
||||
import Action from "./modals/Action";
|
||||
import Confirm from "./modals/Confirm";
|
||||
import Filters from "./modals/Filter";
|
||||
import * as utils from "~/shared/utils";
|
||||
let lastTime = 0;
|
||||
let lastShake = 0;
|
||||
|
@ -445,9 +456,10 @@ export default {
|
|||
scrollPos: 1,
|
||||
filterFavourites: false,
|
||||
filterTrylater: false,
|
||||
AppSettings: AppSettings,
|
||||
MealPlanner: MealPlanner,
|
||||
CookingTimer: CookingTimer,
|
||||
GroceryList: GroceryList,
|
||||
Settings: Settings,
|
||||
topmenu: [
|
||||
{
|
||||
title: "EnRecipes",
|
||||
|
@ -465,13 +477,6 @@ export default {
|
|||
showTools: false,
|
||||
};
|
||||
},
|
||||
components: {
|
||||
ViewRecipe,
|
||||
EditRecipe,
|
||||
MealPlanner,
|
||||
GroceryList,
|
||||
Settings,
|
||||
},
|
||||
computed: {
|
||||
...mapState([
|
||||
"icon",
|
||||
|
@ -488,6 +493,7 @@ export default {
|
|||
"selectedCategory",
|
||||
"selectedTag",
|
||||
"appTheme",
|
||||
"timerSound",
|
||||
]),
|
||||
filteredRecipes() {
|
||||
let vm = this;
|
||||
|
@ -501,7 +507,7 @@ export default {
|
|||
return this.recipes
|
||||
.filter(
|
||||
(e) =>
|
||||
e.isFavorite &&
|
||||
e.favorite &&
|
||||
(e.title.toLowerCase().includes(this.searchQuery) ||
|
||||
getIngredients(e))
|
||||
)
|
||||
|
@ -557,16 +563,16 @@ export default {
|
|||
"setFirstDay",
|
||||
"setLayout",
|
||||
"setSortType",
|
||||
"deleteRecipeAction",
|
||||
"deleteRecipesAction",
|
||||
"deleteRecipes",
|
||||
"clearFilter",
|
||||
"setTheme",
|
||||
"setTimerSound",
|
||||
]),
|
||||
onFrameLoad() {
|
||||
const View = android.view.View;
|
||||
const window = Application.android.startActivity.getWindow();
|
||||
const decorView = window.getDecorView();
|
||||
let sdkv = Device.sdkVersion;
|
||||
let sdkv = Device.sdkVersion * 1;
|
||||
function setColors(color) {
|
||||
window.setStatusBarColor(new Color(color).android);
|
||||
sdkv >= 27 && window.setNavigationBarColor(new Color(color).android);
|
||||
|
@ -597,9 +603,8 @@ export default {
|
|||
: View.SYSTEM_UI_FLAG_DARK_STATUS_BAR
|
||||
);
|
||||
},
|
||||
onPageLoad(args) {
|
||||
const page = args.object;
|
||||
page.bindingContext = new Observable();
|
||||
onPageLoad({ object }) {
|
||||
object.bindingContext = new Observable();
|
||||
this.filterFavourites
|
||||
? this.setComponent("favourites")
|
||||
: this.filterTrylater
|
||||
|
@ -679,7 +684,7 @@ export default {
|
|||
openSort() {
|
||||
this.showTools = false;
|
||||
this.releaseBackEvent();
|
||||
this.$showModal(ActionDialog, {
|
||||
this.$showModal(Action, {
|
||||
props: {
|
||||
title: "srt",
|
||||
list: [
|
||||
|
@ -694,7 +699,7 @@ export default {
|
|||
],
|
||||
},
|
||||
}).then((action) => {
|
||||
if (action && action !== "Cancel" && this.sortType !== action) {
|
||||
if (action && this.sortType !== action) {
|
||||
this.setSortType(action);
|
||||
ApplicationSettings.setString("sortType", action);
|
||||
this.updateSort();
|
||||
|
@ -733,53 +738,35 @@ export default {
|
|||
this.listview.refresh();
|
||||
},
|
||||
deleteSelection() {
|
||||
this.selection.length === 1
|
||||
? this.deleteRecipe(this.selection[0])
|
||||
: this.deleteRecipes(this.selection);
|
||||
this.deletionDialogActive = true;
|
||||
let hasMany = this.selection.length > 1;
|
||||
let what = hasMany
|
||||
? `${this.selection.length} ${localize("recs")}`
|
||||
: `"${
|
||||
this.recipes[
|
||||
this.recipes.findIndex((e) => e.id === this.selection[0])
|
||||
].title
|
||||
}"`;
|
||||
this.$showModal(Confirm, {
|
||||
props: {
|
||||
title: localize("conf"),
|
||||
description: `${localize(
|
||||
hasMany ? "delRecsInfo" : "delRecInfo",
|
||||
what
|
||||
)}`,
|
||||
cancelButtonText: "cBtn",
|
||||
okButtonText: "dBtn",
|
||||
},
|
||||
}).then((action) => {
|
||||
if (action) {
|
||||
this.deleteRecipes(this.selection);
|
||||
if (!this.filteredRecipes.length) this.goToHome();
|
||||
this.clearSelection();
|
||||
}
|
||||
this.deletionDialogActive = false;
|
||||
});
|
||||
},
|
||||
exportSelection() {},
|
||||
deleteRecipe(id) {
|
||||
this.deletionDialogActive = true;
|
||||
let index = this.recipes.findIndex((e) => e.id === id);
|
||||
let recipeTitle = `"${this.recipes[index].title}"`;
|
||||
this.$showModal(ConfirmDialog, {
|
||||
props: {
|
||||
title: localize("conf"),
|
||||
description: `${localize("delRecInfo", recipeTitle)}`,
|
||||
cancelButtonText: "cBtn",
|
||||
okButtonText: "dBtn",
|
||||
},
|
||||
}).then((action) => {
|
||||
if (action) {
|
||||
this.deleteRecipeAction({
|
||||
index,
|
||||
id,
|
||||
});
|
||||
if (!this.filteredRecipes.length) this.goToHome();
|
||||
this.clearSelection();
|
||||
}
|
||||
this.deletionDialogActive = false;
|
||||
});
|
||||
},
|
||||
deleteRecipes(idsArr) {
|
||||
this.deletionDialogActive = true;
|
||||
let selectionCount = `${this.selection.length} ${localize("recs")}`;
|
||||
this.$showModal(ConfirmDialog, {
|
||||
props: {
|
||||
title: localize("conf"),
|
||||
description: `${localize("delRecsInfo", selectionCount)}`,
|
||||
cancelButtonText: "cBtn",
|
||||
okButtonText: "dBtn",
|
||||
},
|
||||
}).then((action) => {
|
||||
if (action) {
|
||||
this.deleteRecipesAction(idsArr);
|
||||
if (!this.filteredRecipes.length) this.goToHome();
|
||||
this.clearSelection();
|
||||
}
|
||||
this.deletionDialogActive = false;
|
||||
});
|
||||
},
|
||||
|
||||
// SHAKE DETECTOR
|
||||
onSensorData({ x, y, z }) {
|
||||
|
@ -836,7 +823,7 @@ export default {
|
|||
count = this.recipes.filter((e) => !e.tried).length;
|
||||
break;
|
||||
case "favourites":
|
||||
count = this.recipes.filter((e) => e.isFavorite).length;
|
||||
count = this.recipes.filter((e) => e.favorite).length;
|
||||
break;
|
||||
default:
|
||||
count = this.recipes.filter((e) => {
|
||||
|
@ -1089,12 +1076,15 @@ export default {
|
|||
},
|
||||
created() {
|
||||
this.setTheme(ApplicationSettings.getString("appTheme", "sysDef"));
|
||||
this.setLayout(ApplicationSettings.getString("layout", "detailed"));
|
||||
if (!this.recipes.length) this.initRecipes();
|
||||
this.initMealPlans();
|
||||
this.initListItems();
|
||||
if (!this.mealPlans.length) this.initMealPlans();
|
||||
this.setShake(ApplicationSettings.getBoolean("shakeEnabled", true));
|
||||
this.setFirstDay(ApplicationSettings.getBoolean("mondayFirst", false));
|
||||
if (!this.timerSound.title) {
|
||||
let hasTimerSound = ApplicationSettings.getString("timerSound", 0);
|
||||
this.setTimerSound(
|
||||
hasTimerSound ? JSON.parse(hasTimerSound) : utils.getTones().defaultTone
|
||||
);
|
||||
}
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
|
|
@ -28,9 +28,8 @@ export default {
|
|||
},
|
||||
methods: {
|
||||
...mapActions(["setComponent"]),
|
||||
onPageLoad(args) {
|
||||
const page = args.object;
|
||||
page.bindingContext = new Observable();
|
||||
onPageLoad({ object }) {
|
||||
object.bindingContext = new Observable();
|
||||
this.setComponent("GroceryList");
|
||||
},
|
||||
// HELPERS
|
||||
|
|
|
@ -7,7 +7,15 @@
|
|||
scrollBarIndicatorVisible="false"
|
||||
>
|
||||
<StackLayout>
|
||||
<Label class="pageTitle" :text="'planner' | L" />
|
||||
<GridLayout rows="auto" columns="*, auto, 8">
|
||||
<Label class="pageTitle" :text="'planner' | L" />
|
||||
<Button
|
||||
col="1"
|
||||
class="ico"
|
||||
:text="icon.cog"
|
||||
@tap="$navigateTo(MPSettings)"
|
||||
/>
|
||||
</GridLayout>
|
||||
<GridLayout
|
||||
class="calendar"
|
||||
columns="*, *, *, *, *, *, *"
|
||||
|
@ -112,31 +120,32 @@
|
|||
col="3"
|
||||
/>
|
||||
</GridLayout>
|
||||
<GridLayout
|
||||
row="1"
|
||||
class="appbar snackBar"
|
||||
<SnackBar
|
||||
:hidden="!showUndo"
|
||||
columns="auto, *, auto"
|
||||
>
|
||||
<Button :text="countdown" class="ico countdown tb" />
|
||||
<Label class="title" col="1" :text="snackMsg | L" />
|
||||
<Button class="ico fab" :text="icon.undo" @tap="undoDel" col="3" />
|
||||
</GridLayout>
|
||||
:count="countdown"
|
||||
:msg="snackMsg"
|
||||
:undo="undoDel"
|
||||
:action="hideUndoBar"
|
||||
/>
|
||||
</GridLayout>
|
||||
</Page>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { ApplicationSettings, Observable, CoreTypes } from "@nativescript/core";
|
||||
import { Observable, CoreTypes } from "@nativescript/core";
|
||||
import { mapState, mapActions } from "vuex";
|
||||
import ViewRecipe from "./ViewRecipe.vue";
|
||||
import ActionDialogWithSearch from "./modal/ActionDialogWithSearch.vue";
|
||||
import ViewRecipe from "./ViewRecipe";
|
||||
import MPSettings from "./settings/MPSettings";
|
||||
import ActionWithSearch from "./modals/ActionWithSearch";
|
||||
import SnackBar from "./sub/SnackBar";
|
||||
let undoTimer;
|
||||
|
||||
export default {
|
||||
components: {
|
||||
SnackBar,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
appTheme: "Light",
|
||||
mealTimes: ["breakfast", "lunch", "dinner", "snacks"],
|
||||
dNames: ["MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"],
|
||||
year: 2021,
|
||||
|
@ -163,6 +172,7 @@ export default {
|
|||
snackMsg: null,
|
||||
showUndo: false,
|
||||
undo: false,
|
||||
MPSettings: MPSettings,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
|
@ -181,8 +191,9 @@ export default {
|
|||
} else return 0;
|
||||
},
|
||||
getDayNames() {
|
||||
if (!this.mondayFirst) this.dNames.unshift(this.dNames.pop());
|
||||
return this.dNames;
|
||||
let dNames = [...this.dNames];
|
||||
if (!this.mondayFirst) dNames.unshift(dNames.pop());
|
||||
return dNames;
|
||||
},
|
||||
getCal() {
|
||||
let y = this.year;
|
||||
|
@ -216,9 +227,8 @@ export default {
|
|||
"addMealPlanAction",
|
||||
"deleteMealPlanAction",
|
||||
]),
|
||||
onPageLoad(args) {
|
||||
const page = args.object;
|
||||
page.bindingContext = new Observable();
|
||||
onPageLoad({ object }) {
|
||||
object.bindingContext = new Observable();
|
||||
this.setComponent("MealPlanner");
|
||||
if (!this.today || this.today === new Date().getDate()) this.goToToday();
|
||||
},
|
||||
|
@ -316,12 +326,11 @@ export default {
|
|||
setToday(date) {
|
||||
if (date) this.today = date;
|
||||
},
|
||||
newMealPlan(title, date, type, index) {
|
||||
newMealPlan(date, type, title) {
|
||||
this.addMealPlanAction({
|
||||
title,
|
||||
date: date ? date : this.todaysTime,
|
||||
type,
|
||||
index,
|
||||
title,
|
||||
});
|
||||
},
|
||||
toggleEditMode() {
|
||||
|
@ -332,30 +341,22 @@ export default {
|
|||
let filteredRecipes = this.recipes.filter((e) =>
|
||||
this.getRecipes[type] ? !this.getRecipes[type].includes(e.id) : true
|
||||
);
|
||||
this.$showModal(ActionDialogWithSearch, {
|
||||
this.$showModal(ActionWithSearch, {
|
||||
props: {
|
||||
title: "selRec",
|
||||
recipes: filteredRecipes,
|
||||
},
|
||||
}).then((title) => {
|
||||
title && this.newMealPlan(title, null, type, null);
|
||||
});
|
||||
}).then((title) => title && this.newMealPlan(null, type, title));
|
||||
},
|
||||
removeRecipe(title, type) {
|
||||
let date = this.todaysTime;
|
||||
let index = this.mealPlans.findIndex(
|
||||
(e) => e.title === title && e.type === type && e.date === date
|
||||
);
|
||||
let mealPlan = {
|
||||
title,
|
||||
date,
|
||||
type,
|
||||
index,
|
||||
title,
|
||||
};
|
||||
this.deleteMealPlanAction(mealPlan);
|
||||
this.showUndoBar("recRm").then((res) =>
|
||||
this.newMealPlan(title, date, type, index)
|
||||
);
|
||||
this.showUndoBar("recRm").then(() => this.newMealPlan(date, type, title));
|
||||
},
|
||||
showUndoBar(message) {
|
||||
return new Promise((resolve, reject) => {
|
||||
|
@ -379,12 +380,30 @@ export default {
|
|||
}, 100);
|
||||
});
|
||||
},
|
||||
hideUndoBar({ object }) {
|
||||
object
|
||||
.animate({
|
||||
opacity: 0,
|
||||
translate: { x: 0, y: 64 },
|
||||
duration: 250,
|
||||
curve: CoreTypes.AnimationCurve.ease,
|
||||
})
|
||||
.then(() => {
|
||||
this.showUndo = false;
|
||||
this.appbar.translateY = 64;
|
||||
this.appbar.animate({
|
||||
translate: { x: 0, y: 0 },
|
||||
duration: 250,
|
||||
curve: CoreTypes.AnimationCurve.ease,
|
||||
});
|
||||
object.opacity = 1;
|
||||
object.translateY = 0;
|
||||
clearTimeout(undoTimer);
|
||||
});
|
||||
},
|
||||
undoDel() {
|
||||
this.undo = true;
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.appTheme = ApplicationSettings.getString("appTheme", "Light");
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
|
|
@ -1,106 +0,0 @@
|
|||
<template>
|
||||
<Page @loaded="onPageLoad" actionBarHidden="true">
|
||||
<GridLayout rows="*, auto" columns="auto, *">
|
||||
<ListView
|
||||
colSpan="2"
|
||||
rowSpan="2"
|
||||
class="options-list"
|
||||
for="item in items"
|
||||
>
|
||||
<v-template if="$index == 0">
|
||||
<Label class="pageTitle" :text="'Settings' | L" />
|
||||
</v-template>
|
||||
<v-template if="$index == 6">
|
||||
<StackLayout class="listSpace"> </StackLayout>
|
||||
</v-template>
|
||||
<v-template>
|
||||
<GridLayout
|
||||
columns="auto, *"
|
||||
class="option"
|
||||
@touch="touch($event, item.view)"
|
||||
>
|
||||
<Label
|
||||
verticalAlignment="center"
|
||||
class="ico"
|
||||
:text="icon[item.icon]"
|
||||
/>
|
||||
<Label verticalAlignment="center" col="1" :text="item.title | L" />
|
||||
</GridLayout>
|
||||
</v-template>
|
||||
</ListView>
|
||||
<GridLayout row="1" class="appbar" rows="*" columns="auto, *">
|
||||
<Button class="ico" :text="icon.back" @tap="$navigateBack()" />
|
||||
</GridLayout>
|
||||
</GridLayout>
|
||||
</Page>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Observable } from "@nativescript/core";
|
||||
import { mapState, mapActions } from "vuex";
|
||||
import Interface from "./Settings/Interface.vue";
|
||||
import Options from "./Settings/Options.vue";
|
||||
import Database from "./Settings/Database.vue";
|
||||
import Reset from "./Settings/Reset.vue";
|
||||
import About from "./Settings/About.vue";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
items: [
|
||||
{},
|
||||
{
|
||||
icon: "interface",
|
||||
title: "intf",
|
||||
view: Interface,
|
||||
},
|
||||
{
|
||||
icon: "opts",
|
||||
title: "opts",
|
||||
view: Options,
|
||||
},
|
||||
{
|
||||
icon: "db",
|
||||
title: "db",
|
||||
view: Database,
|
||||
},
|
||||
{
|
||||
icon: "reset",
|
||||
title: "rest",
|
||||
view: Reset,
|
||||
},
|
||||
{
|
||||
icon: "info",
|
||||
title: "About",
|
||||
view: About,
|
||||
},
|
||||
{},
|
||||
],
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapState(["icon"]),
|
||||
},
|
||||
methods: {
|
||||
...mapActions(["setComponent"]),
|
||||
onPageLoad(args) {
|
||||
const page = args.object;
|
||||
page.bindingContext = new Observable();
|
||||
this.setComponent("Settings");
|
||||
},
|
||||
// HELPERS
|
||||
navigateTo(view) {
|
||||
this.$navigateTo(view, {
|
||||
transition: {
|
||||
name: "slide",
|
||||
duration: 200,
|
||||
curve: "easeOut",
|
||||
},
|
||||
});
|
||||
},
|
||||
touch({ object, action }, view) {
|
||||
object.className = action.match(/down|move/) ? "option fade" : "option";
|
||||
if (action == "up") this.navigateTo(view);
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
|
@ -1,139 +0,0 @@
|
|||
<template>
|
||||
<Page @loaded="onPageLoad" actionBarHidden="true">
|
||||
<GridLayout rows="*, auto" columns="auto, *">
|
||||
<ListView
|
||||
colSpan="2"
|
||||
rowSpan="2"
|
||||
class="options-list"
|
||||
for="item in items"
|
||||
>
|
||||
<v-template if="$index == 0">
|
||||
<Label class="pageTitle" :text="'Settings' | L" />
|
||||
</v-template>
|
||||
<v-template if="item.type == 'switch'">
|
||||
<GridLayout columns="auto, *, auto" class="option">
|
||||
<Label class="ico" :text="icon[item.icon]" />
|
||||
<StackLayout col="1" verticalAlignment="center">
|
||||
<Label :text="item.title | L" class="info" />
|
||||
<Label
|
||||
v-if="item.subTitle"
|
||||
:text="item.subTitle | L"
|
||||
class="sub"
|
||||
/>
|
||||
</StackLayout>
|
||||
<Switch
|
||||
:color="item.checked ? '#ff5200' : '#adb5bd'"
|
||||
col="2"
|
||||
:checked="item.checked"
|
||||
@checkedChange="item.action"
|
||||
/>
|
||||
</GridLayout>
|
||||
</v-template>
|
||||
<v-template if="item.type == 'list'">
|
||||
<GridLayout
|
||||
columns="auto, *"
|
||||
class="option"
|
||||
@touch="touch($event, item.action)"
|
||||
>
|
||||
<Label class="ico" :text="icon[item.icon]" />
|
||||
<StackLayout col="1">
|
||||
<Label :text="item.title | L" class="info" />
|
||||
<Label :text="item.subTitle" class="sub" />
|
||||
</StackLayout>
|
||||
</GridLayout>
|
||||
</v-template>
|
||||
<v-template>
|
||||
<StackLayout class="listSpace"> </StackLayout>
|
||||
</v-template>
|
||||
</ListView>
|
||||
<GridLayout row="1" class="appbar" rows="*" columns="auto, *">
|
||||
<Button class="ico" :text="icon.back" @tap="$navigateBack()" />
|
||||
</GridLayout>
|
||||
</GridLayout>
|
||||
</Page>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Observable } from "@nativescript/core";
|
||||
import { mapState, mapActions } from "vuex";
|
||||
import { localize } from "@nativescript/localize";
|
||||
import ActionDialog from "../modal/ActionDialog.vue";
|
||||
import * as utils from "~/shared/utils";
|
||||
|
||||
export default {
|
||||
computed: {
|
||||
...mapState(["icon", "timerDelay", "timerSound", "timerVibrate"]),
|
||||
items() {
|
||||
return [
|
||||
{},
|
||||
{
|
||||
type: "list",
|
||||
icon: "delay",
|
||||
title: "dlyDur",
|
||||
subTitle: this.timerDelay,
|
||||
action: this.showDelayList,
|
||||
},
|
||||
{
|
||||
type: "list",
|
||||
icon: "sound",
|
||||
title: "tmrSnd",
|
||||
subTitle: this.timerSound.title,
|
||||
action: this.showSoundsList,
|
||||
},
|
||||
{
|
||||
type: "switch",
|
||||
icon: "vibrate",
|
||||
title: "tmrvbrt",
|
||||
checked: this.timerVibrate,
|
||||
action: this.toggleTimerVibrate,
|
||||
},
|
||||
{},
|
||||
];
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
...mapActions(["setTimerDelay", "setTimerSound", "setTimerVibrate"]),
|
||||
onPageLoad(args) {
|
||||
const page = args.object;
|
||||
page.bindingContext = new Observable();
|
||||
},
|
||||
toggleTimerVibrate({ object }) {
|
||||
this.setTimerVibrate(object.checked);
|
||||
},
|
||||
showDelayList() {
|
||||
let list = [
|
||||
...Array.from(Array(4), (_, x) => x + 1),
|
||||
...Array.from(Array(6), (_, x) => (x + 1) * 5),
|
||||
].map(
|
||||
(e, i) => `${e} ${i == 0 ? localize("minute") : localize("minutes")}`
|
||||
);
|
||||
this.$showModal(ActionDialog, {
|
||||
props: {
|
||||
title: "dlyDur",
|
||||
list,
|
||||
},
|
||||
}).then((dur) => dur && this.setTimerDelay(dur));
|
||||
},
|
||||
showSoundsList() {
|
||||
let tones = utils.getTones();
|
||||
this.$showModal(ActionDialog, {
|
||||
props: {
|
||||
title: "tmrSnd",
|
||||
list: tones.map((e) => e.title),
|
||||
},
|
||||
}).then(
|
||||
(tone) =>
|
||||
tone &&
|
||||
tone !== this.timerSound.title &&
|
||||
this.setTimerSound(tones.filter((e) => e.title === tone)[0])
|
||||
);
|
||||
},
|
||||
|
||||
// HELPERS
|
||||
touch({ object, action }, method) {
|
||||
object.className = action.match(/down|move/) ? "option fade" : "option";
|
||||
if (action == "up") method();
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
|
@ -1,119 +0,0 @@
|
|||
<template>
|
||||
<Page @loaded="onPageLoad" actionBarHidden="true">
|
||||
<GridLayout rows="*, auto" columns="auto, *">
|
||||
<ListView
|
||||
colSpan="2"
|
||||
rowSpan="2"
|
||||
class="options-list"
|
||||
for="item in items"
|
||||
>
|
||||
<v-template if="$index == 0">
|
||||
<Label class="pageTitle" :text="'opts' | L" />
|
||||
</v-template>
|
||||
<v-template if="item.type == 'switch'">
|
||||
<GridLayout columns="auto, *, auto" class="option">
|
||||
<Label class="ico" :text="icon[item.icon]" />
|
||||
<StackLayout col="1" verticalAlignment="center">
|
||||
<Label :text="item.title | L" class="info" />
|
||||
<Label
|
||||
v-if="item.subTitle"
|
||||
:text="item.subTitle | L"
|
||||
class="sub"
|
||||
/>
|
||||
</StackLayout>
|
||||
<Switch
|
||||
:color="item.checked ? '#ff5200' : '#adb5bd'"
|
||||
col="2"
|
||||
:checked="item.checked"
|
||||
@checkedChange="item.action"
|
||||
/>
|
||||
</GridLayout>
|
||||
</v-template>
|
||||
<v-template>
|
||||
<StackLayout class="listSpace"> </StackLayout>
|
||||
</v-template>
|
||||
</ListView>
|
||||
<GridLayout
|
||||
v-show="!toast"
|
||||
row="1"
|
||||
class="appbar"
|
||||
rows="*"
|
||||
columns="auto, *"
|
||||
>
|
||||
<Button class="ico" :text="icon.back" @tap="$navigateBack()" />
|
||||
</GridLayout>
|
||||
<GridLayout
|
||||
v-show="toast"
|
||||
row="1"
|
||||
colSpan="2"
|
||||
class="appbar snackBar"
|
||||
columns="*"
|
||||
@tap="toast = null"
|
||||
>
|
||||
<FlexboxLayout minHeight="48" alignItems="center">
|
||||
<Label class="title msg" :text="toast" />
|
||||
</FlexboxLayout>
|
||||
</GridLayout>
|
||||
</GridLayout>
|
||||
</Page>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Observable } from "@nativescript/core";
|
||||
import { mapState, mapActions } from "vuex";
|
||||
import { localize } from "@nativescript/localize";
|
||||
import * as utils from "~/shared/utils";
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
toast: null,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapState(["icon", "shakeEnabled", "mondayFirst"]),
|
||||
items() {
|
||||
return [
|
||||
{},
|
||||
{
|
||||
type: "switch",
|
||||
icon: "shuf",
|
||||
title: "sVw",
|
||||
subTitle: "sVwInfo",
|
||||
checked: this.shakeEnabled,
|
||||
action: this.toggleShake,
|
||||
},
|
||||
{
|
||||
type: "switch",
|
||||
icon: "week",
|
||||
title: "swm",
|
||||
checked: this.mondayFirst,
|
||||
action: this.toggleFirstDay,
|
||||
},
|
||||
{},
|
||||
];
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
...mapActions(["setShake", "setFirstDay"]),
|
||||
onPageLoad(args) {
|
||||
const page = args.object;
|
||||
page.bindingContext = new Observable();
|
||||
},
|
||||
toggleFirstDay({ object }) {
|
||||
this.setFirstDay(object.checked);
|
||||
},
|
||||
// SHAKE VIEW RANDOM RECIPE
|
||||
toggleShake({ object }) {
|
||||
let checked = object.checked;
|
||||
if (checked && !utils.hasAccelerometer()) {
|
||||
object.checked = false;
|
||||
this.toast = localize("noAccSensor");
|
||||
utils.timer(5, (val) => {
|
||||
if (!val) this.toast = val;
|
||||
});
|
||||
} else this.setShake(checked);
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
|
@ -1,112 +0,0 @@
|
|||
<template>
|
||||
<Page @loaded="onPageLoad" actionBarHidden="true">
|
||||
<GridLayout rows="*, auto" columns="auto, *">
|
||||
<ListView
|
||||
colSpan="2"
|
||||
rowSpan="2"
|
||||
class="options-list"
|
||||
for="item in items"
|
||||
>
|
||||
<v-template if="$index == 0">
|
||||
<Label class="pageTitle" :text="'rest' | L" />
|
||||
</v-template>
|
||||
<v-template if="$index == 5">
|
||||
<Label class="group-info sub tw" :text="'restInfo' | L" />
|
||||
</v-template>
|
||||
<v-template if="$index == 6">
|
||||
<StackLayout class="listSpace"> </StackLayout>
|
||||
</v-template>
|
||||
<v-template>
|
||||
<GridLayout
|
||||
columns="auto, *"
|
||||
class="option"
|
||||
@touch="touch($event, item.type)"
|
||||
>
|
||||
<Label class="ico" :text="icon.reset" />
|
||||
<Label col="1" :text="item.title | L" class="info" />
|
||||
</GridLayout>
|
||||
</v-template>
|
||||
</ListView>
|
||||
<GridLayout
|
||||
v-show="!toast"
|
||||
row="1"
|
||||
class="appbar"
|
||||
rows="*"
|
||||
columns="auto, *"
|
||||
>
|
||||
<Button class="ico" :text="icon.back" @tap="$navigateBack()" />
|
||||
</GridLayout>
|
||||
<GridLayout
|
||||
v-show="toast"
|
||||
row="1"
|
||||
colSpan="2"
|
||||
class="appbar snackBar"
|
||||
columns="*"
|
||||
@tap="toast = null"
|
||||
>
|
||||
<FlexboxLayout minHeight="48" alignItems="center">
|
||||
<Label class="title msg" :text="toast" />
|
||||
</FlexboxLayout>
|
||||
</GridLayout>
|
||||
</GridLayout>
|
||||
</Page>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Observable } from "@nativescript/core";
|
||||
import { localize } from "@nativescript/localize";
|
||||
import { mapState, mapActions } from "vuex";
|
||||
import * as utils from "~/shared/utils";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
toast: null,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapState(["icon"]),
|
||||
items() {
|
||||
return [
|
||||
{},
|
||||
{
|
||||
type: "cuisines",
|
||||
title: "restCuiL",
|
||||
},
|
||||
{
|
||||
type: "categories",
|
||||
title: "restCatL",
|
||||
},
|
||||
{
|
||||
type: "yieldUnits",
|
||||
title: "restYUL",
|
||||
},
|
||||
{
|
||||
type: "units",
|
||||
title: "restUL",
|
||||
},
|
||||
{},
|
||||
{},
|
||||
];
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
...mapActions(["resetListItemsAction"]),
|
||||
onPageLoad(args) {
|
||||
const page = args.object;
|
||||
page.bindingContext = new Observable();
|
||||
},
|
||||
// RESET
|
||||
resetListItems(listName) {
|
||||
this.resetListItemsAction(listName);
|
||||
this.toast = localize("restDone");
|
||||
utils.timer(5, (val) => {
|
||||
if (!val) this.toast = val;
|
||||
});
|
||||
},
|
||||
touch({ object, action }, type) {
|
||||
object.className = action.match(/down|move/) ? "option fade" : "option";
|
||||
if (action == "up") this.resetListItems(type);
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
|
@ -26,8 +26,8 @@
|
|||
</StackLayout>
|
||||
<Image
|
||||
col="1"
|
||||
v-if="recipe.imageSrc"
|
||||
:src="recipe.imageSrc"
|
||||
v-if="recipe.image"
|
||||
:src="recipe.image"
|
||||
stretch="aspectFit"
|
||||
class="photo"
|
||||
decodeWidth="96"
|
||||
|
@ -81,8 +81,9 @@
|
|||
<Label
|
||||
@touch="touchYield"
|
||||
class="value clickable"
|
||||
horizontalAlignment="left"
|
||||
:text="`${tempYieldQuantity} ${$options.filters.L(
|
||||
recipe.yield.unit
|
||||
recipe.yieldUnit
|
||||
)}`"
|
||||
/>
|
||||
</StackLayout>
|
||||
|
@ -183,7 +184,7 @@
|
|||
@loaded="onAppBarLoad"
|
||||
class="appbar"
|
||||
v-show="!toast"
|
||||
columns="auto, *, auto, auto, auto, auto"
|
||||
columns="auto, *, auto, auto, auto, auto, auto"
|
||||
>
|
||||
<Button
|
||||
class="ico"
|
||||
|
@ -192,57 +193,53 @@
|
|||
/>
|
||||
<Button
|
||||
col="2"
|
||||
class="ico"
|
||||
:text="icon.timer"
|
||||
@tap="openCookingTimer"
|
||||
/>
|
||||
<Button
|
||||
col="3"
|
||||
v-if="!filterTrylater"
|
||||
class="ico"
|
||||
:text="recipe.tried ? icon.try : icon.tried"
|
||||
@tap="toggle('tried')"
|
||||
/>
|
||||
<Button
|
||||
col="2"
|
||||
col="3"
|
||||
v-else
|
||||
class="ico"
|
||||
:text="icon.done"
|
||||
@tap="recipeTried"
|
||||
/>
|
||||
<Button
|
||||
col="3"
|
||||
class="ico"
|
||||
:text="recipe.isFavorite ? icon.faved : icon.fav"
|
||||
@tap="toggle('isFavorite')"
|
||||
@tap="toggle('tried', true)"
|
||||
/>
|
||||
<Button
|
||||
col="4"
|
||||
class="ico"
|
||||
:text="recipe.favorite ? icon.faved : icon.fav"
|
||||
@tap="toggle('favorite')"
|
||||
/>
|
||||
<Button
|
||||
col="5"
|
||||
v-if="!busy"
|
||||
class="ico"
|
||||
:text="icon.edit"
|
||||
@tap="editRecipe"
|
||||
/>
|
||||
<ActivityIndicator col="4" v-else :busy="busy" />
|
||||
<ActivityIndicator col="5" v-else :busy="busy" />
|
||||
<Button
|
||||
col="6"
|
||||
class="ico fab"
|
||||
:text="icon.share"
|
||||
col="5"
|
||||
@tap="shareHandler"
|
||||
/>
|
||||
</GridLayout>
|
||||
<GridLayout
|
||||
v-show="toast"
|
||||
row="1"
|
||||
class="appbar snackBar"
|
||||
columns="*"
|
||||
@tap="toast = null"
|
||||
>
|
||||
<FlexboxLayout minHeight="48" alignItems="center">
|
||||
<Label class="title msg" :text="toast" />
|
||||
</FlexboxLayout>
|
||||
</GridLayout>
|
||||
<Toast :toast="toast" :action="hideLastTried" />
|
||||
<AbsoluteLayout rowSpan="2">
|
||||
<Image
|
||||
@tap="({ object }) => (object.cancel = true)"
|
||||
backgroundColor="black"
|
||||
stretch="aspectFit"
|
||||
@loaded="onImgViewLoad"
|
||||
:src="recipe.imageSrc"
|
||||
:src="recipe.image"
|
||||
class="photoviewer"
|
||||
/>
|
||||
</AbsoluteLayout>
|
||||
|
@ -266,11 +263,14 @@ import {
|
|||
import { localize } from "@nativescript/localize";
|
||||
const intl = require("nativescript-intl");
|
||||
import { mapActions, mapState } from "vuex";
|
||||
import CookingTimer from "./CookingTimer.vue";
|
||||
import EditRecipe from "./EditRecipe.vue";
|
||||
import ActionDialog from "./modal/ActionDialog.vue";
|
||||
import PromptDialog from "./modal/PromptDialog.vue";
|
||||
import Action from "./modals/Action.vue";
|
||||
import Toast from "./sub/Toast.vue";
|
||||
import Prompt from "./modals/Prompt.vue";
|
||||
import * as utils from "~/shared/utils";
|
||||
export default {
|
||||
components: { Toast },
|
||||
props: ["filterTrylater", "recipeID"],
|
||||
data() {
|
||||
return {
|
||||
|
@ -325,18 +325,15 @@ export default {
|
|||
...mapActions([
|
||||
"toggleStateAction",
|
||||
"setComponent",
|
||||
"overwriteRecipeAction",
|
||||
"setRecipeAsTriedAction",
|
||||
"setRatingAction",
|
||||
"toggleCartAction",
|
||||
]),
|
||||
onPageLoad(args) {
|
||||
const page = args.object;
|
||||
page.bindingContext = new Observable();
|
||||
onPageLoad({ object }) {
|
||||
object.bindingContext = new Observable();
|
||||
this.busy = this.photoOpen = false;
|
||||
this.setComponent("ViewRecipe");
|
||||
if (this.yieldMultiplier == this.recipe.yield.quantity)
|
||||
this.yieldMultiplier = this.recipe.yield.quantity;
|
||||
if (this.yieldMultiplier == this.recipe.yieldQuantity)
|
||||
this.yieldMultiplier = this.recipe.yieldQuantity;
|
||||
this.keepScreenOn(true);
|
||||
this.syncCombinations();
|
||||
},
|
||||
|
@ -374,7 +371,6 @@ export default {
|
|||
onStickyLoad({ object }) {
|
||||
this.sticky = object;
|
||||
},
|
||||
// FIX: scroll not smooth
|
||||
fixTitle({ object }, swipeUp: boolean): void {
|
||||
let ingL = this.recipe.ingredients.length;
|
||||
let insL = this.recipe.instructions.length;
|
||||
|
@ -394,17 +390,6 @@ export default {
|
|||
{ length: 4 },
|
||||
(v, i) => (v = arr[i] ? i < n : false)
|
||||
);
|
||||
// this.sticky
|
||||
// .animate({
|
||||
// opacity: 0.5,
|
||||
// duration: 0,
|
||||
// })
|
||||
// .then(() => {
|
||||
// this.sticky.animate({
|
||||
// opacity: 1,
|
||||
// duration: 250,
|
||||
// });
|
||||
// });
|
||||
};
|
||||
|
||||
if (swipeUp) {
|
||||
|
@ -467,9 +452,9 @@ export default {
|
|||
return localize(title) + text;
|
||||
},
|
||||
changeYield() {
|
||||
this.$showModal(PromptDialog, {
|
||||
this.$showModal(Prompt, {
|
||||
props: {
|
||||
title: `${localize("req", localize(this.recipe.yield.unit))}`,
|
||||
title: `${localize("req", localize(this.recipe.yieldUnit))}`,
|
||||
placeholder: Math.abs(parseFloat(this.yieldMultiplier)),
|
||||
action: "SET",
|
||||
},
|
||||
|
@ -480,8 +465,7 @@ export default {
|
|||
hasTime(time) {
|
||||
return time != "00:00";
|
||||
},
|
||||
niceDate(time) {
|
||||
let lastTried = new Date(time).getTime();
|
||||
niceDate(lastTried) {
|
||||
let now = new Date().getTime();
|
||||
let midnight = new Date().setHours(0, 0, 0, 0);
|
||||
let diff = (now - lastTried) / 1000;
|
||||
|
@ -506,19 +490,40 @@ export default {
|
|||
if (!val) this.toast = val;
|
||||
});
|
||||
},
|
||||
hideLastTried({ object }) {
|
||||
object
|
||||
.animate({
|
||||
opacity: 0,
|
||||
translate: { x: 0, y: 64 },
|
||||
duration: 250,
|
||||
curve: CoreTypes.AnimationCurve.ease,
|
||||
})
|
||||
.then(() => {
|
||||
this.showUndo = false;
|
||||
this.appbar.translateY = 64;
|
||||
this.appbar.animate({
|
||||
translate: { x: 0, y: 0 },
|
||||
duration: 250,
|
||||
curve: CoreTypes.AnimationCurve.ease,
|
||||
});
|
||||
object.opacity = 1;
|
||||
object.translateY = 0;
|
||||
this.toast = null;
|
||||
});
|
||||
},
|
||||
// getMeasure(value: number, unit: string) {
|
||||
// let vm = this;
|
||||
// function roundedQ(val: number) {
|
||||
// return Math.abs(
|
||||
// Math.round(
|
||||
// (val / vm.recipe.yield.quantity) * vm.tempYieldQuantity * 100
|
||||
// (val / vm.recipe.yieldQuantity) * vm.tempYieldQuantity * 100
|
||||
// ) / 100
|
||||
// );
|
||||
// }
|
||||
// if (value) {
|
||||
// let rounded = Math.abs(
|
||||
// Math.round(
|
||||
// (value / this.recipe.yield.quantity) * this.tempYieldQuantity * 100
|
||||
// (value / this.recipe.yieldQuantity) * this.tempYieldQuantity * 100
|
||||
// ) / 100
|
||||
// );
|
||||
// let lUnit = localize(unit);
|
||||
|
@ -551,7 +556,7 @@ export default {
|
|||
roundedQuantity(quantity: number) {
|
||||
return Math.abs(
|
||||
Math.round(
|
||||
(quantity / this.recipe.yield.quantity) * this.tempYieldQuantity * 100
|
||||
(quantity / this.recipe.yieldQuantity) * this.tempYieldQuantity * 100
|
||||
) / 100
|
||||
);
|
||||
},
|
||||
|
@ -598,10 +603,10 @@ export default {
|
|||
)
|
||||
.map((e) => e.id);
|
||||
this.recipe.combinations = combinationForOtherRecipes;
|
||||
this.overwriteRecipeAction({
|
||||
id: this.currentRecipeID,
|
||||
recipe: this.recipe,
|
||||
});
|
||||
// this.overwriteRecipeAction({
|
||||
// id: this.currentRecipeID,
|
||||
// recipe: this.recipe,
|
||||
// });
|
||||
},
|
||||
touchIngredient({ object, action }, index) {
|
||||
object.className = action.match(/down|move/)
|
||||
|
@ -672,14 +677,14 @@ export default {
|
|||
this.currentRecipeID = combination;
|
||||
this.syncCombinations();
|
||||
this.createNotes();
|
||||
this.yieldMultiplier = this.recipe.yield.quantity;
|
||||
this.yieldMultiplier = this.recipe.yieldQuantity;
|
||||
this.recipe.tried && this.recipe.lastTried && this.showLastTried();
|
||||
},
|
||||
|
||||
// SHARE ACTION
|
||||
shareHandler() {
|
||||
if (this.recipe.imageSrc) {
|
||||
this.$showModal(ActionDialog, {
|
||||
if (this.recipe.image) {
|
||||
this.$showModal(Action, {
|
||||
props: {
|
||||
title: "shr",
|
||||
list: ["rec", "pht"],
|
||||
|
@ -690,7 +695,7 @@ export default {
|
|||
this.shareRecipe();
|
||||
break;
|
||||
case "pht":
|
||||
ImageSource.fromFile(this.recipe.imageSrc).then((res) =>
|
||||
ImageSource.fromFile(this.recipe.image).then((res) =>
|
||||
utils.shareImage(res, localize("srpu"))
|
||||
);
|
||||
break;
|
||||
|
@ -718,7 +723,7 @@ export default {
|
|||
this.recipe.cookTime
|
||||
)}\n`;
|
||||
overview += `${localize("yld")}: ${this.tempYieldQuantity} ${localize(
|
||||
this.recipe.yield.unit
|
||||
this.recipe.yieldUnit
|
||||
)}\n${localize("Difficulty level")}: ${localize(
|
||||
this.recipe.difficulty
|
||||
)}\n`;
|
||||
|
@ -765,26 +770,18 @@ export default {
|
|||
},
|
||||
|
||||
// DATA HANDLERS
|
||||
toggle(key, setDate) {
|
||||
toggle(key: string, setDate: boolean) {
|
||||
this.toggleStateAction({
|
||||
id: this.currentRecipeID,
|
||||
recipe: this.recipe,
|
||||
key,
|
||||
setDate,
|
||||
});
|
||||
},
|
||||
recipeTried() {
|
||||
this.setRecipeAsTriedAction({
|
||||
id: this.currentRecipeID,
|
||||
recipe: this.recipe,
|
||||
});
|
||||
this.$navigateBack();
|
||||
if (setDate) this.$navigateBack();
|
||||
},
|
||||
setRating(rating) {
|
||||
if (rating !== this.recipe.rating || rating === 1) {
|
||||
this.setRatingAction({
|
||||
id: this.currentRecipeID,
|
||||
recipe: this.recipe,
|
||||
rating,
|
||||
});
|
||||
}
|
||||
|
@ -797,7 +794,6 @@ export default {
|
|||
}
|
||||
this.toggleCartAction({
|
||||
id: this.currentRecipeID,
|
||||
recipe: this.recipe,
|
||||
});
|
||||
},
|
||||
|
||||
|
@ -855,7 +851,6 @@ export default {
|
|||
} else this.$navigateBack();
|
||||
},
|
||||
viewPhoto() {
|
||||
// this.imgView.initNativeView();
|
||||
this.photoOpen = true;
|
||||
this.hijackBackEvent();
|
||||
let pv = this.imgView;
|
||||
|
@ -920,6 +915,14 @@ export default {
|
|||
this.photoOpen ? this.closePhoto() : this.$navigateBack();
|
||||
},
|
||||
|
||||
//TIMERS
|
||||
openCookingTimer() {
|
||||
this.$navigateTo(CookingTimer, {
|
||||
props: {
|
||||
recipeID: this.recipe.id,
|
||||
},
|
||||
});
|
||||
},
|
||||
//HELPERS
|
||||
touchYield({ object, action }) {
|
||||
object.className = action.match(/down|move/)
|
||||
|
@ -933,7 +936,7 @@ export default {
|
|||
this.recipe.ingredients.forEach((e) => this.checks.push(false));
|
||||
},
|
||||
mounted() {
|
||||
this.yieldMultiplier = this.recipe.yield.quantity;
|
||||
this.yieldMultiplier = this.recipe.yieldQuantity;
|
||||
this.recipe.tried && this.recipe.lastTried && this.showLastTried();
|
||||
},
|
||||
};
|
||||
|
|
|
@ -50,7 +50,7 @@
|
|||
import { Screen } from "@nativescript/core";
|
||||
import { localize } from "@nativescript/localize";
|
||||
import { mapState, mapActions } from "vuex";
|
||||
import ConfirmDialog from "./ConfirmDialog.vue";
|
||||
import Confirm from "./Confirm.vue";
|
||||
|
||||
interface IData {
|
||||
newList: unknown[];
|
||||
|
@ -92,7 +92,7 @@ export default {
|
|||
this.$modal.close(item);
|
||||
},
|
||||
deletionConfirmation(description: string): void {
|
||||
return this.$showModal(ConfirmDialog, {
|
||||
return this.$showModal(Confirm, {
|
||||
props: {
|
||||
title: "conf",
|
||||
description,
|
|
@ -11,11 +11,7 @@
|
|||
v-if="filteredRecipes.length || searchQuery"
|
||||
class="input"
|
||||
>
|
||||
<TextField
|
||||
class="modalInput"
|
||||
:hint="'ser' | L"
|
||||
v-model="searchQuery"
|
||||
/>
|
||||
<TextField class="modalInput" :hint="'ser' | L" v-model="searchQuery" />
|
||||
</StackLayout>
|
||||
<ListView row="2" for="recipe in filteredRecipes">
|
||||
<v-template>
|
||||
|
@ -48,7 +44,7 @@
|
|||
<Button
|
||||
col="2"
|
||||
class="text sm"
|
||||
:text="'CANCEL' | L"
|
||||
:text="'cBtn' | L"
|
||||
@tap="$modal.close(false)"
|
||||
/>
|
||||
</GridLayout>
|
|
@ -66,12 +66,7 @@ export default {
|
|||
return h.map((e) => `${e} ${localize("hr")}`);
|
||||
},
|
||||
minsList() {
|
||||
let m = [
|
||||
...new Set([
|
||||
...Array(11).keys(),
|
||||
...Array.from(Array(12), (_, x) => x * 5),
|
||||
]),
|
||||
];
|
||||
let m = [...Array(60).keys()];
|
||||
this.mins = m;
|
||||
return m.map((e) => `${e} ${localize("min")}`);
|
||||
},
|
122
app/components/modals/TimePickerHMS.vue
Normal file
|
@ -0,0 +1,122 @@
|
|||
<template>
|
||||
<Page
|
||||
@loaded="transparentPage"
|
||||
backgroundColor="transparent"
|
||||
:class="appTheme"
|
||||
>
|
||||
<GridLayout rows="auto, auto, auto" class="modal">
|
||||
<Label class="title" :text="title | L" />
|
||||
<StackLayout row="1">
|
||||
<StackLayout class="input">
|
||||
<TextField
|
||||
class="modalInput"
|
||||
v-model="setLabel"
|
||||
:hint="label"
|
||||
autocapitalizationType="words"
|
||||
/></StackLayout>
|
||||
<!-- @loaded="focusField" -->
|
||||
<StackLayout orientation="horizontal" horizontalAlignment="center">
|
||||
<ListPicker
|
||||
@loaded="onLPLoad"
|
||||
:items="hrsList"
|
||||
@selectedIndexChange="setHr"
|
||||
></ListPicker>
|
||||
<ListPicker
|
||||
@loaded="onLPLoad"
|
||||
:items="minsList"
|
||||
@selectedIndexChange="setMin"
|
||||
></ListPicker>
|
||||
<ListPicker
|
||||
@loaded="onLPLoad"
|
||||
:items="secsList"
|
||||
@selectedIndexChange="setSec"
|
||||
></ListPicker>
|
||||
</StackLayout>
|
||||
</StackLayout>
|
||||
|
||||
<GridLayout row="2" columns="auto, *, auto, auto" class="actions">
|
||||
<Button
|
||||
v-if="showPreset"
|
||||
class="text sm"
|
||||
:text="'prstBtn' | L"
|
||||
@tap="$modal.close('presets')"
|
||||
/>
|
||||
<Button
|
||||
col="2"
|
||||
class="text sm"
|
||||
:text="'cBtn' | L"
|
||||
@tap="$modal.close(false)"
|
||||
/>
|
||||
<Button col="3" class="text sm" :text="action | L" @tap="sendRespose" />
|
||||
</GridLayout>
|
||||
</GridLayout>
|
||||
</Page>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Utils } from "@nativescript/core";
|
||||
import { localize } from "@nativescript/localize";
|
||||
import { mapState } from "vuex";
|
||||
export default {
|
||||
props: ["title", "label", "action", "showPreset"],
|
||||
data() {
|
||||
return {
|
||||
hrs: [],
|
||||
mins: [],
|
||||
secs: [],
|
||||
selectedHrs: "00",
|
||||
selectedMins: "00",
|
||||
selectedSecs: "00",
|
||||
setLabel: null,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapState(["icon", "appTheme"]),
|
||||
hrsList() {
|
||||
let h = [...Array(24).keys()];
|
||||
this.hrs = h;
|
||||
return h.map((e) => `${e} ${localize("hr")}`);
|
||||
},
|
||||
minsList() {
|
||||
let m = [...Array(60).keys()];
|
||||
this.mins = m;
|
||||
return m.map((e) => `${e} ${localize("min")}`);
|
||||
},
|
||||
secsList() {
|
||||
let s = [...Array(60).keys()];
|
||||
this.secs = s;
|
||||
return s.map((e) => `${e} ${localize("sec")}`);
|
||||
},
|
||||
selectedTime() {
|
||||
return `${this.selectedHrs}:${this.selectedMins}:${this.selectedSecs}`;
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
onLPLoad({ object }) {
|
||||
object.android.setWrapSelectorWheel(true);
|
||||
},
|
||||
setHr(args) {
|
||||
let hr = "0" + this.hrs[args.object.selectedIndex];
|
||||
this.selectedHrs = hr.slice(-2);
|
||||
},
|
||||
setMin(args) {
|
||||
let min = "0" + this.mins[args.object.selectedIndex];
|
||||
this.selectedMins = min.slice(-2);
|
||||
},
|
||||
setSec(args) {
|
||||
let sec = "0" + this.secs[args.object.selectedIndex];
|
||||
this.selectedSecs = sec.slice(-2);
|
||||
},
|
||||
focusField({ object }) {
|
||||
object.focus();
|
||||
setTimeout(() => Utils.ad.showSoftInput(object.android), 100);
|
||||
},
|
||||
sendRespose() {
|
||||
this.$modal.close({
|
||||
label: this.setLabel ? this.setLabel : this.label,
|
||||
time: this.selectedTime,
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
|
@ -12,11 +12,7 @@
|
|||
</v-template>
|
||||
<v-template if="$index == 1">
|
||||
<StackLayout class="app-info">
|
||||
<Image
|
||||
class="icon"
|
||||
src="res://logo"
|
||||
stretch="none"
|
||||
/>
|
||||
<Image class="icon" src="res://logo" stretch="none" />
|
||||
<Label class="name tb tac" :text="'EnRecipes' | L" />
|
||||
<Label :text="getVersion" class="version tb tac" />
|
||||
|
||||
|
@ -99,9 +95,8 @@ export default {
|
|||
},
|
||||
},
|
||||
methods: {
|
||||
onPageLoad(args) {
|
||||
const page = args.object;
|
||||
page.bindingContext = new Observable();
|
||||
onPageLoad({ object }) {
|
||||
object.bindingContext = new Observable();
|
||||
},
|
||||
// HELPERS
|
||||
openURL(url) {
|
82
app/components/settings/AppSettings.vue
Normal file
|
@ -0,0 +1,82 @@
|
|||
<template>
|
||||
<Page @loaded="onPageLoad" actionBarHidden="true">
|
||||
<GridLayout rows="*, auto" columns="auto, *">
|
||||
<OptionsList title="Settings" :items="items" :action="navigateTo" />
|
||||
<GridLayout row="1" class="appbar" rows="*" columns="auto, *">
|
||||
<Button class="ico" :text="icon.back" @tap="$navigateBack()" />
|
||||
</GridLayout>
|
||||
</GridLayout>
|
||||
</Page>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { Observable } from "@nativescript/core";
|
||||
import { mapState, mapActions } from "vuex";
|
||||
import Interface from "./Interface.vue";
|
||||
import Options from "./Options.vue";
|
||||
import Database from "./Database.vue";
|
||||
import Reset from "./Reset.vue";
|
||||
import About from "./About.vue";
|
||||
import OptionsList from "../sub/OptionsList.vue";
|
||||
export default {
|
||||
components: { OptionsList },
|
||||
data() {
|
||||
return {
|
||||
items: [
|
||||
{},
|
||||
{
|
||||
type: "list",
|
||||
icon: "interface",
|
||||
title: "intf",
|
||||
data: Interface,
|
||||
},
|
||||
{
|
||||
type: "list",
|
||||
icon: "opts",
|
||||
title: "opts",
|
||||
data: Options,
|
||||
},
|
||||
{
|
||||
type: "list",
|
||||
icon: "db",
|
||||
title: "db",
|
||||
data: Database,
|
||||
},
|
||||
{
|
||||
type: "list",
|
||||
icon: "reset",
|
||||
title: "rest",
|
||||
data: Reset,
|
||||
},
|
||||
{
|
||||
type: "list",
|
||||
icon: "info",
|
||||
title: "About",
|
||||
data: About,
|
||||
},
|
||||
{},
|
||||
],
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapState(["icon"]),
|
||||
},
|
||||
methods: {
|
||||
...mapActions(["setComponent"]),
|
||||
onPageLoad({ object }) {
|
||||
object.bindingContext = new Observable();
|
||||
this.setComponent("Settings");
|
||||
},
|
||||
// HELPERS
|
||||
navigateTo(view) {
|
||||
this.$navigateTo(view, {
|
||||
transition: {
|
||||
name: "slide",
|
||||
duration: 200,
|
||||
curve: "easeOut",
|
||||
},
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
134
app/components/settings/CTSettings.vue
Normal file
|
@ -0,0 +1,134 @@
|
|||
<template>
|
||||
<Page @loaded="onPageLoad" actionBarHidden="true">
|
||||
<GridLayout rows="*, auto" columns="auto, *">
|
||||
<OptionsList title="Settings" :items="items" />
|
||||
<GridLayout row="1" class="appbar" rows="*" columns="auto, *">
|
||||
<Button class="ico" :text="icon.back" @tap="$navigateBack()" />
|
||||
</GridLayout>
|
||||
</GridLayout>
|
||||
</Page>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Observable, Device, Application, Utils } from "@nativescript/core";
|
||||
import { mapState, mapActions } from "vuex";
|
||||
import { localize } from "@nativescript/localize";
|
||||
import OptionsList from "../sub/OptionsList";
|
||||
import Action from "../modals/Action";
|
||||
import * as utils from "~/shared/utils";
|
||||
|
||||
export default {
|
||||
components: { OptionsList },
|
||||
computed: {
|
||||
...mapState(["icon", "timerDelay", "timerSound", "timerVibrate"]),
|
||||
items() {
|
||||
let options = [
|
||||
{
|
||||
type: "list",
|
||||
icon: "sound",
|
||||
title: "tmrSnd",
|
||||
subTitle: this.timerSound.title,
|
||||
action: this.showSoundsList,
|
||||
},
|
||||
{
|
||||
type: "switch",
|
||||
icon: "vibrate",
|
||||
title: "tmrvbrt",
|
||||
checked: this.timerVibrate,
|
||||
action: this.toggleTimerVibrate,
|
||||
},
|
||||
];
|
||||
let openSettings = [
|
||||
{
|
||||
type: "list",
|
||||
icon: "sound",
|
||||
title: "notifSetg",
|
||||
subTitle: null,
|
||||
action: this.openNotificationChannelSettings,
|
||||
},
|
||||
];
|
||||
let list = this.channelExists() ? openSettings : options;
|
||||
return [
|
||||
{},
|
||||
{
|
||||
type: "list",
|
||||
icon: "delay",
|
||||
title: "dlyDur",
|
||||
subTitle: this.timerDelay,
|
||||
action: this.showDelayList,
|
||||
},
|
||||
...list,
|
||||
{},
|
||||
];
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
...mapActions([
|
||||
"setTimerDelay",
|
||||
"setTimerSound",
|
||||
"setTimerVibrate",
|
||||
"setComponent",
|
||||
]),
|
||||
onPageLoad({ object }) {
|
||||
object.bindingContext = new Observable();
|
||||
this.setComponent("CTSettings");
|
||||
},
|
||||
showDelayList() {
|
||||
let list = [
|
||||
...Array.from(Array(4), (_, x) => x + 1),
|
||||
...Array.from(Array(6), (_, x) => (x + 1) * 5),
|
||||
].map(
|
||||
(e, i) => `${e} ${i == 0 ? localize("minute") : localize("minutes")}`
|
||||
);
|
||||
this.$showModal(Action, {
|
||||
props: {
|
||||
title: "dlyDur",
|
||||
list,
|
||||
},
|
||||
}).then((dur) => dur && this.setTimerDelay(dur));
|
||||
},
|
||||
showSoundsList() {
|
||||
let getTones = utils.getTones();
|
||||
this.$showModal(Action, {
|
||||
props: {
|
||||
title: "tmrSnd",
|
||||
list: getTones.tones.map((e) => e.title),
|
||||
},
|
||||
}).then(
|
||||
(tone) =>
|
||||
tone &&
|
||||
tone !== this.timerSound.title &&
|
||||
this.setTimerSound(getTones.tones.filter((e) => e.title === tone)[0])
|
||||
);
|
||||
},
|
||||
toggleTimerVibrate() {
|
||||
this.setTimerVibrate(!this.timerVibrate);
|
||||
},
|
||||
openNotificationChannelSettings() {
|
||||
const ctx = Application.android.context;
|
||||
const Settings = android.provider.Settings;
|
||||
const Intent = android.content.Intent;
|
||||
let intent = new Intent(Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS);
|
||||
intent.putExtra(
|
||||
Settings.EXTRA_APP_PACKAGE,
|
||||
Application.android.packageName
|
||||
);
|
||||
intent.putExtra(Settings.EXTRA_CHANNEL_ID, "cta");
|
||||
intent.setFlags(android.content.Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
ctx.startActivity(intent);
|
||||
},
|
||||
|
||||
// HELPERS
|
||||
channelExists() {
|
||||
if (Device.sdkVersion * 1 >= 26) {
|
||||
const ctx = Utils.ad.getApplicationContext();
|
||||
const NotifySrv = ctx.getSystemService(
|
||||
android.content.Context.NOTIFICATION_SERVICE
|
||||
);
|
||||
return NotifySrv.getNotificationChannel("cta");
|
||||
}
|
||||
return null;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
|
@ -1,32 +1,7 @@
|
|||
<template>
|
||||
<Page @loaded="onPageLoad" actionBarHidden="true">
|
||||
<GridLayout rows="*, auto" columns="auto, *">
|
||||
<ListView
|
||||
colSpan="2"
|
||||
rowSpan="2"
|
||||
class="options-list"
|
||||
for="item in items"
|
||||
>
|
||||
<v-template if="$index == 0">
|
||||
<Label class="pageTitle" :text="'db' | L" />
|
||||
</v-template>
|
||||
<v-template if="$index == 4">
|
||||
<StackLayout class="listSpace"> </StackLayout>
|
||||
</v-template>
|
||||
<v-template>
|
||||
<GridLayout
|
||||
columns="auto, *"
|
||||
class="option"
|
||||
@touch="touch($event, item.action)"
|
||||
>
|
||||
<Label class="ico" :text="icon[item.icon]" />
|
||||
<StackLayout col="1" verticalAlignment="center">
|
||||
<Label :text="item.title | L" class="info" />
|
||||
<Label v-if="item.subTitle" :text="item.subTitle" class="sub" />
|
||||
</StackLayout>
|
||||
</GridLayout>
|
||||
</v-template>
|
||||
</ListView>
|
||||
<OptionsList title="db" :items="items" />
|
||||
<GridLayout
|
||||
v-show="!toast && !progress"
|
||||
row="1"
|
||||
|
@ -36,18 +11,7 @@
|
|||
>
|
||||
<Button class="ico" :text="icon.back" @tap="$navigateBack()" />
|
||||
</GridLayout>
|
||||
<GridLayout
|
||||
v-show="toast"
|
||||
row="1"
|
||||
colSpan="2"
|
||||
class="appbar snackBar"
|
||||
columns="*"
|
||||
@tap="toast = null"
|
||||
>
|
||||
<FlexboxLayout minHeight="48" alignItems="center">
|
||||
<Label class="title msg" :text="toast" />
|
||||
</FlexboxLayout>
|
||||
</GridLayout>
|
||||
<Toast :toast="toast" :action="hideToast" />
|
||||
<GridLayout
|
||||
v-show="progress"
|
||||
row="1"
|
||||
|
@ -67,18 +31,23 @@ import {
|
|||
ApplicationSettings,
|
||||
path,
|
||||
knownFolders,
|
||||
AndroidApplication,
|
||||
File,
|
||||
Folder,
|
||||
Observable,
|
||||
Application,
|
||||
getFileAccess,
|
||||
} from "@nativescript/core";
|
||||
import { localize } from "@nativescript/localize";
|
||||
import ConfirmDialog from "../modal/ConfirmDialog.vue";
|
||||
import Confirm from "../modals/Confirm";
|
||||
import OptionsList from "../sub/OptionsList";
|
||||
import Toast from "../sub/Toast";
|
||||
import { mapState, mapActions } from "vuex";
|
||||
|
||||
import { openOrCreate } from "@akylas/nativescript-sqlite";
|
||||
import * as utils from "~/shared/utils";
|
||||
|
||||
export default {
|
||||
components: { OptionsList, Toast },
|
||||
data() {
|
||||
return {
|
||||
backupFolder: null,
|
||||
|
@ -101,18 +70,21 @@ export default {
|
|||
return [
|
||||
{},
|
||||
{
|
||||
type: "list",
|
||||
icon: "folder",
|
||||
title: "buFol",
|
||||
subTitle: this.backupFolder,
|
||||
action: this.setBackupFolder,
|
||||
},
|
||||
{
|
||||
type: "list",
|
||||
icon: "exp",
|
||||
title: "expBu",
|
||||
subTitle: localize("buInfo"),
|
||||
action: this.exportCheck,
|
||||
},
|
||||
{
|
||||
type: "list",
|
||||
icon: "imp",
|
||||
title: "impBu",
|
||||
subTitle: localize("impInfo"),
|
||||
|
@ -124,15 +96,16 @@ export default {
|
|||
},
|
||||
methods: {
|
||||
...mapActions([
|
||||
"importListItemsAction",
|
||||
"importRecipesAction",
|
||||
"importMealPlansAction",
|
||||
"importListItems",
|
||||
"importRecipesFromJSON",
|
||||
"importRecipesFromDB",
|
||||
"importMealPlansFromJSON",
|
||||
"importMealPlansFromDB",
|
||||
"unlinkBrokenImages",
|
||||
"clearImportSummary",
|
||||
]),
|
||||
onPageLoad(args) {
|
||||
const page = args.object;
|
||||
page.bindingContext = new Observable();
|
||||
onPageLoad({ object }) {
|
||||
object.bindingContext = new Observable();
|
||||
const ContentResolver = Application.android.nativeApp.getContentResolver();
|
||||
this.backupFolder = ApplicationSettings.getString("backupFolder");
|
||||
if (
|
||||
|
@ -185,7 +158,7 @@ export default {
|
|||
},
|
||||
exportBackup() {
|
||||
this.progress = localize("expip");
|
||||
this.exportFiles("create");
|
||||
this.hijackBackEvent();
|
||||
let date = new Date();
|
||||
let formattedDate =
|
||||
date.getFullYear() +
|
||||
|
@ -198,6 +171,9 @@ export default {
|
|||
("0" + date.getMinutes()).slice(-2) +
|
||||
("0" + date.getSeconds()).slice(-2);
|
||||
|
||||
// Copy db file to EnRecipes folder
|
||||
utils.copyDBToExport();
|
||||
|
||||
let filename = `${localize("EnRecipes")}_${formattedDate}.zip`;
|
||||
let fromPath = path.join(knownFolders.documents().path, "EnRecipes");
|
||||
utils.Zip.zip(fromPath, this.backupFolder, filename)
|
||||
|
@ -205,63 +181,22 @@ export default {
|
|||
.catch((err) => {
|
||||
console.log("Backup error: ", err);
|
||||
this.progress = null;
|
||||
this.releaseBackEvent();
|
||||
this.setBackupFolder(true);
|
||||
});
|
||||
},
|
||||
exportFiles(option) {
|
||||
const folder = path.join(knownFolders.documents().path, "EnRecipes");
|
||||
const EnRecipesFile = File.fromPath(path.join(folder, "recipes.json"));
|
||||
let userCuisinesFile,
|
||||
userCategoriesFile,
|
||||
userYieldUnitsFile,
|
||||
userUnitsFile,
|
||||
mealPlansFile;
|
||||
if (this.cuisines.length)
|
||||
userCuisinesFile = File.fromPath(
|
||||
path.join(folder, "userCuisines.json")
|
||||
);
|
||||
if (this.categories.length)
|
||||
userCategoriesFile = File.fromPath(
|
||||
path.join(folder, "userCategories.json")
|
||||
);
|
||||
if (this.yieldUnits.length)
|
||||
userYieldUnitsFile = File.fromPath(
|
||||
path.join(folder, "userYieldUnits.json")
|
||||
);
|
||||
if (this.units.length)
|
||||
userUnitsFile = File.fromPath(path.join(folder, "userUnits.json"));
|
||||
if (this.mealPlans.length)
|
||||
mealPlansFile = File.fromPath(path.join(folder, "mealPlans.json"));
|
||||
switch (option) {
|
||||
case "create":
|
||||
this.writeDataToFile(EnRecipesFile, this.recipes);
|
||||
this.cuisines.length &&
|
||||
this.writeDataToFile(userCuisinesFile, this.cuisines);
|
||||
this.categories.length &&
|
||||
this.writeDataToFile(userCategoriesFile, this.categories);
|
||||
this.yieldUnits.length &&
|
||||
this.writeDataToFile(userYieldUnitsFile, this.yieldUnits);
|
||||
this.units.length && this.writeDataToFile(userUnitsFile, this.units);
|
||||
this.mealPlans.length &&
|
||||
this.writeDataToFile(mealPlansFile, this.mealPlans);
|
||||
break;
|
||||
case "delete":
|
||||
EnRecipesFile.remove();
|
||||
this.cuisines.length && userCuisinesFile.remove();
|
||||
this.categories.length && userCategoriesFile.remove();
|
||||
this.yieldUnits.length && userYieldUnitsFile.remove();
|
||||
this.units.length && userUnitsFile.remove();
|
||||
this.mealPlans.length && mealPlansFile.remove();
|
||||
break;
|
||||
}
|
||||
},
|
||||
writeDataToFile(file, data) {
|
||||
file.writeText(JSON.stringify(data));
|
||||
},
|
||||
showExportSummary(filename) {
|
||||
// delete copied db file
|
||||
getFileAccess().deleteFile(
|
||||
path.join(
|
||||
knownFolders.documents().getFolder("EnRecipes").path,
|
||||
"EnRecipes.db"
|
||||
)
|
||||
);
|
||||
this.progress = null;
|
||||
this.releaseBackEvent();
|
||||
let description = localize("buto", `"${filename}"`);
|
||||
this.$showModal(ConfirmDialog, {
|
||||
this.$showModal(Confirm, {
|
||||
props: {
|
||||
title: "expSuc",
|
||||
description,
|
||||
|
@ -274,6 +209,7 @@ export default {
|
|||
openZipFile() {
|
||||
utils.getBackupFile().then((uri) => {
|
||||
if (uri) {
|
||||
knownFolders.temp().clear();
|
||||
let dest = knownFolders.temp().path;
|
||||
utils.Zip.unzip(uri, dest)
|
||||
.then((res) => res && this.validateZipContent(res, uri))
|
||||
|
@ -281,63 +217,77 @@ export default {
|
|||
}
|
||||
});
|
||||
},
|
||||
validateZipContent(extractedFolderPath, uri) {
|
||||
validateZipContent(dest, uri) {
|
||||
this.progress = localize("impip");
|
||||
let cacheFolderPath = extractedFolderPath + "/EnRecipes";
|
||||
const EnRecipesFilePath = cacheFolderPath + "/recipes.json";
|
||||
const ImagesFolderPath = cacheFolderPath + "/Images";
|
||||
const userCuisinesFilePath = cacheFolderPath + "/userCuisines.json";
|
||||
const userCategoriesFilePath = cacheFolderPath + "/userCategories.json";
|
||||
const userYieldUnitsFilePath = cacheFolderPath + "/userYieldUnits.json";
|
||||
const userUnitsFilePath = cacheFolderPath + "/userUnits.json";
|
||||
const mealPlansFilePath = cacheFolderPath + "/mealPlans.json";
|
||||
if (Folder.exists(cacheFolderPath)) {
|
||||
this.isFileDataValid([
|
||||
{
|
||||
path: EnRecipesFilePath,
|
||||
db: "EnRecipesDB",
|
||||
file: "recipes.json",
|
||||
},
|
||||
{
|
||||
path: userCuisinesFilePath,
|
||||
db: "userCuisinesDB",
|
||||
file: "userCuisines.json",
|
||||
},
|
||||
{
|
||||
path: userCategoriesFilePath,
|
||||
db: "userCategoriesDB",
|
||||
file: "userCategories.json",
|
||||
},
|
||||
{
|
||||
path: userYieldUnitsFilePath,
|
||||
db: "userYieldUnitsDB",
|
||||
file: "userYieldUnits.json",
|
||||
},
|
||||
{
|
||||
path: userUnitsFilePath,
|
||||
db: "userUnitsDB",
|
||||
file: "userUnits.json",
|
||||
},
|
||||
{
|
||||
path: mealPlansFilePath,
|
||||
db: "mealPlansDB",
|
||||
file: "mealPlans.json",
|
||||
},
|
||||
]);
|
||||
this.hijackBackEvent();
|
||||
let cache = dest + "/EnRecipes";
|
||||
const recipesDB = cache + "/EnRecipes.db";
|
||||
const recipes = cache + "/recipes.json";
|
||||
const images = cache + "/Images";
|
||||
const userCuisines = cache + "/userCuisines.json";
|
||||
const userCategories = cache + "/userCategories.json";
|
||||
const userYieldUnits = cache + "/userYieldUnits.json";
|
||||
const userUnits = cache + "/userUnits.json";
|
||||
const mealPlans = cache + "/mealPlans.json";
|
||||
let vm = this;
|
||||
// IMPORT IMAGES FINALLY
|
||||
function importImages() {
|
||||
const timer = setInterval(() => {
|
||||
if (!this.progress) clearInterval(timer);
|
||||
if (this.progress && this.importSummary.found) {
|
||||
Folder.exists(ImagesFolderPath)
|
||||
? this.importImages(uri)
|
||||
: this.showImportSummary();
|
||||
if (!vm.progress) clearInterval(timer);
|
||||
if (vm.progress && vm.importSummary.found) {
|
||||
Folder.exists(images)
|
||||
? vm.importImages(uri)
|
||||
: vm.showImportSummary();
|
||||
}
|
||||
}, 100);
|
||||
}
|
||||
if (Folder.exists(cache)) {
|
||||
if (File.exists(recipesDB)) {
|
||||
// IMPORT FROM DB FILE
|
||||
this.extractData(recipesDB);
|
||||
importImages();
|
||||
} else if (File.exists(recipes)) {
|
||||
// IMPORT FROM JSON FILES
|
||||
this.isFileDataValid([
|
||||
{
|
||||
path: recipes,
|
||||
db: "recipes",
|
||||
file: "recipes.json",
|
||||
},
|
||||
{
|
||||
path: userCuisines,
|
||||
db: "userCuisines",
|
||||
file: "userCuisines.json",
|
||||
},
|
||||
{
|
||||
path: userCategories,
|
||||
db: "userCategories",
|
||||
file: "userCategories.json",
|
||||
},
|
||||
{
|
||||
path: userYieldUnits,
|
||||
db: "userYieldUnits",
|
||||
file: "userYieldUnits.json",
|
||||
},
|
||||
{
|
||||
path: userUnits,
|
||||
db: "userUnits",
|
||||
file: "userUnits.json",
|
||||
},
|
||||
{
|
||||
path: mealPlans,
|
||||
db: "mealPlans",
|
||||
file: "mealPlans.json",
|
||||
},
|
||||
]);
|
||||
importImages();
|
||||
} else this.failedImport(localize("buEmp"));
|
||||
} else this.failedImport(localize("buInc"));
|
||||
},
|
||||
isFileDataValid(file) {
|
||||
const files = file.filter((e) => File.exists(e.path));
|
||||
if (files.length) {
|
||||
let isValid = files.map((e) => false);
|
||||
let isValid = files.map(() => false);
|
||||
files.forEach((file, i) => {
|
||||
File.fromPath(file.path)
|
||||
.readText()
|
||||
|
@ -354,7 +304,7 @@ export default {
|
|||
File.fromPath(file.path)
|
||||
.readText()
|
||||
.then((data) => {
|
||||
this.importDataToDB(JSON.parse(data), file.db);
|
||||
this.importData(JSON.parse(data), file.db);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
@ -364,8 +314,9 @@ export default {
|
|||
},
|
||||
failedImport(description) {
|
||||
this.progress = null;
|
||||
this.releaseBackEvent();
|
||||
knownFolders.temp().clear();
|
||||
this.$showModal(ConfirmDialog, {
|
||||
this.$showModal(Confirm, {
|
||||
props: {
|
||||
title: "impFail",
|
||||
description,
|
||||
|
@ -381,37 +332,62 @@ export default {
|
|||
}
|
||||
return true;
|
||||
},
|
||||
importDataToDB(data, db) {
|
||||
extractData(recipesDB) {
|
||||
const db = openOrCreate(recipesDB);
|
||||
|
||||
// Import recipes
|
||||
db.select("SELECT * FROM recipes").then((res) => {
|
||||
this.importRecipesFromDB(res);
|
||||
});
|
||||
|
||||
// Import listitems
|
||||
db.select(
|
||||
`SELECT cuisines, categories, yieldUnits, units FROM lists`
|
||||
).then((res) =>
|
||||
Object.keys(res[0]).forEach((listName) =>
|
||||
this.importListItems({
|
||||
data: JSON.parse(res[0][listName]),
|
||||
listName,
|
||||
})
|
||||
)
|
||||
);
|
||||
|
||||
// Import mealPlans
|
||||
db.select(`SELECT * FROM mealPlans`).then((res) =>
|
||||
this.importMealPlansFromDB(res)
|
||||
);
|
||||
},
|
||||
importData(data, db) {
|
||||
switch (db) {
|
||||
case "EnRecipesDB":
|
||||
this.importRecipesAction(data);
|
||||
case "recipes":
|
||||
this.importRecipesFromJSON(data);
|
||||
break;
|
||||
case "userCuisinesDB":
|
||||
this.importListItemsAction({
|
||||
case "userCuisines":
|
||||
this.importListItems({
|
||||
data,
|
||||
listName: "cuisines",
|
||||
});
|
||||
break;
|
||||
case "userCategoriesDB":
|
||||
this.importListItemsAction({
|
||||
case "userCategories":
|
||||
this.importListItems({
|
||||
data,
|
||||
listName: "categories",
|
||||
});
|
||||
break;
|
||||
case "userYieldUnitsDB":
|
||||
this.importListItemsAction({
|
||||
case "userYieldUnits":
|
||||
this.importListItems({
|
||||
data,
|
||||
listName: "yieldUnits",
|
||||
});
|
||||
break;
|
||||
case "userUnitsDB":
|
||||
this.importListItemsAction({
|
||||
case "userUnits":
|
||||
this.importListItems({
|
||||
data,
|
||||
listName: "units",
|
||||
});
|
||||
break;
|
||||
case "mealPlansDB":
|
||||
this.importMealPlansAction(data);
|
||||
case "mealPlans":
|
||||
this.importMealPlansFromJSON(data);
|
||||
break;
|
||||
}
|
||||
},
|
||||
|
@ -420,6 +396,16 @@ export default {
|
|||
Folder.fromPath(destPath);
|
||||
utils.Zip.unzip(uri, destPath).then((res) => {
|
||||
if (res) {
|
||||
// delete unzipped data files
|
||||
Folder.fromPath(path.join(destPath, "EnRecipes"))
|
||||
.getEntities()
|
||||
.then((entities) => {
|
||||
entities.forEach((entity) => {
|
||||
if (/.json|.db/.test(entity._extension))
|
||||
File.fromPath(entity._path).remove();
|
||||
});
|
||||
});
|
||||
|
||||
this.showImportSummary();
|
||||
this.unlinkBrokenImages();
|
||||
}
|
||||
|
@ -427,14 +413,13 @@ export default {
|
|||
},
|
||||
showImportSummary() {
|
||||
this.progress = null;
|
||||
knownFolders.temp().clear();
|
||||
this.exportFiles("delete");
|
||||
this.releaseBackEvent();
|
||||
let { found, imported, updated } = this.importSummary;
|
||||
let exists = Math.abs(found - imported - updated) + updated;
|
||||
let importedNote = `\n${localize("recI")} ${imported}`;
|
||||
let existsNote = `\n${localize("recE")} ${exists}`;
|
||||
let updatedNote = `\n${localize("recU")} ${updated}`;
|
||||
this.$showModal(ConfirmDialog, {
|
||||
this.$showModal(Confirm, {
|
||||
props: {
|
||||
title: "impSuc",
|
||||
description: `${found} ${localize(
|
||||
|
@ -445,10 +430,26 @@ export default {
|
|||
}).then(() => this.clearImportSummary());
|
||||
},
|
||||
|
||||
// NAVIGATION HANDLERS
|
||||
hijackBackEvent() {
|
||||
AndroidApplication.on(
|
||||
AndroidApplication.activityBackPressedEvent,
|
||||
this.backEvent
|
||||
);
|
||||
},
|
||||
releaseBackEvent() {
|
||||
AndroidApplication.off(
|
||||
AndroidApplication.activityBackPressedEvent,
|
||||
this.backEvent
|
||||
);
|
||||
},
|
||||
backEvent(args) {
|
||||
args.cancel = true;
|
||||
},
|
||||
|
||||
// HELPERS
|
||||
touch({ object, action }, method) {
|
||||
object.className = action.match(/down|move/) ? "option fade" : "option";
|
||||
if (action == "up") method();
|
||||
hideToast() {
|
||||
this.toast = null;
|
||||
},
|
||||
},
|
||||
};
|
|
@ -1,32 +1,7 @@
|
|||
<template>
|
||||
<Page @loaded="onPageLoad" actionBarHidden="true">
|
||||
<GridLayout rows="*, auto" columns="auto, *">
|
||||
<ListView
|
||||
colSpan="2"
|
||||
rowSpan="2"
|
||||
class="options-list"
|
||||
for="item in items"
|
||||
>
|
||||
<v-template if="$index == 0">
|
||||
<Label class="pageTitle" :text="'intf' | L" />
|
||||
</v-template>
|
||||
<v-template if="$index == 4">
|
||||
<StackLayout class="listSpace"> </StackLayout>
|
||||
</v-template>
|
||||
<v-template>
|
||||
<GridLayout
|
||||
columns="auto, *"
|
||||
class="option"
|
||||
@touch="touch($event, item.action)"
|
||||
>
|
||||
<Label class="ico" :text="icon[item.icon]" />
|
||||
<StackLayout col="1">
|
||||
<Label :text="item.title | L" class="info" />
|
||||
<Label :text="item.subTitle" class="sub" />
|
||||
</StackLayout>
|
||||
</GridLayout>
|
||||
</v-template>
|
||||
</ListView>
|
||||
<OptionsList title="intf" :items="items" />
|
||||
<GridLayout row="1" class="appbar" rows="*" columns="auto, *">
|
||||
<Button class="ico" :text="icon.back" @tap="$navigateBack()" />
|
||||
</GridLayout>
|
||||
|
@ -42,12 +17,14 @@ import {
|
|||
Frame,
|
||||
} from "@nativescript/core";
|
||||
import { localize, overrideLocale } from "@nativescript/localize";
|
||||
import ActionDialog from "../modal/ActionDialog.vue";
|
||||
import ConfirmDialog from "../modal/ConfirmDialog.vue";
|
||||
import Action from "../modals/Action";
|
||||
import Confirm from "../modals/Confirm";
|
||||
import OptionsList from "../sub/OptionsList";
|
||||
import { mapState, mapActions } from "vuex";
|
||||
import * as utils from "~/shared/utils";
|
||||
|
||||
export default {
|
||||
components: { OptionsList },
|
||||
data() {
|
||||
return {
|
||||
appLanguage: "English",
|
||||
|
@ -59,12 +36,14 @@ export default {
|
|||
return [
|
||||
{},
|
||||
{
|
||||
type: "list",
|
||||
icon: "lang",
|
||||
title: "lang",
|
||||
subTitle: this.appLanguage,
|
||||
action: this.selectAppLanguage,
|
||||
},
|
||||
{
|
||||
type: "list",
|
||||
icon: "theme",
|
||||
title: "Theme",
|
||||
subTitle: localize(
|
||||
|
@ -73,6 +52,7 @@ export default {
|
|||
action: this.selectThemes,
|
||||
},
|
||||
{
|
||||
type: "list",
|
||||
icon: "layout",
|
||||
title: "listVM",
|
||||
subTitle: localize(this.layout),
|
||||
|
@ -84,25 +64,24 @@ export default {
|
|||
},
|
||||
methods: {
|
||||
...mapActions(["setTheme", "setLayout"]),
|
||||
onPageLoad(args) {
|
||||
const page = args.object;
|
||||
page.bindingContext = new Observable();
|
||||
onPageLoad({ object }) {
|
||||
object.bindingContext = new Observable();
|
||||
},
|
||||
// LANGUAGE SELECTION
|
||||
selectAppLanguage() {
|
||||
let languages = this.language.map((e) => e.title);
|
||||
this.$showModal(ActionDialog, {
|
||||
this.$showModal(Action, {
|
||||
props: {
|
||||
title: "lang",
|
||||
list: [...languages],
|
||||
},
|
||||
}).then((action) => {
|
||||
if (action && action !== "Cancel" && this.appLanguage !== action) {
|
||||
if (action && this.appLanguage !== action) {
|
||||
let currentLocale = Device.language.split("-")[0];
|
||||
let locale = this.language.filter((e) => e.title === action)[0]
|
||||
.locale;
|
||||
if (currentLocale !== locale) {
|
||||
this.$showModal(ConfirmDialog, {
|
||||
this.$showModal(Confirm, {
|
||||
props: {
|
||||
title: "appRst",
|
||||
description: localize("nLangInfo"),
|
||||
|
@ -123,7 +102,7 @@ export default {
|
|||
},
|
||||
// THEME SELECTION
|
||||
selectThemes() {
|
||||
this.$showModal(ActionDialog, {
|
||||
this.$showModal(Action, {
|
||||
props: {
|
||||
title: "Theme",
|
||||
list: ["Light", "Dark", "Black", "sysDef", "sysDefB"],
|
||||
|
@ -142,26 +121,21 @@ export default {
|
|||
},
|
||||
// LAYOUT MODE
|
||||
setLayoutMode() {
|
||||
this.$showModal(ActionDialog, {
|
||||
this.$showModal(Action, {
|
||||
props: {
|
||||
title: "listVM",
|
||||
list: ["detailed", "grid", "photogrid", "simple", "minimal"],
|
||||
},
|
||||
}).then((action) => {
|
||||
if (action && action !== "Cancel" && this.layoutMode !== action) {
|
||||
if (action && this.layoutMode !== action) {
|
||||
let act = action.toLowerCase();
|
||||
ApplicationSettings.setString("layout", act);
|
||||
this.setLayout(act);
|
||||
}
|
||||
});
|
||||
},
|
||||
// HELPERS
|
||||
touch({ object, action }, method) {
|
||||
object.className = action.match(/down|move/) ? "option fade" : "option";
|
||||
if (action == "up") method();
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
created() {
|
||||
this.appLanguage = ApplicationSettings.getString(
|
||||
"appLanguage",
|
||||
localize("sysDef")
|
45
app/components/settings/MPSettings.vue
Normal file
|
@ -0,0 +1,45 @@
|
|||
<template>
|
||||
<Page @loaded="onPageLoad" actionBarHidden="true">
|
||||
<GridLayout rows="*, auto" columns="auto, *">
|
||||
<OptionsList title="Settings" :items="items" />
|
||||
<GridLayout row="1" class="appbar" rows="*" columns="auto, *">
|
||||
<Button class="ico" :text="icon.back" @tap="$navigateBack()" />
|
||||
</GridLayout>
|
||||
</GridLayout>
|
||||
</Page>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Observable } from "@nativescript/core";
|
||||
import { mapState, mapActions } from "vuex";
|
||||
import OptionsList from "../sub/OptionsList";
|
||||
|
||||
export default {
|
||||
components: { OptionsList },
|
||||
computed: {
|
||||
...mapState(["icon", "mondayFirst"]),
|
||||
items() {
|
||||
return [
|
||||
{},
|
||||
{
|
||||
type: "switch",
|
||||
icon: "week",
|
||||
title: "swm",
|
||||
checked: this.mondayFirst,
|
||||
action: this.toggleFirstDay,
|
||||
},
|
||||
{},
|
||||
];
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
...mapActions(["setFirstDay"]),
|
||||
onPageLoad({ object }) {
|
||||
object.bindingContext = new Observable();
|
||||
},
|
||||
toggleFirstDay() {
|
||||
this.setFirstDay(!this.mondayFirst);
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
69
app/components/settings/Options.vue
Normal file
|
@ -0,0 +1,69 @@
|
|||
<template>
|
||||
<Page @loaded="onPageLoad" actionBarHidden="true">
|
||||
<GridLayout rows="*, auto" columns="auto, *">
|
||||
<OptionsList title="opts" :items="items" />
|
||||
<GridLayout
|
||||
v-show="!toast"
|
||||
row="1"
|
||||
class="appbar"
|
||||
rows="*"
|
||||
columns="auto, *"
|
||||
>
|
||||
<Button class="ico" :text="icon.back" @tap="$navigateBack()" />
|
||||
</GridLayout>
|
||||
<Toast :toast="toast" :action="(toast = null)" />
|
||||
</GridLayout>
|
||||
</Page>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Observable } from "@nativescript/core";
|
||||
import { mapState, mapActions } from "vuex";
|
||||
import { localize } from "@nativescript/localize";
|
||||
import OptionsList from "../sub/OptionsList";
|
||||
import Toast from "../sub/Toast";
|
||||
import * as utils from "~/shared/utils";
|
||||
|
||||
export default {
|
||||
components: { OptionsList, Toast },
|
||||
data() {
|
||||
return {
|
||||
toast: null,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapState(["icon", "shakeEnabled"]),
|
||||
items() {
|
||||
return [
|
||||
{},
|
||||
{
|
||||
type: "switch",
|
||||
icon: "shuf",
|
||||
title: "sVw",
|
||||
subTitle: "sVwInfo",
|
||||
checked: this.shakeEnabled,
|
||||
action: this.toggleShake,
|
||||
},
|
||||
{},
|
||||
];
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
...mapActions(["setShake"]),
|
||||
onPageLoad({ object }) {
|
||||
object.bindingContext = new Observable();
|
||||
},
|
||||
|
||||
// SHAKE VIEW RANDOM RECIPE
|
||||
toggleShake() {
|
||||
let checked = this.shakeEnabled;
|
||||
if (checked && !utils.hasAccelerometer()) {
|
||||
this.toast = localize("noAccSensor");
|
||||
utils.timer(5, (val) => {
|
||||
if (!val) this.toast = val;
|
||||
});
|
||||
} else this.setShake(!checked);
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
110
app/components/settings/Reset.vue
Normal file
|
@ -0,0 +1,110 @@
|
|||
<template>
|
||||
<Page @loaded="onPageLoad" actionBarHidden="true">
|
||||
<GridLayout rows="*, auto" columns="auto, *">
|
||||
<OptionsList title="rest" :items="items" :action="resetListItems" />
|
||||
<GridLayout
|
||||
:hidden="toast"
|
||||
row="1"
|
||||
class="appbar"
|
||||
@loaded="onAppBarLoad"
|
||||
columns="auto, *"
|
||||
>
|
||||
<Button class="ico" :text="icon.back" @tap="$navigateBack()" />
|
||||
</GridLayout>
|
||||
<Toast :toast="toast" :action="hideToast" />
|
||||
</GridLayout>
|
||||
</Page>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Observable, CoreTypes } from "@nativescript/core";
|
||||
import { localize } from "@nativescript/localize";
|
||||
import { mapState, mapActions } from "vuex";
|
||||
import * as utils from "~/shared/utils";
|
||||
import OptionsList from "../sub/OptionsList";
|
||||
import Toast from "../sub/Toast";
|
||||
export default {
|
||||
components: { OptionsList, Toast },
|
||||
data() {
|
||||
return {
|
||||
toast: null,
|
||||
appbar: null,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapState(["icon"]),
|
||||
items() {
|
||||
return [
|
||||
{},
|
||||
{
|
||||
type: "list",
|
||||
icon: "reset",
|
||||
title: "restCuiL",
|
||||
data: "cuisines",
|
||||
},
|
||||
{
|
||||
type: "list",
|
||||
icon: "reset",
|
||||
title: "restCatL",
|
||||
data: "categories",
|
||||
},
|
||||
{
|
||||
type: "list",
|
||||
icon: "reset",
|
||||
title: "restYUL",
|
||||
data: "yieldUnits",
|
||||
},
|
||||
{
|
||||
type: "list",
|
||||
icon: "reset",
|
||||
title: "restUL",
|
||||
data: "units",
|
||||
},
|
||||
{},
|
||||
{},
|
||||
];
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
...mapActions(["resetListItemsAction"]),
|
||||
onPageLoad({ object }) {
|
||||
object.bindingContext = new Observable();
|
||||
},
|
||||
onAppBarLoad({ object }) {
|
||||
this.appbar = object;
|
||||
},
|
||||
// RESET
|
||||
resetListItems(listName) {
|
||||
this.resetListItemsAction(listName);
|
||||
this.showToast();
|
||||
},
|
||||
showToast() {
|
||||
this.toast = localize("restDone");
|
||||
utils.timer(5, (val) => {
|
||||
if (!val) this.toast = val;
|
||||
});
|
||||
},
|
||||
hideToast({ object }) {
|
||||
this.appbar.translateY = 64;
|
||||
object
|
||||
.animate({
|
||||
opacity: 0,
|
||||
translate: { x: 0, y: 64 },
|
||||
duration: 250,
|
||||
curve: CoreTypes.AnimationCurve.ease,
|
||||
})
|
||||
.then(() => {
|
||||
this.showUndo = false;
|
||||
this.toast = null;
|
||||
this.appbar.animate({
|
||||
translate: { x: 0, y: 0 },
|
||||
duration: 250,
|
||||
curve: CoreTypes.AnimationCurve.ease,
|
||||
});
|
||||
object.opacity = 1;
|
||||
object.translateY = 0;
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
62
app/components/sub/OptionsList.vue
Normal file
|
@ -0,0 +1,62 @@
|
|||
<template>
|
||||
<ListView colSpan="2" rowSpan="2" class="options-list" for="item in items">
|
||||
<v-template if="$index == 0">
|
||||
<Label class="pageTitle" :text="title | L" />
|
||||
</v-template>
|
||||
<v-template if="item.type == 'switch'">
|
||||
<GridLayout
|
||||
columns="auto, *, auto"
|
||||
class="option"
|
||||
@touch="touch($event, item.data, item.action)"
|
||||
>
|
||||
<Label class="ico" :text="icon[item.icon]" />
|
||||
<StackLayout col="1" verticalAlignment="center">
|
||||
<Label :text="item.title | L" class="info" />
|
||||
<Label v-if="item.subTitle" :text="item.subTitle | L" class="sub" />
|
||||
</StackLayout>
|
||||
<Switch
|
||||
isUserInteractionEnabled="false"
|
||||
:color="item.checked ? '#ff5200' : '#adb5bd'"
|
||||
col="2"
|
||||
:checked="item.checked"
|
||||
/>
|
||||
</GridLayout>
|
||||
</v-template>
|
||||
<v-template if="item.type == 'list'">
|
||||
<GridLayout
|
||||
columns="auto, *"
|
||||
class="option"
|
||||
@touch="touch($event, item.data, item.action)"
|
||||
>
|
||||
<Label class="ico" :text="icon[item.icon]" />
|
||||
<StackLayout col="1">
|
||||
<Label :text="item.title | L" class="info" />
|
||||
<Label v-if="item.subTitle" :text="item.subTitle" class="sub" />
|
||||
</StackLayout>
|
||||
</GridLayout>
|
||||
</v-template>
|
||||
<v-template if="item.type == 'info'">
|
||||
<Label class="group-info sub tw" :text="item.title | L" />
|
||||
</v-template>
|
||||
<v-template>
|
||||
<StackLayout class="listSpace"> </StackLayout>
|
||||
</v-template>
|
||||
</ListView>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapState } from "vuex";
|
||||
|
||||
export default {
|
||||
props: ["title", "items", "action"],
|
||||
computed: {
|
||||
...mapState(["icon"]),
|
||||
},
|
||||
methods: {
|
||||
touch({ object, action }, data, localAction) {
|
||||
object.className = action.match(/down|move/) ? "option fade" : "option";
|
||||
if (action == "up") localAction ? localAction(data) : this.action(data);
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
23
app/components/sub/SnackBar.vue
Normal file
|
@ -0,0 +1,23 @@
|
|||
<template>
|
||||
<GridLayout
|
||||
row="1"
|
||||
class="appbar snackBar"
|
||||
columns="auto, *, auto"
|
||||
@swipe="action"
|
||||
>
|
||||
<Button :text="count" class="ico countdown tb" />
|
||||
<Label class="title" col="1" :text="msg | L" />
|
||||
<Button class="ico fab" :text="icon.undo" @tap="undo" col="3" />
|
||||
</GridLayout>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapState } from "vuex";
|
||||
|
||||
export default {
|
||||
props: ["count", "msg", "undo", "action"],
|
||||
computed: {
|
||||
...mapState(["icon"]),
|
||||
},
|
||||
};
|
||||
</script>
|
196
app/components/sub/Timer.vue
Normal file
|
@ -0,0 +1,196 @@
|
|||
<template>
|
||||
<GridLayout
|
||||
rows="auto, auto"
|
||||
columns="auto, *, auto, auto, auto"
|
||||
class="singleTimer"
|
||||
>
|
||||
<!-- :class="{ blink: done }" -->
|
||||
<Button
|
||||
class="ico"
|
||||
:text="done ? icon.ring : timer.isPaused ? icon.start : icon.pause"
|
||||
@tap="!done && toggleProgress()"
|
||||
/>
|
||||
<StackLayout col="1" class="info" :colSpan="timer.isPaused ? 1 : 2">
|
||||
<Label :text="timer.label" class="tb title tw" />
|
||||
<Label
|
||||
@touch="!timer.recipeID && touch($event)"
|
||||
:text="getRecipeTitle"
|
||||
class="recipeTitle"
|
||||
:class="timer.recipeID ? 'sub' : 'clickable'"
|
||||
/>
|
||||
<Label :text="formattedTime(timer.time)" />
|
||||
</StackLayout>
|
||||
<Button
|
||||
col="2"
|
||||
class="ico"
|
||||
:hidden="(!timer.isPaused || progress == 0) && !done"
|
||||
:text="icon.reset"
|
||||
@tap="resetTimer"
|
||||
/>
|
||||
<Button
|
||||
col="3"
|
||||
class="ico"
|
||||
:hidden="timer.preset && !done"
|
||||
@tap="done ? delay() : addPreset()"
|
||||
:text="done ? icon.delay : icon.addTo"
|
||||
/>
|
||||
<Button
|
||||
col="4"
|
||||
class="ico x"
|
||||
:text="icon.x"
|
||||
@tap="removeTimerItem(timerIndex, false)"
|
||||
/>
|
||||
<Progress row="1" colSpan="5" :value="progress" />
|
||||
</GridLayout>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { ApplicationSettings, Application } from "@nativescript/core";
|
||||
import { localize } from "@nativescript/localize";
|
||||
import { mapState, mapActions } from "vuex";
|
||||
import ActionWithSearch from "../modals/ActionWithSearch";
|
||||
import * as utils from "~/shared/utils";
|
||||
import { EventBus } from "~/main";
|
||||
|
||||
export default {
|
||||
props: [
|
||||
"timer",
|
||||
"timerIndex",
|
||||
"formattedTime",
|
||||
"removeTimer",
|
||||
"addToPreset",
|
||||
"togglePause",
|
||||
"fireTimer",
|
||||
],
|
||||
data() {
|
||||
return {
|
||||
progress: 0,
|
||||
timerInt: this.timer.timerInterval,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapState(["icon", "recipes", "timerDelay"]),
|
||||
getRecipeTitle() {
|
||||
let { recipeID } = this.timer;
|
||||
if (recipeID) {
|
||||
let recipe = this.recipes.filter(
|
||||
(e) => e.id === this.timer.recipeID
|
||||
)[0];
|
||||
return recipe
|
||||
? recipe.title
|
||||
: `[ ${this.$options.filters.L("resNF")} ]`;
|
||||
} else return localize("fwr");
|
||||
},
|
||||
done() {
|
||||
return this.progress >= 100;
|
||||
},
|
||||
getTimeInSec() {
|
||||
let t = this.timer.time.split(":");
|
||||
return +t[0] * 60 * 60 + +t[1] * 60 + +t[2];
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
...mapActions(["removeActiveTimer", "updateActiveTimer", "addTimerPreset"]),
|
||||
attachRecipe() {
|
||||
this.$showModal(ActionWithSearch, {
|
||||
props: {
|
||||
title: "selRec",
|
||||
recipes: this.recipes,
|
||||
},
|
||||
}).then((recipeID) => {
|
||||
let timer = this.timer;
|
||||
timer.recipeID = recipeID;
|
||||
this.updateActiveTimer(timer);
|
||||
});
|
||||
},
|
||||
setProgress(progress, delay) {
|
||||
this.progress = progress;
|
||||
let timer = this.timer;
|
||||
if (progress <= 100 && !timer.timerInterval) {
|
||||
timer.timerInterval = setInterval(() => {
|
||||
if (!this.timer.isPaused) {
|
||||
this.progress += 100 / (delay + this.getTimeInSec);
|
||||
ApplicationSettings.setNumber(
|
||||
`${this.timer.id}progress`,
|
||||
this.progress
|
||||
);
|
||||
}
|
||||
if (this.progress >= 100) {
|
||||
if (progress < 100) this.fireTimer(timer);
|
||||
clearInterval(timer.timerInterval);
|
||||
ApplicationSettings.remove(`${this.timer.id}delay`);
|
||||
}
|
||||
}, 1000);
|
||||
this.updateActiveTimer(timer);
|
||||
}
|
||||
},
|
||||
resetInterval() {
|
||||
let timer = this.timer;
|
||||
clearInterval(this.timer.timerInterval);
|
||||
timer.timerInterval = null;
|
||||
this.updateActiveTimer(timer);
|
||||
},
|
||||
resetTimer() {
|
||||
this.resetInterval();
|
||||
this.togglePause(this.timer, true);
|
||||
ApplicationSettings.remove(`${this.timer.id}delay`);
|
||||
this.setProgress(0, 0);
|
||||
ApplicationSettings.setNumber(`${this.timer.id}progress`, 0);
|
||||
this.clearNotification();
|
||||
},
|
||||
clearNotification() {
|
||||
Application.android.unregisterBroadcastReceiver("timer" + this.timer.id);
|
||||
utils.TimerNotif.clear(this.timer.id);
|
||||
},
|
||||
toggleProgress(bool) {
|
||||
this.togglePause(this.timer, bool);
|
||||
this.timer.isPaused
|
||||
? this.resetInterval()
|
||||
: this.setProgress(
|
||||
ApplicationSettings.getNumber(`${this.timer.id}progress`, 0),
|
||||
ApplicationSettings.getNumber(`${this.timer.id}delay`, 0)
|
||||
);
|
||||
},
|
||||
removeTimerItem(index, noUndo) {
|
||||
this.resetInterval();
|
||||
this.removeTimer(this.timer.id, index, noUndo);
|
||||
},
|
||||
addPreset() {
|
||||
this.timer.preset = 1;
|
||||
this.addToPreset(this.timer);
|
||||
},
|
||||
delay() {
|
||||
let delayInS = this.timerDelay.split(" ")[0] * 60;
|
||||
ApplicationSettings.setNumber(`${this.timer.id}delay`, delayInS);
|
||||
let progress = (100 / delayInS) * this.getTimeInSec;
|
||||
this.resetInterval();
|
||||
this.setProgress(progress, delayInS);
|
||||
this.clearNotification();
|
||||
},
|
||||
|
||||
// HELPERS
|
||||
touch({ object, action }) {
|
||||
object.className = action.match(/down|move/)
|
||||
? "recipeTitle clickable fade"
|
||||
: "recipeTitle clickable";
|
||||
if (action == "up") this.attachRecipe();
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.setProgress(
|
||||
ApplicationSettings.getNumber(`${this.timer.id}progress`, 0),
|
||||
ApplicationSettings.getNumber(`${this.timer.id}delay`, 0)
|
||||
);
|
||||
EventBus.$on("timer" + this.timer.id, (e) => {
|
||||
switch (e) {
|
||||
case "stop":
|
||||
this.resetTimer();
|
||||
break;
|
||||
case "delay":
|
||||
this.delay();
|
||||
break;
|
||||
}
|
||||
});
|
||||
},
|
||||
};
|
||||
</script>
|
20
app/components/sub/Toast.vue
Normal file
|
@ -0,0 +1,20 @@
|
|||
<template>
|
||||
<GridLayout
|
||||
v-show="toast"
|
||||
row="1"
|
||||
colSpan="2"
|
||||
class="appbar snackBar"
|
||||
columns="*"
|
||||
@swipe="action"
|
||||
>
|
||||
<FlexboxLayout minHeight="48" alignItems="center">
|
||||
<Label class="title msg" :text="toast" />
|
||||
</FlexboxLayout>
|
||||
</GridLayout>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: ["toast", "action"],
|
||||
};
|
||||
</script>
|
|
@ -12,7 +12,7 @@
|
|||
"American": "أمريكية",
|
||||
"aNBtn": "أضف جديدة",
|
||||
"aNoBtn": "أضف ملاحظة",
|
||||
"app.name": "",
|
||||
"app.name": "EnRecipes",
|
||||
"appCrd": "شورك عبر EnRecipes. احصل عليه على F-Droid, IzzyOnDroid, أو متجر بلاي.",
|
||||
"Appetizers": "مقبلات",
|
||||
"appInfo": "EnRecipes كتاب طبخ مفتوح المصدر صديق للخصوصية يتيح لك إنشاء وصفاتك و إدارتها ومشاركتها",
|
||||
|
@ -70,7 +70,7 @@
|
|||
"editRec": "عدل الوصفة",
|
||||
"Egyptian": "مصرية",
|
||||
"English": "إنجليزية",
|
||||
"EnRecipes": "",
|
||||
"EnRecipes": "EnRecipes",
|
||||
"expBu": "صدر نسخة احتياطية كاملة",
|
||||
"expip": "جار التصدير",
|
||||
"expSuc": "نجح التصدير",
|
||||
|
|
|
@ -298,7 +298,8 @@
|
|||
"delay": "Delay",
|
||||
"tmr": "Timer %s",
|
||||
"prstBtn": "PRESETS",
|
||||
"tmrPrsts": "Timer presets",
|
||||
"prsts": "Presets",
|
||||
"delPrst": "You are about to delete %s from the presets",
|
||||
"fwr": "for which recipe?",
|
||||
"aTPrst": "Added to presets",
|
||||
"tmrSnd": "Timer sound",
|
||||
|
@ -309,5 +310,6 @@
|
|||
"hour": "hour",
|
||||
"hours": "hours",
|
||||
"seconds": "seconds",
|
||||
"tmrClr": "Timer cleared"
|
||||
"tmrRm": "Timer removed",
|
||||
"notifSetg": "Notification settings"
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
"American": "amerikkalainen",
|
||||
"aNBtn": "LISÄÄ UUSI",
|
||||
"aNoBtn": "LISÄÄ HUOMAUTUS",
|
||||
"app.name": "",
|
||||
"app.name": "EnRecipes",
|
||||
"appCrd": "Jaettu EnRecipesin kautta. Lataa se F-Droidista, IzzyOnDroidista tai Play Storesta.",
|
||||
"Appetizers": "Alkupalat",
|
||||
"appInfo": "EnRecipes on avoimen lähdekoodin, yksityisyyden suojaa kunnioittava digitaalinen keittokirja, jonka avulla voit luoda, hallita ja jakaa reseptejäsi",
|
||||
|
@ -70,7 +70,7 @@
|
|||
"editRec": "Muokkaa resepti",
|
||||
"Egyptian": "egyptiläinen",
|
||||
"English": "englantilainen",
|
||||
"EnRecipes": "",
|
||||
"EnRecipes": "EnRecipes",
|
||||
"expBu": "Vie koko varmuuskopio",
|
||||
"expip": "Vienti käynnissä",
|
||||
"expSuc": "",
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
"American": "アメリカ料理",
|
||||
"aNBtn": "新しく追加",
|
||||
"aNoBtn": "メモを追加",
|
||||
"app.name": "EnRecipes",
|
||||
"appCrd": "EnRecipesから共有されました。F-DroidかIzzyOnDroidかPlayストアからダウンロード出来ます。",
|
||||
"Appetizers": "前菜",
|
||||
"appInfo": "EnRecipesはレシピを作成・管理・共有することができる、オープンソースでプライバシーに配慮したデジタル料理本です",
|
||||
|
@ -69,6 +70,7 @@
|
|||
"editRec": "レシピを編集する",
|
||||
"Egyptian": "エジプト料理",
|
||||
"English": "イングランド料理",
|
||||
"EnRecipes": "EnRecipes",
|
||||
"expBu": "バックアップをエクスポート",
|
||||
"expip": "エクスポートを実行中",
|
||||
"expSuc": "エクスポートに成功",
|
||||
|
|
74
app/main.ts
|
@ -2,20 +2,56 @@ import {
|
|||
localize,
|
||||
androidLaunchEventLocalizationHandler,
|
||||
} from '@nativescript/localize'
|
||||
import { on, launchEvent } from '@nativescript/core/application'
|
||||
on(launchEvent, (args) => {
|
||||
import { Application, AndroidApplication, Utils } from '@nativescript/core'
|
||||
|
||||
const keepScreenOn = () => {
|
||||
let ctx = Utils.ad.getApplicationContext()
|
||||
const pm = ctx.getSystemService(android.content.Context.POWER_SERVICE)
|
||||
let isScreenOff = !pm.isInteractive()
|
||||
if (isScreenOff) {
|
||||
console.log('keepScreenOn')
|
||||
const window = Application.android.startActivity.getWindow()
|
||||
const windowMgr = android.view.WindowManager
|
||||
const flags =
|
||||
windowMgr.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
|
||||
windowMgr.LayoutParams.FLAG_TURN_SCREEN_ON |
|
||||
windowMgr.LayoutParams.FLAG_KEEP_SCREEN_ON
|
||||
window.addFlags(flags)
|
||||
function clearFlags(args) {
|
||||
args.cancel = true
|
||||
window.clearFlags(flags)
|
||||
Application.android.off(
|
||||
AndroidApplication.activityBackPressedEvent,
|
||||
clearFlags
|
||||
)
|
||||
}
|
||||
Application.android.on(
|
||||
AndroidApplication.activityBackPressedEvent,
|
||||
clearFlags
|
||||
)
|
||||
}
|
||||
}
|
||||
Application.on(Application.resumeEvent, keepScreenOn)
|
||||
|
||||
Application.on(Application.launchEvent, (args) => {
|
||||
console.log('launching')
|
||||
if (args.android) {
|
||||
androidLaunchEventLocalizationHandler()
|
||||
intentListener(args)
|
||||
}
|
||||
})
|
||||
|
||||
import Vue from 'nativescript-vue'
|
||||
import EnRecipes from './components/EnRecipes.vue'
|
||||
import CookingTimer from './components/CookingTimer.vue'
|
||||
import store from './store'
|
||||
|
||||
export const EventBus = new Vue()
|
||||
|
||||
import CollectionView from '@nativescript-community/ui-collectionview/vue'
|
||||
Vue.use(CollectionView)
|
||||
|
||||
import { lvMixin } from './shared/mixins.js'
|
||||
import { lvMixin } from './shared/mixins'
|
||||
Vue.mixin(lvMixin)
|
||||
|
||||
Vue.config.silent = false
|
||||
|
@ -26,3 +62,35 @@ new Vue({
|
|||
store,
|
||||
render: (h) => h(EnRecipes),
|
||||
}).$start()
|
||||
|
||||
const intentListener = ({ intent, android }: any) => {
|
||||
let ct = 'CookingTimer'
|
||||
let action = (intent || android).getStringExtra('action')
|
||||
console.log('calling: ', action)
|
||||
if (action == 'open_timer' && store.state.currentComponent != ct) {
|
||||
let openTimer = setInterval(() => {
|
||||
let comp = store.state.currentComponent
|
||||
if (comp == ct) clearInterval(openTimer)
|
||||
else {
|
||||
if (comp == 'CTSettings') Vue.navigateBack()
|
||||
else {
|
||||
Vue.navigateTo(CookingTimer)
|
||||
store.commit('setComponent', 'CookingTimer')
|
||||
}
|
||||
}
|
||||
}, 250)
|
||||
}
|
||||
}
|
||||
Application.on(Application.launchEvent, () => {
|
||||
Application.android.on(
|
||||
AndroidApplication.activityNewIntentEvent,
|
||||
intentListener
|
||||
)
|
||||
})
|
||||
Application.on(Application.exitEvent, () => {
|
||||
store.commit('setComponent', 'EnRecipes')
|
||||
Application.android.off(
|
||||
AndroidApplication.activityNewIntentEvent,
|
||||
intentListener
|
||||
)
|
||||
})
|
||||
|
|
|
@ -15,29 +15,18 @@
|
|||
|
||||
android {
|
||||
defaultConfig {
|
||||
versionCode 8
|
||||
versionName '1.3.3'
|
||||
applicationId 'com.vishnuraghav.enrecipes'
|
||||
minSdkVersion 23
|
||||
versionCode 1
|
||||
versionName '2.0.0'
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 30
|
||||
compileSdkVersion 30
|
||||
generatedDensities = []
|
||||
ndk {
|
||||
abiFilters.clear()
|
||||
abiFilters.addAll(['arm64-v8a', 'armeabi-v7a', 'x86'])
|
||||
}
|
||||
// ndk {
|
||||
// abiFilters.clear()
|
||||
// abiFilters.addAll(['arm64-v8a'])
|
||||
// }
|
||||
}
|
||||
aaptOptions {
|
||||
additionalParameters "--no-version-vectors"
|
||||
}
|
||||
// buildTypes {
|
||||
// release {
|
||||
// minifyEnabled true
|
||||
// shrinkResources false
|
||||
// debuggable false
|
||||
// jniDebuggable false
|
||||
// renderscriptDebuggable false
|
||||
// }
|
||||
// }
|
||||
|
||||
}
|
||||
|
|
|
@ -1,17 +1,18 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="__PACKAGE__" android:versionCode="10000" android:versionName="1.0">
|
||||
<supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" />
|
||||
<uses-permission android:name="android.permission.VIBRATE" />
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" tools:targetApi="28" />
|
||||
<uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" tools:targetApi="29" />
|
||||
<uses-permission android:name="android.permission.CAMERA" tools:node="remove" />
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" tools:node="remove" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="remove" />
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||
<uses-permission android:name="android.permission.VIBRATE" />
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" tools:node="remove" />
|
||||
<uses-permission android:name="android.permission.INTERNET" tools:node="remove" />
|
||||
<uses-permission android:name="android.permission.RECORD_AUDIO" tools:node="remove" />
|
||||
<application android:extractNativeLibs="true"
|
||||
android:name="com.tns.NativeScriptApplication" android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:hardwareAccelerated="true" android:largeHeap="true" android:theme="@style/AppTheme">
|
||||
<activity android:name="com.tns.NativeScriptActivity" android:label="@string/title_activity_kimera" android:screenOrientation="userPortrait" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|smallestScreenSize|screenLayout|locale|uiMode" android:theme="@style/LaunchScreenTheme" android:windowSoftInputMode="adjustResize">
|
||||
<application android:extractNativeLibs="true" android:name="com.tns.NativeScriptApplication" android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:hardwareAccelerated="true" android:largeHeap="true" android:theme="@style/AppTheme">
|
||||
<activity android:name="com.tns.NativeScriptActivity" android:label="@string/title_activity_kimera" android:launchMode="singleInstance" android:screenOrientation="userPortrait" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|smallestScreenSize|screenLayout|locale|uiMode" android:theme="@style/LaunchScreenTheme" android:windowSoftInputMode="adjustResize">
|
||||
<meta-data android:name="SET_THEME_ON_LAUNCH" android:resource="@style/AppTheme" />
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
@ -19,14 +20,9 @@
|
|||
</intent-filter>
|
||||
</activity>
|
||||
<activity android:name="com.tns.ErrorReportActivity" />
|
||||
<provider
|
||||
android:name="androidx.core.content.FileProvider"
|
||||
android:exported="false"
|
||||
android:authorities="${applicationId}.provider"
|
||||
android:grantUriPermissions="true">
|
||||
<meta-data
|
||||
android:name="android.support.FILE_PROVIDER_PATHS"
|
||||
android:resource="@xml/provider"/>
|
||||
<service android:name="com.tns.ForegroundService" android:enabled="true" android:exported="false" />
|
||||
<provider android:name="androidx.core.content.FileProvider" android:exported="false" android:authorities="${applicationId}.provider" android:grantUriPermissions="true">
|
||||
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider" />
|
||||
</provider>
|
||||
</application>
|
||||
</manifest>
|
||||
|
|
After Width: | Height: | Size: 954 B |
After Width: | Height: | Size: 938 B |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 754 B |
After Width: | Height: | Size: 860 B |
After Width: | Height: | Size: 852 B |
After Width: | Height: | Size: 1,016 B |
After Width: | Height: | Size: 1,016 B |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.3 KiB |
318
app/resources/Android/src/main/res/values-ar/strings.xml
Normal file
|
@ -0,0 +1,318 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="tmrClr">"Timer cleared"</string>
|
||||
<string name="seconds">"ثوان"</string>
|
||||
<string name="hours">"ساعات"</string>
|
||||
<string name="hour">"ساعة"</string>
|
||||
<string name="minutes">"دقائق"</string>
|
||||
<string name="minute">"دقيقة"</string>
|
||||
<string name="dlyDur">"مدة التأخير"</string>
|
||||
<string name="tmrvbrt">"اهتزاز المؤقت"</string>
|
||||
<string name="tmrSnd">"صوت المؤقت"</string>
|
||||
<string name="aTPrst">"Added to presets"</string>
|
||||
<string name="fwr">"لأي وصفة؟"</string>
|
||||
<string name="tmrPrsts">"Timer presets"</string>
|
||||
<string name="prstBtn">"PRESETS"</string>
|
||||
<string name="tmr">"مؤقت %1$s"</string>
|
||||
<string name="delay">"التأخير"</string>
|
||||
<string name="stop">"قف"</string>
|
||||
<string name="strtBtn">"ابدأ"</string>
|
||||
<string name="ntmr">"مؤقت جديد"</string>
|
||||
<string name="timer">"Cooking Timer"</string>
|
||||
<string name="sysDefB">"System default + Black"</string>
|
||||
<string name="buto">"Backed up to %1$s"</string>
|
||||
<string name="yld">"Yield"</string>
|
||||
<string name="yieldU">"Yield unit"</string>
|
||||
<string name="yieldQ">"Yield quantity"</string>
|
||||
<string name="yesterday">"أمس"</string>
|
||||
<string name="WED">"WED"</string>
|
||||
<string name="wAgo">"قبل %1$s أسابيع"</string>
|
||||
<string name="Vietnamese">"فيتنامية"</string>
|
||||
<string name="Vegetarian">"نباتي"</string>
|
||||
<string name="Vegan">"نباتي صرف"</string>
|
||||
<string name="untRec">"Untitled Recipe"</string>
|
||||
<string name="unsaved">"تغيرات غبر محفوظة"</string>
|
||||
<string name="Unit">"وحدة"</string>
|
||||
<string name="unit">"وحدة"</string>
|
||||
<string name="Undefined">"Undefined"</string>
|
||||
<string name="Turkish">"تركية"</string>
|
||||
<string name="TUE">"TUE"</string>
|
||||
<string name="tsp">"tsp"</string>
|
||||
<string name="tsInfo">"separate with spaces"</string>
|
||||
<string name="ts">"العلامات"</string>
|
||||
<string name="trySer">"ابحث في كل الوصفات؟"</string>
|
||||
<string name="trylater">"حاول لاحقاً"</string>
|
||||
<string name="trnsl">"ترجم"</string>
|
||||
<string name="triedInfo">"جربت هذه الوصفة %1$s"</string>
|
||||
<string name="today">"اليوم"</string>
|
||||
<string name="tLInfo">"الوصفات التي تريد تجربتها مسرودة هنا"</string>
|
||||
<string name="title">"العنوان"</string>
|
||||
<string name="THU">"THU"</string>
|
||||
<string name="Theme">"السمة"</string>
|
||||
<string name="Thai">"تايلندية"</string>
|
||||
<string name="Teaspoon">"ملعقة شاي"</string>
|
||||
<string name="tbsp">"tbsp"</string>
|
||||
<string name="Tablespoon">"ملعقة"</string>
|
||||
<string name="sysDef">"System default"</string>
|
||||
<string name="swm">"ابدأ الاسبوع يوم الاثنين"</string>
|
||||
<string name="Swedish">"سويدية"</string>
|
||||
<string name="sVwInfo">"لمساعدتك على اختيار ما تطبخ عندما لا تستطيع الاختيار"</string>
|
||||
<string name="sVw">"هز لرؤية وصفة عشوائية"</string>
|
||||
<string name="SUN">"SUN"</string>
|
||||
<string name="strAdd">"ابدأ إضافة وصفاتك!"</string>
|
||||
<string name="stp">"خطوة"</string>
|
||||
<string name="stick">"stick"</string>
|
||||
<string name="stars">"التقييم النجمي"</string>
|
||||
<string name="sru">"شارك وصفة باستعمال..."</string>
|
||||
<string name="srt">"Sort"</string>
|
||||
<string name="srpu">"شارك صورة الوصفة باستعمال..."</string>
|
||||
<string name="_Sri_Lankan_Z7GfBa">"سري لانكية"</string>
|
||||
<string name="Spanish">"اسبانية"</string>
|
||||
<string name="Soups">"شوربات"</string>
|
||||
<string name="snacks">"وجبات خفيفة"</string>
|
||||
<string name="small">"صغير"</string>
|
||||
<string name="sltd">"المختارة"</string>
|
||||
<string name="_Slowest_first_hHjY6">"الأبطأ أولاً"</string>
|
||||
<string name="simple">"بسيط"</string>
|
||||
<string name="_Side_dishes_Z1Et4Vg">"الأطباق الجانبية"</string>
|
||||
<string name="shr">"شارك"</string>
|
||||
<string name="Settings">"الإعدادات"</string>
|
||||
<string name="SET">"SET"</string>
|
||||
<string name="Serving">"Serving"</string>
|
||||
<string name="ser">"ابحث"</string>
|
||||
<string name="September">"سبتمبر"</string>
|
||||
<string name="selRec">"اختر وصفة"</string>
|
||||
<string name="Seafood">"بحرية"</string>
|
||||
<string name="Scottish">"سكتلندية"</string>
|
||||
<string name="Sauces">"صلصات"</string>
|
||||
<string name="SAT">"SAT"</string>
|
||||
<string name="Salads">"سلطات"</string>
|
||||
<string name="Russian">"روسية"</string>
|
||||
<string name="rst">"أعد التشغيل"</string>
|
||||
<string name="rp">"Remove photo"</string>
|
||||
<string name="Roll">"لفة"</string>
|
||||
<string name="rmYUInfo">"You are about to remove %1$s from the yield unit list"</string>
|
||||
<string name="rmUInfo">"You are about to remove %1$s from the unit list"</string>
|
||||
<string name="rmN">"Note removed"</string>
|
||||
<string name="rmIns">"Instruction removed"</string>
|
||||
<string name="rmIng">"Ingredient removed"</string>
|
||||
<string name="rmCuiInfo">"You are about to remove %1$s from the cuisine list"</string>
|
||||
<string name="rmCmb">"Combination removed"</string>
|
||||
<string name="rmCatInfo">"You are about to remove %1$s from the category list"</string>
|
||||
<string name="Rice">"أرز"</string>
|
||||
<string name="restYUL">"Reset yield unit list"</string>
|
||||
<string name="restUL">"Reset unit list"</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="restDone">"Reset done"</string>
|
||||
<string name="restCuiL">"Reset cuisine list"</string>
|
||||
<string name="restCatL">"Reset category list"</string>
|
||||
<string name="rest">"Reset"</string>
|
||||
<string name="resNF">"Recipe not found"</string>
|
||||
<string name="req">"Required %1$s"</string>
|
||||
<string name="recU">"Updated:"</string>
|
||||
<string name="recTitle">"وصفتي الصحية"</string>
|
||||
<string name="recs">"الوصفات"</string>
|
||||
<string name="recRm">"Recipe removed"</string>
|
||||
<string name="recPic">"صورة الوصفة"</string>
|
||||
<string name="recListEmp">"لا شيء هنا! أضف بعض الوصفات ثم حاول مجدداً"</string>
|
||||
<string name="recI">"المستورد:"</string>
|
||||
<string name="recF">"recipes found"</string>
|
||||
<string name="recE">"Already exist:"</string>
|
||||
<string name="rec">"الوصفة"</string>
|
||||
<string name="rBtn">"REMOVE"</string>
|
||||
<string name="Rating">"التقييم"</string>
|
||||
<string name="_Quickest_first_Z1CpP7N">"الاسرع أولاً"</string>
|
||||
<string name="qt">"qt"</string>
|
||||
<string name="pt">"pt"</string>
|
||||
<string name="priv">"سياسة الخصوصية"</string>
|
||||
<string name="prepT">"وقت التحضير"</string>
|
||||
<string name="Pound">"رطل"</string>
|
||||
<string name="Poultry">"دواجن"</string>
|
||||
<string name="Portuguese">"برتغالية"</string>
|
||||
<string name="plsAdd">"استعمل زر الزائد لإضافة واحدة"</string>
|
||||
<string name="planner">"مخططة الوجبات"</string>
|
||||
<string name="pinch">"رشة"</string>
|
||||
<string name="Piece">"قطعة"</string>
|
||||
<string name="piece">"قطعة"</string>
|
||||
<string name="pht">"صورة الوصفة"</string>
|
||||
<string name="photogrid">"Photo Grid"</string>
|
||||
<string name="Patty">"فطيرة"</string>
|
||||
<string name="Pasta">"باستا"</string>
|
||||
<string name="oz">"oz"</string>
|
||||
<string name="Ounce">"أونصة"</string>
|
||||
<string name="opts">"الاعدادات"</string>
|
||||
<string name="_Oldest_first_Z6cq4h">"الأقدم أولاً"</string>
|
||||
<string name="OK">"OK"</string>
|
||||
<string name="October">"أكتوبر"</string>
|
||||
<string name="nwYiU">"New yield unit"</string>
|
||||
<string name="nwCat">"صنف جديد"</string>
|
||||
<string name="November">"نوفمبر"</string>
|
||||
<string name="nos">"ملاحظات"</string>
|
||||
<string name="noRecsInL">"None of the recipes here matches your search"</string>
|
||||
<string name="noRecs">"لا وصفات مطابقة لبحثك"</string>
|
||||
<string name="Noodles">"نودلز"</string>
|
||||
<string name="noFavs">"No favourites yet"</string>
|
||||
<string name="noAccSensor">"مقياس التسارع إما معطل أو لا يعمل"</string>
|
||||
<string name="no">"ملاحظة"</string>
|
||||
<string name="nNBtn">"ليس الآن"</string>
|
||||
<string name="nLangInfo">"أعد تشغيل EnRecipes لاستخدام اللغة الجديدة"</string>
|
||||
<string name="Nigerian">"نيجيرية"</string>
|
||||
<string name="newUnit">"وحدة جديدة"</string>
|
||||
<string name="newRec">"وصفة جديدة"</string>
|
||||
<string name="_Newest_first_2Sb3c">"الأجد أولاً"</string>
|
||||
<string name="newCui">"مطبخ جديد"</string>
|
||||
<string name="MON">"MON"</string>
|
||||
<string name="Moderate">"متوسطة"</string>
|
||||
<string name="ml">"مل"</string>
|
||||
<string name="minimal">"Minimal"</string>
|
||||
<string name="sec">"sec"</string>
|
||||
<string name="min">"min"</string>
|
||||
<string name="Millilitre">"مللتر"</string>
|
||||
<string name="mg">"مغ"</string>
|
||||
<string name="Mexican">"مكسيكية"</string>
|
||||
<string name="medium">"medium"</string>
|
||||
<string name="Meat">"لحم"</string>
|
||||
<string name="May">"مايو"</string>
|
||||
<string name="March">"مارس"</string>
|
||||
<string name="_Main_dishes_u6RGQ">"الأطباق الرئيسة"</string>
|
||||
<string name="mAgo">"منذ %1$s أشهر"</string>
|
||||
<string name="lunch">"غداء"</string>
|
||||
<string name="ltAgo">"منذ وقت طويل"</string>
|
||||
<string name="Loaf">"رغيف"</string>
|
||||
<string name="Litre">"لتر"</string>
|
||||
<string name="listVM">"وضع عرض القائمة"</string>
|
||||
<string name="Light">"فاتح"</string>
|
||||
<string name="leaf">"leaf"</string>
|
||||
<string name="lb">"lb"</string>
|
||||
<string name="_Last_updated_Z2gEbLD">"Last updated"</string>
|
||||
<string name="large">"كبير"</string>
|
||||
<string name="lang">"اللغة"</string>
|
||||
<string name="l">"ل"</string>
|
||||
<string name="Korean">"كورية"</string>
|
||||
<string name="Kilogram">"كيلوغرام"</string>
|
||||
<string name="kg">"كغ"</string>
|
||||
<string name="Kenyan">"كينية"</string>
|
||||
<string name="kEdit">"KEEP EDITING"</string>
|
||||
<string name="June">"يونيو"</string>
|
||||
<string name="July">"يوليو"</string>
|
||||
<string name="joinTG">"انضم لمجموعة التلغرام"</string>
|
||||
<string name="Jewish">"يهودية"</string>
|
||||
<string name="Japanese">"يابانية"</string>
|
||||
<string name="January">"يناير"</string>
|
||||
<string name="Jamaican">"جمايكية"</string>
|
||||
<string name="Italian">"إيطالية"</string>
|
||||
<string name="it">"Item"</string>
|
||||
<string name="Irish">"إيرلندية"</string>
|
||||
<string name="invFile">"ملف غير صحيح"</string>
|
||||
<string name="intf">"الواجهة"</string>
|
||||
<string name="inss">"Instructions"</string>
|
||||
<string name="ings">"المكونات"</string>
|
||||
<string name="Indian">"هندية"</string>
|
||||
<string name="in">"إن"</string>
|
||||
<string name="impSuc">"نجح الاستيراد"</string>
|
||||
<string name="impip">"جار الاستيراد"</string>
|
||||
<string name="impInfo">"يدعم النسخ الاحتياطية الكاملة المصدرة من هذا التطبيق"</string>
|
||||
<string name="impFail">"فشل الاستيراد"</string>
|
||||
<string name="impBu">"استورد البيانات"</string>
|
||||
<string name="hr">"hr"</string>
|
||||
<string name="Healthy">"صحية"</string>
|
||||
<string name="guide">"دليل المستخدم"</string>
|
||||
<string name="grocery">"قائمة التسوق"</string>
|
||||
<string name="grid">"شبكة"</string>
|
||||
<string name="Greek">"إغريقية"</string>
|
||||
<string name="Gram">"غرام"</string>
|
||||
<string name="gh">"اعرض على github"</string>
|
||||
<string name="German">"ألمانية"</string>
|
||||
<string name="Gallon">"جالون"</string>
|
||||
<string name="gal">"جال"</string>
|
||||
<string name="g">"غ"</string>
|
||||
<string name="fsList">"وصفاتك المفضلة مسرودة هنا"</string>
|
||||
<string name="FRI">"FRI"</string>
|
||||
<string name="French">"فرنسية"</string>
|
||||
<string name="_Fluid_Ounce_bd10L">"Fluid Ounce"</string>
|
||||
<string name="fltr">"المصفاة"</string>
|
||||
<string name="_fl_oz_72kqu">"fl oz"</string>
|
||||
<string name="_Filtered_recipes_Z1alhhu">"الوصفات المصفاة"</string>
|
||||
<string name="Filipino">"فلبينية"</string>
|
||||
<string name="February">"فبراير"</string>
|
||||
<string name="favourites">"المفضلات"</string>
|
||||
<string name="expSuc">"نجح التصدير"</string>
|
||||
<string name="expip">"جار التصدير"</string>
|
||||
<string name="expBu">"صدر نسخة احتياطية كاملة"</string>
|
||||
<string name="EnRecipes">""</string>
|
||||
<string name="English">"إنجليزية"</string>
|
||||
<string name="Egyptian">"مصرية"</string>
|
||||
<string name="editRec">"عدل الوصفة"</string>
|
||||
<string name="Easy">"سهلة"</string>
|
||||
<string name="dsp">"dstspn"</string>
|
||||
<string name="drop">"قطرة"</string>
|
||||
<string name="dozen">"درزن"</string>
|
||||
<string name="donate">"تبرع"</string>
|
||||
<string name="disc">"هذه الوصفة فيها تغييرات غير محفوظة. ما الذي تريد فعله؟"</string>
|
||||
<string name="disBtn">"استبعد"</string>
|
||||
<string name="dinner">"عشاء"</string>
|
||||
<string name="_Difficulty_level_cSL5d">"مستوى الصعوبة"</string>
|
||||
<string name="detailed">"مفصل"</string>
|
||||
<string name="Desserts">"حلا"</string>
|
||||
<string name="delRecsInfo">"You are about to permanently delete %1$s"</string>
|
||||
<string name="delRecInfo">"You are about to permanently delete the recipe %1$s"</string>
|
||||
<string name="December">"ديسمبر"</string>
|
||||
<string name="dBtn">"DELETE"</string>
|
||||
<string name="db">"قاعدة البيانات"</string>
|
||||
<string name="Dark">"داكن"</string>
|
||||
<string name="Danish">"دنماركي"</string>
|
||||
<string name="dAgo">"قبل %1$s أيام"</string>
|
||||
<string name="Cup">"كأس"</string>
|
||||
<string name="cup">"كأس"</string>
|
||||
<string name="cui">"المطبخ"</string>
|
||||
<string name="Created">"Created"</string>
|
||||
<string name="cPic">"قص الصورة"</string>
|
||||
<string name="cookT">"Cooking time"</string>
|
||||
<string name="conf">"Confirm"</string>
|
||||
<string name="conBtn">"أكمل"</string>
|
||||
<string name="cmbs">"Combinations"</string>
|
||||
<string name="cm">"سم"</string>
|
||||
<string name="clove">"فص"</string>
|
||||
<string name="Chinese">"صينية"</string>
|
||||
<string name="Challenging">"صعبة"</string>
|
||||
<string name="cBtn">"ألغ"</string>
|
||||
<string name="cat">"الصنف"</string>
|
||||
<string name="buMod">"لف النسخة الاحتياطة عدل في مكان آخر"</string>
|
||||
<string name="buInfo">"يولد ملف ZIP يحتوي على جميع بياناتك يمكن استيراده مجدداً"</string>
|
||||
<string name="buInc">"ملف نسخة احتياطي مشوه أو فاسد"</string>
|
||||
<string name="buFol">"مجلد النسخ الاحتياطية"</string>
|
||||
<string name="buEmp">"مجلد النسخ الاحتيطية فارغ"</string>
|
||||
<string name="British">"بريطانية"</string>
|
||||
<string name="breakfast">"فطور"</string>
|
||||
<string name="Breads">"أخباز"</string>
|
||||
<string name="Brazilian">"برازيلية"</string>
|
||||
<string name="Black">"أسود"</string>
|
||||
<string name="Beverages">"مشروبات"</string>
|
||||
<string name="Barbecue">"شواء"</string>
|
||||
<string name="August">"أغسطس"</string>
|
||||
<string name="aStpBtn">"أضف خطوة"</string>
|
||||
<string name="April">"أبريل"</string>
|
||||
<string name="appRst">"إعادة تشغيل التطبيق متطلبة"</string>
|
||||
<string name="apply">"طبق"</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="Appetizers">"مقبلات"</string>
|
||||
<string name="appCrd">"Shared via EnRecipes. Get it on F-Droid, IzzyOnDroid or the Play Store."</string>
|
||||
<string name="_app_name_1k3Sbz">""</string>
|
||||
<string name="app_name">""</string>
|
||||
<string name="title_activity_kimera">""</string>
|
||||
<string name="aNoBtn">"أضف ملاحظة"</string>
|
||||
<string name="aNBtn">"أضف جديدة"</string>
|
||||
<string name="American">"أمريكية"</string>
|
||||
<string name="allTs">"كل العلامات"</string>
|
||||
<string name="allCuis">"كل المطابخ"</string>
|
||||
<string name="allCats">"كل الأصناف"</string>
|
||||
<string name="aIngBtn">"أضف مكون"</string>
|
||||
<string name="aFBu">"أضف وصفة لتقوم بالنسخ الاحتياطي"</string>
|
||||
<string name="addCmbBtn">"ADD COMBINATION"</string>
|
||||
<string name="aD">"انتهى!"</string>
|
||||
<string name="aBtn">"أضف"</string>
|
||||
<string name="About">"حول"</string>
|
||||
<string name="aap">"ألحق صورة"</string>
|
||||
<string name="notifSetg">"Notification settings"</string>
|
||||
<string name="tmrRm">"Timer removed"</string>
|
||||
</resources>
|
|
@ -1,58 +1,23 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="yld">""</string>
|
||||
<string name="yieldU">""</string>
|
||||
<string name="yieldQ">""</string>
|
||||
<string name="yesterday">""</string>
|
||||
<string name="sec">"s"</string>
|
||||
<string name="WED">"DC."</string>
|
||||
<string name="wAgo">""</string>
|
||||
<string name="Vietnamese">""</string>
|
||||
<string name="Vegetarian">"Vegetarianes"</string>
|
||||
<string name="Vegan">"Veganes"</string>
|
||||
<string name="untRec">"Recepta sense títol"</string>
|
||||
<string name="unsaved">"Canvis no desats"</string>
|
||||
<string name="Unit">""</string>
|
||||
<string name="unit">""</string>
|
||||
<string name="Undefined">"Sense definir"</string>
|
||||
<string name="Turkish">""</string>
|
||||
<string name="TUE">"DT."</string>
|
||||
<string name="tsp">""</string>
|
||||
<string name="tsInfo">""</string>
|
||||
<string name="ts">"Etiquetes"</string>
|
||||
<string name="trySer">""</string>
|
||||
<string name="trylater">"Per a provar més tard"</string>
|
||||
<string name="trnsl">"Tradueix"</string>
|
||||
<string name="triedInfo">""</string>
|
||||
<string name="today">""</string>
|
||||
<string name="tLInfo">""</string>
|
||||
<string name="title">""</string>
|
||||
<string name="THU">"DJ."</string>
|
||||
<string name="Theme">""</string>
|
||||
<string name="Thai">""</string>
|
||||
<string name="Teaspoon">"Culleradeta"</string>
|
||||
<string name="tbsp">""</string>
|
||||
<string name="Tablespoon">"Cullerada"</string>
|
||||
<string name="sysDef">""</string>
|
||||
<string name="swm">""</string>
|
||||
<string name="Swedish">""</string>
|
||||
<string name="sVwInfo">""</string>
|
||||
<string name="sVw">""</string>
|
||||
<string name="SUN">"DG."</string>
|
||||
<string name="strAdd">""</string>
|
||||
<string name="stp">""</string>
|
||||
<string name="stick">""</string>
|
||||
<string name="stars">""</string>
|
||||
<string name="sru">""</string>
|
||||
<string name="srt">""</string>
|
||||
<string name="srpu">""</string>
|
||||
<string name="_Sri_Lankan_Z7GfBa">""</string>
|
||||
<string name="Spanish">"Espanyola"</string>
|
||||
<string name="Soups">"Brous"</string>
|
||||
<string name="snacks">"piscolabis"</string>
|
||||
<string name="small">""</string>
|
||||
<string name="sltd">""</string>
|
||||
<string name="_Slowest_first_hHjY6">""</string>
|
||||
<string name="simple">""</string>
|
||||
<string name="_Side_dishes_Z1Et4Vg">"Guarnicions"</string>
|
||||
<string name="shr">"Comparteix"</string>
|
||||
<string name="Settings">"Paràmetres"</string>
|
||||
|
@ -60,236 +25,294 @@
|
|||
<string name="Serving">"Ració"</string>
|
||||
<string name="ser">"Cerca"</string>
|
||||
<string name="September">"setembre"</string>
|
||||
<string name="selRec">""</string>
|
||||
<string name="Seafood">"Peix i marisc"</string>
|
||||
<string name="Scottish">""</string>
|
||||
<string name="Sauces">"Salses"</string>
|
||||
<string name="SAT">"DS."</string>
|
||||
<string name="Salads">"Amanides"</string>
|
||||
<string name="Russian">""</string>
|
||||
<string name="rst">"REINICIA"</string>
|
||||
<string name="rp">""</string>
|
||||
<string name="Roll">""</string>
|
||||
<string name="rmYUInfo">""</string>
|
||||
<string name="rmUInfo">""</string>
|
||||
<string name="rmN">""</string>
|
||||
<string name="rmIns">""</string>
|
||||
<string name="rmIng">""</string>
|
||||
<string name="rmCuiInfo">""</string>
|
||||
<string name="rmCmb">""</string>
|
||||
<string name="rmCatInfo">""</string>
|
||||
<string name="Rice">"Arròs"</string>
|
||||
<string name="restYUL">""</string>
|
||||
<string name="restUL">""</string>
|
||||
<string name="restInfo">""</string>
|
||||
<string name="restDone">""</string>
|
||||
<string name="restCuiL">""</string>
|
||||
<string name="restCatL">""</string>
|
||||
<string name="rest">""</string>
|
||||
<string name="resNF">""</string>
|
||||
<string name="req">""</string>
|
||||
<string name="recU">""</string>
|
||||
<string name="recTitle">""</string>
|
||||
<string name="recs">""</string>
|
||||
<string name="recRm">""</string>
|
||||
<string name="recPic">""</string>
|
||||
<string name="recListEmp">""</string>
|
||||
<string name="recI">""</string>
|
||||
<string name="recF">""</string>
|
||||
<string name="recE">""</string>
|
||||
<string name="rec">"Recepta com a text"</string>
|
||||
<string name="rBtn">""</string>
|
||||
<string name="Rating">""</string>
|
||||
<string name="_Quickest_first_Z1CpP7N">""</string>
|
||||
<string name="qt">""</string>
|
||||
<string name="pt">""</string>
|
||||
<string name="priv">""</string>
|
||||
<string name="prepT">""</string>
|
||||
<string name="Pound">"Lliura"</string>
|
||||
<string name="Poultry">""</string>
|
||||
<string name="Portuguese">""</string>
|
||||
<string name="plsAdd">""</string>
|
||||
<string name="planner">"Planificador d’àpats"</string>
|
||||
<string name="pinch">""</string>
|
||||
<string name="Piece">"Peça"</string>
|
||||
<string name="piece">""</string>
|
||||
<string name="pht">"Foto de la recepta"</string>
|
||||
<string name="photogrid">""</string>
|
||||
<string name="Patty">""</string>
|
||||
<string name="Pasta">"Pasta"</string>
|
||||
<string name="oz">""</string>
|
||||
<string name="Ounce">"Unça"</string>
|
||||
<string name="opts">""</string>
|
||||
<string name="_Oldest_first_Z6cq4h">""</string>
|
||||
<string name="OK">"D’acord"</string>
|
||||
<string name="October">"octubre"</string>
|
||||
<string name="nwYiU">""</string>
|
||||
<string name="nwCat">"Categoria nova"</string>
|
||||
<string name="November">"novembre"</string>
|
||||
<string name="nos">""</string>
|
||||
<string name="noRecs">""</string>
|
||||
<string name="Noodles">"Fideus"</string>
|
||||
<string name="noFavs">""</string>
|
||||
<string name="noAccSensor">""</string>
|
||||
<string name="no">""</string>
|
||||
<string name="nNBtn">"ARA NO"</string>
|
||||
<string name="nLangInfo">""</string>
|
||||
<string name="Nigerian">""</string>
|
||||
<string name="newUnit">""</string>
|
||||
<string name="newRec">""</string>
|
||||
<string name="_Newest_first_2Sb3c">""</string>
|
||||
<string name="newCui">""</string>
|
||||
<string name="MON">"DL."</string>
|
||||
<string name="Moderate">""</string>
|
||||
<string name="ml">""</string>
|
||||
<string name="minimal">""</string>
|
||||
<string name="min">""</string>
|
||||
<string name="Millilitre">"Mil·lilitre"</string>
|
||||
<string name="mg">""</string>
|
||||
<string name="Mexican">"Mexicana"</string>
|
||||
<string name="medium">""</string>
|
||||
<string name="Meat">"Carn"</string>
|
||||
<string name="May">"maig"</string>
|
||||
<string name="March">"març"</string>
|
||||
<string name="_Main_dishes_u6RGQ">""</string>
|
||||
<string name="mAgo">""</string>
|
||||
<string name="lunch">""</string>
|
||||
<string name="ltAgo">""</string>
|
||||
<string name="Loaf">""</string>
|
||||
<string name="Litre">"Litre"</string>
|
||||
<string name="listVM">""</string>
|
||||
<string name="Light">""</string>
|
||||
<string name="leaf">""</string>
|
||||
<string name="lb">""</string>
|
||||
<string name="_Last_updated_Z2gEbLD">""</string>
|
||||
<string name="large">""</string>
|
||||
<string name="lang">""</string>
|
||||
<string name="l">""</string>
|
||||
<string name="Korean">""</string>
|
||||
<string name="Kilogram">"Quilogram"</string>
|
||||
<string name="kg">""</string>
|
||||
<string name="Kenyan">""</string>
|
||||
<string name="kEdit">""</string>
|
||||
<string name="June">"juny"</string>
|
||||
<string name="July">"juliol"</string>
|
||||
<string name="joinTG">""</string>
|
||||
<string name="Jewish">""</string>
|
||||
<string name="Japanese">""</string>
|
||||
<string name="January">"gener"</string>
|
||||
<string name="Jamaican">""</string>
|
||||
<string name="Italian">""</string>
|
||||
<string name="it">""</string>
|
||||
<string name="Irish">""</string>
|
||||
<string name="invFile">"El fitxer no és vàlid"</string>
|
||||
<string name="intf">""</string>
|
||||
<string name="inss">""</string>
|
||||
<string name="ings">""</string>
|
||||
<string name="Indian">""</string>
|
||||
<string name="in">""</string>
|
||||
<string name="impSuc">""</string>
|
||||
<string name="impip">""</string>
|
||||
<string name="impInfo">""</string>
|
||||
<string name="impFail">"Ha fallat la importació"</string>
|
||||
<string name="impBu">""</string>
|
||||
<string name="hr">""</string>
|
||||
<string name="Healthy">""</string>
|
||||
<string name="guide">""</string>
|
||||
<string name="grocery">"Llista de queviures"</string>
|
||||
<string name="grid">"Graella"</string>
|
||||
<string name="Greek">""</string>
|
||||
<string name="Gram">"Gram"</string>
|
||||
<string name="gh">""</string>
|
||||
<string name="German">""</string>
|
||||
<string name="Gallon">"Galó"</string>
|
||||
<string name="gal">""</string>
|
||||
<string name="g">""</string>
|
||||
<string name="fsList">""</string>
|
||||
<string name="FRI">"DV."</string>
|
||||
<string name="French">""</string>
|
||||
<string name="_Fluid_Ounce_bd10L">"Unça líquida"</string>
|
||||
<string name="fltr">""</string>
|
||||
<string name="_fl_oz_72kqu">""</string>
|
||||
<string name="_Filtered_recipes_Z1alhhu">""</string>
|
||||
<string name="Filipino">""</string>
|
||||
<string name="February">"febrer"</string>
|
||||
<string name="favourites">"Preferits"</string>
|
||||
<string name="expSuc">""</string>
|
||||
<string name="expip">""</string>
|
||||
<string name="expBu">""</string>
|
||||
<string name="EnRecipes">"EnRecipes"</string>
|
||||
<string name="English">""</string>
|
||||
<string name="Egyptian">""</string>
|
||||
<string name="editRec">""</string>
|
||||
<string name="Easy">""</string>
|
||||
<string name="dsp">""</string>
|
||||
<string name="drop">""</string>
|
||||
<string name="dozen">""</string>
|
||||
<string name="donate">""</string>
|
||||
<string name="disc">"Aquesta recepta té canvis no desats. Què voleu fer?"</string>
|
||||
<string name="disBtn">"DESCARTA’LS"</string>
|
||||
<string name="dinner">""</string>
|
||||
<string name="_Difficulty_level_cSL5d">""</string>
|
||||
<string name="detailed">""</string>
|
||||
<string name="Desserts">"Postres"</string>
|
||||
<string name="delRecsInfo">""</string>
|
||||
<string name="delRecInfo">""</string>
|
||||
<string name="December">"desembre"</string>
|
||||
<string name="dBtn">"SUPRIMEIX"</string>
|
||||
<string name="db">""</string>
|
||||
<string name="Dark">""</string>
|
||||
<string name="Danish">""</string>
|
||||
<string name="dAgo">""</string>
|
||||
<string name="Cup">"Tassa"</string>
|
||||
<string name="cup">""</string>
|
||||
<string name="cui">""</string>
|
||||
<string name="Created">""</string>
|
||||
<string name="cPic">"Escapça la foto"</string>
|
||||
<string name="cookT">""</string>
|
||||
<string name="conf">"Confirma"</string>
|
||||
<string name="conBtn">"CONTINUA"</string>
|
||||
<string name="cmbs">""</string>
|
||||
<string name="cm">""</string>
|
||||
<string name="clove">""</string>
|
||||
<string name="Chinese">""</string>
|
||||
<string name="Challenging">""</string>
|
||||
<string name="cBtn">""</string>
|
||||
<string name="cat">""</string>
|
||||
<string name="buMod">""</string>
|
||||
<string name="buInfo">""</string>
|
||||
<string name="buInc">""</string>
|
||||
<string name="buFol">""</string>
|
||||
<string name="buEmp">""</string>
|
||||
<string name="British">""</string>
|
||||
<string name="breakfast">""</string>
|
||||
<string name="Breads">"Pans"</string>
|
||||
<string name="Brazilian">""</string>
|
||||
<string name="Black">""</string>
|
||||
<string name="Beverages">"Begudes"</string>
|
||||
<string name="Barbecue">"Barbacoes"</string>
|
||||
<string name="August">"agost"</string>
|
||||
<string name="aStpBtn">""</string>
|
||||
<string name="April">"abril"</string>
|
||||
<string name="appRst">"Cal reiniciar l’aplicació"</string>
|
||||
<string name="apply">""</string>
|
||||
<string name="appInfo">"L’EnRecipes és un receptari digital, de codi obert i privat, que us permet crear, gestionar i compartir les vostres receptes"</string>
|
||||
<string name="Appetizers">"Aperitius"</string>
|
||||
<string name="appCrd">""</string>
|
||||
<string name="_app_name_1k3Sbz">"EnRecipes"</string>
|
||||
<string name="app_name">"EnRecipes"</string>
|
||||
<string name="title_activity_kimera">"EnRecipes"</string>
|
||||
<string name="aNoBtn">""</string>
|
||||
<string name="aNBtn">"AFEGEIX-NE UN DE NOU"</string>
|
||||
<string name="American">""</string>
|
||||
<string name="allTs">"Totes les etiquetes"</string>
|
||||
<string name="allCuis">""</string>
|
||||
<string name="allCats">"Totes les categories"</string>
|
||||
<string name="aIngBtn">""</string>
|
||||
<string name="aFBu">""</string>
|
||||
<string name="addCmbBtn">""</string>
|
||||
<string name="aD">""</string>
|
||||
<string name="aBtn">""</string>
|
||||
<string name="About">"Quant a"</string>
|
||||
<string name="aap">""</string>
|
||||
<string name="notifSetg">"Notification settings"</string>
|
||||
<string name="tmrRm">"Timer removed"</string>
|
||||
<string name="seconds">"seconds"</string>
|
||||
<string name="hours">"hours"</string>
|
||||
<string name="hour">"hour"</string>
|
||||
<string name="minutes">"minutes"</string>
|
||||
<string name="minute">"minute"</string>
|
||||
<string name="dlyDur">"Delay duration"</string>
|
||||
<string name="tmrvbrt">"Timer vibrate"</string>
|
||||
<string name="tmrSnd">"Timer sound"</string>
|
||||
<string name="aTPrst">"Added to presets"</string>
|
||||
<string name="fwr">"for which recipe?"</string>
|
||||
<string name="tmrPrsts">"Timer presets"</string>
|
||||
<string name="prstBtn">"PRESETS"</string>
|
||||
<string name="tmr">"Timer %1$s"</string>
|
||||
<string name="delay">"Delay"</string>
|
||||
<string name="stop">"Stop"</string>
|
||||
<string name="strtBtn">"START"</string>
|
||||
<string name="ntmr">"New timer"</string>
|
||||
<string name="timer">"Cooking Timer"</string>
|
||||
<string name="sysDefB">"System default + Black"</string>
|
||||
<string name="buto">"Backed up to %1$s"</string>
|
||||
<string name="yld">"Yield"</string>
|
||||
<string name="yieldU">"Yield unit"</string>
|
||||
<string name="yieldQ">"Yield quantity"</string>
|
||||
<string name="yesterday">"yesterday"</string>
|
||||
<string name="wAgo">"%1$s weeks ago"</string>
|
||||
<string name="Vietnamese">"Vietnamese"</string>
|
||||
<string name="Unit">"Unit"</string>
|
||||
<string name="unit">"unit"</string>
|
||||
<string name="Turkish">"Turkish"</string>
|
||||
<string name="tsp">"tsp"</string>
|
||||
<string name="tsInfo">"separate with spaces"</string>
|
||||
<string name="trySer">"SEARCH IN ALL THE RECIPES?"</string>
|
||||
<string name="triedInfo">"You tried this recipe %1$s"</string>
|
||||
<string name="today">"today"</string>
|
||||
<string name="tLInfo">"Recipes you want to try later are listed here"</string>
|
||||
<string name="title">"Title"</string>
|
||||
<string name="Theme">"Theme"</string>
|
||||
<string name="Thai">"Thai"</string>
|
||||
<string name="tbsp">"tbsp"</string>
|
||||
<string name="sysDef">"System default"</string>
|
||||
<string name="swm">"Start week on Monday"</string>
|
||||
<string name="Swedish">"Swedish"</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="strAdd">"Start adding your recipes!"</string>
|
||||
<string name="stp">"Step"</string>
|
||||
<string name="stick">"stick"</string>
|
||||
<string name="stars">"Star rating"</string>
|
||||
<string name="sru">"Share recipe using..."</string>
|
||||
<string name="srt">"Sort"</string>
|
||||
<string name="srpu">"Share recipe photo using..."</string>
|
||||
<string name="_Sri_Lankan_Z7GfBa">"Sri Lankan"</string>
|
||||
<string name="small">"small"</string>
|
||||
<string name="sltd">"selected"</string>
|
||||
<string name="_Slowest_first_hHjY6">"Slowest first"</string>
|
||||
<string name="simple">"Simple"</string>
|
||||
<string name="selRec">"Select recipe"</string>
|
||||
<string name="Scottish">"Scottish"</string>
|
||||
<string name="Russian">"Russian"</string>
|
||||
<string name="rp">"Remove photo"</string>
|
||||
<string name="Roll">"Roll"</string>
|
||||
<string name="rmYUInfo">"You are about to remove %1$s from the yield unit list"</string>
|
||||
<string name="rmUInfo">"You are about to remove %1$s from the unit list"</string>
|
||||
<string name="rmN">"Note removed"</string>
|
||||
<string name="rmIns">"Instruction removed"</string>
|
||||
<string name="rmIng">"Ingredient removed"</string>
|
||||
<string name="rmCuiInfo">"You are about to remove %1$s from the cuisine list"</string>
|
||||
<string name="rmCmb">"Combination removed"</string>
|
||||
<string name="rmCatInfo">"You are about to remove %1$s from the category list"</string>
|
||||
<string name="restYUL">"Reset yield unit list"</string>
|
||||
<string name="restUL">"Reset unit list"</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="restDone">"Reset done"</string>
|
||||
<string name="restCuiL">"Reset cuisine list"</string>
|
||||
<string name="restCatL">"Reset category list"</string>
|
||||
<string name="rest">"Reset"</string>
|
||||
<string name="resNF">"Recipe not found"</string>
|
||||
<string name="req">"Required %1$s"</string>
|
||||
<string name="recU">"Updated:"</string>
|
||||
<string name="recTitle">"My Healthy Recipe"</string>
|
||||
<string name="recs">"recipes"</string>
|
||||
<string name="recRm">"Recipe removed"</string>
|
||||
<string name="recPic">"Recipe photo"</string>
|
||||
<string name="recListEmp">"Nothing here! Add some recipes and try again"</string>
|
||||
<string name="recI">"Imported:"</string>
|
||||
<string name="recF">"recipes found"</string>
|
||||
<string name="recE">"Already exist:"</string>
|
||||
<string name="rBtn">"REMOVE"</string>
|
||||
<string name="Rating">"Rating"</string>
|
||||
<string name="_Quickest_first_Z1CpP7N">"Quickest first"</string>
|
||||
<string name="qt">"qt"</string>
|
||||
<string name="pt">"pt"</string>
|
||||
<string name="priv">"Privacy policy"</string>
|
||||
<string name="prepT">"Preparation time"</string>
|
||||
<string name="Poultry">"Poultry"</string>
|
||||
<string name="Portuguese">"Portuguese"</string>
|
||||
<string name="plsAdd">"Use the plus button to add one"</string>
|
||||
<string name="pinch">"pinch"</string>
|
||||
<string name="piece">"piece"</string>
|
||||
<string name="photogrid">"Photo Grid"</string>
|
||||
<string name="Patty">"Patty"</string>
|
||||
<string name="oz">"oz"</string>
|
||||
<string name="opts">"Options"</string>
|
||||
<string name="_Oldest_first_Z6cq4h">"Oldest first"</string>
|
||||
<string name="nwYiU">"New yield unit"</string>
|
||||
<string name="nos">"Notes"</string>
|
||||
<string name="noRecsInL">"None of the recipes here matches your search"</string>
|
||||
<string name="noRecs">"No recipes match your search"</string>
|
||||
<string name="noFavs">"No favourites yet"</string>
|
||||
<string name="noAccSensor">"Accelerometer sensor is either disabled or is not working"</string>
|
||||
<string name="no">"Note"</string>
|
||||
<string name="nLangInfo">"Restart EnRecipes to use the new language"</string>
|
||||
<string name="Nigerian">"Nigerian"</string>
|
||||
<string name="newUnit">"New unit"</string>
|
||||
<string name="newRec">"New recipe"</string>
|
||||
<string name="_Newest_first_2Sb3c">"Newest first"</string>
|
||||
<string name="newCui">"New cuisine"</string>
|
||||
<string name="Moderate">"Moderate"</string>
|
||||
<string name="ml">"ml"</string>
|
||||
<string name="minimal">"Minimal"</string>
|
||||
<string name="min">"min"</string>
|
||||
<string name="mg">"mg"</string>
|
||||
<string name="medium">"medium"</string>
|
||||
<string name="_Main_dishes_u6RGQ">"Main dishes"</string>
|
||||
<string name="mAgo">"%1$s months ago"</string>
|
||||
<string name="lunch">"Lunch"</string>
|
||||
<string name="ltAgo">"a long time ago"</string>
|
||||
<string name="Loaf">"Loaf"</string>
|
||||
<string name="listVM">"List view mode"</string>
|
||||
<string name="Light">"Light"</string>
|
||||
<string name="leaf">"leaf"</string>
|
||||
<string name="lb">"lb"</string>
|
||||
<string name="_Last_updated_Z2gEbLD">"Last updated"</string>
|
||||
<string name="large">"large"</string>
|
||||
<string name="lang">"Language"</string>
|
||||
<string name="l">"l"</string>
|
||||
<string name="Korean">"Korean"</string>
|
||||
<string name="kg">"kg"</string>
|
||||
<string name="Kenyan">"Kenyan"</string>
|
||||
<string name="kEdit">"KEEP EDITING"</string>
|
||||
<string name="joinTG">"Join the Telegram group"</string>
|
||||
<string name="Jewish">"Jewish"</string>
|
||||
<string name="Japanese">"Japanese"</string>
|
||||
<string name="Jamaican">"Jamaican"</string>
|
||||
<string name="Italian">"Italian"</string>
|
||||
<string name="it">"Item"</string>
|
||||
<string name="Irish">"Irish"</string>
|
||||
<string name="intf">"Interface"</string>
|
||||
<string name="inss">"Instructions"</string>
|
||||
<string name="ings">"Ingredients"</string>
|
||||
<string name="Indian">"Indian"</string>
|
||||
<string name="in">"in"</string>
|
||||
<string name="impSuc">"Import success"</string>
|
||||
<string name="impip">"Import in progress"</string>
|
||||
<string name="impInfo">"Supports full backups exported by this app"</string>
|
||||
<string name="impBu">"Import data"</string>
|
||||
<string name="hr">"hr"</string>
|
||||
<string name="Healthy">"Healthy"</string>
|
||||
<string name="guide">"User guide"</string>
|
||||
<string name="Greek">"Greek"</string>
|
||||
<string name="gh">"View on GitHub"</string>
|
||||
<string name="German">"German"</string>
|
||||
<string name="gal">"gal"</string>
|
||||
<string name="g">"g"</string>
|
||||
<string name="fsList">"Your favourite recipes are listed here"</string>
|
||||
<string name="French">"French"</string>
|
||||
<string name="fltr">"Filter"</string>
|
||||
<string name="_fl_oz_72kqu">"fl oz"</string>
|
||||
<string name="_Filtered_recipes_Z1alhhu">"Filtered recipes"</string>
|
||||
<string name="Filipino">"Filipino"</string>
|
||||
<string name="expSuc">"Export success"</string>
|
||||
<string name="expip">"Export in progress"</string>
|
||||
<string name="expBu">"Export full backup"</string>
|
||||
<string name="English">"English"</string>
|
||||
<string name="Egyptian">"Egyptian"</string>
|
||||
<string name="editRec">"Edit recipe"</string>
|
||||
<string name="Easy">"Easy"</string>
|
||||
<string name="dsp">"dstspn"</string>
|
||||
<string name="drop">"drop"</string>
|
||||
<string name="dozen">"dozen"</string>
|
||||
<string name="donate">"Donate"</string>
|
||||
<string name="dinner">"Dinner"</string>
|
||||
<string name="_Difficulty_level_cSL5d">"Difficulty level"</string>
|
||||
<string name="detailed">"Detailed"</string>
|
||||
<string name="delRecsInfo">"You are about to permanently delete %1$s"</string>
|
||||
<string name="delRecInfo">"You are about to permanently delete the recipe %1$s"</string>
|
||||
<string name="db">"Database"</string>
|
||||
<string name="Dark">"Dark"</string>
|
||||
<string name="Danish">"Danish"</string>
|
||||
<string name="dAgo">"%1$s days ago"</string>
|
||||
<string name="cup">"cup"</string>
|
||||
<string name="cui">"Cuisine"</string>
|
||||
<string name="Created">"Created"</string>
|
||||
<string name="cookT">"Cooking time"</string>
|
||||
<string name="cmbs">"Combinations"</string>
|
||||
<string name="cm">"cm"</string>
|
||||
<string name="clove">"clove"</string>
|
||||
<string name="Chinese">"Chinese"</string>
|
||||
<string name="Challenging">"Challenging"</string>
|
||||
<string name="cBtn">"CANCEL"</string>
|
||||
<string name="cat">"Category"</string>
|
||||
<string name="buMod">"The backup file was modified elsewhere"</string>
|
||||
<string name="buInfo">"Generates a ZIP file containing all your data that can be imported back"</string>
|
||||
<string name="buInc">"Malformed or corrupt backup file"</string>
|
||||
<string name="buFol">"Backup folder"</string>
|
||||
<string name="buEmp">"The backup file is empty"</string>
|
||||
<string name="British">"British"</string>
|
||||
<string name="breakfast">"Breakfast"</string>
|
||||
<string name="Brazilian">"Brazilian"</string>
|
||||
<string name="Black">"Black"</string>
|
||||
<string name="aStpBtn">"ADD STEP"</string>
|
||||
<string name="apply">"APPLY"</string>
|
||||
<string name="appCrd">"Shared via EnRecipes. Get it on F-Droid, IzzyOnDroid or the Play Store."</string>
|
||||
<string name="aNoBtn">"ADD NOTE"</string>
|
||||
<string name="American">"American"</string>
|
||||
<string name="allCuis">"All Cuisines"</string>
|
||||
<string name="aIngBtn">"ADD INGREDIENT"</string>
|
||||
<string name="aFBu">"Add a recipe to perform a backup"</string>
|
||||
<string name="addCmbBtn">"ADD COMBINATION"</string>
|
||||
<string name="aD">"All done!"</string>
|
||||
<string name="aBtn">"ADD"</string>
|
||||
<string name="aap">"Attach a photo"</string>
|
||||
<string name="tmrClr">"tmrClr"</string>
|
||||
</resources>
|
||||
|
|
|
@ -1,5 +1,26 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="seconds">"sekunder"</string>
|
||||
<string name="minutes">"minutter"</string>
|
||||
<string name="minute">"minut"</string>
|
||||
<string name="dlyDur">"Forsinkelsens varighed"</string>
|
||||
<string name="tmrvbrt">"Timer vibrerer"</string>
|
||||
<string name="tmr">"Timeren %1$s"</string>
|
||||
<string name="tmrSnd">"Timeren lyd"</string>
|
||||
<string name="prstBtn">"FORUDSÆTTER"</string>
|
||||
<string name="tmrPrsts">"Timeren forindstillinger"</string>
|
||||
<string name="fwr">"til hvilken opskrift?"</string>
|
||||
<string name="aTPrst">"Tilføjet til forudindstillinger"</string>
|
||||
<string name="hours">"timers"</string>
|
||||
<string name="hour">"timer"</string>
|
||||
<string name="tmrClr">"Timeren er slettet"</string>
|
||||
<string name="timer">"Kogetid Timer"</string>
|
||||
<string name="ntmr">"Ny timer"</string>
|
||||
<string name="strtBtn">"STARTER"</string>
|
||||
<string name="stop">"Stopper"</string>
|
||||
<string name="delay">"Forsinkelse"</string>
|
||||
<string name="sec">"s"</string>
|
||||
<string name="sysDefB">"Systemstandard + sort"</string>
|
||||
<string name="November">"November"</string>
|
||||
<string name="nwCat">"Ny kategori"</string>
|
||||
<string name="nwYiU">"Ny udbytteenhed"</string>
|
||||
|
@ -292,4 +313,6 @@
|
|||
<string name="American">"American"</string>
|
||||
<string name="aD">"Fuldendt!"</string>
|
||||
<string name="About">"Om"</string>
|
||||
<string name="notifSetg">"Notification settings"</string>
|
||||
<string name="tmrRm">"Timer removed"</string>
|
||||
</resources>
|
||||
|
|
|
@ -1,5 +1,26 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="tmrClr">"Timer gelöscht"</string>
|
||||
<string name="delay">"Verzögerung"</string>
|
||||
<string name="dlyDur">"Verzögerungsdauer"</string>
|
||||
<string name="minute">"Minute"</string>
|
||||
<string name="minutes">"Minuten"</string>
|
||||
<string name="hour">"Stunde"</string>
|
||||
<string name="hours">"Stunden"</string>
|
||||
<string name="seconds">"Sekunden"</string>
|
||||
<string name="stop">"Stopp"</string>
|
||||
<string name="prstBtn">"Voreinstellungen"</string>
|
||||
<string name="fwr">"für welches Rezept?"</string>
|
||||
<string name="aTPrst">"Zu Voreinstellungen hinzugefügt"</string>
|
||||
<string name="tmrPrsts">"Timer-Voreinstellungen"</string>
|
||||
<string name="tmrSnd">"Timerton"</string>
|
||||
<string name="tmrvbrt">"Timervibration"</string>
|
||||
<string name="sec">"sec"</string>
|
||||
<string name="timer">"Kochtimer"</string>
|
||||
<string name="ntmr">"Neuer Timer"</string>
|
||||
<string name="strtBtn">"START"</string>
|
||||
<string name="tmr">"Timer %1$s"</string>
|
||||
<string name="sysDefB">"Systemstandard + schwarz"</string>
|
||||
<string name="buto">"Gesichert in %1$s"</string>
|
||||
<string name="yld">"Ergebnis"</string>
|
||||
<string name="yieldU">"Ertragseinheit"</string>
|
||||
|
@ -292,4 +313,6 @@
|
|||
<string name="aBtn">"HINZUFÜGEN"</string>
|
||||
<string name="About">"Über"</string>
|
||||
<string name="aap">"Foto anhängen"</string>
|
||||
<string name="notifSetg">"Notification settings"</string>
|
||||
<string name="tmrRm">"Timer removed"</string>
|
||||
</resources>
|
||||
|
|
318
app/resources/Android/src/main/res/values-en-rIN/strings.xml
Normal file
|
@ -0,0 +1,318 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="tmrClr">"Timer cleared"</string>
|
||||
<string name="delay">"Delay"</string>
|
||||
<string name="dlyDur">"Delay duration"</string>
|
||||
<string name="minute">"minute"</string>
|
||||
<string name="minutes">"minutes"</string>
|
||||
<string name="hour">"hour"</string>
|
||||
<string name="hours">"hours"</string>
|
||||
<string name="seconds">"seconds"</string>
|
||||
<string name="sec">"s"</string>
|
||||
<string name="timer">"Cooking Timer"</string>
|
||||
<string name="ntmr">"New timer"</string>
|
||||
<string name="strtBtn">"START"</string>
|
||||
<string name="stop">"Stop"</string>
|
||||
<string name="tmr">"Timer %1$s"</string>
|
||||
<string name="prstBtn">"PRESETS"</string>
|
||||
<string name="tmrPrsts">"Timer presets"</string>
|
||||
<string name="fwr">"for which recipe?"</string>
|
||||
<string name="aTPrst">"Added to presets"</string>
|
||||
<string name="tmrSnd">"Timer sound"</string>
|
||||
<string name="tmrvbrt">"Timer vibrate"</string>
|
||||
<string name="sysDefB">"System default + Black"</string>
|
||||
<string name="buto">"Backed up to %1$s"</string>
|
||||
<string name="yld">"Yield"</string>
|
||||
<string name="yieldU">"Yield unit"</string>
|
||||
<string name="yieldQ">"Yield quantity"</string>
|
||||
<string name="yesterday">"yesterday"</string>
|
||||
<string name="WED">"WED"</string>
|
||||
<string name="wAgo">"%1$s weeks ago"</string>
|
||||
<string name="Vietnamese">"Vietnamese"</string>
|
||||
<string name="Vegetarian">"Vegetarian"</string>
|
||||
<string name="Vegan">"Vegan"</string>
|
||||
<string name="untRec">"Untitled Recipe"</string>
|
||||
<string name="unsaved">"Unsaved changes"</string>
|
||||
<string name="Unit">"Unit"</string>
|
||||
<string name="unit">"unit"</string>
|
||||
<string name="Undefined">"Undefined"</string>
|
||||
<string name="Turkish">"Turkish"</string>
|
||||
<string name="TUE">"TUE"</string>
|
||||
<string name="tsp">"tsp"</string>
|
||||
<string name="tsInfo">"separate with spaces"</string>
|
||||
<string name="ts">"Tags"</string>
|
||||
<string name="trySer">"SEARCH IN ALL THE RECIPES?"</string>
|
||||
<string name="trylater">"Try Later"</string>
|
||||
<string name="trnsl">"Translate"</string>
|
||||
<string name="triedInfo">"You tried this recipe %1$s"</string>
|
||||
<string name="today">"today"</string>
|
||||
<string name="tLInfo">"Recipes you want to try later are listed here"</string>
|
||||
<string name="title">"Title"</string>
|
||||
<string name="THU">"THU"</string>
|
||||
<string name="Theme">"Theme"</string>
|
||||
<string name="Thai">"Thai"</string>
|
||||
<string name="Teaspoon">"Teaspoon"</string>
|
||||
<string name="tbsp">"tbsp"</string>
|
||||
<string name="Tablespoon">"Tablespoon"</string>
|
||||
<string name="sysDef">"System default"</string>
|
||||
<string name="swm">"Start week on Monday"</string>
|
||||
<string name="Swedish">"Swedish"</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="SUN">"SUN"</string>
|
||||
<string name="strAdd">"Start adding your recipes!"</string>
|
||||
<string name="stp">"Step"</string>
|
||||
<string name="stick">"stick"</string>
|
||||
<string name="stars">"Star rating"</string>
|
||||
<string name="sru">"Share recipe using..."</string>
|
||||
<string name="srt">"Sort"</string>
|
||||
<string name="srpu">"Share recipe photo using..."</string>
|
||||
<string name="_Sri_Lankan_Z7GfBa">"Sri Lankan"</string>
|
||||
<string name="Spanish">"Spanish"</string>
|
||||
<string name="Soups">"Soups"</string>
|
||||
<string name="snacks">"Snacks"</string>
|
||||
<string name="small">"small"</string>
|
||||
<string name="sltd">"selected"</string>
|
||||
<string name="_Slowest_first_hHjY6">"Slowest first"</string>
|
||||
<string name="simple">"Simple"</string>
|
||||
<string name="_Side_dishes_Z1Et4Vg">"Side dishes"</string>
|
||||
<string name="shr">"Share"</string>
|
||||
<string name="Settings">"Settings"</string>
|
||||
<string name="SET">"SET"</string>
|
||||
<string name="Serving">"Serving"</string>
|
||||
<string name="ser">"Search"</string>
|
||||
<string name="September">"September"</string>
|
||||
<string name="selRec">"Select recipe"</string>
|
||||
<string name="Seafood">"Seafood"</string>
|
||||
<string name="Scottish">"Scottish"</string>
|
||||
<string name="Sauces">"Sauces"</string>
|
||||
<string name="SAT">"SAT"</string>
|
||||
<string name="Salads">"Salads"</string>
|
||||
<string name="Russian">"Russian"</string>
|
||||
<string name="rst">"RESTART"</string>
|
||||
<string name="rp">"Remove photo"</string>
|
||||
<string name="Roll">"Roll"</string>
|
||||
<string name="rmYUInfo">"You are about to remove %1$s from the yield unit list"</string>
|
||||
<string name="rmUInfo">"You are about to remove %1$s from the unit list"</string>
|
||||
<string name="rmN">"Note removed"</string>
|
||||
<string name="rmIns">"Instruction removed"</string>
|
||||
<string name="rmIng">"Ingredient removed"</string>
|
||||
<string name="rmCuiInfo">"You are about to remove %1$s from the cuisine list"</string>
|
||||
<string name="rmCmb">"Combination removed"</string>
|
||||
<string name="rmCatInfo">"You are about to remove %1$s from the category list"</string>
|
||||
<string name="Rice">"Rice"</string>
|
||||
<string name="restYUL">"Reset yield unit list"</string>
|
||||
<string name="restUL">"Reset unit list"</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="restDone">"Reset done"</string>
|
||||
<string name="restCuiL">"Reset cuisine list"</string>
|
||||
<string name="restCatL">"Reset category list"</string>
|
||||
<string name="rest">"Reset"</string>
|
||||
<string name="resNF">"Recipe not found"</string>
|
||||
<string name="req">"Required %1$s"</string>
|
||||
<string name="recU">"Updated:"</string>
|
||||
<string name="recTitle">"My Healthy Recipe"</string>
|
||||
<string name="recs">"recipes"</string>
|
||||
<string name="recRm">"Recipe removed"</string>
|
||||
<string name="recPic">"Recipe photo"</string>
|
||||
<string name="recListEmp">"Nothing here! Add some recipes and try again"</string>
|
||||
<string name="recI">"Imported:"</string>
|
||||
<string name="recF">"recipes found"</string>
|
||||
<string name="recE">"Already exist:"</string>
|
||||
<string name="rec">"Recipe"</string>
|
||||
<string name="rBtn">"REMOVE"</string>
|
||||
<string name="Rating">"Rating"</string>
|
||||
<string name="_Quickest_first_Z1CpP7N">"Quickest first"</string>
|
||||
<string name="qt">"qt"</string>
|
||||
<string name="pt">"pt"</string>
|
||||
<string name="priv">"Privacy policy"</string>
|
||||
<string name="prepT">"Preparation time"</string>
|
||||
<string name="Pound">"Pound"</string>
|
||||
<string name="Poultry">"Poultry"</string>
|
||||
<string name="Portuguese">"Portuguese"</string>
|
||||
<string name="plsAdd">"Use the plus button to add one"</string>
|
||||
<string name="planner">"Meal Planner"</string>
|
||||
<string name="pinch">"pinch"</string>
|
||||
<string name="Piece">"Piece"</string>
|
||||
<string name="piece">"piece"</string>
|
||||
<string name="pht">"Recipe photo"</string>
|
||||
<string name="photogrid">"Photo Grid"</string>
|
||||
<string name="Patty">"Patty"</string>
|
||||
<string name="Pasta">"Pasta"</string>
|
||||
<string name="oz">"oz"</string>
|
||||
<string name="Ounce">"Ounce"</string>
|
||||
<string name="opts">"Options"</string>
|
||||
<string name="_Oldest_first_Z6cq4h">"Oldest first"</string>
|
||||
<string name="OK">"OK"</string>
|
||||
<string name="October">"October"</string>
|
||||
<string name="nwYiU">"New yield unit"</string>
|
||||
<string name="nwCat">"New category"</string>
|
||||
<string name="November">"November"</string>
|
||||
<string name="nos">"Notes"</string>
|
||||
<string name="noRecsInL">"None of the recipes here matches your search"</string>
|
||||
<string name="noRecs">"No recipes match your search"</string>
|
||||
<string name="Noodles">"Noodles"</string>
|
||||
<string name="noFavs">"No favourites yet"</string>
|
||||
<string name="noAccSensor">"Accelerometer sensor is either disabled or is not working"</string>
|
||||
<string name="no">"Note"</string>
|
||||
<string name="nNBtn">"NOT NOW"</string>
|
||||
<string name="nLangInfo">"Restart EnRecipes to use the new language"</string>
|
||||
<string name="Nigerian">"Nigerian"</string>
|
||||
<string name="newUnit">"New unit"</string>
|
||||
<string name="newRec">"New recipe"</string>
|
||||
<string name="_Newest_first_2Sb3c">"Newest first"</string>
|
||||
<string name="newCui">"New cuisine"</string>
|
||||
<string name="MON">"MON"</string>
|
||||
<string name="Moderate">"Moderate"</string>
|
||||
<string name="ml">"ml"</string>
|
||||
<string name="minimal">"Minimal"</string>
|
||||
<string name="min">"min"</string>
|
||||
<string name="Millilitre">"Millilitre"</string>
|
||||
<string name="mg">"mg"</string>
|
||||
<string name="Mexican">"Mexican"</string>
|
||||
<string name="medium">"medium"</string>
|
||||
<string name="Meat">"Meat"</string>
|
||||
<string name="May">"May"</string>
|
||||
<string name="March">"March"</string>
|
||||
<string name="_Main_dishes_u6RGQ">"Main dishes"</string>
|
||||
<string name="mAgo">"%1$s months ago"</string>
|
||||
<string name="lunch">"Lunch"</string>
|
||||
<string name="ltAgo">"a long time ago"</string>
|
||||
<string name="Loaf">"Loaf"</string>
|
||||
<string name="Litre">"Litre"</string>
|
||||
<string name="listVM">"List view mode"</string>
|
||||
<string name="Light">"Light"</string>
|
||||
<string name="leaf">"leaf"</string>
|
||||
<string name="lb">"lb"</string>
|
||||
<string name="_Last_updated_Z2gEbLD">"Last updated"</string>
|
||||
<string name="large">"large"</string>
|
||||
<string name="lang">"Language"</string>
|
||||
<string name="l">"l"</string>
|
||||
<string name="Korean">"Korean"</string>
|
||||
<string name="Kilogram">"Kilogram"</string>
|
||||
<string name="kg">"kg"</string>
|
||||
<string name="Kenyan">"Kenyan"</string>
|
||||
<string name="kEdit">"KEEP EDITING"</string>
|
||||
<string name="June">"June"</string>
|
||||
<string name="July">"July"</string>
|
||||
<string name="joinTG">"Join the Telegram group"</string>
|
||||
<string name="Jewish">"Jewish"</string>
|
||||
<string name="Japanese">"Japanese"</string>
|
||||
<string name="January">"January"</string>
|
||||
<string name="Jamaican">"Jamaican"</string>
|
||||
<string name="Italian">"Italian"</string>
|
||||
<string name="it">"Item"</string>
|
||||
<string name="Irish">"Irish"</string>
|
||||
<string name="invFile">"Invalid file"</string>
|
||||
<string name="intf">"Interface"</string>
|
||||
<string name="inss">"Instructions"</string>
|
||||
<string name="ings">"Ingredients"</string>
|
||||
<string name="Indian">"Indian"</string>
|
||||
<string name="in">"in"</string>
|
||||
<string name="impSuc">"Import success"</string>
|
||||
<string name="impip">"Import in progress"</string>
|
||||
<string name="impInfo">"Supports full backups exported by this app"</string>
|
||||
<string name="impFail">"Import failed"</string>
|
||||
<string name="impBu">"Import data"</string>
|
||||
<string name="hr">"h"</string>
|
||||
<string name="Healthy">"Healthy"</string>
|
||||
<string name="guide">"User guide"</string>
|
||||
<string name="grocery">"Grocery List"</string>
|
||||
<string name="grid">"Grid"</string>
|
||||
<string name="Greek">"Greek"</string>
|
||||
<string name="Gram">"Gram"</string>
|
||||
<string name="gh">"View on GitHub"</string>
|
||||
<string name="German">"German"</string>
|
||||
<string name="Gallon">"Gallon"</string>
|
||||
<string name="gal">"gal"</string>
|
||||
<string name="g">"g"</string>
|
||||
<string name="fsList">"Your favourite recipes are listed here"</string>
|
||||
<string name="FRI">"FRI"</string>
|
||||
<string name="French">"French"</string>
|
||||
<string name="_Fluid_Ounce_bd10L">"Fluid Ounce"</string>
|
||||
<string name="fltr">"Filter"</string>
|
||||
<string name="_fl_oz_72kqu">"fl oz"</string>
|
||||
<string name="_Filtered_recipes_Z1alhhu">"Filtered recipes"</string>
|
||||
<string name="Filipino">"Filipino"</string>
|
||||
<string name="February">"February"</string>
|
||||
<string name="favourites">"Favourites"</string>
|
||||
<string name="expSuc">"Export success"</string>
|
||||
<string name="expip">"Export in progress"</string>
|
||||
<string name="expBu">"Export full backup"</string>
|
||||
<string name="EnRecipes">"EnRecipes"</string>
|
||||
<string name="English">"English"</string>
|
||||
<string name="Egyptian">"Egyptian"</string>
|
||||
<string name="editRec">"Edit recipe"</string>
|
||||
<string name="Easy">"Easy"</string>
|
||||
<string name="dsp">"dstspn"</string>
|
||||
<string name="drop">"drop"</string>
|
||||
<string name="dozen">"dozen"</string>
|
||||
<string name="donate">"Donate"</string>
|
||||
<string name="disc">"This recipe has unsaved changes. What would you like to do?"</string>
|
||||
<string name="disBtn">"DISCARD"</string>
|
||||
<string name="dinner">"Dinner"</string>
|
||||
<string name="_Difficulty_level_cSL5d">"Difficulty level"</string>
|
||||
<string name="detailed">"Detailed"</string>
|
||||
<string name="Desserts">"Desserts"</string>
|
||||
<string name="delRecsInfo">"You are about to permanently delete %1$s"</string>
|
||||
<string name="delRecInfo">"You are about to permanently delete the recipe %1$s"</string>
|
||||
<string name="December">"December"</string>
|
||||
<string name="dBtn">"DELETE"</string>
|
||||
<string name="db">"Database"</string>
|
||||
<string name="Dark">"Dark"</string>
|
||||
<string name="Danish">"Danish"</string>
|
||||
<string name="dAgo">"%1$s days ago"</string>
|
||||
<string name="Cup">"Cup"</string>
|
||||
<string name="cup">"cup"</string>
|
||||
<string name="cui">"Cuisine"</string>
|
||||
<string name="Created">"Created"</string>
|
||||
<string name="cPic">"Crop photo"</string>
|
||||
<string name="cookT">"Cooking time"</string>
|
||||
<string name="conf">"Confirm"</string>
|
||||
<string name="conBtn">"CONTINUE"</string>
|
||||
<string name="cmbs">"Combinations"</string>
|
||||
<string name="cm">"cm"</string>
|
||||
<string name="clove">"clove"</string>
|
||||
<string name="Chinese">"Chinese"</string>
|
||||
<string name="Challenging">"Challenging"</string>
|
||||
<string name="cBtn">"CANCEL"</string>
|
||||
<string name="cat">"Category"</string>
|
||||
<string name="buMod">"The backup file was modified elsewhere"</string>
|
||||
<string name="buInfo">"Generates a ZIP file containing all your data that can be imported back"</string>
|
||||
<string name="buInc">"Malformed or corrupt backup file"</string>
|
||||
<string name="buFol">"Backup folder"</string>
|
||||
<string name="buEmp">"The backup file is empty"</string>
|
||||
<string name="British">"British"</string>
|
||||
<string name="breakfast">"Breakfast"</string>
|
||||
<string name="Breads">"Breads"</string>
|
||||
<string name="Brazilian">"Brazilian"</string>
|
||||
<string name="Black">"Black"</string>
|
||||
<string name="Beverages">"Beverages"</string>
|
||||
<string name="Barbecue">"Barbecue"</string>
|
||||
<string name="August">"August"</string>
|
||||
<string name="aStpBtn">"ADD STEP"</string>
|
||||
<string name="April">"April"</string>
|
||||
<string name="appRst">"App restart required"</string>
|
||||
<string name="apply">"APPLY"</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="Appetizers">"Appetizers"</string>
|
||||
<string name="appCrd">"Shared via EnRecipes. Get it on F-Droid, IzzyOnDroid or the Play Store."</string>
|
||||
<string name="_app_name_1k3Sbz">"EnRecipes"</string>
|
||||
<string name="app_name">"EnRecipes"</string>
|
||||
<string name="title_activity_kimera">"EnRecipes"</string>
|
||||
<string name="aNoBtn">"ADD NOTE"</string>
|
||||
<string name="aNBtn">"ADD NEW"</string>
|
||||
<string name="American">"American"</string>
|
||||
<string name="allTs">"All Tags"</string>
|
||||
<string name="allCuis">"All Cuisines"</string>
|
||||
<string name="allCats">"All Categories"</string>
|
||||
<string name="aIngBtn">"ADD INGREDIENT"</string>
|
||||
<string name="aFBu">"Add a recipe to perform a backup"</string>
|
||||
<string name="addCmbBtn">"ADD COMBINATION"</string>
|
||||
<string name="aD">"All done!"</string>
|
||||
<string name="aBtn">"ADD"</string>
|
||||
<string name="About">"About"</string>
|
||||
<string name="aap">"Attach a photo"</string>
|
||||
<string name="notifSetg">"Notification settings"</string>
|
||||
<string name="tmrRm">"Timer removed"</string>
|
||||
</resources>
|
318
app/resources/Android/src/main/res/values-en-rUS/strings.xml
Normal file
|
@ -0,0 +1,318 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="tmrClr">"Timer cleared"</string>
|
||||
<string name="delay">"Delay"</string>
|
||||
<string name="dlyDur">"Delay duration"</string>
|
||||
<string name="minute">"minute"</string>
|
||||
<string name="minutes">"minutes"</string>
|
||||
<string name="hour">"hour"</string>
|
||||
<string name="hours">"hours"</string>
|
||||
<string name="seconds">"seconds"</string>
|
||||
<string name="sec">"s"</string>
|
||||
<string name="timer">"Cooking Timer"</string>
|
||||
<string name="ntmr">"New timer"</string>
|
||||
<string name="strtBtn">"START"</string>
|
||||
<string name="stop">"Stop"</string>
|
||||
<string name="tmr">"Timer %1$s"</string>
|
||||
<string name="prstBtn">"PRESETS"</string>
|
||||
<string name="tmrPrsts">"Timer presets"</string>
|
||||
<string name="fwr">"for which recipe?"</string>
|
||||
<string name="aTPrst">"Added to presets"</string>
|
||||
<string name="tmrSnd">"Timer sound"</string>
|
||||
<string name="tmrvbrt">"Timer vibrate"</string>
|
||||
<string name="sysDefB">"System default + Black"</string>
|
||||
<string name="buto">"Backed up to %1$s"</string>
|
||||
<string name="yld">"Yield"</string>
|
||||
<string name="yieldU">"Yield unit"</string>
|
||||
<string name="yieldQ">"Yield quantity"</string>
|
||||
<string name="yesterday">"yesterday"</string>
|
||||
<string name="WED">"WED"</string>
|
||||
<string name="wAgo">"%1$s weeks ago"</string>
|
||||
<string name="Vietnamese">"Vietnamese"</string>
|
||||
<string name="Vegetarian">"Vegetarian"</string>
|
||||
<string name="Vegan">"Vegan"</string>
|
||||
<string name="untRec">"Untitled Recipe"</string>
|
||||
<string name="unsaved">"Unsaved changes"</string>
|
||||
<string name="Unit">"Unit"</string>
|
||||
<string name="unit">"unit"</string>
|
||||
<string name="Undefined">"Undefined"</string>
|
||||
<string name="Turkish">"Turkish"</string>
|
||||
<string name="TUE">"TUE"</string>
|
||||
<string name="tsp">"tsp"</string>
|
||||
<string name="tsInfo">"separate with spaces"</string>
|
||||
<string name="ts">"Tags"</string>
|
||||
<string name="trySer">"SEARCH IN ALL THE RECIPES?"</string>
|
||||
<string name="trylater">"Try Later"</string>
|
||||
<string name="trnsl">"Translate"</string>
|
||||
<string name="triedInfo">"You tried this recipe %1$s"</string>
|
||||
<string name="today">"today"</string>
|
||||
<string name="tLInfo">"Recipes you want to try later are listed here"</string>
|
||||
<string name="title">"Title"</string>
|
||||
<string name="THU">"THU"</string>
|
||||
<string name="Theme">"Theme"</string>
|
||||
<string name="Thai">"Thai"</string>
|
||||
<string name="Teaspoon">"Teaspoon"</string>
|
||||
<string name="tbsp">"tbsp"</string>
|
||||
<string name="Tablespoon">"Tablespoon"</string>
|
||||
<string name="sysDef">"System default"</string>
|
||||
<string name="swm">"Start week on Monday"</string>
|
||||
<string name="Swedish">"Swedish"</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="SUN">"SUN"</string>
|
||||
<string name="strAdd">"Start adding your recipes!"</string>
|
||||
<string name="stp">"Step"</string>
|
||||
<string name="stick">"stick"</string>
|
||||
<string name="stars">"Star rating"</string>
|
||||
<string name="sru">"Share recipe using..."</string>
|
||||
<string name="srt">"Sort"</string>
|
||||
<string name="srpu">"Share recipe photo using..."</string>
|
||||
<string name="_Sri_Lankan_Z7GfBa">"Sri Lankan"</string>
|
||||
<string name="Spanish">"Spanish"</string>
|
||||
<string name="Soups">"Soups"</string>
|
||||
<string name="snacks">"Snacks"</string>
|
||||
<string name="small">"small"</string>
|
||||
<string name="sltd">"selected"</string>
|
||||
<string name="_Slowest_first_hHjY6">"Slowest first"</string>
|
||||
<string name="simple">"Simple"</string>
|
||||
<string name="_Side_dishes_Z1Et4Vg">"Side dishes"</string>
|
||||
<string name="shr">"Share"</string>
|
||||
<string name="Settings">"Settings"</string>
|
||||
<string name="SET">"SET"</string>
|
||||
<string name="Serving">"Serving"</string>
|
||||
<string name="ser">"Search"</string>
|
||||
<string name="September">"September"</string>
|
||||
<string name="selRec">"Select recipe"</string>
|
||||
<string name="Seafood">"Seafood"</string>
|
||||
<string name="Scottish">"Scottish"</string>
|
||||
<string name="Sauces">"Sauces"</string>
|
||||
<string name="SAT">"SAT"</string>
|
||||
<string name="Salads">"Salads"</string>
|
||||
<string name="Russian">"Russian"</string>
|
||||
<string name="rst">"RESTART"</string>
|
||||
<string name="rp">"Remove photo"</string>
|
||||
<string name="Roll">"Roll"</string>
|
||||
<string name="rmYUInfo">"You are about to remove %1$s from the yield unit list"</string>
|
||||
<string name="rmUInfo">"You are about to remove %1$s from the unit list"</string>
|
||||
<string name="rmN">"Note removed"</string>
|
||||
<string name="rmIns">"Instruction removed"</string>
|
||||
<string name="rmIng">"Ingredient removed"</string>
|
||||
<string name="rmCuiInfo">"You are about to remove %1$s from the cuisine list"</string>
|
||||
<string name="rmCmb">"Combination removed"</string>
|
||||
<string name="rmCatInfo">"You are about to remove %1$s from the category list"</string>
|
||||
<string name="Rice">"Rice"</string>
|
||||
<string name="restYUL">"Reset yield unit list"</string>
|
||||
<string name="restUL">"Reset unit list"</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="restDone">"Reset done"</string>
|
||||
<string name="restCuiL">"Reset cuisine list"</string>
|
||||
<string name="restCatL">"Reset category list"</string>
|
||||
<string name="rest">"Reset"</string>
|
||||
<string name="resNF">"Recipe not found"</string>
|
||||
<string name="req">"Required %1$s"</string>
|
||||
<string name="recU">"Updated:"</string>
|
||||
<string name="recTitle">"My Healthy Recipe"</string>
|
||||
<string name="recs">"recipes"</string>
|
||||
<string name="recRm">"Recipe removed"</string>
|
||||
<string name="recPic">"Recipe photo"</string>
|
||||
<string name="recListEmp">"Nothing here! Add some recipes and try again"</string>
|
||||
<string name="recI">"Imported:"</string>
|
||||
<string name="recF">"recipes found"</string>
|
||||
<string name="recE">"Already exist:"</string>
|
||||
<string name="rec">"Recipe"</string>
|
||||
<string name="rBtn">"REMOVE"</string>
|
||||
<string name="Rating">"Rating"</string>
|
||||
<string name="_Quickest_first_Z1CpP7N">"Quickest first"</string>
|
||||
<string name="qt">"qt"</string>
|
||||
<string name="pt">"pt"</string>
|
||||
<string name="priv">"Privacy policy"</string>
|
||||
<string name="prepT">"Preparation time"</string>
|
||||
<string name="Pound">"Pound"</string>
|
||||
<string name="Poultry">"Poultry"</string>
|
||||
<string name="Portuguese">"Portuguese"</string>
|
||||
<string name="plsAdd">"Use the plus button to add one"</string>
|
||||
<string name="planner">"Meal Planner"</string>
|
||||
<string name="pinch">"pinch"</string>
|
||||
<string name="Piece">"Piece"</string>
|
||||
<string name="piece">"piece"</string>
|
||||
<string name="pht">"Recipe photo"</string>
|
||||
<string name="photogrid">"Photo Grid"</string>
|
||||
<string name="Patty">"Patty"</string>
|
||||
<string name="Pasta">"Pasta"</string>
|
||||
<string name="oz">"oz"</string>
|
||||
<string name="Ounce">"Ounce"</string>
|
||||
<string name="opts">"Options"</string>
|
||||
<string name="_Oldest_first_Z6cq4h">"Oldest first"</string>
|
||||
<string name="OK">"OK"</string>
|
||||
<string name="October">"October"</string>
|
||||
<string name="nwYiU">"New yield unit"</string>
|
||||
<string name="nwCat">"New category"</string>
|
||||
<string name="November">"November"</string>
|
||||
<string name="nos">"Notes"</string>
|
||||
<string name="noRecsInL">"None of the recipes here matches your search"</string>
|
||||
<string name="noRecs">"No recipes match your search"</string>
|
||||
<string name="Noodles">"Noodles"</string>
|
||||
<string name="noFavs">"No favorites yet"</string>
|
||||
<string name="noAccSensor">"Accelerometer sensor is either disabled or is not working"</string>
|
||||
<string name="no">"Note"</string>
|
||||
<string name="nNBtn">"NOT NOW"</string>
|
||||
<string name="nLangInfo">"Restart EnRecipes to use the new language"</string>
|
||||
<string name="Nigerian">"Nigerian"</string>
|
||||
<string name="newUnit">"New unit"</string>
|
||||
<string name="newRec">"New recipe"</string>
|
||||
<string name="_Newest_first_2Sb3c">"Newest first"</string>
|
||||
<string name="newCui">"New cuisine"</string>
|
||||
<string name="MON">"MON"</string>
|
||||
<string name="Moderate">"Moderate"</string>
|
||||
<string name="ml">"ml"</string>
|
||||
<string name="minimal">"Minimal"</string>
|
||||
<string name="min">"min"</string>
|
||||
<string name="Millilitre">"Milliliter"</string>
|
||||
<string name="mg">"mg"</string>
|
||||
<string name="Mexican">"Mexican"</string>
|
||||
<string name="medium">"medium"</string>
|
||||
<string name="Meat">"Meat"</string>
|
||||
<string name="May">"May"</string>
|
||||
<string name="March">"March"</string>
|
||||
<string name="_Main_dishes_u6RGQ">"Main dishes"</string>
|
||||
<string name="mAgo">"%1$s months ago"</string>
|
||||
<string name="lunch">"Lunch"</string>
|
||||
<string name="ltAgo">"a long time ago"</string>
|
||||
<string name="Loaf">"Loaf"</string>
|
||||
<string name="Litre">"Liter"</string>
|
||||
<string name="listVM">"List view mode"</string>
|
||||
<string name="Light">"Light"</string>
|
||||
<string name="leaf">"leaf"</string>
|
||||
<string name="lb">"lb"</string>
|
||||
<string name="_Last_updated_Z2gEbLD">"Last updated"</string>
|
||||
<string name="large">"large"</string>
|
||||
<string name="lang">"Language"</string>
|
||||
<string name="l">"l"</string>
|
||||
<string name="Korean">"Korean"</string>
|
||||
<string name="Kilogram">"Kilogram"</string>
|
||||
<string name="kg">"kg"</string>
|
||||
<string name="Kenyan">"Kenyan"</string>
|
||||
<string name="kEdit">"KEEP EDITING"</string>
|
||||
<string name="June">"June"</string>
|
||||
<string name="July">"July"</string>
|
||||
<string name="joinTG">"Join the Telegram group"</string>
|
||||
<string name="Jewish">"Jewish"</string>
|
||||
<string name="Japanese">"Japanese"</string>
|
||||
<string name="January">"January"</string>
|
||||
<string name="Jamaican">"Jamaican"</string>
|
||||
<string name="Italian">"Italian"</string>
|
||||
<string name="it">"Item"</string>
|
||||
<string name="Irish">"Irish"</string>
|
||||
<string name="invFile">"Invalid file"</string>
|
||||
<string name="intf">"Interface"</string>
|
||||
<string name="inss">"Instructions"</string>
|
||||
<string name="ings">"Ingredients"</string>
|
||||
<string name="Indian">"Indian"</string>
|
||||
<string name="in">"in"</string>
|
||||
<string name="impSuc">"Import success"</string>
|
||||
<string name="impip">"Import in progress"</string>
|
||||
<string name="impInfo">"Supports full backups exported by this app"</string>
|
||||
<string name="impFail">"Import failed"</string>
|
||||
<string name="impBu">"Import data"</string>
|
||||
<string name="hr">"h"</string>
|
||||
<string name="Healthy">"Healthy"</string>
|
||||
<string name="guide">"User guide"</string>
|
||||
<string name="grocery">"Grocery List"</string>
|
||||
<string name="grid">"Grid"</string>
|
||||
<string name="Greek">"Greek"</string>
|
||||
<string name="Gram">"Gram"</string>
|
||||
<string name="gh">"View on GitHub"</string>
|
||||
<string name="German">"German"</string>
|
||||
<string name="Gallon">"Gallon"</string>
|
||||
<string name="gal">"gal"</string>
|
||||
<string name="g">"g"</string>
|
||||
<string name="fsList">"Your favorite recipes are listed here"</string>
|
||||
<string name="FRI">"FRI"</string>
|
||||
<string name="French">"French"</string>
|
||||
<string name="_Fluid_Ounce_bd10L">"Fluid Ounce"</string>
|
||||
<string name="fltr">"Filter"</string>
|
||||
<string name="_fl_oz_72kqu">"fl oz"</string>
|
||||
<string name="_Filtered_recipes_Z1alhhu">"Filtered recipes"</string>
|
||||
<string name="Filipino">"Filipino"</string>
|
||||
<string name="February">"February"</string>
|
||||
<string name="favourites">"Favorites"</string>
|
||||
<string name="expSuc">"Export success"</string>
|
||||
<string name="expip">"Export in progress"</string>
|
||||
<string name="expBu">"Export full backup"</string>
|
||||
<string name="EnRecipes">"EnRecipes"</string>
|
||||
<string name="English">"English"</string>
|
||||
<string name="Egyptian">"Egyptian"</string>
|
||||
<string name="editRec">"Edit recipe"</string>
|
||||
<string name="Easy">"Easy"</string>
|
||||
<string name="dsp">"dstspn"</string>
|
||||
<string name="drop">"drop"</string>
|
||||
<string name="dozen">"dozen"</string>
|
||||
<string name="donate">"Donate"</string>
|
||||
<string name="disc">"This recipe has unsaved changes. What would you like to do?"</string>
|
||||
<string name="disBtn">"DISCARD"</string>
|
||||
<string name="dinner">"Dinner"</string>
|
||||
<string name="_Difficulty_level_cSL5d">"Difficulty level"</string>
|
||||
<string name="detailed">"Detailed"</string>
|
||||
<string name="Desserts">"Desserts"</string>
|
||||
<string name="delRecsInfo">"You are about to permanently delete %1$s"</string>
|
||||
<string name="delRecInfo">"You are about to permanently delete the recipe %1$s"</string>
|
||||
<string name="December">"December"</string>
|
||||
<string name="dBtn">"DELETE"</string>
|
||||
<string name="db">"Database"</string>
|
||||
<string name="Dark">"Dark"</string>
|
||||
<string name="Danish">"Danish"</string>
|
||||
<string name="dAgo">"%1$s days ago"</string>
|
||||
<string name="Cup">"Cup"</string>
|
||||
<string name="cup">"cup"</string>
|
||||
<string name="cui">"Cuisine"</string>
|
||||
<string name="Created">"Created"</string>
|
||||
<string name="cPic">"Crop photo"</string>
|
||||
<string name="cookT">"Cooking time"</string>
|
||||
<string name="conf">"Confirm"</string>
|
||||
<string name="conBtn">"CONTINUE"</string>
|
||||
<string name="cmbs">"Combinations"</string>
|
||||
<string name="cm">"cm"</string>
|
||||
<string name="clove">"clove"</string>
|
||||
<string name="Chinese">"Chinese"</string>
|
||||
<string name="Challenging">"Challenging"</string>
|
||||
<string name="cBtn">"CANCEL"</string>
|
||||
<string name="cat">"Category"</string>
|
||||
<string name="buMod">"The backup file was modified elsewhere"</string>
|
||||
<string name="buInfo">"Generates a ZIP file containing all your data that can be imported back"</string>
|
||||
<string name="buInc">"Malformed or corrupt backup file"</string>
|
||||
<string name="buFol">"Backup folder"</string>
|
||||
<string name="buEmp">"The backup file is empty"</string>
|
||||
<string name="British">"British"</string>
|
||||
<string name="breakfast">"Breakfast"</string>
|
||||
<string name="Breads">"Breads"</string>
|
||||
<string name="Brazilian">"Brazilian"</string>
|
||||
<string name="Black">"Black"</string>
|
||||
<string name="Beverages">"Beverages"</string>
|
||||
<string name="Barbecue">"Barbecue"</string>
|
||||
<string name="August">"August"</string>
|
||||
<string name="aStpBtn">"ADD STEP"</string>
|
||||
<string name="April">"April"</string>
|
||||
<string name="appRst">"App restart required"</string>
|
||||
<string name="apply">"APPLY"</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="Appetizers">"Appetizers"</string>
|
||||
<string name="appCrd">"Shared via EnRecipes. Get it on F-Droid, IzzyOnDroid or the Play Store."</string>
|
||||
<string name="_app_name_1k3Sbz">"EnRecipes"</string>
|
||||
<string name="app_name">"EnRecipes"</string>
|
||||
<string name="title_activity_kimera">"EnRecipes"</string>
|
||||
<string name="aNoBtn">"ADD NOTE"</string>
|
||||
<string name="aNBtn">"ADD NEW"</string>
|
||||
<string name="American">"American"</string>
|
||||
<string name="allTs">"All Tags"</string>
|
||||
<string name="allCuis">"All Cuisines"</string>
|
||||
<string name="allCats">"All Categories"</string>
|
||||
<string name="aIngBtn">"ADD INGREDIENT"</string>
|
||||
<string name="aFBu">"Add a recipe to perform a backup"</string>
|
||||
<string name="addCmbBtn">"ADD COMBINATION"</string>
|
||||
<string name="aD">"All done!"</string>
|
||||
<string name="aBtn">"ADD"</string>
|
||||
<string name="About">"About"</string>
|
||||
<string name="aap">"Attach a photo"</string>
|
||||
<string name="notifSetg">"Notification settings"</string>
|
||||
<string name="tmrRm">"Timer removed"</string>
|
||||
</resources>
|
318
app/resources/Android/src/main/res/values-es-rAR/strings.xml
Normal file
|
@ -0,0 +1,318 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="aap">"Adjuntá una foto"</string>
|
||||
<string name="About">"Acerca de"</string>
|
||||
<string name="aBtn">"AGREGAR"</string>
|
||||
<string name="aD">"¡Todo listo!"</string>
|
||||
<string name="addCmbBtn">"AGREGAR COMBINACIÓN"</string>
|
||||
<string name="aFBu">"Agregá recetas para hacer un backup"</string>
|
||||
<string name="aIngBtn">"AGREGAR INGREDIENTE"</string>
|
||||
<string name="allCats">"Todas las categorías"</string>
|
||||
<string name="American">"Americana"</string>
|
||||
<string name="aNBtn">"AGREGAR NUEVA"</string>
|
||||
<string name="aNoBtn">"AGREGAR NOTA"</string>
|
||||
<string name="appCrd">"Compartido vía EnRecipes. Conseguilo en F-Droid, IzzyOnDroid o en la Play Store."</string>
|
||||
<string name="Appetizers">"Aperitivos"</string>
|
||||
<string name="appInfo">"EnRecipes es un libro de cocina digital, privado y de código abierto, que te permite crear, administrar y compartir tus recetas"</string>
|
||||
<string name="apply">"APLICAR"</string>
|
||||
<string name="appRst">"Se requiere reiniciar la app"</string>
|
||||
<string name="April">"Abril"</string>
|
||||
<string name="aStpBtn">"AGREGAR PASO"</string>
|
||||
<string name="August">"Agosto"</string>
|
||||
<string name="sec">"s"</string>
|
||||
<string name="notifSetg">"Notification settings"</string>
|
||||
<string name="tmrRm">"Timer removed"</string>
|
||||
<string name="seconds">"seconds"</string>
|
||||
<string name="hours">"hours"</string>
|
||||
<string name="hour">"hour"</string>
|
||||
<string name="minutes">"minutes"</string>
|
||||
<string name="minute">"minute"</string>
|
||||
<string name="dlyDur">"Delay duration"</string>
|
||||
<string name="tmrvbrt">"Timer vibrate"</string>
|
||||
<string name="tmrSnd">"Timer sound"</string>
|
||||
<string name="aTPrst">"Added to presets"</string>
|
||||
<string name="fwr">"for which recipe?"</string>
|
||||
<string name="tmrPrsts">"Timer presets"</string>
|
||||
<string name="prstBtn">"PRESETS"</string>
|
||||
<string name="tmr">"Timer %1$s"</string>
|
||||
<string name="delay">"Delay"</string>
|
||||
<string name="stop">"Stop"</string>
|
||||
<string name="strtBtn">"START"</string>
|
||||
<string name="ntmr">"New timer"</string>
|
||||
<string name="timer">"Cooking Timer"</string>
|
||||
<string name="sysDefB">"System default + Black"</string>
|
||||
<string name="buto">"Backed up to %1$s"</string>
|
||||
<string name="yld">"Yield"</string>
|
||||
<string name="yieldU">"Yield unit"</string>
|
||||
<string name="yieldQ">"Yield quantity"</string>
|
||||
<string name="yesterday">"yesterday"</string>
|
||||
<string name="WED">"WED"</string>
|
||||
<string name="wAgo">"%1$s weeks ago"</string>
|
||||
<string name="Vietnamese">"Vietnamese"</string>
|
||||
<string name="Vegetarian">"Vegetarian"</string>
|
||||
<string name="Vegan">"Vegan"</string>
|
||||
<string name="untRec">"Untitled Recipe"</string>
|
||||
<string name="unsaved">"Unsaved changes"</string>
|
||||
<string name="Unit">"Unit"</string>
|
||||
<string name="unit">"unit"</string>
|
||||
<string name="Undefined">"Undefined"</string>
|
||||
<string name="Turkish">"Turkish"</string>
|
||||
<string name="TUE">"TUE"</string>
|
||||
<string name="tsp">"tsp"</string>
|
||||
<string name="tsInfo">"separate with spaces"</string>
|
||||
<string name="ts">"Tags"</string>
|
||||
<string name="trySer">"SEARCH IN ALL THE RECIPES?"</string>
|
||||
<string name="trylater">"Try Later"</string>
|
||||
<string name="trnsl">"Translate"</string>
|
||||
<string name="triedInfo">"You tried this recipe %1$s"</string>
|
||||
<string name="today">"today"</string>
|
||||
<string name="tLInfo">"Recipes you want to try later are listed here"</string>
|
||||
<string name="title">"Title"</string>
|
||||
<string name="THU">"THU"</string>
|
||||
<string name="Theme">"Theme"</string>
|
||||
<string name="Thai">"Thai"</string>
|
||||
<string name="Teaspoon">"Teaspoon"</string>
|
||||
<string name="tbsp">"tbsp"</string>
|
||||
<string name="Tablespoon">"Tablespoon"</string>
|
||||
<string name="sysDef">"System default"</string>
|
||||
<string name="swm">"Start week on Monday"</string>
|
||||
<string name="Swedish">"Swedish"</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="SUN">"SUN"</string>
|
||||
<string name="strAdd">"Start adding your recipes!"</string>
|
||||
<string name="stp">"Step"</string>
|
||||
<string name="stick">"stick"</string>
|
||||
<string name="stars">"Star rating"</string>
|
||||
<string name="sru">"Share recipe using..."</string>
|
||||
<string name="srt">"Sort"</string>
|
||||
<string name="srpu">"Share recipe photo using..."</string>
|
||||
<string name="_Sri_Lankan_Z7GfBa">"Sri Lankan"</string>
|
||||
<string name="Spanish">"Spanish"</string>
|
||||
<string name="Soups">"Soups"</string>
|
||||
<string name="snacks">"Snacks"</string>
|
||||
<string name="small">"small"</string>
|
||||
<string name="sltd">"selected"</string>
|
||||
<string name="_Slowest_first_hHjY6">"Slowest first"</string>
|
||||
<string name="simple">"Simple"</string>
|
||||
<string name="_Side_dishes_Z1Et4Vg">"Side dishes"</string>
|
||||
<string name="shr">"Share"</string>
|
||||
<string name="Settings">"Settings"</string>
|
||||
<string name="SET">"SET"</string>
|
||||
<string name="Serving">"Serving"</string>
|
||||
<string name="ser">"Search"</string>
|
||||
<string name="September">"September"</string>
|
||||
<string name="selRec">"Select recipe"</string>
|
||||
<string name="Seafood">"Seafood"</string>
|
||||
<string name="Scottish">"Scottish"</string>
|
||||
<string name="Sauces">"Sauces"</string>
|
||||
<string name="SAT">"SAT"</string>
|
||||
<string name="Salads">"Salads"</string>
|
||||
<string name="Russian">"Russian"</string>
|
||||
<string name="rst">"RESTART"</string>
|
||||
<string name="rp">"Remove photo"</string>
|
||||
<string name="Roll">"Roll"</string>
|
||||
<string name="rmYUInfo">"You are about to remove %1$s from the yield unit list"</string>
|
||||
<string name="rmUInfo">"You are about to remove %1$s from the unit list"</string>
|
||||
<string name="rmN">"Note removed"</string>
|
||||
<string name="rmIns">"Instruction removed"</string>
|
||||
<string name="rmIng">"Ingredient removed"</string>
|
||||
<string name="rmCuiInfo">"You are about to remove %1$s from the cuisine list"</string>
|
||||
<string name="rmCmb">"Combination removed"</string>
|
||||
<string name="rmCatInfo">"You are about to remove %1$s from the category list"</string>
|
||||
<string name="Rice">"Rice"</string>
|
||||
<string name="restYUL">"Reset yield unit list"</string>
|
||||
<string name="restUL">"Reset unit list"</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="restDone">"Reset done"</string>
|
||||
<string name="restCuiL">"Reset cuisine list"</string>
|
||||
<string name="restCatL">"Reset category list"</string>
|
||||
<string name="rest">"Reset"</string>
|
||||
<string name="resNF">"Recipe not found"</string>
|
||||
<string name="req">"Required %1$s"</string>
|
||||
<string name="recU">"Updated:"</string>
|
||||
<string name="recTitle">"My Healthy Recipe"</string>
|
||||
<string name="recs">"recipes"</string>
|
||||
<string name="recRm">"Recipe removed"</string>
|
||||
<string name="recPic">"Recipe photo"</string>
|
||||
<string name="recListEmp">"Nothing here! Add some recipes and try again"</string>
|
||||
<string name="recI">"Imported:"</string>
|
||||
<string name="recF">"recipes found"</string>
|
||||
<string name="recE">"Already exist:"</string>
|
||||
<string name="rec">"Recipe"</string>
|
||||
<string name="rBtn">"REMOVE"</string>
|
||||
<string name="Rating">"Rating"</string>
|
||||
<string name="_Quickest_first_Z1CpP7N">"Quickest first"</string>
|
||||
<string name="qt">"qt"</string>
|
||||
<string name="pt">"pt"</string>
|
||||
<string name="priv">"Privacy policy"</string>
|
||||
<string name="prepT">"Preparation time"</string>
|
||||
<string name="Pound">"Pound"</string>
|
||||
<string name="Poultry">"Poultry"</string>
|
||||
<string name="Portuguese">"Portuguese"</string>
|
||||
<string name="plsAdd">"Use the plus button to add one"</string>
|
||||
<string name="planner">"Meal Planner"</string>
|
||||
<string name="pinch">"pinch"</string>
|
||||
<string name="Piece">"Piece"</string>
|
||||
<string name="piece">"piece"</string>
|
||||
<string name="pht">"Recipe photo"</string>
|
||||
<string name="photogrid">"Photo Grid"</string>
|
||||
<string name="Patty">"Patty"</string>
|
||||
<string name="Pasta">"Pasta"</string>
|
||||
<string name="oz">"oz"</string>
|
||||
<string name="Ounce">"Ounce"</string>
|
||||
<string name="opts">"Options"</string>
|
||||
<string name="_Oldest_first_Z6cq4h">"Oldest first"</string>
|
||||
<string name="OK">"OK"</string>
|
||||
<string name="October">"October"</string>
|
||||
<string name="nwYiU">"New yield unit"</string>
|
||||
<string name="nwCat">"New category"</string>
|
||||
<string name="November">"November"</string>
|
||||
<string name="nos">"Notes"</string>
|
||||
<string name="noRecsInL">"None of the recipes here matches your search"</string>
|
||||
<string name="noRecs">"No recipes match your search"</string>
|
||||
<string name="Noodles">"Noodles"</string>
|
||||
<string name="noFavs">"No favourites yet"</string>
|
||||
<string name="noAccSensor">"Accelerometer sensor is either disabled or is not working"</string>
|
||||
<string name="no">"Note"</string>
|
||||
<string name="nNBtn">"NOT NOW"</string>
|
||||
<string name="nLangInfo">"Restart EnRecipes to use the new language"</string>
|
||||
<string name="Nigerian">"Nigerian"</string>
|
||||
<string name="newUnit">"New unit"</string>
|
||||
<string name="newRec">"New recipe"</string>
|
||||
<string name="_Newest_first_2Sb3c">"Newest first"</string>
|
||||
<string name="newCui">"New cuisine"</string>
|
||||
<string name="MON">"MON"</string>
|
||||
<string name="Moderate">"Moderate"</string>
|
||||
<string name="ml">"ml"</string>
|
||||
<string name="minimal">"Minimal"</string>
|
||||
<string name="min">"min"</string>
|
||||
<string name="Millilitre">"Millilitre"</string>
|
||||
<string name="mg">"mg"</string>
|
||||
<string name="Mexican">"Mexican"</string>
|
||||
<string name="medium">"medium"</string>
|
||||
<string name="Meat">"Meat"</string>
|
||||
<string name="May">"May"</string>
|
||||
<string name="March">"March"</string>
|
||||
<string name="_Main_dishes_u6RGQ">"Main dishes"</string>
|
||||
<string name="mAgo">"%1$s months ago"</string>
|
||||
<string name="lunch">"Lunch"</string>
|
||||
<string name="ltAgo">"a long time ago"</string>
|
||||
<string name="Loaf">"Loaf"</string>
|
||||
<string name="Litre">"Litre"</string>
|
||||
<string name="listVM">"List view mode"</string>
|
||||
<string name="Light">"Light"</string>
|
||||
<string name="leaf">"leaf"</string>
|
||||
<string name="lb">"lb"</string>
|
||||
<string name="_Last_updated_Z2gEbLD">"Last updated"</string>
|
||||
<string name="large">"large"</string>
|
||||
<string name="lang">"Language"</string>
|
||||
<string name="l">"l"</string>
|
||||
<string name="Korean">"Korean"</string>
|
||||
<string name="Kilogram">"Kilogram"</string>
|
||||
<string name="kg">"kg"</string>
|
||||
<string name="Kenyan">"Kenyan"</string>
|
||||
<string name="kEdit">"KEEP EDITING"</string>
|
||||
<string name="June">"June"</string>
|
||||
<string name="July">"July"</string>
|
||||
<string name="joinTG">"Join the Telegram group"</string>
|
||||
<string name="Jewish">"Jewish"</string>
|
||||
<string name="Japanese">"Japanese"</string>
|
||||
<string name="January">"January"</string>
|
||||
<string name="Jamaican">"Jamaican"</string>
|
||||
<string name="Italian">"Italian"</string>
|
||||
<string name="it">"Item"</string>
|
||||
<string name="Irish">"Irish"</string>
|
||||
<string name="invFile">"Invalid file"</string>
|
||||
<string name="intf">"Interface"</string>
|
||||
<string name="inss">"Instructions"</string>
|
||||
<string name="ings">"Ingredients"</string>
|
||||
<string name="Indian">"Indian"</string>
|
||||
<string name="in">"in"</string>
|
||||
<string name="impSuc">"Import success"</string>
|
||||
<string name="impip">"Import in progress"</string>
|
||||
<string name="impInfo">"Supports full backups exported by this app"</string>
|
||||
<string name="impFail">"Import failed"</string>
|
||||
<string name="impBu">"Import data"</string>
|
||||
<string name="hr">"hr"</string>
|
||||
<string name="Healthy">"Healthy"</string>
|
||||
<string name="guide">"User guide"</string>
|
||||
<string name="grocery">"Grocery List"</string>
|
||||
<string name="grid">"Grid"</string>
|
||||
<string name="Greek">"Greek"</string>
|
||||
<string name="Gram">"Gram"</string>
|
||||
<string name="gh">"View on GitHub"</string>
|
||||
<string name="German">"German"</string>
|
||||
<string name="Gallon">"Gallon"</string>
|
||||
<string name="gal">"gal"</string>
|
||||
<string name="g">"g"</string>
|
||||
<string name="fsList">"Your favourite recipes are listed here"</string>
|
||||
<string name="FRI">"FRI"</string>
|
||||
<string name="French">"French"</string>
|
||||
<string name="_Fluid_Ounce_bd10L">"Fluid Ounce"</string>
|
||||
<string name="fltr">"Filter"</string>
|
||||
<string name="_fl_oz_72kqu">"fl oz"</string>
|
||||
<string name="_Filtered_recipes_Z1alhhu">"Filtered recipes"</string>
|
||||
<string name="Filipino">"Filipino"</string>
|
||||
<string name="February">"February"</string>
|
||||
<string name="favourites">"Favourites"</string>
|
||||
<string name="expSuc">"Export success"</string>
|
||||
<string name="expip">"Export in progress"</string>
|
||||
<string name="expBu">"Export full backup"</string>
|
||||
<string name="EnRecipes">"EnRecipes"</string>
|
||||
<string name="English">"English"</string>
|
||||
<string name="Egyptian">"Egyptian"</string>
|
||||
<string name="editRec">"Edit recipe"</string>
|
||||
<string name="Easy">"Easy"</string>
|
||||
<string name="dsp">"dstspn"</string>
|
||||
<string name="drop">"drop"</string>
|
||||
<string name="dozen">"dozen"</string>
|
||||
<string name="donate">"Donate"</string>
|
||||
<string name="disc">"This recipe has unsaved changes. What would you like to do?"</string>
|
||||
<string name="disBtn">"DISCARD"</string>
|
||||
<string name="dinner">"Dinner"</string>
|
||||
<string name="_Difficulty_level_cSL5d">"Difficulty level"</string>
|
||||
<string name="detailed">"Detailed"</string>
|
||||
<string name="Desserts">"Desserts"</string>
|
||||
<string name="delRecsInfo">"You are about to permanently delete %1$s"</string>
|
||||
<string name="delRecInfo">"You are about to permanently delete the recipe %1$s"</string>
|
||||
<string name="December">"December"</string>
|
||||
<string name="dBtn">"DELETE"</string>
|
||||
<string name="db">"Database"</string>
|
||||
<string name="Dark">"Dark"</string>
|
||||
<string name="Danish">"Danish"</string>
|
||||
<string name="dAgo">"%1$s days ago"</string>
|
||||
<string name="Cup">"Cup"</string>
|
||||
<string name="cup">"cup"</string>
|
||||
<string name="cui">"Cuisine"</string>
|
||||
<string name="Created">"Created"</string>
|
||||
<string name="cPic">"Crop photo"</string>
|
||||
<string name="cookT">"Cooking time"</string>
|
||||
<string name="conf">"Confirm"</string>
|
||||
<string name="conBtn">"CONTINUE"</string>
|
||||
<string name="cmbs">"Combinations"</string>
|
||||
<string name="cm">"cm"</string>
|
||||
<string name="clove">"clove"</string>
|
||||
<string name="Chinese">"Chinese"</string>
|
||||
<string name="Challenging">"Challenging"</string>
|
||||
<string name="cBtn">"CANCEL"</string>
|
||||
<string name="cat">"Category"</string>
|
||||
<string name="buMod">"The backup file was modified elsewhere"</string>
|
||||
<string name="buInfo">"Generates a ZIP file containing all your data that can be imported back"</string>
|
||||
<string name="buInc">"Malformed or corrupt backup file"</string>
|
||||
<string name="buFol">"Backup folder"</string>
|
||||
<string name="buEmp">"The backup file is empty"</string>
|
||||
<string name="British">"British"</string>
|
||||
<string name="breakfast">"Breakfast"</string>
|
||||
<string name="Breads">"Breads"</string>
|
||||
<string name="Brazilian">"Brazilian"</string>
|
||||
<string name="Black">"Black"</string>
|
||||
<string name="Beverages">"Beverages"</string>
|
||||
<string name="Barbecue">"Barbecue"</string>
|
||||
<string name="_app_name_1k3Sbz">"EnRecipes"</string>
|
||||
<string name="app_name">"EnRecipes"</string>
|
||||
<string name="title_activity_kimera">"EnRecipes"</string>
|
||||
<string name="allTs">"All Tags"</string>
|
||||
<string name="allCuis">"All Cuisines"</string>
|
||||
<string name="tmrClr">"tmrClr"</string>
|
||||
</resources>
|
|
@ -1,5 +1,26 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="tmrClr">"Temporizador borrado"</string>
|
||||
<string name="dlyDur">"Duración del retraso"</string>
|
||||
<string name="tmrvbrt">"Vibrador del temporizador"</string>
|
||||
<string name="tmrSnd">"Sonido del temporizador"</string>
|
||||
<string name="aTPrst">"Añadido a los preajustes"</string>
|
||||
<string name="fwr">"para qué receta?"</string>
|
||||
<string name="tmrPrsts">"Preselecciones del temporizador"</string>
|
||||
<string name="prstBtn">"PRECIPIOS"</string>
|
||||
<string name="delay">"Retraso"</string>
|
||||
<string name="stop">"Detener"</string>
|
||||
<string name="minute">"minuto"</string>
|
||||
<string name="minutes">"minutos"</string>
|
||||
<string name="hour">"hora"</string>
|
||||
<string name="hours">"horas"</string>
|
||||
<string name="seconds">"segundos"</string>
|
||||
<string name="tmr">"Temporizador %1$s"</string>
|
||||
<string name="strtBtn">"INICIO"</string>
|
||||
<string name="ntmr">"Nuevo temporizador"</string>
|
||||
<string name="timer">"Temporizador de cocción"</string>
|
||||
<string name="sec">"s"</string>
|
||||
<string name="sysDefB">"Por defecto del Sistema + Negro"</string>
|
||||
<string name="buto">"Copia de seguridad guardada a %1$s"</string>
|
||||
<string name="yld">"Producir"</string>
|
||||
<string name="yieldU">"Unidad de medida"</string>
|
||||
|
@ -292,4 +313,6 @@
|
|||
<string name="aBtn">"AÑADIR"</string>
|
||||
<string name="About">"Acerca de"</string>
|
||||
<string name="aap">"Adjuntar una foto"</string>
|
||||
<string name="notifSetg">"Notification settings"</string>
|
||||
<string name="tmrRm">"Timer removed"</string>
|
||||
</resources>
|
||||
|
|
318
app/resources/Android/src/main/res/values-fi/strings.xml
Normal file
|
@ -0,0 +1,318 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="minute">"minuutti"</string>
|
||||
<string name="hour">"tunti"</string>
|
||||
<string name="minutes">"minuuttia"</string>
|
||||
<string name="hours">"tuntia"</string>
|
||||
<string name="seconds">"sekuntia"</string>
|
||||
<string name="dlyDur">"Viiveen kesto"</string>
|
||||
<string name="sec">"s"</string>
|
||||
<string name="prstBtn">"ESIASETUKSET"</string>
|
||||
<string name="tmrPrsts">"Ajastimen esiasetukset"</string>
|
||||
<string name="fwr">"mitä reseptiä varten?"</string>
|
||||
<string name="aTPrst">"Lisätty esiasetuksiin"</string>
|
||||
<string name="tmrSnd">"Ajastinääni"</string>
|
||||
<string name="timer">"Keittoajastin"</string>
|
||||
<string name="ntmr">"Uusi ajastin"</string>
|
||||
<string name="stop">"Pysäytä"</string>
|
||||
<string name="tmr">"Ajastin %1$s"</string>
|
||||
<string name="sysDefB">"Järjestelmän oletusarvo + Musta"</string>
|
||||
<string name="buto">""</string>
|
||||
<string name="yld">""</string>
|
||||
<string name="yieldU">""</string>
|
||||
<string name="yieldQ">""</string>
|
||||
<string name="yesterday">"eilen"</string>
|
||||
<string name="WED">"ke"</string>
|
||||
<string name="wAgo">"%1$s viikkoa sitten"</string>
|
||||
<string name="Vietnamese">"vietnamilainen"</string>
|
||||
<string name="Vegetarian">"Kasvissyöjä"</string>
|
||||
<string name="Vegan">"Vegaani"</string>
|
||||
<string name="untRec">""</string>
|
||||
<string name="unsaved">""</string>
|
||||
<string name="Unit">""</string>
|
||||
<string name="unit">""</string>
|
||||
<string name="Undefined">"Määrittelemätön"</string>
|
||||
<string name="Turkish">""</string>
|
||||
<string name="TUE">"ti"</string>
|
||||
<string name="tsp">""</string>
|
||||
<string name="tsInfo">""</string>
|
||||
<string name="ts">"Tunnisteet"</string>
|
||||
<string name="trySer">"ETSI KAIKISTA RESEPTEISTÄ?"</string>
|
||||
<string name="trylater">""</string>
|
||||
<string name="trnsl">"Käännä"</string>
|
||||
<string name="triedInfo">"Kokeilit tätä reseptiä %1$s"</string>
|
||||
<string name="today">"tänään"</string>
|
||||
<string name="tLInfo">"Reseptit, joita haluat kokeilla myöhemmin, on lueteltu täällä"</string>
|
||||
<string name="title">"Otsikko"</string>
|
||||
<string name="THU">"to"</string>
|
||||
<string name="Theme">"Teema"</string>
|
||||
<string name="Thai">"thaimaalainen"</string>
|
||||
<string name="Teaspoon">""</string>
|
||||
<string name="tbsp">""</string>
|
||||
<string name="Tablespoon">""</string>
|
||||
<string name="sysDef">"Järjestelmän oletus"</string>
|
||||
<string name="swm">"Aloita viikko maanantaina"</string>
|
||||
<string name="Swedish">"ruotsalainen"</string>
|
||||
<string name="sVwInfo">"Auttaa sinua valitsemaan, mitä valmistaa, kun et osaa päättää."</string>
|
||||
<string name="sVw">"Ravista nähdäksesi satunnainen resepti"</string>
|
||||
<string name="SUN">"su"</string>
|
||||
<string name="strAdd">""</string>
|
||||
<string name="stp">""</string>
|
||||
<string name="stick">""</string>
|
||||
<string name="stars">""</string>
|
||||
<string name="sru">"Jaa resepti käyttämällä…"</string>
|
||||
<string name="srt">"Järjestä"</string>
|
||||
<string name="srpu">"Jaa reseptikuva käyttämällä…"</string>
|
||||
<string name="_Sri_Lankan_Z7GfBa">"srilankalainen"</string>
|
||||
<string name="Spanish">"espanjalainen"</string>
|
||||
<string name="Soups">"Keitot"</string>
|
||||
<string name="snacks">""</string>
|
||||
<string name="small">""</string>
|
||||
<string name="sltd">""</string>
|
||||
<string name="_Slowest_first_hHjY6">""</string>
|
||||
<string name="simple">""</string>
|
||||
<string name="_Side_dishes_Z1Et4Vg">""</string>
|
||||
<string name="shr">"Jaa"</string>
|
||||
<string name="Settings">"Asetukset"</string>
|
||||
<string name="SET">"ASETA"</string>
|
||||
<string name="Serving">""</string>
|
||||
<string name="ser">"Etsi"</string>
|
||||
<string name="September">""</string>
|
||||
<string name="selRec">""</string>
|
||||
<string name="Seafood">""</string>
|
||||
<string name="Scottish">"skotlantilainen"</string>
|
||||
<string name="Sauces">"Kastikkeet"</string>
|
||||
<string name="SAT">"la"</string>
|
||||
<string name="Salads">"Salaatit"</string>
|
||||
<string name="Russian">"venäläinen"</string>
|
||||
<string name="rst">"UUDELLEENKÄYNNISTÄ"</string>
|
||||
<string name="rp">"Poista valokuva"</string>
|
||||
<string name="Roll">""</string>
|
||||
<string name="rmYUInfo">""</string>
|
||||
<string name="rmUInfo">""</string>
|
||||
<string name="rmN">"Huomautus poistettu"</string>
|
||||
<string name="rmIns">"Ohje poistettu"</string>
|
||||
<string name="rmIng">"Ainesosa poistettu"</string>
|
||||
<string name="rmCuiInfo">""</string>
|
||||
<string name="rmCmb">"Yhdistelmä poistettu"</string>
|
||||
<string name="rmCatInfo">"Olet poistamassa %1$s luokkaluettelosta"</string>
|
||||
<string name="Rice">"Riisi"</string>
|
||||
<string name="restYUL">""</string>
|
||||
<string name="restUL">""</string>
|
||||
<string name="restInfo">""</string>
|
||||
<string name="restDone">""</string>
|
||||
<string name="restCuiL">""</string>
|
||||
<string name="restCatL">""</string>
|
||||
<string name="rest">"Nollaa"</string>
|
||||
<string name="resNF">""</string>
|
||||
<string name="req">""</string>
|
||||
<string name="recU">"Päivitetty:"</string>
|
||||
<string name="recTitle">"Minun terveellinen reseptini"</string>
|
||||
<string name="recs">"reseptiä"</string>
|
||||
<string name="recRm">"Resepti poistettu"</string>
|
||||
<string name="recPic">"Reseptivalokuva"</string>
|
||||
<string name="recListEmp">""</string>
|
||||
<string name="recI">""</string>
|
||||
<string name="recF">"löydettyä reseptiä"</string>
|
||||
<string name="recE">"On jo olemassa:"</string>
|
||||
<string name="rec">"Resepti"</string>
|
||||
<string name="rBtn">"POISTA"</string>
|
||||
<string name="Rating">""</string>
|
||||
<string name="_Quickest_first_Z1CpP7N">""</string>
|
||||
<string name="qt">""</string>
|
||||
<string name="pt">""</string>
|
||||
<string name="priv">"Tietosuojakäytäntö"</string>
|
||||
<string name="prepT">"Valmisteluaika"</string>
|
||||
<string name="Pound">""</string>
|
||||
<string name="Poultry">""</string>
|
||||
<string name="Portuguese">"portugalilainen"</string>
|
||||
<string name="plsAdd">"Lisää resepti pluspainikkeella"</string>
|
||||
<string name="planner">"Ateriasuunnittelija"</string>
|
||||
<string name="pinch">""</string>
|
||||
<string name="Piece">"Pala"</string>
|
||||
<string name="piece">"pala"</string>
|
||||
<string name="pht">"Reseptivalokuva"</string>
|
||||
<string name="photogrid">""</string>
|
||||
<string name="Patty">""</string>
|
||||
<string name="Pasta">""</string>
|
||||
<string name="oz">""</string>
|
||||
<string name="Ounce">""</string>
|
||||
<string name="opts">"Valinnat"</string>
|
||||
<string name="_Oldest_first_Z6cq4h">""</string>
|
||||
<string name="OK">"OK"</string>
|
||||
<string name="October">"lokakuu"</string>
|
||||
<string name="nwYiU">""</string>
|
||||
<string name="nwCat">"Uusi luokka"</string>
|
||||
<string name="November">"marraskuu"</string>
|
||||
<string name="nos">""</string>
|
||||
<string name="noRecsInL">""</string>
|
||||
<string name="noRecs">"Hakua vastaavia reseptejä ei ole"</string>
|
||||
<string name="Noodles">""</string>
|
||||
<string name="noFavs">""</string>
|
||||
<string name="noAccSensor">""</string>
|
||||
<string name="no">""</string>
|
||||
<string name="nNBtn">""</string>
|
||||
<string name="nLangInfo">""</string>
|
||||
<string name="Nigerian">""</string>
|
||||
<string name="newUnit">""</string>
|
||||
<string name="newRec">""</string>
|
||||
<string name="_Newest_first_2Sb3c">""</string>
|
||||
<string name="newCui">""</string>
|
||||
<string name="MON">""</string>
|
||||
<string name="Moderate">""</string>
|
||||
<string name="ml">""</string>
|
||||
<string name="minimal">""</string>
|
||||
<string name="min">""</string>
|
||||
<string name="Millilitre">""</string>
|
||||
<string name="mg">""</string>
|
||||
<string name="Mexican">""</string>
|
||||
<string name="medium">""</string>
|
||||
<string name="Meat">""</string>
|
||||
<string name="May">""</string>
|
||||
<string name="March">""</string>
|
||||
<string name="_Main_dishes_u6RGQ">""</string>
|
||||
<string name="mAgo">""</string>
|
||||
<string name="lunch">""</string>
|
||||
<string name="ltAgo">""</string>
|
||||
<string name="Loaf">""</string>
|
||||
<string name="Litre">""</string>
|
||||
<string name="listVM">""</string>
|
||||
<string name="Light">""</string>
|
||||
<string name="leaf">""</string>
|
||||
<string name="lb">""</string>
|
||||
<string name="_Last_updated_Z2gEbLD">""</string>
|
||||
<string name="large">""</string>
|
||||
<string name="lang">"Kieli"</string>
|
||||
<string name="l">"l"</string>
|
||||
<string name="Korean">"korealainen"</string>
|
||||
<string name="Kilogram">"kilogramma"</string>
|
||||
<string name="kg">"kg"</string>
|
||||
<string name="Kenyan">""</string>
|
||||
<string name="kEdit">""</string>
|
||||
<string name="June">"kesäkuu"</string>
|
||||
<string name="July">"heinäkuu"</string>
|
||||
<string name="joinTG">""</string>
|
||||
<string name="Jewish">"juutalainen"</string>
|
||||
<string name="Japanese">"japanilainen"</string>
|
||||
<string name="January">"tammikuu"</string>
|
||||
<string name="Jamaican">""</string>
|
||||
<string name="Italian">""</string>
|
||||
<string name="it">""</string>
|
||||
<string name="Irish">"irlantilainen"</string>
|
||||
<string name="invFile">"Virheellinen tiedosto"</string>
|
||||
<string name="intf">"Käyttöliittymä"</string>
|
||||
<string name="inss">"Ohjeet"</string>
|
||||
<string name="ings">"Ainekset"</string>
|
||||
<string name="Indian">"intialainen"</string>
|
||||
<string name="in">""</string>
|
||||
<string name="impSuc">"Tuonti onnistui"</string>
|
||||
<string name="impip">"Tuonti käynnissä"</string>
|
||||
<string name="impInfo">"Tukee tämän sovelluksen viemiä täydellisiä varmuuskopioita"</string>
|
||||
<string name="impFail">"Tuonti epäonnistui"</string>
|
||||
<string name="impBu">"Tuo tietoja"</string>
|
||||
<string name="hr">"t."</string>
|
||||
<string name="Healthy">"Terveellinen"</string>
|
||||
<string name="guide">"Käyttöopas"</string>
|
||||
<string name="grocery">"Ostoslista"</string>
|
||||
<string name="grid">""</string>
|
||||
<string name="Greek">"kreikkalainen"</string>
|
||||
<string name="Gram">"gramma"</string>
|
||||
<string name="gh">"Näytä GitHub:ssa"</string>
|
||||
<string name="German">"saksalainen"</string>
|
||||
<string name="Gallon">""</string>
|
||||
<string name="gal">""</string>
|
||||
<string name="g">"g"</string>
|
||||
<string name="fsList">"Suosikkireseptisi on lueteltu täällä"</string>
|
||||
<string name="FRI">"pe"</string>
|
||||
<string name="French">"ranskalainen"</string>
|
||||
<string name="_Fluid_Ounce_bd10L">""</string>
|
||||
<string name="fltr">""</string>
|
||||
<string name="_fl_oz_72kqu">""</string>
|
||||
<string name="_Filtered_recipes_Z1alhhu">"Suodatetut reseptit"</string>
|
||||
<string name="Filipino">""</string>
|
||||
<string name="February">"helmikuu"</string>
|
||||
<string name="favourites">""</string>
|
||||
<string name="expSuc">""</string>
|
||||
<string name="expip">"Vienti käynnissä"</string>
|
||||
<string name="expBu">"Vie koko varmuuskopio"</string>
|
||||
<string name="EnRecipes">""</string>
|
||||
<string name="English">"englantilainen"</string>
|
||||
<string name="Egyptian">"egyptiläinen"</string>
|
||||
<string name="editRec">"Muokkaa resepti"</string>
|
||||
<string name="Easy">"Helppo"</string>
|
||||
<string name="dsp">""</string>
|
||||
<string name="drop">""</string>
|
||||
<string name="dozen">"tusina"</string>
|
||||
<string name="donate">"Lahjoita"</string>
|
||||
<string name="disc">"Tässä reseptissä on tallentamattomia muutoksia. Mitä haluaisit tehdä?"</string>
|
||||
<string name="disBtn">"HYLKÄÄ"</string>
|
||||
<string name="dinner">"Illallinen"</string>
|
||||
<string name="_Difficulty_level_cSL5d">"Vaikeustaso"</string>
|
||||
<string name="detailed">"Yksityiskohtainen"</string>
|
||||
<string name="Desserts">"Jälkiruoat"</string>
|
||||
<string name="delRecsInfo">"Olet poistamassa %1$s pysyvästi"</string>
|
||||
<string name="delRecInfo">"Olet poistamassa reseptiä %1$s pysyvästi"</string>
|
||||
<string name="December">"joulukuu"</string>
|
||||
<string name="dBtn">"POISTA"</string>
|
||||
<string name="db">"Tietokanta"</string>
|
||||
<string name="Dark">"Tumma"</string>
|
||||
<string name="Danish">"tanskalainen"</string>
|
||||
<string name="dAgo">"%1$s päivää sitten"</string>
|
||||
<string name="Cup">"Kuppi"</string>
|
||||
<string name="cup">"cup"</string>
|
||||
<string name="cui">"Keittiö"</string>
|
||||
<string name="Created">"Luotu"</string>
|
||||
<string name="cPic">"Rajaa kuva"</string>
|
||||
<string name="cookT">"Kypsennysaika"</string>
|
||||
<string name="conf">"Vahvista"</string>
|
||||
<string name="conBtn">"JATKA"</string>
|
||||
<string name="cmbs">"Yhdistelmät"</string>
|
||||
<string name="cm">"cm"</string>
|
||||
<string name="clove">"kynsi"</string>
|
||||
<string name="Chinese">"kiinalainen"</string>
|
||||
<string name="Challenging">"Haastava"</string>
|
||||
<string name="cBtn">"PERUUTA"</string>
|
||||
<string name="cat">"Luokka"</string>
|
||||
<string name="buMod">"Varmuuskopiotiedostoa muutettiin muualla"</string>
|
||||
<string name="buInfo">"Luo ZIP-tiedoston, joka sisältää kaikki tiedot, jotka voidaan tuoda takaisin"</string>
|
||||
<string name="buInc">"Virheellinen tai vioittunut varmuuskopiotiedosto"</string>
|
||||
<string name="buFol">"Varmuuskopioiden hakemisto"</string>
|
||||
<string name="buEmp">"Varmuuskopiotiedosto on tyhjä"</string>
|
||||
<string name="British">"brittiläinen"</string>
|
||||
<string name="breakfast">"Aamiainen"</string>
|
||||
<string name="Breads">"Leivät"</string>
|
||||
<string name="Brazilian">"brasilialainen"</string>
|
||||
<string name="Black">"Musta"</string>
|
||||
<string name="Beverages">"Juomat"</string>
|
||||
<string name="Barbecue">"Grilli"</string>
|
||||
<string name="August">"elokuu"</string>
|
||||
<string name="aStpBtn">""</string>
|
||||
<string name="April">"huhtikuu"</string>
|
||||
<string name="appRst">"Sovelluksen uudelleenkäynnistys vaaditaan"</string>
|
||||
<string name="apply">"KÄYTÄ"</string>
|
||||
<string name="appInfo">"EnRecipes on avoimen lähdekoodin, yksityisyyden suojaa kunnioittava digitaalinen keittokirja, jonka avulla voit luoda, hallita ja jakaa reseptejäsi"</string>
|
||||
<string name="Appetizers">"Alkupalat"</string>
|
||||
<string name="appCrd">"Jaettu EnRecipesin kautta. Lataa se F-Droidista, IzzyOnDroidista tai Play Storesta."</string>
|
||||
<string name="_app_name_1k3Sbz">""</string>
|
||||
<string name="app_name">""</string>
|
||||
<string name="title_activity_kimera">""</string>
|
||||
<string name="aNoBtn">"LISÄÄ HUOMAUTUS"</string>
|
||||
<string name="aNBtn">"LISÄÄ UUSI"</string>
|
||||
<string name="American">"amerikkalainen"</string>
|
||||
<string name="allTs">"Kaikki tunnisteet"</string>
|
||||
<string name="allCuis">"Kaikki keittiöt"</string>
|
||||
<string name="allCats">"Kaikki luokat"</string>
|
||||
<string name="aIngBtn">"LISÄÄ AINESOSA"</string>
|
||||
<string name="aFBu">"Lisää resepti varmuuskopioinnin suorittamiseen"</string>
|
||||
<string name="addCmbBtn">"LISÄÄ YHDISTELMÄ"</string>
|
||||
<string name="aD">"Valmista!"</string>
|
||||
<string name="aBtn">"LISÄÄ"</string>
|
||||
<string name="About">"Tietoja"</string>
|
||||
<string name="aap">"Liitä valokuva"</string>
|
||||
<string name="notifSetg">"Notification settings"</string>
|
||||
<string name="tmrRm">"Timer removed"</string>
|
||||
<string name="tmrvbrt">"Timer vibrate"</string>
|
||||
<string name="delay">"Delay"</string>
|
||||
<string name="strtBtn">"START"</string>
|
||||
<string name="tmrClr">"tmrClr"</string>
|
||||
</resources>
|
|
@ -1,5 +1,26 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="tmrClr">"Minuterie effacée"</string>
|
||||
<string name="delay">"Retard"</string>
|
||||
<string name="dlyDur">"Durée du retard"</string>
|
||||
<string name="minute">"minute"</string>
|
||||
<string name="minutes">"minutes"</string>
|
||||
<string name="hour">"heure"</string>
|
||||
<string name="hours">"heures"</string>
|
||||
<string name="seconds">"secondes"</string>
|
||||
<string name="sec">"s"</string>
|
||||
<string name="timer">"Minuterie de cuisson"</string>
|
||||
<string name="ntmr">"Nouvelle minuterie"</string>
|
||||
<string name="strtBtn">"DÉMARRER"</string>
|
||||
<string name="stop">"Arrêter"</string>
|
||||
<string name="tmr">"Minuterie %1$s"</string>
|
||||
<string name="prstBtn">"PRÉRÉGLAGES"</string>
|
||||
<string name="tmrPrsts">"Préréglages de la minuterie"</string>
|
||||
<string name="fwr">"pour quelle recette ?"</string>
|
||||
<string name="aTPrst">"Ajouté aux préréglages"</string>
|
||||
<string name="tmrSnd">"Son de la minuterie"</string>
|
||||
<string name="tmrvbrt">"Vibreur de la minuterie"</string>
|
||||
<string name="sysDefB">"Selon le système + Noir"</string>
|
||||
<string name="buto">"Sauvegardé dans %1$s"</string>
|
||||
<string name="yld">"Rendement"</string>
|
||||
<string name="yieldU">"Unité de rendement"</string>
|
||||
|
@ -21,7 +42,7 @@
|
|||
<string name="tsInfo">"séparez par des espaces"</string>
|
||||
<string name="ts">"Étiquettes"</string>
|
||||
<string name="trySer">"RECHERCHE DANS TOUTES LES RECETTES ?"</string>
|
||||
<string name="trylater">"Essayer plus tard"</string>
|
||||
<string name="trylater">"À essayer plus tard"</string>
|
||||
<string name="trnsl">"Traduire"</string>
|
||||
<string name="triedInfo">"Vous avez essayé cette recette %1$s"</string>
|
||||
<string name="today">"aujourd’hui"</string>
|
||||
|
@ -49,7 +70,7 @@
|
|||
<string name="_Sri_Lankan_Z7GfBa">"sri-lankaise"</string>
|
||||
<string name="Spanish">"espagnole"</string>
|
||||
<string name="Soups">"Soupes"</string>
|
||||
<string name="snacks">"en-cas"</string>
|
||||
<string name="snacks">"En-cas"</string>
|
||||
<string name="small">"petit"</string>
|
||||
<string name="sltd">"sélectionné"</string>
|
||||
<string name="_Slowest_first_hHjY6">"La plus lente d’abord"</string>
|
||||
|
@ -88,7 +109,7 @@
|
|||
<string name="restCatL">"Réinitialiser la liste des catégories"</string>
|
||||
<string name="rest">"Réinitialiser"</string>
|
||||
<string name="resNF">"Recette introuvable"</string>
|
||||
<string name="req">"%1$s requise"</string>
|
||||
<string name="req">"%1$s requis(e)"</string>
|
||||
<string name="recU">"mise à jour :"</string>
|
||||
<string name="recTitle">"Ma recette saine"</string>
|
||||
<string name="recs">"recettes"</string>
|
||||
|
@ -110,7 +131,7 @@
|
|||
<string name="Poultry">"Volaille"</string>
|
||||
<string name="Portuguese">"portugaise"</string>
|
||||
<string name="plsAdd">"Utilisez le bouton plus pour en ajouter une"</string>
|
||||
<string name="planner">"Organisateur de repas"</string>
|
||||
<string name="planner">"Planificateur de repas"</string>
|
||||
<string name="pinch">"pincée"</string>
|
||||
<string name="Piece">"Morceau"</string>
|
||||
<string name="piece">"morceau"</string>
|
||||
|
@ -154,8 +175,8 @@
|
|||
<string name="May">"mai"</string>
|
||||
<string name="March">"mars"</string>
|
||||
<string name="_Main_dishes_u6RGQ">"Plats principaux"</string>
|
||||
<string name="mAgo">"Il ya %1$s mois"</string>
|
||||
<string name="lunch">"diner"</string>
|
||||
<string name="mAgo">"Il y a %1$s mois"</string>
|
||||
<string name="lunch">"Diner"</string>
|
||||
<string name="ltAgo">"il y a longtemps"</string>
|
||||
<string name="Loaf">"Miche"</string>
|
||||
<string name="Litre">"Litre"</string>
|
||||
|
@ -229,7 +250,7 @@
|
|||
<string name="donate">"Faire un don"</string>
|
||||
<string name="disc">"Cette recette a des modifications non enregistrées. Que voudriez-vous faire ?"</string>
|
||||
<string name="disBtn">"IGNORER"</string>
|
||||
<string name="dinner">"souper"</string>
|
||||
<string name="dinner">"Souper"</string>
|
||||
<string name="_Difficulty_level_cSL5d">"Niveau de difficulté"</string>
|
||||
<string name="detailed">"Détaillée"</string>
|
||||
<string name="Desserts">"Desserts"</string>
|
||||
|
@ -292,4 +313,6 @@
|
|||
<string name="aBtn">"AJOUTER"</string>
|
||||
<string name="About">"À propos"</string>
|
||||
<string name="aap">"Joindre une photo"</string>
|
||||
<string name="notifSetg">"Notification settings"</string>
|
||||
<string name="tmrRm">"Timer removed"</string>
|
||||
</resources>
|
||||
|
|
|
@ -1,5 +1,26 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="tmrClr">"Minuterie effacée"</string>
|
||||
<string name="delay">"Retard"</string>
|
||||
<string name="dlyDur">"Durée du retard"</string>
|
||||
<string name="minute">"minute"</string>
|
||||
<string name="minutes">"minutes"</string>
|
||||
<string name="hour">"heure"</string>
|
||||
<string name="hours">"heures"</string>
|
||||
<string name="seconds">"secondes"</string>
|
||||
<string name="sec">"s"</string>
|
||||
<string name="timer">"Minuterie de cuisson"</string>
|
||||
<string name="ntmr">"Nouvelle minuterie"</string>
|
||||
<string name="strtBtn">"DÉMARRER"</string>
|
||||
<string name="stop">"Arrêter"</string>
|
||||
<string name="tmr">"Minuterie %1$s"</string>
|
||||
<string name="prstBtn">"PRÉRÉGLAGES"</string>
|
||||
<string name="tmrPrsts">"Préréglages de la minuterie"</string>
|
||||
<string name="fwr">"pour quelle recette?"</string>
|
||||
<string name="aTPrst">"Ajouté aux préréglages"</string>
|
||||
<string name="tmrSnd">"Son de la minuterie"</string>
|
||||
<string name="tmrvbrt">"Vibreur de la minuterie"</string>
|
||||
<string name="sysDefB">"Selon le système + Noir"</string>
|
||||
<string name="buto">"Sauvegardé dans %1$s"</string>
|
||||
<string name="yld">"Rendement"</string>
|
||||
<string name="yieldU">"Unité de rendement"</string>
|
||||
|
@ -21,7 +42,7 @@
|
|||
<string name="tsInfo">"séparez par des espaces"</string>
|
||||
<string name="ts">"Étiquettes"</string>
|
||||
<string name="trySer">"RECHERCHE DANS TOUTES LES RECETTES?"</string>
|
||||
<string name="trylater">"Essayer plus tard"</string>
|
||||
<string name="trylater">"À essayer plus tard"</string>
|
||||
<string name="trnsl">"Traduire"</string>
|
||||
<string name="triedInfo">"Vous avez essayé cette recette %1$s"</string>
|
||||
<string name="today">"aujourd’hui"</string>
|
||||
|
@ -49,7 +70,7 @@
|
|||
<string name="_Sri_Lankan_Z7GfBa">"sri-lankaise"</string>
|
||||
<string name="Spanish">"espagnole"</string>
|
||||
<string name="Soups">"Soupes"</string>
|
||||
<string name="snacks">"en-cas"</string>
|
||||
<string name="snacks">"En-cas"</string>
|
||||
<string name="small">"petit"</string>
|
||||
<string name="sltd">"sélectionné"</string>
|
||||
<string name="_Slowest_first_hHjY6">"La plus lente d’abord"</string>
|
||||
|
@ -88,7 +109,7 @@
|
|||
<string name="restCatL">"Réinitialiser la liste des catégories"</string>
|
||||
<string name="rest">"Réinitialiser"</string>
|
||||
<string name="resNF">"Recette introuvable"</string>
|
||||
<string name="req">"%1$s requise"</string>
|
||||
<string name="req">"%1$s requis(e)"</string>
|
||||
<string name="recU">"mise à jour :"</string>
|
||||
<string name="recTitle">"Ma recette saine"</string>
|
||||
<string name="recs">"recettes"</string>
|
||||
|
@ -110,7 +131,7 @@
|
|||
<string name="Poultry">"Volaille"</string>
|
||||
<string name="Portuguese">"portugaise"</string>
|
||||
<string name="plsAdd">"Utilisez le bouton plus pour en ajouter une"</string>
|
||||
<string name="planner">"Organisateur de repas"</string>
|
||||
<string name="planner">"Planificateur de repas"</string>
|
||||
<string name="pinch">"pincée"</string>
|
||||
<string name="Piece">"Morceau"</string>
|
||||
<string name="piece">"morceau"</string>
|
||||
|
@ -154,8 +175,8 @@
|
|||
<string name="May">"mai"</string>
|
||||
<string name="March">"mars"</string>
|
||||
<string name="_Main_dishes_u6RGQ">"Plats principaux"</string>
|
||||
<string name="mAgo">"Il ya %1$s mois"</string>
|
||||
<string name="lunch">"dîner"</string>
|
||||
<string name="mAgo">"Il y a %1$s mois"</string>
|
||||
<string name="lunch">"Dîner"</string>
|
||||
<string name="ltAgo">"il y a longtemps"</string>
|
||||
<string name="Loaf">"Miche"</string>
|
||||
<string name="Litre">"Litre"</string>
|
||||
|
@ -229,7 +250,7 @@
|
|||
<string name="donate">"Faire un don"</string>
|
||||
<string name="disc">"Cette recette a des modifications non enregistrées. Que voudriez-vous faire?"</string>
|
||||
<string name="disBtn">"IGNORER"</string>
|
||||
<string name="dinner">"souper"</string>
|
||||
<string name="dinner">"Souper"</string>
|
||||
<string name="_Difficulty_level_cSL5d">"Niveau de difficulté"</string>
|
||||
<string name="detailed">"Détaillée"</string>
|
||||
<string name="Desserts">"Desserts"</string>
|
||||
|
@ -292,4 +313,6 @@
|
|||
<string name="aBtn">"AJOUTER"</string>
|
||||
<string name="About">"À propos"</string>
|
||||
<string name="aap">"Joindre une photo"</string>
|
||||
<string name="notifSetg">"Notification settings"</string>
|
||||
<string name="tmrRm">"Timer removed"</string>
|
||||
</resources>
|
||||
|
|
|
@ -1,5 +1,26 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="tmrClr">"Minuterie effacée"</string>
|
||||
<string name="delay">"Retard"</string>
|
||||
<string name="dlyDur">"Durée du retard"</string>
|
||||
<string name="minute">"minute"</string>
|
||||
<string name="minutes">"minutes"</string>
|
||||
<string name="hour">"heure"</string>
|
||||
<string name="hours">"heures"</string>
|
||||
<string name="seconds">"secondes"</string>
|
||||
<string name="sec">"s"</string>
|
||||
<string name="timer">"Minuterie de cuisson"</string>
|
||||
<string name="ntmr">"Nouvelle minuterie"</string>
|
||||
<string name="strtBtn">"DÉMARRER"</string>
|
||||
<string name="stop">"Arrêter"</string>
|
||||
<string name="tmr">"Minuterie %1$s"</string>
|
||||
<string name="prstBtn">"PRÉRÉGLAGES"</string>
|
||||
<string name="tmrPrsts">"Préréglages de la minuterie"</string>
|
||||
<string name="fwr">"pour quelle recette?"</string>
|
||||
<string name="aTPrst">"Ajouté aux préréglages"</string>
|
||||
<string name="tmrSnd">"Son de la minuterie"</string>
|
||||
<string name="tmrvbrt">"Vibreur de la minuterie"</string>
|
||||
<string name="sysDefB">"Selon le système + Noir"</string>
|
||||
<string name="buto">"Sauvegardé dans %1$s"</string>
|
||||
<string name="yld">"Rendement"</string>
|
||||
<string name="yieldU">"Unité de rendement"</string>
|
||||
|
@ -21,7 +42,7 @@
|
|||
<string name="tsInfo">"séparez par des espaces"</string>
|
||||
<string name="ts">"Étiquettes"</string>
|
||||
<string name="trySer">"RECHERCHE DANS TOUTES LES RECETTES?"</string>
|
||||
<string name="trylater">"Essayer plus tard"</string>
|
||||
<string name="trylater">"À essayer plus tard"</string>
|
||||
<string name="trnsl">"Traduire"</string>
|
||||
<string name="triedInfo">"Vous avez essayé cette recette %1$s"</string>
|
||||
<string name="today">"aujourd’hui"</string>
|
||||
|
@ -49,7 +70,7 @@
|
|||
<string name="_Sri_Lankan_Z7GfBa">"sri-lankaise"</string>
|
||||
<string name="Spanish">"espagnole"</string>
|
||||
<string name="Soups">"Soupes"</string>
|
||||
<string name="snacks">"en-cas"</string>
|
||||
<string name="snacks">"En-cas"</string>
|
||||
<string name="small">"petit"</string>
|
||||
<string name="sltd">"sélectionné"</string>
|
||||
<string name="_Slowest_first_hHjY6">"La plus lente d’abord"</string>
|
||||
|
@ -88,7 +109,7 @@
|
|||
<string name="restCatL">"Réinitialiser la liste des catégories"</string>
|
||||
<string name="rest">"Réinitialiser"</string>
|
||||
<string name="resNF">"Recette introuvable"</string>
|
||||
<string name="req">"%1$s requise"</string>
|
||||
<string name="req">"%1$s requis(e)"</string>
|
||||
<string name="recU">"mise à jour :"</string>
|
||||
<string name="recTitle">"Ma recette saine"</string>
|
||||
<string name="recs">"recettes"</string>
|
||||
|
@ -110,7 +131,7 @@
|
|||
<string name="Poultry">"Volaille"</string>
|
||||
<string name="Portuguese">"portugaise"</string>
|
||||
<string name="plsAdd">"Utilisez le bouton plus pour en ajouter une"</string>
|
||||
<string name="planner">"Organisateur de repas"</string>
|
||||
<string name="planner">"Planificateur de repas"</string>
|
||||
<string name="pinch">"pincée"</string>
|
||||
<string name="Piece">"Morceau"</string>
|
||||
<string name="piece">"morceau"</string>
|
||||
|
@ -154,8 +175,8 @@
|
|||
<string name="May">"mai"</string>
|
||||
<string name="March">"mars"</string>
|
||||
<string name="_Main_dishes_u6RGQ">"Plats principaux"</string>
|
||||
<string name="mAgo">"Il ya %1$s mois"</string>
|
||||
<string name="lunch">"dîner"</string>
|
||||
<string name="mAgo">"Il y a %1$s mois"</string>
|
||||
<string name="lunch">"Dîner"</string>
|
||||
<string name="ltAgo">"il y a longtemps"</string>
|
||||
<string name="Loaf">"Miche"</string>
|
||||
<string name="Litre">"Litre"</string>
|
||||
|
@ -229,7 +250,7 @@
|
|||
<string name="donate">"Faire un don"</string>
|
||||
<string name="disc">"Cette recette a des modifications non enregistrées. Que voudriez-vous faire?"</string>
|
||||
<string name="disBtn">"IGNORER"</string>
|
||||
<string name="dinner">"souper"</string>
|
||||
<string name="dinner">"Souper"</string>
|
||||
<string name="_Difficulty_level_cSL5d">"Niveau de difficulté"</string>
|
||||
<string name="detailed">"Détaillée"</string>
|
||||
<string name="Desserts">"Desserts"</string>
|
||||
|
@ -292,4 +313,6 @@
|
|||
<string name="aBtn">"AJOUTER"</string>
|
||||
<string name="About">"À propos"</string>
|
||||
<string name="aap">"Joindre une photo"</string>
|
||||
<string name="notifSetg">"Notification settings"</string>
|
||||
<string name="tmrRm">"Timer removed"</string>
|
||||
</resources>
|
||||
|
|
|
@ -1,5 +1,26 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="tmrClr">"Minuterie effacée"</string>
|
||||
<string name="delay">"Retard"</string>
|
||||
<string name="dlyDur">"Durée du retard"</string>
|
||||
<string name="minute">"minute"</string>
|
||||
<string name="minutes">"minutes"</string>
|
||||
<string name="hour">"heure"</string>
|
||||
<string name="hours">"heures"</string>
|
||||
<string name="seconds">"secondes"</string>
|
||||
<string name="sec">"s"</string>
|
||||
<string name="timer">"Minuterie de cuisson"</string>
|
||||
<string name="ntmr">"Nouvelle minuterie"</string>
|
||||
<string name="strtBtn">"DÉMARRER"</string>
|
||||
<string name="stop">"Arrêter"</string>
|
||||
<string name="tmr">"Minuterie %1$s"</string>
|
||||
<string name="prstBtn">"PRÉRÉGLAGES"</string>
|
||||
<string name="tmrPrsts">"Préréglages de la minuterie"</string>
|
||||
<string name="fwr">"pour quelle recette ?"</string>
|
||||
<string name="aTPrst">"Ajouté aux préréglages"</string>
|
||||
<string name="tmrSnd">"Son de la minuterie"</string>
|
||||
<string name="tmrvbrt">"Vibreur de la minuterie"</string>
|
||||
<string name="sysDefB">"Selon le système + Noir"</string>
|
||||
<string name="buto">"Sauvegardé dans %1$s"</string>
|
||||
<string name="yld">"Rendement"</string>
|
||||
<string name="yieldU">"Unité de portion"</string>
|
||||
|
@ -7,7 +28,7 @@
|
|||
<string name="yesterday">"hier"</string>
|
||||
<string name="WED">"mer"</string>
|
||||
<string name="wAgo">"il y a %1$s semaines"</string>
|
||||
<string name="Vietnamese">"Vietnamienne"</string>
|
||||
<string name="Vietnamese">"vietnamienne"</string>
|
||||
<string name="Vegetarian">"Végétarien"</string>
|
||||
<string name="Vegan">"Végétalien"</string>
|
||||
<string name="untRec">"Recette sans titre"</string>
|
||||
|
@ -15,13 +36,13 @@
|
|||
<string name="Unit">"Unité"</string>
|
||||
<string name="unit">"unité"</string>
|
||||
<string name="Undefined">"Indéfini"</string>
|
||||
<string name="Turkish">"Turque"</string>
|
||||
<string name="Turkish">"turque"</string>
|
||||
<string name="TUE">"mar"</string>
|
||||
<string name="tsp">"c.à.c"</string>
|
||||
<string name="tsInfo">"séparez par des espaces"</string>
|
||||
<string name="ts">"Étiquettes"</string>
|
||||
<string name="trySer">"RECHERCHE DANS TOUTES LES RECETTES ?"</string>
|
||||
<string name="trylater">"Essayer plus tard"</string>
|
||||
<string name="trylater">"À essayer plus tard"</string>
|
||||
<string name="trnsl">"Traduire"</string>
|
||||
<string name="triedInfo">"Vous avez essayé cette recette %1$s"</string>
|
||||
<string name="today">"aujourd’hui"</string>
|
||||
|
@ -29,13 +50,13 @@
|
|||
<string name="title">"Titre"</string>
|
||||
<string name="THU">"jeu"</string>
|
||||
<string name="Theme">"Thème"</string>
|
||||
<string name="Thai">"Thaïlandaise"</string>
|
||||
<string name="Thai">"thaïlandaise"</string>
|
||||
<string name="Teaspoon">"Cuillère à café"</string>
|
||||
<string name="tbsp">"cuillérée"</string>
|
||||
<string name="Tablespoon">"Cuillère à soupe"</string>
|
||||
<string name="sysDef">"Selon le système"</string>
|
||||
<string name="swm">"Début de la semaine le lundi"</string>
|
||||
<string name="Swedish">"Suédoise"</string>
|
||||
<string name="Swedish">"suédoise"</string>
|
||||
<string name="sVwInfo">"Vous aide à choisir quoi cuisiner quand vous ne pouvez pas vous décider"</string>
|
||||
<string name="sVw">"Secouez pour voir une recette au hasard"</string>
|
||||
<string name="SUN">"dim"</string>
|
||||
|
@ -46,14 +67,14 @@
|
|||
<string name="sru">"Partager la recette en utilisant…"</string>
|
||||
<string name="srt">"Trier"</string>
|
||||
<string name="srpu">"Partager une photo de recette en utilisant…"</string>
|
||||
<string name="_Sri_Lankan_Z7GfBa">"Sri-lankaise"</string>
|
||||
<string name="Spanish">"Espagnole"</string>
|
||||
<string name="_Sri_Lankan_Z7GfBa">"sri-lankaise"</string>
|
||||
<string name="Spanish">"espagnole"</string>
|
||||
<string name="Soups">"Soupes"</string>
|
||||
<string name="snacks">"en-cas"</string>
|
||||
<string name="snacks">"En-cas"</string>
|
||||
<string name="small">"petit"</string>
|
||||
<string name="sltd">"sélectionné"</string>
|
||||
<string name="_Slowest_first_hHjY6">"La plus lente d’abord"</string>
|
||||
<string name="simple">"Simple"</string>
|
||||
<string name="simple">"Simplicité"</string>
|
||||
<string name="_Side_dishes_Z1Et4Vg">"Plats d’accompagnement"</string>
|
||||
<string name="shr">"Partager"</string>
|
||||
<string name="Settings">"Paramètres"</string>
|
||||
|
@ -63,11 +84,11 @@
|
|||
<string name="September">"septembre"</string>
|
||||
<string name="selRec">"Sélectionner une recette"</string>
|
||||
<string name="Seafood">"Fruits de mer"</string>
|
||||
<string name="Scottish">"Écossaise"</string>
|
||||
<string name="Sauces">"Sauces"</string>
|
||||
<string name="Scottish">"écossaise"</string>
|
||||
<string name="Sauces">"Soupes"</string>
|
||||
<string name="SAT">"sam"</string>
|
||||
<string name="Salads">"Salades"</string>
|
||||
<string name="Russian">"Russe"</string>
|
||||
<string name="Russian">"russe"</string>
|
||||
<string name="rst">"REDÉMARRER"</string>
|
||||
<string name="rp">"Retirer la photo"</string>
|
||||
<string name="Roll">"Rouleau"</string>
|
||||
|
@ -88,7 +109,7 @@
|
|||
<string name="restCatL">"Réinitialiser la liste des catégories"</string>
|
||||
<string name="rest">"Réinitialiser"</string>
|
||||
<string name="resNF">"Recette introuvable"</string>
|
||||
<string name="req">"%1$s requise"</string>
|
||||
<string name="req">"%1$s requis(e)"</string>
|
||||
<string name="recU">"mise à jour :"</string>
|
||||
<string name="recTitle">"Ma recette saine"</string>
|
||||
<string name="recs">"recettes"</string>
|
||||
|
@ -108,9 +129,9 @@
|
|||
<string name="prepT">"Temps de préparation"</string>
|
||||
<string name="Pound">"Livre"</string>
|
||||
<string name="Poultry">"Volaille"</string>
|
||||
<string name="Portuguese">"Portugaise"</string>
|
||||
<string name="Portuguese">"portugaise"</string>
|
||||
<string name="plsAdd">"Utilisez le bouton plus pour en ajouter une"</string>
|
||||
<string name="planner">"Organisateur de repas"</string>
|
||||
<string name="planner">"Planificateur de repas"</string>
|
||||
<string name="pinch">"pincée"</string>
|
||||
<string name="Piece">"Morceau"</string>
|
||||
<string name="piece">"morceau"</string>
|
||||
|
@ -136,7 +157,7 @@
|
|||
<string name="no">"Note"</string>
|
||||
<string name="nNBtn">"PAS MAINTENANT"</string>
|
||||
<string name="nLangInfo">"Redémarrez EnRecipes pour utiliser la nouvelle langue"</string>
|
||||
<string name="Nigerian">"Nigériane"</string>
|
||||
<string name="Nigerian">"nigériane"</string>
|
||||
<string name="newUnit">"Nouvelle unité"</string>
|
||||
<string name="newRec">"Nouvelle recette"</string>
|
||||
<string name="_Newest_first_2Sb3c">"La plus récente d’abord"</string>
|
||||
|
@ -146,19 +167,19 @@
|
|||
<string name="ml">"ml"</string>
|
||||
<string name="minimal">"Minimale"</string>
|
||||
<string name="min">"min"</string>
|
||||
<string name="Millilitre">"Millilitre"</string>
|
||||
<string name="Millilitre">"Millilette"</string>
|
||||
<string name="mg">"mg"</string>
|
||||
<string name="Mexican">"Mexicaine"</string>
|
||||
<string name="Mexican">"mexicaine"</string>
|
||||
<string name="medium">"moyen"</string>
|
||||
<string name="Meat">"Viande"</string>
|
||||
<string name="May">"mai"</string>
|
||||
<string name="March">"mars"</string>
|
||||
<string name="_Main_dishes_u6RGQ">"Plats principaux"</string>
|
||||
<string name="mAgo">"Il ya %1$s mois"</string>
|
||||
<string name="lunch">"déjeuner"</string>
|
||||
<string name="mAgo">"Il y a %1$s mois"</string>
|
||||
<string name="lunch">"Déjeuner"</string>
|
||||
<string name="ltAgo">"il y a longtemps"</string>
|
||||
<string name="Loaf">"Miche"</string>
|
||||
<string name="Litre">"Litre"</string>
|
||||
<string name="Litre">"Leitre"</string>
|
||||
<string name="listVM">"Type de vue en liste"</string>
|
||||
<string name="Light">"Clair"</string>
|
||||
<string name="leaf">"feuille"</string>
|
||||
|
@ -167,26 +188,26 @@
|
|||
<string name="large">"grand"</string>
|
||||
<string name="lang">"Langue"</string>
|
||||
<string name="l">"l"</string>
|
||||
<string name="Korean">"Coréenne"</string>
|
||||
<string name="Korean">"coréenne"</string>
|
||||
<string name="Kilogram">"Kilogramme"</string>
|
||||
<string name="kg">"kg"</string>
|
||||
<string name="Kenyan">"Kényane"</string>
|
||||
<string name="Kenyan">"kényane"</string>
|
||||
<string name="kEdit">"CONTINUER"</string>
|
||||
<string name="June">"juin"</string>
|
||||
<string name="July">"juillet"</string>
|
||||
<string name="joinTG">"Rejoignez le groupe Telegram"</string>
|
||||
<string name="Jewish">"Juive"</string>
|
||||
<string name="Japanese">"Japonaise"</string>
|
||||
<string name="Jewish">"juive"</string>
|
||||
<string name="Japanese">"japonaise"</string>
|
||||
<string name="January">"janvier"</string>
|
||||
<string name="Jamaican">"Jamaïcaine"</string>
|
||||
<string name="Italian">"Italienne"</string>
|
||||
<string name="Jamaican">"jamaïcaine"</string>
|
||||
<string name="Italian">"italienne"</string>
|
||||
<string name="it">"Élément"</string>
|
||||
<string name="Irish">"Irlandaise"</string>
|
||||
<string name="Irish">"irlandaise"</string>
|
||||
<string name="invFile">"Fichier invalide"</string>
|
||||
<string name="intf">"Interface"</string>
|
||||
<string name="inss">"Instructions"</string>
|
||||
<string name="ings">"Ingrédients"</string>
|
||||
<string name="Indian">"Indienne"</string>
|
||||
<string name="Indian">"indienne"</string>
|
||||
<string name="in">"in"</string>
|
||||
<string name="impSuc">"Importation réussie"</string>
|
||||
<string name="impip">"Importation en cours"</string>
|
||||
|
@ -198,29 +219,29 @@
|
|||
<string name="guide">"Guide d’utilisation"</string>
|
||||
<string name="grocery">"Liste de courses"</string>
|
||||
<string name="grid">"Grille"</string>
|
||||
<string name="Greek">"Grecque"</string>
|
||||
<string name="Greek">"grecque"</string>
|
||||
<string name="Gram">"Gramme"</string>
|
||||
<string name="gh">"Voir sur GitHub"</string>
|
||||
<string name="German">"Allemande"</string>
|
||||
<string name="Gallon">"Gallon"</string>
|
||||
<string name="German">"allemande"</string>
|
||||
<string name="Gallon">"Galon"</string>
|
||||
<string name="gal">"gal"</string>
|
||||
<string name="g">"g"</string>
|
||||
<string name="fsList">"Vos recettes favorites sont listées ici"</string>
|
||||
<string name="FRI">"ven"</string>
|
||||
<string name="French">"Française"</string>
|
||||
<string name="French">"française"</string>
|
||||
<string name="_Fluid_Ounce_bd10L">"Once liquide"</string>
|
||||
<string name="fltr">"Filtre"</string>
|
||||
<string name="_fl_oz_72kqu">"oz liq"</string>
|
||||
<string name="_Filtered_recipes_Z1alhhu">"Recettes filtrées"</string>
|
||||
<string name="Filipino">"Philippine"</string>
|
||||
<string name="Filipino">"philippine"</string>
|
||||
<string name="February">"février"</string>
|
||||
<string name="favourites">"Favoris"</string>
|
||||
<string name="expSuc">"Exportation réussie"</string>
|
||||
<string name="expip">"Exportation en cours"</string>
|
||||
<string name="expBu">"Exporter une sauvegarde complète"</string>
|
||||
<string name="EnRecipes">"EnRecipes"</string>
|
||||
<string name="English">"Anglaise"</string>
|
||||
<string name="Egyptian">"Égyptienne"</string>
|
||||
<string name="English">"anglaise"</string>
|
||||
<string name="Egyptian">"égyptienne"</string>
|
||||
<string name="editRec">"Modifier la recette"</string>
|
||||
<string name="Easy">"Facile"</string>
|
||||
<string name="dsp">"c.à.d"</string>
|
||||
|
@ -229,21 +250,21 @@
|
|||
<string name="donate">"Faire un don"</string>
|
||||
<string name="disc">"Cette recette a des modifications non enregistrées. Que voudriez-vous faire ?"</string>
|
||||
<string name="disBtn">"IGNORER"</string>
|
||||
<string name="dinner">"dîner"</string>
|
||||
<string name="dinner">"Dîner"</string>
|
||||
<string name="_Difficulty_level_cSL5d">"Niveau de difficulté"</string>
|
||||
<string name="detailed">"Détaillée"</string>
|
||||
<string name="Desserts">"Desserts"</string>
|
||||
<string name="Desserts">"Délices"</string>
|
||||
<string name="delRecsInfo">"Vous êtes sur le point de supprimer définitivement %1$s"</string>
|
||||
<string name="delRecInfo">"Vous êtes sur le point de supprimer définitivement la recette %1$s"</string>
|
||||
<string name="December">"décembre"</string>
|
||||
<string name="dBtn">"SUPPRIMER"</string>
|
||||
<string name="db">"Base de données"</string>
|
||||
<string name="Dark">"Sombre"</string>
|
||||
<string name="Danish">"Danoise"</string>
|
||||
<string name="Danish">"danoise"</string>
|
||||
<string name="dAgo">"il y a %1$s jours"</string>
|
||||
<string name="Cup">"Tasse"</string>
|
||||
<string name="cup">"tasse"</string>
|
||||
<string name="cui">"Cuisine"</string>
|
||||
<string name="cui">"Cuisines"</string>
|
||||
<string name="Created">"Créé le"</string>
|
||||
<string name="cPic">"Recadrer la photo"</string>
|
||||
<string name="cookT">"Temps de cuisson"</string>
|
||||
|
@ -252,7 +273,7 @@
|
|||
<string name="cmbs">"Combinaisons"</string>
|
||||
<string name="cm">"cm"</string>
|
||||
<string name="clove">"gousse"</string>
|
||||
<string name="Chinese">"Chinoise"</string>
|
||||
<string name="Chinese">"chinoise"</string>
|
||||
<string name="Challenging">"Difficile"</string>
|
||||
<string name="cBtn">"ANNULER"</string>
|
||||
<string name="cat">"Catégorie"</string>
|
||||
|
@ -261,13 +282,13 @@
|
|||
<string name="buInc">"Fichier de sauvegarde mal formé ou corrompu"</string>
|
||||
<string name="buFol">"Dossier de sauvegarde"</string>
|
||||
<string name="buEmp">"La sauvegarde est vide"</string>
|
||||
<string name="British">"Britannique"</string>
|
||||
<string name="British">"britannique"</string>
|
||||
<string name="breakfast">"Petit déjeuner"</string>
|
||||
<string name="Breads">"Pains"</string>
|
||||
<string name="Brazilian">"Brésilienne"</string>
|
||||
<string name="Black">"Noir"</string>
|
||||
<string name="Beverages">"Boissons"</string>
|
||||
<string name="Barbecue">"Barbecue"</string>
|
||||
<string name="Barbecue">"Grillades"</string>
|
||||
<string name="August">"août"</string>
|
||||
<string name="aStpBtn">"AJOUTER UNE ÉTAPE"</string>
|
||||
<string name="April">"avril"</string>
|
||||
|
@ -292,4 +313,6 @@
|
|||
<string name="aBtn">"AJOUTER"</string>
|
||||
<string name="About">"À propos"</string>
|
||||
<string name="aap">"Joindre une photo"</string>
|
||||
<string name="notifSetg">"Notification settings"</string>
|
||||
<string name="tmrRm">"Timer removed"</string>
|
||||
</resources>
|
||||
|
|
|
@ -1,5 +1,26 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="sec">"सेकंड"</string>
|
||||
<string name="timer">"कुकिंग टाइमर"</string>
|
||||
<string name="ntmr">"नया टाइमर"</string>
|
||||
<string name="strtBtn">"शुरू"</string>
|
||||
<string name="stop">"रुकें"</string>
|
||||
<string name="delay">"देरी"</string>
|
||||
<string name="tmr">"टाइमर%1$s"</string>
|
||||
<string name="prstBtn">"प्रीसेट"</string>
|
||||
<string name="tmrPrsts">"टाइमर प्रीसेट"</string>
|
||||
<string name="aTPrst">"प्रीसेट में जोड़ा गया"</string>
|
||||
<string name="tmrSnd">"टाइमर की आवाज़"</string>
|
||||
<string name="tmrvbrt">"टाइमर वाइब्रेट"</string>
|
||||
<string name="dlyDur">"विलंब अवधि"</string>
|
||||
<string name="minute">"मिनट"</string>
|
||||
<string name="minutes">"मिनटो"</string>
|
||||
<string name="hour">"घंटा"</string>
|
||||
<string name="hours">"घंटे"</string>
|
||||
<string name="seconds">"सेकंड"</string>
|
||||
<string name="tmrClr">"टाइमर साफ"</string>
|
||||
<string name="fwr">"किस विधि के लिए?"</string>
|
||||
<string name="sysDefB">"प्रणालीगत चूक + काला"</string>
|
||||
<string name="buto">"%1$s में बैकअप लिया गया"</string>
|
||||
<string name="yld">"मान जाना"</string>
|
||||
<string name="yieldU">"उपज इकाई"</string>
|
||||
|
@ -292,4 +313,6 @@
|
|||
<string name="aBtn">"जोड़ें"</string>
|
||||
<string name="About">"तकरीबन"</string>
|
||||
<string name="aap">"एक तस्वीर लगाओ"</string>
|
||||
<string name="notifSetg">"Notification settings"</string>
|
||||
<string name="tmrRm">"Timer removed"</string>
|
||||
</resources>
|
||||
|
|
|
@ -1,5 +1,26 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="stop">"Berhenti"</string>
|
||||
<string name="delay">"Menunda"</string>
|
||||
<string name="tmr">"Timer %1$s"</string>
|
||||
<string name="prstBtn">"PRESET"</string>
|
||||
<string name="tmrPrsts">"Preset timer"</string>
|
||||
<string name="fwr">"untuk resep yang mana?"</string>
|
||||
<string name="aTPrst">"Ditambahkan ke preset"</string>
|
||||
<string name="tmrSnd">"Suara timer"</string>
|
||||
<string name="tmrvbrt">"Timer bergetar"</string>
|
||||
<string name="dlyDur">"Durasi penundaan"</string>
|
||||
<string name="minute">"menit"</string>
|
||||
<string name="minutes">"menit"</string>
|
||||
<string name="hour">"jam"</string>
|
||||
<string name="hours">"jam"</string>
|
||||
<string name="seconds">"detik"</string>
|
||||
<string name="tmrClr">"Timer dibersihkan"</string>
|
||||
<string name="timer">"Timer Memasak"</string>
|
||||
<string name="ntmr">"Timer baru"</string>
|
||||
<string name="strtBtn">"MULAI"</string>
|
||||
<string name="sec">"s"</string>
|
||||
<string name="sysDefB">"Default sistem + Hitam"</string>
|
||||
<string name="buto">"Didukung ke %1$s"</string>
|
||||
<string name="yld">"Menghasilkan"</string>
|
||||
<string name="yieldU">"Satuan hasil"</string>
|
||||
|
@ -292,4 +313,6 @@
|
|||
<string name="aBtn">"Tambah"</string>
|
||||
<string name="About">"Tentang"</string>
|
||||
<string name="aap">"Lampirkan foto"</string>
|
||||
<string name="notifSetg">"Notification settings"</string>
|
||||
<string name="tmrRm">"Timer removed"</string>
|
||||
</resources>
|
||||
|
|
|
@ -1,5 +1,26 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="tmrClr">"Contaminuti cancellato"</string>
|
||||
<string name="delay">"Ritardo"</string>
|
||||
<string name="dlyDur">"Durata del ritardo"</string>
|
||||
<string name="minute">"minuto"</string>
|
||||
<string name="minutes">"minuti"</string>
|
||||
<string name="hour">"ora"</string>
|
||||
<string name="hours">"ore"</string>
|
||||
<string name="seconds">"secondi"</string>
|
||||
<string name="sec">"s"</string>
|
||||
<string name="stop">"Ferma"</string>
|
||||
<string name="prstBtn">"Preimpostazioni"</string>
|
||||
<string name="tmrPrsts">"Preimpostazioni del contaminuti"</string>
|
||||
<string name="fwr">"per quale ricetta?"</string>
|
||||
<string name="aTPrst">"Aggiunto alle preimpostazioni"</string>
|
||||
<string name="tmrSnd">"Suono del contaminuti"</string>
|
||||
<string name="tmrvbrt">"Vibrazione contaminuti"</string>
|
||||
<string name="timer">"Contaminuti di cottura"</string>
|
||||
<string name="ntmr">"Nuovo contaminuti"</string>
|
||||
<string name="strtBtn">"AVVIA"</string>
|
||||
<string name="tmr">"Contaminuti %1$s"</string>
|
||||
<string name="sysDefB">"Predefinito del sistema + Nero"</string>
|
||||
<string name="buto">"Backup salvato in %1$s"</string>
|
||||
<string name="yld">"Resa"</string>
|
||||
<string name="yieldU">"Unità di resa"</string>
|
||||
|
@ -21,7 +42,7 @@
|
|||
<string name="tsInfo">"separa con spazi"</string>
|
||||
<string name="ts">"Etichette"</string>
|
||||
<string name="trySer">"CERCARE IN TUTTE LE RICETTE?"</string>
|
||||
<string name="trylater">"Prova più tardi"</string>
|
||||
<string name="trylater">"Da provare più tardi"</string>
|
||||
<string name="trnsl">"Traduci"</string>
|
||||
<string name="triedInfo">"Hai provato questa ricetta %1$s"</string>
|
||||
<string name="today">"oggi"</string>
|
||||
|
@ -117,7 +138,7 @@
|
|||
<string name="pht">"Foto ricetta"</string>
|
||||
<string name="photogrid">"Griglia di foto"</string>
|
||||
<string name="Patty">"Polpetta"</string>
|
||||
<string name="Pasta">"Pasta"</string>
|
||||
<string name="Pasta">"Pastore"</string>
|
||||
<string name="oz">"oz"</string>
|
||||
<string name="Ounce">"Oncia"</string>
|
||||
<string name="opts">"Opzioni"</string>
|
||||
|
@ -292,4 +313,6 @@
|
|||
<string name="aBtn">"AGGIUNGI"</string>
|
||||
<string name="About">"Informazioni"</string>
|
||||
<string name="aap">"Allega una foto"</string>
|
||||
<string name="notifSetg">"Notification settings"</string>
|
||||
<string name="tmrRm">"Timer removed"</string>
|
||||
</resources>
|
||||
|
|
318
app/resources/Android/src/main/res/values-ja/strings.xml
Normal file
|
@ -0,0 +1,318 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="medium">"中"</string>
|
||||
<string name="large">"大"</string>
|
||||
<string name="small">"小"</string>
|
||||
<string name="it">"材料"</string>
|
||||
<string name="lb">"ポンド"</string>
|
||||
<string name="oz">"オンス"</string>
|
||||
<string name="pinch">"ピンチ"</string>
|
||||
<string name="stick">"スティック"</string>
|
||||
<string name="nNBtn">"あとで"</string>
|
||||
<string name="Undefined">"未定義"</string>
|
||||
<string name="in">"中の"</string>
|
||||
<string name="sysDefB">"システム既定+黒"</string>
|
||||
<string name="buto">"%1$s としてバックアップしました"</string>
|
||||
<string name="yld">"仕上がり分量"</string>
|
||||
<string name="yieldU">"仕上がり分量の単位"</string>
|
||||
<string name="yieldQ">"仕上がり分量"</string>
|
||||
<string name="yesterday">"昨日"</string>
|
||||
<string name="WED">"水"</string>
|
||||
<string name="wAgo">"%1$s 週前"</string>
|
||||
<string name="Vietnamese">"ベトナム料理"</string>
|
||||
<string name="Vegetarian">"ベジタリアン"</string>
|
||||
<string name="Vegan">"ビーガン"</string>
|
||||
<string name="untRec">"無題のレシピ"</string>
|
||||
<string name="unsaved">"未保存の変更"</string>
|
||||
<string name="Unit">"単位"</string>
|
||||
<string name="unit">"個"</string>
|
||||
<string name="Turkish">"トルコ料理"</string>
|
||||
<string name="TUE">"火"</string>
|
||||
<string name="tsp">"小さじ"</string>
|
||||
<string name="tsInfo">"スペースで区切ってください"</string>
|
||||
<string name="ts">"タグ"</string>
|
||||
<string name="trySer">"全てのレシピを検索しますか?"</string>
|
||||
<string name="trylater">"あとで作る"</string>
|
||||
<string name="trnsl">"翻訳"</string>
|
||||
<string name="triedInfo">"に作りました"</string>
|
||||
<string name="today">"今日"</string>
|
||||
<string name="tLInfo">"あとで試したいレシピはここに並びます"</string>
|
||||
<string name="title">"タイトル"</string>
|
||||
<string name="THU">"木"</string>
|
||||
<string name="Theme">"テーマ"</string>
|
||||
<string name="Thai">"タイ料理"</string>
|
||||
<string name="Teaspoon">"小さじ"</string>
|
||||
<string name="tbsp">"大さじ"</string>
|
||||
<string name="Tablespoon">"大さじ"</string>
|
||||
<string name="sysDef">"システム既定"</string>
|
||||
<string name="swm">"月曜始まりにする"</string>
|
||||
<string name="Swedish">"スウェーデン料理"</string>
|
||||
<string name="sVwInfo">"何を作るか決められないときに使います"</string>
|
||||
<string name="sVw">"振ってランダムなレシピを表示"</string>
|
||||
<string name="SUN">"日"</string>
|
||||
<string name="strAdd">"レシピを追加しましょう!"</string>
|
||||
<string name="stp">"作り方"</string>
|
||||
<string name="stars">"星評価"</string>
|
||||
<string name="sru">"レシピを共有..."</string>
|
||||
<string name="srt">"並び替え"</string>
|
||||
<string name="srpu">"レシピの写真を共有..."</string>
|
||||
<string name="_Sri_Lankan_Z7GfBa">"スリランカ料理"</string>
|
||||
<string name="Spanish">"スペイン料理"</string>
|
||||
<string name="Soups">"スープ"</string>
|
||||
<string name="snacks">"軽食"</string>
|
||||
<string name="sltd">"選択"</string>
|
||||
<string name="_Slowest_first_hHjY6">"遅い順"</string>
|
||||
<string name="simple">"シンプル"</string>
|
||||
<string name="_Side_dishes_Z1Et4Vg">"副菜"</string>
|
||||
<string name="shr">"共有"</string>
|
||||
<string name="Settings">"設定"</string>
|
||||
<string name="SET">"設定"</string>
|
||||
<string name="Serving">"人前"</string>
|
||||
<string name="ser">"検索"</string>
|
||||
<string name="September">"9月"</string>
|
||||
<string name="selRec">"レシピを選択"</string>
|
||||
<string name="Seafood">"シーフード"</string>
|
||||
<string name="Scottish">"スコットランド料理"</string>
|
||||
<string name="Sauces">"ソース"</string>
|
||||
<string name="SAT">"土"</string>
|
||||
<string name="Salads">"サラダ"</string>
|
||||
<string name="Russian">"ロシア料理"</string>
|
||||
<string name="rst">"再起動"</string>
|
||||
<string name="rp">"写真を削除"</string>
|
||||
<string name="Roll">"ロール"</string>
|
||||
<string name="rmYUInfo">"仕上がり分量の単位のリストから %1$s を削除しようとしています"</string>
|
||||
<string name="rmUInfo">"単位のリストから %1$s を削除しようとしています"</string>
|
||||
<string name="rmN">"メモが削除されました"</string>
|
||||
<string name="rmIns">"作り方を削除しました"</string>
|
||||
<string name="rmIng">"材料を削除しました"</string>
|
||||
<string name="rmCuiInfo">"ジャンルのリストから %1$s を削除しようとしています"</string>
|
||||
<string name="rmCmb">"組合せが削除されました"</string>
|
||||
<string name="rmCatInfo">"カテゴリーのリストから %1$s を削除しようとしています"</string>
|
||||
<string name="Rice">"お米料理"</string>
|
||||
<string name="restYUL">"仕上がり分量の単位のリストをリセットする"</string>
|
||||
<string name="restUL">"単位のリストをリセットする"</string>
|
||||
<string name="restInfo">"リストをリセットすると、作成した項目が削除され、既定の項目を復元します。既にあるレシピには影響しません。"</string>
|
||||
<string name="restDone">"リセットが完了しました"</string>
|
||||
<string name="restCuiL">"ジャンルのリストをリセット"</string>
|
||||
<string name="restCatL">"カテゴリーリストをリセット"</string>
|
||||
<string name="rest">"リセット"</string>
|
||||
<string name="resNF">"レシピが見つかりません"</string>
|
||||
<string name="req">"%1$s が必要"</string>
|
||||
<string name="recU">"アップデート:"</string>
|
||||
<string name="recTitle">"私の健康レシピ"</string>
|
||||
<string name="recs">"レシピ"</string>
|
||||
<string name="recRm">"レシピを削除しました"</string>
|
||||
<string name="recPic">"レシピの写真"</string>
|
||||
<string name="recListEmp">"まだ何もありません!レシピを追加してもう一度試してください"</string>
|
||||
<string name="recI">"インポートしました:"</string>
|
||||
<string name="recF">"件のレシピが見つかりました"</string>
|
||||
<string name="recE">"既に存在します:"</string>
|
||||
<string name="rec">"レシピ"</string>
|
||||
<string name="rBtn">"削除"</string>
|
||||
<string name="Rating">"評価"</string>
|
||||
<string name="_Quickest_first_Z1CpP7N">"速いもの順"</string>
|
||||
<string name="qt">"クォート"</string>
|
||||
<string name="pt">"少々"</string>
|
||||
<string name="priv">"プライバシーポリシー"</string>
|
||||
<string name="prepT">"準備時間"</string>
|
||||
<string name="Pound">"ポンド"</string>
|
||||
<string name="Poultry">"チキン料理"</string>
|
||||
<string name="Portuguese">"ポルトガル料理"</string>
|
||||
<string name="plsAdd">"プラスボタンを押して追加します"</string>
|
||||
<string name="planner">"献立プラン"</string>
|
||||
<string name="Piece">"片"</string>
|
||||
<string name="piece">"片"</string>
|
||||
<string name="pht">"レシピの写真"</string>
|
||||
<string name="photogrid">"写真グリッド"</string>
|
||||
<string name="Patty">"パティ"</string>
|
||||
<string name="Pasta">"パスタ"</string>
|
||||
<string name="Ounce">"オンス"</string>
|
||||
<string name="opts">"オプション"</string>
|
||||
<string name="_Oldest_first_Z6cq4h">"古いもの順"</string>
|
||||
<string name="OK">"OK"</string>
|
||||
<string name="October">"10月"</string>
|
||||
<string name="nwYiU">"新しい仕上がり単位"</string>
|
||||
<string name="nwCat">"新しいカテゴリー"</string>
|
||||
<string name="November">"11月"</string>
|
||||
<string name="nos">"メモ"</string>
|
||||
<string name="noRecsInL">"検索に一致するレシピが見つかりませんでした"</string>
|
||||
<string name="noRecs">"検索に一致するレシピがありません"</string>
|
||||
<string name="Noodles">"麺"</string>
|
||||
<string name="noFavs">"お気に入りはまだありません"</string>
|
||||
<string name="noAccSensor">"加速度センサーが無効です"</string>
|
||||
<string name="no">"メモ"</string>
|
||||
<string name="nLangInfo">"新しい言語を使用するためにEnRecipesを再起動"</string>
|
||||
<string name="Nigerian">"ナイジェリア料理"</string>
|
||||
<string name="newUnit">"新しい単位"</string>
|
||||
<string name="newRec">"新しいレシピ"</string>
|
||||
<string name="_Newest_first_2Sb3c">"新しい順"</string>
|
||||
<string name="newCui">"新しいジャンル"</string>
|
||||
<string name="MON">"月"</string>
|
||||
<string name="Moderate">"普通"</string>
|
||||
<string name="ml">"ml"</string>
|
||||
<string name="minimal">"最小"</string>
|
||||
<string name="min">"分"</string>
|
||||
<string name="Millilitre">"ミリリットル"</string>
|
||||
<string name="mg">"mg"</string>
|
||||
<string name="Mexican">"メキシコ料理"</string>
|
||||
<string name="Meat">"肉料理"</string>
|
||||
<string name="May">"5月"</string>
|
||||
<string name="March">"3月"</string>
|
||||
<string name="_Main_dishes_u6RGQ">"主菜"</string>
|
||||
<string name="mAgo">"%1$s か月前"</string>
|
||||
<string name="lunch">"昼食"</string>
|
||||
<string name="ltAgo">"ずっと前"</string>
|
||||
<string name="Loaf">"ローフ"</string>
|
||||
<string name="Litre">"リットル"</string>
|
||||
<string name="listVM">"一覧の表示方法"</string>
|
||||
<string name="Light">"ライト"</string>
|
||||
<string name="leaf">"枚"</string>
|
||||
<string name="_Last_updated_Z2gEbLD">"最終更新"</string>
|
||||
<string name="lang">"言語"</string>
|
||||
<string name="l">"リットル"</string>
|
||||
<string name="Korean">"韓国料理"</string>
|
||||
<string name="Kilogram">"キログラム"</string>
|
||||
<string name="kg">"kg"</string>
|
||||
<string name="Kenyan">"ケニア料理"</string>
|
||||
<string name="kEdit">"編集を続ける"</string>
|
||||
<string name="June">"6月"</string>
|
||||
<string name="July">"7月"</string>
|
||||
<string name="joinTG">"Telegramグループに参加"</string>
|
||||
<string name="Jewish">"ユダヤ料理"</string>
|
||||
<string name="Japanese">"和食"</string>
|
||||
<string name="January">"1月"</string>
|
||||
<string name="Jamaican">"ジャマイカ料理"</string>
|
||||
<string name="Italian">"イタリア料理"</string>
|
||||
<string name="Irish">"アイルランド料理"</string>
|
||||
<string name="invFile">"無効なファイルです"</string>
|
||||
<string name="intf">"インターフェイス"</string>
|
||||
<string name="inss">"作り方"</string>
|
||||
<string name="ings">"材料"</string>
|
||||
<string name="Indian">"インド料理"</string>
|
||||
<string name="impSuc">"インポートに成功"</string>
|
||||
<string name="impip">"インポートを実行中"</string>
|
||||
<string name="impInfo">"アプリからエクスポートしたフルバックアップに対応しています"</string>
|
||||
<string name="impFail">"インポートに失敗"</string>
|
||||
<string name="impBu">"データをインポート"</string>
|
||||
<string name="hr">"時間"</string>
|
||||
<string name="Healthy">"ヘルシー"</string>
|
||||
<string name="guide">"ユーザーガイド"</string>
|
||||
<string name="grocery">"食材のリスト"</string>
|
||||
<string name="grid">"グリッド"</string>
|
||||
<string name="Greek">"ギリシャ料理"</string>
|
||||
<string name="Gram">"グラム"</string>
|
||||
<string name="gh">"GitHubで見る"</string>
|
||||
<string name="German">"ドイツ料理"</string>
|
||||
<string name="Gallon">"ガロン"</string>
|
||||
<string name="gal">"ガロン"</string>
|
||||
<string name="g">"g"</string>
|
||||
<string name="fsList">"お気に入りのレシピはここに表示されます"</string>
|
||||
<string name="FRI">"金"</string>
|
||||
<string name="French">"フランス料理"</string>
|
||||
<string name="_Fluid_Ounce_bd10L">"液量オンス"</string>
|
||||
<string name="fltr">"絞り込み"</string>
|
||||
<string name="_fl_oz_72kqu">"液量オンス"</string>
|
||||
<string name="_Filtered_recipes_Z1alhhu">"絞り込み結果"</string>
|
||||
<string name="Filipino">"フィリピン料理"</string>
|
||||
<string name="February">"2月"</string>
|
||||
<string name="favourites">"お気に入り"</string>
|
||||
<string name="expSuc">"エクスポートに成功"</string>
|
||||
<string name="expip">"エクスポートを実行中"</string>
|
||||
<string name="expBu">"バックアップをエクスポート"</string>
|
||||
<string name="English">"イングランド料理"</string>
|
||||
<string name="Egyptian">"エジプト料理"</string>
|
||||
<string name="editRec">"レシピを編集する"</string>
|
||||
<string name="Easy">"簡単"</string>
|
||||
<string name="dsp">"デザート用スプーン"</string>
|
||||
<string name="drop">"滴"</string>
|
||||
<string name="dozen">"ダース"</string>
|
||||
<string name="donate">"寄付する"</string>
|
||||
<string name="disc">"レシピの変更が保存されていません。どうしますか?"</string>
|
||||
<string name="disBtn">"破棄"</string>
|
||||
<string name="dinner">"夕食"</string>
|
||||
<string name="_Difficulty_level_cSL5d">"難易度"</string>
|
||||
<string name="detailed">"詳細"</string>
|
||||
<string name="Desserts">"デザート"</string>
|
||||
<string name="delRecsInfo">"%1$s 件のレシピを削除しようとしています"</string>
|
||||
<string name="delRecInfo">"レシピ %1$s を削除しようとしています"</string>
|
||||
<string name="December">"12月"</string>
|
||||
<string name="dBtn">"削除"</string>
|
||||
<string name="db">"データベース"</string>
|
||||
<string name="Dark">"ダーク"</string>
|
||||
<string name="Danish">"デンマーク料理"</string>
|
||||
<string name="dAgo">"%1$s 日前"</string>
|
||||
<string name="Cup">"カップ"</string>
|
||||
<string name="cup">"カップ"</string>
|
||||
<string name="cui">"ジャンル"</string>
|
||||
<string name="Created">"作成日時"</string>
|
||||
<string name="cPic">"写真を切り抜く"</string>
|
||||
<string name="cookT">"調理時間"</string>
|
||||
<string name="conf">"確認"</string>
|
||||
<string name="conBtn">"続ける"</string>
|
||||
<string name="cmbs">"組合せ"</string>
|
||||
<string name="cm">"cm"</string>
|
||||
<string name="clove">"クローブ"</string>
|
||||
<string name="Chinese">"中華料理"</string>
|
||||
<string name="Challenging">"難しい"</string>
|
||||
<string name="cBtn">"キャンセル"</string>
|
||||
<string name="cat">"カテゴリー"</string>
|
||||
<string name="buMod">"バックアップファイルが一部修正されています"</string>
|
||||
<string name="buInfo">"全てのデータを復元するためのZIPファイルを生成します"</string>
|
||||
<string name="buInc">"バックアップファイルが壊れています"</string>
|
||||
<string name="buFol">"バックアップフォルダー"</string>
|
||||
<string name="buEmp">"バックアップファイルが空です"</string>
|
||||
<string name="British">"イギリス料理"</string>
|
||||
<string name="breakfast">"朝食"</string>
|
||||
<string name="Breads">"パン"</string>
|
||||
<string name="Brazilian">"ブラジル料理"</string>
|
||||
<string name="Black">"黒"</string>
|
||||
<string name="Beverages">"飲物"</string>
|
||||
<string name="Barbecue">"キャンプ料理"</string>
|
||||
<string name="August">"8月"</string>
|
||||
<string name="aStpBtn">"手順を追加"</string>
|
||||
<string name="April">"4月"</string>
|
||||
<string name="appRst">"アプリの再起動が必要"</string>
|
||||
<string name="apply">"適用する"</string>
|
||||
<string name="appInfo">"EnRecipesはレシピを作成・管理・共有することができる、オープンソースでプライバシーに配慮したデジタル料理本です"</string>
|
||||
<string name="Appetizers">"前菜"</string>
|
||||
<string name="appCrd">"EnRecipesから共有されました。F-DroidかIzzyOnDroidかPlayストアからダウンロード出来ます。"</string>
|
||||
<string name="aNoBtn">"メモを追加"</string>
|
||||
<string name="aNBtn">"新しく追加"</string>
|
||||
<string name="American">"アメリカ料理"</string>
|
||||
<string name="allTs">"全てのタグ"</string>
|
||||
<string name="allCuis">"全てのジャンル"</string>
|
||||
<string name="allCats">"全てのカテゴリー"</string>
|
||||
<string name="aIngBtn">"材料を追加"</string>
|
||||
<string name="aFBu">"バックアップするにはレシピを登録してください"</string>
|
||||
<string name="addCmbBtn">"組合せを追加"</string>
|
||||
<string name="aD">"完了しました!"</string>
|
||||
<string name="aBtn">"追加"</string>
|
||||
<string name="About">"アプリについて"</string>
|
||||
<string name="aap">"写真を添付"</string>
|
||||
<string name="notifSetg">"Notification settings"</string>
|
||||
<string name="tmrRm">"Timer removed"</string>
|
||||
<string name="seconds">"seconds"</string>
|
||||
<string name="hours">"hours"</string>
|
||||
<string name="hour">"hour"</string>
|
||||
<string name="minutes">"minutes"</string>
|
||||
<string name="minute">"minute"</string>
|
||||
<string name="dlyDur">"Delay duration"</string>
|
||||
<string name="tmrvbrt">"Timer vibrate"</string>
|
||||
<string name="tmrSnd">"Timer sound"</string>
|
||||
<string name="aTPrst">"Added to presets"</string>
|
||||
<string name="fwr">"for which recipe?"</string>
|
||||
<string name="tmrPrsts">"Timer presets"</string>
|
||||
<string name="prstBtn">"PRESETS"</string>
|
||||
<string name="tmr">"Timer %1$s"</string>
|
||||
<string name="delay">"Delay"</string>
|
||||
<string name="stop">"Stop"</string>
|
||||
<string name="strtBtn">"START"</string>
|
||||
<string name="ntmr">"New timer"</string>
|
||||
<string name="timer">"Cooking Timer"</string>
|
||||
<string name="sec">"sec"</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="tmrClr">"tmrClr"</string>
|
||||
</resources>
|
318
app/resources/Android/src/main/res/values-kn/strings.xml
Normal file
|
@ -0,0 +1,318 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="notifSetg">"Notification settings"</string>
|
||||
<string name="tmrRm">"Timer removed"</string>
|
||||
<string name="seconds">"seconds"</string>
|
||||
<string name="hours">"hours"</string>
|
||||
<string name="hour">"hour"</string>
|
||||
<string name="minutes">"minutes"</string>
|
||||
<string name="minute">"minute"</string>
|
||||
<string name="dlyDur">"Delay duration"</string>
|
||||
<string name="tmrvbrt">"Timer vibrate"</string>
|
||||
<string name="tmrSnd">"Timer sound"</string>
|
||||
<string name="aTPrst">"Added to presets"</string>
|
||||
<string name="fwr">"for which recipe?"</string>
|
||||
<string name="tmrPrsts">"Timer presets"</string>
|
||||
<string name="prstBtn">"PRESETS"</string>
|
||||
<string name="tmr">"Timer %1$s"</string>
|
||||
<string name="delay">"Delay"</string>
|
||||
<string name="stop">"Stop"</string>
|
||||
<string name="strtBtn">"START"</string>
|
||||
<string name="ntmr">"New timer"</string>
|
||||
<string name="timer">"Cooking Timer"</string>
|
||||
<string name="sysDefB">"System default + Black"</string>
|
||||
<string name="buto">"Backed up to %1$s"</string>
|
||||
<string name="yld">"Yield"</string>
|
||||
<string name="yieldU">"Yield unit"</string>
|
||||
<string name="yieldQ">"Yield quantity"</string>
|
||||
<string name="yesterday">"yesterday"</string>
|
||||
<string name="WED">"WED"</string>
|
||||
<string name="wAgo">"%1$s weeks ago"</string>
|
||||
<string name="Vietnamese">"Vietnamese"</string>
|
||||
<string name="Vegetarian">"Vegetarian"</string>
|
||||
<string name="Vegan">"Vegan"</string>
|
||||
<string name="untRec">"Untitled Recipe"</string>
|
||||
<string name="unsaved">"Unsaved changes"</string>
|
||||
<string name="Unit">"Unit"</string>
|
||||
<string name="unit">"unit"</string>
|
||||
<string name="Undefined">"Undefined"</string>
|
||||
<string name="Turkish">"Turkish"</string>
|
||||
<string name="TUE">"TUE"</string>
|
||||
<string name="tsp">"tsp"</string>
|
||||
<string name="tsInfo">"separate with spaces"</string>
|
||||
<string name="ts">"Tags"</string>
|
||||
<string name="trySer">"SEARCH IN ALL THE RECIPES?"</string>
|
||||
<string name="trylater">"Try Later"</string>
|
||||
<string name="trnsl">"Translate"</string>
|
||||
<string name="triedInfo">"You tried this recipe %1$s"</string>
|
||||
<string name="today">"today"</string>
|
||||
<string name="tLInfo">"Recipes you want to try later are listed here"</string>
|
||||
<string name="title">"Title"</string>
|
||||
<string name="THU">"THU"</string>
|
||||
<string name="Theme">"Theme"</string>
|
||||
<string name="Thai">"Thai"</string>
|
||||
<string name="Teaspoon">"Teaspoon"</string>
|
||||
<string name="tbsp">"tbsp"</string>
|
||||
<string name="Tablespoon">"Tablespoon"</string>
|
||||
<string name="sysDef">"System default"</string>
|
||||
<string name="swm">"Start week on Monday"</string>
|
||||
<string name="Swedish">"Swedish"</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="SUN">"SUN"</string>
|
||||
<string name="strAdd">"Start adding your recipes!"</string>
|
||||
<string name="stp">"Step"</string>
|
||||
<string name="stick">"stick"</string>
|
||||
<string name="stars">"Star rating"</string>
|
||||
<string name="sru">"Share recipe using..."</string>
|
||||
<string name="srt">"Sort"</string>
|
||||
<string name="srpu">"Share recipe photo using..."</string>
|
||||
<string name="_Sri_Lankan_Z7GfBa">"Sri Lankan"</string>
|
||||
<string name="Spanish">"Spanish"</string>
|
||||
<string name="Soups">"Soups"</string>
|
||||
<string name="snacks">"Snacks"</string>
|
||||
<string name="small">"small"</string>
|
||||
<string name="sltd">"selected"</string>
|
||||
<string name="_Slowest_first_hHjY6">"Slowest first"</string>
|
||||
<string name="simple">"Simple"</string>
|
||||
<string name="_Side_dishes_Z1Et4Vg">"Side dishes"</string>
|
||||
<string name="shr">"Share"</string>
|
||||
<string name="Settings">"Settings"</string>
|
||||
<string name="SET">"SET"</string>
|
||||
<string name="Serving">"Serving"</string>
|
||||
<string name="ser">"Search"</string>
|
||||
<string name="September">"September"</string>
|
||||
<string name="selRec">"Select recipe"</string>
|
||||
<string name="Seafood">"Seafood"</string>
|
||||
<string name="Scottish">"Scottish"</string>
|
||||
<string name="Sauces">"Sauces"</string>
|
||||
<string name="SAT">"SAT"</string>
|
||||
<string name="Salads">"Salads"</string>
|
||||
<string name="Russian">"Russian"</string>
|
||||
<string name="rst">"RESTART"</string>
|
||||
<string name="rp">"Remove photo"</string>
|
||||
<string name="Roll">"Roll"</string>
|
||||
<string name="rmYUInfo">"You are about to remove %1$s from the yield unit list"</string>
|
||||
<string name="rmUInfo">"You are about to remove %1$s from the unit list"</string>
|
||||
<string name="rmN">"Note removed"</string>
|
||||
<string name="rmIns">"Instruction removed"</string>
|
||||
<string name="rmIng">"Ingredient removed"</string>
|
||||
<string name="rmCuiInfo">"You are about to remove %1$s from the cuisine list"</string>
|
||||
<string name="rmCmb">"Combination removed"</string>
|
||||
<string name="rmCatInfo">"You are about to remove %1$s from the category list"</string>
|
||||
<string name="Rice">"Rice"</string>
|
||||
<string name="restYUL">"Reset yield unit list"</string>
|
||||
<string name="restUL">"Reset unit list"</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="restDone">"Reset done"</string>
|
||||
<string name="restCuiL">"Reset cuisine list"</string>
|
||||
<string name="restCatL">"Reset category list"</string>
|
||||
<string name="rest">"Reset"</string>
|
||||
<string name="resNF">"Recipe not found"</string>
|
||||
<string name="req">"Required %1$s"</string>
|
||||
<string name="recU">"Updated:"</string>
|
||||
<string name="recTitle">"My Healthy Recipe"</string>
|
||||
<string name="recs">"recipes"</string>
|
||||
<string name="recRm">"Recipe removed"</string>
|
||||
<string name="recPic">"Recipe photo"</string>
|
||||
<string name="recListEmp">"Nothing here! Add some recipes and try again"</string>
|
||||
<string name="recI">"Imported:"</string>
|
||||
<string name="recF">"recipes found"</string>
|
||||
<string name="recE">"Already exist:"</string>
|
||||
<string name="rec">"Recipe"</string>
|
||||
<string name="rBtn">"REMOVE"</string>
|
||||
<string name="Rating">"Rating"</string>
|
||||
<string name="_Quickest_first_Z1CpP7N">"Quickest first"</string>
|
||||
<string name="qt">"qt"</string>
|
||||
<string name="pt">"pt"</string>
|
||||
<string name="priv">"Privacy policy"</string>
|
||||
<string name="prepT">"Preparation time"</string>
|
||||
<string name="Pound">"Pound"</string>
|
||||
<string name="Poultry">"Poultry"</string>
|
||||
<string name="Portuguese">"Portuguese"</string>
|
||||
<string name="plsAdd">"Use the plus button to add one"</string>
|
||||
<string name="planner">"Meal Planner"</string>
|
||||
<string name="pinch">"pinch"</string>
|
||||
<string name="Piece">"Piece"</string>
|
||||
<string name="piece">"piece"</string>
|
||||
<string name="pht">"Recipe photo"</string>
|
||||
<string name="photogrid">"Photo Grid"</string>
|
||||
<string name="Patty">"Patty"</string>
|
||||
<string name="Pasta">"Pasta"</string>
|
||||
<string name="oz">"oz"</string>
|
||||
<string name="Ounce">"Ounce"</string>
|
||||
<string name="opts">"Options"</string>
|
||||
<string name="_Oldest_first_Z6cq4h">"Oldest first"</string>
|
||||
<string name="OK">"OK"</string>
|
||||
<string name="October">"October"</string>
|
||||
<string name="nwYiU">"New yield unit"</string>
|
||||
<string name="nwCat">"New category"</string>
|
||||
<string name="November">"November"</string>
|
||||
<string name="nos">"Notes"</string>
|
||||
<string name="noRecsInL">"None of the recipes here matches your search"</string>
|
||||
<string name="noRecs">"No recipes match your search"</string>
|
||||
<string name="Noodles">"Noodles"</string>
|
||||
<string name="noFavs">"No favourites yet"</string>
|
||||
<string name="noAccSensor">"Accelerometer sensor is either disabled or is not working"</string>
|
||||
<string name="no">"Note"</string>
|
||||
<string name="nNBtn">"NOT NOW"</string>
|
||||
<string name="nLangInfo">"Restart EnRecipes to use the new language"</string>
|
||||
<string name="Nigerian">"Nigerian"</string>
|
||||
<string name="newUnit">"New unit"</string>
|
||||
<string name="newRec">"New recipe"</string>
|
||||
<string name="_Newest_first_2Sb3c">"Newest first"</string>
|
||||
<string name="newCui">"New cuisine"</string>
|
||||
<string name="MON">"MON"</string>
|
||||
<string name="Moderate">"Moderate"</string>
|
||||
<string name="ml">"ml"</string>
|
||||
<string name="minimal">"Minimal"</string>
|
||||
<string name="sec">"sec"</string>
|
||||
<string name="min">"min"</string>
|
||||
<string name="Millilitre">"Millilitre"</string>
|
||||
<string name="mg">"mg"</string>
|
||||
<string name="Mexican">"Mexican"</string>
|
||||
<string name="medium">"medium"</string>
|
||||
<string name="Meat">"Meat"</string>
|
||||
<string name="May">"May"</string>
|
||||
<string name="March">"March"</string>
|
||||
<string name="_Main_dishes_u6RGQ">"Main dishes"</string>
|
||||
<string name="mAgo">"%1$s months ago"</string>
|
||||
<string name="lunch">"Lunch"</string>
|
||||
<string name="ltAgo">"a long time ago"</string>
|
||||
<string name="Loaf">"Loaf"</string>
|
||||
<string name="Litre">"Litre"</string>
|
||||
<string name="listVM">"List view mode"</string>
|
||||
<string name="Light">"Light"</string>
|
||||
<string name="leaf">"leaf"</string>
|
||||
<string name="lb">"lb"</string>
|
||||
<string name="_Last_updated_Z2gEbLD">"Last updated"</string>
|
||||
<string name="large">"large"</string>
|
||||
<string name="lang">"Language"</string>
|
||||
<string name="l">"l"</string>
|
||||
<string name="Korean">"Korean"</string>
|
||||
<string name="Kilogram">"Kilogram"</string>
|
||||
<string name="kg">"kg"</string>
|
||||
<string name="Kenyan">"Kenyan"</string>
|
||||
<string name="kEdit">"KEEP EDITING"</string>
|
||||
<string name="June">"June"</string>
|
||||
<string name="July">"July"</string>
|
||||
<string name="joinTG">"Join the Telegram group"</string>
|
||||
<string name="Jewish">"Jewish"</string>
|
||||
<string name="Japanese">"Japanese"</string>
|
||||
<string name="January">"January"</string>
|
||||
<string name="Jamaican">"Jamaican"</string>
|
||||
<string name="Italian">"Italian"</string>
|
||||
<string name="it">"Item"</string>
|
||||
<string name="Irish">"Irish"</string>
|
||||
<string name="invFile">"Invalid file"</string>
|
||||
<string name="intf">"Interface"</string>
|
||||
<string name="inss">"Instructions"</string>
|
||||
<string name="ings">"Ingredients"</string>
|
||||
<string name="Indian">"Indian"</string>
|
||||
<string name="in">"in"</string>
|
||||
<string name="impSuc">"Import success"</string>
|
||||
<string name="impip">"Import in progress"</string>
|
||||
<string name="impInfo">"Supports full backups exported by this app"</string>
|
||||
<string name="impFail">"Import failed"</string>
|
||||
<string name="impBu">"Import data"</string>
|
||||
<string name="hr">"hr"</string>
|
||||
<string name="Healthy">"Healthy"</string>
|
||||
<string name="guide">"User guide"</string>
|
||||
<string name="grocery">"Grocery List"</string>
|
||||
<string name="grid">"Grid"</string>
|
||||
<string name="Greek">"Greek"</string>
|
||||
<string name="Gram">"Gram"</string>
|
||||
<string name="gh">"View on GitHub"</string>
|
||||
<string name="German">"German"</string>
|
||||
<string name="Gallon">"Gallon"</string>
|
||||
<string name="gal">"gal"</string>
|
||||
<string name="g">"g"</string>
|
||||
<string name="fsList">"Your favourite recipes are listed here"</string>
|
||||
<string name="FRI">"FRI"</string>
|
||||
<string name="French">"French"</string>
|
||||
<string name="_Fluid_Ounce_bd10L">"Fluid Ounce"</string>
|
||||
<string name="fltr">"Filter"</string>
|
||||
<string name="_fl_oz_72kqu">"fl oz"</string>
|
||||
<string name="_Filtered_recipes_Z1alhhu">"Filtered recipes"</string>
|
||||
<string name="Filipino">"Filipino"</string>
|
||||
<string name="February">"February"</string>
|
||||
<string name="favourites">"Favourites"</string>
|
||||
<string name="expSuc">"Export success"</string>
|
||||
<string name="expip">"Export in progress"</string>
|
||||
<string name="expBu">"Export full backup"</string>
|
||||
<string name="EnRecipes">"EnRecipes"</string>
|
||||
<string name="English">"English"</string>
|
||||
<string name="Egyptian">"Egyptian"</string>
|
||||
<string name="editRec">"Edit recipe"</string>
|
||||
<string name="Easy">"Easy"</string>
|
||||
<string name="dsp">"dstspn"</string>
|
||||
<string name="drop">"drop"</string>
|
||||
<string name="dozen">"dozen"</string>
|
||||
<string name="donate">"Donate"</string>
|
||||
<string name="disc">"This recipe has unsaved changes. What would you like to do?"</string>
|
||||
<string name="disBtn">"DISCARD"</string>
|
||||
<string name="dinner">"Dinner"</string>
|
||||
<string name="_Difficulty_level_cSL5d">"Difficulty level"</string>
|
||||
<string name="detailed">"Detailed"</string>
|
||||
<string name="Desserts">"Desserts"</string>
|
||||
<string name="delRecsInfo">"You are about to permanently delete %1$s"</string>
|
||||
<string name="delRecInfo">"You are about to permanently delete the recipe %1$s"</string>
|
||||
<string name="December">"December"</string>
|
||||
<string name="dBtn">"DELETE"</string>
|
||||
<string name="db">"Database"</string>
|
||||
<string name="Dark">"Dark"</string>
|
||||
<string name="Danish">"Danish"</string>
|
||||
<string name="dAgo">"%1$s days ago"</string>
|
||||
<string name="Cup">"Cup"</string>
|
||||
<string name="cup">"cup"</string>
|
||||
<string name="cui">"Cuisine"</string>
|
||||
<string name="Created">"Created"</string>
|
||||
<string name="cPic">"Crop photo"</string>
|
||||
<string name="cookT">"Cooking time"</string>
|
||||
<string name="conf">"Confirm"</string>
|
||||
<string name="conBtn">"CONTINUE"</string>
|
||||
<string name="cmbs">"Combinations"</string>
|
||||
<string name="cm">"cm"</string>
|
||||
<string name="clove">"clove"</string>
|
||||
<string name="Chinese">"Chinese"</string>
|
||||
<string name="Challenging">"Challenging"</string>
|
||||
<string name="cBtn">"CANCEL"</string>
|
||||
<string name="cat">"Category"</string>
|
||||
<string name="buMod">"The backup file was modified elsewhere"</string>
|
||||
<string name="buInfo">"Generates a ZIP file containing all your data that can be imported back"</string>
|
||||
<string name="buInc">"Malformed or corrupt backup file"</string>
|
||||
<string name="buFol">"Backup folder"</string>
|
||||
<string name="buEmp">"The backup file is empty"</string>
|
||||
<string name="British">"British"</string>
|
||||
<string name="breakfast">"Breakfast"</string>
|
||||
<string name="Breads">"Breads"</string>
|
||||
<string name="Brazilian">"Brazilian"</string>
|
||||
<string name="Black">"Black"</string>
|
||||
<string name="Beverages">"Beverages"</string>
|
||||
<string name="Barbecue">"Barbecue"</string>
|
||||
<string name="August">"August"</string>
|
||||
<string name="aStpBtn">"ADD STEP"</string>
|
||||
<string name="April">"April"</string>
|
||||
<string name="appRst">"App restart required"</string>
|
||||
<string name="apply">"APPLY"</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="Appetizers">"Appetizers"</string>
|
||||
<string name="appCrd">"Shared via EnRecipes. Get it on F-Droid, IzzyOnDroid or the Play Store."</string>
|
||||
<string name="_app_name_1k3Sbz">"EnRecipes"</string>
|
||||
<string name="app_name">"EnRecipes"</string>
|
||||
<string name="title_activity_kimera">"EnRecipes"</string>
|
||||
<string name="aNoBtn">"ADD NOTE"</string>
|
||||
<string name="aNBtn">"ADD NEW"</string>
|
||||
<string name="American">"American"</string>
|
||||
<string name="allTs">"All Tags"</string>
|
||||
<string name="allCuis">"All Cuisines"</string>
|
||||
<string name="allCats">"All Categories"</string>
|
||||
<string name="aIngBtn">"ADD INGREDIENT"</string>
|
||||
<string name="aFBu">"Add a recipe to perform a backup"</string>
|
||||
<string name="addCmbBtn">"ADD COMBINATION"</string>
|
||||
<string name="aD">"All done!"</string>
|
||||
<string name="aBtn">"ADD"</string>
|
||||
<string name="About">"About"</string>
|
||||
<string name="aap">"Attach a photo"</string>
|
||||
<string name="tmrClr">"tmrClr"</string>
|
||||
</resources>
|
|
@ -1,5 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="sysDefB">"സിസ്റ്റം സ്ഥിരസ്ഥിതി + കറുപ്പ്"</string>
|
||||
<string name="buto">"%1$s ലേക്ക് ബാക്കപ്പ് ചെയ്തു"</string>
|
||||
<string name="yld">"വരുമാനം"</string>
|
||||
<string name="yieldU">"വിളവ് യൂണിറ്റ്"</string>
|
||||
|
@ -292,4 +293,26 @@
|
|||
<string name="aBtn">"ചേർക്കുക"</string>
|
||||
<string name="About">"കുറിച്ച്"</string>
|
||||
<string name="aap">"ഒരു ഫോട്ടോ അറ്റാച്ചുചെയ്യുക"</string>
|
||||
<string name="notifSetg">"Notification settings"</string>
|
||||
<string name="tmrRm">"Timer removed"</string>
|
||||
<string name="seconds">"seconds"</string>
|
||||
<string name="hours">"hours"</string>
|
||||
<string name="hour">"hour"</string>
|
||||
<string name="minutes">"minutes"</string>
|
||||
<string name="minute">"minute"</string>
|
||||
<string name="dlyDur">"Delay duration"</string>
|
||||
<string name="tmrvbrt">"Timer vibrate"</string>
|
||||
<string name="tmrSnd">"Timer sound"</string>
|
||||
<string name="aTPrst">"Added to presets"</string>
|
||||
<string name="fwr">"for which recipe?"</string>
|
||||
<string name="tmrPrsts">"Timer presets"</string>
|
||||
<string name="prstBtn">"PRESETS"</string>
|
||||
<string name="tmr">"Timer %1$s"</string>
|
||||
<string name="delay">"Delay"</string>
|
||||
<string name="stop">"Stop"</string>
|
||||
<string name="strtBtn">"START"</string>
|
||||
<string name="ntmr">"New timer"</string>
|
||||
<string name="timer">"Cooking Timer"</string>
|
||||
<string name="sec">"sec"</string>
|
||||
<string name="tmrClr">"tmrClr"</string>
|
||||
</resources>
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="sec">"s"</string>
|
||||
<string name="sysDefB">"Systemforvalg + Svart"</string>
|
||||
<string name="buto">"Støttet opp til %1$s"</string>
|
||||
<string name="yld">"Nyttemengde"</string>
|
||||
<string name="yieldU">"Enhet for nyttemengde"</string>
|
||||
|
@ -292,4 +294,25 @@
|
|||
<string name="aBtn">"Legg til"</string>
|
||||
<string name="About">"Om"</string>
|
||||
<string name="aap">"Legg ved et bilde"</string>
|
||||
<string name="notifSetg">"Notification settings"</string>
|
||||
<string name="tmrRm">"Timer removed"</string>
|
||||
<string name="seconds">"seconds"</string>
|
||||
<string name="hours">"hours"</string>
|
||||
<string name="hour">"hour"</string>
|
||||
<string name="minutes">"minutes"</string>
|
||||
<string name="minute">"minute"</string>
|
||||
<string name="dlyDur">"Delay duration"</string>
|
||||
<string name="tmrvbrt">"Timer vibrate"</string>
|
||||
<string name="tmrSnd">"Timer sound"</string>
|
||||
<string name="aTPrst">"Added to presets"</string>
|
||||
<string name="fwr">"for which recipe?"</string>
|
||||
<string name="tmrPrsts">"Timer presets"</string>
|
||||
<string name="prstBtn">"PRESETS"</string>
|
||||
<string name="tmr">"Timer %1$s"</string>
|
||||
<string name="delay">"Delay"</string>
|
||||
<string name="stop">"Stop"</string>
|
||||
<string name="strtBtn">"START"</string>
|
||||
<string name="ntmr">"New timer"</string>
|
||||
<string name="timer">"Cooking Timer"</string>
|
||||
<string name="tmrClr">"tmrClr"</string>
|
||||
</resources>
|
||||
|
|
|
@ -1,14 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" >
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
|
||||
<style name="LaunchScreenThemeBase" parent="Theme.AppCompat.NoActionBar">
|
||||
<item name="colorPrimary">
|
||||
@color/dark
|
||||
</item>
|
||||
<item name="colorPrimaryDark">
|
||||
@color/dark
|
||||
</item>
|
||||
<item name="colorAccent">
|
||||
@color/dark
|
||||
@color/orange
|
||||
</item>
|
||||
<item name="android:windowBackground">
|
||||
@drawable/splash_screen_dark
|
||||
|
@ -16,6 +10,9 @@
|
|||
<item name="android:windowLightStatusBar">
|
||||
false
|
||||
</item>
|
||||
<item name="android:statusBarColor">
|
||||
@color/dark
|
||||
</item>
|
||||
<item name="android:windowLightNavigationBar" tools:targetApi="27">
|
||||
false
|
||||
</item>
|
||||
|
@ -26,30 +23,38 @@
|
|||
<style name="LaunchScreenTheme" parent="LaunchScreenThemeBase">
|
||||
</style>
|
||||
<style name="AppThemeBase" parent="Theme.AppCompat.Light.NoActionBar">
|
||||
<item name="colorPrimary">
|
||||
@color/dark
|
||||
</item>
|
||||
<item name="colorPrimaryDark">
|
||||
@color/dark
|
||||
</item>
|
||||
<item name="colorAccent">
|
||||
@color/dark
|
||||
@color/orange
|
||||
</item>
|
||||
<item name="colorControlNormal">
|
||||
#00000000
|
||||
</item>
|
||||
</style>
|
||||
<style name="AppTheme" parent="AppThemeBase">
|
||||
<item name="android:listViewStyle">@style/ListViewTheme</item>
|
||||
<item name="android:scrollViewStyle">@style/ScrollViewTheme</item>
|
||||
<item name="android:listViewStyle">
|
||||
@style/ListViewTheme
|
||||
</item>
|
||||
<item name="android:scrollViewStyle">
|
||||
@style/ScrollViewTheme
|
||||
</item>
|
||||
</style>
|
||||
<style name="ListViewTheme" parent="android:Widget.ListView">
|
||||
<item name="android:overScrollMode">never</item>
|
||||
<item name="android:divider">#00000000</item>
|
||||
<item name="android:dividerHeight">0dp</item>
|
||||
<item name="android:listSelector">#00000000</item>
|
||||
<item name="android:overScrollMode">
|
||||
never
|
||||
</item>
|
||||
<item name="android:divider">
|
||||
#00000000
|
||||
</item>
|
||||
<item name="android:dividerHeight">
|
||||
0dp
|
||||
</item>
|
||||
<item name="android:listSelector">
|
||||
#00000000
|
||||
</item>
|
||||
</style>
|
||||
<style name="ScrollViewTheme" parent="android:Widget.ScrollView">
|
||||
<item name="android:overScrollMode">never</item>
|
||||
<item name="android:overScrollMode">
|
||||
never
|
||||
</item>
|
||||
</style>
|
||||
</resources>
|
||||
|
|
|
@ -1,5 +1,26 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="tmrClr">"Kookwekker gewist"</string>
|
||||
<string name="delay">"Vertraging"</string>
|
||||
<string name="dlyDur">"Vertragingsduur"</string>
|
||||
<string name="minute">"minuut"</string>
|
||||
<string name="minutes">"minuten"</string>
|
||||
<string name="hour">"uur"</string>
|
||||
<string name="hours">"uur"</string>
|
||||
<string name="seconds">"seconden"</string>
|
||||
<string name="tmrvbrt">"Kookwekker laten trillen"</string>
|
||||
<string name="stop">"Stoppen"</string>
|
||||
<string name="prstBtn">"VOORINSTELLINGEN"</string>
|
||||
<string name="tmrPrsts">"Kookwekker: voorinstellingen"</string>
|
||||
<string name="fwr">"bij welk recept?"</string>
|
||||
<string name="aTPrst">"Toegevoegd aan voorinstellingen"</string>
|
||||
<string name="tmrSnd">"Kookwekkergeluid"</string>
|
||||
<string name="sec">"s"</string>
|
||||
<string name="timer">"Kookwekker"</string>
|
||||
<string name="ntmr">"Nieuwe kookwekker"</string>
|
||||
<string name="strtBtn">"STARTEN"</string>
|
||||
<string name="tmr">"Kookwekker %1$s"</string>
|
||||
<string name="sysDefB">"Systeemthema + Zwart"</string>
|
||||
<string name="buto">"Gebackupt naar %1$s"</string>
|
||||
<string name="yld">"Hoeveelheid"</string>
|
||||
<string name="yieldU">"Eenheid"</string>
|
||||
|
@ -292,4 +313,6 @@
|
|||
<string name="aBtn">"TOEVOEGEN"</string>
|
||||
<string name="About">"Over"</string>
|
||||
<string name="aap">"Foto bijvoegen"</string>
|
||||
<string name="notifSetg">"Notification settings"</string>
|
||||
<string name="tmrRm">"Timer removed"</string>
|
||||
</resources>
|
||||
|
|
|
@ -1,5 +1,32 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="tmrClr">"Temporizador liberado"</string>
|
||||
<string name="seconds">"segundos"</string>
|
||||
<string name="hours">"horas"</string>
|
||||
<string name="hour">"hora"</string>
|
||||
<string name="minutes">"atas"</string>
|
||||
<string name="minute">"minuto"</string>
|
||||
<string name="dlyDur">"Duração do atraso"</string>
|
||||
<string name="tmrvbrt">"Temporizador vibrar"</string>
|
||||
<string name="tmrSnd">"Som temporizador"</string>
|
||||
<string name="aTPrst">"Adicionado às predefinições"</string>
|
||||
<string name="fwr">"para qual receita?"</string>
|
||||
<string name="tmrPrsts">"Predefinições temporizadas"</string>
|
||||
<string name="delay">"Atraso"</string>
|
||||
<string name="stop">"Parada"</string>
|
||||
<string name="sec">"s"</string>
|
||||
<string name="prstBtn">"PERSPECTIVAS"</string>
|
||||
<string name="timer">"Temporizador de Culinária"</string>
|
||||
<string name="ntmr">"Novo timer"</string>
|
||||
<string name="strtBtn">"INICIAR"</string>
|
||||
<string name="tmr">"Temporizador %1$s"</string>
|
||||
<string name="dAgo">"%1$s dias atrás"</string>
|
||||
<string name="Filipino">"Filipina"</string>
|
||||
<string name="mAgo">"%1$s meses atrás"</string>
|
||||
<string name="Thai">"Tailandesa"</string>
|
||||
<string name="wAgo">"%1$s semanas atrás"</string>
|
||||
<string name="sysDefB">"Padrão do sistema + Preto"</string>
|
||||
<string name="yld">"Porção"</string>
|
||||
<string name="Jewish">"Judeu"</string>
|
||||
<string name="Japanese">"Japonês"</string>
|
||||
<string name="January">"Janeiro"</string>
|
||||
|
@ -70,7 +97,7 @@
|
|||
<string name="restDone">"Reposição feita"</string>
|
||||
<string name="restInfo">"A redefinição de uma lista eliminará as entradas criadas pelo usuário e restaurará as entradas padrão. As receitas existentes não serão afetadas."</string>
|
||||
<string name="restUL">"Reiniciar a lista de unidades"</string>
|
||||
<string name="restYUL">"Redefinir a lista de unidades de rendimento"</string>
|
||||
<string name="restYUL">"Redefinir a lista de unidades de porção"</string>
|
||||
<string name="rmCmb">"Combinação removida"</string>
|
||||
<string name="rmIng">"Ingrediente removido"</string>
|
||||
<string name="rmIns">"Instrução retirada"</string>
|
||||
|
@ -114,7 +141,7 @@
|
|||
<string name="_Oldest_first_Z6cq4h">"Os mais antigos"</string>
|
||||
<string name="OK">"OK"</string>
|
||||
<string name="October">"Outubro"</string>
|
||||
<string name="nwYiU">"Nova unidade de produção"</string>
|
||||
<string name="nwYiU">"Nova unidade de porção"</string>
|
||||
<string name="nwCat">"Nova categoria"</string>
|
||||
<string name="noRecsInL">"Nenhuma das receitas aqui corresponde à sua busca"</string>
|
||||
<string name="noAccSensor">"O sensor do acelerômetro está desativado ou não está funcionando"</string>
|
||||
|
@ -143,8 +170,8 @@
|
|||
<string name="WED">"VIA"</string>
|
||||
<string name="FRI">"SEX"</string>
|
||||
<string name="MON">"SEG"</string>
|
||||
<string name="yieldU">"Unidade de rendimento"</string>
|
||||
<string name="yieldQ">"Quantidade de rendimento"</string>
|
||||
<string name="yieldU">"Unidade de porção"</string>
|
||||
<string name="yieldQ">"Quantidade de porção"</string>
|
||||
<string name="Vegetarian">"Vegetariano"</string>
|
||||
<string name="Vegan">"Vegano"</string>
|
||||
<string name="unit">"Unidade"</string>
|
||||
|
@ -177,7 +204,7 @@
|
|||
<string name="Salads">"Saladas"</string>
|
||||
<string name="rst">"REINICIAR"</string>
|
||||
<string name="Roll">"Lista"</string>
|
||||
<string name="rmYUInfo">"Você está prestes a remover a unidade de rendimento"</string>
|
||||
<string name="rmYUInfo">"Você está prestes a remover a unidade de porção"</string>
|
||||
<string name="rmUInfo">"Você está prestes a remover a unidade"</string>
|
||||
<string name="rmCuiInfo">"Você está prestes a remover a cozinha"</string>
|
||||
<string name="rmCatInfo">"Você está prestes a remover a categoria"</string>
|
||||
|
@ -286,10 +313,6 @@
|
|||
<string name="aD">"Tudo feito!"</string>
|
||||
<string name="aBtn">"ADICIONAR"</string>
|
||||
<string name="About">"Sobre"</string>
|
||||
<string name="yld">"Yield"</string>
|
||||
<string name="wAgo">"%1$s weeks ago"</string>
|
||||
<string name="Thai">"Thai"</string>
|
||||
<string name="mAgo">"%1$s months ago"</string>
|
||||
<string name="Filipino">"Filipino"</string>
|
||||
<string name="dAgo">"%1$s days ago"</string>
|
||||
<string name="notifSetg">"Notification settings"</string>
|
||||
<string name="tmrRm">"Timer removed"</string>
|
||||
</resources>
|
||||
|
|
|
@ -1,5 +1,115 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="tmrClr">"Temporizador a zero"</string>
|
||||
<string name="prstBtn">"PRIMEIROS"</string>
|
||||
<string name="tmrPrsts">"Predefinições temporizadas"</string>
|
||||
<string name="fwr">"para que receita?"</string>
|
||||
<string name="aTPrst">"Adicionado às predefinições"</string>
|
||||
<string name="tmrSnd">"Som temporizador"</string>
|
||||
<string name="tmrvbrt">"Vibrador temporizador"</string>
|
||||
<string name="seconds">"segundos"</string>
|
||||
<string name="hours">"horas"</string>
|
||||
<string name="hour">"hora"</string>
|
||||
<string name="minutes">"minutos"</string>
|
||||
<string name="minute">"minuto"</string>
|
||||
<string name="sec">"s"</string>
|
||||
<string name="stop">"Parar"</string>
|
||||
<string name="delay">"Atraso"</string>
|
||||
<string name="dlyDur">"Duração do atraso"</string>
|
||||
<string name="timer">"Temporizador de cozedura"</string>
|
||||
<string name="ntmr">"Novo temporizador"</string>
|
||||
<string name="strtBtn">"INICIAR"</string>
|
||||
<string name="tmr">"Temporizador %1$s"</string>
|
||||
<string name="aBtn">"ADICIONAR"</string>
|
||||
<string name="aD">"Terminado!"</string>
|
||||
<string name="addCmbBtn">"ADICIONAR COMBINAÇÃO"</string>
|
||||
<string name="aFBu">"Adicione uma receita para fazer uma cópia de segurança"</string>
|
||||
<string name="aIngBtn">"ADICIONAR INGREDIENTE"</string>
|
||||
<string name="allCats">"Todas as categorias"</string>
|
||||
<string name="allCuis">"Todas as cozinhas"</string>
|
||||
<string name="allTs">"Todas as etiquetas"</string>
|
||||
<string name="aNBtn">"ADICIONAR NOVA"</string>
|
||||
<string name="aNoBtn">"ADICIONAR NOTA"</string>
|
||||
<string name="appCrd">"Partilhado via EnRecipes. Obtenha-o no F-Droid, IzzyOnDroid ou na Play Store."</string>
|
||||
<string name="appInfo">"EnRecipes é um livro de receitas digital de código aberto, amigo da privacidade, que lhe permite criar, gerir e partilhar as suas receitas"</string>
|
||||
<string name="apply">"APLICAR"</string>
|
||||
<string name="appRst">"É necessário reiniciar a aplicação"</string>
|
||||
<string name="April">"Abril"</string>
|
||||
<string name="aStpBtn">"ADICIONAR PASSO"</string>
|
||||
<string name="August">"Agosto"</string>
|
||||
<string name="cBtn">"CANCELAR"</string>
|
||||
<string name="conBtn">"CONTINUAR"</string>
|
||||
<string name="dBtn">"ELIMINAR"</string>
|
||||
<string name="disBtn">"DESCARTAR"</string>
|
||||
<string name="fsList">"As suas receitas favoritas são apresentadas aqui"</string>
|
||||
<string name="gh">"Ver no GitHub"</string>
|
||||
<string name="grid">"Grelha"</string>
|
||||
<string name="guide">"Guia do utilizador"</string>
|
||||
<string name="impBu">"Importar dados"</string>
|
||||
<string name="impFail">"A importação falhou"</string>
|
||||
<string name="impInfo">"Suporta cópias de segurança completas exportadas por esta aplicação"</string>
|
||||
<string name="impip">"Importação em curso"</string>
|
||||
<string name="impSuc">"Importado com sucesso"</string>
|
||||
<string name="ings">"Ingredientes"</string>
|
||||
<string name="inss">"Instruções"</string>
|
||||
<string name="intf">"Interface"</string>
|
||||
<string name="invFile">"Ficheiro inválido"</string>
|
||||
<string name="it">"Item"</string>
|
||||
<string name="January">"Janeiro"</string>
|
||||
<string name="joinTG">"Junte-se ao grupo no Telegram"</string>
|
||||
<string name="July">"Julho"</string>
|
||||
<string name="June">"Junho"</string>
|
||||
<string name="kEdit">"CONTINUAR A EDITAR"</string>
|
||||
<string name="lang">"Idioma"</string>
|
||||
<string name="listVM">"Modo de vista em lista"</string>
|
||||
<string name="ltAgo">"há muito tempo"</string>
|
||||
<string name="mAgo">"%1$s meses atrás"</string>
|
||||
<string name="March">"Março"</string>
|
||||
<string name="May">"Maio"</string>
|
||||
<string name="minimal">"Mínimo"</string>
|
||||
<string name="newCui">"Nova cozinha"</string>
|
||||
<string name="newRec">"Nova receita"</string>
|
||||
<string name="newUnit">"Nova unidade"</string>
|
||||
<string name="nLangInfo">"Reinicie o EnRecipes para usar o novo idioma"</string>
|
||||
<string name="nNBtn">"AGORA NÃO"</string>
|
||||
<string name="no">"Nota"</string>
|
||||
<string name="noFavs">"Ainda não tem favoritos"</string>
|
||||
<string name="noRecs">"Nenhuma receita corresponde à pesquisa"</string>
|
||||
<string name="pht">"Fotografia da receita"</string>
|
||||
<string name="plsAdd">"Use o botão mais para adicionar uma"</string>
|
||||
<string name="prepT">"Tempo de preparação"</string>
|
||||
<string name="priv">"Política de privacidade"</string>
|
||||
<string name="rBtn">"REMOVER"</string>
|
||||
<string name="restInfo">"A redefinição de uma lista eliminará as entradas criadas pelo utilizador e restaurará as entradas predefinidas. As receitas existentes não serão afetadas."</string>
|
||||
<string name="restUL">"Repor lista de unidades"</string>
|
||||
<string name="restYUL">"Repor lista de unidades de porções"</string>
|
||||
<string name="yld">"Porção"</string>
|
||||
<string name="rmCmb">"Combinação removida"</string>
|
||||
<string name="rmIng">"Ingrediente removido"</string>
|
||||
<string name="rmIns">"Instrução removida"</string>
|
||||
<string name="rmN">"Nota removida"</string>
|
||||
<string name="rp">"Remover fotografia"</string>
|
||||
<string name="rst">"REINICIAR"</string>
|
||||
<string name="selRec">"Selecione a receita"</string>
|
||||
<string name="September">"Setembro"</string>
|
||||
<string name="ser">"Pesquisar"</string>
|
||||
<string name="shr">"Partilhar"</string>
|
||||
<string name="simple">"Simples"</string>
|
||||
<string name="sltd">"selecionada"</string>
|
||||
<string name="srpu">"Partilhar fotografia da receita usando..."</string>
|
||||
<string name="srt">"Ordenar"</string>
|
||||
<string name="sru">"Partilhar receita usando..."</string>
|
||||
<string name="stars">"Classificação por estrelas"</string>
|
||||
<string name="stp">"Etapa"</string>
|
||||
<string name="trySer">"PROCURAR EM TODAS AS RECEITAS?"</string>
|
||||
<string name="sysDefB">"Padrão do sistema + Preto"</string>
|
||||
<string name="FRI">"SEX"</string>
|
||||
<string name="MON">"SEG"</string>
|
||||
<string name="SAT">"SÁB"</string>
|
||||
<string name="SUN">"DOM"</string>
|
||||
<string name="TUE">"TER"</string>
|
||||
<string name="WED">"QUA"</string>
|
||||
<string name="THU">"QUI"</string>
|
||||
<string name="rec">"Receita"</string>
|
||||
<string name="recE">"Já existem:"</string>
|
||||
<string name="recF">"receitas encontradas"</string>
|
||||
|
@ -9,20 +119,20 @@
|
|||
<string name="recRm">"Receita retirada"</string>
|
||||
<string name="recs">"receitas"</string>
|
||||
<string name="recTitle">"A minha receita saudável"</string>
|
||||
<string name="recU">"Actualizado:"</string>
|
||||
<string name="recU">"Atualizado:"</string>
|
||||
<string name="req">"Necessárias %1$s"</string>
|
||||
<string name="resNF">"Receita não encontrada"</string>
|
||||
<string name="rest">"Reiniciar"</string>
|
||||
<string name="restCatL">"Reiniciar lista de categorias"</string>
|
||||
<string name="restCuiL">"Repor a lista de cozinha"</string>
|
||||
<string name="restDone">"Reposição feita"</string>
|
||||
<string name="buto">"Replacement made"</string>
|
||||
<string name="yieldQ">"Quantidade de produção"</string>
|
||||
<string name="yieldU">"Unidade de rendimento"</string>
|
||||
<string name="buto">"Cópia de segurança guardada em %1$s"</string>
|
||||
<string name="yieldQ">"Quantidade da porção"</string>
|
||||
<string name="yieldU">"Unidade de porção"</string>
|
||||
<string name="Black">"Preto"</string>
|
||||
<string name="buEmp">"O arquivo de backup está vazio"</string>
|
||||
<string name="buFol">"Pasta de backup"</string>
|
||||
<string name="buInc">"Ficheiro de backup malformado ou corrupto"</string>
|
||||
<string name="buEmp">"O ficheiro da cópia de segurança está vazio"</string>
|
||||
<string name="buFol">"Pasta da cópia de segurança"</string>
|
||||
<string name="buInc">"Ficheiro da cópia de segurança está mal formado ou corrupto"</string>
|
||||
<string name="buInfo">"Gera um ficheiro ZIP contendo todos os seus dados que podem ser importados de volta"</string>
|
||||
<string name="buMod">"O ficheiro de cópia de segurança foi modificado noutro local"</string>
|
||||
<string name="cat">"Categoria"</string>
|
||||
|
@ -42,7 +152,7 @@
|
|||
<string name="editRec">"Editar receita"</string>
|
||||
<string name="expBu">"Exportar apoio total"</string>
|
||||
<string name="expip">"Exportação em curso"</string>
|
||||
<string name="expSuc">"Sucesso de exportação"</string>
|
||||
<string name="expSuc">"Exportado com sucesso"</string>
|
||||
<string name="February">"Fevereiro"</string>
|
||||
<string name="_Filtered_recipes_Z1alhhu">"Receitas filtradas"</string>
|
||||
<string name="fltr">"Filtro"</string>
|
||||
|
@ -50,13 +160,13 @@
|
|||
<string name="nos">"Notas"</string>
|
||||
<string name="November">"Novembro"</string>
|
||||
<string name="nwCat">"Nova categoria"</string>
|
||||
<string name="nwYiU">"Nova unidade de rendimento"</string>
|
||||
<string name="nwYiU">"Nova unidade de porção"</string>
|
||||
<string name="October">"Outubro"</string>
|
||||
<string name="opts">"Opções"</string>
|
||||
<string name="photogrid">"Grelha de fotos"</string>
|
||||
<string name="wAgo">"%1$s semanas atrás"</string>
|
||||
<string name="untRec">"Receita sem título"</string>
|
||||
<string name="unsaved">"Alterações não salvas"</string>
|
||||
<string name="unsaved">"Alterações não guardadas"</string>
|
||||
<string name="tsInfo">"separar com espaços"</string>
|
||||
<string name="ts">"Etiquetas"</string>
|
||||
<string name="trnsl">"Traduzir"</string>
|
||||
|
@ -67,11 +177,11 @@
|
|||
<string name="swm">"Começa na segunda-feira"</string>
|
||||
<string name="sVwInfo">"Ajuda-o a escolher o que deve cozinhar quando não consegue decidir"</string>
|
||||
<string name="sVw">"Sacudir para ver a receita aleatória"</string>
|
||||
<string name="rmYUInfo">"Está prestes a remover %1$s da lista de unidades de rendimento"</string>
|
||||
<string name="rmYUInfo">"Está prestes a remover %1$s da lista de unidades de porções"</string>
|
||||
<string name="rmUInfo">"Está prestes a remover %1$s da lista de unidades"</string>
|
||||
<string name="rmCuiInfo">"Está prestes a retirar %1$s da lista de cozinha"</string>
|
||||
<string name="rmCatInfo">"Está prestes a remover %1$s da lista de categorias"</string>
|
||||
<string name="noAccSensor">"O sensor do acelerómetro ou está desactivado ou não está a funcionar"</string>
|
||||
<string name="noAccSensor">"O sensor do acelerómetro ou está desativado ou não está a funcionar"</string>
|
||||
<string name="yesterday">"ontem"</string>
|
||||
<string name="Vietnamese">"Vietnamita"</string>
|
||||
<string name="Vegetarian">"Vegetariano"</string>
|
||||
|
@ -81,7 +191,7 @@
|
|||
<string name="Undefined">"Indefinido"</string>
|
||||
<string name="Turkish">"Turca"</string>
|
||||
<string name="tsp">"colher de chá"</string>
|
||||
<string name="trylater">"Tente Mais Tarde"</string>
|
||||
<string name="trylater">"Tentar mais tarde"</string>
|
||||
<string name="today">"hoje"</string>
|
||||
<string name="Theme">"Tema"</string>
|
||||
<string name="Thai">"Tailandesa"</string>
|
||||
|
@ -91,7 +201,7 @@
|
|||
<string name="Swedish">"Sueca"</string>
|
||||
<string name="strAdd">"Comece a adicionar as suas receitas!"</string>
|
||||
<string name="stick">"galho"</string>
|
||||
<string name="_Sri_Lankan_Z7GfBa">"Cingalês"</string>
|
||||
<string name="_Sri_Lankan_Z7GfBa">"Cingalesa"</string>
|
||||
<string name="Spanish">"Espanhola"</string>
|
||||
<string name="Soups">"Sopas"</string>
|
||||
<string name="snacks">"Lanches"</string>
|
||||
|
@ -99,10 +209,10 @@
|
|||
<string name="_Slowest_first_hHjY6">"Mais lentas primeiro"</string>
|
||||
<string name="_Side_dishes_Z1Et4Vg">"Acompanhamentos"</string>
|
||||
<string name="Settings">"Definições"</string>
|
||||
<string name="SET">"SET"</string>
|
||||
<string name="SET">"DEFINIR"</string>
|
||||
<string name="Serving">"Porção"</string>
|
||||
<string name="Seafood">"Marisco"</string>
|
||||
<string name="Scottish">"Escocêsa"</string>
|
||||
<string name="Scottish">"Escocesa"</string>
|
||||
<string name="Sauces">"Molhos"</string>
|
||||
<string name="Salads">"Saladas"</string>
|
||||
<string name="Russian">"Russa"</string>
|
||||
|
@ -115,7 +225,7 @@
|
|||
<string name="Pound">"Pound"</string>
|
||||
<string name="Poultry">"Aves"</string>
|
||||
<string name="Portuguese">"Portuguesa"</string>
|
||||
<string name="planner">"Plano Refeições"</string>
|
||||
<string name="planner">"Plano de refeições"</string>
|
||||
<string name="pinch">"pitada"</string>
|
||||
<string name="Piece">"Peça"</string>
|
||||
<string name="piece">"peça"</string>
|
||||
|
@ -151,15 +261,15 @@
|
|||
<string name="kg">"kg"</string>
|
||||
<string name="Kenyan">"Queniana"</string>
|
||||
<string name="Jewish">"Judaica"</string>
|
||||
<string name="Japanese">"Japonêsa"</string>
|
||||
<string name="Japanese">"Japonesa"</string>
|
||||
<string name="Jamaican">"Jamaicana"</string>
|
||||
<string name="Italian">"Italiana"</string>
|
||||
<string name="Irish">"Irlândesa"</string>
|
||||
<string name="Irish">"Irlandesa"</string>
|
||||
<string name="Indian">"Indiana"</string>
|
||||
<string name="in">"in"</string>
|
||||
<string name="hr">"hr"</string>
|
||||
<string name="Healthy">"Saudável"</string>
|
||||
<string name="grocery">"Lista Supermercado"</string>
|
||||
<string name="grocery">"Lista de compras"</string>
|
||||
<string name="Greek">"Grega"</string>
|
||||
<string name="Gram">"Grama"</string>
|
||||
<string name="German">"Alemã"</string>
|
||||
|
@ -167,12 +277,12 @@
|
|||
<string name="gal">"gal"</string>
|
||||
<string name="g">"g"</string>
|
||||
<string name="French">"Francesa"</string>
|
||||
<string name="_Fluid_Ounce_bd10L">"Onça Fluida"</string>
|
||||
<string name="_Fluid_Ounce_bd10L">"Onça líquida"</string>
|
||||
<string name="_fl_oz_72kqu">"fl oz"</string>
|
||||
<string name="Filipino">"Filipina"</string>
|
||||
<string name="favourites">"Favoritos"</string>
|
||||
<string name="EnRecipes">"EnRecipes"</string>
|
||||
<string name="English">"Inglêsa"</string>
|
||||
<string name="English">"Inglesa"</string>
|
||||
<string name="Egyptian">"Egípcia"</string>
|
||||
<string name="Easy">"Fácil"</string>
|
||||
<string name="dsp">"colher de sobremesa"</string>
|
||||
|
@ -182,7 +292,7 @@
|
|||
<string name="_Difficulty_level_cSL5d">"Nível de dificuldade"</string>
|
||||
<string name="Desserts">"Sobremesas"</string>
|
||||
<string name="Dark">"Escuro"</string>
|
||||
<string name="Danish">"Dinamarquêsa"</string>
|
||||
<string name="Danish">"Dinamarquesa"</string>
|
||||
<string name="Cup">"Copo"</string>
|
||||
<string name="cup">"copo"</string>
|
||||
<string name="Created">"Criado"</string>
|
||||
|
@ -202,94 +312,7 @@
|
|||
<string name="title_activity_kimera">"EnRecipes"</string>
|
||||
<string name="American">"Americana"</string>
|
||||
<string name="About">"Sobre"</string>
|
||||
<string name="aap">""</string>
|
||||
<string name="yld">"Yield"</string>
|
||||
<string name="WED">"WED"</string>
|
||||
<string name="TUE">"TUE"</string>
|
||||
<string name="trySer">"SEARCH IN ALL THE RECIPES?"</string>
|
||||
<string name="THU">"THU"</string>
|
||||
<string name="SUN">"SUN"</string>
|
||||
<string name="stp">"Step"</string>
|
||||
<string name="stars">"Star rating"</string>
|
||||
<string name="sru">"Share recipe using..."</string>
|
||||
<string name="srt">"Sort"</string>
|
||||
<string name="srpu">"Share recipe photo using..."</string>
|
||||
<string name="sltd">"selected"</string>
|
||||
<string name="simple">"Simple"</string>
|
||||
<string name="shr">"Share"</string>
|
||||
<string name="ser">"Search"</string>
|
||||
<string name="September">"September"</string>
|
||||
<string name="selRec">"Select recipe"</string>
|
||||
<string name="SAT">"SAT"</string>
|
||||
<string name="rst">"RESTART"</string>
|
||||
<string name="rp">"Remove photo"</string>
|
||||
<string name="rmN">"Note removed"</string>
|
||||
<string name="rmIns">"Instruction removed"</string>
|
||||
<string name="rmIng">"Ingredient removed"</string>
|
||||
<string name="rmCmb">"Combination removed"</string>
|
||||
<string name="restYUL">"Reset yield unit list"</string>
|
||||
<string name="restUL">"Reset unit list"</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="rBtn">"REMOVE"</string>
|
||||
<string name="priv">"Privacy policy"</string>
|
||||
<string name="prepT">"Preparation time"</string>
|
||||
<string name="plsAdd">"Use the plus button to add one"</string>
|
||||
<string name="pht">"Recipe photo"</string>
|
||||
<string name="noRecs">"No recipes match your search"</string>
|
||||
<string name="noFavs">"No favourites yet"</string>
|
||||
<string name="no">"Note"</string>
|
||||
<string name="nNBtn">"NOT NOW"</string>
|
||||
<string name="nLangInfo">"Restart EnRecipes to use the new language"</string>
|
||||
<string name="newUnit">"New unit"</string>
|
||||
<string name="newRec">"New recipe"</string>
|
||||
<string name="newCui">"New cuisine"</string>
|
||||
<string name="MON">"MON"</string>
|
||||
<string name="minimal">"Minimal"</string>
|
||||
<string name="May">"May"</string>
|
||||
<string name="March">"March"</string>
|
||||
<string name="mAgo">"%1$s months ago"</string>
|
||||
<string name="ltAgo">"a long time ago"</string>
|
||||
<string name="listVM">"List view mode"</string>
|
||||
<string name="lang">"Language"</string>
|
||||
<string name="kEdit">"KEEP EDITING"</string>
|
||||
<string name="June">"June"</string>
|
||||
<string name="July">"July"</string>
|
||||
<string name="joinTG">"Join the Telegram group"</string>
|
||||
<string name="January">"January"</string>
|
||||
<string name="it">"Item"</string>
|
||||
<string name="invFile">"Invalid file"</string>
|
||||
<string name="intf">"Interface"</string>
|
||||
<string name="inss">"Instructions"</string>
|
||||
<string name="ings">"Ingredients"</string>
|
||||
<string name="impSuc">"Import success"</string>
|
||||
<string name="impip">"Import in progress"</string>
|
||||
<string name="impInfo">"Supports full backups exported by this app"</string>
|
||||
<string name="impFail">"Import failed"</string>
|
||||
<string name="impBu">"Import data"</string>
|
||||
<string name="guide">"User guide"</string>
|
||||
<string name="grid">"Grid"</string>
|
||||
<string name="gh">"View on GitHub"</string>
|
||||
<string name="fsList">"Your favourite recipes are listed here"</string>
|
||||
<string name="FRI">"FRI"</string>
|
||||
<string name="disBtn">"DISCARD"</string>
|
||||
<string name="dBtn">"DELETE"</string>
|
||||
<string name="conBtn">"CONTINUE"</string>
|
||||
<string name="cBtn">"CANCEL"</string>
|
||||
<string name="August">"August"</string>
|
||||
<string name="aStpBtn">"ADD STEP"</string>
|
||||
<string name="April">"April"</string>
|
||||
<string name="appRst">"App restart required"</string>
|
||||
<string name="apply">"APPLY"</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="appCrd">"Shared via EnRecipes. Get it on F-Droid, IzzyOnDroid or the Play Store."</string>
|
||||
<string name="aNoBtn">"ADD NOTE"</string>
|
||||
<string name="aNBtn">"ADD NEW"</string>
|
||||
<string name="allTs">"All Tags"</string>
|
||||
<string name="allCuis">"All Cuisines"</string>
|
||||
<string name="allCats">"All Categories"</string>
|
||||
<string name="aIngBtn">"ADD INGREDIENT"</string>
|
||||
<string name="aFBu">"Add a recipe to perform a backup"</string>
|
||||
<string name="addCmbBtn">"ADD COMBINATION"</string>
|
||||
<string name="aD">"All done!"</string>
|
||||
<string name="aBtn">"ADD"</string>
|
||||
<string name="aap">"Anexar uma fotografia"</string>
|
||||
<string name="notifSetg">"Notification settings"</string>
|
||||
<string name="tmrRm">"Timer removed"</string>
|
||||
</resources>
|
||||
|
|
|
@ -1,5 +1,26 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="tmrClr">"Таймер очищен"</string>
|
||||
<string name="seconds">"секунды"</string>
|
||||
<string name="hours">"часы"</string>
|
||||
<string name="hour">"час"</string>
|
||||
<string name="minutes">"минут"</string>
|
||||
<string name="minute">"минута"</string>
|
||||
<string name="dlyDur">"Длительность задержки"</string>
|
||||
<string name="tmrvbrt">"Таймер вибрации"</string>
|
||||
<string name="tmrSnd">"Звук таймера"</string>
|
||||
<string name="aTPrst">"Добавлено в предустановки"</string>
|
||||
<string name="fwr">"для какого рецепта?"</string>
|
||||
<string name="tmrPrsts">"Предустановки таймера"</string>
|
||||
<string name="prstBtn">"ПРЕЗЕТЫ"</string>
|
||||
<string name="delay">"Задержка"</string>
|
||||
<string name="stop">"Стоп"</string>
|
||||
<string name="sec">"вто"</string>
|
||||
<string name="timer">"Таймер готовки"</string>
|
||||
<string name="ntmr">"Новый таймер"</string>
|
||||
<string name="tmr">"Таймер %1$s"</string>
|
||||
<string name="strtBtn">"СТАРТ"</string>
|
||||
<string name="sysDefB">"По умолчанию + Чернить"</string>
|
||||
<string name="buto">"Резервировано до %1$s"</string>
|
||||
<string name="yld">"Урожай"</string>
|
||||
<string name="yieldU">"Подавать в"</string>
|
||||
|
@ -292,4 +313,6 @@
|
|||
<string name="aBtn">"ДОБАВИТЬ"</string>
|
||||
<string name="About">"О приложении"</string>
|
||||
<string name="aap">"Прикрепить фото"</string>
|
||||
<string name="notifSetg">"Notification settings"</string>
|
||||
<string name="tmrRm">"Timer removed"</string>
|
||||
</resources>
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="sysDefB">"அமைப்பு இயல்புநிலை + கருப்பு"</string>
|
||||
<string name="buto">"%1$s இல் காப்புப் பிரதி எடுக்கப்பட்டது"</string>
|
||||
<string name="yld">"மகசூல்"</string>
|
||||
<string name="yieldU">"மகசூல் அலகு"</string>
|
||||
|
@ -292,4 +293,26 @@
|
|||
<string name="aBtn">"சேர்"</string>
|
||||
<string name="About">"பற்றி"</string>
|
||||
<string name="aap">"புகைப்படத்தை இணைக்கவும்"</string>
|
||||
<string name="notifSetg">"Notification settings"</string>
|
||||
<string name="tmrRm">"Timer removed"</string>
|
||||
<string name="seconds">"seconds"</string>
|
||||
<string name="hours">"hours"</string>
|
||||
<string name="hour">"hour"</string>
|
||||
<string name="minutes">"minutes"</string>
|
||||
<string name="minute">"minute"</string>
|
||||
<string name="dlyDur">"Delay duration"</string>
|
||||
<string name="tmrvbrt">"Timer vibrate"</string>
|
||||
<string name="tmrSnd">"Timer sound"</string>
|
||||
<string name="aTPrst">"Added to presets"</string>
|
||||
<string name="fwr">"for which recipe?"</string>
|
||||
<string name="tmrPrsts">"Timer presets"</string>
|
||||
<string name="prstBtn">"PRESETS"</string>
|
||||
<string name="tmr">"Timer %1$s"</string>
|
||||
<string name="delay">"Delay"</string>
|
||||
<string name="stop">"Stop"</string>
|
||||
<string name="strtBtn">"START"</string>
|
||||
<string name="ntmr">"New timer"</string>
|
||||
<string name="timer">"Cooking Timer"</string>
|
||||
<string name="sec">"sec"</string>
|
||||
<string name="tmrClr">"tmrClr"</string>
|
||||
</resources>
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="sysDefB">"సిస్టమ్ డిఫాల్ట్ + నలుపు"</string>
|
||||
<string name="buto">"%1$s కు బ్యాకప్ చేయబడింది"</string>
|
||||
<string name="yld">"దిగుబడి"</string>
|
||||
<string name="yieldU">"దిగుబడి యూనిట్"</string>
|
||||
|
@ -292,4 +293,26 @@
|
|||
<string name="aBtn">"చేర్చు"</string>
|
||||
<string name="About">"గురించి"</string>
|
||||
<string name="aap">"ఫోటోను అటాచ్ చేయండి"</string>
|
||||
<string name="notifSetg">"Notification settings"</string>
|
||||
<string name="tmrRm">"Timer removed"</string>
|
||||
<string name="seconds">"seconds"</string>
|
||||
<string name="hours">"hours"</string>
|
||||
<string name="hour">"hour"</string>
|
||||
<string name="minutes">"minutes"</string>
|
||||
<string name="minute">"minute"</string>
|
||||
<string name="dlyDur">"Delay duration"</string>
|
||||
<string name="tmrvbrt">"Timer vibrate"</string>
|
||||
<string name="tmrSnd">"Timer sound"</string>
|
||||
<string name="aTPrst">"Added to presets"</string>
|
||||
<string name="fwr">"for which recipe?"</string>
|
||||
<string name="tmrPrsts">"Timer presets"</string>
|
||||
<string name="prstBtn">"PRESETS"</string>
|
||||
<string name="tmr">"Timer %1$s"</string>
|
||||
<string name="delay">"Delay"</string>
|
||||
<string name="stop">"Stop"</string>
|
||||
<string name="strtBtn">"START"</string>
|
||||
<string name="ntmr">"New timer"</string>
|
||||
<string name="timer">"Cooking Timer"</string>
|
||||
<string name="sec">"sec"</string>
|
||||
<string name="tmrClr">"tmrClr"</string>
|
||||
</resources>
|
||||
|
|
|
@ -9,6 +9,9 @@
|
|||
<color name="ns_accent">
|
||||
#ffffff
|
||||
</color>
|
||||
<color name="orange">
|
||||
#ff5200
|
||||
</color>
|
||||
<color name="white">
|
||||
#ffffff
|
||||
</color>
|
||||
|
|
|
@ -1,5 +1,26 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="notifSetg">"Notification settings"</string>
|
||||
<string name="tmrRm">"Timer removed"</string>
|
||||
<string name="seconds">"seconds"</string>
|
||||
<string name="hours">"hours"</string>
|
||||
<string name="hour">"hour"</string>
|
||||
<string name="minutes">"minutes"</string>
|
||||
<string name="minute">"minute"</string>
|
||||
<string name="dlyDur">"Delay duration"</string>
|
||||
<string name="tmrvbrt">"Timer vibrate"</string>
|
||||
<string name="tmrSnd">"Timer sound"</string>
|
||||
<string name="aTPrst">"Added to presets"</string>
|
||||
<string name="fwr">"for which recipe?"</string>
|
||||
<string name="tmrPrsts">"Timer presets"</string>
|
||||
<string name="prstBtn">"PRESETS"</string>
|
||||
<string name="tmr">"Timer %1$s"</string>
|
||||
<string name="delay">"Delay"</string>
|
||||
<string name="stop">"Stop"</string>
|
||||
<string name="strtBtn">"START"</string>
|
||||
<string name="ntmr">"New timer"</string>
|
||||
<string name="timer">"Cooking Timer"</string>
|
||||
<string name="sysDefB">"System default + Black"</string>
|
||||
<string name="buto">"Backed up to %1$s"</string>
|
||||
<string name="yld">"Yield"</string>
|
||||
<string name="yieldU">"Yield unit"</string>
|
||||
|
@ -145,6 +166,7 @@
|
|||
<string name="Moderate">"Moderate"</string>
|
||||
<string name="ml">"ml"</string>
|
||||
<string name="minimal">"Minimal"</string>
|
||||
<string name="sec">"sec"</string>
|
||||
<string name="min">"min"</string>
|
||||
<string name="Millilitre">"Millilitre"</string>
|
||||
<string name="mg">"mg"</string>
|
||||
|
@ -292,4 +314,5 @@
|
|||
<string name="aBtn">"ADD"</string>
|
||||
<string name="About">"About"</string>
|
||||
<string name="aap">"Attach a photo"</string>
|
||||
<string name="tmrClr">"tmrClr"</string>
|
||||
</resources>
|
||||
|
|
|
@ -1,14 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" >
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
|
||||
<style name="LaunchScreenThemeBase" parent="Theme.AppCompat.NoActionBar">
|
||||
<item name="colorPrimary">
|
||||
@color/light
|
||||
</item>
|
||||
<item name="colorPrimaryDark">
|
||||
@color/light
|
||||
</item>
|
||||
<item name="colorAccent">
|
||||
@color/light
|
||||
@color/orange
|
||||
</item>
|
||||
<item name="android:windowBackground">
|
||||
@drawable/splash_screen
|
||||
|
@ -16,6 +10,9 @@
|
|||
<item name="android:windowLightStatusBar">
|
||||
true
|
||||
</item>
|
||||
<item name="android:statusBarColor">
|
||||
@color/light
|
||||
</item>
|
||||
<item name="android:windowLightNavigationBar" tools:targetApi="27">
|
||||
true
|
||||
</item>
|
||||
|
@ -26,30 +23,38 @@
|
|||
<style name="LaunchScreenTheme" parent="LaunchScreenThemeBase">
|
||||
</style>
|
||||
<style name="AppThemeBase" parent="Theme.AppCompat.Light.NoActionBar">
|
||||
<item name="colorPrimary">
|
||||
@color/light
|
||||
</item>
|
||||
<item name="colorPrimaryDark">
|
||||
@color/light
|
||||
</item>
|
||||
<item name="colorAccent">
|
||||
@color/light
|
||||
@color/orange
|
||||
</item>
|
||||
<item name="colorControlNormal">
|
||||
#00000000
|
||||
</item>
|
||||
</style>
|
||||
<style name="AppTheme" parent="AppThemeBase">
|
||||
<item name="android:listViewStyle">@style/ListViewTheme</item>
|
||||
<item name="android:scrollViewStyle">@style/ScrollViewTheme</item>
|
||||
<item name="android:listViewStyle">
|
||||
@style/ListViewTheme
|
||||
</item>
|
||||
<item name="android:scrollViewStyle">
|
||||
@style/ScrollViewTheme
|
||||
</item>
|
||||
</style>
|
||||
<style name="ListViewTheme" parent="android:Widget.ListView">
|
||||
<item name="android:overScrollMode">never</item>
|
||||
<item name="android:divider">#00000000</item>
|
||||
<item name="android:dividerHeight">0dp</item>
|
||||
<item name="android:listSelector">#00000000</item>
|
||||
<item name="android:overScrollMode">
|
||||
never
|
||||
</item>
|
||||
<item name="android:divider">
|
||||
#00000000
|
||||
</item>
|
||||
<item name="android:dividerHeight">
|
||||
0dp
|
||||
</item>
|
||||
<item name="android:listSelector">
|
||||
#00000000
|
||||
</item>
|
||||
</style>
|
||||
<style name="ScrollViewTheme" parent="android:Widget.ScrollView">
|
||||
<item name="android:overScrollMode">never</item>
|
||||
<item name="android:overScrollMode">
|
||||
never
|
||||
</item>
|
||||
</style>
|
||||
</resources>
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
declare const android: any
|
||||
|
||||
export const lvMixin = {
|
||||
methods: {
|
||||
transparentPage({ object }) {
|
|
@ -1,20 +1,30 @@
|
|||
import { Application, AndroidApplication, Utils } from '@nativescript/core'
|
||||
import {
|
||||
Application,
|
||||
AndroidApplication,
|
||||
Utils,
|
||||
Device,
|
||||
Color,
|
||||
path,
|
||||
knownFolders,
|
||||
TimerInfo,
|
||||
} from '@nativescript/core'
|
||||
let timerOne
|
||||
declare const global, android, androidx, com, java, Array: any
|
||||
|
||||
export const restartApp = () => {
|
||||
const ctx = Utils.ad.getApplicationContext()
|
||||
let mStartActivity = new android.content.Intent(
|
||||
Application.android.context,
|
||||
ctx,
|
||||
Application.android.startActivity.getClass()
|
||||
)
|
||||
let mPendingIntentId = Math.random() * 100000
|
||||
let mPendingIntent = android.app.PendingIntent.getActivity(
|
||||
Application.android.context,
|
||||
ctx,
|
||||
mPendingIntentId,
|
||||
mStartActivity,
|
||||
android.app.PendingIntent.FLAG_CANCEL_CURRENT
|
||||
)
|
||||
let mgr = Application.android.context.getSystemService(
|
||||
android.content.Context.ALARM_SERVICE
|
||||
)
|
||||
let mgr = ctx.getSystemService(android.content.Context.ALARM_SERVICE)
|
||||
mgr.set(
|
||||
android.app.AlarmManager.RTC,
|
||||
java.lang.System.currentTimeMillis() + 100,
|
||||
|
@ -86,11 +96,12 @@ export const getRecipePhoto = () => {
|
|||
android.content.Intent.ACTION_GET_CONTENT
|
||||
)
|
||||
intent.setType('image/*')
|
||||
return callIntent(ctx, intent, 'Select photo', DIR_CODE).then((res) => {
|
||||
if (res.resultCode === android.app.Activity.RESULT_OK)
|
||||
if (res.intent != null && res.intent.getData())
|
||||
return res.intent.getData()
|
||||
})
|
||||
return callIntent(ctx, intent, 'Select photo', DIR_CODE).then(
|
||||
({ resultCode, intent }: any) => {
|
||||
if (resultCode === android.app.Activity.RESULT_OK)
|
||||
if (intent != null && intent.getData()) return intent.getData()
|
||||
}
|
||||
)
|
||||
}
|
||||
export const copyPhotoToCache = (uri, filepath) => {
|
||||
const ContentResolver = Application.android.nativeApp.getContentResolver()
|
||||
|
@ -112,6 +123,26 @@ export const copyPhotoToCache = (uri, filepath) => {
|
|||
})
|
||||
}
|
||||
|
||||
// COPY DB FILE
|
||||
export const copyDBToExport = () => {
|
||||
const src = path.join(knownFolders.documents().path, 'EnRecipes.db')
|
||||
const dst = path.join(
|
||||
knownFolders.documents().getFolder('EnRecipes').path,
|
||||
'EnRecipes.db'
|
||||
)
|
||||
const input = new java.io.FileInputStream(src)
|
||||
try {
|
||||
const output = new java.io.FileOutputStream(dst)
|
||||
let len: number
|
||||
let buffer = Array.create('byte', 1024)
|
||||
while ((len = input.read(buffer)) > 0) output.write(buffer, 0, len)
|
||||
} catch (error) {
|
||||
console.log(error)
|
||||
} finally {
|
||||
input.close()
|
||||
}
|
||||
}
|
||||
|
||||
// BACKUP FOLDER PICKER
|
||||
export const getBackupFolder = () => {
|
||||
const ctx =
|
||||
|
@ -120,11 +151,12 @@ export const getBackupFolder = () => {
|
|||
const intent = new android.content.Intent(
|
||||
android.content.Intent.ACTION_OPEN_DOCUMENT_TREE
|
||||
)
|
||||
return callIntent(ctx, intent, 'Select folder', DIR_CODE).then((res) => {
|
||||
if (res.resultCode === android.app.Activity.RESULT_OK)
|
||||
if (res.intent != null && res.intent.getData())
|
||||
return res.intent.getData()
|
||||
})
|
||||
return callIntent(ctx, intent, 'Select folder', DIR_CODE).then(
|
||||
({ resultCode, intent }: any) => {
|
||||
if (resultCode === android.app.Activity.RESULT_OK)
|
||||
if (intent != null && intent.getData()) return intent.getData()
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
// BACKUP FILE PICKER
|
||||
|
@ -138,10 +170,9 @@ export const getBackupFile = () => {
|
|||
intent.addCategory(android.content.Intent.CATEGORY_OPENABLE)
|
||||
intent.setType('application/zip')
|
||||
return callIntent(ctx, intent, 'Select file to import', DIR_CODE).then(
|
||||
(res) => {
|
||||
if (res.resultCode === android.app.Activity.RESULT_OK) {
|
||||
if (res.intent != null && res.intent.getData())
|
||||
return res.intent.getData()
|
||||
({ resultCode, intent }: any) => {
|
||||
if (resultCode === android.app.Activity.RESULT_OK) {
|
||||
if (intent != null && intent.getData()) return intent.getData()
|
||||
}
|
||||
}
|
||||
)
|
||||
|
@ -149,7 +180,7 @@ export const getBackupFile = () => {
|
|||
|
||||
// ZIP OPERATIONS
|
||||
export class Zip {
|
||||
static getSubFiles(src, isRootFolder) {
|
||||
static getSubFiles(src: string, isRootFolder?: boolean) {
|
||||
const fileList = new java.util.ArrayList()
|
||||
const sourceFile = new java.io.File(src)
|
||||
let tempList = sourceFile.listFiles()
|
||||
|
@ -272,3 +303,189 @@ export const shareImage = (image, subject) => {
|
|||
intent.putExtra(android.content.Intent.EXTRA_STREAM, shareUri)
|
||||
share(intent, subject)
|
||||
}
|
||||
|
||||
// TIMER NOTIFICATION
|
||||
export class TimerNotif {
|
||||
static getIcon(ctx, icon) {
|
||||
const packageName = ctx.getApplicationInfo().packageName
|
||||
let resources = ctx.getResources()
|
||||
return (
|
||||
resources.getIdentifier(icon, 'drawable', packageName) ||
|
||||
ctx.getApplicationInfo().icon
|
||||
)
|
||||
}
|
||||
static clear(nID) {
|
||||
let ctx = Utils.ad.getApplicationContext()
|
||||
const NotifySrv = ctx.getSystemService(
|
||||
android.content.Context.NOTIFICATION_SERVICE
|
||||
)
|
||||
// nID ? NotifySrv.cancel(nID) : NotifySrv.cancelAll()
|
||||
NotifySrv.cancel(nID)
|
||||
}
|
||||
|
||||
static getNotification(
|
||||
{
|
||||
actions,
|
||||
bID,
|
||||
cID,
|
||||
cName,
|
||||
description,
|
||||
nID,
|
||||
priority,
|
||||
sound,
|
||||
title,
|
||||
vibrate,
|
||||
}: {
|
||||
actions?: boolean
|
||||
bID: string
|
||||
cID: string
|
||||
cName: string
|
||||
description: string
|
||||
nID: number
|
||||
priority: number
|
||||
sound: string
|
||||
title: string
|
||||
vibrate?: number
|
||||
},
|
||||
ctx
|
||||
) {
|
||||
let sdkv: number = parseInt(Device.sdkVersion)
|
||||
let soundUri: any
|
||||
if (sound) soundUri = new android.net.Uri.parse(sound)
|
||||
const NotifyMgr = android.app.NotificationManager
|
||||
const NotifySrv = ctx.getSystemService(
|
||||
android.content.Context.NOTIFICATION_SERVICE
|
||||
)
|
||||
const NotificationCompat = androidx.core.app.NotificationCompat
|
||||
const AudioManager = android.media.AudioManager
|
||||
if (sdkv >= 26) {
|
||||
const importance =
|
||||
priority > 0 ? NotifyMgr.IMPORTANCE_HIGH : NotifyMgr.IMPORTANCE_MIN
|
||||
console.log(priority, importance)
|
||||
const AudioAttributes = android.media.AudioAttributes
|
||||
const audioAttributes = new AudioAttributes.Builder()
|
||||
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
|
||||
.setUsage(AudioAttributes.USAGE_ALARM)
|
||||
.build()
|
||||
const Channel = new android.app.NotificationChannel(
|
||||
cID,
|
||||
cName,
|
||||
importance
|
||||
)
|
||||
if (description) Channel.setDescription(description)
|
||||
Channel.enableVibration(vibrate)
|
||||
Channel.enableLights(false)
|
||||
if (sound) Channel.setSound(soundUri, audioAttributes)
|
||||
else Channel.setSound(null, null)
|
||||
Channel.setShowBadge(true)
|
||||
Channel.setLockscreenVisibility(NotificationCompat.VISIBILITY_PUBLIC)
|
||||
NotifySrv.createNotificationChannel(Channel)
|
||||
}
|
||||
|
||||
const Intent = android.content.Intent
|
||||
const PendingIntent = android.app.PendingIntent
|
||||
|
||||
const mainInt = new Intent(ctx, com.tns.NativeScriptActivity.class)
|
||||
mainInt.putExtra('action', 'open_timer')
|
||||
const mainPInt = PendingIntent.getActivity(
|
||||
ctx,
|
||||
1,
|
||||
mainInt,
|
||||
PendingIntent.FLAG_UPDATE_CURRENT
|
||||
)
|
||||
|
||||
// Action intent
|
||||
let actionInt1, actionInt2, actionPInt1, actionPInt2
|
||||
if (actions) {
|
||||
actionInt1 = new Intent(bID)
|
||||
actionInt1.putExtra('action', 'stop')
|
||||
actionPInt1 = PendingIntent.getBroadcast(
|
||||
ctx,
|
||||
2,
|
||||
actionInt1,
|
||||
PendingIntent.FLAG_UPDATE_CURRENT
|
||||
)
|
||||
actionInt2 = new Intent(bID)
|
||||
actionInt2.putExtra('action', 'delay')
|
||||
actionPInt2 = PendingIntent.getBroadcast(
|
||||
ctx,
|
||||
3,
|
||||
actionInt2,
|
||||
PendingIntent.FLAG_UPDATE_CURRENT
|
||||
)
|
||||
}
|
||||
|
||||
// CREATE NOTIFICATION
|
||||
|
||||
let icon = TimerNotif.getIcon(ctx, 'ic_stat_notify_silhouette')
|
||||
let builder = new NotificationCompat.Builder(ctx, cID)
|
||||
.setColor(new Color('#ff5200').android)
|
||||
.setContentIntent(mainPInt)
|
||||
.setContentTitle(title)
|
||||
.setOngoing(true)
|
||||
.setPriority(priority)
|
||||
.setShowWhen(actions)
|
||||
.setSmallIcon(icon)
|
||||
.setTicker(title)
|
||||
.setAutoCancel(false)
|
||||
.setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
|
||||
if (sound) builder.setSound(soundUri, AudioManager.STREAM_ALARM)
|
||||
else builder.setSound(null)
|
||||
if (description) builder.setContentText(description)
|
||||
if (vibrate) builder.setVibrate([500, 1000])
|
||||
if (actions) {
|
||||
builder.setDeleteIntent(actionPInt2)
|
||||
builder.setFullScreenIntent(mainPInt, true)
|
||||
builder.addAction(null, 'Stop', actionPInt1)
|
||||
builder.addAction(null, 'Delay', actionPInt2)
|
||||
}
|
||||
let notification = builder.build()
|
||||
notification.flags =
|
||||
NotificationCompat.FLAG_INSISTENT | NotificationCompat.FLAG_ONGOING_EVENT
|
||||
|
||||
return notification
|
||||
}
|
||||
static show(data) {
|
||||
const ctx = Utils.ad.getApplicationContext()
|
||||
const NotifySrv = ctx.getSystemService(
|
||||
android.content.Context.NOTIFICATION_SERVICE
|
||||
)
|
||||
NotifySrv.notify(data.nID, TimerNotif.getNotification(data, ctx))
|
||||
}
|
||||
}
|
||||
|
||||
// GET RINGTONES LIST
|
||||
export const getTones = () => {
|
||||
const RingtoneManager = android.media.RingtoneManager
|
||||
let ctx = Utils.ad.getApplicationContext()
|
||||
const ringtonesMgr = new RingtoneManager(ctx)
|
||||
ringtonesMgr.setType(RingtoneManager.TYPE_ALARM)
|
||||
const cursor = ringtonesMgr.getCursor()
|
||||
let tones = []
|
||||
while (cursor.moveToNext()) {
|
||||
tones.push({
|
||||
title: cursor.getString(RingtoneManager.TITLE_COLUMN_INDEX),
|
||||
uri:
|
||||
cursor.getString(RingtoneManager.URI_COLUMN_INDEX) +
|
||||
'/' +
|
||||
cursor.getString(RingtoneManager.ID_COLUMN_INDEX),
|
||||
})
|
||||
}
|
||||
|
||||
let defaultToneUri = RingtoneManager.getActualDefaultRingtoneUri(
|
||||
ctx,
|
||||
RingtoneManager.TYPE_ALARM
|
||||
)
|
||||
let defaultTone
|
||||
if (defaultToneUri) {
|
||||
let uriString = defaultToneUri.toString()
|
||||
let tonesAvailable = tones.filter((e) => e.uri == uriString)
|
||||
let toneExist = tonesAvailable.length
|
||||
defaultTone = {
|
||||
title: toneExist ? tonesAvailable[0].title : tones[0].title,
|
||||
uri: toneExist ? uriString : tones[0].uri,
|
||||
}
|
||||
}
|
||||
|
||||
return { tones, defaultTone: defaultToneUri ? defaultTone : tones[0] }
|
||||
}
|
799
app/store.ts
|
@ -1,3 +0,0 @@
|
|||
- You can now choose a system default theme to follow your device's dark mode setting (for Android 10 and above)
|
||||
- Cooking timer tool has been added
|
||||
- Individual settings page for each tool
|
|
@ -1,7 +1,7 @@
|
|||
import { NativeScriptConfig } from "@nativescript/core"
|
||||
|
||||
export default {
|
||||
id: "com.vishnuraghav.enrecipes",
|
||||
id: "com.vishnuraghav.EnRecipes",
|
||||
appPath: "app",
|
||||
appResourcesPath: "app/resources",
|
||||
android: {
|
||||
|
|
665
package-lock.json
generated
17
package.json
|
@ -1,8 +1,8 @@
|
|||
{
|
||||
"name": "enrecipes",
|
||||
"main": "./app/main.ts",
|
||||
"version": "1.0.0",
|
||||
"description": "A native application built with NativeScript-Vue",
|
||||
"version": "2.0.0",
|
||||
"description": "EnRecipes is an open source, privacy-friendly digital cookbook that lets you create, manage and share your recipes.",
|
||||
"homepage": "https://enrecipes.vercel.app/",
|
||||
"bugs": {
|
||||
"url": "https://github.com/vishnuraghavb/EnRecipes/issues"
|
||||
|
@ -18,23 +18,24 @@
|
|||
},
|
||||
"private": "true",
|
||||
"dependencies": {
|
||||
"@akylas/nativescript-sqlite": "^3.3.12",
|
||||
"@nativescript-community/ui-collectionview": "^4.0.29",
|
||||
"@nativescript/core": "~8.0.1",
|
||||
"@nativescript/core": "^8.0.5",
|
||||
"@nativescript/local-notifications": "^5.0.3",
|
||||
"@nativescript/localize": "^5.0.4",
|
||||
"@triniwiz/nativescript-accelerometer": "^4.0.3",
|
||||
"@triniwiz/nativescript-couchbase": "^1.2.2",
|
||||
"nativescript-imagecropper": "^4.0.1",
|
||||
"nativescript-intl": "^4.0.2",
|
||||
"nativescript-vue": "~2.9.0",
|
||||
"nativescript-vue": "^2.9.0",
|
||||
"vuex": "^3.6.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@nativescript/android": "8.0.0",
|
||||
"@nativescript/types-android": "^8.0.0",
|
||||
"@nativescript/types": "^8.0.1",
|
||||
"@nativescript/webpack": "beta",
|
||||
"@types/node": "^14.14.37",
|
||||
"@types/node": "^15.3.0",
|
||||
"nativescript-vue-template-compiler": "~2.9.0",
|
||||
"sass": "^1.32.8",
|
||||
"sass": "^1.32.13",
|
||||
"typescript": "^4.2.4",
|
||||
"vue": "^2.6.12"
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
"lib": ["dom", "es2017"],
|
||||
"sourceMap": true,
|
||||
"noEmitHelpers": true,
|
||||
"importHelpers": true,
|
||||
"importHelpers": false, // Must be false to create custom android componentt
|
||||
"baseUrl": ".",
|
||||
"paths": {
|
||||
"~/*": ["app/*"],
|
||||
|
|
2
types/references.d.ts
vendored
|
@ -1 +1 @@
|
|||
/// <reference path="../node_modules/@nativescript/types-android/index.d.ts" />
|
||||
/// <reference path="../node_modules/@nativescript/types/index.d.ts" />
|
||||
|
|
|
@ -1,6 +1,20 @@
|
|||
const webpack = require('@nativescript/webpack')
|
||||
const path = require('path')
|
||||
|
||||
module.exports = (env) => {
|
||||
webpack.init(env)
|
||||
const platform = webpack.Utils.platform.getPlatformName()
|
||||
webpack.chainWebpack((config) => {
|
||||
if (platform === 'android') {
|
||||
const appComponents = [
|
||||
'@nativescript/core/ui/frame',
|
||||
'@nativescript/core/ui/frame/activity',
|
||||
path.resolve(__dirname, 'app/ForegroundService.js'),
|
||||
]
|
||||
appComponents.map((component) => {
|
||||
config.entry('bundle').add(component)
|
||||
})
|
||||
}
|
||||
})
|
||||
return webpack.resolveConfig()
|
||||
}
|
||||
|
|