Compare commits
No commits in common. "main" and "v1" have entirely different histories.
10
.github/ISSUE_TEMPLATE/blank.md
vendored
|
@ -1,10 +0,0 @@
|
||||||
---
|
|
||||||
name: Blank
|
|
||||||
about: Use this when the other two are not applicable
|
|
||||||
title: ''
|
|
||||||
labels: ''
|
|
||||||
assignees: vishnuraghavb
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
|
|
15
.github/ISSUE_TEMPLATE/bug_report.md
vendored
|
@ -1,32 +1,31 @@
|
||||||
---
|
---
|
||||||
name: Bug report
|
name: Bug report
|
||||||
about: Create a report to help us improve
|
about: Create a report to help us improve
|
||||||
title: "[Bug]"
|
title: "[BUG]"
|
||||||
labels: bug
|
labels: bug
|
||||||
assignees: vishnuraghavb
|
assignees: vishnuraghavb
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
**Describe the bug**
|
**Describe the bug**
|
||||||
<!---A clear and concise description of what the bug is-->
|
A clear and concise description of what the bug is.
|
||||||
|
|
||||||
|
|
||||||
**To Reproduce**
|
**To Reproduce**
|
||||||
Steps to reproduce the behavior:
|
Steps to reproduce the behavior:
|
||||||
1. Go to '...'
|
1. Go to '...'
|
||||||
2. Tap on '....'
|
2. Click on '....'
|
||||||
3. Scroll down to '....'
|
3. Scroll down to '....'
|
||||||
4. See error
|
4. See error
|
||||||
|
|
||||||
**Expected behavior**
|
**Expected behavior**
|
||||||
<!---A clear and concise description of what you expected to happen-->
|
A clear and concise description of what you expected to happen.
|
||||||
|
|
||||||
**Screenshots**
|
**Screenshots**
|
||||||
<!---If applicable, add screenshots to help explain your problem-->
|
If applicable, add screenshots to help explain your problem.
|
||||||
|
|
||||||
**Device information (please complete the following information):**
|
**Device information (please complete the following information):**
|
||||||
- Android Version: [e.g. 8 or Oreo]
|
- Android Version: [e.g. 8 or Oreo]
|
||||||
- EnRecipes Version(as in app's about page): [e.g. 2.0.0]
|
- EnRecipes Version(as in app's about page): [e.g. 1.1.4]
|
||||||
|
|
||||||
**Additional context**
|
**Additional context**
|
||||||
<!---Add any other context about the problem here-->
|
Add any other context about the problem here.
|
||||||
|
|
10
.github/ISSUE_TEMPLATE/feature_request.md
vendored
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
name: Feature request
|
name: Feature request
|
||||||
about: Suggest an idea for this project
|
about: Suggest an idea for this project
|
||||||
title: "[Feature request]"
|
title: "[FEATURE REQUEST]"
|
||||||
labels: enhancement
|
labels: enhancement
|
||||||
assignees: vishnuraghavb
|
assignees: vishnuraghavb
|
||||||
|
|
||||||
|
@ -11,13 +11,13 @@ assignees: vishnuraghavb
|
||||||
- [ ] I've checked the roadmap and my feature request is not listed there
|
- [ ] I've checked the roadmap and my feature request is not listed there
|
||||||
|
|
||||||
**Is your feature request related to a problem? Please describe.**
|
**Is your feature request related to a problem? Please describe.**
|
||||||
<!---A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]-->
|
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||||
|
|
||||||
**Describe the solution you'd like**
|
**Describe the solution you'd like**
|
||||||
<!---A clear and concise description of what you want to happen-->
|
A clear and concise description of what you want to happen.
|
||||||
|
|
||||||
**Describe alternatives you've considered**
|
**Describe alternatives you've considered**
|
||||||
<!---A clear and concise description of any alternative solutions or features you've considered-->
|
A clear and concise description of any alternative solutions or features you've considered.
|
||||||
|
|
||||||
**Additional context**
|
**Additional context**
|
||||||
<!---Add any other context or screenshots about the feature request here-->
|
Add any other context or screenshots about the feature request here.
|
||||||
|
|
|
@ -6,4 +6,4 @@ Here are some important resources:
|
||||||
|
|
||||||
- The [roadmap](https://github.com/vishnuraghavb/EnRecipes/projects/1) will tell you whats the future of EnRecipes. Your feedback and suggestions are very important to make EnRecipes the best. If you have an idea to improve EnRecipes, [do let me know](https://github.com/vishnuraghavb/EnRecipes#having-issues-suggestions-and-feedback). I'm always open to ideas ;)
|
- The [roadmap](https://github.com/vishnuraghavb/EnRecipes/projects/1) will tell you whats the future of EnRecipes. Your feedback and suggestions are very important to make EnRecipes the best. If you have an idea to improve EnRecipes, [do let me know](https://github.com/vishnuraghavb/EnRecipes#having-issues-suggestions-and-feedback). I'm always open to ideas ;)
|
||||||
- You can help [translate EnRecipes using Weblate](https://hosted.weblate.org/engage/enrecipes/) into the language of your choice. See [translation instructions](https://github.com/vishnuraghavb/EnRecipes/wiki/Translation-Instructions) in the wiki for more information.
|
- You can help [translate EnRecipes using Weblate](https://hosted.weblate.org/engage/enrecipes/) into the language of your choice. See [translation instructions](https://github.com/vishnuraghavb/EnRecipes/wiki/Translation-Instructions) in the wiki for more information.
|
||||||
- Bugs, suggestions or feedback? You can [create an issue here](https://github.com/vishnuraghavb/EnRecipes/issues) or [join the Telegram group](http://t.me/enrecipes) (quicker replies) or contact me at apps@vishnuraghav.com
|
- Bugs, suggestions or feedback? You can [create an issue here](https://github.com/vishnuraghavb/EnRecipes/issues) or [join the Telegram group](http://t.me/enrecipes)(quicker replies) or contact me at apps@vishnuraghav.com
|
||||||
|
|
84
README.md
|
@ -1,16 +1,4 @@
|
||||||
## ⏸️ This project has been PAUSED for an unknown period of time.
|
<p align="center"><a href="https://enrecipes.vercel.app"><img src="fastlane/metadata/android/en-GB/images/featureGraphic.png" width="100%"></a></p>
|
||||||
|
|
||||||
#### :warning: IMPORTANT NOTICE for users with EnRecipes v1.3.2 or before:
|
|
||||||
|
|
||||||
To continue receiving updates, please update your EnRecipes to the latest version.
|
|
||||||
|
|
||||||
There are some significant changes in this version. So, in order to continue, you must do the following:
|
|
||||||
|
|
||||||
1. Export a full backup.
|
|
||||||
2. Uninstall EnRecipes.
|
|
||||||
3. Install this version and Import your data.
|
|
||||||
|
|
||||||
<p align="center"><a href="https://enrecipes.vercel.app"><img src="fastlane/metadata/android/en-US/images/featureGraphic.png" width="100%"></a></p>
|
|
||||||
|
|
||||||
<h1 align="center">A Simple, Offline Recipe Manager</h1>
|
<h1 align="center">A Simple, Offline Recipe Manager</h1>
|
||||||
<p align="center">EnRecipes is an open source, privacy-friendly digital cookbook that lets you create, manage and share your recipes.</p>
|
<p align="center">EnRecipes is an open source, privacy-friendly digital cookbook that lets you create, manage and share your recipes.</p>
|
||||||
|
@ -18,16 +6,16 @@ There are some significant changes in this version. So, in order to continue, yo
|
||||||
<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/">
|
<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>
|
<img src="https://hosted.weblate.org/widgets/enrecipes/-/app-translations/svg-badge.svg" alt="Translation status" /></a>
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://f-droid.org/packages/com.vishnuraghav.EnRecipes"><img src="assets/Images/fdroid-badge.png" height="80"/></a><a href="https://apt.izzysoft.de/fdroid/index/apk/com.vishnuraghav.EnRecipes"><img src="assets/Images/IzzyOnDroid-badge.png" height="80"/></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><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>
|
</p>
|
||||||
<h2 align="center">Enjoying EnRecipes?</h2>
|
<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.
|
<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.
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
<a href="https://www.vishnuraghav.com/donate/"><img alt="Donate to Vishnu Raghav" src="assets/Images/donate.svg" height="48"></a></p>
|
<a href="https://www.vishnuraghav.com/donate/"><img alt="Donate to Vishnu Raghav" src="assets/Images/donate.svg" width="240"></a></p>
|
||||||
<hr>
|
<hr>
|
||||||
<h3 align="center">Important Links</h3>
|
<h3 align="center">Important Links</h3>
|
||||||
<p align="center"><a href="https://github.com/vishnuraghavb/EnRecipes/wiki/User-Guide">User Guide</a> · <a href="https://github.com/vishnuraghavb/EnRecipes/blob/main/PRIVACY.md">Privacy Policy</a> · <a href="https://github.com/vishnuraghavb/EnRecipes/blob/main/CONTRIBUTING.md">Contribution Guide</a> · <a href="https://github.com/vishnuraghavb/EnRecipes/projects/1">Roadmap</a> · <a href="https://t.me/enrecipes/">Telegram Group</a> · <a href="https://enrecipes.vercel.app/">Website</a></p>
|
<p align="center"><a href="https://github.com/vishnuraghavb/EnRecipes/wiki/User-Guide">User Guide</a> - <a href="https://github.com/vishnuraghavb/EnRecipes/blob/main/PRIVACY.md">Privacy Policy</a> - <a href="https://github.com/vishnuraghavb/EnRecipes/blob/main/CONTRIBUTING.md">Contribution Guide</a> - <a href="https://github.com/vishnuraghavb/EnRecipes/projects/1">Roadmap</a> - <a href="https://t.me/enrecipes/">Telegram Group</a> - <a href="https://enrecipes.vercel.app/">Website</a></p>
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
@ -40,34 +28,37 @@ There are some significant changes in this version. So, in order to continue, yo
|
||||||
- Scale your recipe ingredients to serve more or less people
|
- Scale your recipe ingredients to serve more or less people
|
||||||
- Get notified of the last time you tried a recipe
|
- Get notified of the last time you tried a recipe
|
||||||
- Share your recipe to anyone by any means as a nicely formatted message. You can share the recipe photo too.
|
- Share your recipe to anyone by any means as a nicely formatted message. You can share the recipe photo too.
|
||||||
- Shake your device to view a random recipe
|
- Shake device to view random recipe
|
||||||
- Create meal plans
|
- Create meal plans
|
||||||
- Set cooking timers
|
- Import/Export recipes
|
||||||
- You can Import or Export your data
|
|
||||||
- Light, Dark and Black themes
|
- Light, Dark and Black themes
|
||||||
|
|
||||||
## Highlights
|
## Highlights
|
||||||
|
|
||||||
- 100% free and open-source
|
- 100% free and open-source
|
||||||
- Private by Design
|
- Private by Design
|
||||||
- No special permissions required
|
- No permissions required
|
||||||
- No annoying ads or pop-ups
|
- No annoying ads or pop-ups
|
||||||
|
|
||||||
|
**Languages being translated**:
|
||||||
|
|
||||||
|
[![Translation status](https://hosted.weblate.org/widgets/enrecipes/-/app-translations/multi-auto.svg)](https://hosted.weblate.org/engage/enrecipes/)
|
||||||
|
|
||||||
Check the [Roadmap](https://github.com/vishnuraghavb/EnRecipes/projects/1) for upcoming features.
|
Check the [Roadmap](https://github.com/vishnuraghavb/EnRecipes/projects/1) for upcoming features.
|
||||||
|
|
||||||
Please read the [User Guide](https://github.com/vishnuraghavb/EnRecipes/wiki/User-Guide) to get the most out of EnRecipes.
|
Please read the [User Guide](https://github.com/vishnuraghavb/EnRecipes/wiki/User-Guide) to get the most out of EnRecipes.
|
||||||
|
|
||||||
## Screenshots
|
## Screenshots
|
||||||
|
|
||||||
| <img src="fastlane/metadata/android/en-US/images/phoneScreenshots/1.png" width=276> | <img src="fastlane/metadata/android/en-US/images/phoneScreenshots/2.png" width=276> |
|
| <img src="fastlane/metadata/android/en-GB/images/phoneScreenshots/1.png" width=276> | <img src="fastlane/metadata/android/en-GB/images/phoneScreenshots/2.png" width=276> |
|
||||||
| :---------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------: |
|
| :---------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------: |
|
||||||
| **Home - Light theme** | **Home - Dark theme** |
|
| **Home - Light theme** | **Home - Dark theme** |
|
||||||
| <img src="fastlane/metadata/android/en-US/images/phoneScreenshots/3.png" width=276> | <img src="fastlane/metadata/android/en-US/images/phoneScreenshots/4.png" width=276> |
|
| <img src="fastlane/metadata/android/en-GB/images/phoneScreenshots/3.png" width=276> | <img src="fastlane/metadata/android/en-GB/images/phoneScreenshots/4.png" width=276> |
|
||||||
| **Recipe view** | **Scale ingredients** |
|
| **Home - Black theme** | **Recipe view** |
|
||||||
| <img src="fastlane/metadata/android/en-US/images/phoneScreenshots/5.png" width=276> | <img src="fastlane/metadata/android/en-US/images/phoneScreenshots/6.png" width=276> |
|
| <img src="fastlane/metadata/android/en-GB/images/phoneScreenshots/5.png" width=276> | <img src="fastlane/metadata/android/en-GB/images/phoneScreenshots/6.png" width=276> |
|
||||||
| **Share menu** | **Meal Planner** |
|
| **Share menu** | **Scale ingredients** |
|
||||||
| <img src="fastlane/metadata/android/en-US/images/phoneScreenshots/7.png" width=276> | <img src="fastlane/metadata/android/en-US/images/phoneScreenshots/8.png" width=276> |
|
| <img src="fastlane/metadata/android/en-GB/images/phoneScreenshots/7.png" width=276> | <img src="fastlane/metadata/android/en-GB/images/phoneScreenshots/8.png" width=276> |
|
||||||
| **Cooking Timer** | **About** |
|
| **Meal planner** | **About** |
|
||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
|
|
||||||
|
@ -83,52 +74,19 @@ You can,
|
||||||
- [Join the Telegram group](http://t.me/enrecipes) (quicker replies)
|
- [Join the Telegram group](http://t.me/enrecipes) (quicker replies)
|
||||||
- Contact me at apps@vishnuraghav.com
|
- Contact me at apps@vishnuraghav.com
|
||||||
|
|
||||||
### Looking to translate EnRecipes?
|
### Looking to translate the app to your own language?
|
||||||
|
|
||||||
EnRecipes is being translated using [Weblate](https://hosted.weblate.org/engage/enrecipes/). See [translation instructions](https://github.com/vishnuraghavb/EnRecipes/wiki/Translation-Instructions) in the wiki for more information.
|
EnRecipes is being translated using [Weblate](https://hosted.weblate.org/engage/enrecipes/). See [translation instructions](https://github.com/vishnuraghavb/EnRecipes/wiki/Translation-Instructions) in the wiki for more information.
|
||||||
|
|
||||||
<!-- <a href="https://hosted.weblate.org/engage/enrecipes/">
|
|
||||||
<img src="https://hosted.weblate.org/widgets/enrecipes/-/app-translations/287x66-grey.png" alt="Translation status" />
|
|
||||||
</a> -->
|
|
||||||
<a href="https://hosted.weblate.org/engage/enrecipes/">
|
<a href="https://hosted.weblate.org/engage/enrecipes/">
|
||||||
<img src="https://hosted.weblate.org/widgets/enrecipes/-/open-graph.png" alt="Translation status" />
|
<img src="https://hosted.weblate.org/widgets/enrecipes/-/app-translations/287x66-grey.png" alt="Translation status" />
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
## Credits
|
## Credits
|
||||||
|
|
||||||
This app was written in my free time using NativeScript-Vue. I would like to thank all those people who helped me understand the concepts during the process and my special thanks to the NativeScript team and the community. I also would like to thank the members of the [EnRecipes Telegram group](https://t.me/enrecipes) for contributing their ideas for this project.
|
This app was written in my free time using NativeScript-Vue. I would like to thank all those people who helped me understand the concepts during the process and my special thanks to the NativeScript team and the community. I also would like to thank the members of the [EnRecipes Telegram group](https://t.me/enrecipes) for contributing their ideas for this project.
|
||||||
|
|
||||||
### Translation credits
|
### Recipes used in the Screenshots
|
||||||
|
|
||||||
| Language | Translator(s) |
|
|
||||||
| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
||||||
| Arabic | [phwright](https://hosted.weblate.org/user/phwright/) |
|
|
||||||
| Catalan | J. Lavoie |
|
|
||||||
| Danish | [mondstern](https://hosted.weblate.org/user/mondstern/), Henrik Dankvardt, J. Lavoie, Allan Nordhøy, Jonas Hansen |
|
|
||||||
| Dutch | Heimen Stoffels |
|
|
||||||
| English (India) | Vishnu Raghav B |
|
|
||||||
| English (United Kingdom) | Vishnu Raghav B |
|
|
||||||
| English (United States) | Vishnu Raghav B |
|
|
||||||
| Finnish | J. Lavoie |
|
|
||||||
| French | J. Lavoie, Swann Fournial, fabeuss, [mondstern](https://hosted.weblate.org/user/mondstern/) |
|
|
||||||
| French (Canada) | Swann Fournial, J. Lavoie |
|
|
||||||
| French (Switzerland) | Swann Fournial, J. Lavoie |
|
|
||||||
| French (Belgium) | Swann Fournial, J. Lavoie |
|
|
||||||
| German | J. Lavoie, nautilusx, Swann Fournial |
|
|
||||||
| Hindi | Vishnu Raghav B, V |
|
|
||||||
| Indonesian | Reza Almanda, [mondstern](https://hosted.weblate.org/user/mondstern/) |
|
|
||||||
| Italian | J. Lavoie, [mondstern](https://hosted.weblate.org/user/mondstern/), Andrea Ghensi |
|
|
||||||
| Japanese | Y. Sakamoto, K. Herbert |
|
|
||||||
| Malayalam | Vishnu Raghav B |
|
|
||||||
| Norwegian Bokmål | Allan Nordhøy, [mondstern](https://hosted.weblate.org/user/mondstern/), Lars A Reinton |
|
|
||||||
| Portuguese | Sérgio Morais, [mondstern](https://hosted.weblate.org/user/mondstern/), J. Lavoie |
|
|
||||||
| Portuguese (Brazil) | [mondstern](https://hosted.weblate.org/user/mondstern/), Sérgio Morais, Wesley, Ricardo Zamarrenho Carvalho Correa, J. Lavoie, Nínive de Jesus Celestino, emmanuel einstein campos vasconcelos, Fabio Oliveira |
|
|
||||||
| Russian | dm9pZCAq, [mondstern](https://hosted.weblate.org/user/mondstern/), Leca |
|
|
||||||
| Spanish | taraletti, J. Lavoie, Sansom, [mondstern](https://hosted.weblate.org/user/mondstern/), Diego |
|
|
||||||
| Spanish (Argentina) | another-sapiens |
|
|
||||||
| Tamil | Vishnu Raghav B |
|
|
||||||
|
|
||||||
### Screenshot recipe credits
|
|
||||||
|
|
||||||
- **Meen Pollichathu** by [Bency Veronica](https://www.instagram.com/bencys_lil_kitchen)
|
- **Meen Pollichathu** by [Bency Veronica](https://www.instagram.com/bencys_lil_kitchen)
|
||||||
- **Curd Vada** by P. Shanmugalakshmi
|
- **Curd Vada** by P. Shanmugalakshmi
|
||||||
|
|
540
app/app.scss
|
@ -1,4 +1,3 @@
|
||||||
// Colours
|
|
||||||
$gray0: #f8f9fa;
|
$gray0: #f8f9fa;
|
||||||
$gray1: #f1f3f5;
|
$gray1: #f1f3f5;
|
||||||
$gray2: #e9ecef;
|
$gray2: #e9ecef;
|
||||||
|
@ -12,48 +11,39 @@ $gray9: #212529;
|
||||||
$gray10: #000000;
|
$gray10: #000000;
|
||||||
$orange: #ff5200;
|
$orange: #ff5200;
|
||||||
|
|
||||||
// FontSizes based on Minor Third
|
|
||||||
$t1: 25;
|
|
||||||
$t2: 21;
|
|
||||||
$t3: 17;
|
|
||||||
$t4: 14;
|
|
||||||
$t5: 12; // Base
|
|
||||||
$t6: 10;
|
|
||||||
|
|
||||||
Page {
|
Page {
|
||||||
font-family: 'Inter-Medium', sans-serif;
|
font-family: "Inter-Medium";
|
||||||
font-size: $t4;
|
font-size: 14;
|
||||||
}
|
}
|
||||||
.ico {
|
.ico {
|
||||||
font-family: 'EnRecipes';
|
font-family: "enrecipes";
|
||||||
font-size: 23;
|
font-size: 24;
|
||||||
&.s {
|
vertical-alignment: center;
|
||||||
font-size: $t3;
|
&.sm {
|
||||||
|
font-size: 16;
|
||||||
opacity: 0.5;
|
opacity: 0.5;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.vc {
|
|
||||||
vertical-align: center;
|
|
||||||
}
|
|
||||||
.tb {
|
.tb {
|
||||||
font-family: 'Inter-Bold', sans-serif;
|
font-family: "Inter-Bold";
|
||||||
}
|
}
|
||||||
.tc {
|
.tac {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
.tw {
|
.tw {
|
||||||
text-wrap: true;
|
text-wrap: true;
|
||||||
}
|
}
|
||||||
|
.pageTitle {
|
||||||
.pTitle {
|
@extend .tb;
|
||||||
font-size: $t1;
|
@extend .tw;
|
||||||
padding: 16 16 24;
|
font-size: 25;
|
||||||
|
padding: 16;
|
||||||
}
|
}
|
||||||
|
|
||||||
.Light {
|
.Light {
|
||||||
color: $gray9;
|
color: $gray9;
|
||||||
background: $gray1;
|
background: $gray1;
|
||||||
Page,
|
Page,
|
||||||
|
.filters,
|
||||||
.sticky {
|
.sticky {
|
||||||
background: $gray1;
|
background: $gray1;
|
||||||
}
|
}
|
||||||
|
@ -68,9 +58,9 @@ Page {
|
||||||
.appbar,
|
.appbar,
|
||||||
.modal {
|
.modal {
|
||||||
background: $gray0;
|
background: $gray0;
|
||||||
box-shadow: 0 2 rgba($gray10, 0.1);
|
|
||||||
}
|
}
|
||||||
.fLabel,
|
.fieldLabel,
|
||||||
|
.dayName,
|
||||||
.sub {
|
.sub {
|
||||||
color: $gray6;
|
color: $gray6;
|
||||||
}
|
}
|
||||||
|
@ -78,7 +68,7 @@ Page {
|
||||||
color: $gray3;
|
color: $gray3;
|
||||||
background: $gray2;
|
background: $gray2;
|
||||||
}
|
}
|
||||||
.snackbar {
|
.snackBar {
|
||||||
color: $gray1;
|
color: $gray1;
|
||||||
background: $gray9;
|
background: $gray9;
|
||||||
}
|
}
|
||||||
|
@ -90,6 +80,7 @@ Page {
|
||||||
color: $gray1;
|
color: $gray1;
|
||||||
background: $gray9;
|
background: $gray9;
|
||||||
Page,
|
Page,
|
||||||
|
.filters,
|
||||||
.sticky {
|
.sticky {
|
||||||
background: $gray9;
|
background: $gray9;
|
||||||
}
|
}
|
||||||
|
@ -106,7 +97,8 @@ Page {
|
||||||
color: $gray0;
|
color: $gray0;
|
||||||
background: $gray8;
|
background: $gray8;
|
||||||
}
|
}
|
||||||
.fLabel,
|
.fieldLabel,
|
||||||
|
.dayName,
|
||||||
.sub {
|
.sub {
|
||||||
color: $gray5;
|
color: $gray5;
|
||||||
}
|
}
|
||||||
|
@ -114,7 +106,7 @@ Page {
|
||||||
color: $gray9;
|
color: $gray9;
|
||||||
background: $gray10;
|
background: $gray10;
|
||||||
}
|
}
|
||||||
.snackbar {
|
.snackBar {
|
||||||
color: $gray9;
|
color: $gray9;
|
||||||
background: $gray1;
|
background: $gray1;
|
||||||
}
|
}
|
||||||
|
@ -126,6 +118,7 @@ Page {
|
||||||
color: $gray2;
|
color: $gray2;
|
||||||
background: $gray10;
|
background: $gray10;
|
||||||
Page,
|
Page,
|
||||||
|
.filters,
|
||||||
.sticky {
|
.sticky {
|
||||||
background: $gray10;
|
background: $gray10;
|
||||||
}
|
}
|
||||||
|
@ -142,7 +135,8 @@ Page {
|
||||||
color: $gray1;
|
color: $gray1;
|
||||||
background: $gray9;
|
background: $gray9;
|
||||||
}
|
}
|
||||||
.fLabel,
|
.fieldLabel,
|
||||||
|
.dayName,
|
||||||
.sub {
|
.sub {
|
||||||
color: $gray6;
|
color: $gray6;
|
||||||
}
|
}
|
||||||
|
@ -150,7 +144,7 @@ Page {
|
||||||
color: $gray10;
|
color: $gray10;
|
||||||
background: $gray9;
|
background: $gray9;
|
||||||
}
|
}
|
||||||
.snackbar {
|
.snackBar {
|
||||||
color: $gray10;
|
color: $gray10;
|
||||||
background: $gray2;
|
background: $gray2;
|
||||||
}
|
}
|
||||||
|
@ -158,139 +152,141 @@ Page {
|
||||||
color: $gray10;
|
color: $gray10;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TextField.combField,
|
TextField.combField,
|
||||||
#search {
|
#searchBar {
|
||||||
border-color: transparent;
|
border-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
// -----------------------------
|
// -----------------------------
|
||||||
// Elements
|
// Elements
|
||||||
TextField,
|
TextField,
|
||||||
TextView {
|
TextView {
|
||||||
// width: 100%;
|
width: 100%;
|
||||||
padding: 14 8;
|
padding: 14 8;
|
||||||
border-bottom-width: 1;
|
border-bottom-width: 1;
|
||||||
}
|
}
|
||||||
TextView {
|
TextView {
|
||||||
line-height: 4;
|
line-height: 4;
|
||||||
}
|
}
|
||||||
#search {
|
#searchBar {
|
||||||
padding: 13 8;
|
padding-left: 0;
|
||||||
|
margin: 0;
|
||||||
}
|
}
|
||||||
.inputC {
|
.inputField {
|
||||||
margin-bottom: 24;
|
margin-bottom: 24;
|
||||||
}
|
}
|
||||||
.fLabel {
|
.fieldLabel {
|
||||||
font-size: $t5;
|
font-size: 12;
|
||||||
}
|
}
|
||||||
progress {
|
.progressContainer {
|
||||||
color: $orange;
|
width: 100%;
|
||||||
height: 2;
|
}
|
||||||
|
Progress {
|
||||||
|
margin: 16;
|
||||||
background-color: $gray5;
|
background-color: $gray5;
|
||||||
}
|
}
|
||||||
Switch {
|
Switch {
|
||||||
background-color: $orange;
|
background-color: $orange;
|
||||||
off-background-color: $gray5;
|
off-background-color: $gray5;
|
||||||
}
|
}
|
||||||
button {
|
// -----------------------------
|
||||||
|
// Side Drawer
|
||||||
|
.segment {
|
||||||
|
border-radius: 12;
|
||||||
|
margin: 0 4 0 0;
|
||||||
|
padding: 0 12;
|
||||||
|
.value {
|
||||||
|
padding-left: 8;
|
||||||
|
vertical-alignment: center;
|
||||||
|
}
|
||||||
|
&.select {
|
||||||
|
color: $orange;
|
||||||
|
@extend .hl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Button {
|
||||||
|
background-color: transparent;
|
||||||
z-index: 0;
|
z-index: 0;
|
||||||
padding: 8;
|
padding: 8;
|
||||||
border-radius: 12;
|
border-radius: 12;
|
||||||
min-width: 0;
|
min-width: 0;
|
||||||
min-height: 0;
|
min-height: 0;
|
||||||
text-transform: none;
|
|
||||||
background-color: transparent;
|
|
||||||
&.sst {
|
|
||||||
width: 48;
|
|
||||||
height: 48;
|
|
||||||
}
|
|
||||||
&.ico {
|
|
||||||
width: 48;
|
|
||||||
height: 48;
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
&:active {
|
&:active {
|
||||||
@extend .fade;
|
@extend .fade;
|
||||||
}
|
}
|
||||||
}
|
&.ico {
|
||||||
&.si {
|
padding: 0;
|
||||||
width: 40;
|
margin: 0;
|
||||||
height: 40;
|
width: 48;
|
||||||
|
height: 48;
|
||||||
}
|
}
|
||||||
&.text {
|
&.text {
|
||||||
|
@extend .tb;
|
||||||
|
horizontal-alignment: left;
|
||||||
color: $orange;
|
color: $orange;
|
||||||
}
|
}
|
||||||
&.st {
|
|
||||||
font-size: $t5;
|
|
||||||
padding: 12;
|
|
||||||
}
|
|
||||||
&.big {
|
&.big {
|
||||||
margin-top: 8;
|
margin-top: 8;
|
||||||
padding: 16 0;
|
padding: 16 0;
|
||||||
}
|
}
|
||||||
|
&.sm {
|
||||||
|
font-size: 12;
|
||||||
|
padding: 12;
|
||||||
|
}
|
||||||
|
&.min {
|
||||||
|
width: 40;
|
||||||
|
height: 40;
|
||||||
|
}
|
||||||
|
&.x {
|
||||||
|
width: 32;
|
||||||
|
height: 32;
|
||||||
|
min-width: 0;
|
||||||
|
margin: 0 0 0 8;
|
||||||
|
vertical-alignment: center;
|
||||||
|
}
|
||||||
&.rate {
|
&.rate {
|
||||||
margin: 0 4 0 0;
|
margin: 0 4 0 0;
|
||||||
width: 32;
|
width: 32;
|
||||||
height: 32;
|
height: 32;
|
||||||
}
|
}
|
||||||
&.fb:active {
|
|
||||||
@extend .fade;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
ActivityIndicator {
|
|
||||||
width: 24;
|
|
||||||
height: 24;
|
|
||||||
margin: 14;
|
|
||||||
color: $orange;
|
|
||||||
}
|
|
||||||
|
|
||||||
// -----------------------------
|
// -----------------------------
|
||||||
// Home
|
// HOME
|
||||||
.segment {
|
.emptyState {
|
||||||
border-radius: 12;
|
|
||||||
padding: 8;
|
|
||||||
.v {
|
|
||||||
padding: 0 4;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.t3 {
|
|
||||||
font-size: $t3;
|
|
||||||
}
|
|
||||||
.empty {
|
|
||||||
padding: 16 16 8;
|
padding: 16 16 8;
|
||||||
|
Label {
|
||||||
|
@extend .tw;
|
||||||
|
}
|
||||||
|
.title {
|
||||||
|
@extend .tb;
|
||||||
|
font-size: 17;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// -----------------------------
|
// -----------------------------
|
||||||
// Recipe Item
|
// Recipe Items
|
||||||
.recipe {
|
.recipeItem {
|
||||||
padding: 8 16;
|
padding: 8 16;
|
||||||
.info {
|
.recipeInfo {
|
||||||
padding: 0 8 4;
|
vertical-alignment: center;
|
||||||
|
padding: 0 0 4 8;
|
||||||
}
|
}
|
||||||
.title {
|
.title {
|
||||||
padding: 0 0 4;
|
padding: 0 0 4;
|
||||||
}
|
}
|
||||||
|
.attr {
|
||||||
|
font-size: 10;
|
||||||
|
padding: 0 6 1 2;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.oh {
|
.simple .recipeInfo {
|
||||||
orientation: horizontal;
|
|
||||||
}
|
|
||||||
.t6 {
|
|
||||||
font-size: $t6;
|
|
||||||
}
|
|
||||||
.attr {
|
|
||||||
font-size: $t6;
|
|
||||||
padding: 0 4 2;
|
|
||||||
}
|
|
||||||
.simple .info {
|
|
||||||
padding: 8 0;
|
padding: 8 0;
|
||||||
}
|
}
|
||||||
.minimal .title {
|
.minimal .title {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.grid {
|
.grid {
|
||||||
padding: 8;
|
padding: 8;
|
||||||
.info {
|
.recipeInfo {
|
||||||
padding: 8 0 4;
|
padding: 8 0 4;
|
||||||
}
|
}
|
||||||
&.odd {
|
&.odd {
|
||||||
|
@ -300,199 +296,239 @@ ActivityIndicator {
|
||||||
padding: 8 16 8 8;
|
padding: 8 16 8 8;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.photogrid .info {
|
.photogrid .recipeInfo {
|
||||||
padding: 8 0 0;
|
padding: 8 0 0;
|
||||||
}
|
}
|
||||||
.lastItem {
|
.lastItem {
|
||||||
margin-bottom: 128;
|
margin-bottom: 128;
|
||||||
}
|
}
|
||||||
|
.selected {
|
||||||
|
@extend .hl;
|
||||||
|
}
|
||||||
|
.unselected {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
.imgHolder {
|
.imgHolder {
|
||||||
border-radius: 12;
|
border-radius: 12;
|
||||||
}
|
}
|
||||||
|
|
||||||
// -----------------------------
|
// -----------------------------
|
||||||
// CookingTimer
|
// SETTINGS
|
||||||
.timer {
|
.group-info {
|
||||||
padding: 8 16 0;
|
|
||||||
.info {
|
|
||||||
margin: 8 8 8 16;
|
|
||||||
&.r {
|
|
||||||
margin: 8 16 8 8;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
progress {
|
|
||||||
margin: 8 0 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// -----------------------------
|
|
||||||
// Settings
|
|
||||||
.groupInfo {
|
|
||||||
padding: 16 16 16 72;
|
padding: 16 16 16 72;
|
||||||
&.r {
|
line-height: 4;
|
||||||
padding: 16 72 16 16;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
.options {
|
.options-list {
|
||||||
.option {
|
.option {
|
||||||
vertical-align: center;
|
vertical-align: center;
|
||||||
padding: 14 16;
|
padding: 14 8;
|
||||||
|
margin: 0 16;
|
||||||
.ico {
|
.ico {
|
||||||
width: 40;
|
padding: 0;
|
||||||
text-align: center;
|
margin: 0 24 0 16;
|
||||||
}
|
}
|
||||||
.info {
|
.info,
|
||||||
padding: 0 16;
|
.sub {
|
||||||
@extend .tw;
|
@extend .tw;
|
||||||
}
|
}
|
||||||
.sub {
|
.sub {
|
||||||
font-size: $t5;
|
font-size: 12;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.listSpace {
|
||||||
|
height: 72;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// -----------------------------
|
// -----------------------------
|
||||||
// About
|
// ABOUT
|
||||||
.appInfo {
|
.app-info {
|
||||||
.logo {
|
.icon {
|
||||||
horizontal-alignment: center;
|
horizontal-alignment: center;
|
||||||
}
|
}
|
||||||
.name {
|
.name {
|
||||||
font-size: $t2;
|
font-size: 21;
|
||||||
}
|
}
|
||||||
.info {
|
.info {
|
||||||
padding: 8 16 24;
|
padding: 8 16 24;
|
||||||
line-height: 4;
|
line-height: 4;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// -----------------------------
|
// -----------------------------
|
||||||
// ViewRecipe
|
// VIEW RECIPE
|
||||||
.photo {
|
.photo {
|
||||||
border-radius: 12;
|
border-radius: 12;
|
||||||
margin: 24 16 0 0;
|
margin: 24 16 0 0;
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
}
|
}
|
||||||
.imgV {
|
.photoviewer {
|
||||||
width: 96;
|
width: 96;
|
||||||
height: 96;
|
height: 96;
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
background: #000;
|
background: #000;
|
||||||
}
|
}
|
||||||
.attrT {
|
.attribute {
|
||||||
margin: 8 16;
|
margin: 8 16;
|
||||||
.sub {
|
.title {
|
||||||
font-size: $t5;
|
margin-right: 8;
|
||||||
|
font-size: 12;
|
||||||
}
|
}
|
||||||
.v {
|
.value {
|
||||||
@extend .tb;
|
@extend .tb;
|
||||||
@extend .tw;
|
@extend .tw;
|
||||||
}
|
}
|
||||||
|
.clickable {
|
||||||
|
color: $orange;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.check {
|
.ingredient {
|
||||||
padding: 0 16;
|
padding: 0 16;
|
||||||
.v {
|
.value {
|
||||||
padding: 14 16;
|
@extend .tw;
|
||||||
|
vertical-align: center;
|
||||||
|
padding: 14 0 14 16;
|
||||||
line-height: 4;
|
line-height: 4;
|
||||||
}
|
}
|
||||||
.t {
|
}
|
||||||
padding: 14 0;
|
.instruction {
|
||||||
|
padding: 0 16;
|
||||||
|
.count {
|
||||||
|
@extend .tb;
|
||||||
|
font-size: 17;
|
||||||
|
}
|
||||||
|
.value {
|
||||||
|
@extend .tw;
|
||||||
|
padding: 14 0 14 16;
|
||||||
|
line-height: 4;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.done {
|
.done {
|
||||||
opacity: 0.5;
|
opacity: 0.5;
|
||||||
.v {
|
// @extend .fade;
|
||||||
|
.value {
|
||||||
text-decoration: line-through;
|
text-decoration: line-through;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.note {
|
.combination {
|
||||||
padding: 16 24;
|
@extend .tw;
|
||||||
|
text-align: left;
|
||||||
|
padding: 16;
|
||||||
line-height: 4;
|
line-height: 4;
|
||||||
}
|
}
|
||||||
.t5 {
|
.note {
|
||||||
font-size: $t5;
|
@extend .tw;
|
||||||
|
line-height: 4;
|
||||||
|
padding: 16 0;
|
||||||
|
}
|
||||||
|
.dateInfo {
|
||||||
|
padding: 32 16 16;
|
||||||
|
font-size: 12;
|
||||||
|
line-height: 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
// -----------------------------
|
// -----------------------------
|
||||||
// AppBar
|
// APPBAR
|
||||||
|
|
||||||
.appbar {
|
.appbar {
|
||||||
margin: 0 8 8;
|
z-index: 4;
|
||||||
|
min-height: 56;
|
||||||
|
margin: 8;
|
||||||
|
padding: 4;
|
||||||
border-radius: 16;
|
border-radius: 16;
|
||||||
padding: 2;
|
.title {
|
||||||
.ico {
|
@extend .tb;
|
||||||
margin: 2;
|
@extend .tw;
|
||||||
|
vertical-align: center;
|
||||||
|
line-height: 4;
|
||||||
|
}
|
||||||
|
.msg {
|
||||||
|
padding: 14 16;
|
||||||
|
}
|
||||||
|
.fab {
|
||||||
|
margin-left: 4;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.toolbar {
|
.toolbar {
|
||||||
height: 1;
|
z-index: 4;
|
||||||
vertical-align: bottom;
|
padding: 4;
|
||||||
transform: translateY(48);
|
margin-bottom: 0;
|
||||||
padding: 4 2;
|
horizontal-alignment: left;
|
||||||
.tool {
|
.tool {
|
||||||
orientation: horizontal;
|
padding: 0 12;
|
||||||
padding: 0 8;
|
Label {
|
||||||
|
vertical-alignment: center;
|
||||||
|
}
|
||||||
|
.ico {
|
||||||
|
padding-right: 8;
|
||||||
}
|
}
|
||||||
.v {
|
|
||||||
padding: 0 4;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.fab {
|
.fab {
|
||||||
|
width: 48;
|
||||||
|
height: 48;
|
||||||
|
margin: 0 4 0 0;
|
||||||
border-radius: 12;
|
border-radius: 12;
|
||||||
background: $orange;
|
background: $orange;
|
||||||
}
|
}
|
||||||
|
|
||||||
// -----------------------------
|
// -----------------------------
|
||||||
// EditRecipe
|
// EDIT RECIPE
|
||||||
.section {
|
.sectionTitle {
|
||||||
padding: 0 16;
|
@extend .tb;
|
||||||
|
@extend .tw;
|
||||||
|
font-size: 21;
|
||||||
|
padding: 0;
|
||||||
margin: 32 0 16;
|
margin: 32 0 16;
|
||||||
}
|
}
|
||||||
.t2 {
|
|
||||||
font-size: $t2;
|
|
||||||
}
|
|
||||||
.sticky {
|
.sticky {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
padding: 0 16 16;
|
padding: 0 16 16;
|
||||||
|
margin: 0;
|
||||||
}
|
}
|
||||||
.ingActions {
|
.countdown {
|
||||||
orientation: horizontal;
|
font-size: 17;
|
||||||
button {
|
color: $orange;
|
||||||
margin-right: 16;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// -----------------------------
|
// -----------------------------
|
||||||
// MealPlanner
|
// MEAL PLANNER
|
||||||
.calendar {
|
.calendar {
|
||||||
padding: 0 16 16;
|
|
||||||
.accent.sub {
|
|
||||||
color: rgba($orange, 0.6);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.plans {
|
|
||||||
margin: 0 16;
|
|
||||||
.date {
|
|
||||||
padding: 16 0 8;
|
|
||||||
}
|
|
||||||
.type {
|
|
||||||
padding: 8 0;
|
|
||||||
}
|
|
||||||
.plan {
|
|
||||||
min-height: 48;
|
|
||||||
padding: 4 0;
|
|
||||||
}
|
|
||||||
.info {
|
|
||||||
min-height: 40;
|
|
||||||
padding: 0 8;
|
padding: 0 8;
|
||||||
|
.navBtn {
|
||||||
|
margin: 0;
|
||||||
}
|
}
|
||||||
.note {
|
.monthName {
|
||||||
padding: 4 0;
|
text-align: center;
|
||||||
|
vertical-alignment: center;
|
||||||
|
font-size: 17;
|
||||||
|
}
|
||||||
|
.dayName {
|
||||||
|
margin: 8 0;
|
||||||
|
font-size: 12;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.day {
|
||||||
|
border-radius: 12;
|
||||||
|
}
|
||||||
|
.hasPlans {
|
||||||
|
color: $orange;
|
||||||
|
}
|
||||||
|
.activeDay {
|
||||||
|
background-color: rgba($orange, 0.2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.dayPlan {
|
||||||
|
padding: 16 16 80;
|
||||||
|
width: 100%;
|
||||||
|
.periodLabel {
|
||||||
|
font-size: 17;
|
||||||
|
text-transform: capitalize;
|
||||||
|
vertical-align: center;
|
||||||
|
}
|
||||||
|
.recipeTitle {
|
||||||
|
@extend .tw;
|
||||||
|
text-align: left;
|
||||||
|
padding: 16 8;
|
||||||
|
line-height: 4;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// -----------------------------
|
// -----------------------------
|
||||||
// Dialogs
|
// DIALOGS
|
||||||
.modal {
|
.modal {
|
||||||
max-width: 320;
|
max-width: 320;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
@ -502,20 +538,40 @@ ActivityIndicator {
|
||||||
@extend .tb;
|
@extend .tb;
|
||||||
@extend .tw;
|
@extend .tw;
|
||||||
padding: 16;
|
padding: 16;
|
||||||
font-size: $t2;
|
font-size: 21;
|
||||||
}
|
}
|
||||||
.input {
|
.input {
|
||||||
padding: 0 16 8;
|
padding: 0 16 8;
|
||||||
}
|
}
|
||||||
|
.description {
|
||||||
|
line-height: 4;
|
||||||
|
padding: 0 16 8;
|
||||||
|
}
|
||||||
ListPicker {
|
ListPicker {
|
||||||
width: 30%;
|
width: 25%;
|
||||||
height: 144;
|
height: 160;
|
||||||
margin: 16 0;
|
|
||||||
}
|
}
|
||||||
.listItem {
|
.listItem {
|
||||||
|
@extend .tw;
|
||||||
|
width: 100%;
|
||||||
|
letter-spacing: 0;
|
||||||
|
text-transform: none;
|
||||||
line-height: 4;
|
line-height: 4;
|
||||||
padding: 13 16;
|
padding: 13 16;
|
||||||
background-color: transparent;
|
margin: 0;
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
.shareItem {
|
||||||
|
border-radius: 12;
|
||||||
|
margin: 0 8 8;
|
||||||
|
text-align: center;
|
||||||
|
.ico {
|
||||||
|
padding: 16 0 0;
|
||||||
|
}
|
||||||
|
.item {
|
||||||
|
@extend .tw;
|
||||||
|
padding: 8 16 16;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.actions {
|
.actions {
|
||||||
padding: 4;
|
padding: 4;
|
||||||
|
@ -525,68 +581,48 @@ ActivityIndicator {
|
||||||
margin: 0 0 8;
|
margin: 0 0 8;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.noResInfo {
|
||||||
|
@extend .tac;
|
||||||
|
@extend .tw;
|
||||||
|
padding: 16;
|
||||||
|
line-height: 4;
|
||||||
|
}
|
||||||
|
// -----------------------------
|
||||||
|
ActivityIndicator {
|
||||||
|
width: 24;
|
||||||
|
height: 24;
|
||||||
|
margin: 12;
|
||||||
|
color: $orange;
|
||||||
|
}
|
||||||
// -----------------------------
|
// -----------------------------
|
||||||
// Transitions
|
// Transitions
|
||||||
.select {
|
.hl {
|
||||||
color: $orange;
|
animation-name: hl;
|
||||||
animation-name: select;
|
|
||||||
animation-duration: 0.2s;
|
animation-duration: 0.2s;
|
||||||
animation-fill-mode: forwards;
|
animation-fill-mode: forwards;
|
||||||
animation-timing-function: ease;
|
animation-timing-function: ease-out;
|
||||||
}
|
}
|
||||||
.deselect {
|
@keyframes hl {
|
||||||
background-color: transparent;
|
|
||||||
}
|
|
||||||
@keyframes select {
|
|
||||||
0% {
|
0% {
|
||||||
|
opacity: 0.5;
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
}
|
}
|
||||||
100% {
|
100% {
|
||||||
background-color: rgba($orange, 0.1);
|
opacity: 1;
|
||||||
|
background-color: rgba($orange, 0.2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.fade {
|
.fade {
|
||||||
animation-name: fade;
|
animation-name: fade;
|
||||||
animation-duration: 0.2s;
|
animation-duration: 0.2s;
|
||||||
animation-fill-mode: forwards;
|
animation-fill-mode: forwards;
|
||||||
animation-timing-function: ease;
|
animation-timing-function: ease-out;
|
||||||
}
|
}
|
||||||
@keyframes fade {
|
@keyframes fade {
|
||||||
0% {
|
0% {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
100% {
|
100% {
|
||||||
opacity: 0.75;
|
opacity: 0.5;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// -----------------------------
|
|
||||||
// Helpers
|
|
||||||
.f {
|
|
||||||
transform: scaleX(-1);
|
|
||||||
}
|
|
||||||
.accent {
|
|
||||||
color: $orange;
|
|
||||||
}
|
|
||||||
.hal {
|
|
||||||
horizontal-alignment: left;
|
|
||||||
&.r {
|
|
||||||
horizontal-alignment: right;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.har {
|
|
||||||
horizontal-alignment: right;
|
|
||||||
&.r {
|
|
||||||
horizontal-alignment: left;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.edge {
|
|
||||||
width: 16;
|
|
||||||
}
|
|
||||||
.ls {
|
|
||||||
height: 72;
|
|
||||||
}
|
|
||||||
.lh4 {
|
|
||||||
line-height: 4;
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,454 +0,0 @@
|
||||||
<template>
|
|
||||||
<Page @loaded="pgLoad" actionBarHidden="true">
|
|
||||||
<GridLayout rows="*, auto" columns="*">
|
|
||||||
<ScrollView
|
|
||||||
@scroll="svScroll($event)"
|
|
||||||
rowSpan="2"
|
|
||||||
scrollBarIndicatorVisible="false"
|
|
||||||
>
|
|
||||||
<StackLayout>
|
|
||||||
<RGridLayout :rtl="RTL" rows="auto" columns="*, auto, 12">
|
|
||||||
<RLabel class="pTitle tw tb" :text="'timer' | L" />
|
|
||||||
<Button col="1" class="ico" :text="icon.cog" @tap="navigateTo" />
|
|
||||||
</RGridLayout>
|
|
||||||
<Timer
|
|
||||||
v-for="timer in activeTs"
|
|
||||||
:key="timer.id + key"
|
|
||||||
:timer="timer"
|
|
||||||
:formattedTime="formattedTime"
|
|
||||||
:removeTimer="removeTimer"
|
|
||||||
:togglePause="togglePause"
|
|
||||||
:timerAlert="timerAlert"
|
|
||||||
:showToast="showToast"
|
|
||||||
/>
|
|
||||||
<StackLayout class="ls"> </StackLayout>
|
|
||||||
</StackLayout>
|
|
||||||
</ScrollView>
|
|
||||||
<GridLayout v-if="!activeTs.length" rows="*, auto">
|
|
||||||
<StackLayout row="1" class="empty">
|
|
||||||
<RLabel class="tb t3 tw" :text="'ccwt' | L" />
|
|
||||||
<RLabel class="tw" :text="'plsAdd' | L" />
|
|
||||||
</StackLayout>
|
|
||||||
</GridLayout>
|
|
||||||
<RGridLayout
|
|
||||||
:rtl="RTL"
|
|
||||||
row="1"
|
|
||||||
@loaded="abLoad"
|
|
||||||
class="appbar"
|
|
||||||
:hidden="showUndo"
|
|
||||||
columns="auto, *, auto"
|
|
||||||
>
|
|
||||||
<Button class="ico rtl" :text="icon.back" @tap="navigateBack" />
|
|
||||||
<Button class="ico fab" :text="icon.plus" @tap="addTimer" col="2" />
|
|
||||||
</RGridLayout>
|
|
||||||
<SnackBar
|
|
||||||
:hidden="!showUndo || toast"
|
|
||||||
:count="countdown"
|
|
||||||
:msg="snackMsg"
|
|
||||||
:undo="undoDel"
|
|
||||||
:action="hideBar"
|
|
||||||
:onload="sbLoad"
|
|
||||||
/>
|
|
||||||
<Toast :onload="tbLoad" :toast="toast" :action="hideBar" />
|
|
||||||
<Label
|
|
||||||
rowSpan="2"
|
|
||||||
class="edge hal"
|
|
||||||
:class="{ 'f r': RTL }"
|
|
||||||
@swipe="swipeBack($event, navigateBack)"
|
|
||||||
/>
|
|
||||||
<Label
|
|
||||||
rowSpan="2"
|
|
||||||
class="edge har rtl"
|
|
||||||
:class="{ r: RTL, f: !RTL }"
|
|
||||||
@swipe="swipeBack($event, navigateBack)"
|
|
||||||
/>
|
|
||||||
</GridLayout>
|
|
||||||
</Page>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script lang="ts">
|
|
||||||
import { localize } from "@nativescript/localize";
|
|
||||||
import {
|
|
||||||
Observable,
|
|
||||||
Application,
|
|
||||||
Utils,
|
|
||||||
Device,
|
|
||||||
Frame,
|
|
||||||
} from "@nativescript/core";
|
|
||||||
import {
|
|
||||||
getNumber,
|
|
||||||
setNumber,
|
|
||||||
remove,
|
|
||||||
} from "@nativescript/core/application-settings";
|
|
||||||
import { mapState, mapActions } from "vuex";
|
|
||||||
import EnRecipes from "./EnRecipes.vue";
|
|
||||||
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 { EvtBus } from "~/main";
|
|
||||||
let barTimer;
|
|
||||||
declare const com, android: any;
|
|
||||||
export default {
|
|
||||||
components: { Timer, Toast, SnackBar },
|
|
||||||
props: ["recipeID"],
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
scrollPos: 1,
|
|
||||||
appbar: null,
|
|
||||||
toastbar: null,
|
|
||||||
snackbar: null,
|
|
||||||
scrollView: null,
|
|
||||||
countdown: 5,
|
|
||||||
snackMsg: null,
|
|
||||||
showUndo: 0,
|
|
||||||
undo: 0,
|
|
||||||
toast: null,
|
|
||||||
key: 99,
|
|
||||||
};
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
...mapState([
|
|
||||||
"icon",
|
|
||||||
"recipes",
|
|
||||||
"timerS",
|
|
||||||
"timerV",
|
|
||||||
"timerPs",
|
|
||||||
"activeTs",
|
|
||||||
"FGS",
|
|
||||||
"RTL",
|
|
||||||
]),
|
|
||||||
hasBackStack() {
|
|
||||||
return Frame.topmost().backStack.length;
|
|
||||||
},
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
...mapActions(["addAT", "removeAT", "clearATIs", "updateAT", "setFgS"]),
|
|
||||||
pgLoad({ object }) {
|
|
||||||
object.bindingContext = new Observable();
|
|
||||||
if (this.activeTs.filter((e: any) => e.done).length) this.openReminder();
|
|
||||||
setNumber("isTimer", 1);
|
|
||||||
},
|
|
||||||
abLoad({ object }) {
|
|
||||||
this.appbar = object;
|
|
||||||
},
|
|
||||||
tbLoad({ object }) {
|
|
||||||
this.toastbar = object;
|
|
||||||
},
|
|
||||||
sbLoad({ object }) {
|
|
||||||
this.snackbar = object;
|
|
||||||
},
|
|
||||||
svScroll(args) {
|
|
||||||
this.scrollView = args.object;
|
|
||||||
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.animateBar(this.appbar, 0);
|
|
||||||
else if (scrollUp && ab == 64) this.animateBar(this.appbar, 1);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
// 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
|
|
||||||
timerInfo() {
|
|
||||||
let activeCount = this.activeTs.length;
|
|
||||||
let pausedCount = this.activeTs.filter((e) => e.isPaused).length;
|
|
||||||
let ongoingCount = activeCount - pausedCount;
|
|
||||||
this.foregroundService(activeCount);
|
|
||||||
function show() {
|
|
||||||
utils.TimerNotif.show({
|
|
||||||
bID: "info",
|
|
||||||
cID: "cti",
|
|
||||||
cName: "Cooking Timer info",
|
|
||||||
description: localize("oAP", ongoingCount + "", pausedCount),
|
|
||||||
nID: 6,
|
|
||||||
priority: -2,
|
|
||||||
sound: null,
|
|
||||||
title: localize("timer"),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if (this.FGS) setTimeout(() => this.activeTs.length && show(), 250);
|
|
||||||
utils.wakeLock(ongoingCount);
|
|
||||||
},
|
|
||||||
timerAlert() {
|
|
||||||
let title, description, bID;
|
|
||||||
let firedTimers = this.activeTs.filter((e) => e.done);
|
|
||||||
let timer = firedTimers[0];
|
|
||||||
if (firedTimers.length > 1) {
|
|
||||||
title = localize("texp", firedTimers.length);
|
|
||||||
description = localize("ttv");
|
|
||||||
bID = "alerts";
|
|
||||||
} else if (firedTimers.length == 1) {
|
|
||||||
title =
|
|
||||||
timer.label +
|
|
||||||
(timer.recipeID ? " - " + this.getRecipeTitle(timer.recipeID) : "");
|
|
||||||
description = this.formattedTime(timer.time);
|
|
||||||
bID = "timer" + timer.id;
|
|
||||||
} else {
|
|
||||||
utils.TimerNotif.clear(7);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
utils.TimerNotif.show({
|
|
||||||
actions: 1,
|
|
||||||
bID,
|
|
||||||
cID: "cta",
|
|
||||||
cName: "Cooking Timer alerts",
|
|
||||||
description,
|
|
||||||
multi: firedTimers.length > 1,
|
|
||||||
nID: 7,
|
|
||||||
priority: 1,
|
|
||||||
sound: this.timerS.uri,
|
|
||||||
title,
|
|
||||||
vibrate: this.timerV,
|
|
||||||
});
|
|
||||||
if (firedTimers.length == 1) {
|
|
||||||
Application.android.registerBroadcastReceiver(bID, (ctx, intent) => {
|
|
||||||
EvtBus.$emit(bID, intent.getStringExtra("action"));
|
|
||||||
Application.android.unregisterBroadcastReceiver(bID);
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
Application.android.unregisterBroadcastReceiver(bID);
|
|
||||||
Application.android.registerBroadcastReceiver(bID, (ctx, intent) => {
|
|
||||||
if (intent.getStringExtra("action") == "dismissAll") {
|
|
||||||
firedTimers.forEach((t) => this.removeTimer(t.id, 1));
|
|
||||||
Application.android.unregisterBroadcastReceiver(bID);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
},
|
|
||||||
openReminder() {
|
|
||||||
this.clearATIs();
|
|
||||||
this.$showModal(TimerReminder, {
|
|
||||||
fullscreen: true,
|
|
||||||
props: {
|
|
||||||
formattedTime: this.formattedTime,
|
|
||||||
removeTimer: this.removeTimer,
|
|
||||||
togglePause: this.togglePause,
|
|
||||||
timerAlert: this.timerAlert,
|
|
||||||
showToast: this.showToast,
|
|
||||||
},
|
|
||||||
}).then(() => {
|
|
||||||
this.clearATIs();
|
|
||||||
this.key = Math.floor(Math.random() * 900) + 100;
|
|
||||||
});
|
|
||||||
},
|
|
||||||
foregroundService(n) {
|
|
||||||
const ctx = Utils.ad.getApplicationContext();
|
|
||||||
const intent = new android.content.Intent(
|
|
||||||
ctx,
|
|
||||||
com.tns.ForegroundService.class
|
|
||||||
);
|
|
||||||
if (n && !this.FGS) {
|
|
||||||
parseInt(Device.sdkVersion) < 26
|
|
||||||
? ctx.startService(intent)
|
|
||||||
: ctx.startForegroundService(intent);
|
|
||||||
this.setFgS(1);
|
|
||||||
setNumber("FGS", 1);
|
|
||||||
} else if (!this.activeTs.length) {
|
|
||||||
ctx.stopService(intent);
|
|
||||||
this.setFgS(0);
|
|
||||||
setNumber("FGS", 0);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
// DATA HANDLERS
|
|
||||||
addTimer() {
|
|
||||||
this.$showModal(TimePickerHMS, {
|
|
||||||
props: {
|
|
||||||
title: "ntmr",
|
|
||||||
label: `${localize("tmr", this.activeTs.length + 1)}`,
|
|
||||||
action: "strtBtn",
|
|
||||||
showPreset: this.timerPs.length,
|
|
||||||
},
|
|
||||||
}).then((res) => {
|
|
||||||
if (res) {
|
|
||||||
if (res == "presets") {
|
|
||||||
let list = this.timerPs.map(
|
|
||||||
(e) => `${e.label} - ${this.formattedTime(e.time)}`
|
|
||||||
);
|
|
||||||
this.$showModal(Action, {
|
|
||||||
props: {
|
|
||||||
title: "prsts",
|
|
||||||
list,
|
|
||||||
},
|
|
||||||
}).then((preset) => {
|
|
||||||
if (preset) {
|
|
||||||
let timer = JSON.parse(
|
|
||||||
JSON.stringify(this.timerPs[list.indexOf(preset)])
|
|
||||||
);
|
|
||||||
timer.id = utils.getRandomID(1);
|
|
||||||
timer.recipeID = this.recipeID;
|
|
||||||
timer.timerInt = timer.isPaused = 0;
|
|
||||||
timer.preset = timer.mode = 1;
|
|
||||||
this.addAT({
|
|
||||||
timer,
|
|
||||||
i: this.activeTs.length,
|
|
||||||
});
|
|
||||||
this.timerInfo();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
let mode = res.time != "00:00:00" ? 1 : 0;
|
|
||||||
this.addAT({
|
|
||||||
timer: {
|
|
||||||
id: utils.getRandomID(1),
|
|
||||||
label: res.label,
|
|
||||||
recipeID: this.recipeID,
|
|
||||||
time: res.time,
|
|
||||||
timerInt: 0,
|
|
||||||
isPaused: 0,
|
|
||||||
preset: 0,
|
|
||||||
done: 0,
|
|
||||||
mode,
|
|
||||||
},
|
|
||||||
i: this.activeTs.length,
|
|
||||||
});
|
|
||||||
this.timerInfo();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
removeTimer(id, noUndo) {
|
|
||||||
let i = this.activeTs.findIndex((e) => e.id == id);
|
|
||||||
let temp = this.activeTs[i];
|
|
||||||
clearInterval(temp.timerInt);
|
|
||||||
temp.timerInt = 0;
|
|
||||||
this.removeAT(i);
|
|
||||||
let secs = [getNumber(`${temp.id}c`, 0), getNumber(`${temp.id}d`, 0)];
|
|
||||||
function removeSettings() {
|
|
||||||
remove(`${temp.id}c`);
|
|
||||||
remove(`${temp.id}d`);
|
|
||||||
}
|
|
||||||
removeSettings();
|
|
||||||
if (!noUndo) {
|
|
||||||
this.showUndoBar("tmrRm")
|
|
||||||
.then(() => {
|
|
||||||
setNumber(`${temp.id}c`, secs[0]),
|
|
||||||
setNumber(`${temp.id}d`, secs[1]),
|
|
||||||
this.addAT({
|
|
||||||
timer: temp,
|
|
||||||
i,
|
|
||||||
});
|
|
||||||
this.timerInfo();
|
|
||||||
})
|
|
||||||
.catch(() => removeSettings());
|
|
||||||
}
|
|
||||||
this.timerAlert();
|
|
||||||
this.timerInfo();
|
|
||||||
},
|
|
||||||
togglePause(timer, n) {
|
|
||||||
timer.isPaused =
|
|
||||||
typeof n === "number" ? n : (!timer.isPaused as boolean | 0);
|
|
||||||
this.updateAT(timer);
|
|
||||||
n ? 0 : this.timerInfo();
|
|
||||||
},
|
|
||||||
showToast(data) {
|
|
||||||
this.animateBar(this.snackbar, 0);
|
|
||||||
this.animateBar(this.appbar, 0).then(() => {
|
|
||||||
this.showUndo = 0;
|
|
||||||
this.toast = localize(data);
|
|
||||||
this.animateBar(this.toastbar, 1, 1);
|
|
||||||
let a = 5;
|
|
||||||
clearInterval(barTimer);
|
|
||||||
barTimer = setInterval(() => a-- < 1 && this.hideBar(), 1000);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
showUndoBar(message) {
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
this.animateBar(this.toastbar, 0);
|
|
||||||
this.animateBar(this.appbar, 0).then(() => {
|
|
||||||
this.toast = null;
|
|
||||||
this.showUndo = 1;
|
|
||||||
this.snackMsg = message;
|
|
||||||
this.countdown = 5;
|
|
||||||
this.animateBar(this.snackbar, 1, 1).then(() => {
|
|
||||||
let a = 5;
|
|
||||||
clearInterval(barTimer);
|
|
||||||
barTimer = setInterval(() => {
|
|
||||||
if (this.undo) {
|
|
||||||
this.hideBar();
|
|
||||||
resolve(1);
|
|
||||||
}
|
|
||||||
this.countdown = Math.round((a -= 0.1));
|
|
||||||
if (this.countdown < 1) {
|
|
||||||
this.hideBar();
|
|
||||||
reject(1);
|
|
||||||
}
|
|
||||||
}, 100);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
},
|
|
||||||
hideBar() {
|
|
||||||
clearInterval(barTimer);
|
|
||||||
this.animateBar(this.toast ? this.toastbar : this.snackbar, 0).then(
|
|
||||||
() => {
|
|
||||||
this.showUndo = this.undo = 0;
|
|
||||||
this.toast = null;
|
|
||||||
this.animateBar(this.appbar, 1);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
},
|
|
||||||
undoDel() {
|
|
||||||
this.undo = 1;
|
|
||||||
},
|
|
||||||
|
|
||||||
//NAVIGATION HANDLERS
|
|
||||||
navigateTo() {
|
|
||||||
this.$navigateTo(CTSettings, {
|
|
||||||
transition: {
|
|
||||||
name: this.RTL ? "slideRight" : "slide",
|
|
||||||
duration: 200,
|
|
||||||
curve: "easeOut",
|
|
||||||
},
|
|
||||||
});
|
|
||||||
},
|
|
||||||
navigateBack() {
|
|
||||||
setNumber("isTimer", 0);
|
|
||||||
this.hasBackStack
|
|
||||||
? this.$navigateBack()
|
|
||||||
: this.$navigateTo(EnRecipes, {
|
|
||||||
clearHistory: true,
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
// HELPERS
|
|
||||||
},
|
|
||||||
created() {
|
|
||||||
this.clearATIs();
|
|
||||||
this.recipeID && this.addTimer();
|
|
||||||
},
|
|
||||||
destroyed() {
|
|
||||||
setNumber("isTimer", 0);
|
|
||||||
},
|
|
||||||
};
|
|
||||||
</script>
|
|
57
app/components/GroceryList.vue
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
<template>
|
||||||
|
<Page @loaded="onPageLoad">
|
||||||
|
<ActionBar flat="true">
|
||||||
|
<GridLayout rows="*" columns="auto, *, auto">
|
||||||
|
<Button class="ico left" :text="icon.back" @tap="$navigateBack()" />
|
||||||
|
<Label class="title tb" :text="'grocery' | L" col="1" />
|
||||||
|
<Button class="ico left" :text="icon.today" col="2" />
|
||||||
|
</GridLayout>
|
||||||
|
</ActionBar>
|
||||||
|
<GridLayout columns="" rows=""> </GridLayout>
|
||||||
|
</Page>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { ApplicationSettings, Observable } from "@nativescript/core";
|
||||||
|
import { mapState, mapActions } from "vuex";
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
appTheme: "Light",
|
||||||
|
};
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapState(["icon", "recipes", "mealPlans"]),
|
||||||
|
isLightMode() {
|
||||||
|
return this.appTheme === "Light";
|
||||||
|
},
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
...mapActions(["setComponent"]),
|
||||||
|
onPageLoad(args) {
|
||||||
|
const page = args.object;
|
||||||
|
page.bindingContext = new Observable();
|
||||||
|
this.setComponent("GroceryList");
|
||||||
|
},
|
||||||
|
// HELPERS
|
||||||
|
|
||||||
|
// NAVIGATION HANDLERS
|
||||||
|
viewRecipe(recipeID) {
|
||||||
|
let recipe = this.recipes.filter((e) => e.id === recipeID)[0];
|
||||||
|
if (recipe) {
|
||||||
|
this.$navigateTo(ViewRecipe, {
|
||||||
|
props: {
|
||||||
|
filterTrylater: true,
|
||||||
|
recipeID,
|
||||||
|
},
|
||||||
|
backstackVisible: false,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// DATA HANDLERS
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.appTheme = ApplicationSettings.getString("appTheme", "Light");
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
106
app/components/Settings.vue
Normal file
|
@ -0,0 +1,106 @@
|
||||||
|
<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>
|
116
app/components/Settings/About.vue
Normal file
|
@ -0,0 +1,116 @@
|
||||||
|
<template>
|
||||||
|
<Page @loaded="onPageLoad" actionBarHidden="true">
|
||||||
|
<GridLayout rows="*, auto" columns="auto, *">
|
||||||
|
<ListView
|
||||||
|
rowSpan="2"
|
||||||
|
colSpan="2"
|
||||||
|
class="options-list"
|
||||||
|
for="item in items"
|
||||||
|
>
|
||||||
|
<v-template if="$index == 0">
|
||||||
|
<Label class="pageTitle" :text="'About' | L" />
|
||||||
|
</v-template>
|
||||||
|
<v-template if="$index == 1">
|
||||||
|
<StackLayout class="app-info">
|
||||||
|
<Image
|
||||||
|
class="icon"
|
||||||
|
src="res://logo"
|
||||||
|
stretch="none"
|
||||||
|
/>
|
||||||
|
<Label class="name tb tac" :text="'EnRecipes' | L" />
|
||||||
|
<Label :text="getVersion" class="version tb tac" />
|
||||||
|
|
||||||
|
<Label class="info tac tw" :text="'appInfo' | L" />
|
||||||
|
</StackLayout>
|
||||||
|
</v-template>
|
||||||
|
<v-template if="$index == 8">
|
||||||
|
<StackLayout class="listSpace"> </StackLayout>
|
||||||
|
</v-template>
|
||||||
|
<v-template>
|
||||||
|
<GridLayout
|
||||||
|
columns="auto, *"
|
||||||
|
class="option"
|
||||||
|
@touch="touch($event, item.url)"
|
||||||
|
>
|
||||||
|
<Label class="ico" :text="icon[item.icon]" />
|
||||||
|
<Label 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 { Application, Observable, Utils } from "@nativescript/core";
|
||||||
|
import { mapState } from "vuex";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
computed: {
|
||||||
|
...mapState(["icon"]),
|
||||||
|
items() {
|
||||||
|
return [
|
||||||
|
{},
|
||||||
|
{},
|
||||||
|
{
|
||||||
|
icon: "gh",
|
||||||
|
title: "gh",
|
||||||
|
url: "https://github.com/vishnuraghavb/EnRecipes",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: "tg",
|
||||||
|
title: "joinTG",
|
||||||
|
url: "https://t.me/enrecipes",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: "help",
|
||||||
|
title: "guide",
|
||||||
|
url: "https://github.com/vishnuraghavb/EnRecipes/wiki/User-Guide",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: "priv",
|
||||||
|
title: "priv",
|
||||||
|
url:
|
||||||
|
"https://github.com/vishnuraghavb/EnRecipes/blob/main/PRIVACY.md",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: "don",
|
||||||
|
title: "donate",
|
||||||
|
url: "https://www.vishnuraghav.com/donate",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: "trans",
|
||||||
|
title: "trnsl",
|
||||||
|
url: "https://hosted.weblate.org/projects/enrecipes/app-translations",
|
||||||
|
},
|
||||||
|
{},
|
||||||
|
];
|
||||||
|
},
|
||||||
|
getVersion() {
|
||||||
|
let ctx = Application.android.context;
|
||||||
|
return (
|
||||||
|
"v" +
|
||||||
|
ctx.getPackageManager().getPackageInfo(ctx.getPackageName(), 0)
|
||||||
|
.versionName
|
||||||
|
);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
onPageLoad(args) {
|
||||||
|
const page = args.object;
|
||||||
|
page.bindingContext = new Observable();
|
||||||
|
},
|
||||||
|
// HELPERS
|
||||||
|
openURL(url) {
|
||||||
|
Utils.openUrl(url);
|
||||||
|
},
|
||||||
|
touch({ object, action }, url) {
|
||||||
|
object.className = action.match(/down|move/) ? "option fade" : "option";
|
||||||
|
if (action == "up") this.openURL(url);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
139
app/components/Settings/CTSettings.vue
Normal file
|
@ -0,0 +1,139 @@
|
||||||
|
<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>
|
455
app/components/Settings/Database.vue
Normal file
|
@ -0,0 +1,455 @@
|
||||||
|
<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>
|
||||||
|
<GridLayout
|
||||||
|
v-show="!toast && !progress"
|
||||||
|
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
|
||||||
|
v-show="progress"
|
||||||
|
row="1"
|
||||||
|
colSpan="2"
|
||||||
|
class="appbar snackBar"
|
||||||
|
columns="auto, *"
|
||||||
|
>
|
||||||
|
<ActivityIndicator :busy="progress ? true : false" />
|
||||||
|
<Label col="1" class="title" :text="progress" textWrap="true" />
|
||||||
|
</GridLayout>
|
||||||
|
</GridLayout>
|
||||||
|
</Page>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
ApplicationSettings,
|
||||||
|
path,
|
||||||
|
knownFolders,
|
||||||
|
File,
|
||||||
|
Folder,
|
||||||
|
Observable,
|
||||||
|
Application,
|
||||||
|
} from "@nativescript/core";
|
||||||
|
import { localize } from "@nativescript/localize";
|
||||||
|
import ConfirmDialog from "../modal/ConfirmDialog.vue";
|
||||||
|
import { mapState, mapActions } from "vuex";
|
||||||
|
|
||||||
|
import * as utils from "~/shared/utils";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
backupFolder: null,
|
||||||
|
progress: null,
|
||||||
|
toast: null,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapState([
|
||||||
|
"icon",
|
||||||
|
"recipes",
|
||||||
|
"cuisines",
|
||||||
|
"categories",
|
||||||
|
"yieldUnits",
|
||||||
|
"units",
|
||||||
|
"mealPlans",
|
||||||
|
"importSummary",
|
||||||
|
]),
|
||||||
|
items() {
|
||||||
|
return [
|
||||||
|
{},
|
||||||
|
{
|
||||||
|
icon: "folder",
|
||||||
|
title: "buFol",
|
||||||
|
subTitle: this.backupFolder,
|
||||||
|
action: this.setBackupFolder,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: "exp",
|
||||||
|
title: "expBu",
|
||||||
|
subTitle: localize("buInfo"),
|
||||||
|
action: this.exportCheck,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: "imp",
|
||||||
|
title: "impBu",
|
||||||
|
subTitle: localize("impInfo"),
|
||||||
|
action: this.openZipFile,
|
||||||
|
},
|
||||||
|
{},
|
||||||
|
];
|
||||||
|
},
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
...mapActions([
|
||||||
|
"importListItemsAction",
|
||||||
|
"importRecipesAction",
|
||||||
|
"importMealPlansAction",
|
||||||
|
"unlinkBrokenImages",
|
||||||
|
"clearImportSummary",
|
||||||
|
]),
|
||||||
|
onPageLoad(args) {
|
||||||
|
const page = args.object;
|
||||||
|
page.bindingContext = new Observable();
|
||||||
|
const ContentResolver = Application.android.nativeApp.getContentResolver();
|
||||||
|
this.backupFolder = ApplicationSettings.getString("backupFolder");
|
||||||
|
if (
|
||||||
|
!this.backupFolder ||
|
||||||
|
ContentResolver.getPersistedUriPermissions().isEmpty()
|
||||||
|
) {
|
||||||
|
this.backupFolder = null;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// BACKUP FOLDER PICKER
|
||||||
|
setBackupFolder(startExport) {
|
||||||
|
const ContentResolver = Application.android.nativeApp.getContentResolver();
|
||||||
|
const FLAGS =
|
||||||
|
android.content.Intent.FLAG_GRANT_READ_URI_PERMISSION |
|
||||||
|
android.content.Intent.FLAG_GRANT_WRITE_URI_PERMISSION;
|
||||||
|
utils.getBackupFolder().then((uri) => {
|
||||||
|
if (uri != null) {
|
||||||
|
if (this.backupFolder)
|
||||||
|
ContentResolver.releasePersistableUriPermission(
|
||||||
|
new android.net.Uri.parse(this.backupFolder),
|
||||||
|
FLAGS
|
||||||
|
);
|
||||||
|
this.backupFolder = uri.toString();
|
||||||
|
ApplicationSettings.setString("backupFolder", this.backupFolder);
|
||||||
|
// PERSIST PERMISSIONS
|
||||||
|
ContentResolver.takePersistableUriPermission(uri, FLAGS);
|
||||||
|
if (startExport && this.backupFolder) {
|
||||||
|
this.exportBackup();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// EXPORT HANDLERS
|
||||||
|
exportCheck() {
|
||||||
|
const ContentResolver = Application.android.nativeApp.getContentResolver();
|
||||||
|
if (!this.recipes.length) {
|
||||||
|
this.toast = localize("aFBu");
|
||||||
|
utils.timer(5, (val) => {
|
||||||
|
if (!val) this.toast = val;
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
if (
|
||||||
|
!this.backupFolder ||
|
||||||
|
ContentResolver.getPersistedUriPermissions().isEmpty()
|
||||||
|
) {
|
||||||
|
this.setBackupFolder(true);
|
||||||
|
} else this.exportBackup();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
exportBackup() {
|
||||||
|
this.progress = localize("expip");
|
||||||
|
this.exportFiles("create");
|
||||||
|
let date = new Date();
|
||||||
|
let formattedDate =
|
||||||
|
date.getFullYear() +
|
||||||
|
"-" +
|
||||||
|
("0" + (date.getMonth() + 1)).slice(-2) +
|
||||||
|
"-" +
|
||||||
|
("0" + date.getDate()).slice(-2) +
|
||||||
|
"_" +
|
||||||
|
("0" + date.getHours()).slice(-2) +
|
||||||
|
("0" + date.getMinutes()).slice(-2) +
|
||||||
|
("0" + date.getSeconds()).slice(-2);
|
||||||
|
|
||||||
|
let filename = `${localize("EnRecipes")}_${formattedDate}.zip`;
|
||||||
|
let fromPath = path.join(knownFolders.documents().path, "EnRecipes");
|
||||||
|
utils.Zip.zip(fromPath, this.backupFolder, filename)
|
||||||
|
.then((res) => res && this.showExportSummary(filename))
|
||||||
|
.catch((err) => {
|
||||||
|
console.log("Backup error: ", err);
|
||||||
|
this.progress = null;
|
||||||
|
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) {
|
||||||
|
this.progress = null;
|
||||||
|
let description = localize("buto", `"${filename}"`);
|
||||||
|
this.$showModal(ConfirmDialog, {
|
||||||
|
props: {
|
||||||
|
title: "expSuc",
|
||||||
|
description,
|
||||||
|
okButtonText: "OK",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// IMPORT HANDLERS
|
||||||
|
openZipFile() {
|
||||||
|
utils.getBackupFile().then((uri) => {
|
||||||
|
if (uri) {
|
||||||
|
let dest = knownFolders.temp().path;
|
||||||
|
utils.Zip.unzip(uri, dest)
|
||||||
|
.then((res) => res && this.validateZipContent(res, uri))
|
||||||
|
.catch(() => this.failedImport(localize("buInc")));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
validateZipContent(extractedFolderPath, 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",
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
const timer = setInterval(() => {
|
||||||
|
if (!this.progress) clearInterval(timer);
|
||||||
|
if (this.progress && this.importSummary.found) {
|
||||||
|
Folder.exists(ImagesFolderPath)
|
||||||
|
? this.importImages(uri)
|
||||||
|
: this.showImportSummary();
|
||||||
|
}
|
||||||
|
}, 100);
|
||||||
|
} 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);
|
||||||
|
files.forEach((file, i) => {
|
||||||
|
File.fromPath(file.path)
|
||||||
|
.readText()
|
||||||
|
.then((data) => {
|
||||||
|
isValid[i] = this.hasValidJSON(data);
|
||||||
|
if (!isValid[i]) {
|
||||||
|
this.failedImport(
|
||||||
|
`${localize("buMod")}\n\n${localize("invFile")}: ${file.file}`
|
||||||
|
);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if (isValid.every((e) => e === true)) {
|
||||||
|
files.forEach((file) => {
|
||||||
|
File.fromPath(file.path)
|
||||||
|
.readText()
|
||||||
|
.then((data) => {
|
||||||
|
this.importDataToDB(JSON.parse(data), file.db);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
} else this.failedImport(localize("buEmp"));
|
||||||
|
},
|
||||||
|
failedImport(description) {
|
||||||
|
this.progress = null;
|
||||||
|
knownFolders.temp().clear();
|
||||||
|
this.$showModal(ConfirmDialog, {
|
||||||
|
props: {
|
||||||
|
title: "impFail",
|
||||||
|
description,
|
||||||
|
okButtonText: "OK",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
},
|
||||||
|
hasValidJSON(data) {
|
||||||
|
try {
|
||||||
|
JSON.parse(data) && Array.isArray(JSON.parse(data));
|
||||||
|
} catch (e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
importDataToDB(data, db) {
|
||||||
|
switch (db) {
|
||||||
|
case "EnRecipesDB":
|
||||||
|
this.importRecipesAction(data);
|
||||||
|
break;
|
||||||
|
case "userCuisinesDB":
|
||||||
|
this.importListItemsAction({
|
||||||
|
data,
|
||||||
|
listName: "cuisines",
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case "userCategoriesDB":
|
||||||
|
this.importListItemsAction({
|
||||||
|
data,
|
||||||
|
listName: "categories",
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case "userYieldUnitsDB":
|
||||||
|
this.importListItemsAction({
|
||||||
|
data,
|
||||||
|
listName: "yieldUnits",
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case "userUnitsDB":
|
||||||
|
this.importListItemsAction({
|
||||||
|
data,
|
||||||
|
listName: "units",
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case "mealPlansDB":
|
||||||
|
this.importMealPlansAction(data);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
importImages(uri) {
|
||||||
|
let destPath = knownFolders.documents().path;
|
||||||
|
Folder.fromPath(destPath);
|
||||||
|
utils.Zip.unzip(uri, destPath).then((res) => {
|
||||||
|
if (res) {
|
||||||
|
this.showImportSummary();
|
||||||
|
this.unlinkBrokenImages();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
showImportSummary() {
|
||||||
|
this.progress = null;
|
||||||
|
knownFolders.temp().clear();
|
||||||
|
this.exportFiles("delete");
|
||||||
|
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, {
|
||||||
|
props: {
|
||||||
|
title: "impSuc",
|
||||||
|
description: `${found} ${localize(
|
||||||
|
"recF"
|
||||||
|
)}\n${importedNote}${existsNote}${updatedNote}`,
|
||||||
|
okButtonText: "OK",
|
||||||
|
},
|
||||||
|
}).then(() => this.clearImportSummary());
|
||||||
|
},
|
||||||
|
|
||||||
|
// HELPERS
|
||||||
|
touch({ object, action }, method) {
|
||||||
|
object.className = action.match(/down|move/) ? "option fade" : "option";
|
||||||
|
if (action == "up") method();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
171
app/components/Settings/Interface.vue
Normal file
|
@ -0,0 +1,171 @@
|
||||||
|
<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>
|
||||||
|
<GridLayout row="1" class="appbar" rows="*" columns="auto, *">
|
||||||
|
<Button class="ico" :text="icon.back" @tap="$navigateBack()" />
|
||||||
|
</GridLayout>
|
||||||
|
</GridLayout>
|
||||||
|
</Page>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
ApplicationSettings,
|
||||||
|
Observable,
|
||||||
|
Device,
|
||||||
|
Frame,
|
||||||
|
} from "@nativescript/core";
|
||||||
|
import { localize, overrideLocale } from "@nativescript/localize";
|
||||||
|
import ActionDialog from "../modal/ActionDialog.vue";
|
||||||
|
import ConfirmDialog from "../modal/ConfirmDialog.vue";
|
||||||
|
import { mapState, mapActions } from "vuex";
|
||||||
|
import * as utils from "~/shared/utils";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
appLanguage: "English",
|
||||||
|
};
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapState(["icon", "language", "appTheme", "layout"]),
|
||||||
|
items() {
|
||||||
|
return [
|
||||||
|
{},
|
||||||
|
{
|
||||||
|
icon: "lang",
|
||||||
|
title: "lang",
|
||||||
|
subTitle: this.appLanguage,
|
||||||
|
action: this.selectAppLanguage,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: "theme",
|
||||||
|
title: "Theme",
|
||||||
|
subTitle: localize(
|
||||||
|
ApplicationSettings.getString("appTheme", "sysDef")
|
||||||
|
),
|
||||||
|
action: this.selectThemes,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: "layout",
|
||||||
|
title: "listVM",
|
||||||
|
subTitle: localize(this.layout),
|
||||||
|
action: this.setLayoutMode,
|
||||||
|
},
|
||||||
|
{},
|
||||||
|
];
|
||||||
|
},
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
...mapActions(["setTheme", "setLayout"]),
|
||||||
|
onPageLoad(args) {
|
||||||
|
const page = args.object;
|
||||||
|
page.bindingContext = new Observable();
|
||||||
|
},
|
||||||
|
// LANGUAGE SELECTION
|
||||||
|
selectAppLanguage() {
|
||||||
|
let languages = this.language.map((e) => e.title);
|
||||||
|
this.$showModal(ActionDialog, {
|
||||||
|
props: {
|
||||||
|
title: "lang",
|
||||||
|
list: [...languages],
|
||||||
|
},
|
||||||
|
}).then((action) => {
|
||||||
|
if (action && action !== "Cancel" && 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, {
|
||||||
|
props: {
|
||||||
|
title: "appRst",
|
||||||
|
description: localize("nLangInfo"),
|
||||||
|
cancelButtonText: "cBtn",
|
||||||
|
okButtonText: "rst",
|
||||||
|
},
|
||||||
|
}).then((result) => {
|
||||||
|
if (result) {
|
||||||
|
this.appLanguage = action;
|
||||||
|
ApplicationSettings.setString("appLanguage", action);
|
||||||
|
overrideLocale(locale);
|
||||||
|
setTimeout(utils.restartApp, 250);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// THEME SELECTION
|
||||||
|
selectThemes() {
|
||||||
|
this.$showModal(ActionDialog, {
|
||||||
|
props: {
|
||||||
|
title: "Theme",
|
||||||
|
list: ["Light", "Dark", "Black", "sysDef", "sysDefB"],
|
||||||
|
},
|
||||||
|
}).then((action) => {
|
||||||
|
if (
|
||||||
|
action &&
|
||||||
|
(ApplicationSettings.getString("appTheme") != this.appTheme
|
||||||
|
? true
|
||||||
|
: this.appTheme != action)
|
||||||
|
) {
|
||||||
|
this.setTheme(action);
|
||||||
|
Frame.reloadPage();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// LAYOUT MODE
|
||||||
|
setLayoutMode() {
|
||||||
|
this.$showModal(ActionDialog, {
|
||||||
|
props: {
|
||||||
|
title: "listVM",
|
||||||
|
list: ["detailed", "grid", "photogrid", "simple", "minimal"],
|
||||||
|
},
|
||||||
|
}).then((action) => {
|
||||||
|
if (action && action !== "Cancel" && 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() {
|
||||||
|
this.appLanguage = ApplicationSettings.getString(
|
||||||
|
"appLanguage",
|
||||||
|
localize("sysDef")
|
||||||
|
);
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
119
app/components/Settings/Options.vue
Normal file
|
@ -0,0 +1,119 @@
|
||||||
|
<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>
|
112
app/components/Settings/Reset.vue
Normal file
|
@ -0,0 +1,112 @@
|
||||||
|
<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>
|
|
@ -1,11 +1,15 @@
|
||||||
<template>
|
<template>
|
||||||
<Page @loaded="mLoad" backgroundColor="transparent" :class="theme">
|
<Page
|
||||||
|
@loaded="transparentPage"
|
||||||
|
backgroundColor="transparent"
|
||||||
|
:class="appTheme"
|
||||||
|
>
|
||||||
<GridLayout
|
<GridLayout
|
||||||
columns="*"
|
columns="*"
|
||||||
:rows="`auto, auto, ${stretch ? '*' : 'auto'}, auto`"
|
:rows="`auto, auto, ${stretch ? '*' : 'auto'}, auto`"
|
||||||
class="modal"
|
class="modal"
|
||||||
>
|
>
|
||||||
<RLabel class="title" :text="title | L" />
|
<Label class="title" :text="title | L" />
|
||||||
<ListView
|
<ListView
|
||||||
rowHeight="48"
|
rowHeight="48"
|
||||||
row="2"
|
row="2"
|
||||||
|
@ -13,9 +17,10 @@
|
||||||
:height="stretch ? '100%' : listHeight"
|
:height="stretch ? '100%' : listHeight"
|
||||||
>
|
>
|
||||||
<v-template>
|
<v-template>
|
||||||
<RLabel
|
<Label
|
||||||
class="listItem"
|
class="listItem"
|
||||||
:class="{ select: item == selected || $index == selected }"
|
:class="{ tb: title === 'srt' && sortType === item }"
|
||||||
|
:color="title === 'srt' && sortType === item ? '#ff5200' : ''"
|
||||||
:text="`${localized(item)}`"
|
:text="`${localized(item)}`"
|
||||||
@touch="touch"
|
@touch="touch"
|
||||||
@tap="tapAction(item)"
|
@tap="tapAction(item)"
|
||||||
|
@ -23,20 +28,20 @@
|
||||||
/>
|
/>
|
||||||
</v-template>
|
</v-template>
|
||||||
</ListView>
|
</ListView>
|
||||||
<RGridLayout :rtl="RTL" row="3" columns="auto, *, auto" class="actions">
|
<GridLayout row="3" columns="auto, *, auto" class="actions">
|
||||||
<Button
|
<Button
|
||||||
:hidden="!action"
|
v-if="action"
|
||||||
class="text tb st fb"
|
class="text sm"
|
||||||
:text="action | L"
|
:text="action | L"
|
||||||
@tap="$modal.close(action)"
|
@tap="$modal.close(action)"
|
||||||
/>
|
/>
|
||||||
<Button
|
<Button
|
||||||
col="2"
|
col="2"
|
||||||
class="text tb st fb"
|
class="text sm"
|
||||||
:text="'cBtn' | L"
|
:text="'cBtn' | L"
|
||||||
@tap="$modal.close(0)"
|
@tap="$modal.close(false)"
|
||||||
/>
|
/>
|
||||||
</RGridLayout>
|
</GridLayout>
|
||||||
</GridLayout>
|
</GridLayout>
|
||||||
</Page>
|
</Page>
|
||||||
</template>
|
</template>
|
||||||
|
@ -45,11 +50,11 @@
|
||||||
import { Screen } from "@nativescript/core";
|
import { Screen } from "@nativescript/core";
|
||||||
import { localize } from "@nativescript/localize";
|
import { localize } from "@nativescript/localize";
|
||||||
import { mapState, mapActions } from "vuex";
|
import { mapState, mapActions } from "vuex";
|
||||||
import Confirm from "./Confirm.vue";
|
import ConfirmDialog from "./ConfirmDialog.vue";
|
||||||
|
|
||||||
interface IData {
|
interface IData {
|
||||||
newList: unknown[];
|
newList: unknown[];
|
||||||
stretch: number;
|
stretch: boolean;
|
||||||
listHeight: number;
|
listHeight: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -67,31 +72,27 @@ export default {
|
||||||
type: String,
|
type: String,
|
||||||
required: false,
|
required: false,
|
||||||
},
|
},
|
||||||
selected: {
|
|
||||||
type: String,
|
|
||||||
required: false,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
data(): IData {
|
data(): IData {
|
||||||
return {
|
return {
|
||||||
newList: this.list,
|
newList: this.list,
|
||||||
stretch: 0,
|
stretch: false,
|
||||||
listHeight: 0,
|
listHeight: 0,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapState(["icon", "theme", "RTL"]),
|
...mapState(["sortType", "icon", "appTheme"]),
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
...mapActions(["removeLI", "deleteTP"]),
|
...mapActions(["removeListItemAction"]),
|
||||||
localized(item: string): string {
|
localized(item: string): string {
|
||||||
return this.title !== "lang" ? localize(item) : item;
|
return this.title !== "lang" ? localize(item) : item;
|
||||||
},
|
},
|
||||||
tapAction(item: string): void {
|
tapAction(item: string): void {
|
||||||
this.$modal.close(item);
|
this.$modal.close(item);
|
||||||
},
|
},
|
||||||
removeConfirmation(description: string): void {
|
deletionConfirmation(description: string): void {
|
||||||
return this.$showModal(Confirm, {
|
return this.$showModal(ConfirmDialog, {
|
||||||
props: {
|
props: {
|
||||||
title: "conf",
|
title: "conf",
|
||||||
description,
|
description,
|
||||||
|
@ -100,61 +101,39 @@ export default {
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
deletionConfirmation(description: string): void {
|
|
||||||
return this.$showModal(Confirm, {
|
|
||||||
props: {
|
|
||||||
title: "conf",
|
|
||||||
description,
|
|
||||||
cancelButtonText: "cBtn",
|
|
||||||
okButtonText: "dBtn",
|
|
||||||
},
|
|
||||||
});
|
|
||||||
},
|
|
||||||
removeItem(item: string): void {
|
removeItem(item: string): void {
|
||||||
let vm = this;
|
let vm = this;
|
||||||
let index = this.newList.findIndex((e) => e === item);
|
|
||||||
let localizedItem = `"${localize(item)}"`;
|
let localizedItem = `"${localize(item)}"`;
|
||||||
function removeLI(listName: string, desc: string): void {
|
function removeListItem(listName: string, desc: string): void {
|
||||||
vm.removeConfirmation(`${localize(desc, localizedItem)}`).then(
|
vm.deletionConfirmation(`${localize(desc, localizedItem)}`).then(
|
||||||
(action: boolean) => {
|
(action: boolean) => {
|
||||||
if (action)
|
if (action != null && action)
|
||||||
vm.removeLI({
|
vm.removeListItemAction({
|
||||||
item,
|
item,
|
||||||
listName,
|
listName,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
function deleteTP(): void {
|
|
||||||
vm.deletionConfirmation(`${localize("delPrst", `"${item}"`)}`).then(
|
|
||||||
(action: boolean) => {
|
|
||||||
if (action) {
|
|
||||||
vm.deleteTP(index);
|
|
||||||
vm.newList.splice(index, 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
switch (this.title) {
|
switch (this.title) {
|
||||||
case "cui":
|
case "cui":
|
||||||
removeLI("cuisines", "rmCuiInfo");
|
removeListItem("cuisines", "rmCuiInfo");
|
||||||
break;
|
break;
|
||||||
case "cat":
|
case "cat":
|
||||||
removeLI("categories", "rmCatInfo");
|
removeListItem("categories", "rmCatInfo");
|
||||||
break;
|
break;
|
||||||
case "yieldU":
|
case "yieldU":
|
||||||
removeLI("yieldUnits", "rmYUInfo");
|
removeListItem("yieldUnits", "rmYUInfo");
|
||||||
break;
|
break;
|
||||||
case "Unit":
|
case "Unit":
|
||||||
removeLI("units", "rmUInfo");
|
removeListItem("units", "rmUInfo");
|
||||||
break;
|
|
||||||
case "prsts":
|
|
||||||
deleteTP();
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
touch({ object, action }): void {
|
touch({ object, action }): void {
|
||||||
this.touchFade(object, action);
|
object.className = action.match(/down|move/)
|
||||||
|
? "listItem fade"
|
||||||
|
: "listItem";
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
@ -166,7 +145,7 @@ export default {
|
||||||
if (modalHeight < usableHeight) {
|
if (modalHeight < usableHeight) {
|
||||||
this.listHeight = listHeight;
|
this.listHeight = listHeight;
|
||||||
} else {
|
} else {
|
||||||
this.stretch = 1;
|
this.stretch = true;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
};
|
};
|
|
@ -1,14 +1,17 @@
|
||||||
<template>
|
<template>
|
||||||
<Page @loaded="mLoad" backgroundColor="transparent" :class="theme">
|
<Page
|
||||||
|
@loaded="transparentPage"
|
||||||
|
backgroundColor="transparent"
|
||||||
|
:class="appTheme"
|
||||||
|
>
|
||||||
<GridLayout columns="*" rows="auto, auto, *, auto" class="modal">
|
<GridLayout columns="*" rows="auto, auto, *, auto" class="modal">
|
||||||
<RLabel class="title" :text="title | L" />
|
<Label class="title" :text="title | L" />
|
||||||
<StackLayout
|
<StackLayout
|
||||||
row="1"
|
row="1"
|
||||||
:hidden="!filteredRecipes.length && !searchQuery"
|
v-if="filteredRecipes.length || searchQuery"
|
||||||
class="input"
|
class="input"
|
||||||
>
|
>
|
||||||
<TextField
|
<TextField
|
||||||
@loaded="setGravity"
|
|
||||||
class="modalInput"
|
class="modalInput"
|
||||||
:hint="'ser' | L"
|
:hint="'ser' | L"
|
||||||
v-model="searchQuery"
|
v-model="searchQuery"
|
||||||
|
@ -16,7 +19,7 @@
|
||||||
</StackLayout>
|
</StackLayout>
|
||||||
<ListView row="2" for="recipe in filteredRecipes">
|
<ListView row="2" for="recipe in filteredRecipes">
|
||||||
<v-template>
|
<v-template>
|
||||||
<RLabel
|
<Label
|
||||||
class="listItem"
|
class="listItem"
|
||||||
:text="recipe.title"
|
:text="recipe.title"
|
||||||
@touch="touch($event, recipe)"
|
@touch="touch($event, recipe)"
|
||||||
|
@ -25,26 +28,30 @@
|
||||||
</ListView>
|
</ListView>
|
||||||
<Label
|
<Label
|
||||||
row="2"
|
row="2"
|
||||||
padding="16"
|
class="noResInfo"
|
||||||
lineHeight="4"
|
v-if="!filteredRecipes.length && !searchQuery"
|
||||||
class="tc tw"
|
:text="'recListEmp' | L"
|
||||||
:hidden="!noResult"
|
|
||||||
:text="noResult | L"
|
|
||||||
/>
|
/>
|
||||||
<RGridLayout :rtl="RTL" row="3" columns="auto, *, auto" class="actions">
|
<Label
|
||||||
|
row="2"
|
||||||
|
class="noResInfo"
|
||||||
|
v-if="!filteredRecipes.length && searchQuery"
|
||||||
|
:text="'noRecs' | L"
|
||||||
|
/>
|
||||||
|
<GridLayout row="3" columns="auto, *, auto" class="actions">
|
||||||
<Button
|
<Button
|
||||||
:hidden="!action"
|
v-if="action"
|
||||||
class="text tb st fb"
|
class="text sm"
|
||||||
:text="action | L"
|
:text="action | L"
|
||||||
@tap="$modal.close(action)"
|
@tap="$modal.close(action)"
|
||||||
/>
|
/>
|
||||||
<Button
|
<Button
|
||||||
col="2"
|
col="2"
|
||||||
class="text tb st fb"
|
class="text sm"
|
||||||
:text="'cBtn' | L"
|
:text="'CANCEL' | L"
|
||||||
@tap="$modal.close(0)"
|
@tap="$modal.close(false)"
|
||||||
/>
|
/>
|
||||||
</RGridLayout>
|
</GridLayout>
|
||||||
</GridLayout>
|
</GridLayout>
|
||||||
</Page>
|
</Page>
|
||||||
</template>
|
</template>
|
||||||
|
@ -59,7 +66,7 @@ export default {
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapState(["icon", "theme", "RTL"]),
|
...mapState(["icon", "appTheme"]),
|
||||||
filteredRecipes() {
|
filteredRecipes() {
|
||||||
return this.recipes
|
return this.recipes
|
||||||
.map((e, i) => {
|
.map((e, i) => {
|
||||||
|
@ -69,22 +76,19 @@ export default {
|
||||||
cuisine: e.cuisine,
|
cuisine: e.cuisine,
|
||||||
category: e.category,
|
category: e.category,
|
||||||
tags: e.tags.map((e) => e.toLowerCase()).join(),
|
tags: e.tags.map((e) => e.toLowerCase()).join(),
|
||||||
ingredients: e.ingredients.map((e) => e.value.toLowerCase()).join(),
|
ingredients: e.ingredients.map((e) => e.item.toLowerCase()).join(),
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
.filter((e) => this.recipeFilter(e));
|
.filter((e) => this.recipeFilter(e));
|
||||||
},
|
},
|
||||||
noResult() {
|
|
||||||
if (!this.recipes.length) return "recListEmp";
|
|
||||||
else if (!this.filteredRecipes.length && this.searchQuery)
|
|
||||||
return "noRecs";
|
|
||||||
else 0;
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
tapAction(recipe) {
|
tapAction(recipe) {
|
||||||
this.$modal.close(recipe.id);
|
this.$modal.close(recipe.id);
|
||||||
},
|
},
|
||||||
|
centerLabel(args) {
|
||||||
|
args.object.android.setGravity(16);
|
||||||
|
},
|
||||||
recipeFilter(e) {
|
recipeFilter(e) {
|
||||||
let searchQuery = this.searchQuery.toLowerCase();
|
let searchQuery = this.searchQuery.toLowerCase();
|
||||||
return (
|
return (
|
||||||
|
@ -96,7 +100,9 @@ export default {
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
touch({ object, action }, recipe) {
|
touch({ object, action }, recipe) {
|
||||||
this.touchFade(object, action);
|
object.className = action.match(/down|move/)
|
||||||
|
? "listItem fade"
|
||||||
|
: "listItem";
|
||||||
if (action == "up") this.tapAction(recipe);
|
if (action == "up") this.tapAction(recipe);
|
||||||
},
|
},
|
||||||
},
|
},
|
|
@ -1,28 +1,32 @@
|
||||||
<template>
|
<template>
|
||||||
<Page @loaded="mLoad" backgroundColor="transparent" :class="theme">
|
<Page
|
||||||
|
@loaded="transparentPage"
|
||||||
|
backgroundColor="transparent"
|
||||||
|
:class="appTheme"
|
||||||
|
>
|
||||||
<GridLayout rows="auto, auto, auto" class="modal">
|
<GridLayout rows="auto, auto, auto" class="modal">
|
||||||
<RLabel class="title" :text="title | L" />
|
<Label class="title" :text="title | L" />
|
||||||
<Label
|
<Label
|
||||||
row="1"
|
row="1"
|
||||||
v-if="description"
|
v-if="description"
|
||||||
class="desc input tw lh4"
|
class="description tw"
|
||||||
:text="description"
|
:text="description"
|
||||||
/>
|
/>
|
||||||
<RGridLayout :rtl="RTL" row="2" columns="*, auto, auto" class="actions">
|
<GridLayout row="2" columns="*, auto, auto" class="actions">
|
||||||
<Button
|
<Button
|
||||||
v-if="cancelButtonText"
|
v-if="cancelButtonText"
|
||||||
col="1"
|
col="1"
|
||||||
class="text tb st fb"
|
class="text sm"
|
||||||
:text="cancelButtonText | L"
|
:text="cancelButtonText | L"
|
||||||
@tap="$modal.close(0)"
|
@tap="$modal.close(false)"
|
||||||
/>
|
/>
|
||||||
<Button
|
<Button
|
||||||
col="2"
|
col="2"
|
||||||
class="text tb st fb"
|
class="text sm"
|
||||||
:text="okButtonText | L"
|
:text="okButtonText | L"
|
||||||
@tap="$modal.close(1)"
|
@tap="$modal.close(true)"
|
||||||
/>
|
/>
|
||||||
</RGridLayout>
|
</GridLayout>
|
||||||
</GridLayout>
|
</GridLayout>
|
||||||
</Page>
|
</Page>
|
||||||
</template>
|
</template>
|
||||||
|
@ -49,7 +53,7 @@ export default {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapState(["icon", "theme", "RTL"]),
|
...mapState(["icon", "appTheme"]),
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
|
@ -1,32 +1,28 @@
|
||||||
<template>
|
<template>
|
||||||
<Page @loaded="pgLoad" backgroundColor="transparent" :class="theme">
|
<Page @loaded="onPageLoad" backgroundColor="transparent" :class="appTheme">
|
||||||
<GridLayout rows="auto, auto, *, auto" columns="*" class="modal">
|
<GridLayout rows="auto, auto, *, auto" columns="*" class="modal">
|
||||||
<RLabel class="title a" :text="`fltr` | L" />
|
<Label class="title" :text="`fltr` | L" />
|
||||||
<ScrollView orientation="horizontal" row="1" @loaded="onScrollLoad">
|
<ScrollView orientation="horizontal" row="1" @loaded="onScrollLoad">
|
||||||
<RStackLayout :rtl="RTL" class="filters" orientation="horizontal">
|
<StackLayout class="filters" orientation="horizontal">
|
||||||
<GridLayout
|
<GridLayout
|
||||||
rows="32"
|
rows="48"
|
||||||
columns="32, auto"
|
columns="auto, auto"
|
||||||
class="segment rtl"
|
class="segment"
|
||||||
v-for="(item, index) in pathList"
|
v-for="(item, index) in pathList"
|
||||||
:key="index"
|
:key="index"
|
||||||
:class="{ select: filter === item.type }"
|
:class="{
|
||||||
|
select: filterType === item.type,
|
||||||
|
}"
|
||||||
@touch="touchSelector($event, item.type)"
|
@touch="touchSelector($event, item.type)"
|
||||||
>
|
>
|
||||||
<Label class="ico tc vc" :text="icon[item.type]" />
|
<Label class="ico" :text="icon[item.type]" />
|
||||||
<Label
|
<Label v-if="item.title" class="value" :text="item.title" col="1" />
|
||||||
:hidden="!item.title"
|
|
||||||
class="v vc"
|
|
||||||
:class="{ f: RTL }"
|
|
||||||
:text="item.title"
|
|
||||||
col="1"
|
|
||||||
/>
|
|
||||||
</GridLayout>
|
</GridLayout>
|
||||||
</RStackLayout>
|
</StackLayout>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
<ListView row="2" class="options" for="item in filterList">
|
<ListView row="2" class="options-list" for="item in filterList">
|
||||||
<v-template>
|
<v-template>
|
||||||
<RLabel
|
<Label
|
||||||
class="listItem"
|
class="listItem"
|
||||||
verticalAlignment="center"
|
verticalAlignment="center"
|
||||||
col="1"
|
col="1"
|
||||||
|
@ -35,26 +31,21 @@
|
||||||
/>
|
/>
|
||||||
</v-template>
|
</v-template>
|
||||||
</ListView>
|
</ListView>
|
||||||
<RGridLayout
|
<GridLayout row="3" columns="auto, *, auto, auto" class="actions">
|
||||||
:rtl="RTL"
|
<Button class="text sm" :text="'rest' | L" @tap="resetFilter" />
|
||||||
row="3"
|
|
||||||
columns="auto, *, auto, auto"
|
|
||||||
class="actions"
|
|
||||||
>
|
|
||||||
<Button class="text tb st fb" :text="'rstBtn' | L" @tap="resetFilter" />
|
|
||||||
<Button
|
<Button
|
||||||
col="2"
|
col="2"
|
||||||
class="text tb st fb"
|
class="text sm"
|
||||||
:text="'cBtn' | L"
|
:text="'cBtn' | L"
|
||||||
@tap="$modal.close()"
|
@tap="$modal.close()"
|
||||||
/>
|
/>
|
||||||
<Button
|
<Button
|
||||||
col="3"
|
col="3"
|
||||||
class="text tb st fb"
|
class="text sm"
|
||||||
:text="'apply' | L"
|
:text="'apply' | L"
|
||||||
@tap="applyFilter"
|
@tap="applyFilter"
|
||||||
/>
|
/>
|
||||||
</RGridLayout>
|
</GridLayout>
|
||||||
</GridLayout>
|
</GridLayout>
|
||||||
</Page>
|
</Page>
|
||||||
</template>
|
</template>
|
||||||
|
@ -66,11 +57,11 @@ let filterTimer;
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
filter: "cuisine",
|
filterType: "cuisine",
|
||||||
localCuisine: null,
|
localCuisine: null,
|
||||||
localCategory: null,
|
localCategory: null,
|
||||||
localTag: null,
|
localTag: null,
|
||||||
reset: 0,
|
reset: false,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
@ -79,11 +70,10 @@ export default {
|
||||||
"recipes",
|
"recipes",
|
||||||
"cuisines",
|
"cuisines",
|
||||||
"categories",
|
"categories",
|
||||||
"selCuisine",
|
"selectedCuisine",
|
||||||
"selCategory",
|
"selectedCategory",
|
||||||
"selTag",
|
"selectedTag",
|
||||||
"theme",
|
"appTheme",
|
||||||
"RTL",
|
|
||||||
]),
|
]),
|
||||||
pathList() {
|
pathList() {
|
||||||
let arr = [
|
let arr = [
|
||||||
|
@ -100,7 +90,7 @@ export default {
|
||||||
title: localize(this.localTag),
|
title: localize(this.localTag),
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
switch (this.filter) {
|
switch (this.filterType) {
|
||||||
case "cuisine":
|
case "cuisine":
|
||||||
return arr.slice(0, -2);
|
return arr.slice(0, -2);
|
||||||
case "category":
|
case "category":
|
||||||
|
@ -109,7 +99,7 @@ export default {
|
||||||
return arr;
|
return arr;
|
||||||
},
|
},
|
||||||
filterList() {
|
filterList() {
|
||||||
switch (this.filter) {
|
switch (this.filterType) {
|
||||||
case "cuisine":
|
case "cuisine":
|
||||||
return this.cuisineList;
|
return this.cuisineList;
|
||||||
case "category":
|
case "category":
|
||||||
|
@ -173,21 +163,27 @@ export default {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
...mapActions(["setCuisine", "setCategory", "setTag"]),
|
...mapActions([
|
||||||
pgLoad(args) {
|
"setComponent",
|
||||||
this.mLoad(args);
|
"setCuisine",
|
||||||
this.localCuisine = this.selCuisine;
|
"setCategory",
|
||||||
this.localCategory = this.selCategory;
|
"setTag",
|
||||||
this.localTag = this.selTag;
|
"clearFilter",
|
||||||
if (this.localCuisine) this.filter = "category";
|
]),
|
||||||
if (this.localCategory && this.localTag) this.filter = "tag";
|
onPageLoad(args) {
|
||||||
|
this.transparentPage(args);
|
||||||
|
this.localCuisine = this.selectedCuisine;
|
||||||
|
this.localCategory = this.selectedCategory;
|
||||||
|
this.localTag = this.selectedTag;
|
||||||
|
if (this.localCuisine) this.filterType = "category";
|
||||||
|
if (this.localCategory && this.localTag) this.filterType = "tag";
|
||||||
this.scrollToRight();
|
this.scrollToRight();
|
||||||
},
|
},
|
||||||
onScrollLoad(args) {
|
onScrollLoad(args) {
|
||||||
this.scrollview = args.object;
|
this.scrollview = args.object;
|
||||||
},
|
},
|
||||||
setFilterType(type) {
|
setFilterType(type) {
|
||||||
this.filter = type;
|
this.filterType = type;
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case "cuisine":
|
case "cuisine":
|
||||||
this.localCategory = null;
|
this.localCategory = null;
|
||||||
|
@ -202,22 +198,22 @@ export default {
|
||||||
setTimeout(
|
setTimeout(
|
||||||
() =>
|
() =>
|
||||||
this.scrollview.scrollToHorizontalOffset(
|
this.scrollview.scrollToHorizontalOffset(
|
||||||
this.RTL ? 0 : this.scrollview.scrollableWidth,
|
this.scrollview.scrollableWidth,
|
||||||
true
|
true
|
||||||
),
|
),
|
||||||
10
|
10
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
setRecipeFilter(item) {
|
setRecipeFilter(item) {
|
||||||
this.reset = 0;
|
this.reset = false;
|
||||||
switch (this.filter) {
|
switch (this.filterType) {
|
||||||
case "cuisine":
|
case "cuisine":
|
||||||
this.localCuisine = item;
|
this.localCuisine = item;
|
||||||
this.filter = "category";
|
this.filterType = "category";
|
||||||
break;
|
break;
|
||||||
case "category":
|
case "category":
|
||||||
this.localCategory = item;
|
this.localCategory = item;
|
||||||
if (this.tagList.length) this.filter = "tag";
|
if (this.tagList.length) this.filterType = "tag";
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
this.localTag = item;
|
this.localTag = item;
|
||||||
|
@ -229,23 +225,28 @@ export default {
|
||||||
this.setCuisine(this.localCuisine);
|
this.setCuisine(this.localCuisine);
|
||||||
this.setCategory(this.localCategory);
|
this.setCategory(this.localCategory);
|
||||||
this.setTag(this.localTag);
|
this.setTag(this.localTag);
|
||||||
this.filterFavourites = this.filterTrylater = 0;
|
this.filterFavourites = this.filterTrylater = false;
|
||||||
this.$modal.close(this.reset);
|
if (this.reset) this.setComponent("EnRecipes");
|
||||||
|
else this.setComponent("Filtered recipes");
|
||||||
|
this.$modal.close();
|
||||||
},
|
},
|
||||||
resetFilter() {
|
resetFilter() {
|
||||||
this.filter = "cuisine";
|
this.filterType = "cuisine";
|
||||||
this.localCuisine = this.localCategory = this.localTag = null;
|
this.localCuisine = this.localCategory = this.localTag = null;
|
||||||
this.reset = 1;
|
this.reset = true;
|
||||||
},
|
},
|
||||||
touch({ object, action }, item) {
|
touch({ object, action }, item) {
|
||||||
this.touchFade(object, action);
|
object.className = action.match(/down|move/)
|
||||||
|
? "listItem fade"
|
||||||
|
: "listItem";
|
||||||
if (action == "up") this.setRecipeFilter(item);
|
if (action == "up") this.setRecipeFilter(item);
|
||||||
},
|
},
|
||||||
touchSelector({ object, action }, type) {
|
touchSelector({ object, action }, type) {
|
||||||
if (this.filter != type) {
|
let selected = this.filterType == type;
|
||||||
this.touchFade(object, action);
|
object.className = action.match(/down|move/)
|
||||||
|
? `segment ${selected ? "select" : "fade"}`
|
||||||
|
: `segment ${selected && "select"}`;
|
||||||
if (action == "up") this.setFilterType(type);
|
if (action == "up") this.setFilterType(type);
|
||||||
}
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
|
@ -1,44 +1,46 @@
|
||||||
<template>
|
<template>
|
||||||
<Page
|
<Page
|
||||||
@loaded="mLoad"
|
@loaded="transparentPage"
|
||||||
backgroundColor="transparent"
|
backgroundColor="transparent"
|
||||||
:class="theme"
|
:class="appTheme"
|
||||||
>
|
>
|
||||||
<GridLayout rows="auto, auto, auto" class="modal">
|
<GridLayout rows="auto, auto, auto" class="modal">
|
||||||
<RLabel class="title" :text="title | L" />
|
<Label class="title" :text="title | L" />
|
||||||
<RStackLayout
|
<StackLayout
|
||||||
:rtl="RTL"
|
|
||||||
row="1"
|
row="1"
|
||||||
|
class="dialogListPicker"
|
||||||
orientation="horizontal"
|
orientation="horizontal"
|
||||||
horizontalAlignment="center"
|
horizontalAlignment="center"
|
||||||
>
|
>
|
||||||
<ListPicker
|
<ListPicker
|
||||||
@loaded="onLPLoad"
|
@loaded="onLPLoad"
|
||||||
|
ref="hrPicker"
|
||||||
:items="hrsList"
|
:items="hrsList"
|
||||||
:selectedIndex="hrIndex"
|
:selectedIndex="hrIndex"
|
||||||
@selectedIndexChange="setHrs"
|
@selectedIndexChange="setHrs"
|
||||||
></ListPicker>
|
></ListPicker>
|
||||||
<ListPicker
|
<ListPicker
|
||||||
@loaded="onLPLoad"
|
@loaded="onLPLoad"
|
||||||
|
ref="minPicker"
|
||||||
:items="minsList"
|
:items="minsList"
|
||||||
:selectedIndex="minIndex"
|
:selectedIndex="minIndex"
|
||||||
@selectedIndexChange="setMins"
|
@selectedIndexChange="setMins"
|
||||||
></ListPicker>
|
></ListPicker>
|
||||||
</RStackLayout>
|
</StackLayout>
|
||||||
<RGridLayout :rtl="RTL" row="2" columns="*, auto, auto" class="actions">
|
<GridLayout row="2" columns="*, auto, auto" class="actions">
|
||||||
<Button
|
<Button
|
||||||
col="1"
|
col="1"
|
||||||
class="text tb st fb"
|
class="text sm"
|
||||||
:text="'cBtn' | L"
|
:text="'cBtn' | L"
|
||||||
@tap="$modal.close(0)"
|
@tap="$modal.close(false)"
|
||||||
/>
|
/>
|
||||||
<Button
|
<Button
|
||||||
col="2"
|
col="2"
|
||||||
class="text tb st fb"
|
class="text sm"
|
||||||
:text="'SET' | L"
|
:text="action | L"
|
||||||
@tap="$modal.close(selectedTime)"
|
@tap="$modal.close(selectedTime)"
|
||||||
/>
|
/>
|
||||||
</RGridLayout>
|
</GridLayout>
|
||||||
</GridLayout>
|
</GridLayout>
|
||||||
</Page>
|
</Page>
|
||||||
</template>
|
</template>
|
||||||
|
@ -47,7 +49,7 @@
|
||||||
import { mapState } from "vuex";
|
import { mapState } from "vuex";
|
||||||
import { localize } from "@nativescript/localize";
|
import { localize } from "@nativescript/localize";
|
||||||
export default {
|
export default {
|
||||||
props: ["title", "selectedHr", "selectedMin"],
|
props: ["title", "selectedHr", "selectedMin", "action"],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
hrs: [],
|
hrs: [],
|
||||||
|
@ -57,14 +59,19 @@ export default {
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapState(["icon", "theme", "RTL"]),
|
...mapState(["icon", "appTheme"]),
|
||||||
hrsList() {
|
hrsList() {
|
||||||
let h = [...Array(24).keys()];
|
let h = [...Array(24).keys()];
|
||||||
this.hrs = h;
|
this.hrs = h;
|
||||||
return h.map((e) => `${e} ${localize("hr")}`);
|
return h.map((e) => `${e} ${localize("hr")}`);
|
||||||
},
|
},
|
||||||
minsList() {
|
minsList() {
|
||||||
let m = [...Array(60).keys()];
|
let m = [
|
||||||
|
...new Set([
|
||||||
|
...Array(11).keys(),
|
||||||
|
...Array.from(Array(12), (_, x) => x * 5),
|
||||||
|
]),
|
||||||
|
];
|
||||||
this.mins = m;
|
this.mins = m;
|
||||||
return m.map((e) => `${e} ${localize("min")}`);
|
return m.map((e) => `${e} ${localize("min")}`);
|
||||||
},
|
},
|
|
@ -1,44 +1,33 @@
|
||||||
<template>
|
<template>
|
||||||
<Page
|
<Page
|
||||||
@loaded="mLoad"
|
@loaded="transparentPage"
|
||||||
backgroundColor="transparent"
|
backgroundColor="transparent"
|
||||||
:class="theme"
|
:class="appTheme"
|
||||||
>
|
>
|
||||||
<GridLayout rows="auto, auto, auto" class="modal">
|
<GridLayout rows="auto, auto, auto" class="modal">
|
||||||
<RLabel class="title" :text="title | L" />
|
<Label class="title" :text="title | L" />
|
||||||
<StackLayout row="1" class="input">
|
<StackLayout row="1" class="input">
|
||||||
<TextView
|
|
||||||
v-if="type == 'view'"
|
|
||||||
autocorrect="true"
|
|
||||||
autocapitalizationType="sentences"
|
|
||||||
class="modalInput"
|
|
||||||
@loaded="focusField"
|
|
||||||
v-model="text"
|
|
||||||
/>
|
|
||||||
<TextField
|
<TextField
|
||||||
autocapitalizationType="sentences"
|
|
||||||
autocorrect="true"
|
|
||||||
v-else
|
|
||||||
class="modalInput"
|
class="modalInput"
|
||||||
@loaded="focusField"
|
@loaded="focusField"
|
||||||
v-model="text"
|
v-model="text"
|
||||||
@returnPress="$modal.close(text)"
|
@returnPress="$modal.close(text)"
|
||||||
/>
|
/>
|
||||||
</StackLayout>
|
</StackLayout>
|
||||||
<RGridLayout :rtl="RTL" row="2" columns="*, auto, auto" class="actions">
|
<GridLayout row="2" columns="*, auto, auto" class="actions">
|
||||||
<Button
|
<Button
|
||||||
col="1"
|
col="1"
|
||||||
class="text tb st fb"
|
class="text sm"
|
||||||
:text="'cBtn' | L"
|
:text="'cBtn' | L"
|
||||||
@tap="$modal.close(0)"
|
@tap="$modal.close(false)"
|
||||||
/>
|
/>
|
||||||
<Button
|
<Button
|
||||||
col="2"
|
col="2"
|
||||||
class="text tb st fb"
|
class="text sm"
|
||||||
:text="action | L"
|
:text="action | L"
|
||||||
@tap="$modal.close(text)"
|
@tap="$modal.close(text)"
|
||||||
/>
|
/>
|
||||||
</RGridLayout>
|
</GridLayout>
|
||||||
</GridLayout>
|
</GridLayout>
|
||||||
</Page>
|
</Page>
|
||||||
</template>
|
</template>
|
||||||
|
@ -48,23 +37,20 @@ import { Utils } from "@nativescript/core";
|
||||||
import { localize } from "@nativescript/localize";
|
import { localize } from "@nativescript/localize";
|
||||||
import { mapState } from "vuex";
|
import { mapState } from "vuex";
|
||||||
export default {
|
export default {
|
||||||
props: ["title", "type", "hint", "placeholder", "action"],
|
props: ["title", "hint", "placeholder", "action"],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
text: null,
|
text: null,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapState(["icon", "theme", "RTL"]),
|
...mapState(["icon", "appTheme"]),
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
focusField({ object }) {
|
focusField({ object }) {
|
||||||
this.setGravity(object);
|
|
||||||
let a = this.placeholder;
|
let a = this.placeholder;
|
||||||
typeof a == "number"
|
typeof a == "number"
|
||||||
? (object.keyboardType = "number")
|
? (object.keyboardType = "number")
|
||||||
: this.type
|
|
||||||
? ""
|
|
||||||
: (object.autocapitalizationType = "words");
|
: (object.autocapitalizationType = "words");
|
||||||
object.hint = this.hint;
|
object.hint = this.hint;
|
||||||
object.focus();
|
object.focus();
|
|
@ -1,108 +0,0 @@
|
||||||
<template>
|
|
||||||
<Page
|
|
||||||
@loaded="mLoad"
|
|
||||||
backgroundColor="transparent"
|
|
||||||
:class="theme"
|
|
||||||
>
|
|
||||||
<GridLayout rows="auto, auto, auto" class="modal">
|
|
||||||
<RLabel class="title" :text="title | L" />
|
|
||||||
<RStackLayout
|
|
||||||
:rtl="RTL"
|
|
||||||
row="1"
|
|
||||||
orientation="horizontal"
|
|
||||||
horizontalAlignment="center"
|
|
||||||
>
|
|
||||||
<ListPicker
|
|
||||||
@loaded="onLPLoad"
|
|
||||||
:items="days"
|
|
||||||
:selectedIndex="dIndex"
|
|
||||||
@selectedIndexChange="setD"
|
|
||||||
></ListPicker>
|
|
||||||
<ListPicker
|
|
||||||
@loaded="onLPLoad"
|
|
||||||
:items="months"
|
|
||||||
:selectedIndex="currentM"
|
|
||||||
@selectedIndexChange="setM"
|
|
||||||
></ListPicker>
|
|
||||||
<ListPicker
|
|
||||||
:items="years"
|
|
||||||
:selectedIndex="yIndex"
|
|
||||||
@selectedIndexChange="setY"
|
|
||||||
></ListPicker>
|
|
||||||
</RStackLayout>
|
|
||||||
<RGridLayout :rtl="RTL" row="2" columns="*, auto, auto" class="actions">
|
|
||||||
<Button
|
|
||||||
col="1"
|
|
||||||
class="text tb st fb"
|
|
||||||
:text="'cBtn' | L"
|
|
||||||
@tap="$modal.close(0)"
|
|
||||||
/>
|
|
||||||
<Button
|
|
||||||
col="2"
|
|
||||||
class="text tb st fb"
|
|
||||||
:text="'SET' | L"
|
|
||||||
@tap="$modal.close(selected)"
|
|
||||||
/>
|
|
||||||
</RGridLayout>
|
|
||||||
</GridLayout>
|
|
||||||
</Page>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import { mapState } from "vuex";
|
|
||||||
import { localize } from "@nativescript/localize";
|
|
||||||
export default {
|
|
||||||
props: ["title", "monthNames", "currentD", "currentM", "currentY"],
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
selectedD: 0,
|
|
||||||
selectedM: 0,
|
|
||||||
selectedY: 0,
|
|
||||||
};
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
...mapState(["icon", "theme", "RTL"]),
|
|
||||||
days() {
|
|
||||||
let ld = new Date(this.selectedY, this.selectedM + 1, 0).getDate();
|
|
||||||
return Array.from({ length: ld }, (v, i) => i + 1);
|
|
||||||
},
|
|
||||||
dIndex() {
|
|
||||||
return this.days.indexOf(this.selectedD || this.currentD);
|
|
||||||
},
|
|
||||||
months() {
|
|
||||||
return this.monthNames.map((e) => localize(e));
|
|
||||||
},
|
|
||||||
years() {
|
|
||||||
let min = 1900;
|
|
||||||
let max = min + 200;
|
|
||||||
let years = [];
|
|
||||||
for (let i = min; i <= max; i++) years.push(i);
|
|
||||||
return years;
|
|
||||||
},
|
|
||||||
yIndex() {
|
|
||||||
return this.years.indexOf(this.currentY);
|
|
||||||
},
|
|
||||||
selected() {
|
|
||||||
return {
|
|
||||||
date: this.selectedD,
|
|
||||||
month: this.selectedM,
|
|
||||||
year: this.selectedY,
|
|
||||||
};
|
|
||||||
},
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
onLPLoad({ object }) {
|
|
||||||
object.android.setWrapSelectorWheel(true);
|
|
||||||
},
|
|
||||||
setD(args) {
|
|
||||||
this.selectedD = args.object.selectedIndex + 1;
|
|
||||||
},
|
|
||||||
setM(args) {
|
|
||||||
this.selectedM = args.object.selectedIndex;
|
|
||||||
},
|
|
||||||
setY(args) {
|
|
||||||
this.selectedY = this.years[args.object.selectedIndex];
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
</script>
|
|
|
@ -1,133 +0,0 @@
|
||||||
<template>
|
|
||||||
<Page @loaded="mLoad" backgroundColor="transparent" :class="theme">
|
|
||||||
<GridLayout rows="auto, auto, auto" class="modal">
|
|
||||||
<RLabel class="title" :text="title | L" />
|
|
||||||
<StackLayout row="1">
|
|
||||||
<StackLayout class="input">
|
|
||||||
<TextField
|
|
||||||
@loaded="setGravity"
|
|
||||||
class="modalInput"
|
|
||||||
v-model="setLabel"
|
|
||||||
:hint="label"
|
|
||||||
autocapitalizationType="words"
|
|
||||||
autocorrect="true"
|
|
||||||
/></StackLayout>
|
|
||||||
<RStackLayout
|
|
||||||
:rtl="RTL"
|
|
||||||
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>
|
|
||||||
</RStackLayout>
|
|
||||||
</StackLayout>
|
|
||||||
|
|
||||||
<RGridLayout
|
|
||||||
:rtl="RTL"
|
|
||||||
row="2"
|
|
||||||
columns="auto, *, auto, auto"
|
|
||||||
class="actions r"
|
|
||||||
>
|
|
||||||
<Button
|
|
||||||
v-if="showPreset"
|
|
||||||
class="text tb st fb"
|
|
||||||
:text="'prstBtn' | L"
|
|
||||||
@tap="$modal.close('presets')"
|
|
||||||
/>
|
|
||||||
<Button
|
|
||||||
col="2"
|
|
||||||
class="text tb st fb"
|
|
||||||
:text="'cBtn' | L"
|
|
||||||
@tap="$modal.close(0)"
|
|
||||||
/>
|
|
||||||
<Button
|
|
||||||
col="3"
|
|
||||||
class="text tb st fb"
|
|
||||||
:text="action | L"
|
|
||||||
@tap="respond"
|
|
||||||
/>
|
|
||||||
</RGridLayout>
|
|
||||||
</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", "theme", "RTL"]),
|
|
||||||
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);
|
|
||||||
},
|
|
||||||
respond() {
|
|
||||||
this.$modal.close({
|
|
||||||
label: this.setLabel ? this.setLabel : this.label,
|
|
||||||
time: this.selectedTime,
|
|
||||||
});
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
</script>
|
|
|
@ -1,112 +0,0 @@
|
||||||
<template>
|
|
||||||
<Page @loaded="pgLoad" :class="theme" backgroundColor="#ff5200">
|
|
||||||
<GridLayout rows="*, *">
|
|
||||||
<Button
|
|
||||||
class="ico fab"
|
|
||||||
fontSize="128"
|
|
||||||
:width="screenWidth"
|
|
||||||
:height="screenWidth"
|
|
||||||
:text="icon.timer"
|
|
||||||
/>
|
|
||||||
<GridLayout row="1" rows="*, auto" columns="*, auto, *">
|
|
||||||
<ScrollView :class="theme" rowSpan="2" colSpan="3">
|
|
||||||
<StackLayout paddingTop="8">
|
|
||||||
<Timer
|
|
||||||
v-for="timer in timers"
|
|
||||||
:key="timer.id"
|
|
||||||
:timer="timer"
|
|
||||||
:formattedTime="formattedTime"
|
|
||||||
:removeTimer="removeTimer"
|
|
||||||
:togglePause="togglePause"
|
|
||||||
:timerAlert="timerAlert"
|
|
||||||
:showToast="showToast"
|
|
||||||
/>
|
|
||||||
<StackLayout class="ls"> </StackLayout>
|
|
||||||
</StackLayout>
|
|
||||||
</ScrollView>
|
|
||||||
<GridLayout col="1" row="1" class="appbar">
|
|
||||||
<Button
|
|
||||||
class="ico fab"
|
|
||||||
margin="0"
|
|
||||||
:text="icon.x"
|
|
||||||
@tap="removeTimers"
|
|
||||||
col="1"
|
|
||||||
/>
|
|
||||||
</GridLayout>
|
|
||||||
</GridLayout>
|
|
||||||
</GridLayout>
|
|
||||||
</Page>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script lang="ts">
|
|
||||||
import { Application, Screen, Device, Color, Utils } from "@nativescript/core";
|
|
||||||
import Timer from "../sub/Timer.vue";
|
|
||||||
import * as utils from "~/shared/utils";
|
|
||||||
import { mapState } from "vuex";
|
|
||||||
const windowMgr = android.view.WindowManager;
|
|
||||||
|
|
||||||
export default {
|
|
||||||
components: { Timer },
|
|
||||||
props: [
|
|
||||||
"formattedTime",
|
|
||||||
"removeTimer",
|
|
||||||
"togglePause",
|
|
||||||
"timerAlert",
|
|
||||||
"showToast",
|
|
||||||
],
|
|
||||||
computed: {
|
|
||||||
...mapState(["icon", "theme", "activeTs"]),
|
|
||||||
screenWidth() {
|
|
||||||
return Screen.mainScreen.widthDIPs;
|
|
||||||
},
|
|
||||||
timers() {
|
|
||||||
let timers = this.activeTs.filter((e) => e.done);
|
|
||||||
if (!timers.length) {
|
|
||||||
this.$modal.close(1);
|
|
||||||
this.isScreenLocked && this.turnOffScreen();
|
|
||||||
}
|
|
||||||
return timers;
|
|
||||||
},
|
|
||||||
sdkv() {
|
|
||||||
return parseInt(Device.sdkVersion);
|
|
||||||
},
|
|
||||||
isScreenLocked() {
|
|
||||||
const keyguardMgr = Utils.ad
|
|
||||||
.getApplicationContext()
|
|
||||||
.getSystemService(android.content.Context.KEYGUARD_SERVICE);
|
|
||||||
return this.sdkv > 21
|
|
||||||
? keyguardMgr.isDeviceLocked()
|
|
||||||
: keyguardMgr.isKeyguardLocked();
|
|
||||||
},
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
pgLoad({ object }) {
|
|
||||||
let dialog = object._dialogFragment.getDialog();
|
|
||||||
let dialogWindow = dialog.getWindow();
|
|
||||||
let decorView = dialogWindow.getDecorView();
|
|
||||||
dialog.setCancelable(false);
|
|
||||||
if (this.isScreenLocked) {
|
|
||||||
const flags =
|
|
||||||
windowMgr.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
|
|
||||||
windowMgr.LayoutParams.FLAG_TURN_SCREEN_ON |
|
|
||||||
windowMgr.LayoutParams.FLAG_KEEP_SCREEN_ON;
|
|
||||||
dialogWindow.addFlags(flags);
|
|
||||||
}
|
|
||||||
utils.setBarColors(dialogWindow, decorView, this.theme);
|
|
||||||
dialogWindow.setStatusBarColor(new Color("#ff5200").android);
|
|
||||||
},
|
|
||||||
removeTimers() {
|
|
||||||
this.timers.forEach((timer) => this.removeTimer(timer.id, 1));
|
|
||||||
this.isScreenLocked && this.turnOffScreen();
|
|
||||||
},
|
|
||||||
turnOffScreen() {
|
|
||||||
const window = Application.android.startActivity.getWindow();
|
|
||||||
const flags =
|
|
||||||
windowMgr.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
|
|
||||||
windowMgr.LayoutParams.FLAG_TURN_SCREEN_ON |
|
|
||||||
windowMgr.LayoutParams.FLAG_KEEP_SCREEN_ON;
|
|
||||||
window.clearFlags(flags);
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
</script>
|
|
|
@ -1,120 +0,0 @@
|
||||||
<template>
|
|
||||||
<Page @loaded="pgLoad" actionBarHidden="true">
|
|
||||||
<RGridLayout :rtl="RTL" rows="*, auto" columns="auto, *">
|
|
||||||
<ListView rowSpan="2" colSpan="2" class="options" for="item in items">
|
|
||||||
<v-template if="$index == 0">
|
|
||||||
<Label class="pTitle tw tb" :text="'About' | L" />
|
|
||||||
</v-template>
|
|
||||||
<v-template if="$index == 1">
|
|
||||||
<StackLayout class="appInfo">
|
|
||||||
<Image class="logo" src="res://logo" stretch="none" />
|
|
||||||
<Label class="name tb tc" :text="'EnRecipes' | L" />
|
|
||||||
<Label :text="getVersion" class="tb tc" />
|
|
||||||
|
|
||||||
<Label class="info tc tw lh4" text="by Vishnu Raghav B" />
|
|
||||||
<Label class="info tc tw lh4" :text="'appInfo' | L" />
|
|
||||||
</StackLayout>
|
|
||||||
</v-template>
|
|
||||||
<v-template if="$index == 8">
|
|
||||||
<StackLayout class="ls"> </StackLayout>
|
|
||||||
</v-template>
|
|
||||||
<v-template>
|
|
||||||
<RGridLayout
|
|
||||||
:rtl="RTL"
|
|
||||||
columns="auto, *"
|
|
||||||
class="option"
|
|
||||||
@touch="touch($event, item.url)"
|
|
||||||
>
|
|
||||||
<Label
|
|
||||||
class="ico"
|
|
||||||
:class="{ rtl: /help|don/.test(item.icon) }"
|
|
||||||
:text="icon[item.icon]"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<Label col="1" class="info" :text="item.title | L" />
|
|
||||||
</RGridLayout>
|
|
||||||
</v-template>
|
|
||||||
</ListView>
|
|
||||||
<GridLayout row="1" class="appbar rtl" rows="*" columns="auto, *">
|
|
||||||
<Button class="ico" :text="icon.back" @tap="$navigateBack()" />
|
|
||||||
</GridLayout>
|
|
||||||
<Label rowSpan="2" class="edge hal rtl" @swipe="swipeBack" />
|
|
||||||
<Label
|
|
||||||
rowSpan="2"
|
|
||||||
colSpan="2"
|
|
||||||
class="edge har rtl f"
|
|
||||||
@swipe="swipeBack"
|
|
||||||
/>
|
|
||||||
</RGridLayout>
|
|
||||||
</Page>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import { Application, Observable, Utils } from '@nativescript/core'
|
|
||||||
import { mapState } from 'vuex'
|
|
||||||
|
|
||||||
export default {
|
|
||||||
computed: {
|
|
||||||
...mapState(['icon', 'RTL']),
|
|
||||||
items() {
|
|
||||||
return [
|
|
||||||
{},
|
|
||||||
{},
|
|
||||||
{
|
|
||||||
icon: 'lang',
|
|
||||||
title: 'Official Website',
|
|
||||||
url: 'https://enrecipes.vercel.app',
|
|
||||||
},
|
|
||||||
// {
|
|
||||||
// icon: 'gh',
|
|
||||||
// title: 'gh',
|
|
||||||
// url: 'https://github.com/vishnuraghavb/EnRecipes',
|
|
||||||
// },
|
|
||||||
{
|
|
||||||
icon: 'tg',
|
|
||||||
title: 'joinTG',
|
|
||||||
url: 'https://t.me/enrecipes',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
icon: 'help',
|
|
||||||
title: 'guide',
|
|
||||||
url: 'https://github.com/vishnuraghavb/EnRecipes-Wiki/wiki/User-Guide',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
icon: 'priv',
|
|
||||||
title: 'priv',
|
|
||||||
url: 'https://github.com/vishnuraghavb/EnRecipes-Wiki/blob/main/PRIVACY.md',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
icon: 'don',
|
|
||||||
title: 'donate',
|
|
||||||
url: 'https://www.vishnuraghav.com/donate',
|
|
||||||
},
|
|
||||||
// {
|
|
||||||
// icon: "trans",
|
|
||||||
// title: "trnsl",
|
|
||||||
// url: "https://hosted.weblate.org/projects/enrecipes/app-translations",
|
|
||||||
// },
|
|
||||||
{},
|
|
||||||
]
|
|
||||||
},
|
|
||||||
getVersion() {
|
|
||||||
let ctx = Application.android.context
|
|
||||||
return (
|
|
||||||
'v' +
|
|
||||||
ctx.getPackageManager().getPackageInfo(ctx.getPackageName(), 0)
|
|
||||||
.versionName
|
|
||||||
)
|
|
||||||
},
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
pgLoad({ object }) {
|
|
||||||
object.bindingContext = new Observable()
|
|
||||||
},
|
|
||||||
touch({ object, action }, url) {
|
|
||||||
this.touchFade(object, action)
|
|
||||||
if (action == 'up') Utils.openUrl(url)
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
</script>
|
|
|
@ -1,87 +0,0 @@
|
||||||
<template>
|
|
||||||
<Page @loaded="pgLoad" actionBarHidden="true">
|
|
||||||
<RGridLayout :rtl="RTL" rows="*, auto" columns="auto, *">
|
|
||||||
<OptionsList title="Settings" :items="items" :action="navigateTo" />
|
|
||||||
<GridLayout row="1" class="appbar rtl" rows="*" columns="auto, *">
|
|
||||||
<Button class="ico" :text="icon.back" @tap="$navigateBack()" />
|
|
||||||
</GridLayout>
|
|
||||||
<Label rowSpan="2" class="edge hal rtl" @swipe="swipeBack" />
|
|
||||||
<Label
|
|
||||||
rowSpan="2"
|
|
||||||
colSpan="2"
|
|
||||||
class="edge har rtl f"
|
|
||||||
@swipe="swipeBack"
|
|
||||||
/>
|
|
||||||
</RGridLayout>
|
|
||||||
</Page>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script lang="ts">
|
|
||||||
import { Observable } from "@nativescript/core";
|
|
||||||
import { mapState } 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",
|
|
||||||
rtl: 0,
|
|
||||||
title: "intf",
|
|
||||||
data: Interface,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: "list",
|
|
||||||
icon: "opts",
|
|
||||||
rtl: 1,
|
|
||||||
title: "opts",
|
|
||||||
data: Options,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: "list",
|
|
||||||
icon: "db",
|
|
||||||
rtl: 0,
|
|
||||||
title: "db",
|
|
||||||
data: Database,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: "list",
|
|
||||||
icon: "reset",
|
|
||||||
rtl: 1,
|
|
||||||
title: "rest",
|
|
||||||
data: Reset,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: "list",
|
|
||||||
icon: "info",
|
|
||||||
rtl: 0,
|
|
||||||
title: "About",
|
|
||||||
data: About,
|
|
||||||
},
|
|
||||||
{},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
...mapState(["icon", "RTL"]),
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
pgLoad({ object }) {
|
|
||||||
object.bindingContext = new Observable();
|
|
||||||
},
|
|
||||||
navigateTo(view) {
|
|
||||||
this.$navigateTo(view, {
|
|
||||||
animated: false,
|
|
||||||
});
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
</script>
|
|
|
@ -1,161 +0,0 @@
|
||||||
<template>
|
|
||||||
<Page @loaded="pgLoad" actionBarHidden="true">
|
|
||||||
<RGridLayout :rtl="RTL" rows="*, auto" columns="auto, *">
|
|
||||||
<OptionsList title="Settings" :items="items" />
|
|
||||||
<GridLayout row="1" class="appbar rtl" rows="*" columns="auto, *">
|
|
||||||
<Button class="ico" :text="icon.back" @tap="$navigateBack()" />
|
|
||||||
</GridLayout>
|
|
||||||
<Label rowSpan="2" class="edge hal rtl" @swipe="swipeBack" />
|
|
||||||
<Label
|
|
||||||
rowSpan="2"
|
|
||||||
colSpan="2"
|
|
||||||
class="edge har rtl f"
|
|
||||||
@swipe="swipeBack"
|
|
||||||
/>
|
|
||||||
</RGridLayout>
|
|
||||||
</Page>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import {
|
|
||||||
Observable,
|
|
||||||
Device,
|
|
||||||
Application,
|
|
||||||
ApplicationSettings,
|
|
||||||
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", "timerD", "timerS", "timerV", "RTL"]),
|
|
||||||
items() {
|
|
||||||
let options = [
|
|
||||||
{
|
|
||||||
type: "list",
|
|
||||||
icon: "sound",
|
|
||||||
rtl: 0,
|
|
||||||
title: "tmrSnd",
|
|
||||||
subTitle: this.timerS.title,
|
|
||||||
action: this.showSoundsList,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: "switch",
|
|
||||||
icon: "vibrate",
|
|
||||||
rtl: 0,
|
|
||||||
title: "tmrvbrt",
|
|
||||||
checked: !!this.timerV,
|
|
||||||
action: this.toggleTimerVibrate,
|
|
||||||
},
|
|
||||||
];
|
|
||||||
let openSettings = [
|
|
||||||
{
|
|
||||||
type: "list",
|
|
||||||
icon: "sound",
|
|
||||||
rtl: 0,
|
|
||||||
title: "notifSetg",
|
|
||||||
subTitle: null,
|
|
||||||
action: this.openNotificationChannelSettings,
|
|
||||||
},
|
|
||||||
];
|
|
||||||
let list = this.channelExists() ? openSettings : options;
|
|
||||||
return [
|
|
||||||
{},
|
|
||||||
{
|
|
||||||
type: "list",
|
|
||||||
icon: "delay",
|
|
||||||
rtl: 0,
|
|
||||||
title: "dlyDur",
|
|
||||||
subTitle:
|
|
||||||
this.delayList[this.delayList.findIndex((e) => e.n == this.timerD)]
|
|
||||||
.l,
|
|
||||||
action: this.showDelayList,
|
|
||||||
},
|
|
||||||
...list,
|
|
||||||
{},
|
|
||||||
];
|
|
||||||
},
|
|
||||||
delayList() {
|
|
||||||
return [
|
|
||||||
...Array.from(Array(4), (_, x) => x + 1),
|
|
||||||
...Array.from(Array(6), (_, x) => (x + 1) * 5),
|
|
||||||
].map((e) => {
|
|
||||||
return {
|
|
||||||
l: `${this.localeN(e)} ${localize(e > 1 ? "minutes" : "minute")}`,
|
|
||||||
n: e,
|
|
||||||
};
|
|
||||||
});
|
|
||||||
},
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
...mapActions(["setTD", "setTS", "setTV"]),
|
|
||||||
pgLoad({ object }) {
|
|
||||||
object.bindingContext = new Observable();
|
|
||||||
ApplicationSettings.setNumber("isTimer", 2);
|
|
||||||
},
|
|
||||||
showDelayList() {
|
|
||||||
this.$showModal(Action, {
|
|
||||||
props: {
|
|
||||||
title: "dlyDur",
|
|
||||||
list: this.delayList.map((e) => e.l),
|
|
||||||
selected: this.delayList.findIndex((e) => e.n == this.timerD),
|
|
||||||
},
|
|
||||||
}).then(
|
|
||||||
(res) =>
|
|
||||||
res &&
|
|
||||||
this.setTD(
|
|
||||||
this.delayList[this.delayList.findIndex((e) => e.l == res)].n
|
|
||||||
)
|
|
||||||
);
|
|
||||||
},
|
|
||||||
showSoundsList() {
|
|
||||||
let getTones = utils.getTones();
|
|
||||||
this.$showModal(Action, {
|
|
||||||
props: {
|
|
||||||
title: "tmrSnd",
|
|
||||||
list: getTones.tones.map((e) => e.title),
|
|
||||||
selected: getTones.tones.findIndex(
|
|
||||||
(e) => e.title == this.timerS.title
|
|
||||||
),
|
|
||||||
},
|
|
||||||
}).then(
|
|
||||||
(tone) =>
|
|
||||||
tone &&
|
|
||||||
tone !== this.timerS.title &&
|
|
||||||
this.setTS(getTones.tones.filter((e) => e.title === tone)[0])
|
|
||||||
);
|
|
||||||
},
|
|
||||||
toggleTimerVibrate() {
|
|
||||||
this.setTV(!this.timerV | 0);
|
|
||||||
},
|
|
||||||
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);
|
|
||||||
},
|
|
||||||
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,488 +0,0 @@
|
||||||
<template>
|
|
||||||
<Page @loaded="pageL" actionBarHidden="true">
|
|
||||||
<RGridLayout :rtl="RTL" rows="*, auto" columns="auto, *">
|
|
||||||
<OptionsList title="db" :items="items" />
|
|
||||||
<GridLayout
|
|
||||||
:hidden="toast || progress"
|
|
||||||
@loaded="appbarL"
|
|
||||||
row="1"
|
|
||||||
class="appbar rtl"
|
|
||||||
rows="*"
|
|
||||||
columns="auto, *"
|
|
||||||
>
|
|
||||||
<Button class="ico" :text="icon.back" @tap="$navigateBack()" />
|
|
||||||
</GridLayout>
|
|
||||||
<Toast :onload="toastL" :toast="toast" :action="hideBar" />
|
|
||||||
<RGridLayout
|
|
||||||
:rtl="RTL"
|
|
||||||
v-show="progress"
|
|
||||||
row="1"
|
|
||||||
colSpan="2"
|
|
||||||
class="appbar snackbar rtl"
|
|
||||||
columns="auto, *"
|
|
||||||
>
|
|
||||||
<ActivityIndicator :busy="!!progress" />
|
|
||||||
<RLabel margin="0 2" col="1" class="tb tw vc lh4" :text="progress" />
|
|
||||||
</RGridLayout>
|
|
||||||
<Label rowSpan="2" class="edge hal rtl" @swipe="swipeBack" />
|
|
||||||
<Label
|
|
||||||
rowSpan="2"
|
|
||||||
colSpan="2"
|
|
||||||
class="edge har rtl f"
|
|
||||||
@swipe="swipeBack"
|
|
||||||
/>
|
|
||||||
</RGridLayout>
|
|
||||||
</Page>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import {
|
|
||||||
ApplicationSettings,
|
|
||||||
path,
|
|
||||||
knownFolders,
|
|
||||||
AndroidApplication,
|
|
||||||
File,
|
|
||||||
Folder,
|
|
||||||
Observable,
|
|
||||||
Application,
|
|
||||||
getFileAccess,
|
|
||||||
} from "@nativescript/core";
|
|
||||||
import { localize } from "@nativescript/localize";
|
|
||||||
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: 0,
|
|
||||||
progress: null,
|
|
||||||
toast: 0,
|
|
||||||
appbar: 0,
|
|
||||||
toastbar: 0,
|
|
||||||
};
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
...mapState([
|
|
||||||
"icon",
|
|
||||||
"recipes",
|
|
||||||
"cuisines",
|
|
||||||
"categories",
|
|
||||||
"yieldUnits",
|
|
||||||
"units",
|
|
||||||
"mealPlans",
|
|
||||||
"impSum",
|
|
||||||
"RTL",
|
|
||||||
]),
|
|
||||||
items() {
|
|
||||||
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"),
|
|
||||||
action: this.openZipFile,
|
|
||||||
},
|
|
||||||
{},
|
|
||||||
];
|
|
||||||
},
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
...mapActions([
|
|
||||||
"importLIs",
|
|
||||||
"importRsJSON",
|
|
||||||
"importRsDB",
|
|
||||||
"importMPsJSON",
|
|
||||||
"importMPsDB",
|
|
||||||
"importTPs",
|
|
||||||
"unLinkBIs",
|
|
||||||
"clearIS",
|
|
||||||
]),
|
|
||||||
pageL({ object }) {
|
|
||||||
object.bindingContext = new Observable();
|
|
||||||
const ContentResolver =
|
|
||||||
Application.android.nativeApp.getContentResolver();
|
|
||||||
this.backupFolder = ApplicationSettings.getString("backupFolder", null);
|
|
||||||
if (
|
|
||||||
!this.backupFolder ||
|
|
||||||
ContentResolver.getPersistedUriPermissions().isEmpty()
|
|
||||||
) {
|
|
||||||
this.backupFolder = null;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
appbarL({ object }) {
|
|
||||||
this.appbar = object;
|
|
||||||
},
|
|
||||||
toastL({ object }) {
|
|
||||||
this.toastbar = object;
|
|
||||||
},
|
|
||||||
|
|
||||||
// BackupFolderPicker
|
|
||||||
setBackupFolder(startExport) {
|
|
||||||
const ContentResolver =
|
|
||||||
Application.android.nativeApp.getContentResolver();
|
|
||||||
const FLAGS =
|
|
||||||
android.content.Intent.FLAG_GRANT_READ_URI_PERMISSION |
|
|
||||||
android.content.Intent.FLAG_GRANT_WRITE_URI_PERMISSION;
|
|
||||||
utils.getBackupFolder().then((uri) => {
|
|
||||||
if (uri != null) {
|
|
||||||
// ReleaseExistingPermissions
|
|
||||||
if (this.backupFolder && this.backupFolder != uri.toString())
|
|
||||||
ContentResolver.releasePersistableUriPermission(
|
|
||||||
new android.net.Uri.parse(this.backupFolder),
|
|
||||||
FLAGS
|
|
||||||
);
|
|
||||||
this.backupFolder = uri.toString();
|
|
||||||
ApplicationSettings.setString("backupFolder", this.backupFolder);
|
|
||||||
// PersistPermissions
|
|
||||||
ContentResolver.takePersistableUriPermission(uri, FLAGS);
|
|
||||||
if (startExport && this.backupFolder) {
|
|
||||||
this.exportBackup();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
// EXPORT HANDLERS
|
|
||||||
exportCheck() {
|
|
||||||
const ContentResolver =
|
|
||||||
Application.android.nativeApp.getContentResolver();
|
|
||||||
if (!this.recipes.length) this.showToast(localize("aFBu"));
|
|
||||||
else {
|
|
||||||
if (
|
|
||||||
!this.backupFolder ||
|
|
||||||
ContentResolver.getPersistedUriPermissions().isEmpty()
|
|
||||||
) {
|
|
||||||
this.setBackupFolder(1);
|
|
||||||
} else this.exportBackup();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
exportBackup() {
|
|
||||||
this.progress = localize("expip");
|
|
||||||
this.hijackBackEvent();
|
|
||||||
let date = new Date();
|
|
||||||
let intlDate =
|
|
||||||
date.getFullYear() +
|
|
||||||
"-" +
|
|
||||||
("0" + (date.getMonth() + 1)).slice(-2) +
|
|
||||||
"-" +
|
|
||||||
("0" + date.getDate()).slice(-2) +
|
|
||||||
"_" +
|
|
||||||
("0" + date.getHours()).slice(-2) +
|
|
||||||
("0" + date.getMinutes()).slice(-2) +
|
|
||||||
("0" + date.getSeconds()).slice(-2);
|
|
||||||
|
|
||||||
// Copy db file to EnRecipes folder
|
|
||||||
utils.copyDBToExport();
|
|
||||||
|
|
||||||
let filename = `${localize("EnRecipes")}_${intlDate}.zip`;
|
|
||||||
let fromPath = path.join(knownFolders.documents().path, "EnRecipes");
|
|
||||||
utils.Zip.zip(fromPath, this.backupFolder, filename)
|
|
||||||
.then((res) => res && this.showExportSummary(filename))
|
|
||||||
.catch((err) => {
|
|
||||||
console.log("Backup error: ", err);
|
|
||||||
this.progress = 0;
|
|
||||||
this.releaseBackEvent();
|
|
||||||
this.setBackupFolder(1);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
showExportSummary(filename) {
|
|
||||||
// delete copied db file
|
|
||||||
getFileAccess().deleteFile(
|
|
||||||
path.join(
|
|
||||||
knownFolders.documents().getFolder("EnRecipes").path,
|
|
||||||
"EnRecipes.db"
|
|
||||||
)
|
|
||||||
);
|
|
||||||
this.progress = 0;
|
|
||||||
this.releaseBackEvent();
|
|
||||||
let description = localize("buto", `"${filename}"`);
|
|
||||||
this.$showModal(Confirm, {
|
|
||||||
props: {
|
|
||||||
title: "expSuc",
|
|
||||||
description,
|
|
||||||
okButtonText: "OK",
|
|
||||||
},
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
// IMPORT HANDLERS
|
|
||||||
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))
|
|
||||||
.catch(() => this.failedImport(localize("buInc")));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
validateZipContent(dest, uri) {
|
|
||||||
this.progress = localize("impip");
|
|
||||||
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 (!vm.progress) clearInterval(timer);
|
|
||||||
if (vm.progress && vm.impSum.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(() => 0);
|
|
||||||
files.forEach((file, i) => {
|
|
||||||
File.fromPath(file.path)
|
|
||||||
.readText()
|
|
||||||
.then((data) => {
|
|
||||||
isValid[i] = this.hasValidJSON(data);
|
|
||||||
if (!isValid[i]) {
|
|
||||||
this.failedImport(
|
|
||||||
`${localize("buMod")}\n\n${localize("invFile")}: ${file.file}`
|
|
||||||
);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
if (isValid.every((e) => e === 1)) {
|
|
||||||
files.forEach((file) => {
|
|
||||||
File.fromPath(file.path)
|
|
||||||
.readText()
|
|
||||||
.then((data) => {
|
|
||||||
this.importData(JSON.parse(data), file.db);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
} else this.failedImport(localize("buEmp"));
|
|
||||||
},
|
|
||||||
failedImport(description) {
|
|
||||||
this.progress = 0;
|
|
||||||
this.releaseBackEvent();
|
|
||||||
knownFolders.temp().clear();
|
|
||||||
this.$showModal(Confirm, {
|
|
||||||
props: {
|
|
||||||
title: "impFail",
|
|
||||||
description,
|
|
||||||
okButtonText: "OK",
|
|
||||||
},
|
|
||||||
});
|
|
||||||
},
|
|
||||||
hasValidJSON(data) {
|
|
||||||
try {
|
|
||||||
JSON.parse(data) && Array.isArray(JSON.parse(data));
|
|
||||||
} catch (e) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
return 1;
|
|
||||||
},
|
|
||||||
extractData(recipesDB) {
|
|
||||||
const db = openOrCreate(recipesDB);
|
|
||||||
|
|
||||||
// Import recipes
|
|
||||||
db.select("SELECT * FROM recipes").then((res) => {
|
|
||||||
this.importRsDB(res);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Import listitems
|
|
||||||
db.select(
|
|
||||||
`SELECT cuisines, categories, yieldUnits, units FROM lists`
|
|
||||||
).then((res) =>
|
|
||||||
Object.keys(res[0]).forEach((listName) =>
|
|
||||||
this.importLIs({
|
|
||||||
data: JSON.parse(res[0][listName]),
|
|
||||||
listName,
|
|
||||||
})
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
// Import mealPlans
|
|
||||||
db.select(`SELECT * FROM mealPlans`).then((res) => this.importMPsDB(res));
|
|
||||||
|
|
||||||
// Import timerPs
|
|
||||||
db.select(`SELECT * FROM timerPresets`).then((res) =>
|
|
||||||
this.importTPs(res)
|
|
||||||
);
|
|
||||||
},
|
|
||||||
importData(data, db) {
|
|
||||||
switch (db) {
|
|
||||||
case "recipes":
|
|
||||||
this.importRsJSON(data);
|
|
||||||
break;
|
|
||||||
case "userCuisines":
|
|
||||||
this.importLIs({
|
|
||||||
data,
|
|
||||||
listName: "cuisines",
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
case "userCategories":
|
|
||||||
this.importLIs({
|
|
||||||
data,
|
|
||||||
listName: "categories",
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
case "userYieldUnits":
|
|
||||||
this.importLIs({
|
|
||||||
data,
|
|
||||||
listName: "yieldUnits",
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
case "userUnits":
|
|
||||||
this.importLIs({
|
|
||||||
data,
|
|
||||||
listName: "units",
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
case "mealPlans":
|
|
||||||
this.importMPsJSON(data);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
importImages(uri) {
|
|
||||||
let destPath = knownFolders.documents().path;
|
|
||||||
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.unLinkBIs();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
showImportSummary() {
|
|
||||||
this.progress = 0;
|
|
||||||
this.releaseBackEvent();
|
|
||||||
let { found, imported, updated } = this.impSum;
|
|
||||||
let exists = Math.abs(found - imported - updated) + updated;
|
|
||||||
let importedNote = `\n${localize("recI")} ${imported}`;
|
|
||||||
let existsNote = `\n${localize("recE")} ${exists}`;
|
|
||||||
let updatedNote = `\n${localize("recU")} ${updated}`;
|
|
||||||
this.$showModal(Confirm, {
|
|
||||||
props: {
|
|
||||||
title: "impSuc",
|
|
||||||
description: `${found} ${localize(
|
|
||||||
"recF"
|
|
||||||
)}\n${importedNote}${existsNote}${updatedNote}`,
|
|
||||||
okButtonText: "OK",
|
|
||||||
},
|
|
||||||
}).then(() => this.clearIS());
|
|
||||||
},
|
|
||||||
|
|
||||||
// NAVIGATION HANDLERS
|
|
||||||
hijackBackEvent() {
|
|
||||||
AndroidApplication.on(
|
|
||||||
AndroidApplication.activityBackPressedEvent,
|
|
||||||
this.backEvent
|
|
||||||
);
|
|
||||||
},
|
|
||||||
releaseBackEvent() {
|
|
||||||
AndroidApplication.off(
|
|
||||||
AndroidApplication.activityBackPressedEvent,
|
|
||||||
this.backEvent
|
|
||||||
);
|
|
||||||
},
|
|
||||||
backEvent(args) {
|
|
||||||
args.cancel = true;
|
|
||||||
},
|
|
||||||
|
|
||||||
// TOAST
|
|
||||||
showToast(data) {
|
|
||||||
this.animateBar(this.appbar, 0).then(() => {
|
|
||||||
this.toast = data;
|
|
||||||
this.animateBar(this.toastbar, 1, 1);
|
|
||||||
utils.timer(5, (val) => !val && this.hideBar());
|
|
||||||
});
|
|
||||||
},
|
|
||||||
hideBar() {
|
|
||||||
this.animateBar(this.toastbar, 0).then(() => {
|
|
||||||
this.toast = null;
|
|
||||||
this.animateBar(this.appbar, 1);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
</script>
|
|
|
@ -1,160 +0,0 @@
|
||||||
<template>
|
|
||||||
<Page @loaded="pageL" actionBarHidden="true">
|
|
||||||
<RGridLayout :rtl="RTL" rows="*, auto" columns="auto, *">
|
|
||||||
<OptionsList title="intf" :items="items" />
|
|
||||||
<GridLayout row="1" class="appbar rtl" rows="*" columns="auto, *">
|
|
||||||
<Button class="ico" :text="icon.back" @tap="$navigateBack()" />
|
|
||||||
</GridLayout>
|
|
||||||
<Label rowSpan="2" class="edge hal rtl" @swipe="swipeBack" />
|
|
||||||
<Label
|
|
||||||
rowSpan="2"
|
|
||||||
colSpan="2"
|
|
||||||
class="edge har rtl f"
|
|
||||||
@swipe="swipeBack"
|
|
||||||
/>
|
|
||||||
</RGridLayout>
|
|
||||||
</Page>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import { ApplicationSettings, Observable, Frame } from "@nativescript/core";
|
|
||||||
import Action from "../modals/Action";
|
|
||||||
import OptionsList from "../sub/OptionsList";
|
|
||||||
import { mapState, mapActions } from "vuex";
|
|
||||||
import * as utils from "~/shared/utils";
|
|
||||||
import { localize } from "@nativescript/localize";
|
|
||||||
|
|
||||||
export default {
|
|
||||||
components: { OptionsList },
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
applang: 0,
|
|
||||||
};
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
...mapState(["icon", "langs", "theme", "layout", "RTL", "mSystem"]),
|
|
||||||
items() {
|
|
||||||
return [
|
|
||||||
{},
|
|
||||||
{
|
|
||||||
type: "list",
|
|
||||||
icon: "lang",
|
|
||||||
rtl: 0,
|
|
||||||
title: "lang",
|
|
||||||
subTitle: localize(this.applang),
|
|
||||||
action: this.setAppLang,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: "list",
|
|
||||||
icon: "theme",
|
|
||||||
rtl: 0,
|
|
||||||
title: "Theme",
|
|
||||||
subTitle: localize(ApplicationSettings.getString("theme", "sysDef")),
|
|
||||||
action: this.setTheme,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: "list",
|
|
||||||
icon: "layout",
|
|
||||||
rtl: 1,
|
|
||||||
title: "listVM",
|
|
||||||
subTitle: localize(this.layout),
|
|
||||||
action: this.setLayoutMode,
|
|
||||||
},
|
|
||||||
// {
|
|
||||||
// type: "list",
|
|
||||||
// icon: "layout",
|
|
||||||
// rtl: 0,
|
|
||||||
// title: "mSystem",
|
|
||||||
// subTitle: localize(this.mSystem),
|
|
||||||
// action: this.setMSystem,
|
|
||||||
// },
|
|
||||||
{},
|
|
||||||
];
|
|
||||||
},
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
...mapActions(["setT", "setL", "setRTL", "setMS"]),
|
|
||||||
pageL({ object }) {
|
|
||||||
object.bindingContext = new Observable();
|
|
||||||
},
|
|
||||||
|
|
||||||
// LanguageSelection
|
|
||||||
setAppLang() {
|
|
||||||
let languages = this.langs.map((e) => e.title);
|
|
||||||
this.$showModal(Action, {
|
|
||||||
props: {
|
|
||||||
title: "lang",
|
|
||||||
list: [...languages],
|
|
||||||
selected: this.applang,
|
|
||||||
},
|
|
||||||
}).then((action) => {
|
|
||||||
if (action && this.applang !== action) {
|
|
||||||
let currentLocale = ApplicationSettings.getString(
|
|
||||||
"appLocale",
|
|
||||||
"none"
|
|
||||||
).split("-");
|
|
||||||
let locale = this.langs.filter((e) => e.title === action)[0].locale;
|
|
||||||
if (currentLocale !== locale) {
|
|
||||||
this.applang = action;
|
|
||||||
ApplicationSettings.setString("applang", action);
|
|
||||||
ApplicationSettings.setString("appLocale", locale);
|
|
||||||
utils.updateLocale();
|
|
||||||
this.setRTL();
|
|
||||||
Frame.reloadPage();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
// ThemeSelection
|
|
||||||
setTheme() {
|
|
||||||
this.$showModal(Action, {
|
|
||||||
props: {
|
|
||||||
title: "Theme",
|
|
||||||
list: ["Light", "Dark", "Black", "sysDef", "sysDefB"],
|
|
||||||
selected: ApplicationSettings.getString("theme", "sysDef"),
|
|
||||||
},
|
|
||||||
}).then((action) => {
|
|
||||||
if (
|
|
||||||
action &&
|
|
||||||
(ApplicationSettings.getString("theme") != this.theme
|
|
||||||
? 1
|
|
||||||
: this.theme != action)
|
|
||||||
) {
|
|
||||||
this.setT(action);
|
|
||||||
Frame.reloadPage();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
// LayoutMode
|
|
||||||
setLayoutMode() {
|
|
||||||
this.$showModal(Action, {
|
|
||||||
props: {
|
|
||||||
title: "listVM",
|
|
||||||
list: ["detailed", "grid", "photogrid", "simple", "minimal"],
|
|
||||||
selected: this.layout,
|
|
||||||
},
|
|
||||||
}).then((mode) => {
|
|
||||||
if (mode && this.layout !== mode) this.setL(mode.toLowerCase());
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
// MeasuringSystem
|
|
||||||
setMSystem() {
|
|
||||||
this.$showModal(Action, {
|
|
||||||
props: {
|
|
||||||
title: "mSystem",
|
|
||||||
list: ["mtrc", "imprl"],
|
|
||||||
selected: this.mSystem,
|
|
||||||
},
|
|
||||||
}).then((sys) => {
|
|
||||||
if (sys && this.mSystem !== sys) this.setMS(sys);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
},
|
|
||||||
created() {
|
|
||||||
this.applang = ApplicationSettings.getString("applang", "sysDef");
|
|
||||||
},
|
|
||||||
};
|
|
||||||
</script>
|
|
|
@ -1,90 +0,0 @@
|
||||||
<template>
|
|
||||||
<Page @loaded="pgLoad" actionBarHidden="true">
|
|
||||||
<RGridLayout :rtl="RTL" rows="*, auto" columns="auto, *">
|
|
||||||
<OptionsList title="Settings" :items="items" />
|
|
||||||
<GridLayout row="1" class="appbar rtl" rows="*" columns="auto, *">
|
|
||||||
<Button class="ico" :text="icon.back" @tap="$navigateBack()" />
|
|
||||||
</GridLayout>
|
|
||||||
<Label rowSpan="2" class="edge hal rtl" @swipe="swipeBack" />
|
|
||||||
<Label
|
|
||||||
rowSpan="2"
|
|
||||||
colSpan="2"
|
|
||||||
class="edge har rtl f"
|
|
||||||
@swipe="swipeBack"
|
|
||||||
/>
|
|
||||||
</RGridLayout>
|
|
||||||
</Page>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import { Observable } from "@nativescript/core";
|
|
||||||
import { mapState, mapActions } from "vuex";
|
|
||||||
import Action from "../modals/Action";
|
|
||||||
import OptionsList from "../sub/OptionsList";
|
|
||||||
import { localize } from "@nativescript/localize";
|
|
||||||
|
|
||||||
export default {
|
|
||||||
components: { OptionsList },
|
|
||||||
computed: {
|
|
||||||
...mapState(["icon", "startMon", "RTL", "plannerV", "planDel"]),
|
|
||||||
items() {
|
|
||||||
return [
|
|
||||||
{},
|
|
||||||
{
|
|
||||||
type: "list",
|
|
||||||
icon: "calv",
|
|
||||||
title: "calVM",
|
|
||||||
subTitle: localize(this.plannerV),
|
|
||||||
action: this.selectPlannerView,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: "switch",
|
|
||||||
icon: "week",
|
|
||||||
title: "swm",
|
|
||||||
checked: !!this.startMon,
|
|
||||||
action: this.toggleFirstDay,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: "list",
|
|
||||||
icon: "mpd",
|
|
||||||
title: "admp",
|
|
||||||
subTitle: localize(this.planDel),
|
|
||||||
action: this.selectDeletionTime,
|
|
||||||
},
|
|
||||||
{},
|
|
||||||
];
|
|
||||||
},
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
...mapActions(["setFD", "setPlannerV", "setPlanDel"]),
|
|
||||||
pgLoad({ object }) {
|
|
||||||
object.bindingContext = new Observable();
|
|
||||||
},
|
|
||||||
toggleFirstDay() {
|
|
||||||
this.setFD(!this.startMon | 0);
|
|
||||||
},
|
|
||||||
selectPlannerView() {
|
|
||||||
this.$showModal(Action, {
|
|
||||||
props: {
|
|
||||||
title: "calVM",
|
|
||||||
list: ["d", "wk", "mnth"],
|
|
||||||
selected: this.plannerV,
|
|
||||||
},
|
|
||||||
}).then((res) => {
|
|
||||||
if (res && this.plannerV != res) this.setPlannerV(res);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
selectDeletionTime() {
|
|
||||||
this.$showModal(Action, {
|
|
||||||
props: {
|
|
||||||
title: "admp",
|
|
||||||
list: ["otaw", "otam", "otay", "nvr"],
|
|
||||||
selected: this.planDel,
|
|
||||||
},
|
|
||||||
}).then((res) => {
|
|
||||||
if (res && this.planDel != res) this.setPlanDel(res);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
</script>
|
|
|
@ -1,117 +0,0 @@
|
||||||
<template>
|
|
||||||
<Page @loaded="pgLoad" actionBarHidden="true">
|
|
||||||
<RGridLayout :rtl="RTL" rows="*, auto" columns="auto, *">
|
|
||||||
<OptionsList title="opts" :items="items" />
|
|
||||||
<GridLayout
|
|
||||||
:hidden="toast"
|
|
||||||
@loaded="abLoad"
|
|
||||||
row="1"
|
|
||||||
class="appbar rtl"
|
|
||||||
rows="*"
|
|
||||||
columns="auto, *"
|
|
||||||
>
|
|
||||||
<Button class="ico" :text="icon.back" @tap="$navigateBack()" />
|
|
||||||
</GridLayout>
|
|
||||||
<Toast :onload="tbLoad" :toast="toast" :action="hideBar" />
|
|
||||||
<Label rowSpan="2" class="edge hal rtl" @swipe="swipeBack" />
|
|
||||||
<Label
|
|
||||||
rowSpan="2"
|
|
||||||
colSpan="2"
|
|
||||||
class="edge har rtl f"
|
|
||||||
@swipe="swipeBack"
|
|
||||||
/>
|
|
||||||
</RGridLayout>
|
|
||||||
</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 {
|
|
||||||
appbar: null,
|
|
||||||
toastbar: null,
|
|
||||||
toast: null,
|
|
||||||
};
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
...mapState(["icon", "shake", "RTL", "edgeS", "awakeV"]),
|
|
||||||
items() {
|
|
||||||
return [
|
|
||||||
{},
|
|
||||||
{
|
|
||||||
type: "switch",
|
|
||||||
icon: "shuf",
|
|
||||||
title: "sVw",
|
|
||||||
subTitle: localize("sVwInfo"),
|
|
||||||
checked: !!this.shake,
|
|
||||||
action: this.toggleShake,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: "switch",
|
|
||||||
icon: "awake",
|
|
||||||
title: "ksavr",
|
|
||||||
subTitle: localize("ksavrInfo"),
|
|
||||||
checked: !!this.awakeV,
|
|
||||||
action: this.toggleAwake,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: "switch",
|
|
||||||
icon: "edge",
|
|
||||||
title: "esgb",
|
|
||||||
subTitle: localize("esgbInfo"),
|
|
||||||
checked: !!this.edgeS,
|
|
||||||
action: this.toggleSwipe,
|
|
||||||
},
|
|
||||||
{},
|
|
||||||
];
|
|
||||||
},
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
...mapActions(["setS", "toggleEdgeS", "toggleAwakeV"]),
|
|
||||||
pgLoad({ object }) {
|
|
||||||
object.bindingContext = new Observable();
|
|
||||||
},
|
|
||||||
abLoad({ object }) {
|
|
||||||
this.appbar = object;
|
|
||||||
},
|
|
||||||
tbLoad({ object }) {
|
|
||||||
this.toastbar = object;
|
|
||||||
},
|
|
||||||
|
|
||||||
toggleShake() {
|
|
||||||
let checked = this.shake;
|
|
||||||
if (checked && !utils.hasAccelerometer())
|
|
||||||
this.showToast(localize("noAccSensor"));
|
|
||||||
else this.setS(+!checked);
|
|
||||||
},
|
|
||||||
toggleSwipe() {
|
|
||||||
this.toggleEdgeS(+!this.edgeS);
|
|
||||||
},
|
|
||||||
toggleAwake() {
|
|
||||||
this.toggleAwakeV(+!this.awakeV);
|
|
||||||
},
|
|
||||||
|
|
||||||
showToast(data) {
|
|
||||||
this.animateBar(this.appbar, 0).then(() => {
|
|
||||||
this.toast = data;
|
|
||||||
this.animateBar(this.toastbar, 1, 1);
|
|
||||||
utils.timer(5, (val) => !val && this.hideBar());
|
|
||||||
});
|
|
||||||
},
|
|
||||||
hideBar() {
|
|
||||||
this.animateBar(this.toastbar, 0).then(() => {
|
|
||||||
this.toast = null;
|
|
||||||
this.animateBar(this.appbar, 1);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
</script>
|
|
|
@ -1,115 +0,0 @@
|
||||||
<template>
|
|
||||||
<Page @loaded="pgLoad" actionBarHidden="true">
|
|
||||||
<RGridLayout :rtl="RTL" rows="*, auto" columns="auto, *">
|
|
||||||
<OptionsList title="rest" :items="items" :action="reset" />
|
|
||||||
<GridLayout
|
|
||||||
:hidden="toast"
|
|
||||||
row="1"
|
|
||||||
class="appbar rtl"
|
|
||||||
@loaded="abLoad"
|
|
||||||
columns="auto, *"
|
|
||||||
>
|
|
||||||
<Button class="ico" :text="icon.back" @tap="$navigateBack()" />
|
|
||||||
</GridLayout>
|
|
||||||
<Toast :onload="tbLoad" :toast="toast" :action="hideToast" />
|
|
||||||
<Label rowSpan="2" class="edge hal rtl" @swipe="swipeBack" />
|
|
||||||
<Label
|
|
||||||
rowSpan="2"
|
|
||||||
colSpan="2"
|
|
||||||
class="edge har rtl f"
|
|
||||||
@swipe="swipeBack"
|
|
||||||
/>
|
|
||||||
</RGridLayout>
|
|
||||||
</Page>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import { Observable } 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";
|
|
||||||
let barTimer;
|
|
||||||
|
|
||||||
export default {
|
|
||||||
components: { OptionsList, Toast },
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
toast: 0,
|
|
||||||
appbar: 0,
|
|
||||||
toastbar: 0,
|
|
||||||
};
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
...mapState(["icon", "RTL"]),
|
|
||||||
items() {
|
|
||||||
return [
|
|
||||||
{},
|
|
||||||
{
|
|
||||||
type: "list",
|
|
||||||
icon: "reset",
|
|
||||||
rtl: 1,
|
|
||||||
title: "restCuiL",
|
|
||||||
data: "cuisines",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: "list",
|
|
||||||
icon: "reset",
|
|
||||||
rtl: 1,
|
|
||||||
title: "restCatL",
|
|
||||||
data: "categories",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: "list",
|
|
||||||
icon: "reset",
|
|
||||||
rtl: 1,
|
|
||||||
title: "restYUL",
|
|
||||||
data: "yieldUnits",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: "list",
|
|
||||||
icon: "reset",
|
|
||||||
rtl: 1,
|
|
||||||
title: "restUL",
|
|
||||||
data: "units",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: "info",
|
|
||||||
title: "restInfo",
|
|
||||||
},
|
|
||||||
{},
|
|
||||||
];
|
|
||||||
},
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
...mapActions(["resetLIs"]),
|
|
||||||
pgLoad({ object }) {
|
|
||||||
object.bindingContext = new Observable();
|
|
||||||
},
|
|
||||||
abLoad({ object }) {
|
|
||||||
this.appbar = object;
|
|
||||||
},
|
|
||||||
tbLoad({ object }) {
|
|
||||||
this.toastbar = object;
|
|
||||||
},
|
|
||||||
reset(list) {
|
|
||||||
this.resetLIs(list);
|
|
||||||
this.showToast();
|
|
||||||
},
|
|
||||||
showToast() {
|
|
||||||
this.animateBar(this.appbar, 0).then(() => {
|
|
||||||
this.toast = localize("restDone");
|
|
||||||
this.animateBar(this.toastbar, 1, 1);
|
|
||||||
});
|
|
||||||
utils.timer(5, (val) => !val && this.hideToast());
|
|
||||||
},
|
|
||||||
hideToast() {
|
|
||||||
this.animateBar(this.toastbar, 0).then(() => {
|
|
||||||
this.toast = null;
|
|
||||||
this.animateBar(this.appbar, 1);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
</script>
|
|
|
@ -1,87 +0,0 @@
|
||||||
<template>
|
|
||||||
<ListView colSpan="2" rowSpan="2" class="options" for="item in items">
|
|
||||||
<v-template if="$index == 0">
|
|
||||||
<Label class="pTitle tw tb" :text="title | L" />
|
|
||||||
</v-template>
|
|
||||||
<v-template if="item.type == 'switch'">
|
|
||||||
<RGridLayout
|
|
||||||
:rtl="RTL"
|
|
||||||
columns="auto, *, auto"
|
|
||||||
class="option"
|
|
||||||
@touch="touch($event, item.data, item.action)"
|
|
||||||
>
|
|
||||||
<Label class="ico vc rtl" :text="icon[item.icon]" />
|
|
||||||
<StackLayout col="1" class="info">
|
|
||||||
<RLabel :text="item.title | L" class="tw" />
|
|
||||||
<RLabel
|
|
||||||
v-if="item.subTitle"
|
|
||||||
:text="item.subTitle | L"
|
|
||||||
class="sub tw"
|
|
||||||
/>
|
|
||||||
</StackLayout>
|
|
||||||
<Switch
|
|
||||||
@loaded="swLoad"
|
|
||||||
isUserInteractionEnabled="false"
|
|
||||||
:color="item.checked ? '#ff5200' : '#adb5bd'"
|
|
||||||
col="2"
|
|
||||||
:checked="item.checked"
|
|
||||||
/>
|
|
||||||
</RGridLayout>
|
|
||||||
</v-template>
|
|
||||||
<v-template if="item.type == 'list'">
|
|
||||||
<RGridLayout
|
|
||||||
:rtl="RTL"
|
|
||||||
columns="auto, *"
|
|
||||||
class="option"
|
|
||||||
@touch="touch($event, item.data, item.action)"
|
|
||||||
>
|
|
||||||
<Label
|
|
||||||
class="ico vc"
|
|
||||||
:class="{ rtl: item.rtl }"
|
|
||||||
:text="icon[item.icon]"
|
|
||||||
/>
|
|
||||||
<StackLayout col="1" class="info">
|
|
||||||
<RLabel :text="item.title | L" class="tw" />
|
|
||||||
<RLabel
|
|
||||||
:hidden="!item.subTitle"
|
|
||||||
:text="item.subTitle"
|
|
||||||
class="sub tw"
|
|
||||||
/>
|
|
||||||
</StackLayout>
|
|
||||||
</RGridLayout>
|
|
||||||
</v-template>
|
|
||||||
<v-template if="item.type == 'info'">
|
|
||||||
<Label
|
|
||||||
class="groupInfo sub tw lh4"
|
|
||||||
:class="{ r: RTL }"
|
|
||||||
:text="item.title | L"
|
|
||||||
/>
|
|
||||||
</v-template>
|
|
||||||
<v-template>
|
|
||||||
<StackLayout class="ls"> </StackLayout>
|
|
||||||
</v-template>
|
|
||||||
</ListView>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import { mapState } from "vuex";
|
|
||||||
import * as utils from "~/shared/utils";
|
|
||||||
|
|
||||||
export default {
|
|
||||||
props: ["title", "items", "action"],
|
|
||||||
computed: {
|
|
||||||
...mapState(["icon", "RTL"]),
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
swLoad({ object }) {
|
|
||||||
object.android.setRotation(
|
|
||||||
this.RTL && utils.sysRTL() ? 0 : this.RTL || utils.sysRTL() ? 180 : 0
|
|
||||||
);
|
|
||||||
},
|
|
||||||
touch({ object, action }, data, localAction) {
|
|
||||||
this.touchFade(object, action);
|
|
||||||
if (action == "up") localAction ? localAction(data) : this.action(data);
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
</script>
|
|
|
@ -1,31 +0,0 @@
|
||||||
<template>
|
|
||||||
<RGridLayout
|
|
||||||
:rtl="RTL"
|
|
||||||
row="1"
|
|
||||||
class="appbar snackbar"
|
|
||||||
columns="auto, *, auto"
|
|
||||||
@swipe="action"
|
|
||||||
@loaded="onload"
|
|
||||||
>
|
|
||||||
<Button @tap="action" :text="count" class="ico t3 accent tb" />
|
|
||||||
<RLabel
|
|
||||||
@tap="action"
|
|
||||||
margin="0 2"
|
|
||||||
class="tw vc lh4"
|
|
||||||
col="1"
|
|
||||||
:text="msg | L"
|
|
||||||
/>
|
|
||||||
<Button class="ico fab rtl" :text="icon.undo" @tap="undo" col="3" />
|
|
||||||
</RGridLayout>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import { mapState } from "vuex";
|
|
||||||
|
|
||||||
export default {
|
|
||||||
props: ["count", "msg", "undo", "action", "onload"],
|
|
||||||
computed: {
|
|
||||||
...mapState(["icon", "RTL"]),
|
|
||||||
},
|
|
||||||
};
|
|
||||||
</script>
|
|
|
@ -1,272 +0,0 @@
|
||||||
<template>
|
|
||||||
<RGridLayout
|
|
||||||
:rtl="RTL"
|
|
||||||
rows="auto, auto"
|
|
||||||
columns="auto, *, auto, auto, auto"
|
|
||||||
class="timer"
|
|
||||||
>
|
|
||||||
<Button
|
|
||||||
class="ico si rtl"
|
|
||||||
:text="done ? icon.ring : timer.isPaused ? icon.start : icon.pause"
|
|
||||||
@tap="!done && toggleProgress()"
|
|
||||||
/>
|
|
||||||
<StackLayout
|
|
||||||
col="1"
|
|
||||||
class="info"
|
|
||||||
:colSpan="timer.isPaused || !timer.preset ? 1 : 2"
|
|
||||||
>
|
|
||||||
<RLabel :text="timer.label" class="tb title tw a" />
|
|
||||||
<RLabel
|
|
||||||
:hidden="!timer.recipeID && done"
|
|
||||||
@touch="!done && touch($event)"
|
|
||||||
:text="getRecipeTitle"
|
|
||||||
class="a accent"
|
|
||||||
/>
|
|
||||||
<RLabel
|
|
||||||
:text="
|
|
||||||
progress == 0
|
|
||||||
? countUp
|
|
||||||
? getCount
|
|
||||||
: formattedTime(timer.time)
|
|
||||||
: getCount
|
|
||||||
"
|
|
||||||
/>
|
|
||||||
</StackLayout>
|
|
||||||
<Button
|
|
||||||
col="2"
|
|
||||||
class="ico rtl"
|
|
||||||
:hidden="(!timer.isPaused && timer.preset) || done || countUp"
|
|
||||||
:text="isReset || timer.preset ? icon.reset : icon.addTo"
|
|
||||||
@tap="isReset || timer.preset ? resetTimer() : addPreset()"
|
|
||||||
/>
|
|
||||||
<Button
|
|
||||||
col="3"
|
|
||||||
class="ico"
|
|
||||||
@tap="countUp ? addPreset() : addDelay()"
|
|
||||||
:text="countUp ? icon.addTo : icon.delay"
|
|
||||||
/>
|
|
||||||
<Button
|
|
||||||
col="4"
|
|
||||||
class="ico si"
|
|
||||||
:text="icon.x"
|
|
||||||
@tap="removeTimer(timer.id, done)"
|
|
||||||
/>
|
|
||||||
<Progress @loaded="pLoaded" row="1" colSpan="5" />
|
|
||||||
</RGridLayout>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import { ApplicationSettings, Device } from "@nativescript/core";
|
|
||||||
import { localize } from "@nativescript/localize";
|
|
||||||
import { mapState, mapActions } from "vuex";
|
|
||||||
import ActionWithSearch from "../modals/ActionWithSearch";
|
|
||||||
import EditRecipe from "../EditRecipe";
|
|
||||||
import * as utils from "~/shared/utils";
|
|
||||||
import { EvtBus } from "~/main";
|
|
||||||
export default {
|
|
||||||
props: [
|
|
||||||
"timer",
|
|
||||||
"formattedTime",
|
|
||||||
"removeTimer",
|
|
||||||
"togglePause",
|
|
||||||
"timerAlert",
|
|
||||||
"showToast",
|
|
||||||
],
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
pBar: 0,
|
|
||||||
count: 0,
|
|
||||||
delay: 0,
|
|
||||||
progress: 0,
|
|
||||||
};
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
...mapState(["icon", "recipes", "timerD", "timerPs", "RTL"]),
|
|
||||||
getRecipeTitle() {
|
|
||||||
let { recipeID } = this.timer;
|
|
||||||
if (recipeID) {
|
|
||||||
let recipe = this.recipes.filter((e) => e.id == this.timer.recipeID)[0];
|
|
||||||
if (recipe) return recipe.title;
|
|
||||||
else {
|
|
||||||
this.timer.recipeID = null;
|
|
||||||
return localize("fwr");
|
|
||||||
}
|
|
||||||
} else return localize("fwr");
|
|
||||||
},
|
|
||||||
done() {
|
|
||||||
return this.timer.done;
|
|
||||||
},
|
|
||||||
countUp() {
|
|
||||||
return this.timer.mode == 0;
|
|
||||||
},
|
|
||||||
isReset() {
|
|
||||||
return this.timer.isPaused && this.progress != 0;
|
|
||||||
},
|
|
||||||
getTotalTime() {
|
|
||||||
return this.delay + this.actualTime;
|
|
||||||
},
|
|
||||||
actualTime() {
|
|
||||||
let t = this.timer.time.split(":");
|
|
||||||
return +t[0] * 60 * 60 + +t[1] * 60 + +t[2];
|
|
||||||
},
|
|
||||||
getCount() {
|
|
||||||
let c = this.count;
|
|
||||||
let s = Math.abs(c);
|
|
||||||
return (
|
|
||||||
(c < 0 ? "-" : "") +
|
|
||||||
new Date(s * 1000)
|
|
||||||
.toISOString()
|
|
||||||
.slice(
|
|
||||||
s < 10
|
|
||||||
? 18
|
|
||||||
: s < 60
|
|
||||||
? 17
|
|
||||||
: s < 600
|
|
||||||
? 15
|
|
||||||
: s < 3600
|
|
||||||
? 14
|
|
||||||
: s < 36000
|
|
||||||
? 12
|
|
||||||
: s < 86400
|
|
||||||
? 11
|
|
||||||
: 0,
|
|
||||||
19
|
|
||||||
)
|
|
||||||
);
|
|
||||||
},
|
|
||||||
sdkv() {
|
|
||||||
return parseInt(Device.sdkVersion);
|
|
||||||
},
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
...mapActions(["addTP", "sortATs"]),
|
|
||||||
pLoaded({ object }) {
|
|
||||||
this.pBar = object.android;
|
|
||||||
this.pBar.setRotation(
|
|
||||||
this.RTL && utils.sysRTL() ? 0 : this.RTL || utils.sysRTL() ? 180 : 0
|
|
||||||
);
|
|
||||||
this.initTimer();
|
|
||||||
},
|
|
||||||
attachRecipe() {
|
|
||||||
this.$showModal(ActionWithSearch, {
|
|
||||||
props: {
|
|
||||||
title: "selRec",
|
|
||||||
recipes: this.recipes,
|
|
||||||
action: "aNBtn",
|
|
||||||
},
|
|
||||||
}).then((res) => {
|
|
||||||
if (res == "aNBtn") {
|
|
||||||
this.$navigateTo(EditRecipe, {
|
|
||||||
animated: false,
|
|
||||||
});
|
|
||||||
} else if (res) {
|
|
||||||
let timer = this.timer;
|
|
||||||
timer.recipeID = res;
|
|
||||||
this.sortATs();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
setNum(type, val) {
|
|
||||||
ApplicationSettings.setNumber(`${this.timer.id}${type}`, val);
|
|
||||||
},
|
|
||||||
setProgress() {
|
|
||||||
this.progress = 100 - (this.count / this.getTotalTime) * 100;
|
|
||||||
this.sdkv > 23
|
|
||||||
? this.pBar.setProgress(this.progress, true)
|
|
||||||
: this.pBar.setProgress(this.progress);
|
|
||||||
},
|
|
||||||
initTimer() {
|
|
||||||
this.resetInterval();
|
|
||||||
this.setProgress();
|
|
||||||
!this.timer.isPaused && this.pBar.setIndeterminate(this.countUp);
|
|
||||||
if (this.progress < 100 || !this.timer.timerInt) {
|
|
||||||
this.timer.timerInt = setInterval(() => {
|
|
||||||
if (!this.timer.isPaused) {
|
|
||||||
this.setNum("c", this.countUp ? this.count++ : --this.count);
|
|
||||||
this.setProgress();
|
|
||||||
} else this.resetInterval();
|
|
||||||
if (this.progress >= 100 && this.count >= 0) {
|
|
||||||
this.timer.done = 1;
|
|
||||||
this.timerAlert();
|
|
||||||
}
|
|
||||||
}, 1000);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
resetInterval() {
|
|
||||||
clearInterval(this.timer.timerInt);
|
|
||||||
this.timer.timerInt = 0;
|
|
||||||
this.pBar.setIndeterminate(false);
|
|
||||||
},
|
|
||||||
resetTimer() {
|
|
||||||
this.count = this.actualTime;
|
|
||||||
this.progress = this.delay = this.timer.done = 0;
|
|
||||||
ApplicationSettings.remove(`${this.timer.id}d`);
|
|
||||||
this.setNum("c", this.count);
|
|
||||||
this.toggleProgress(1);
|
|
||||||
this.sdkv > 23
|
|
||||||
? this.pBar.setProgress(0, true)
|
|
||||||
: this.pBar.setProgress(0);
|
|
||||||
},
|
|
||||||
toggleProgress(n) {
|
|
||||||
this.togglePause(this.timer, n);
|
|
||||||
this.timer.isPaused ? this.resetInterval() : this.initTimer();
|
|
||||||
},
|
|
||||||
addPreset() {
|
|
||||||
let exist = this.timerPs.some((e) => e.id == this.timer.id);
|
|
||||||
this.timer.preset = 1;
|
|
||||||
if (this.countUp) {
|
|
||||||
this.timer.time = new Date(this.count * 1000)
|
|
||||||
.toISOString()
|
|
||||||
.substr(11, 8);
|
|
||||||
}
|
|
||||||
let timer = JSON.parse(JSON.stringify(this.timer));
|
|
||||||
let { recipeID, timerInt, isPaused, preset, done, mode, ...presetTimer } =
|
|
||||||
timer;
|
|
||||||
this.addTP(presetTimer);
|
|
||||||
exist ? this.showToast("prstTU") : this.showToast("aTPrst");
|
|
||||||
},
|
|
||||||
addDelay() {
|
|
||||||
this.timer.done = 0;
|
|
||||||
let td = this.timerD;
|
|
||||||
let delayDur =
|
|
||||||
this.localeN(td) + " " + localize(td > 1 ? "minutes" : "minute");
|
|
||||||
this.showToast(localize("wDBy", this.timer.label, delayDur));
|
|
||||||
let delay = td * 60;
|
|
||||||
if (this.done) this.delay = delay;
|
|
||||||
else this.delay += delay;
|
|
||||||
if (this.count >= 0) this.count += delay;
|
|
||||||
else this.count = this.delay;
|
|
||||||
this.setNum("d", this.delay);
|
|
||||||
this.setNum("c", this.count);
|
|
||||||
this.resetInterval();
|
|
||||||
this.initTimer();
|
|
||||||
this.timerAlert();
|
|
||||||
},
|
|
||||||
|
|
||||||
// HELPERS
|
|
||||||
touch({ object, action }) {
|
|
||||||
this.touchFade(object, action);
|
|
||||||
if (action == "up") this.attachRecipe();
|
|
||||||
},
|
|
||||||
},
|
|
||||||
created() {
|
|
||||||
this.delay = ApplicationSettings.getNumber(`${this.timer.id}d`, 0);
|
|
||||||
this.count = ApplicationSettings.getNumber(
|
|
||||||
`${this.timer.id}c`,
|
|
||||||
this.actualTime
|
|
||||||
);
|
|
||||||
let bID = "timer" + this.timer.id;
|
|
||||||
EvtBus.$off(bID);
|
|
||||||
EvtBus.$on(bID, (e) => {
|
|
||||||
switch (e) {
|
|
||||||
case "delay":
|
|
||||||
this.addDelay();
|
|
||||||
break;
|
|
||||||
case "dismiss":
|
|
||||||
this.removeTimer(this.timer.id, 1);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
};
|
|
||||||
</script>
|
|
|
@ -1,22 +0,0 @@
|
||||||
<template>
|
|
||||||
<GridLayout
|
|
||||||
:hidden="!toast"
|
|
||||||
row="1"
|
|
||||||
colSpan="2"
|
|
||||||
class="appbar snackbar"
|
|
||||||
columns="*"
|
|
||||||
@swipe="action"
|
|
||||||
@tap="action"
|
|
||||||
@loaded="onload"
|
|
||||||
>
|
|
||||||
<StackLayout minHeight="48">
|
|
||||||
<RLabel padding="16 20" :text="toast" />
|
|
||||||
</StackLayout>
|
|
||||||
</GridLayout>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
props: ["toast", "action", "onload"],
|
|
||||||
};
|
|
||||||
</script>
|
|
BIN
app/fonts/enrecipes.ttf
Normal file
292
app/i18n/ar.json
|
@ -1,292 +0,0 @@
|
||||||
{
|
|
||||||
"aap": "ألحق صورة",
|
|
||||||
"About": "حول",
|
|
||||||
"aBtn": "أضف",
|
|
||||||
"aD": "انتهى!",
|
|
||||||
"addCmbBtn": "ADD COMBINATION",
|
|
||||||
"aFBu": "أضف وصفة لتقوم بالنسخ الاحتياطي",
|
|
||||||
"aIngBtn": "أضف مكون",
|
|
||||||
"allCats": "كل الأصناف",
|
|
||||||
"allCuis": "كل المطابخ",
|
|
||||||
"allTs": "كل العلامات",
|
|
||||||
"American": "أمريكية",
|
|
||||||
"aNBtn": "أضف جديدة",
|
|
||||||
"aNoBtn": "أضف ملاحظة",
|
|
||||||
"app.name": "EnRecipes",
|
|
||||||
"appCrd": "شورك عبر EnRecipes. احصل عليه على F-Droid, IzzyOnDroid, أو متجر بلاي.",
|
|
||||||
"Appetizers": "مقبلات",
|
|
||||||
"appInfo": "EnRecipes كتاب طبخ مفتوح المصدر صديق للخصوصية يتيح لك إنشاء وصفاتك و إدارتها ومشاركتها",
|
|
||||||
"apply": "طبق",
|
|
||||||
"appRst": "إعادة تشغيل التطبيق متطلبة",
|
|
||||||
"aStpBtn": "أضف خطوة",
|
|
||||||
"Barbecue": "شواء",
|
|
||||||
"Beverages": "مشروبات",
|
|
||||||
"Black": "أسود",
|
|
||||||
"Brazilian": "برازيلية",
|
|
||||||
"Breads": "أخباز",
|
|
||||||
"breakfast": "فطور",
|
|
||||||
"British": "بريطانية",
|
|
||||||
"buEmp": "مجلد النسخ الاحتيطية فارغ",
|
|
||||||
"buFol": "مجلد النسخ الاحتياطية",
|
|
||||||
"buInc": "ملف نسخة احتياطي مشوه أو فاسد",
|
|
||||||
"buInfo": "يولد ملف ZIP يحتوي على جميع بياناتك يمكن استيراده مجدداً",
|
|
||||||
"buMod": "لف النسخة الاحتياطة عدل في مكان آخر",
|
|
||||||
"cat": "الصنف",
|
|
||||||
"cBtn": "ألغ",
|
|
||||||
"Challenging": "صعبة",
|
|
||||||
"Chinese": "صينية",
|
|
||||||
"clove": "فص",
|
|
||||||
"cm": "سم",
|
|
||||||
"cmbs": "مجموعات",
|
|
||||||
"conBtn": "أكمل",
|
|
||||||
"conf": "أكد",
|
|
||||||
"cookT": "وقت الطبخ",
|
|
||||||
"cPic": "قص الصورة",
|
|
||||||
"Created": "أنشئت",
|
|
||||||
"cui": "المطبخ",
|
|
||||||
"cup": "كأس",
|
|
||||||
"Cup": "كأس",
|
|
||||||
"dAgo": "قبل %s أيام",
|
|
||||||
"Danish": "دنماركي",
|
|
||||||
"Dark": "داكن",
|
|
||||||
"db": "قاعدة البيانات",
|
|
||||||
"dBtn": "DELETE",
|
|
||||||
"delRecInfo": "أنت على وشك أن تحذف الوصفة %s أبدياً",
|
|
||||||
"delRecsInfo": "أنت على وشك أنت تحذف %s أبدياً",
|
|
||||||
"Desserts": "حلا",
|
|
||||||
"detailed": "مفصل",
|
|
||||||
"Difficulty level": "مستوى الصعوبة",
|
|
||||||
"dinner": "عشاء",
|
|
||||||
"disBtn": "استبعد",
|
|
||||||
"disc": "هذه الوصفة فيها تغييرات غير محفوظة. ما الذي تريد فعله؟",
|
|
||||||
"donate": "تبرع",
|
|
||||||
"dozen": "درزن",
|
|
||||||
"drop": "قطرة",
|
|
||||||
"dsp": "dstspn",
|
|
||||||
"Easy": "سهلة",
|
|
||||||
"editRec": "عدل الوصفة",
|
|
||||||
"Egyptian": "مصرية",
|
|
||||||
"English": "إنجليزية",
|
|
||||||
"EnRecipes": "EnRecipes",
|
|
||||||
"expBu": "صدر نسخة احتياطية كاملة",
|
|
||||||
"expip": "جار التصدير",
|
|
||||||
"expSuc": "نجح التصدير",
|
|
||||||
"favourites": "المفضلات",
|
|
||||||
"Filipino": "فلبينية",
|
|
||||||
"Filtered recipes": "الوصفات المصفاة",
|
|
||||||
"fl oz": "fl oz",
|
|
||||||
"fltr": "المصفاة",
|
|
||||||
"Fluid Ounce": "أونصة سائلة",
|
|
||||||
"French": "فرنسية",
|
|
||||||
"fsList": "وصفاتك المفضلة مسرودة هنا",
|
|
||||||
"g": "غ",
|
|
||||||
"gal": "جال",
|
|
||||||
"Gallon": "جالون",
|
|
||||||
"German": "ألمانية",
|
|
||||||
"gh": "اعرض على GitHub",
|
|
||||||
"Gram": "غرام",
|
|
||||||
"Greek": "إغريقية",
|
|
||||||
"grid": "شبكة",
|
|
||||||
"grocery": "قائمة التسوق",
|
|
||||||
"guide": "دليل المستخدم",
|
|
||||||
"Healthy": "صحية",
|
|
||||||
"hr": "hr",
|
|
||||||
"impBu": "استورد البيانات",
|
|
||||||
"impFail": "فشل الاستيراد",
|
|
||||||
"impInfo": "يدعم النسخ الاحتياطية الكاملة المصدرة من هذا التطبيق",
|
|
||||||
"impip": "جار الاستيراد",
|
|
||||||
"impSuc": "نجح الاستيراد",
|
|
||||||
"in": "إن",
|
|
||||||
"Indian": "هندية",
|
|
||||||
"ings": "المكونات",
|
|
||||||
"inss": "التعليمات",
|
|
||||||
"intf": "الواجهة",
|
|
||||||
"invFile": "ملف غير صحيح",
|
|
||||||
"Irish": "إيرلندية",
|
|
||||||
"it": "Item",
|
|
||||||
"Italian": "إيطالية",
|
|
||||||
"Jamaican": "جمايكية",
|
|
||||||
"Japanese": "يابانية",
|
|
||||||
"Jewish": "يهودية",
|
|
||||||
"joinTG": "انضم لمجموعة التلغرام",
|
|
||||||
"kEdit": "KEEP EDITING",
|
|
||||||
"Kenyan": "كينية",
|
|
||||||
"kg": "كغ",
|
|
||||||
"Kilogram": "كيلوغرام",
|
|
||||||
"Korean": "كورية",
|
|
||||||
"l": "ل",
|
|
||||||
"lang": "اللغة",
|
|
||||||
"large": "كبير",
|
|
||||||
"Last updated": "آخر تحديث",
|
|
||||||
"lb": "lb",
|
|
||||||
"leaf": "ورقة",
|
|
||||||
"Light": "فاتح",
|
|
||||||
"listVM": "وضع عرض القائمة",
|
|
||||||
"Litre": "لتر",
|
|
||||||
"Loaf": "رغيف",
|
|
||||||
"ltAgo": "منذ وقت طويل",
|
|
||||||
"lunch": "غداء",
|
|
||||||
"mAgo": "منذ %s أشهر",
|
|
||||||
"Main dishes": "الأطباق الرئيسة",
|
|
||||||
"Meat": "لحم",
|
|
||||||
"medium": "medium",
|
|
||||||
"Mexican": "مكسيكية",
|
|
||||||
"mg": "مغ",
|
|
||||||
"Millilitre": "مللتر",
|
|
||||||
"min": "min",
|
|
||||||
"sec": "ثان",
|
|
||||||
"minimal": "الأقل",
|
|
||||||
"ml": "مل",
|
|
||||||
"Moderate": "متوسطة",
|
|
||||||
"newCui": "مطبخ جديد",
|
|
||||||
"Newest first": "الأجد أولاً",
|
|
||||||
"newRec": "وصفة جديدة",
|
|
||||||
"newUnit": "وحدة جديدة",
|
|
||||||
"Nigerian": "نيجيرية",
|
|
||||||
"nLangInfo": "أعد تشغيل EnRecipes لاستخدام اللغة الجديدة",
|
|
||||||
"nNBtn": "ليس الآن",
|
|
||||||
"no": "ملاحظة",
|
|
||||||
"noAccSensor": "مقياس التسارع إما معطل أو لا يعمل",
|
|
||||||
"noFavs": "لا مفضلات حتى الآن",
|
|
||||||
"Noodles": "نودلز",
|
|
||||||
"noRecs": "لا وصفات مطابقة لبحثك",
|
|
||||||
"noRecsInL": "لا توجد وصفات هنا تطابق بحثك",
|
|
||||||
"nos": "ملاحظات",
|
|
||||||
"nwCat": "صنف جديد",
|
|
||||||
"nwYiU": "وحدة إنتاج جديدة",
|
|
||||||
"OK": "OK",
|
|
||||||
"Oldest first": "الأقدم أولاً",
|
|
||||||
"opts": "الاعدادات",
|
|
||||||
"Ounce": "أونصة",
|
|
||||||
"oz": "oz",
|
|
||||||
"Pasta": "باستا",
|
|
||||||
"Patty": "فطيرة",
|
|
||||||
"photogrid": "شبكة صور",
|
|
||||||
"pht": "صورة الوصفة",
|
|
||||||
"piece": "قطعة",
|
|
||||||
"Piece": "قطعة",
|
|
||||||
"pinch": "رشة",
|
|
||||||
"planner": "مخططة الوجبات",
|
|
||||||
"plsAdd": "استعمل زر الزائد لإضافة واحدة",
|
|
||||||
"Portuguese": "برتغالية",
|
|
||||||
"Poultry": "دواجن",
|
|
||||||
"Pound": "رطل",
|
|
||||||
"prepT": "وقت التحضير",
|
|
||||||
"priv": "سياسة الخصوصية",
|
|
||||||
"pt": "pt",
|
|
||||||
"qt": "qt",
|
|
||||||
"Quickest first": "الاسرع أولاً",
|
|
||||||
"Rating": "التقييم",
|
|
||||||
"rBtn": "REMOVE",
|
|
||||||
"rec": "الوصفة",
|
|
||||||
"recE": "موجود أصلاً:",
|
|
||||||
"recF": "وصفات عثرت",
|
|
||||||
"recI": "المستورد:",
|
|
||||||
"recListEmp": "لا شيء هنا! أضف بعض الوصفات ثم حاول مجدداً",
|
|
||||||
"recPic": "صورة الوصفة",
|
|
||||||
"recRm": "أزيلت الوصفة",
|
|
||||||
"recs": "الوصفات",
|
|
||||||
"recTitle": "وصفتي الصحية",
|
|
||||||
"recU": "حدثت:",
|
|
||||||
"req": "%s مطلوب(ة)",
|
|
||||||
"resNF": "لم يعثر على الوصفة",
|
|
||||||
"rest": "إعادة تعيين",
|
|
||||||
"restCatL": "أعد تعيين قائمة الأصناف",
|
|
||||||
"restCuiL": "أعد تعيين قائمة المطابخ",
|
|
||||||
"restDone": "انتهت إعادة التعيين",
|
|
||||||
"restInfo": "ستؤدي إعادة تعيين قائمة ما إلى حذف الإدخالات التي أنشأها المستخدم واستعادة الإدخالات الافتراضية. الوصفات الحالية لن تتأثر.",
|
|
||||||
"restUL": "Reset unit list",
|
|
||||||
"restYUL": "أعد تعيين قائمة وحدات الإنتاج",
|
|
||||||
"Rice": "أرز",
|
|
||||||
"rmCatInfo": "أنت على وشك أن تزيل %s من قائمة الأصناف",
|
|
||||||
"rmCmb": "أزيلت المجموعة",
|
|
||||||
"rmCuiInfo": "أنت على وشك أن تزيل %s من قائمة المطابخ",
|
|
||||||
"rmIng": "أزيل المكون",
|
|
||||||
"rmIns": "أزيلت التعليمة",
|
|
||||||
"rmN": "أزيلت الملاحظة",
|
|
||||||
"rmUInfo": "أنت على وشك أن تزيل %s من قائمة الوحدات",
|
|
||||||
"rmYUInfo": "أنت على وشك أن تزيل %s من قائمة وحدات الإنتاج",
|
|
||||||
"Roll": "لفة",
|
|
||||||
"rp": "أزل الصورة",
|
|
||||||
"rst": "أعد التشغيل",
|
|
||||||
"Russian": "روسية",
|
|
||||||
"Salads": "سلطات",
|
|
||||||
"Sauces": "صلصات",
|
|
||||||
"Scottish": "سكتلندية",
|
|
||||||
"Seafood": "بحرية",
|
|
||||||
"selRec": "اختر وصفة",
|
|
||||||
"ser": "ابحث",
|
|
||||||
"Serving": "حصة",
|
|
||||||
"SET": "SET",
|
|
||||||
"Settings": "الإعدادات",
|
|
||||||
"shr": "شارك",
|
|
||||||
"Side dishes": "الأطباق الجانبية",
|
|
||||||
"simple": "بسيط",
|
|
||||||
"Slowest first": "الأبطأ أولاً",
|
|
||||||
"sltd": "المختارة",
|
|
||||||
"small": "صغير",
|
|
||||||
"snacks": "وجبات خفيفة",
|
|
||||||
"Soups": "شوربات",
|
|
||||||
"Spanish": "اسبانية",
|
|
||||||
"Sri Lankan": "سري لانكية",
|
|
||||||
"srpu": "شارك صورة الوصفة باستعمال...",
|
|
||||||
"srt": "افرز",
|
|
||||||
"sru": "شارك وصفة باستعمال...",
|
|
||||||
"stars": "التقييم النجمي",
|
|
||||||
"stick": "اصبع",
|
|
||||||
"stp": "خطوة",
|
|
||||||
"strAdd": "ابدأ إضافة وصفاتك!",
|
|
||||||
"sVw": "هز لرؤية وصفة عشوائية",
|
|
||||||
"sVwInfo": "لمساعدتك على اختيار ما تطبخ عندما لا تستطيع الاختيار",
|
|
||||||
"Swedish": "سويدية",
|
|
||||||
"swm": "ابدأ الاسبوع يوم الاثنين",
|
|
||||||
"sysDef": "System default",
|
|
||||||
"Tablespoon": "ملعقة",
|
|
||||||
"tbsp": "ملعقة كبيرة",
|
|
||||||
"Teaspoon": "ملعقة شاي",
|
|
||||||
"Thai": "تايلندية",
|
|
||||||
"Theme": "السمة",
|
|
||||||
"title": "العنوان",
|
|
||||||
"tLInfo": "الوصفات التي تريد تجربتها مسرودة هنا",
|
|
||||||
"today": "اليوم",
|
|
||||||
"triedInfo": "جربت هذه الوصفة %s",
|
|
||||||
"trnsl": "ترجم",
|
|
||||||
"trylater": "حاول لاحقاً",
|
|
||||||
"trySer": "ابحث في كل الوصفات؟",
|
|
||||||
"ts": "العلامات",
|
|
||||||
"tsInfo": "افصل بمساقات",
|
|
||||||
"tsp": "ملعقة كبيرة",
|
|
||||||
"Turkish": "تركية",
|
|
||||||
"Undefined": "غير معرف",
|
|
||||||
"unit": "وحدة",
|
|
||||||
"Unit": "وحدة",
|
|
||||||
"unsaved": "تغيرات غبر محفوظة",
|
|
||||||
"untRec": "وصفة بلا عنوان",
|
|
||||||
"Vegan": "نباتي صرف",
|
|
||||||
"Vegetarian": "نباتي",
|
|
||||||
"Vietnamese": "فيتنامية",
|
|
||||||
"wAgo": "قبل %s أسابيع",
|
|
||||||
"yesterday": "أمس",
|
|
||||||
"yieldQ": "كمية الإنتاج",
|
|
||||||
"yieldU": "وحدة الانتاج",
|
|
||||||
"yld": "الانتاج",
|
|
||||||
"buto": "نسخ احتياطياً إلى %s",
|
|
||||||
"sysDefB": "System default + Black",
|
|
||||||
"timer": "مؤقت الطبخ",
|
|
||||||
"ntmr": "مؤقت جديد",
|
|
||||||
"strtBtn": "ابدأ",
|
|
||||||
"stop": "قف",
|
|
||||||
"delay": "التأخير",
|
|
||||||
"tmr": "مؤقت %s",
|
|
||||||
"prstBtn": "PRESETS",
|
|
||||||
"fwr": "لأي وصفة؟",
|
|
||||||
"aTPrst": "أضيف إلى الإعدادات المسبقة",
|
|
||||||
"tmrSnd": "صوت المؤقت",
|
|
||||||
"tmrvbrt": "اهتزاز المؤقت",
|
|
||||||
"dlyDur": "مدة التأخير",
|
|
||||||
"minute": "دقيقة",
|
|
||||||
"minutes": "دقائق",
|
|
||||||
"hour": "ساعة",
|
|
||||||
"hours": "ساعات",
|
|
||||||
"seconds": "ثوان"
|
|
||||||
}
|
|
|
@ -7,6 +7,8 @@
|
||||||
"Appetizers": "Aperitius",
|
"Appetizers": "Aperitius",
|
||||||
"appInfo": "L’EnRecipes és un receptari digital, de codi obert i privat, que us permet crear, gestionar i compartir les vostres receptes",
|
"appInfo": "L’EnRecipes és un receptari digital, de codi obert i privat, que us permet crear, gestionar i compartir les vostres receptes",
|
||||||
"appRst": "Cal reiniciar l’aplicació",
|
"appRst": "Cal reiniciar l’aplicació",
|
||||||
|
"April": "abril",
|
||||||
|
"August": "agost",
|
||||||
"Barbecue": "Barbacoes",
|
"Barbecue": "Barbacoes",
|
||||||
"Beverages": "Begudes",
|
"Beverages": "Begudes",
|
||||||
"Breads": "Pans",
|
"Breads": "Pans",
|
||||||
|
@ -15,26 +17,37 @@
|
||||||
"cPic": "Escapça la foto",
|
"cPic": "Escapça la foto",
|
||||||
"Cup": "Tassa",
|
"Cup": "Tassa",
|
||||||
"dBtn": "SUPRIMEIX",
|
"dBtn": "SUPRIMEIX",
|
||||||
|
"December": "desembre",
|
||||||
"Desserts": "Postres",
|
"Desserts": "Postres",
|
||||||
"disBtn": "DESCARTA’LS",
|
"disBtn": "DESCARTA’LS",
|
||||||
"disc": "Aquesta recepta té canvis no desats. Què voleu fer?",
|
"disc": "Aquesta recepta té canvis no desats. Què voleu fer?",
|
||||||
"EnRecipes": "EnRecipes",
|
"EnRecipes": "EnRecipes",
|
||||||
"favourites": "Preferits",
|
"favourites": "Preferits",
|
||||||
|
"February": "febrer",
|
||||||
"Fluid Ounce": "Unça líquida",
|
"Fluid Ounce": "Unça líquida",
|
||||||
|
"FRI": "DV.",
|
||||||
"Gallon": "Galó",
|
"Gallon": "Galó",
|
||||||
"Gram": "Gram",
|
"Gram": "Gram",
|
||||||
"grid": "Graella",
|
"grid": "Graella",
|
||||||
"grocery": "Llista de queviures",
|
"grocery": "Llista de queviures",
|
||||||
"impFail": "Ha fallat la importació",
|
"impFail": "Ha fallat la importació",
|
||||||
"invFile": "El fitxer no és vàlid",
|
"invFile": "El fitxer no és vàlid",
|
||||||
|
"January": "gener",
|
||||||
|
"July": "juliol",
|
||||||
|
"June": "juny",
|
||||||
"Kilogram": "Quilogram",
|
"Kilogram": "Quilogram",
|
||||||
"Litre": "Litre",
|
"Litre": "Litre",
|
||||||
|
"March": "març",
|
||||||
|
"May": "maig",
|
||||||
"Meat": "Carn",
|
"Meat": "Carn",
|
||||||
"Mexican": "Mexicana",
|
"Mexican": "Mexicana",
|
||||||
"Millilitre": "Mil·lilitre",
|
"Millilitre": "Mil·lilitre",
|
||||||
|
"MON": "DL.",
|
||||||
"nNBtn": "ARA NO",
|
"nNBtn": "ARA NO",
|
||||||
"Noodles": "Fideus",
|
"Noodles": "Fideus",
|
||||||
|
"November": "novembre",
|
||||||
"nwCat": "Categoria nova",
|
"nwCat": "Categoria nova",
|
||||||
|
"October": "octubre",
|
||||||
"OK": "D’acord",
|
"OK": "D’acord",
|
||||||
"Ounce": "Unça",
|
"Ounce": "Unça",
|
||||||
"Pasta": "Pasta",
|
"Pasta": "Pasta",
|
||||||
|
@ -46,8 +59,10 @@
|
||||||
"Rice": "Arròs",
|
"Rice": "Arròs",
|
||||||
"rst": "REINICIA",
|
"rst": "REINICIA",
|
||||||
"Salads": "Amanides",
|
"Salads": "Amanides",
|
||||||
|
"SAT": "DS.",
|
||||||
"Sauces": "Salses",
|
"Sauces": "Salses",
|
||||||
"Seafood": "Peix i marisc",
|
"Seafood": "Peix i marisc",
|
||||||
|
"September": "setembre",
|
||||||
"ser": "Cerca",
|
"ser": "Cerca",
|
||||||
"Serving": "Ració",
|
"Serving": "Ració",
|
||||||
"SET": "DEFINEIX",
|
"SET": "DEFINEIX",
|
||||||
|
@ -57,30 +72,19 @@
|
||||||
"snacks": "piscolabis",
|
"snacks": "piscolabis",
|
||||||
"Soups": "Brous",
|
"Soups": "Brous",
|
||||||
"Spanish": "Espanyola",
|
"Spanish": "Espanyola",
|
||||||
|
"SUN": "DG.",
|
||||||
"Tablespoon": "Cullerada",
|
"Tablespoon": "Cullerada",
|
||||||
"Teaspoon": "Culleradeta",
|
"Teaspoon": "Culleradeta",
|
||||||
|
"THU": "DJ.",
|
||||||
"trnsl": "Tradueix",
|
"trnsl": "Tradueix",
|
||||||
"trylater": "Per a provar més tard",
|
"trylater": "Per a provar més tard",
|
||||||
"ts": "Etiquetes",
|
"ts": "Etiquetes",
|
||||||
|
"TUE": "DT.",
|
||||||
"Undefined": "Sense definir",
|
"Undefined": "Sense definir",
|
||||||
"unsaved": "Canvis no desats",
|
"unsaved": "Canvis no desats",
|
||||||
"untRec": "Recepta sense títol",
|
"untRec": "Recepta sense títol",
|
||||||
"Vegan": "Veganes",
|
"Vegan": "Veganes",
|
||||||
"Vegetarian": "Vegetarianes",
|
"Vegetarian": "Vegetarianes",
|
||||||
"sec": "s",
|
"WED": "DC.",
|
||||||
"dinner": "Sopar",
|
"sec": "s"
|
||||||
"Brazilian": "Brasilera",
|
|
||||||
"Black": "Negre",
|
|
||||||
"aStpBtn": "AFEGEIX UN PAS",
|
|
||||||
"apply": "APLICA",
|
|
||||||
"aNoBtn": "AFEGEIX UNA NOTA",
|
|
||||||
"American": "Americà",
|
|
||||||
"allCuis": "Totes les cuines",
|
|
||||||
"aIngBtn": "AFEGEIX UN INGREDIENT",
|
|
||||||
"aFBu": "Afegeix una recepta per fer una còpia de seguretat",
|
|
||||||
"addCmbBtn": "AFEGEIX-HI UNA COMBINACIÓ",
|
|
||||||
"aD": "Llest!",
|
|
||||||
"aBtn": "AFEGEIX",
|
|
||||||
"aap": "Adjunta-hi una fotografia",
|
|
||||||
"piece": "peça"
|
|
||||||
}
|
}
|
|
@ -143,6 +143,13 @@
|
||||||
"yesterday": "i går",
|
"yesterday": "i går",
|
||||||
"disBtn": "AFFALD",
|
"disBtn": "AFFALD",
|
||||||
"fltr": "Filtrer",
|
"fltr": "Filtrer",
|
||||||
|
"FRI": "FRE",
|
||||||
|
"MON": "MAN",
|
||||||
|
"SAT": "LøR",
|
||||||
|
"SUN": "SøN",
|
||||||
|
"THU": "TOR",
|
||||||
|
"TUE": "TIR",
|
||||||
|
"WED": "ONS",
|
||||||
"no": "Bemærk",
|
"no": "Bemærk",
|
||||||
"nNBtn": "IKKE NU",
|
"nNBtn": "IKKE NU",
|
||||||
"nLangInfo": "Genstart EnRecipes for at bruge det nye sprog",
|
"nLangInfo": "Genstart EnRecipes for at bruge det nye sprog",
|
||||||
|
@ -150,6 +157,8 @@
|
||||||
"newRec": "Ny opskrift",
|
"newRec": "Ny opskrift",
|
||||||
"newCui": "Nyt køkken",
|
"newCui": "Nyt køkken",
|
||||||
"minimal": "Minimalt",
|
"minimal": "Minimalt",
|
||||||
|
"May": "maj",
|
||||||
|
"March": "Marts",
|
||||||
"mAgo": "%s måneder siden",
|
"mAgo": "%s måneder siden",
|
||||||
"noAccSensor": "Accelerometersensoren er enten deaktiveret eller fungerer ikke",
|
"noAccSensor": "Accelerometersensoren er enten deaktiveret eller fungerer ikke",
|
||||||
"noRecsInL": "Ingen af opskrifterne her matcher din søgning",
|
"noRecsInL": "Ingen af opskrifterne her matcher din søgning",
|
||||||
|
@ -161,7 +170,10 @@
|
||||||
"ltAgo": "for lang tid siden",
|
"ltAgo": "for lang tid siden",
|
||||||
"listVM": "Visning af liste",
|
"listVM": "Visning af liste",
|
||||||
"kEdit": "FORTSÆT REDIGERING",
|
"kEdit": "FORTSÆT REDIGERING",
|
||||||
|
"June": "Juni",
|
||||||
|
"July": "Juli",
|
||||||
"joinTG": "Tilmeld dig Telegram-gruppen",
|
"joinTG": "Tilmeld dig Telegram-gruppen",
|
||||||
|
"January": "Januar",
|
||||||
"it": "Varen",
|
"it": "Varen",
|
||||||
"invFile": "Ugyldig fil",
|
"invFile": "Ugyldig fil",
|
||||||
"inss": "Vejledning",
|
"inss": "Vejledning",
|
||||||
|
@ -174,6 +186,7 @@
|
||||||
"grid": "Gitter",
|
"grid": "Gitter",
|
||||||
"gh": "Se på GitHub",
|
"gh": "Se på GitHub",
|
||||||
"Filtered recipes": "Filtrerede opskrifter",
|
"Filtered recipes": "Filtrerede opskrifter",
|
||||||
|
"February": "Februar",
|
||||||
"expip": "Eksport i gang",
|
"expip": "Eksport i gang",
|
||||||
"editRec": "Rediger opskrift",
|
"editRec": "Rediger opskrift",
|
||||||
"donate": "Donér",
|
"donate": "Donér",
|
||||||
|
@ -194,9 +207,11 @@
|
||||||
"simple": "Enkel",
|
"simple": "Enkel",
|
||||||
"shr": "Del",
|
"shr": "Del",
|
||||||
"ser": "Søg",
|
"ser": "Søg",
|
||||||
|
"September": "September",
|
||||||
"detailed": "Detaljeret",
|
"detailed": "Detaljeret",
|
||||||
"delRecsInfo": "Du er ved at slette %s permanent",
|
"delRecsInfo": "Du er ved at slette %s permanent",
|
||||||
"delRecInfo": "Du er ved at slette opskriften %s permanent",
|
"delRecInfo": "Du er ved at slette opskriften %s permanent",
|
||||||
|
"December": "December",
|
||||||
"dBtn": "SLETNING",
|
"dBtn": "SLETNING",
|
||||||
"dAgo": "%s dage siden",
|
"dAgo": "%s dage siden",
|
||||||
"cui": "Køkken",
|
"cui": "Køkken",
|
||||||
|
@ -213,7 +228,9 @@
|
||||||
"buFol": "Backup-mappe",
|
"buFol": "Backup-mappe",
|
||||||
"buEmp": "Backup-filen er tom",
|
"buEmp": "Backup-filen er tom",
|
||||||
"Black": "Sort",
|
"Black": "Sort",
|
||||||
|
"August": "August",
|
||||||
"aStpBtn": "TILFØJ TRIN",
|
"aStpBtn": "TILFØJ TRIN",
|
||||||
|
"April": "April",
|
||||||
"appRst": "App genstart nødvendig",
|
"appRst": "App genstart nødvendig",
|
||||||
"apply": "ANSØG",
|
"apply": "ANSØG",
|
||||||
"appInfo": "EnRecipes er en open source, privatlivsvenlig digital kogebog, som giver dig mulighed for at oprette, administrere og dele dine opskrifter",
|
"appInfo": "EnRecipes er en open source, privatlivsvenlig digital kogebog, som giver dig mulighed for at oprette, administrere og dele dine opskrifter",
|
||||||
|
@ -268,29 +285,10 @@
|
||||||
"pht": "Foto af opskriften",
|
"pht": "Foto af opskriften",
|
||||||
"photogrid": "Foto gitter",
|
"photogrid": "Foto gitter",
|
||||||
"opts": "Indstillinger",
|
"opts": "Indstillinger",
|
||||||
|
"October": "Oktober",
|
||||||
"nwYiU": "Ny udbytteenhed",
|
"nwYiU": "Ny udbytteenhed",
|
||||||
"nwCat": "Ny kategori",
|
"nwCat": "Ny kategori",
|
||||||
|
"November": "November",
|
||||||
"sysDefB": "Systemstandard + sort",
|
"sysDefB": "Systemstandard + sort",
|
||||||
"sec": "s",
|
"sec": "s"
|
||||||
"delay": "Udset",
|
|
||||||
"stop": "Stopper",
|
|
||||||
"strtBtn": "STARTER",
|
|
||||||
"ntmr": "Ny timer",
|
|
||||||
"timer": "Kogetid Timer",
|
|
||||||
"hour": "timer",
|
|
||||||
"hours": "timers",
|
|
||||||
"aTPrst": "Tilføjet til forudindstillinger",
|
|
||||||
"fwr": "til hvilken opskrift?",
|
|
||||||
"prstBtn": "FORUDSÆTTER",
|
|
||||||
"tmrSnd": "Timeren lyd",
|
|
||||||
"tmr": "Timeren %s",
|
|
||||||
"tmrvbrt": "Timer vibrerer",
|
|
||||||
"dlyDur": "Forsinkelsens varighed",
|
|
||||||
"minute": "minut",
|
|
||||||
"minutes": "minutter",
|
|
||||||
"seconds": "sekunder",
|
|
||||||
"notifSetg": "Indstillinger for meddelelser",
|
|
||||||
"tmrRm": "Timer fjernet",
|
|
||||||
"delPrst": "Du er ved at slette %s fra de forudindstillinger",
|
|
||||||
"prsts": "Forindstillinger"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,9 @@
|
||||||
"appInfo": "EnRecipes ist ein quelloffenes, datenschutzfreundliches, digitales Kochbuch, mit dem du deine Rezepte erstellen, verwalten und teilen kannst",
|
"appInfo": "EnRecipes ist ein quelloffenes, datenschutzfreundliches, digitales Kochbuch, mit dem du deine Rezepte erstellen, verwalten und teilen kannst",
|
||||||
"apply": "ANWENDEN",
|
"apply": "ANWENDEN",
|
||||||
"appRst": "Neustart der Anwendung erforderlich",
|
"appRst": "Neustart der Anwendung erforderlich",
|
||||||
|
"April": "April",
|
||||||
"aStpBtn": "SCHRITT HINZUFÜGEN",
|
"aStpBtn": "SCHRITT HINZUFÜGEN",
|
||||||
|
"August": "August",
|
||||||
"Barbecue": "Grill",
|
"Barbecue": "Grill",
|
||||||
"Beverages": "Getränke",
|
"Beverages": "Getränke",
|
||||||
"Black": "Schwarz",
|
"Black": "Schwarz",
|
||||||
|
@ -51,6 +53,7 @@
|
||||||
"Dark": "Dunkel",
|
"Dark": "Dunkel",
|
||||||
"db": "Datenbank",
|
"db": "Datenbank",
|
||||||
"dBtn": "LÖSCHEN",
|
"dBtn": "LÖSCHEN",
|
||||||
|
"December": "Dezember",
|
||||||
"delRecInfo": "Du bist dabei, das Rezept %s dauerhaft zu löschen",
|
"delRecInfo": "Du bist dabei, das Rezept %s dauerhaft zu löschen",
|
||||||
"delRecsInfo": "Du bist dabei, %s dauerhaft zu löschen",
|
"delRecsInfo": "Du bist dabei, %s dauerhaft zu löschen",
|
||||||
"Desserts": "Nachspeisen",
|
"Desserts": "Nachspeisen",
|
||||||
|
@ -72,12 +75,14 @@
|
||||||
"expip": "Export wird durchgeführt",
|
"expip": "Export wird durchgeführt",
|
||||||
"expSuc": "Export erfolgreich",
|
"expSuc": "Export erfolgreich",
|
||||||
"favourites": "Favoriten",
|
"favourites": "Favoriten",
|
||||||
|
"February": "Februar",
|
||||||
"Filipino": "Philipinisch",
|
"Filipino": "Philipinisch",
|
||||||
"Filtered recipes": "Gefilterte Rezepte",
|
"Filtered recipes": "Gefilterte Rezepte",
|
||||||
"fl oz": "fl",
|
"fl oz": "fl",
|
||||||
"fltr": "Filter",
|
"fltr": "Filter",
|
||||||
"Fluid Ounce": "Flüssige Unze",
|
"Fluid Ounce": "Flüssige Unze",
|
||||||
"French": "Französisch",
|
"French": "Französisch",
|
||||||
|
"FRI": "Fr.",
|
||||||
"fsList": "Deine Lieblingsrezepte findest du hier",
|
"fsList": "Deine Lieblingsrezepte findest du hier",
|
||||||
"g": "g",
|
"g": "g",
|
||||||
"gal": "gal",
|
"gal": "gal",
|
||||||
|
@ -103,12 +108,15 @@
|
||||||
"intf": "Benutzeroberfläche",
|
"intf": "Benutzeroberfläche",
|
||||||
"invFile": "Ungültige Datei",
|
"invFile": "Ungültige Datei",
|
||||||
"Irish": "Irisch",
|
"Irish": "Irisch",
|
||||||
"it": "Element %s",
|
"it": "Element",
|
||||||
"Italian": "Italienisch",
|
"Italian": "Italienisch",
|
||||||
"Jamaican": "Jamaikanisch",
|
"Jamaican": "Jamaikanisch",
|
||||||
|
"January": "Januar",
|
||||||
"Japanese": "Japanisch",
|
"Japanese": "Japanisch",
|
||||||
"Jewish": "Jüdisch",
|
"Jewish": "Jüdisch",
|
||||||
"joinTG": "Tritt der Telegram-Gruppe bei",
|
"joinTG": "Tritt der Telegram-Gruppe bei",
|
||||||
|
"July": "Juli",
|
||||||
|
"June": "Juni",
|
||||||
"kEdit": "WEITER BEARBEITEN",
|
"kEdit": "WEITER BEARBEITEN",
|
||||||
"Kenyan": "Kenianisch",
|
"Kenyan": "Kenianisch",
|
||||||
"kg": "kg",
|
"kg": "kg",
|
||||||
|
@ -128,6 +136,8 @@
|
||||||
"lunch": "Mittagessen",
|
"lunch": "Mittagessen",
|
||||||
"mAgo": "%s Monate zuvor",
|
"mAgo": "%s Monate zuvor",
|
||||||
"Main dishes": "Hauptspeisen",
|
"Main dishes": "Hauptspeisen",
|
||||||
|
"March": "März",
|
||||||
|
"May": "Mai",
|
||||||
"Meat": "Fleisch",
|
"Meat": "Fleisch",
|
||||||
"medium": "medium",
|
"medium": "medium",
|
||||||
"Mexican": "Mexikanisch",
|
"Mexican": "Mexikanisch",
|
||||||
|
@ -137,6 +147,7 @@
|
||||||
"minimal": "Minimal",
|
"minimal": "Minimal",
|
||||||
"ml": "ml",
|
"ml": "ml",
|
||||||
"Moderate": "Moderat",
|
"Moderate": "Moderat",
|
||||||
|
"MON": "Mo.",
|
||||||
"newCui": "Neue Küche",
|
"newCui": "Neue Küche",
|
||||||
"Newest first": "Neueste zuerst",
|
"Newest first": "Neueste zuerst",
|
||||||
"newRec": "Neues Rezept",
|
"newRec": "Neues Rezept",
|
||||||
|
@ -151,8 +162,10 @@
|
||||||
"noRecs": "Keine Rezepte passen zu deiner Suche",
|
"noRecs": "Keine Rezepte passen zu deiner Suche",
|
||||||
"noRecsInL": "Keines der hier aufgeführten Rezepte entspricht deiner Suche",
|
"noRecsInL": "Keines der hier aufgeführten Rezepte entspricht deiner Suche",
|
||||||
"nos": "Notizen",
|
"nos": "Notizen",
|
||||||
|
"November": "November",
|
||||||
"nwCat": "Neue Kategorie",
|
"nwCat": "Neue Kategorie",
|
||||||
"nwYiU": "Neue Ertragseinheit",
|
"nwYiU": "Neue Ertragseinheit",
|
||||||
|
"October": "Oktober",
|
||||||
"OK": "OK",
|
"OK": "OK",
|
||||||
"Oldest first": "Älteste zuerst",
|
"Oldest first": "Älteste zuerst",
|
||||||
"opts": "Optionen",
|
"opts": "Optionen",
|
||||||
|
@ -166,7 +179,7 @@
|
||||||
"Piece": "Stück",
|
"Piece": "Stück",
|
||||||
"pinch": "Prise",
|
"pinch": "Prise",
|
||||||
"planner": "Essensplaner",
|
"planner": "Essensplaner",
|
||||||
"plsAdd": "Verwende das +-Schaltfläche, um eins hinzuzufügen",
|
"plsAdd": "Verwende das Plus-Symbol, um eins hinzuzufügen",
|
||||||
"Portuguese": "Portugiesisch",
|
"Portuguese": "Portugiesisch",
|
||||||
"Poultry": "Geflügel",
|
"Poultry": "Geflügel",
|
||||||
"Pound": "Pfund",
|
"Pound": "Pfund",
|
||||||
|
@ -210,10 +223,12 @@
|
||||||
"rst": "NEU STARTEN",
|
"rst": "NEU STARTEN",
|
||||||
"Russian": "Russisch",
|
"Russian": "Russisch",
|
||||||
"Salads": "Salate",
|
"Salads": "Salate",
|
||||||
|
"SAT": "Sa.",
|
||||||
"Sauces": "Soßen",
|
"Sauces": "Soßen",
|
||||||
"Scottish": "Schottisch",
|
"Scottish": "Schottisch",
|
||||||
"Seafood": "Meeresfrüchte",
|
"Seafood": "Meeresfrüchte",
|
||||||
"selRec": "Rezept auswählen",
|
"selRec": "Rezept auswählen",
|
||||||
|
"September": "September",
|
||||||
"ser": "Suchen",
|
"ser": "Suchen",
|
||||||
"Serving": "Portion",
|
"Serving": "Portion",
|
||||||
"SET": "EINSTELLEN",
|
"SET": "EINSTELLEN",
|
||||||
|
@ -233,8 +248,9 @@
|
||||||
"sru": "Rezept teilen mit …",
|
"sru": "Rezept teilen mit …",
|
||||||
"stars": "Bewertung in Sternen",
|
"stars": "Bewertung in Sternen",
|
||||||
"stick": "Stange",
|
"stick": "Stange",
|
||||||
"stp": "Schritt %s",
|
"stp": "Schritt",
|
||||||
"strAdd": "Beginne deine Rezepte hinzuzufügen!",
|
"strAdd": "Beginne deine Rezepte hinzuzufügen!",
|
||||||
|
"SUN": "So.",
|
||||||
"sVw": "Schütteln, um ein zufälliges Rezept anzuzeigen",
|
"sVw": "Schütteln, um ein zufälliges Rezept anzuzeigen",
|
||||||
"sVwInfo": "Hilft dir, wenn du dich nicht entscheiden kannst, was gekocht werden soll",
|
"sVwInfo": "Hilft dir, wenn du dich nicht entscheiden kannst, was gekocht werden soll",
|
||||||
"Swedish": "Swedisch",
|
"Swedish": "Swedisch",
|
||||||
|
@ -245,6 +261,7 @@
|
||||||
"Teaspoon": "TL",
|
"Teaspoon": "TL",
|
||||||
"Thai": "Thailändisch",
|
"Thai": "Thailändisch",
|
||||||
"Theme": "Thema",
|
"Theme": "Thema",
|
||||||
|
"THU": "Do.",
|
||||||
"title": "Titel",
|
"title": "Titel",
|
||||||
"tLInfo": "Rezepte, die du später ausprobieren willst, sind hier aufgelistet",
|
"tLInfo": "Rezepte, die du später ausprobieren willst, sind hier aufgelistet",
|
||||||
"today": "heute",
|
"today": "heute",
|
||||||
|
@ -255,6 +272,7 @@
|
||||||
"ts": "Markierungen",
|
"ts": "Markierungen",
|
||||||
"tsInfo": "mit Leerzeichen trennen",
|
"tsInfo": "mit Leerzeichen trennen",
|
||||||
"tsp": "TL",
|
"tsp": "TL",
|
||||||
|
"TUE": "Di.",
|
||||||
"Turkish": "Türkisch",
|
"Turkish": "Türkisch",
|
||||||
"Undefined": "Unsortiert",
|
"Undefined": "Unsortiert",
|
||||||
"unit": "Einheit",
|
"unit": "Einheit",
|
||||||
|
@ -265,19 +283,21 @@
|
||||||
"Vegetarian": "Vegetarisch",
|
"Vegetarian": "Vegetarisch",
|
||||||
"Vietnamese": "Vietnamesisch",
|
"Vietnamese": "Vietnamesisch",
|
||||||
"wAgo": "%s Wochen zuvor",
|
"wAgo": "%s Wochen zuvor",
|
||||||
|
"WED": "Mi.",
|
||||||
"yesterday": "gestern",
|
"yesterday": "gestern",
|
||||||
"yieldQ": "Ertragsmenge",
|
"yieldQ": "Ertragsmenge",
|
||||||
"yieldU": "Ertragseinheit",
|
"yieldU": "Ertragseinheit",
|
||||||
"yld": "Ergebnis",
|
"yld": "Ergebnis",
|
||||||
"buto": "Gesichert in %s",
|
"buto": "Gesichert in %s",
|
||||||
"sysDefB": "Systemstandard + schwarz",
|
"sysDefB": "Systemstandard + schwarz",
|
||||||
"tmr": "Kurzzeitwecker %s",
|
"tmr": "Kochwecker %s",
|
||||||
"strtBtn": "START",
|
"strtBtn": "START",
|
||||||
"ntmr": "Neuer Kurzzeitwecker",
|
"ntmr": "Neuer Kochwecker",
|
||||||
"timer": "Kurzzeitwecker",
|
"timer": "Kochwecker",
|
||||||
"sec": "s",
|
"sec": "sec",
|
||||||
"tmrvbrt": "Kurzzeitweckervibration",
|
"tmrvbrt": "Kochwecker vibrieren",
|
||||||
"tmrSnd": "Kurzzeitweckerton",
|
"tmrSnd": "Kochwecker-Ton",
|
||||||
|
"tmrPrsts": "Voreinstellungen des Kochweckers",
|
||||||
"aTPrst": "Zu Voreinstellungen hinzugefügt",
|
"aTPrst": "Zu Voreinstellungen hinzugefügt",
|
||||||
"fwr": "für welches Rezept?",
|
"fwr": "für welches Rezept?",
|
||||||
"prstBtn": "Voreinstellungen",
|
"prstBtn": "Voreinstellungen",
|
||||||
|
@ -288,44 +308,5 @@
|
||||||
"minutes": "Minuten",
|
"minutes": "Minuten",
|
||||||
"minute": "Minute",
|
"minute": "Minute",
|
||||||
"dlyDur": "Verzögerungsdauer",
|
"dlyDur": "Verzögerungsdauer",
|
||||||
"delay": "Verzögern",
|
"delay": "Verzögerung"
|
||||||
"tmrRm": "Kurzzeitwecker entfernt",
|
|
||||||
"notifSetg": "Benachrichtigungseinstellungen",
|
|
||||||
"delPrst": "Du bist dabei, %s aus den Voreinstellungen zu löschen",
|
|
||||||
"prsts": "Voreinstellungen",
|
|
||||||
"ttv": "Zum Anzeigen tippen",
|
|
||||||
"dismissAll": "Alle Kurzzeitwecker verwerfen",
|
|
||||||
"dismiss": "Verwerfen",
|
|
||||||
"texp": "%s Kurzzeitwecker abgelaufen",
|
|
||||||
"wDBy": "%1$s wurde um %2$s verzögert",
|
|
||||||
"prstTU": "Voreingestellte Zeit aktualisiert",
|
|
||||||
"ccwt": "Koche selbstbewusst mit Kurzzeitweckern!",
|
|
||||||
"gtD": "Zu Datum gehen",
|
|
||||||
"random": "Zufällig",
|
|
||||||
"oAP": "%1$s laufend, %2$s angehalten",
|
|
||||||
"ystr": "Gestern",
|
|
||||||
"tmrw": "Morgen",
|
|
||||||
"tdy": "Heute",
|
|
||||||
"cpy": "Kopie",
|
|
||||||
"calVM": "Modus der Kalenderansicht",
|
|
||||||
"d": "Tag",
|
|
||||||
"wk": "Woche",
|
|
||||||
"mnth": "Monat",
|
|
||||||
"nvr": "Nie",
|
|
||||||
"otaw": "Älter als eine Woche",
|
|
||||||
"otam": "Älter als ein Monat",
|
|
||||||
"otay": "Älter als ein Jahr",
|
|
||||||
"admp": "Mahlzeitenpläne automatisch löschen",
|
|
||||||
"plsCrt": "Verwende die Plus-Schaltfläche, um einen zu erstellen",
|
|
||||||
"ehwmp": "Iss gesund mit Essensplänen!",
|
|
||||||
"selMT": "Mahlzeitentyp auswählen",
|
|
||||||
"rstBtn": "ZURÜCKSETZEN",
|
|
||||||
"add": "Hinzufügen",
|
|
||||||
"ksavr": "Bildschirm während der Rezeptanzeige eingeschaltet halten",
|
|
||||||
"esgbInfo": "Deaktiviere diese Option, wenn du Probleme mit der Navigation hast",
|
|
||||||
"esgb": "Randwischen zum Zurückgehen",
|
|
||||||
"ksavrInfo": "Verhindert, dass sich der Bildschirm während der Anzeige eines Rezepts ausschaltet",
|
|
||||||
"sectRm": "Abschnitt entfernt",
|
|
||||||
"addSectBtn": "ABSCHNITT HINZUFÜGEN",
|
|
||||||
"sect": "Abschnitt %s"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,9 @@
|
||||||
"appInfo": "EnRecipes is an open source, privacy-friendly digital cookbook that lets you create, manage and share your recipes",
|
"appInfo": "EnRecipes is an open source, privacy-friendly digital cookbook that lets you create, manage and share your recipes",
|
||||||
"apply": "APPLY",
|
"apply": "APPLY",
|
||||||
"appRst": "App restart required",
|
"appRst": "App restart required",
|
||||||
|
"April": "April",
|
||||||
"aStpBtn": "ADD STEP",
|
"aStpBtn": "ADD STEP",
|
||||||
|
"August": "August",
|
||||||
"Barbecue": "Barbecue",
|
"Barbecue": "Barbecue",
|
||||||
"Beverages": "Beverages",
|
"Beverages": "Beverages",
|
||||||
"Black": "Black",
|
"Black": "Black",
|
||||||
|
@ -51,6 +53,7 @@
|
||||||
"Dark": "Dark",
|
"Dark": "Dark",
|
||||||
"db": "Database",
|
"db": "Database",
|
||||||
"dBtn": "DELETE",
|
"dBtn": "DELETE",
|
||||||
|
"December": "December",
|
||||||
"delRecInfo": "You are about to permanently delete the recipe %s",
|
"delRecInfo": "You are about to permanently delete the recipe %s",
|
||||||
"delRecsInfo": "You are about to permanently delete %s",
|
"delRecsInfo": "You are about to permanently delete %s",
|
||||||
"Desserts": "Desserts",
|
"Desserts": "Desserts",
|
||||||
|
@ -72,12 +75,14 @@
|
||||||
"expip": "Export in progress",
|
"expip": "Export in progress",
|
||||||
"expSuc": "Export success",
|
"expSuc": "Export success",
|
||||||
"favourites": "Favourites",
|
"favourites": "Favourites",
|
||||||
|
"February": "February",
|
||||||
"Filipino": "Filipino",
|
"Filipino": "Filipino",
|
||||||
"Filtered recipes": "Filtered recipes",
|
"Filtered recipes": "Filtered recipes",
|
||||||
"fl oz": "fl oz",
|
"fl oz": "fl oz",
|
||||||
"fltr": "Filter",
|
"fltr": "Filter",
|
||||||
"Fluid Ounce": "Fluid Ounce",
|
"Fluid Ounce": "Fluid Ounce",
|
||||||
"French": "French",
|
"French": "French",
|
||||||
|
"FRI": "FRI",
|
||||||
"fsList": "Your favourite recipes are listed here",
|
"fsList": "Your favourite recipes are listed here",
|
||||||
"g": "g",
|
"g": "g",
|
||||||
"gal": "gal",
|
"gal": "gal",
|
||||||
|
@ -103,12 +108,15 @@
|
||||||
"intf": "Interface",
|
"intf": "Interface",
|
||||||
"invFile": "Invalid file",
|
"invFile": "Invalid file",
|
||||||
"Irish": "Irish",
|
"Irish": "Irish",
|
||||||
"it": "Item %s",
|
"it": "Item",
|
||||||
"Italian": "Italian",
|
"Italian": "Italian",
|
||||||
"Jamaican": "Jamaican",
|
"Jamaican": "Jamaican",
|
||||||
|
"January": "January",
|
||||||
"Japanese": "Japanese",
|
"Japanese": "Japanese",
|
||||||
"Jewish": "Jewish",
|
"Jewish": "Jewish",
|
||||||
"joinTG": "Join the Telegram group",
|
"joinTG": "Join the Telegram group",
|
||||||
|
"July": "July",
|
||||||
|
"June": "June",
|
||||||
"kEdit": "KEEP EDITING",
|
"kEdit": "KEEP EDITING",
|
||||||
"Kenyan": "Kenyan",
|
"Kenyan": "Kenyan",
|
||||||
"kg": "kg",
|
"kg": "kg",
|
||||||
|
@ -128,6 +136,8 @@
|
||||||
"lunch": "Lunch",
|
"lunch": "Lunch",
|
||||||
"mAgo": "%s months ago",
|
"mAgo": "%s months ago",
|
||||||
"Main dishes": "Main dishes",
|
"Main dishes": "Main dishes",
|
||||||
|
"March": "March",
|
||||||
|
"May": "May",
|
||||||
"Meat": "Meat",
|
"Meat": "Meat",
|
||||||
"medium": "medium",
|
"medium": "medium",
|
||||||
"Mexican": "Mexican",
|
"Mexican": "Mexican",
|
||||||
|
@ -138,6 +148,7 @@
|
||||||
"minimal": "Minimal",
|
"minimal": "Minimal",
|
||||||
"ml": "ml",
|
"ml": "ml",
|
||||||
"Moderate": "Moderate",
|
"Moderate": "Moderate",
|
||||||
|
"MON": "MON",
|
||||||
"newCui": "New cuisine",
|
"newCui": "New cuisine",
|
||||||
"Newest first": "Newest first",
|
"Newest first": "Newest first",
|
||||||
"newRec": "New recipe",
|
"newRec": "New recipe",
|
||||||
|
@ -152,8 +163,10 @@
|
||||||
"noRecs": "No recipes match your search",
|
"noRecs": "No recipes match your search",
|
||||||
"noRecsInL": "None of the recipes here matches your search",
|
"noRecsInL": "None of the recipes here matches your search",
|
||||||
"nos": "Notes",
|
"nos": "Notes",
|
||||||
|
"November": "November",
|
||||||
"nwCat": "New category",
|
"nwCat": "New category",
|
||||||
"nwYiU": "New yield unit",
|
"nwYiU": "New yield unit",
|
||||||
|
"October": "October",
|
||||||
"OK": "OK",
|
"OK": "OK",
|
||||||
"Oldest first": "Oldest first",
|
"Oldest first": "Oldest first",
|
||||||
"opts": "Options",
|
"opts": "Options",
|
||||||
|
@ -167,7 +180,7 @@
|
||||||
"Piece": "Piece",
|
"Piece": "Piece",
|
||||||
"pinch": "pinch",
|
"pinch": "pinch",
|
||||||
"planner": "Meal Planner",
|
"planner": "Meal Planner",
|
||||||
"plsAdd": "Use the + button to add one",
|
"plsAdd": "Use the plus button to add one",
|
||||||
"Portuguese": "Portuguese",
|
"Portuguese": "Portuguese",
|
||||||
"Poultry": "Poultry",
|
"Poultry": "Poultry",
|
||||||
"Pound": "Pound",
|
"Pound": "Pound",
|
||||||
|
@ -211,10 +224,12 @@
|
||||||
"rst": "RESTART",
|
"rst": "RESTART",
|
||||||
"Russian": "Russian",
|
"Russian": "Russian",
|
||||||
"Salads": "Salads",
|
"Salads": "Salads",
|
||||||
|
"SAT": "SAT",
|
||||||
"Sauces": "Sauces",
|
"Sauces": "Sauces",
|
||||||
"Scottish": "Scottish",
|
"Scottish": "Scottish",
|
||||||
"Seafood": "Seafood",
|
"Seafood": "Seafood",
|
||||||
"selRec": "Select recipe",
|
"selRec": "Select recipe",
|
||||||
|
"September": "September",
|
||||||
"ser": "Search",
|
"ser": "Search",
|
||||||
"Serving": "Serving",
|
"Serving": "Serving",
|
||||||
"SET": "SET",
|
"SET": "SET",
|
||||||
|
@ -234,8 +249,9 @@
|
||||||
"sru": "Share recipe using...",
|
"sru": "Share recipe using...",
|
||||||
"stars": "Star rating",
|
"stars": "Star rating",
|
||||||
"stick": "stick",
|
"stick": "stick",
|
||||||
"stp": "Step %s",
|
"stp": "Step",
|
||||||
"strAdd": "Start adding your recipes!",
|
"strAdd": "Start adding your recipes!",
|
||||||
|
"SUN": "SUN",
|
||||||
"sVw": "Shake to view random recipe",
|
"sVw": "Shake to view random recipe",
|
||||||
"sVwInfo": "Helps you choose what to cook when you can't decide",
|
"sVwInfo": "Helps you choose what to cook when you can't decide",
|
||||||
"Swedish": "Swedish",
|
"Swedish": "Swedish",
|
||||||
|
@ -246,6 +262,7 @@
|
||||||
"Teaspoon": "Teaspoon",
|
"Teaspoon": "Teaspoon",
|
||||||
"Thai": "Thai",
|
"Thai": "Thai",
|
||||||
"Theme": "Theme",
|
"Theme": "Theme",
|
||||||
|
"THU": "THU",
|
||||||
"title": "Title",
|
"title": "Title",
|
||||||
"tLInfo": "Recipes you want to try later are listed here",
|
"tLInfo": "Recipes you want to try later are listed here",
|
||||||
"today": "today",
|
"today": "today",
|
||||||
|
@ -256,6 +273,7 @@
|
||||||
"ts": "Tags",
|
"ts": "Tags",
|
||||||
"tsInfo": "separate with spaces",
|
"tsInfo": "separate with spaces",
|
||||||
"tsp": "tsp",
|
"tsp": "tsp",
|
||||||
|
"TUE": "TUE",
|
||||||
"Turkish": "Turkish",
|
"Turkish": "Turkish",
|
||||||
"Undefined": "Undefined",
|
"Undefined": "Undefined",
|
||||||
"unit": "unit",
|
"unit": "unit",
|
||||||
|
@ -266,6 +284,7 @@
|
||||||
"Vegetarian": "Vegetarian",
|
"Vegetarian": "Vegetarian",
|
||||||
"Vietnamese": "Vietnamese",
|
"Vietnamese": "Vietnamese",
|
||||||
"wAgo": "%s weeks ago",
|
"wAgo": "%s weeks ago",
|
||||||
|
"WED": "WED",
|
||||||
"yesterday": "yesterday",
|
"yesterday": "yesterday",
|
||||||
"yieldQ": "Yield quantity",
|
"yieldQ": "Yield quantity",
|
||||||
"yieldU": "Yield unit",
|
"yieldU": "Yield unit",
|
||||||
|
@ -279,8 +298,7 @@
|
||||||
"delay": "Delay",
|
"delay": "Delay",
|
||||||
"tmr": "Timer %s",
|
"tmr": "Timer %s",
|
||||||
"prstBtn": "PRESETS",
|
"prstBtn": "PRESETS",
|
||||||
"prsts": "Presets",
|
"tmrPrsts": "Timer presets",
|
||||||
"delPrst": "You are about to delete %s from the presets",
|
|
||||||
"fwr": "for which recipe?",
|
"fwr": "for which recipe?",
|
||||||
"aTPrst": "Added to presets",
|
"aTPrst": "Added to presets",
|
||||||
"tmrSnd": "Timer sound",
|
"tmrSnd": "Timer sound",
|
||||||
|
@ -290,42 +308,5 @@
|
||||||
"minutes": "minutes",
|
"minutes": "minutes",
|
||||||
"hour": "hour",
|
"hour": "hour",
|
||||||
"hours": "hours",
|
"hours": "hours",
|
||||||
"seconds": "seconds",
|
"seconds": "seconds"
|
||||||
"tmrRm": "Timer removed",
|
|
||||||
"notifSetg": "Notification settings",
|
|
||||||
"random": "Random",
|
|
||||||
"gtD": "Go to date",
|
|
||||||
"ccwt": "Cook confidently with timers!",
|
|
||||||
"prstTU": "Preset time updated",
|
|
||||||
"wDBy": "%1$s was delayed by %2$s",
|
|
||||||
"texp": "%s timers expired",
|
|
||||||
"dismiss": "Dismiss",
|
|
||||||
"dismissAll": "Dismiss all timers",
|
|
||||||
"ttv": "Tap to view",
|
|
||||||
"oAP": "%1$s ongoing, %2$s paused",
|
|
||||||
"calVM": "Calendar view mode",
|
|
||||||
"mnth": "Month",
|
|
||||||
"wk": "Week",
|
|
||||||
"d": "Day",
|
|
||||||
"cpy": "copy",
|
|
||||||
"tdy": "Today",
|
|
||||||
"tmrw": "Tomorrow",
|
|
||||||
"ystr": "Yesterday",
|
|
||||||
"selMT": "Select meal type",
|
|
||||||
"ehwmp": "Eat healthy with meal plans!",
|
|
||||||
"plsCrt": "Use the + button to create one",
|
|
||||||
"admp": "Auto-delete meal plans",
|
|
||||||
"otay": "Older than a year",
|
|
||||||
"otam": "Older than a month",
|
|
||||||
"otaw": "Older than a week",
|
|
||||||
"nvr": "Never",
|
|
||||||
"add": "Add",
|
|
||||||
"rstBtn": "RESET",
|
|
||||||
"ksavr": "Keep screen awake while viewing recipe",
|
|
||||||
"ksavrInfo": "Prevents the screen from turning off while viewing a recipe",
|
|
||||||
"esgb": "Edge swipe to go back",
|
|
||||||
"esgbInfo": "Disable this option if you have any navigation issues",
|
|
||||||
"sect": "Section %s",
|
|
||||||
"addSectBtn": "ADD SECTION",
|
|
||||||
"sectRm": "Section removed"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,9 @@
|
||||||
"appInfo": "EnRecipes is an open source, privacy-friendly digital cookbook that lets you create, manage and share your recipes",
|
"appInfo": "EnRecipes is an open source, privacy-friendly digital cookbook that lets you create, manage and share your recipes",
|
||||||
"apply": "APPLY",
|
"apply": "APPLY",
|
||||||
"appRst": "App restart required",
|
"appRst": "App restart required",
|
||||||
|
"April": "April",
|
||||||
"aStpBtn": "ADD STEP",
|
"aStpBtn": "ADD STEP",
|
||||||
|
"August": "August",
|
||||||
"Barbecue": "Barbecue",
|
"Barbecue": "Barbecue",
|
||||||
"Beverages": "Beverages",
|
"Beverages": "Beverages",
|
||||||
"Black": "Black",
|
"Black": "Black",
|
||||||
|
@ -51,6 +53,7 @@
|
||||||
"Dark": "Dark",
|
"Dark": "Dark",
|
||||||
"db": "Database",
|
"db": "Database",
|
||||||
"dBtn": "DELETE",
|
"dBtn": "DELETE",
|
||||||
|
"December": "December",
|
||||||
"delRecInfo": "You are about to permanently delete the recipe %s",
|
"delRecInfo": "You are about to permanently delete the recipe %s",
|
||||||
"delRecsInfo": "You are about to permanently delete %s",
|
"delRecsInfo": "You are about to permanently delete %s",
|
||||||
"Desserts": "Desserts",
|
"Desserts": "Desserts",
|
||||||
|
@ -72,12 +75,14 @@
|
||||||
"expip": "Export in progress",
|
"expip": "Export in progress",
|
||||||
"expSuc": "Export success",
|
"expSuc": "Export success",
|
||||||
"favourites": "Favourites",
|
"favourites": "Favourites",
|
||||||
|
"February": "February",
|
||||||
"Filipino": "Filipino",
|
"Filipino": "Filipino",
|
||||||
"Filtered recipes": "Filtered recipes",
|
"Filtered recipes": "Filtered recipes",
|
||||||
"fl oz": "fl oz",
|
"fl oz": "fl oz",
|
||||||
"fltr": "Filter",
|
"fltr": "Filter",
|
||||||
"Fluid Ounce": "Fluid Ounce",
|
"Fluid Ounce": "Fluid Ounce",
|
||||||
"French": "French",
|
"French": "French",
|
||||||
|
"FRI": "FRI",
|
||||||
"fsList": "Your favourite recipes are listed here",
|
"fsList": "Your favourite recipes are listed here",
|
||||||
"g": "g",
|
"g": "g",
|
||||||
"gal": "gal",
|
"gal": "gal",
|
||||||
|
@ -90,7 +95,7 @@
|
||||||
"grocery": "Grocery List",
|
"grocery": "Grocery List",
|
||||||
"guide": "User guide",
|
"guide": "User guide",
|
||||||
"Healthy": "Healthy",
|
"Healthy": "Healthy",
|
||||||
"hr": "h",
|
"hr": "hr",
|
||||||
"impBu": "Import data",
|
"impBu": "Import data",
|
||||||
"impFail": "Import failed",
|
"impFail": "Import failed",
|
||||||
"impInfo": "Supports full backups exported by this app",
|
"impInfo": "Supports full backups exported by this app",
|
||||||
|
@ -103,12 +108,15 @@
|
||||||
"intf": "Interface",
|
"intf": "Interface",
|
||||||
"invFile": "Invalid file",
|
"invFile": "Invalid file",
|
||||||
"Irish": "Irish",
|
"Irish": "Irish",
|
||||||
"it": "Item %s",
|
"it": "Item",
|
||||||
"Italian": "Italian",
|
"Italian": "Italian",
|
||||||
"Jamaican": "Jamaican",
|
"Jamaican": "Jamaican",
|
||||||
|
"January": "January",
|
||||||
"Japanese": "Japanese",
|
"Japanese": "Japanese",
|
||||||
"Jewish": "Jewish",
|
"Jewish": "Jewish",
|
||||||
"joinTG": "Join the Telegram group",
|
"joinTG": "Join the Telegram group",
|
||||||
|
"July": "July",
|
||||||
|
"June": "June",
|
||||||
"kEdit": "KEEP EDITING",
|
"kEdit": "KEEP EDITING",
|
||||||
"Kenyan": "Kenyan",
|
"Kenyan": "Kenyan",
|
||||||
"kg": "kg",
|
"kg": "kg",
|
||||||
|
@ -128,6 +136,8 @@
|
||||||
"lunch": "Lunch",
|
"lunch": "Lunch",
|
||||||
"mAgo": "%s months ago",
|
"mAgo": "%s months ago",
|
||||||
"Main dishes": "Main dishes",
|
"Main dishes": "Main dishes",
|
||||||
|
"March": "March",
|
||||||
|
"May": "May",
|
||||||
"Meat": "Meat",
|
"Meat": "Meat",
|
||||||
"medium": "medium",
|
"medium": "medium",
|
||||||
"Mexican": "Mexican",
|
"Mexican": "Mexican",
|
||||||
|
@ -137,6 +147,7 @@
|
||||||
"minimal": "Minimal",
|
"minimal": "Minimal",
|
||||||
"ml": "ml",
|
"ml": "ml",
|
||||||
"Moderate": "Moderate",
|
"Moderate": "Moderate",
|
||||||
|
"MON": "MON",
|
||||||
"newCui": "New cuisine",
|
"newCui": "New cuisine",
|
||||||
"Newest first": "Newest first",
|
"Newest first": "Newest first",
|
||||||
"newRec": "New recipe",
|
"newRec": "New recipe",
|
||||||
|
@ -151,8 +162,10 @@
|
||||||
"noRecs": "No recipes match your search",
|
"noRecs": "No recipes match your search",
|
||||||
"noRecsInL": "None of the recipes here matches your search",
|
"noRecsInL": "None of the recipes here matches your search",
|
||||||
"nos": "Notes",
|
"nos": "Notes",
|
||||||
|
"November": "November",
|
||||||
"nwCat": "New category",
|
"nwCat": "New category",
|
||||||
"nwYiU": "New yield unit",
|
"nwYiU": "New yield unit",
|
||||||
|
"October": "October",
|
||||||
"OK": "OK",
|
"OK": "OK",
|
||||||
"Oldest first": "Oldest first",
|
"Oldest first": "Oldest first",
|
||||||
"opts": "Options",
|
"opts": "Options",
|
||||||
|
@ -166,7 +179,7 @@
|
||||||
"Piece": "Piece",
|
"Piece": "Piece",
|
||||||
"pinch": "pinch",
|
"pinch": "pinch",
|
||||||
"planner": "Meal Planner",
|
"planner": "Meal Planner",
|
||||||
"plsAdd": "Use the + button to add one",
|
"plsAdd": "Use the plus button to add one",
|
||||||
"Portuguese": "Portuguese",
|
"Portuguese": "Portuguese",
|
||||||
"Poultry": "Poultry",
|
"Poultry": "Poultry",
|
||||||
"Pound": "Pound",
|
"Pound": "Pound",
|
||||||
|
@ -210,10 +223,12 @@
|
||||||
"rst": "RESTART",
|
"rst": "RESTART",
|
||||||
"Russian": "Russian",
|
"Russian": "Russian",
|
||||||
"Salads": "Salads",
|
"Salads": "Salads",
|
||||||
|
"SAT": "SAT",
|
||||||
"Sauces": "Sauces",
|
"Sauces": "Sauces",
|
||||||
"Scottish": "Scottish",
|
"Scottish": "Scottish",
|
||||||
"Seafood": "Seafood",
|
"Seafood": "Seafood",
|
||||||
"selRec": "Select recipe",
|
"selRec": "Select recipe",
|
||||||
|
"September": "September",
|
||||||
"ser": "Search",
|
"ser": "Search",
|
||||||
"Serving": "Serving",
|
"Serving": "Serving",
|
||||||
"SET": "SET",
|
"SET": "SET",
|
||||||
|
@ -233,8 +248,9 @@
|
||||||
"sru": "Share recipe using...",
|
"sru": "Share recipe using...",
|
||||||
"stars": "Star rating",
|
"stars": "Star rating",
|
||||||
"stick": "stick",
|
"stick": "stick",
|
||||||
"stp": "Step %s",
|
"stp": "Step",
|
||||||
"strAdd": "Start adding your recipes!",
|
"strAdd": "Start adding your recipes!",
|
||||||
|
"SUN": "SUN",
|
||||||
"sVw": "Shake to view random recipe",
|
"sVw": "Shake to view random recipe",
|
||||||
"sVwInfo": "Helps you choose what to cook when you can't decide",
|
"sVwInfo": "Helps you choose what to cook when you can't decide",
|
||||||
"Swedish": "Swedish",
|
"Swedish": "Swedish",
|
||||||
|
@ -245,6 +261,7 @@
|
||||||
"Teaspoon": "Teaspoon",
|
"Teaspoon": "Teaspoon",
|
||||||
"Thai": "Thai",
|
"Thai": "Thai",
|
||||||
"Theme": "Theme",
|
"Theme": "Theme",
|
||||||
|
"THU": "THU",
|
||||||
"title": "Title",
|
"title": "Title",
|
||||||
"tLInfo": "Recipes you want to try later are listed here",
|
"tLInfo": "Recipes you want to try later are listed here",
|
||||||
"today": "today",
|
"today": "today",
|
||||||
|
@ -255,6 +272,7 @@
|
||||||
"ts": "Tags",
|
"ts": "Tags",
|
||||||
"tsInfo": "separate with spaces",
|
"tsInfo": "separate with spaces",
|
||||||
"tsp": "tsp",
|
"tsp": "tsp",
|
||||||
|
"TUE": "TUE",
|
||||||
"Turkish": "Turkish",
|
"Turkish": "Turkish",
|
||||||
"Undefined": "Undefined",
|
"Undefined": "Undefined",
|
||||||
"unit": "unit",
|
"unit": "unit",
|
||||||
|
@ -265,6 +283,7 @@
|
||||||
"Vegetarian": "Vegetarian",
|
"Vegetarian": "Vegetarian",
|
||||||
"Vietnamese": "Vietnamese",
|
"Vietnamese": "Vietnamese",
|
||||||
"wAgo": "%s weeks ago",
|
"wAgo": "%s weeks ago",
|
||||||
|
"WED": "WED",
|
||||||
"yesterday": "yesterday",
|
"yesterday": "yesterday",
|
||||||
"yieldQ": "Yield quantity",
|
"yieldQ": "Yield quantity",
|
||||||
"yieldU": "Yield unit",
|
"yieldU": "Yield unit",
|
||||||
|
@ -275,6 +294,7 @@
|
||||||
"tmrSnd": "Timer sound",
|
"tmrSnd": "Timer sound",
|
||||||
"aTPrst": "Added to presets",
|
"aTPrst": "Added to presets",
|
||||||
"fwr": "for which recipe?",
|
"fwr": "for which recipe?",
|
||||||
|
"tmrPrsts": "Timer presets",
|
||||||
"prstBtn": "PRESETS",
|
"prstBtn": "PRESETS",
|
||||||
"tmr": "Timer %s",
|
"tmr": "Timer %s",
|
||||||
"stop": "Stop",
|
"stop": "Stop",
|
||||||
|
@ -288,44 +308,5 @@
|
||||||
"minutes": "minutes",
|
"minutes": "minutes",
|
||||||
"minute": "minute",
|
"minute": "minute",
|
||||||
"dlyDur": "Delay duration",
|
"dlyDur": "Delay duration",
|
||||||
"delay": "Delay",
|
"delay": "Delay"
|
||||||
"notifSetg": "Notification settings",
|
|
||||||
"tmrRm": "Timer removed",
|
|
||||||
"delPrst": "You are about to delete %s from the presets",
|
|
||||||
"prsts": "Presets",
|
|
||||||
"ttv": "Tap to view",
|
|
||||||
"dismissAll": "Dismiss all timers",
|
|
||||||
"dismiss": "Dismiss",
|
|
||||||
"texp": "%s timers expired",
|
|
||||||
"wDBy": "%1$s was delayed by %2$s",
|
|
||||||
"prstTU": "Preset time updated",
|
|
||||||
"ccwt": "Cook confidently with timers!",
|
|
||||||
"gtD": "Go to date",
|
|
||||||
"random": "Random",
|
|
||||||
"ystr": "Yesterday",
|
|
||||||
"tmrw": "Tomorrow",
|
|
||||||
"tdy": "Today",
|
|
||||||
"cpy": "copy",
|
|
||||||
"calVM": "Calendar view mode",
|
|
||||||
"oAP": "%1$s ongoing, %2$s paused",
|
|
||||||
"d": "Day",
|
|
||||||
"wk": "Week",
|
|
||||||
"mnth": "Month",
|
|
||||||
"nvr": "Never",
|
|
||||||
"otaw": "Older than a week",
|
|
||||||
"otam": "Older than a month",
|
|
||||||
"otay": "Older than a year",
|
|
||||||
"admp": "Auto-delete meal plans",
|
|
||||||
"plsCrt": "Use the + button to create one",
|
|
||||||
"ehwmp": "Eat healthy with meal plans!",
|
|
||||||
"selMT": "Select meal type",
|
|
||||||
"rstBtn": "RESET",
|
|
||||||
"add": "Add",
|
|
||||||
"esgbInfo": "Disable this option if you have any navigation issues",
|
|
||||||
"esgb": "Edge swipe to go back",
|
|
||||||
"ksavrInfo": "Prevents the screen from turning off while viewing a recipe",
|
|
||||||
"ksavr": "Keep screen awake while viewing recipe",
|
|
||||||
"sectRm": "Section removed",
|
|
||||||
"addSectBtn": "ADD SECTION",
|
|
||||||
"sect": "Section %s"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,9 @@
|
||||||
"appInfo": "EnRecipes is an open source, privacy-friendly digital cookbook that lets you create, manage and share your recipes",
|
"appInfo": "EnRecipes is an open source, privacy-friendly digital cookbook that lets you create, manage and share your recipes",
|
||||||
"apply": "APPLY",
|
"apply": "APPLY",
|
||||||
"appRst": "App restart required",
|
"appRst": "App restart required",
|
||||||
|
"April": "April",
|
||||||
"aStpBtn": "ADD STEP",
|
"aStpBtn": "ADD STEP",
|
||||||
|
"August": "August",
|
||||||
"Barbecue": "Barbecue",
|
"Barbecue": "Barbecue",
|
||||||
"Beverages": "Beverages",
|
"Beverages": "Beverages",
|
||||||
"Black": "Black",
|
"Black": "Black",
|
||||||
|
@ -51,6 +53,7 @@
|
||||||
"Dark": "Dark",
|
"Dark": "Dark",
|
||||||
"db": "Database",
|
"db": "Database",
|
||||||
"dBtn": "DELETE",
|
"dBtn": "DELETE",
|
||||||
|
"December": "December",
|
||||||
"delRecInfo": "You are about to permanently delete the recipe %s",
|
"delRecInfo": "You are about to permanently delete the recipe %s",
|
||||||
"delRecsInfo": "You are about to permanently delete %s",
|
"delRecsInfo": "You are about to permanently delete %s",
|
||||||
"Desserts": "Desserts",
|
"Desserts": "Desserts",
|
||||||
|
@ -72,12 +75,14 @@
|
||||||
"expip": "Export in progress",
|
"expip": "Export in progress",
|
||||||
"expSuc": "Export success",
|
"expSuc": "Export success",
|
||||||
"favourites": "Favorites",
|
"favourites": "Favorites",
|
||||||
|
"February": "February",
|
||||||
"Filipino": "Filipino",
|
"Filipino": "Filipino",
|
||||||
"Filtered recipes": "Filtered recipes",
|
"Filtered recipes": "Filtered recipes",
|
||||||
"fl oz": "fl oz",
|
"fl oz": "fl oz",
|
||||||
"fltr": "Filter",
|
"fltr": "Filter",
|
||||||
"Fluid Ounce": "Fluid Ounce",
|
"Fluid Ounce": "Fluid Ounce",
|
||||||
"French": "French",
|
"French": "French",
|
||||||
|
"FRI": "FRI",
|
||||||
"fsList": "Your favorite recipes are listed here",
|
"fsList": "Your favorite recipes are listed here",
|
||||||
"g": "g",
|
"g": "g",
|
||||||
"gal": "gal",
|
"gal": "gal",
|
||||||
|
@ -90,7 +95,7 @@
|
||||||
"grocery": "Grocery List",
|
"grocery": "Grocery List",
|
||||||
"guide": "User guide",
|
"guide": "User guide",
|
||||||
"Healthy": "Healthy",
|
"Healthy": "Healthy",
|
||||||
"hr": "h",
|
"hr": "hr",
|
||||||
"impBu": "Import data",
|
"impBu": "Import data",
|
||||||
"impFail": "Import failed",
|
"impFail": "Import failed",
|
||||||
"impInfo": "Supports full backups exported by this app",
|
"impInfo": "Supports full backups exported by this app",
|
||||||
|
@ -103,12 +108,15 @@
|
||||||
"intf": "Interface",
|
"intf": "Interface",
|
||||||
"invFile": "Invalid file",
|
"invFile": "Invalid file",
|
||||||
"Irish": "Irish",
|
"Irish": "Irish",
|
||||||
"it": "Item %s",
|
"it": "Item",
|
||||||
"Italian": "Italian",
|
"Italian": "Italian",
|
||||||
"Jamaican": "Jamaican",
|
"Jamaican": "Jamaican",
|
||||||
|
"January": "January",
|
||||||
"Japanese": "Japanese",
|
"Japanese": "Japanese",
|
||||||
"Jewish": "Jewish",
|
"Jewish": "Jewish",
|
||||||
"joinTG": "Join the Telegram group",
|
"joinTG": "Join the Telegram group",
|
||||||
|
"July": "July",
|
||||||
|
"June": "June",
|
||||||
"kEdit": "KEEP EDITING",
|
"kEdit": "KEEP EDITING",
|
||||||
"Kenyan": "Kenyan",
|
"Kenyan": "Kenyan",
|
||||||
"kg": "kg",
|
"kg": "kg",
|
||||||
|
@ -128,6 +136,8 @@
|
||||||
"lunch": "Lunch",
|
"lunch": "Lunch",
|
||||||
"mAgo": "%s months ago",
|
"mAgo": "%s months ago",
|
||||||
"Main dishes": "Main dishes",
|
"Main dishes": "Main dishes",
|
||||||
|
"March": "March",
|
||||||
|
"May": "May",
|
||||||
"Meat": "Meat",
|
"Meat": "Meat",
|
||||||
"medium": "medium",
|
"medium": "medium",
|
||||||
"Mexican": "Mexican",
|
"Mexican": "Mexican",
|
||||||
|
@ -137,6 +147,7 @@
|
||||||
"minimal": "Minimal",
|
"minimal": "Minimal",
|
||||||
"ml": "ml",
|
"ml": "ml",
|
||||||
"Moderate": "Moderate",
|
"Moderate": "Moderate",
|
||||||
|
"MON": "MON",
|
||||||
"newCui": "New cuisine",
|
"newCui": "New cuisine",
|
||||||
"Newest first": "Newest first",
|
"Newest first": "Newest first",
|
||||||
"newRec": "New recipe",
|
"newRec": "New recipe",
|
||||||
|
@ -151,8 +162,10 @@
|
||||||
"noRecs": "No recipes match your search",
|
"noRecs": "No recipes match your search",
|
||||||
"noRecsInL": "None of the recipes here matches your search",
|
"noRecsInL": "None of the recipes here matches your search",
|
||||||
"nos": "Notes",
|
"nos": "Notes",
|
||||||
|
"November": "November",
|
||||||
"nwCat": "New category",
|
"nwCat": "New category",
|
||||||
"nwYiU": "New yield unit",
|
"nwYiU": "New yield unit",
|
||||||
|
"October": "October",
|
||||||
"OK": "OK",
|
"OK": "OK",
|
||||||
"Oldest first": "Oldest first",
|
"Oldest first": "Oldest first",
|
||||||
"opts": "Options",
|
"opts": "Options",
|
||||||
|
@ -166,7 +179,7 @@
|
||||||
"Piece": "Piece",
|
"Piece": "Piece",
|
||||||
"pinch": "pinch",
|
"pinch": "pinch",
|
||||||
"planner": "Meal Planner",
|
"planner": "Meal Planner",
|
||||||
"plsAdd": "Use the + button to add one",
|
"plsAdd": "Use the plus button to add one",
|
||||||
"Portuguese": "Portuguese",
|
"Portuguese": "Portuguese",
|
||||||
"Poultry": "Poultry",
|
"Poultry": "Poultry",
|
||||||
"Pound": "Pound",
|
"Pound": "Pound",
|
||||||
|
@ -210,10 +223,12 @@
|
||||||
"rst": "RESTART",
|
"rst": "RESTART",
|
||||||
"Russian": "Russian",
|
"Russian": "Russian",
|
||||||
"Salads": "Salads",
|
"Salads": "Salads",
|
||||||
|
"SAT": "SAT",
|
||||||
"Sauces": "Sauces",
|
"Sauces": "Sauces",
|
||||||
"Scottish": "Scottish",
|
"Scottish": "Scottish",
|
||||||
"Seafood": "Seafood",
|
"Seafood": "Seafood",
|
||||||
"selRec": "Select recipe",
|
"selRec": "Select recipe",
|
||||||
|
"September": "September",
|
||||||
"ser": "Search",
|
"ser": "Search",
|
||||||
"Serving": "Serving",
|
"Serving": "Serving",
|
||||||
"SET": "SET",
|
"SET": "SET",
|
||||||
|
@ -233,8 +248,9 @@
|
||||||
"sru": "Share recipe using...",
|
"sru": "Share recipe using...",
|
||||||
"stars": "Star rating",
|
"stars": "Star rating",
|
||||||
"stick": "stick",
|
"stick": "stick",
|
||||||
"stp": "Step %s",
|
"stp": "Step",
|
||||||
"strAdd": "Start adding your recipes!",
|
"strAdd": "Start adding your recipes!",
|
||||||
|
"SUN": "SUN",
|
||||||
"sVw": "Shake to view random recipe",
|
"sVw": "Shake to view random recipe",
|
||||||
"sVwInfo": "Helps you choose what to cook when you can't decide",
|
"sVwInfo": "Helps you choose what to cook when you can't decide",
|
||||||
"Swedish": "Swedish",
|
"Swedish": "Swedish",
|
||||||
|
@ -245,6 +261,7 @@
|
||||||
"Teaspoon": "Teaspoon",
|
"Teaspoon": "Teaspoon",
|
||||||
"Thai": "Thai",
|
"Thai": "Thai",
|
||||||
"Theme": "Theme",
|
"Theme": "Theme",
|
||||||
|
"THU": "THU",
|
||||||
"title": "Title",
|
"title": "Title",
|
||||||
"tLInfo": "Recipes you want to try later are listed here",
|
"tLInfo": "Recipes you want to try later are listed here",
|
||||||
"today": "today",
|
"today": "today",
|
||||||
|
@ -255,6 +272,7 @@
|
||||||
"ts": "Tags",
|
"ts": "Tags",
|
||||||
"tsInfo": "separate with spaces",
|
"tsInfo": "separate with spaces",
|
||||||
"tsp": "tsp",
|
"tsp": "tsp",
|
||||||
|
"TUE": "TUE",
|
||||||
"Turkish": "Turkish",
|
"Turkish": "Turkish",
|
||||||
"Undefined": "Undefined",
|
"Undefined": "Undefined",
|
||||||
"unit": "unit",
|
"unit": "unit",
|
||||||
|
@ -265,6 +283,7 @@
|
||||||
"Vegetarian": "Vegetarian",
|
"Vegetarian": "Vegetarian",
|
||||||
"Vietnamese": "Vietnamese",
|
"Vietnamese": "Vietnamese",
|
||||||
"wAgo": "%s weeks ago",
|
"wAgo": "%s weeks ago",
|
||||||
|
"WED": "WED",
|
||||||
"yesterday": "yesterday",
|
"yesterday": "yesterday",
|
||||||
"yieldQ": "Yield quantity",
|
"yieldQ": "Yield quantity",
|
||||||
"yieldU": "Yield unit",
|
"yieldU": "Yield unit",
|
||||||
|
@ -275,6 +294,7 @@
|
||||||
"tmrSnd": "Timer sound",
|
"tmrSnd": "Timer sound",
|
||||||
"aTPrst": "Added to presets",
|
"aTPrst": "Added to presets",
|
||||||
"fwr": "for which recipe?",
|
"fwr": "for which recipe?",
|
||||||
|
"tmrPrsts": "Timer presets",
|
||||||
"prstBtn": "PRESETS",
|
"prstBtn": "PRESETS",
|
||||||
"tmr": "Timer %s",
|
"tmr": "Timer %s",
|
||||||
"stop": "Stop",
|
"stop": "Stop",
|
||||||
|
@ -288,44 +308,5 @@
|
||||||
"minutes": "minutes",
|
"minutes": "minutes",
|
||||||
"minute": "minute",
|
"minute": "minute",
|
||||||
"dlyDur": "Delay duration",
|
"dlyDur": "Delay duration",
|
||||||
"delay": "Delay",
|
"delay": "Delay"
|
||||||
"notifSetg": "Notification settings",
|
|
||||||
"tmrRm": "Timer removed",
|
|
||||||
"delPrst": "You are about to delete %s from the presets",
|
|
||||||
"prsts": "Presets",
|
|
||||||
"ttv": "Tap to view",
|
|
||||||
"dismissAll": "Dismiss all timers",
|
|
||||||
"dismiss": "Dismiss",
|
|
||||||
"texp": "%s timers expired",
|
|
||||||
"wDBy": "%1$s was delayed by %2$s",
|
|
||||||
"prstTU": "Preset time updated",
|
|
||||||
"ccwt": "Cook confidently with timers!",
|
|
||||||
"gtD": "Go to date",
|
|
||||||
"random": "Random",
|
|
||||||
"ystr": "Yesterday",
|
|
||||||
"tmrw": "Tomorrow",
|
|
||||||
"tdy": "Today",
|
|
||||||
"cpy": "copy",
|
|
||||||
"calVM": "Calendar view mode",
|
|
||||||
"oAP": "%1$s ongoing, %2$s paused",
|
|
||||||
"d": "Day",
|
|
||||||
"wk": "Week",
|
|
||||||
"mnth": "Month",
|
|
||||||
"nvr": "Never",
|
|
||||||
"otaw": "Older than a week",
|
|
||||||
"otam": "Older than a month",
|
|
||||||
"otay": "Older than a year",
|
|
||||||
"admp": "Auto-delete meal plans",
|
|
||||||
"plsCrt": "Use the + button to create one",
|
|
||||||
"ehwmp": "Eat healthy with meal plans!",
|
|
||||||
"selMT": "Select meal type",
|
|
||||||
"rstBtn": "RESET",
|
|
||||||
"add": "Add",
|
|
||||||
"esgbInfo": "Disable this option if you have any navigation issues",
|
|
||||||
"esgb": "Edge swipe to go back",
|
|
||||||
"ksavrInfo": "Prevents the screen from turning off while viewing a recipe",
|
|
||||||
"ksavr": "Keep screen awake while viewing recipe",
|
|
||||||
"sectRm": "Section removed",
|
|
||||||
"addSectBtn": "ADD SECTION",
|
|
||||||
"sect": "Section %s"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,20 +1,3 @@
|
||||||
{
|
{
|
||||||
"sec": "s",
|
"sec": "s"
|
||||||
"aStpBtn": "AGREGAR PASO",
|
|
||||||
"appRst": "Se requiere reiniciar la app",
|
|
||||||
"apply": "APLICAR",
|
|
||||||
"appInfo": "EnRecipes es un libro de cocina digital, privado y de código abierto, que te permite crear, administrar y compartir tus recetas",
|
|
||||||
"Appetizers": "Aperitivos",
|
|
||||||
"appCrd": "Compartido vía EnRecipes. Conseguilo en F-Droid, IzzyOnDroid o en la Play Store.",
|
|
||||||
"aNoBtn": "AGREGAR NOTA",
|
|
||||||
"aNBtn": "AGREGAR NUEVA",
|
|
||||||
"American": "Americana",
|
|
||||||
"allCats": "Todas las categorías",
|
|
||||||
"aIngBtn": "AGREGAR INGREDIENTE",
|
|
||||||
"aFBu": "Agregá recetas para hacer un backup",
|
|
||||||
"addCmbBtn": "AGREGAR COMBINACIÓN",
|
|
||||||
"aD": "¡Todo listo!",
|
|
||||||
"aBtn": "AGREGAR",
|
|
||||||
"About": "Acerca de",
|
|
||||||
"aap": "Adjuntá una foto"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,9 @@
|
||||||
"appInfo": "EnRecipes es un libro de cocinas de código abierto, amigo de tu privacidad, que te deja crear, manejar y compartir tus recetas",
|
"appInfo": "EnRecipes es un libro de cocinas de código abierto, amigo de tu privacidad, que te deja crear, manejar y compartir tus recetas",
|
||||||
"apply": "APLICAR",
|
"apply": "APLICAR",
|
||||||
"appRst": "Se requiere reiniciar la aplicación",
|
"appRst": "Se requiere reiniciar la aplicación",
|
||||||
|
"April": "Abril",
|
||||||
"aStpBtn": "AÑADIR PASO",
|
"aStpBtn": "AÑADIR PASO",
|
||||||
|
"August": "Agosto",
|
||||||
"Barbecue": "Barbacoa",
|
"Barbecue": "Barbacoa",
|
||||||
"Beverages": "Bebidas",
|
"Beverages": "Bebidas",
|
||||||
"Black": "Negro",
|
"Black": "Negro",
|
||||||
|
@ -51,6 +53,7 @@
|
||||||
"Dark": "Oscuro",
|
"Dark": "Oscuro",
|
||||||
"db": "Base de datos",
|
"db": "Base de datos",
|
||||||
"dBtn": "ELIMINAR",
|
"dBtn": "ELIMINAR",
|
||||||
|
"December": "Diciembre",
|
||||||
"delRecInfo": "Estás a punto de eliminar definitivamente la receta %s",
|
"delRecInfo": "Estás a punto de eliminar definitivamente la receta %s",
|
||||||
"delRecsInfo": "Estás a punto de eliminar permanentemente %s",
|
"delRecsInfo": "Estás a punto de eliminar permanentemente %s",
|
||||||
"Desserts": "Postres",
|
"Desserts": "Postres",
|
||||||
|
@ -72,12 +75,14 @@
|
||||||
"expip": "Exportación en curso",
|
"expip": "Exportación en curso",
|
||||||
"expSuc": "Exportación satisfactoria",
|
"expSuc": "Exportación satisfactoria",
|
||||||
"favourites": "Favoritos",
|
"favourites": "Favoritos",
|
||||||
|
"February": "Febrero",
|
||||||
"Filipino": "Filipina",
|
"Filipino": "Filipina",
|
||||||
"Filtered recipes": "Recetas filtradas",
|
"Filtered recipes": "Recetas filtradas",
|
||||||
"fl oz": "oz liq",
|
"fl oz": "oz liq",
|
||||||
"fltr": "Filtro",
|
"fltr": "Filtro",
|
||||||
"Fluid Ounce": "Onza líquida",
|
"Fluid Ounce": "Onza líquida",
|
||||||
"French": "Francesa",
|
"French": "Francesa",
|
||||||
|
"FRI": "VIE",
|
||||||
"fsList": "Aquí se enumeran tus recetas favoritas",
|
"fsList": "Aquí se enumeran tus recetas favoritas",
|
||||||
"g": "g",
|
"g": "g",
|
||||||
"gal": "gal",
|
"gal": "gal",
|
||||||
|
@ -106,9 +111,12 @@
|
||||||
"it": "Artículo",
|
"it": "Artículo",
|
||||||
"Italian": "Italiano",
|
"Italian": "Italiano",
|
||||||
"Jamaican": "Jamaiquino",
|
"Jamaican": "Jamaiquino",
|
||||||
|
"January": "Enero",
|
||||||
"Japanese": "Japonés",
|
"Japanese": "Japonés",
|
||||||
"Jewish": "Judía",
|
"Jewish": "Judía",
|
||||||
"joinTG": "Únete al grupo de Telegram",
|
"joinTG": "Únete al grupo de Telegram",
|
||||||
|
"July": "Julio",
|
||||||
|
"June": "Junio",
|
||||||
"kEdit": "SEGUIR EDITANDO",
|
"kEdit": "SEGUIR EDITANDO",
|
||||||
"Kenyan": "Keniata",
|
"Kenyan": "Keniata",
|
||||||
"kg": "kg",
|
"kg": "kg",
|
||||||
|
@ -128,6 +136,8 @@
|
||||||
"lunch": "Almuerzo",
|
"lunch": "Almuerzo",
|
||||||
"mAgo": "hace %s meses",
|
"mAgo": "hace %s meses",
|
||||||
"Main dishes": "Platos principales",
|
"Main dishes": "Platos principales",
|
||||||
|
"March": "Marzo",
|
||||||
|
"May": "Mayo",
|
||||||
"Meat": "Carnes",
|
"Meat": "Carnes",
|
||||||
"medium": "mediano",
|
"medium": "mediano",
|
||||||
"Mexican": "Mejicana",
|
"Mexican": "Mejicana",
|
||||||
|
@ -137,6 +147,7 @@
|
||||||
"minimal": "Mínimo",
|
"minimal": "Mínimo",
|
||||||
"ml": "ml",
|
"ml": "ml",
|
||||||
"Moderate": "Moderada",
|
"Moderate": "Moderada",
|
||||||
|
"MON": "LUN",
|
||||||
"newCui": "Nueva cocina",
|
"newCui": "Nueva cocina",
|
||||||
"Newest first": "Más nuevas primero",
|
"Newest first": "Más nuevas primero",
|
||||||
"newRec": "Nueva receta",
|
"newRec": "Nueva receta",
|
||||||
|
@ -151,8 +162,10 @@
|
||||||
"noRecs": "No hay recetas que coincidan con tu búsqueda",
|
"noRecs": "No hay recetas que coincidan con tu búsqueda",
|
||||||
"noRecsInL": "Ninguna de las recetas aquí coincide con su búsqueda",
|
"noRecsInL": "Ninguna de las recetas aquí coincide con su búsqueda",
|
||||||
"nos": "Notas",
|
"nos": "Notas",
|
||||||
|
"November": "Noviembre",
|
||||||
"nwCat": "Nueva categoría",
|
"nwCat": "Nueva categoría",
|
||||||
"nwYiU": "Nueva unidad de medida",
|
"nwYiU": "Nueva unidad de medida",
|
||||||
|
"October": "Octubre",
|
||||||
"OK": "OK",
|
"OK": "OK",
|
||||||
"Oldest first": "Más antiguas primero",
|
"Oldest first": "Más antiguas primero",
|
||||||
"opts": "Opciones",
|
"opts": "Opciones",
|
||||||
|
@ -210,10 +223,12 @@
|
||||||
"rst": "REINICIAR",
|
"rst": "REINICIAR",
|
||||||
"Russian": "Rusa",
|
"Russian": "Rusa",
|
||||||
"Salads": "Ensaladas",
|
"Salads": "Ensaladas",
|
||||||
|
"SAT": "SAB",
|
||||||
"Sauces": "Salsas",
|
"Sauces": "Salsas",
|
||||||
"Scottish": "Escocesa",
|
"Scottish": "Escocesa",
|
||||||
"Seafood": "Comida del mar",
|
"Seafood": "Comida del mar",
|
||||||
"selRec": "Selecciona una receta",
|
"selRec": "Selecciona una receta",
|
||||||
|
"September": "Septiembre",
|
||||||
"ser": "Buscar",
|
"ser": "Buscar",
|
||||||
"Serving": "Servicio",
|
"Serving": "Servicio",
|
||||||
"SET": "ESTABLECER",
|
"SET": "ESTABLECER",
|
||||||
|
@ -235,6 +250,7 @@
|
||||||
"stick": "rama",
|
"stick": "rama",
|
||||||
"stp": "Paso",
|
"stp": "Paso",
|
||||||
"strAdd": "¡Empieza a añadir tus recetas!",
|
"strAdd": "¡Empieza a añadir tus recetas!",
|
||||||
|
"SUN": "DOM",
|
||||||
"sVw": "Agita para ver una receta aleatoria",
|
"sVw": "Agita para ver una receta aleatoria",
|
||||||
"sVwInfo": "Te ayuda a elegir que cocinar cuando no podés decidirte",
|
"sVwInfo": "Te ayuda a elegir que cocinar cuando no podés decidirte",
|
||||||
"Swedish": "Sueca",
|
"Swedish": "Sueca",
|
||||||
|
@ -245,6 +261,7 @@
|
||||||
"Teaspoon": "Cucharadita",
|
"Teaspoon": "Cucharadita",
|
||||||
"Thai": "Thai",
|
"Thai": "Thai",
|
||||||
"Theme": "Tema",
|
"Theme": "Tema",
|
||||||
|
"THU": "JUE",
|
||||||
"title": "Título",
|
"title": "Título",
|
||||||
"tLInfo": "Las recetas que el usuario quería probar más tarde están listadas aquí",
|
"tLInfo": "Las recetas que el usuario quería probar más tarde están listadas aquí",
|
||||||
"today": "hoy",
|
"today": "hoy",
|
||||||
|
@ -255,6 +272,7 @@
|
||||||
"ts": "Etiquetas",
|
"ts": "Etiquetas",
|
||||||
"tsInfo": "separa con espacios",
|
"tsInfo": "separa con espacios",
|
||||||
"tsp": "cdt",
|
"tsp": "cdt",
|
||||||
|
"TUE": "MAR",
|
||||||
"Turkish": "Turca",
|
"Turkish": "Turca",
|
||||||
"Undefined": "Indefinido",
|
"Undefined": "Indefinido",
|
||||||
"unit": "unidad",
|
"unit": "unidad",
|
||||||
|
@ -265,6 +283,7 @@
|
||||||
"Vegetarian": "Vegetariano",
|
"Vegetarian": "Vegetariano",
|
||||||
"Vietnamese": "Vietnamita",
|
"Vietnamese": "Vietnamita",
|
||||||
"wAgo": "hace %s semanas",
|
"wAgo": "hace %s semanas",
|
||||||
|
"WED": "MIE",
|
||||||
"yesterday": "ayer",
|
"yesterday": "ayer",
|
||||||
"yieldQ": "Cantidad de rendimiento",
|
"yieldQ": "Cantidad de rendimiento",
|
||||||
"yieldU": "Unidad de medida",
|
"yieldU": "Unidad de medida",
|
||||||
|
@ -282,41 +301,12 @@
|
||||||
"minutes": "minutos",
|
"minutes": "minutos",
|
||||||
"minute": "minuto",
|
"minute": "minuto",
|
||||||
"stop": "Detener",
|
"stop": "Detener",
|
||||||
"delay": "Retrasar",
|
"delay": "Retraso",
|
||||||
"prstBtn": "PRECIPIOS",
|
"prstBtn": "PRECIPIOS",
|
||||||
|
"tmrPrsts": "Preselecciones del temporizador",
|
||||||
"fwr": "para qué receta?",
|
"fwr": "para qué receta?",
|
||||||
"aTPrst": "Añadido a los preajustes",
|
"aTPrst": "Añadido a los preajustes",
|
||||||
"tmrSnd": "Sonido del temporizador",
|
"tmrSnd": "Sonido del temporizador",
|
||||||
"tmrvbrt": "Vibrador del temporizador",
|
"tmrvbrt": "Vibrador del temporizador",
|
||||||
"dlyDur": "Duración del retraso",
|
"dlyDur": "Duración del retraso"
|
||||||
"notifSetg": "Ajustes de notificación",
|
|
||||||
"tmrRm": "Temporizador eliminado",
|
|
||||||
"delPrst": "Está a punto de eliminar %s de los preajustes",
|
|
||||||
"prsts": "Preselecciones",
|
|
||||||
"cpy": "copia",
|
|
||||||
"d": "Día",
|
|
||||||
"wk": "Semana",
|
|
||||||
"mnth": "Mes",
|
|
||||||
"ystr": "Ayer",
|
|
||||||
"tmrw": "Mañana",
|
|
||||||
"tdy": "Hoy",
|
|
||||||
"calVM": "Modo de vista del calendario",
|
|
||||||
"oAP": "%1$s en curso, %2$s en pausa",
|
|
||||||
"ttv": "Toca para ver",
|
|
||||||
"gtD": "Ir a la fecha",
|
|
||||||
"random": "Aleatorio",
|
|
||||||
"ehwmp": "¡Coma sano con los planes de comidas!",
|
|
||||||
"selMT": "Seleccione el tipo de comida",
|
|
||||||
"dismissAll": "Descartar todos los temporizadores",
|
|
||||||
"dismiss": "Descartar",
|
|
||||||
"texp": "%s temporizadores expirados",
|
|
||||||
"prstTU": "Tiempo preestablecido actualizado",
|
|
||||||
"rstBtn": "RESTABLECER",
|
|
||||||
"add": "Añadir",
|
|
||||||
"nvr": "Nunca",
|
|
||||||
"otaw": "Más de una semana",
|
|
||||||
"otam": "Más de un mes",
|
|
||||||
"otay": "Más de un año",
|
|
||||||
"plsCrt": "Usa el botón + para crear una",
|
|
||||||
"ccwt": "¡Cocine con confianza con los temporizadores!"
|
|
||||||
}
|
}
|
||||||
|
|
303
app/i18n/fi.json
Normal file
|
@ -0,0 +1,303 @@
|
||||||
|
{
|
||||||
|
"aap": "Liitä valokuva",
|
||||||
|
"About": "Tietoja",
|
||||||
|
"aBtn": "LISÄÄ",
|
||||||
|
"aD": "Valmista!",
|
||||||
|
"addCmbBtn": "LISÄÄ YHDISTELMÄ",
|
||||||
|
"aFBu": "Lisää resepti varmuuskopioinnin suorittamiseen",
|
||||||
|
"aIngBtn": "LISÄÄ AINESOSA",
|
||||||
|
"allCats": "Kaikki luokat",
|
||||||
|
"allCuis": "Kaikki keittiöt",
|
||||||
|
"allTs": "Kaikki tunnisteet",
|
||||||
|
"American": "amerikkalainen",
|
||||||
|
"aNBtn": "LISÄÄ UUSI",
|
||||||
|
"aNoBtn": "LISÄÄ HUOMAUTUS",
|
||||||
|
"app.name": "",
|
||||||
|
"appCrd": "Jaettu EnRecipesin kautta. Lataa se F-Droidista, IzzyOnDroidista tai Play Storesta.",
|
||||||
|
"Appetizers": "Alkupalat",
|
||||||
|
"appInfo": "EnRecipes on avoimen lähdekoodin, yksityisyyden suojaa kunnioittava digitaalinen keittokirja, jonka avulla voit luoda, hallita ja jakaa reseptejäsi",
|
||||||
|
"apply": "KÄYTÄ",
|
||||||
|
"appRst": "Sovelluksen uudelleenkäynnistys vaaditaan",
|
||||||
|
"April": "huhtikuu",
|
||||||
|
"aStpBtn": "",
|
||||||
|
"August": "elokuu",
|
||||||
|
"Barbecue": "Grilli",
|
||||||
|
"Beverages": "Juomat",
|
||||||
|
"Black": "Musta",
|
||||||
|
"Brazilian": "brasilialainen",
|
||||||
|
"Breads": "Leivät",
|
||||||
|
"breakfast": "Aamiainen",
|
||||||
|
"British": "brittiläinen",
|
||||||
|
"buEmp": "Varmuuskopiotiedosto on tyhjä",
|
||||||
|
"buFol": "Varmuuskopioiden hakemisto",
|
||||||
|
"buInc": "Virheellinen tai vioittunut varmuuskopiotiedosto",
|
||||||
|
"buInfo": "Luo ZIP-tiedoston, joka sisältää kaikki tiedot, jotka voidaan tuoda takaisin",
|
||||||
|
"buMod": "Varmuuskopiotiedostoa muutettiin muualla",
|
||||||
|
"cat": "Luokka",
|
||||||
|
"cBtn": "PERUUTA",
|
||||||
|
"Challenging": "Haastava",
|
||||||
|
"Chinese": "kiinalainen",
|
||||||
|
"clove": "kynsi",
|
||||||
|
"cm": "cm",
|
||||||
|
"cmbs": "Yhdistelmät",
|
||||||
|
"conBtn": "JATKA",
|
||||||
|
"conf": "Vahvista",
|
||||||
|
"cookT": "Kypsennysaika",
|
||||||
|
"cPic": "Rajaa kuva",
|
||||||
|
"Created": "Luotu",
|
||||||
|
"cui": "Keittiö",
|
||||||
|
"cup": "cup",
|
||||||
|
"Cup": "Kuppi",
|
||||||
|
"dAgo": "%s päivää sitten",
|
||||||
|
"Danish": "tanskalainen",
|
||||||
|
"Dark": "Tumma",
|
||||||
|
"db": "Tietokanta",
|
||||||
|
"dBtn": "POISTA",
|
||||||
|
"December": "joulukuu",
|
||||||
|
"delRecInfo": "Olet poistamassa reseptiä %s pysyvästi",
|
||||||
|
"delRecsInfo": "Olet poistamassa %s pysyvästi",
|
||||||
|
"Desserts": "Jälkiruoat",
|
||||||
|
"detailed": "Yksityiskohtainen",
|
||||||
|
"Difficulty level": "Vaikeustaso",
|
||||||
|
"dinner": "Illallinen",
|
||||||
|
"disBtn": "HYLKÄÄ",
|
||||||
|
"disc": "Tässä reseptissä on tallentamattomia muutoksia. Mitä haluaisit tehdä?",
|
||||||
|
"donate": "Lahjoita",
|
||||||
|
"dozen": "tusina",
|
||||||
|
"drop": "",
|
||||||
|
"dsp": "",
|
||||||
|
"Easy": "Helppo",
|
||||||
|
"editRec": "Muokkaa resepti",
|
||||||
|
"Egyptian": "egyptiläinen",
|
||||||
|
"English": "englantilainen",
|
||||||
|
"EnRecipes": "",
|
||||||
|
"expBu": "Vie koko varmuuskopio",
|
||||||
|
"expip": "Vienti käynnissä",
|
||||||
|
"expSuc": "",
|
||||||
|
"favourites": "",
|
||||||
|
"February": "helmikuu",
|
||||||
|
"Filipino": "",
|
||||||
|
"Filtered recipes": "",
|
||||||
|
"fl oz": "",
|
||||||
|
"fltr": "",
|
||||||
|
"Fluid Ounce": "",
|
||||||
|
"French": "",
|
||||||
|
"FRI": "",
|
||||||
|
"fsList": "",
|
||||||
|
"g": "",
|
||||||
|
"gal": "",
|
||||||
|
"Gallon": "",
|
||||||
|
"German": "",
|
||||||
|
"gh": "",
|
||||||
|
"Gram": "",
|
||||||
|
"Greek": "",
|
||||||
|
"grid": "",
|
||||||
|
"grocery": "",
|
||||||
|
"guide": "",
|
||||||
|
"Healthy": "",
|
||||||
|
"hr": "",
|
||||||
|
"impBu": "",
|
||||||
|
"impFail": "",
|
||||||
|
"impInfo": "",
|
||||||
|
"impip": "",
|
||||||
|
"impSuc": "",
|
||||||
|
"in": "",
|
||||||
|
"Indian": "",
|
||||||
|
"ings": "",
|
||||||
|
"inss": "",
|
||||||
|
"intf": "",
|
||||||
|
"invFile": "",
|
||||||
|
"Irish": "",
|
||||||
|
"it": "",
|
||||||
|
"Italian": "",
|
||||||
|
"Jamaican": "",
|
||||||
|
"January": "",
|
||||||
|
"Japanese": "",
|
||||||
|
"Jewish": "",
|
||||||
|
"joinTG": "",
|
||||||
|
"July": "",
|
||||||
|
"June": "",
|
||||||
|
"kEdit": "",
|
||||||
|
"Kenyan": "",
|
||||||
|
"kg": "",
|
||||||
|
"Kilogram": "",
|
||||||
|
"Korean": "",
|
||||||
|
"l": "",
|
||||||
|
"lang": "",
|
||||||
|
"large": "",
|
||||||
|
"Last updated": "",
|
||||||
|
"lb": "",
|
||||||
|
"leaf": "",
|
||||||
|
"Light": "",
|
||||||
|
"listVM": "",
|
||||||
|
"Litre": "",
|
||||||
|
"Loaf": "",
|
||||||
|
"ltAgo": "",
|
||||||
|
"lunch": "",
|
||||||
|
"mAgo": "",
|
||||||
|
"Main dishes": "",
|
||||||
|
"March": "",
|
||||||
|
"May": "",
|
||||||
|
"Meat": "",
|
||||||
|
"medium": "",
|
||||||
|
"Mexican": "",
|
||||||
|
"mg": "",
|
||||||
|
"Millilitre": "",
|
||||||
|
"min": "",
|
||||||
|
"minimal": "",
|
||||||
|
"ml": "",
|
||||||
|
"Moderate": "",
|
||||||
|
"MON": "",
|
||||||
|
"newCui": "",
|
||||||
|
"Newest first": "",
|
||||||
|
"newRec": "",
|
||||||
|
"newUnit": "",
|
||||||
|
"Nigerian": "",
|
||||||
|
"nLangInfo": "",
|
||||||
|
"nNBtn": "",
|
||||||
|
"no": "",
|
||||||
|
"noAccSensor": "",
|
||||||
|
"noFavs": "",
|
||||||
|
"Noodles": "",
|
||||||
|
"noRecs": "Hakua vastaavia reseptejä ei ole",
|
||||||
|
"noRecsInL": "",
|
||||||
|
"nos": "",
|
||||||
|
"November": "marraskuu",
|
||||||
|
"nwCat": "Uusi luokka",
|
||||||
|
"nwYiU": "",
|
||||||
|
"October": "lokakuu",
|
||||||
|
"OK": "OK",
|
||||||
|
"Oldest first": "",
|
||||||
|
"opts": "Valinnat",
|
||||||
|
"Ounce": "",
|
||||||
|
"oz": "",
|
||||||
|
"Pasta": "",
|
||||||
|
"Patty": "",
|
||||||
|
"photogrid": "",
|
||||||
|
"pht": "Reseptivalokuva",
|
||||||
|
"piece": "pala",
|
||||||
|
"Piece": "Pala",
|
||||||
|
"pinch": "",
|
||||||
|
"planner": "Ateriasuunnittelija",
|
||||||
|
"plsAdd": "Lisää resepti pluspainikkeella",
|
||||||
|
"Portuguese": "portugalilainen",
|
||||||
|
"Poultry": "",
|
||||||
|
"Pound": "",
|
||||||
|
"prepT": "Valmisteluaika",
|
||||||
|
"priv": "Tietosuojakäytäntö",
|
||||||
|
"pt": "",
|
||||||
|
"qt": "",
|
||||||
|
"Quickest first": "",
|
||||||
|
"Rating": "",
|
||||||
|
"rBtn": "POISTA",
|
||||||
|
"rec": "Resepti",
|
||||||
|
"recE": "On jo olemassa:",
|
||||||
|
"recF": "löydettyä reseptiä",
|
||||||
|
"recI": "",
|
||||||
|
"recListEmp": "",
|
||||||
|
"recPic": "Reseptivalokuva",
|
||||||
|
"recRm": "Resepti poistettu",
|
||||||
|
"recs": "reseptiä",
|
||||||
|
"recTitle": "Minun terveellinen reseptini",
|
||||||
|
"recU": "Päivitetty:",
|
||||||
|
"req": "",
|
||||||
|
"resNF": "",
|
||||||
|
"rest": "Nollaa",
|
||||||
|
"restCatL": "",
|
||||||
|
"restCuiL": "",
|
||||||
|
"restDone": "",
|
||||||
|
"restInfo": "",
|
||||||
|
"restUL": "",
|
||||||
|
"restYUL": "",
|
||||||
|
"Rice": "Riisi",
|
||||||
|
"rmCatInfo": "Olet poistamassa %s luokkaluettelosta",
|
||||||
|
"rmCmb": "Yhdistelmä poistettu",
|
||||||
|
"rmCuiInfo": "",
|
||||||
|
"rmIng": "Ainesosa poistettu",
|
||||||
|
"rmIns": "Ohje poistettu",
|
||||||
|
"rmN": "Huomautus poistettu",
|
||||||
|
"rmUInfo": "",
|
||||||
|
"rmYUInfo": "",
|
||||||
|
"Roll": "",
|
||||||
|
"rp": "Poista valokuva",
|
||||||
|
"rst": "UUDELLEENKÄYNNISTÄ",
|
||||||
|
"Russian": "venäläinen",
|
||||||
|
"Salads": "Salaatit",
|
||||||
|
"SAT": "la",
|
||||||
|
"Sauces": "Kastikkeet",
|
||||||
|
"Scottish": "skotlantilainen",
|
||||||
|
"Seafood": "",
|
||||||
|
"selRec": "",
|
||||||
|
"September": "",
|
||||||
|
"ser": "Etsi",
|
||||||
|
"Serving": "",
|
||||||
|
"SET": "ASETA",
|
||||||
|
"Settings": "Asetukset",
|
||||||
|
"shr": "Jaa",
|
||||||
|
"Side dishes": "",
|
||||||
|
"simple": "",
|
||||||
|
"Slowest first": "",
|
||||||
|
"sltd": "",
|
||||||
|
"small": "",
|
||||||
|
"snacks": "",
|
||||||
|
"Soups": "Keitot",
|
||||||
|
"Spanish": "espanjalainen",
|
||||||
|
"Sri Lankan": "srilankalainen",
|
||||||
|
"srpu": "Jaa reseptikuva käyttämällä…",
|
||||||
|
"srt": "Järjestä",
|
||||||
|
"sru": "Jaa resepti käyttämällä…",
|
||||||
|
"stars": "",
|
||||||
|
"stick": "",
|
||||||
|
"stp": "",
|
||||||
|
"strAdd": "",
|
||||||
|
"SUN": "su",
|
||||||
|
"sVw": "Ravista nähdäksesi satunnainen resepti",
|
||||||
|
"sVwInfo": "Auttaa sinua valitsemaan, mitä valmistaa, kun et osaa päättää.",
|
||||||
|
"Swedish": "ruotsalainen",
|
||||||
|
"swm": "Aloita viikko maanantaina",
|
||||||
|
"sysDef": "Järjestelmän oletus",
|
||||||
|
"Tablespoon": "",
|
||||||
|
"tbsp": "",
|
||||||
|
"Teaspoon": "",
|
||||||
|
"Thai": "thaimaalainen",
|
||||||
|
"Theme": "Teema",
|
||||||
|
"THU": "to",
|
||||||
|
"title": "Otsikko",
|
||||||
|
"tLInfo": "Reseptit, joita haluat kokeilla myöhemmin, on lueteltu täällä",
|
||||||
|
"today": "tänään",
|
||||||
|
"triedInfo": "Kokeilit tätä reseptiä %s",
|
||||||
|
"trnsl": "Käännä",
|
||||||
|
"trylater": "",
|
||||||
|
"trySer": "ETSI KAIKISTA RESEPTEISTÄ?",
|
||||||
|
"ts": "Tunnisteet",
|
||||||
|
"tsInfo": "",
|
||||||
|
"tsp": "",
|
||||||
|
"TUE": "ti",
|
||||||
|
"Turkish": "",
|
||||||
|
"Undefined": "Määrittelemätön",
|
||||||
|
"unit": "",
|
||||||
|
"Unit": "",
|
||||||
|
"unsaved": "",
|
||||||
|
"untRec": "",
|
||||||
|
"Vegan": "Vegaani",
|
||||||
|
"Vegetarian": "Kasvissyöjä",
|
||||||
|
"Vietnamese": "vietnamilainen",
|
||||||
|
"wAgo": "%s viikkoa sitten",
|
||||||
|
"WED": "ke",
|
||||||
|
"yesterday": "eilen",
|
||||||
|
"yieldQ": "",
|
||||||
|
"yieldU": "",
|
||||||
|
"yld": "",
|
||||||
|
"buto": "",
|
||||||
|
"sysDefB": "Järjestelmän oletusarvo + Musta",
|
||||||
|
"tmr": "Ajastin %s",
|
||||||
|
"stop": "Pysäytä",
|
||||||
|
"ntmr": "Uusi ajastin",
|
||||||
|
"timer": "Keittoajastin",
|
||||||
|
"tmrSnd": "Ajastinääni",
|
||||||
|
"aTPrst": "Lisätty esiasetuksiin",
|
||||||
|
"fwr": "mitä reseptiä varten?",
|
||||||
|
"tmrPrsts": "Ajastimen esiasetukset",
|
||||||
|
"prstBtn": "ESIASETUKSET",
|
||||||
|
"sec": "s"
|
||||||
|
}
|
|
@ -18,7 +18,9 @@
|
||||||
"appInfo": "EnRecipes est un livre de cuisine numérique à code source ouvert et respectueux de la vie privée qui vous permet de créer, gérer et partager vos recettes",
|
"appInfo": "EnRecipes est un livre de cuisine numérique à code source ouvert et respectueux de la vie privée qui vous permet de créer, gérer et partager vos recettes",
|
||||||
"apply": "APPLIQUER",
|
"apply": "APPLIQUER",
|
||||||
"appRst": "Redémarrage de l’appli nécessaire",
|
"appRst": "Redémarrage de l’appli nécessaire",
|
||||||
|
"April": "avril",
|
||||||
"aStpBtn": "AJOUTER UNE ÉTAPE",
|
"aStpBtn": "AJOUTER UNE ÉTAPE",
|
||||||
|
"August": "aout",
|
||||||
"Barbecue": "Barbecue",
|
"Barbecue": "Barbecue",
|
||||||
"Beverages": "Boissons",
|
"Beverages": "Boissons",
|
||||||
"Black": "Noir",
|
"Black": "Noir",
|
||||||
|
@ -51,6 +53,7 @@
|
||||||
"Dark": "Sombre",
|
"Dark": "Sombre",
|
||||||
"db": "Base de données",
|
"db": "Base de données",
|
||||||
"dBtn": "SUPPRIMER",
|
"dBtn": "SUPPRIMER",
|
||||||
|
"December": "décembre",
|
||||||
"delRecInfo": "Vous êtes sur le point de supprimer définitivement la recette %s",
|
"delRecInfo": "Vous êtes sur le point de supprimer définitivement la recette %s",
|
||||||
"delRecsInfo": "Vous êtes sur le point de supprimer définitivement %s",
|
"delRecsInfo": "Vous êtes sur le point de supprimer définitivement %s",
|
||||||
"Desserts": "Desserts",
|
"Desserts": "Desserts",
|
||||||
|
@ -72,12 +75,14 @@
|
||||||
"expip": "Exportation en cours",
|
"expip": "Exportation en cours",
|
||||||
"expSuc": "Exportation réussie",
|
"expSuc": "Exportation réussie",
|
||||||
"favourites": "Favoris",
|
"favourites": "Favoris",
|
||||||
|
"February": "février",
|
||||||
"Filipino": "philippine",
|
"Filipino": "philippine",
|
||||||
"Filtered recipes": "Recettes filtrées",
|
"Filtered recipes": "Recettes filtrées",
|
||||||
"fl oz": "oz liq",
|
"fl oz": "oz liq",
|
||||||
"fltr": "Filtre",
|
"fltr": "Filtre",
|
||||||
"Fluid Ounce": "Once liquide",
|
"Fluid Ounce": "Once liquide",
|
||||||
"French": "française",
|
"French": "française",
|
||||||
|
"FRI": "ven",
|
||||||
"fsList": "Vos recettes favorites sont listées ici",
|
"fsList": "Vos recettes favorites sont listées ici",
|
||||||
"g": "g",
|
"g": "g",
|
||||||
"gal": "gal",
|
"gal": "gal",
|
||||||
|
@ -106,9 +111,12 @@
|
||||||
"it": "Élément",
|
"it": "Élément",
|
||||||
"Italian": "italienne",
|
"Italian": "italienne",
|
||||||
"Jamaican": "jamaïcaine",
|
"Jamaican": "jamaïcaine",
|
||||||
|
"January": "janvier",
|
||||||
"Japanese": "japonaise",
|
"Japanese": "japonaise",
|
||||||
"Jewish": "juive",
|
"Jewish": "juive",
|
||||||
"joinTG": "Rejoignez le groupe Telegram",
|
"joinTG": "Rejoignez le groupe Telegram",
|
||||||
|
"July": "juillet",
|
||||||
|
"June": "juin",
|
||||||
"kEdit": "CONTINUER",
|
"kEdit": "CONTINUER",
|
||||||
"Kenyan": "kényane",
|
"Kenyan": "kényane",
|
||||||
"kg": "kg",
|
"kg": "kg",
|
||||||
|
@ -126,8 +134,10 @@
|
||||||
"Loaf": "Miche",
|
"Loaf": "Miche",
|
||||||
"ltAgo": "il y a longtemps",
|
"ltAgo": "il y a longtemps",
|
||||||
"lunch": "Diner",
|
"lunch": "Diner",
|
||||||
"mAgo": "il y a %s mois",
|
"mAgo": "Il y a %s mois",
|
||||||
"Main dishes": "Plats principaux",
|
"Main dishes": "Plats principaux",
|
||||||
|
"March": "mars",
|
||||||
|
"May": "mai",
|
||||||
"Meat": "Viande",
|
"Meat": "Viande",
|
||||||
"medium": "moyen",
|
"medium": "moyen",
|
||||||
"Mexican": "mexicaine",
|
"Mexican": "mexicaine",
|
||||||
|
@ -137,6 +147,7 @@
|
||||||
"minimal": "Minimale",
|
"minimal": "Minimale",
|
||||||
"ml": "ml",
|
"ml": "ml",
|
||||||
"Moderate": "Modéré",
|
"Moderate": "Modéré",
|
||||||
|
"MON": "lun",
|
||||||
"newCui": "Nouvelle cuisine",
|
"newCui": "Nouvelle cuisine",
|
||||||
"Newest first": "La plus récente d’abord",
|
"Newest first": "La plus récente d’abord",
|
||||||
"newRec": "Nouvelle recette",
|
"newRec": "Nouvelle recette",
|
||||||
|
@ -151,8 +162,10 @@
|
||||||
"noRecs": "Aucune recette ne correspond à votre recette",
|
"noRecs": "Aucune recette ne correspond à votre recette",
|
||||||
"noRecsInL": "Aucune des recettes ici ne correspond à votre recherche",
|
"noRecsInL": "Aucune des recettes ici ne correspond à votre recherche",
|
||||||
"nos": "Notes",
|
"nos": "Notes",
|
||||||
|
"November": "novembre",
|
||||||
"nwCat": "Nouvelle catégorie",
|
"nwCat": "Nouvelle catégorie",
|
||||||
"nwYiU": "Nouvelle unité de rendement",
|
"nwYiU": "Nouvelle unité de rendement",
|
||||||
|
"October": "octobre",
|
||||||
"OK": "OK",
|
"OK": "OK",
|
||||||
"Oldest first": "La plus ancienne d’abord",
|
"Oldest first": "La plus ancienne d’abord",
|
||||||
"opts": "Options",
|
"opts": "Options",
|
||||||
|
@ -166,7 +179,7 @@
|
||||||
"Piece": "Morceau",
|
"Piece": "Morceau",
|
||||||
"pinch": "pincée",
|
"pinch": "pincée",
|
||||||
"planner": "Planificateur de repas",
|
"planner": "Planificateur de repas",
|
||||||
"plsAdd": "Utilisez le bouton + pour en ajouter une",
|
"plsAdd": "Utilisez le bouton plus pour en ajouter une",
|
||||||
"Portuguese": "portugaise",
|
"Portuguese": "portugaise",
|
||||||
"Poultry": "Volaille",
|
"Poultry": "Volaille",
|
||||||
"Pound": "Livre",
|
"Pound": "Livre",
|
||||||
|
@ -187,7 +200,7 @@
|
||||||
"recs": "recettes",
|
"recs": "recettes",
|
||||||
"recTitle": "Ma recette saine",
|
"recTitle": "Ma recette saine",
|
||||||
"recU": "mise à jour :",
|
"recU": "mise à jour :",
|
||||||
"req": "%s nécessaire",
|
"req": "%s requis(e)",
|
||||||
"resNF": "Recette introuvable",
|
"resNF": "Recette introuvable",
|
||||||
"rest": "Réinitialiser",
|
"rest": "Réinitialiser",
|
||||||
"restCatL": "Réinitialiser la liste des catégories",
|
"restCatL": "Réinitialiser la liste des catégories",
|
||||||
|
@ -210,10 +223,12 @@
|
||||||
"rst": "REDÉMARRER",
|
"rst": "REDÉMARRER",
|
||||||
"Russian": "russe",
|
"Russian": "russe",
|
||||||
"Salads": "Salades",
|
"Salads": "Salades",
|
||||||
|
"SAT": "sam",
|
||||||
"Sauces": "Sauces",
|
"Sauces": "Sauces",
|
||||||
"Scottish": "écossaise",
|
"Scottish": "écossaise",
|
||||||
"Seafood": "Fruits de mer",
|
"Seafood": "Fruits de mer",
|
||||||
"selRec": "Sélectionner une recette",
|
"selRec": "Sélectionner une recette",
|
||||||
|
"September": "septembre",
|
||||||
"ser": "Chercher",
|
"ser": "Chercher",
|
||||||
"Serving": "Portion",
|
"Serving": "Portion",
|
||||||
"SET": "DÉFINIR",
|
"SET": "DÉFINIR",
|
||||||
|
@ -235,6 +250,7 @@
|
||||||
"stick": "barre",
|
"stick": "barre",
|
||||||
"stp": "Étape",
|
"stp": "Étape",
|
||||||
"strAdd": "Commencez à ajouter vos recettes !",
|
"strAdd": "Commencez à ajouter vos recettes !",
|
||||||
|
"SUN": "dim",
|
||||||
"sVw": "Secouez pour voir une recette au hasard",
|
"sVw": "Secouez pour voir une recette au hasard",
|
||||||
"sVwInfo": "Vous aide à choisir quoi cuisiner quand vous ne pouvez pas vous décider",
|
"sVwInfo": "Vous aide à choisir quoi cuisiner quand vous ne pouvez pas vous décider",
|
||||||
"Swedish": "suédoise",
|
"Swedish": "suédoise",
|
||||||
|
@ -245,16 +261,18 @@
|
||||||
"Teaspoon": "Cuillère à café",
|
"Teaspoon": "Cuillère à café",
|
||||||
"Thai": "thaïlandaise",
|
"Thai": "thaïlandaise",
|
||||||
"Theme": "Thème",
|
"Theme": "Thème",
|
||||||
|
"THU": "jeu",
|
||||||
"title": "Titre",
|
"title": "Titre",
|
||||||
"tLInfo": "Les recettes que vous voulez essayer plus tard sont listées ici",
|
"tLInfo": "Les recettes que vous voulez essayer plus tard sont listées ici",
|
||||||
"today": "aujourd’hui",
|
"today": "aujourd’hui",
|
||||||
"triedInfo": "Vous avez essayé cette recette %s",
|
"triedInfo": "Vous avez essayé cette recette %s",
|
||||||
"trnsl": "Traduire",
|
"trnsl": "Traduire",
|
||||||
"trylater": "À essayer plus tard",
|
"trylater": "Essayer plus tard",
|
||||||
"trySer": "RECHERCHE DANS TOUTES LES RECETTES ?",
|
"trySer": "RECHERCHE DANS TOUTES LES RECETTES ?",
|
||||||
"ts": "Étiquettes",
|
"ts": "Étiquettes",
|
||||||
"tsInfo": "séparez par des espaces",
|
"tsInfo": "séparez par des espaces",
|
||||||
"tsp": "c.à.c",
|
"tsp": "c.à.c",
|
||||||
|
"TUE": "mar",
|
||||||
"Turkish": "turque",
|
"Turkish": "turque",
|
||||||
"Undefined": "Indéfini",
|
"Undefined": "Indéfini",
|
||||||
"unit": "unité",
|
"unit": "unité",
|
||||||
|
@ -265,6 +283,7 @@
|
||||||
"Vegetarian": "Végétarien",
|
"Vegetarian": "Végétarien",
|
||||||
"Vietnamese": "vietnamienne",
|
"Vietnamese": "vietnamienne",
|
||||||
"wAgo": "il y a %s semaines",
|
"wAgo": "il y a %s semaines",
|
||||||
|
"WED": "mer",
|
||||||
"yesterday": "hier",
|
"yesterday": "hier",
|
||||||
"yieldQ": "Quantité de rendement",
|
"yieldQ": "Quantité de rendement",
|
||||||
"yieldU": "Unité de rendement",
|
"yieldU": "Unité de rendement",
|
||||||
|
@ -275,6 +294,7 @@
|
||||||
"tmrSnd": "Son de la minuterie",
|
"tmrSnd": "Son de la minuterie",
|
||||||
"aTPrst": "Ajouté aux préréglages",
|
"aTPrst": "Ajouté aux préréglages",
|
||||||
"fwr": "pour quelle recette ?",
|
"fwr": "pour quelle recette ?",
|
||||||
|
"tmrPrsts": "Préréglages de la minuterie",
|
||||||
"prstBtn": "PRÉRÉGLAGES",
|
"prstBtn": "PRÉRÉGLAGES",
|
||||||
"tmr": "Minuterie %s",
|
"tmr": "Minuterie %s",
|
||||||
"stop": "Arrêter",
|
"stop": "Arrêter",
|
||||||
|
@ -288,41 +308,5 @@
|
||||||
"minutes": "minutes",
|
"minutes": "minutes",
|
||||||
"minute": "minute",
|
"minute": "minute",
|
||||||
"dlyDur": "Durée du retard",
|
"dlyDur": "Durée du retard",
|
||||||
"delay": "Retarder",
|
"delay": "Retard"
|
||||||
"notifSetg": "Paramètres de notification",
|
|
||||||
"tmrRm": "Minuterie retirée",
|
|
||||||
"delPrst": "Vous êtes sur le point de supprimer %s des préréglages",
|
|
||||||
"prsts": "Préréglages",
|
|
||||||
"ttv": "Appuyez pour voir",
|
|
||||||
"dismissAll": "Rejeter toutes les minuteries",
|
|
||||||
"dismiss": "Rejeter",
|
|
||||||
"texp": "%s minuteries ont expiré",
|
|
||||||
"wDBy": "%1$s a été retardée de %2$s",
|
|
||||||
"prstTU": "Temps du préréglage mis à jour",
|
|
||||||
"ccwt": "Cuisinez avec confiance avec des minuteries !",
|
|
||||||
"gtD": "Aller à la date",
|
|
||||||
"random": "Aléatoire",
|
|
||||||
"ystr": "Hier",
|
|
||||||
"tmrw": "Demain",
|
|
||||||
"tdy": "Aujourd’hui",
|
|
||||||
"cpy": "copie",
|
|
||||||
"d": "Jour",
|
|
||||||
"wk": "Semaine",
|
|
||||||
"mnth": "Mois",
|
|
||||||
"calVM": "Mode d’affichage du calendrier",
|
|
||||||
"oAP": "%1$s en cours, %2$s en pause",
|
|
||||||
"otaw": "Après une semaine",
|
|
||||||
"otam": "Après un mois",
|
|
||||||
"otay": "Après un an",
|
|
||||||
"admp": "Supprimer automatiquement les planifications de repas",
|
|
||||||
"nvr": "Jamais",
|
|
||||||
"plsCrt": "Utilisez le bouton + pour en créer une",
|
|
||||||
"ehwmp": "Mangez sainement grâce aux planifications de repas !",
|
|
||||||
"selMT": "Sélectionnez le type de repas",
|
|
||||||
"rstBtn": "RÉINITIALISER",
|
|
||||||
"add": "Ajouter",
|
|
||||||
"esgbInfo": "Désactivez cette option si vous avez des problèmes de navigation",
|
|
||||||
"esgb": "Balayer le bord pour revenir en arrière",
|
|
||||||
"ksavrInfo": "Empêche l’écran de s’éteindre durant la visualisation d’une recette",
|
|
||||||
"ksavr": "Garder l’écran allumé durant l’affichage d’une recette"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,9 @@
|
||||||
"appInfo": "EnRecipes est un livre de cuisine numérique à code source ouvert et respectueux de la vie privée qui vous permet de créer, gérer et partager vos recettes",
|
"appInfo": "EnRecipes est un livre de cuisine numérique à code source ouvert et respectueux de la vie privée qui vous permet de créer, gérer et partager vos recettes",
|
||||||
"apply": "APPLIQUER",
|
"apply": "APPLIQUER",
|
||||||
"appRst": "Redémarrage de l’appli nécessaire",
|
"appRst": "Redémarrage de l’appli nécessaire",
|
||||||
|
"April": "avril",
|
||||||
"aStpBtn": "AJOUTER UNE ÉTAPE",
|
"aStpBtn": "AJOUTER UNE ÉTAPE",
|
||||||
|
"August": "août",
|
||||||
"Barbecue": "Barbecue",
|
"Barbecue": "Barbecue",
|
||||||
"Beverages": "Breuvages",
|
"Beverages": "Breuvages",
|
||||||
"Black": "Noir",
|
"Black": "Noir",
|
||||||
|
@ -51,6 +53,7 @@
|
||||||
"Dark": "Sombre",
|
"Dark": "Sombre",
|
||||||
"db": "Base de données",
|
"db": "Base de données",
|
||||||
"dBtn": "SUPPRIMER",
|
"dBtn": "SUPPRIMER",
|
||||||
|
"December": "décembre",
|
||||||
"delRecInfo": "Vous êtes sur le point de supprimer définitivement la recette %s",
|
"delRecInfo": "Vous êtes sur le point de supprimer définitivement la recette %s",
|
||||||
"delRecsInfo": "Vous êtes sur le point de supprimer définitivement %s",
|
"delRecsInfo": "Vous êtes sur le point de supprimer définitivement %s",
|
||||||
"Desserts": "Desserts",
|
"Desserts": "Desserts",
|
||||||
|
@ -72,12 +75,14 @@
|
||||||
"expip": "Exportation en cours",
|
"expip": "Exportation en cours",
|
||||||
"expSuc": "Exportation réussie",
|
"expSuc": "Exportation réussie",
|
||||||
"favourites": "Favoris",
|
"favourites": "Favoris",
|
||||||
|
"February": "février",
|
||||||
"Filipino": "philippine",
|
"Filipino": "philippine",
|
||||||
"Filtered recipes": "Recettes filtrées",
|
"Filtered recipes": "Recettes filtrées",
|
||||||
"fl oz": "oz liq",
|
"fl oz": "oz liq",
|
||||||
"fltr": "Filtre",
|
"fltr": "Filtre",
|
||||||
"Fluid Ounce": "Once liquide",
|
"Fluid Ounce": "Once liquide",
|
||||||
"French": "française",
|
"French": "française",
|
||||||
|
"FRI": "ven",
|
||||||
"fsList": "Vos recettes favorites sont listées ici",
|
"fsList": "Vos recettes favorites sont listées ici",
|
||||||
"g": "g",
|
"g": "g",
|
||||||
"gal": "gal",
|
"gal": "gal",
|
||||||
|
@ -96,7 +101,7 @@
|
||||||
"impInfo": "Prend en charge les sauvegardes complètes exportées par cette application",
|
"impInfo": "Prend en charge les sauvegardes complètes exportées par cette application",
|
||||||
"impip": "Importation en cours",
|
"impip": "Importation en cours",
|
||||||
"impSuc": "Importation réussie",
|
"impSuc": "Importation réussie",
|
||||||
"in": "po",
|
"in": "in",
|
||||||
"Indian": "indienne",
|
"Indian": "indienne",
|
||||||
"ings": "Ingrédients",
|
"ings": "Ingrédients",
|
||||||
"inss": "Instructions",
|
"inss": "Instructions",
|
||||||
|
@ -106,9 +111,12 @@
|
||||||
"it": "Élément",
|
"it": "Élément",
|
||||||
"Italian": "italienne",
|
"Italian": "italienne",
|
||||||
"Jamaican": "jamaïcaine",
|
"Jamaican": "jamaïcaine",
|
||||||
|
"January": "janvier",
|
||||||
"Japanese": "japonaise",
|
"Japanese": "japonaise",
|
||||||
"Jewish": "juive",
|
"Jewish": "juive",
|
||||||
"joinTG": "Rejoignez le groupe Telegram",
|
"joinTG": "Rejoignez le groupe Telegram",
|
||||||
|
"July": "juillet",
|
||||||
|
"June": "juin",
|
||||||
"kEdit": "CONTINUER",
|
"kEdit": "CONTINUER",
|
||||||
"Kenyan": "kényane",
|
"Kenyan": "kényane",
|
||||||
"kg": "kg",
|
"kg": "kg",
|
||||||
|
@ -126,8 +134,10 @@
|
||||||
"Loaf": "Miche",
|
"Loaf": "Miche",
|
||||||
"ltAgo": "il y a longtemps",
|
"ltAgo": "il y a longtemps",
|
||||||
"lunch": "Dîner",
|
"lunch": "Dîner",
|
||||||
"mAgo": "il y a %s mois",
|
"mAgo": "Il y a %s mois",
|
||||||
"Main dishes": "Plats principaux",
|
"Main dishes": "Plats principaux",
|
||||||
|
"March": "mars",
|
||||||
|
"May": "mai",
|
||||||
"Meat": "Viande",
|
"Meat": "Viande",
|
||||||
"medium": "moyen",
|
"medium": "moyen",
|
||||||
"Mexican": "mexicaine",
|
"Mexican": "mexicaine",
|
||||||
|
@ -137,6 +147,7 @@
|
||||||
"minimal": "Minimale",
|
"minimal": "Minimale",
|
||||||
"ml": "ml",
|
"ml": "ml",
|
||||||
"Moderate": "Modéré",
|
"Moderate": "Modéré",
|
||||||
|
"MON": "lun",
|
||||||
"newCui": "Nouvelle cuisine",
|
"newCui": "Nouvelle cuisine",
|
||||||
"Newest first": "La plus récente d’abord",
|
"Newest first": "La plus récente d’abord",
|
||||||
"newRec": "Nouvelle recette",
|
"newRec": "Nouvelle recette",
|
||||||
|
@ -151,8 +162,10 @@
|
||||||
"noRecs": "Aucune recette ne correspond à votre recette",
|
"noRecs": "Aucune recette ne correspond à votre recette",
|
||||||
"noRecsInL": "Aucune des recettes ici ne correspond à votre recherche",
|
"noRecsInL": "Aucune des recettes ici ne correspond à votre recherche",
|
||||||
"nos": "Notes",
|
"nos": "Notes",
|
||||||
|
"November": "novembre",
|
||||||
"nwCat": "Nouvelle catégorie",
|
"nwCat": "Nouvelle catégorie",
|
||||||
"nwYiU": "Nouvelle unité de rendement",
|
"nwYiU": "Nouvelle unité de rendement",
|
||||||
|
"October": "octobre",
|
||||||
"OK": "OK",
|
"OK": "OK",
|
||||||
"Oldest first": "La plus ancienne d’abord",
|
"Oldest first": "La plus ancienne d’abord",
|
||||||
"opts": "Options",
|
"opts": "Options",
|
||||||
|
@ -166,7 +179,7 @@
|
||||||
"Piece": "Morceau",
|
"Piece": "Morceau",
|
||||||
"pinch": "pincée",
|
"pinch": "pincée",
|
||||||
"planner": "Planificateur de repas",
|
"planner": "Planificateur de repas",
|
||||||
"plsAdd": "Utilisez le bouton + pour en ajouter une",
|
"plsAdd": "Utilisez le bouton plus pour en ajouter une",
|
||||||
"Portuguese": "portugaise",
|
"Portuguese": "portugaise",
|
||||||
"Poultry": "Volaille",
|
"Poultry": "Volaille",
|
||||||
"Pound": "Livre",
|
"Pound": "Livre",
|
||||||
|
@ -187,7 +200,7 @@
|
||||||
"recs": "recettes",
|
"recs": "recettes",
|
||||||
"recTitle": "Ma recette saine",
|
"recTitle": "Ma recette saine",
|
||||||
"recU": "mise à jour :",
|
"recU": "mise à jour :",
|
||||||
"req": "%s nécessaire",
|
"req": "%s requis(e)",
|
||||||
"resNF": "Recette introuvable",
|
"resNF": "Recette introuvable",
|
||||||
"rest": "Réinitialiser",
|
"rest": "Réinitialiser",
|
||||||
"restCatL": "Réinitialiser la liste des catégories",
|
"restCatL": "Réinitialiser la liste des catégories",
|
||||||
|
@ -210,10 +223,12 @@
|
||||||
"rst": "REDÉMARRER",
|
"rst": "REDÉMARRER",
|
||||||
"Russian": "russe",
|
"Russian": "russe",
|
||||||
"Salads": "Salades",
|
"Salads": "Salades",
|
||||||
|
"SAT": "sam",
|
||||||
"Sauces": "Sauces",
|
"Sauces": "Sauces",
|
||||||
"Scottish": "écossaise",
|
"Scottish": "écossaise",
|
||||||
"Seafood": "Fruits de mer",
|
"Seafood": "Fruits de mer",
|
||||||
"selRec": "Sélectionner une recette",
|
"selRec": "Sélectionner une recette",
|
||||||
|
"September": "septembre",
|
||||||
"ser": "Chercher",
|
"ser": "Chercher",
|
||||||
"Serving": "Portion",
|
"Serving": "Portion",
|
||||||
"SET": "DÉFINIR",
|
"SET": "DÉFINIR",
|
||||||
|
@ -235,6 +250,7 @@
|
||||||
"stick": "barre",
|
"stick": "barre",
|
||||||
"stp": "Étape",
|
"stp": "Étape",
|
||||||
"strAdd": "Commencez à ajouter vos recettes!",
|
"strAdd": "Commencez à ajouter vos recettes!",
|
||||||
|
"SUN": "dim",
|
||||||
"sVw": "Secouez pour voir une recette au hasard",
|
"sVw": "Secouez pour voir une recette au hasard",
|
||||||
"sVwInfo": "Vous aide à choisir quoi cuisiner quand vous ne pouvez pas vous décider",
|
"sVwInfo": "Vous aide à choisir quoi cuisiner quand vous ne pouvez pas vous décider",
|
||||||
"Swedish": "suédoise",
|
"Swedish": "suédoise",
|
||||||
|
@ -245,16 +261,18 @@
|
||||||
"Teaspoon": "Cuillère à thé",
|
"Teaspoon": "Cuillère à thé",
|
||||||
"Thai": "thaïlandaise",
|
"Thai": "thaïlandaise",
|
||||||
"Theme": "Thème",
|
"Theme": "Thème",
|
||||||
|
"THU": "jeu",
|
||||||
"title": "Titre",
|
"title": "Titre",
|
||||||
"tLInfo": "Les recettes que vous voulez essayer plus tard sont listées ici",
|
"tLInfo": "Les recettes que vous voulez essayer plus tard sont listées ici",
|
||||||
"today": "aujourd’hui",
|
"today": "aujourd’hui",
|
||||||
"triedInfo": "Vous avez essayé cette recette %s",
|
"triedInfo": "Vous avez essayé cette recette %s",
|
||||||
"trnsl": "Traduire",
|
"trnsl": "Traduire",
|
||||||
"trylater": "À essayer plus tard",
|
"trylater": "Essayer plus tard",
|
||||||
"trySer": "RECHERCHE DANS TOUTES LES RECETTES?",
|
"trySer": "RECHERCHE DANS TOUTES LES RECETTES?",
|
||||||
"ts": "Étiquettes",
|
"ts": "Étiquettes",
|
||||||
"tsInfo": "séparez par des espaces",
|
"tsInfo": "séparez par des espaces",
|
||||||
"tsp": "c.à.t",
|
"tsp": "c.à.t",
|
||||||
|
"TUE": "mar",
|
||||||
"Turkish": "turque",
|
"Turkish": "turque",
|
||||||
"Undefined": "Indéfini",
|
"Undefined": "Indéfini",
|
||||||
"unit": "unité",
|
"unit": "unité",
|
||||||
|
@ -265,6 +283,7 @@
|
||||||
"Vegetarian": "Végétarien",
|
"Vegetarian": "Végétarien",
|
||||||
"Vietnamese": "vietnamienne",
|
"Vietnamese": "vietnamienne",
|
||||||
"wAgo": "il y a %s semaines",
|
"wAgo": "il y a %s semaines",
|
||||||
|
"WED": "mer",
|
||||||
"yesterday": "hier",
|
"yesterday": "hier",
|
||||||
"yieldQ": "Quantité de rendement",
|
"yieldQ": "Quantité de rendement",
|
||||||
"yieldU": "Unité de rendement",
|
"yieldU": "Unité de rendement",
|
||||||
|
@ -275,6 +294,7 @@
|
||||||
"tmrSnd": "Son de la minuterie",
|
"tmrSnd": "Son de la minuterie",
|
||||||
"aTPrst": "Ajouté aux préréglages",
|
"aTPrst": "Ajouté aux préréglages",
|
||||||
"fwr": "pour quelle recette?",
|
"fwr": "pour quelle recette?",
|
||||||
|
"tmrPrsts": "Préréglages de la minuterie",
|
||||||
"prstBtn": "PRÉRÉGLAGES",
|
"prstBtn": "PRÉRÉGLAGES",
|
||||||
"tmr": "Minuterie %s",
|
"tmr": "Minuterie %s",
|
||||||
"stop": "Arrêter",
|
"stop": "Arrêter",
|
||||||
|
@ -288,41 +308,5 @@
|
||||||
"minutes": "minutes",
|
"minutes": "minutes",
|
||||||
"minute": "minute",
|
"minute": "minute",
|
||||||
"dlyDur": "Durée du retard",
|
"dlyDur": "Durée du retard",
|
||||||
"delay": "Retarder",
|
"delay": "Retard"
|
||||||
"notifSetg": "Paramètres de notification",
|
|
||||||
"tmrRm": "Minuterie retirée",
|
|
||||||
"delPrst": "Vous êtes sur le point de supprimer %s des préréglages",
|
|
||||||
"prsts": "Préréglages",
|
|
||||||
"ttv": "Appuyez pour voir",
|
|
||||||
"dismissAll": "Rejeter toutes les minuteries",
|
|
||||||
"dismiss": "Rejeter",
|
|
||||||
"texp": "%s minuteries ont expiré",
|
|
||||||
"wDBy": "%1$s a été retardée de %2$s",
|
|
||||||
"prstTU": "Temps du préréglage mis à jour",
|
|
||||||
"ccwt": "Cuisinez avec confiance avec des minuteries!",
|
|
||||||
"gtD": "Aller à la date",
|
|
||||||
"random": "Aléatoire",
|
|
||||||
"ystr": "Hier",
|
|
||||||
"tmrw": "Demain",
|
|
||||||
"tdy": "Aujourd’hui",
|
|
||||||
"cpy": "copie",
|
|
||||||
"d": "Jour",
|
|
||||||
"wk": "Semaine",
|
|
||||||
"mnth": "Mois",
|
|
||||||
"calVM": "Mode d’affichage du calendrier",
|
|
||||||
"oAP": "%1$s en cours, %2$s en pause",
|
|
||||||
"otaw": "Après une semaine",
|
|
||||||
"otam": "Après un mois",
|
|
||||||
"otay": "Après un an",
|
|
||||||
"admp": "Supprimer automatiquement les planifications de repas",
|
|
||||||
"nvr": "Jamais",
|
|
||||||
"plsCrt": "Utilisez le bouton + pour en créer une",
|
|
||||||
"ehwmp": "Mangez sainement grâce aux planifications de repas!",
|
|
||||||
"selMT": "Sélectionnez le type de repas",
|
|
||||||
"rstBtn": "RÉINITIALISER",
|
|
||||||
"add": "Ajouter",
|
|
||||||
"esgbInfo": "Désactivez cette option si vous avez des problèmes de navigation",
|
|
||||||
"esgb": "Balayer le bord pour revenir en arrière",
|
|
||||||
"ksavrInfo": "Empêche l’écran de s’éteindre durant la visualisation d’une recette",
|
|
||||||
"ksavr": "Garder l’écran allumé durant l’affichage d’une recette"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,9 @@
|
||||||
"appInfo": "EnRecipes est un livre de cuisine numérique à code source ouvert et respectueux de la vie privée qui vous permet de créer, gérer et partager vos recettes",
|
"appInfo": "EnRecipes est un livre de cuisine numérique à code source ouvert et respectueux de la vie privée qui vous permet de créer, gérer et partager vos recettes",
|
||||||
"apply": "APPLIQUER",
|
"apply": "APPLIQUER",
|
||||||
"appRst": "Redémarrage de l’appli nécessaire",
|
"appRst": "Redémarrage de l’appli nécessaire",
|
||||||
|
"April": "avril",
|
||||||
"aStpBtn": "AJOUTER UNE ÉTAPE",
|
"aStpBtn": "AJOUTER UNE ÉTAPE",
|
||||||
|
"August": "août",
|
||||||
"Barbecue": "Barbecue",
|
"Barbecue": "Barbecue",
|
||||||
"Beverages": "Boissons",
|
"Beverages": "Boissons",
|
||||||
"Black": "Noir",
|
"Black": "Noir",
|
||||||
|
@ -51,6 +53,7 @@
|
||||||
"Dark": "Sombre",
|
"Dark": "Sombre",
|
||||||
"db": "Base de données",
|
"db": "Base de données",
|
||||||
"dBtn": "SUPPRIMER",
|
"dBtn": "SUPPRIMER",
|
||||||
|
"December": "décembre",
|
||||||
"delRecInfo": "Vous êtes sur le point de supprimer définitivement la recette %s",
|
"delRecInfo": "Vous êtes sur le point de supprimer définitivement la recette %s",
|
||||||
"delRecsInfo": "Vous êtes sur le point de supprimer définitivement %s",
|
"delRecsInfo": "Vous êtes sur le point de supprimer définitivement %s",
|
||||||
"Desserts": "Desserts",
|
"Desserts": "Desserts",
|
||||||
|
@ -72,12 +75,14 @@
|
||||||
"expip": "Exportation en cours",
|
"expip": "Exportation en cours",
|
||||||
"expSuc": "Exportation réussie",
|
"expSuc": "Exportation réussie",
|
||||||
"favourites": "Favoris",
|
"favourites": "Favoris",
|
||||||
|
"February": "février",
|
||||||
"Filipino": "philippine",
|
"Filipino": "philippine",
|
||||||
"Filtered recipes": "Recettes filtrées",
|
"Filtered recipes": "Recettes filtrées",
|
||||||
"fl oz": "oz liq",
|
"fl oz": "oz liq",
|
||||||
"fltr": "Filtre",
|
"fltr": "Filtre",
|
||||||
"Fluid Ounce": "Once liquide",
|
"Fluid Ounce": "Once liquide",
|
||||||
"French": "française",
|
"French": "française",
|
||||||
|
"FRI": "ven",
|
||||||
"fsList": "Vos recettes favorites sont listées ici",
|
"fsList": "Vos recettes favorites sont listées ici",
|
||||||
"g": "g",
|
"g": "g",
|
||||||
"gal": "gal",
|
"gal": "gal",
|
||||||
|
@ -106,9 +111,12 @@
|
||||||
"it": "Élément",
|
"it": "Élément",
|
||||||
"Italian": "italienne",
|
"Italian": "italienne",
|
||||||
"Jamaican": "jamaïcaine",
|
"Jamaican": "jamaïcaine",
|
||||||
|
"January": "janvier",
|
||||||
"Japanese": "japonaise",
|
"Japanese": "japonaise",
|
||||||
"Jewish": "juive",
|
"Jewish": "juive",
|
||||||
"joinTG": "Rejoignez le groupe Telegram",
|
"joinTG": "Rejoignez le groupe Telegram",
|
||||||
|
"July": "juillet",
|
||||||
|
"June": "juin",
|
||||||
"kEdit": "CONTINUER",
|
"kEdit": "CONTINUER",
|
||||||
"Kenyan": "kényane",
|
"Kenyan": "kényane",
|
||||||
"kg": "kg",
|
"kg": "kg",
|
||||||
|
@ -126,8 +134,10 @@
|
||||||
"Loaf": "Miche",
|
"Loaf": "Miche",
|
||||||
"ltAgo": "il y a longtemps",
|
"ltAgo": "il y a longtemps",
|
||||||
"lunch": "Dîner",
|
"lunch": "Dîner",
|
||||||
"mAgo": "il y a %s mois",
|
"mAgo": "Il y a %s mois",
|
||||||
"Main dishes": "Plats principaux",
|
"Main dishes": "Plats principaux",
|
||||||
|
"March": "mars",
|
||||||
|
"May": "mai",
|
||||||
"Meat": "Viande",
|
"Meat": "Viande",
|
||||||
"medium": "moyen",
|
"medium": "moyen",
|
||||||
"Mexican": "mexicaine",
|
"Mexican": "mexicaine",
|
||||||
|
@ -137,6 +147,7 @@
|
||||||
"minimal": "Minimale",
|
"minimal": "Minimale",
|
||||||
"ml": "ml",
|
"ml": "ml",
|
||||||
"Moderate": "Modéré",
|
"Moderate": "Modéré",
|
||||||
|
"MON": "lun",
|
||||||
"newCui": "Nouvelle cuisine",
|
"newCui": "Nouvelle cuisine",
|
||||||
"Newest first": "La plus récente d’abord",
|
"Newest first": "La plus récente d’abord",
|
||||||
"newRec": "Nouvelle recette",
|
"newRec": "Nouvelle recette",
|
||||||
|
@ -151,8 +162,10 @@
|
||||||
"noRecs": "Aucune recette ne correspond à votre recette",
|
"noRecs": "Aucune recette ne correspond à votre recette",
|
||||||
"noRecsInL": "Aucune des recettes ici ne correspond à votre recherche",
|
"noRecsInL": "Aucune des recettes ici ne correspond à votre recherche",
|
||||||
"nos": "Notes",
|
"nos": "Notes",
|
||||||
|
"November": "novembre",
|
||||||
"nwCat": "Nouvelle catégorie",
|
"nwCat": "Nouvelle catégorie",
|
||||||
"nwYiU": "Nouvelle unité de rendement",
|
"nwYiU": "Nouvelle unité de rendement",
|
||||||
|
"October": "octobre",
|
||||||
"OK": "OK",
|
"OK": "OK",
|
||||||
"Oldest first": "La plus ancienne d’abord",
|
"Oldest first": "La plus ancienne d’abord",
|
||||||
"opts": "Options",
|
"opts": "Options",
|
||||||
|
@ -166,7 +179,7 @@
|
||||||
"Piece": "Morceau",
|
"Piece": "Morceau",
|
||||||
"pinch": "pincée",
|
"pinch": "pincée",
|
||||||
"planner": "Planificateur de repas",
|
"planner": "Planificateur de repas",
|
||||||
"plsAdd": "Utilisez le bouton + pour en ajouter une",
|
"plsAdd": "Utilisez le bouton plus pour en ajouter une",
|
||||||
"Portuguese": "portugaise",
|
"Portuguese": "portugaise",
|
||||||
"Poultry": "Volaille",
|
"Poultry": "Volaille",
|
||||||
"Pound": "Livre",
|
"Pound": "Livre",
|
||||||
|
@ -187,7 +200,7 @@
|
||||||
"recs": "recettes",
|
"recs": "recettes",
|
||||||
"recTitle": "Ma recette saine",
|
"recTitle": "Ma recette saine",
|
||||||
"recU": "mise à jour :",
|
"recU": "mise à jour :",
|
||||||
"req": "%s nécessaire",
|
"req": "%s requis(e)",
|
||||||
"resNF": "Recette introuvable",
|
"resNF": "Recette introuvable",
|
||||||
"rest": "Réinitialiser",
|
"rest": "Réinitialiser",
|
||||||
"restCatL": "Réinitialiser la liste des catégories",
|
"restCatL": "Réinitialiser la liste des catégories",
|
||||||
|
@ -210,10 +223,12 @@
|
||||||
"rst": "REDÉMARRER",
|
"rst": "REDÉMARRER",
|
||||||
"Russian": "russe",
|
"Russian": "russe",
|
||||||
"Salads": "Salades",
|
"Salads": "Salades",
|
||||||
|
"SAT": "sam",
|
||||||
"Sauces": "Sauces",
|
"Sauces": "Sauces",
|
||||||
"Scottish": "écossaise",
|
"Scottish": "écossaise",
|
||||||
"Seafood": "Fruits de mer",
|
"Seafood": "Fruits de mer",
|
||||||
"selRec": "Sélectionner une recette",
|
"selRec": "Sélectionner une recette",
|
||||||
|
"September": "septembre",
|
||||||
"ser": "Chercher",
|
"ser": "Chercher",
|
||||||
"Serving": "Portion",
|
"Serving": "Portion",
|
||||||
"SET": "DÉFINIR",
|
"SET": "DÉFINIR",
|
||||||
|
@ -235,6 +250,7 @@
|
||||||
"stick": "barre",
|
"stick": "barre",
|
||||||
"stp": "Étape",
|
"stp": "Étape",
|
||||||
"strAdd": "Commencez à ajouter vos recettes!",
|
"strAdd": "Commencez à ajouter vos recettes!",
|
||||||
|
"SUN": "dim",
|
||||||
"sVw": "Secouez pour voir une recette au hasard",
|
"sVw": "Secouez pour voir une recette au hasard",
|
||||||
"sVwInfo": "Vous aide à choisir quoi cuisiner quand vous ne pouvez pas vous décider",
|
"sVwInfo": "Vous aide à choisir quoi cuisiner quand vous ne pouvez pas vous décider",
|
||||||
"Swedish": "suédoise",
|
"Swedish": "suédoise",
|
||||||
|
@ -245,16 +261,18 @@
|
||||||
"Teaspoon": "Cuillère à café",
|
"Teaspoon": "Cuillère à café",
|
||||||
"Thai": "thaïlandaise",
|
"Thai": "thaïlandaise",
|
||||||
"Theme": "Thème",
|
"Theme": "Thème",
|
||||||
|
"THU": "jeu",
|
||||||
"title": "Titre",
|
"title": "Titre",
|
||||||
"tLInfo": "Les recettes que vous voulez essayer plus tard sont listées ici",
|
"tLInfo": "Les recettes que vous voulez essayer plus tard sont listées ici",
|
||||||
"today": "aujourd’hui",
|
"today": "aujourd’hui",
|
||||||
"triedInfo": "Vous avez essayé cette recette %s",
|
"triedInfo": "Vous avez essayé cette recette %s",
|
||||||
"trnsl": "Traduire",
|
"trnsl": "Traduire",
|
||||||
"trylater": "À essayer plus tard",
|
"trylater": "Essayer plus tard",
|
||||||
"trySer": "RECHERCHE DANS TOUTES LES RECETTES?",
|
"trySer": "RECHERCHE DANS TOUTES LES RECETTES?",
|
||||||
"ts": "Étiquettes",
|
"ts": "Étiquettes",
|
||||||
"tsInfo": "séparez par des espaces",
|
"tsInfo": "séparez par des espaces",
|
||||||
"tsp": "c.à.c",
|
"tsp": "c.à.c",
|
||||||
|
"TUE": "mar",
|
||||||
"Turkish": "turque",
|
"Turkish": "turque",
|
||||||
"Undefined": "Indéfini",
|
"Undefined": "Indéfini",
|
||||||
"unit": "unité",
|
"unit": "unité",
|
||||||
|
@ -265,6 +283,7 @@
|
||||||
"Vegetarian": "Végétarien",
|
"Vegetarian": "Végétarien",
|
||||||
"Vietnamese": "vietnamienne",
|
"Vietnamese": "vietnamienne",
|
||||||
"wAgo": "il y a %s semaines",
|
"wAgo": "il y a %s semaines",
|
||||||
|
"WED": "mer",
|
||||||
"yesterday": "hier",
|
"yesterday": "hier",
|
||||||
"yieldQ": "Quantité de rendement",
|
"yieldQ": "Quantité de rendement",
|
||||||
"yieldU": "Unité de rendement",
|
"yieldU": "Unité de rendement",
|
||||||
|
@ -275,6 +294,7 @@
|
||||||
"tmrSnd": "Son de la minuterie",
|
"tmrSnd": "Son de la minuterie",
|
||||||
"aTPrst": "Ajouté aux préréglages",
|
"aTPrst": "Ajouté aux préréglages",
|
||||||
"fwr": "pour quelle recette?",
|
"fwr": "pour quelle recette?",
|
||||||
|
"tmrPrsts": "Préréglages de la minuterie",
|
||||||
"prstBtn": "PRÉRÉGLAGES",
|
"prstBtn": "PRÉRÉGLAGES",
|
||||||
"tmr": "Minuterie %s",
|
"tmr": "Minuterie %s",
|
||||||
"stop": "Arrêter",
|
"stop": "Arrêter",
|
||||||
|
@ -288,41 +308,5 @@
|
||||||
"minutes": "minutes",
|
"minutes": "minutes",
|
||||||
"minute": "minute",
|
"minute": "minute",
|
||||||
"dlyDur": "Durée du retard",
|
"dlyDur": "Durée du retard",
|
||||||
"delay": "Retarder",
|
"delay": "Retard"
|
||||||
"notifSetg": "Paramètres de notification",
|
|
||||||
"tmrRm": "Minuterie retirée",
|
|
||||||
"delPrst": "Vous êtes sur le point de supprimer %s des préréglages",
|
|
||||||
"prsts": "Préréglages",
|
|
||||||
"ttv": "Appuyez pour voir",
|
|
||||||
"dismissAll": "Rejeter toutes les minuteries",
|
|
||||||
"dismiss": "Rejeter",
|
|
||||||
"texp": "%s minuteries ont expiré",
|
|
||||||
"wDBy": "%1$s a été retardée de %2$s",
|
|
||||||
"prstTU": "Temps du préréglage mis à jour",
|
|
||||||
"ccwt": "Cuisinez avec confiance avec des minuterie!",
|
|
||||||
"gtD": "Aller à la date",
|
|
||||||
"random": "Aléatoire",
|
|
||||||
"ystr": "Hier",
|
|
||||||
"tmrw": "Demain",
|
|
||||||
"tdy": "Aujourd’hui",
|
|
||||||
"cpy": "copie",
|
|
||||||
"d": "Jour",
|
|
||||||
"wk": "Semaine",
|
|
||||||
"mnth": "Mois",
|
|
||||||
"calVM": "Mode d’affichage du calendrier",
|
|
||||||
"oAP": "%1$s en cours, %2$s en pause",
|
|
||||||
"nvr": "Jamais",
|
|
||||||
"otaw": "Après une semaine",
|
|
||||||
"otam": "Après un mois",
|
|
||||||
"otay": "Après un an",
|
|
||||||
"admp": "Supprimer automatiquement les planifications de repas",
|
|
||||||
"plsCrt": "Utilisez le bouton + pour en créer une",
|
|
||||||
"ehwmp": "Mangez sainement grâce aux planifications de repas!",
|
|
||||||
"selMT": "Sélectionnez le type de repas",
|
|
||||||
"rstBtn": "RÉINITIALISER",
|
|
||||||
"add": "Ajouter",
|
|
||||||
"esgbInfo": "Désactivez cette option si vous avez des problèmes de navigation",
|
|
||||||
"esgb": "Balayer le bord pour revenir en arrière",
|
|
||||||
"ksavrInfo": "Empêche l’écran de s’éteindre durant la visualisation d’une recette",
|
|
||||||
"ksavr": "Garder l’écran allumé durant l’affichage d’une recette"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,9 @@
|
||||||
"appInfo": "EnRecipes est un livre de cuisine numérique à code source ouvert et respectueux de la vie privée qui vous permet de créer, gérer et partager vos recettes",
|
"appInfo": "EnRecipes est un livre de cuisine numérique à code source ouvert et respectueux de la vie privée qui vous permet de créer, gérer et partager vos recettes",
|
||||||
"apply": "APPLIQUER",
|
"apply": "APPLIQUER",
|
||||||
"appRst": "Redémarrage de l’appli nécessaire",
|
"appRst": "Redémarrage de l’appli nécessaire",
|
||||||
|
"April": "avril",
|
||||||
"aStpBtn": "AJOUTER UNE ÉTAPE",
|
"aStpBtn": "AJOUTER UNE ÉTAPE",
|
||||||
|
"August": "août",
|
||||||
"Barbecue": "Barbecue",
|
"Barbecue": "Barbecue",
|
||||||
"Beverages": "Boissons",
|
"Beverages": "Boissons",
|
||||||
"Black": "Noir",
|
"Black": "Noir",
|
||||||
|
@ -51,6 +53,7 @@
|
||||||
"Dark": "Sombre",
|
"Dark": "Sombre",
|
||||||
"db": "Base de données",
|
"db": "Base de données",
|
||||||
"dBtn": "SUPPRIMER",
|
"dBtn": "SUPPRIMER",
|
||||||
|
"December": "décembre",
|
||||||
"delRecInfo": "Vous êtes sur le point de supprimer définitivement la recette %s",
|
"delRecInfo": "Vous êtes sur le point de supprimer définitivement la recette %s",
|
||||||
"delRecsInfo": "Vous êtes sur le point de supprimer définitivement %s",
|
"delRecsInfo": "Vous êtes sur le point de supprimer définitivement %s",
|
||||||
"Desserts": "Desserts",
|
"Desserts": "Desserts",
|
||||||
|
@ -72,12 +75,14 @@
|
||||||
"expip": "Exportation en cours",
|
"expip": "Exportation en cours",
|
||||||
"expSuc": "Exportation réussie",
|
"expSuc": "Exportation réussie",
|
||||||
"favourites": "Favoris",
|
"favourites": "Favoris",
|
||||||
|
"February": "février",
|
||||||
"Filipino": "philippine",
|
"Filipino": "philippine",
|
||||||
"Filtered recipes": "Recettes filtrées",
|
"Filtered recipes": "Recettes filtrées",
|
||||||
"fl oz": "oz liq",
|
"fl oz": "oz liq",
|
||||||
"fltr": "Filtre",
|
"fltr": "Filtre",
|
||||||
"Fluid Ounce": "Once liquide",
|
"Fluid Ounce": "Once liquide",
|
||||||
"French": "française",
|
"French": "Française",
|
||||||
|
"FRI": "ven",
|
||||||
"fsList": "Vos recettes favorites sont listées ici",
|
"fsList": "Vos recettes favorites sont listées ici",
|
||||||
"g": "g",
|
"g": "g",
|
||||||
"gal": "gal",
|
"gal": "gal",
|
||||||
|
@ -103,12 +108,15 @@
|
||||||
"intf": "Interface",
|
"intf": "Interface",
|
||||||
"invFile": "Fichier invalide",
|
"invFile": "Fichier invalide",
|
||||||
"Irish": "irlandaise",
|
"Irish": "irlandaise",
|
||||||
"it": "Élément %s",
|
"it": "Élément",
|
||||||
"Italian": "italienne",
|
"Italian": "italienne",
|
||||||
"Jamaican": "jamaïcaine",
|
"Jamaican": "jamaïcaine",
|
||||||
|
"January": "janvier",
|
||||||
"Japanese": "japonaise",
|
"Japanese": "japonaise",
|
||||||
"Jewish": "juive",
|
"Jewish": "juive",
|
||||||
"joinTG": "Rejoignez le groupe Telegram",
|
"joinTG": "Rejoignez le groupe Telegram",
|
||||||
|
"July": "juillet",
|
||||||
|
"June": "juin",
|
||||||
"kEdit": "CONTINUER",
|
"kEdit": "CONTINUER",
|
||||||
"Kenyan": "kényane",
|
"Kenyan": "kényane",
|
||||||
"kg": "kg",
|
"kg": "kg",
|
||||||
|
@ -126,8 +134,10 @@
|
||||||
"Loaf": "Miche",
|
"Loaf": "Miche",
|
||||||
"ltAgo": "il y a longtemps",
|
"ltAgo": "il y a longtemps",
|
||||||
"lunch": "Déjeuner",
|
"lunch": "Déjeuner",
|
||||||
"mAgo": "il y a %s mois",
|
"mAgo": "Il y a %s mois",
|
||||||
"Main dishes": "Plats principaux",
|
"Main dishes": "Plats principaux",
|
||||||
|
"March": "mars",
|
||||||
|
"May": "mai",
|
||||||
"Meat": "Viande",
|
"Meat": "Viande",
|
||||||
"medium": "moyen",
|
"medium": "moyen",
|
||||||
"Mexican": "mexicaine",
|
"Mexican": "mexicaine",
|
||||||
|
@ -137,6 +147,7 @@
|
||||||
"minimal": "Minimale",
|
"minimal": "Minimale",
|
||||||
"ml": "ml",
|
"ml": "ml",
|
||||||
"Moderate": "Modéré",
|
"Moderate": "Modéré",
|
||||||
|
"MON": "lun",
|
||||||
"newCui": "Nouvelle cuisine",
|
"newCui": "Nouvelle cuisine",
|
||||||
"Newest first": "La plus récente d’abord",
|
"Newest first": "La plus récente d’abord",
|
||||||
"newRec": "Nouvelle recette",
|
"newRec": "Nouvelle recette",
|
||||||
|
@ -151,8 +162,10 @@
|
||||||
"noRecs": "Aucune recette ne correspond à votre recette",
|
"noRecs": "Aucune recette ne correspond à votre recette",
|
||||||
"noRecsInL": "Aucune des recettes ici ne correspond à votre recherche",
|
"noRecsInL": "Aucune des recettes ici ne correspond à votre recherche",
|
||||||
"nos": "Notes",
|
"nos": "Notes",
|
||||||
|
"November": "novembre",
|
||||||
"nwCat": "Nouvelle catégorie",
|
"nwCat": "Nouvelle catégorie",
|
||||||
"nwYiU": "Nouvelle unité de portion",
|
"nwYiU": "Nouvelle unité de portion",
|
||||||
|
"October": "octobre",
|
||||||
"OK": "OK",
|
"OK": "OK",
|
||||||
"Oldest first": "La plus ancienne d’abord",
|
"Oldest first": "La plus ancienne d’abord",
|
||||||
"opts": "Options",
|
"opts": "Options",
|
||||||
|
@ -166,7 +179,7 @@
|
||||||
"Piece": "Morceau",
|
"Piece": "Morceau",
|
||||||
"pinch": "pincée",
|
"pinch": "pincée",
|
||||||
"planner": "Planificateur de repas",
|
"planner": "Planificateur de repas",
|
||||||
"plsAdd": "Utilisez le bouton + pour en ajouter une",
|
"plsAdd": "Utilisez le bouton plus pour en ajouter une",
|
||||||
"Portuguese": "portugaise",
|
"Portuguese": "portugaise",
|
||||||
"Poultry": "Volaille",
|
"Poultry": "Volaille",
|
||||||
"Pound": "Livre",
|
"Pound": "Livre",
|
||||||
|
@ -187,7 +200,7 @@
|
||||||
"recs": "recettes",
|
"recs": "recettes",
|
||||||
"recTitle": "Ma recette saine",
|
"recTitle": "Ma recette saine",
|
||||||
"recU": "mise à jour :",
|
"recU": "mise à jour :",
|
||||||
"req": "%s nécessaire",
|
"req": "%s requis(e)",
|
||||||
"resNF": "Recette introuvable",
|
"resNF": "Recette introuvable",
|
||||||
"rest": "Réinitialiser",
|
"rest": "Réinitialiser",
|
||||||
"restCatL": "Réinitialiser la liste des catégories",
|
"restCatL": "Réinitialiser la liste des catégories",
|
||||||
|
@ -210,10 +223,12 @@
|
||||||
"rst": "REDÉMARRER",
|
"rst": "REDÉMARRER",
|
||||||
"Russian": "russe",
|
"Russian": "russe",
|
||||||
"Salads": "Salades",
|
"Salads": "Salades",
|
||||||
|
"SAT": "sam",
|
||||||
"Sauces": "Sauces",
|
"Sauces": "Sauces",
|
||||||
"Scottish": "écossaise",
|
"Scottish": "écossaise",
|
||||||
"Seafood": "Fruits de mer",
|
"Seafood": "Fruits de mer",
|
||||||
"selRec": "Sélectionner une recette",
|
"selRec": "Sélectionner une recette",
|
||||||
|
"September": "septembre",
|
||||||
"ser": "Chercher",
|
"ser": "Chercher",
|
||||||
"Serving": "Portion",
|
"Serving": "Portion",
|
||||||
"SET": "DÉFINIR",
|
"SET": "DÉFINIR",
|
||||||
|
@ -233,8 +248,9 @@
|
||||||
"sru": "Partager la recette en utilisant…",
|
"sru": "Partager la recette en utilisant…",
|
||||||
"stars": "Évaluation étoilée",
|
"stars": "Évaluation étoilée",
|
||||||
"stick": "barre",
|
"stick": "barre",
|
||||||
"stp": "Étape %s",
|
"stp": "Étape",
|
||||||
"strAdd": "Commencez à ajouter vos recettes !",
|
"strAdd": "Commencez à ajouter vos recettes !",
|
||||||
|
"SUN": "dim",
|
||||||
"sVw": "Secouez pour voir une recette au hasard",
|
"sVw": "Secouez pour voir une recette au hasard",
|
||||||
"sVwInfo": "Vous aide à choisir quoi cuisiner quand vous ne pouvez pas vous décider",
|
"sVwInfo": "Vous aide à choisir quoi cuisiner quand vous ne pouvez pas vous décider",
|
||||||
"Swedish": "suédoise",
|
"Swedish": "suédoise",
|
||||||
|
@ -245,16 +261,18 @@
|
||||||
"Teaspoon": "Cuillère à café",
|
"Teaspoon": "Cuillère à café",
|
||||||
"Thai": "thaïlandaise",
|
"Thai": "thaïlandaise",
|
||||||
"Theme": "Thème",
|
"Theme": "Thème",
|
||||||
|
"THU": "jeu",
|
||||||
"title": "Titre",
|
"title": "Titre",
|
||||||
"tLInfo": "Les recettes que vous voulez essayer plus tard sont listées ici",
|
"tLInfo": "Les recettes que vous voulez essayer plus tard sont listées ici",
|
||||||
"today": "aujourd’hui",
|
"today": "aujourd’hui",
|
||||||
"triedInfo": "Vous avez essayé cette recette %s",
|
"triedInfo": "Vous avez essayé cette recette %s",
|
||||||
"trnsl": "Traduire",
|
"trnsl": "Traduire",
|
||||||
"trylater": "À essayer plus tard",
|
"trylater": "Essayer plus tard",
|
||||||
"trySer": "RECHERCHE DANS TOUTES LES RECETTES ?",
|
"trySer": "RECHERCHE DANS TOUTES LES RECETTES ?",
|
||||||
"ts": "Étiquettes",
|
"ts": "Étiquettes",
|
||||||
"tsInfo": "séparez par des espaces",
|
"tsInfo": "séparez par des espaces",
|
||||||
"tsp": "c.à.c",
|
"tsp": "c.à.c",
|
||||||
|
"TUE": "mar",
|
||||||
"Turkish": "turque",
|
"Turkish": "turque",
|
||||||
"Undefined": "Indéfini",
|
"Undefined": "Indéfini",
|
||||||
"unit": "unité",
|
"unit": "unité",
|
||||||
|
@ -265,6 +283,7 @@
|
||||||
"Vegetarian": "Végétarien",
|
"Vegetarian": "Végétarien",
|
||||||
"Vietnamese": "vietnamienne",
|
"Vietnamese": "vietnamienne",
|
||||||
"wAgo": "il y a %s semaines",
|
"wAgo": "il y a %s semaines",
|
||||||
|
"WED": "mer",
|
||||||
"yesterday": "hier",
|
"yesterday": "hier",
|
||||||
"yieldQ": "Quantité de portion",
|
"yieldQ": "Quantité de portion",
|
||||||
"yieldU": "Unité de portion",
|
"yieldU": "Unité de portion",
|
||||||
|
@ -275,6 +294,7 @@
|
||||||
"tmrSnd": "Son de la minuterie",
|
"tmrSnd": "Son de la minuterie",
|
||||||
"aTPrst": "Ajouté aux préréglages",
|
"aTPrst": "Ajouté aux préréglages",
|
||||||
"fwr": "pour quelle recette ?",
|
"fwr": "pour quelle recette ?",
|
||||||
|
"tmrPrsts": "Préréglages de la minuterie",
|
||||||
"prstBtn": "PRÉRÉGLAGES",
|
"prstBtn": "PRÉRÉGLAGES",
|
||||||
"tmr": "Minuterie %s",
|
"tmr": "Minuterie %s",
|
||||||
"stop": "Arrêter",
|
"stop": "Arrêter",
|
||||||
|
@ -288,44 +308,5 @@
|
||||||
"minutes": "minutes",
|
"minutes": "minutes",
|
||||||
"minute": "minute",
|
"minute": "minute",
|
||||||
"dlyDur": "Durée du retard",
|
"dlyDur": "Durée du retard",
|
||||||
"delay": "Retarder",
|
"delay": "Retard"
|
||||||
"notifSetg": "Paramètres de notification",
|
|
||||||
"tmrRm": "Minuterie retirée",
|
|
||||||
"delPrst": "Vous êtes sur le point de supprimer %s des préréglages",
|
|
||||||
"prsts": "Préréglages",
|
|
||||||
"wDBy": "%1$s a été retardée de %2$s",
|
|
||||||
"ttv": "Appuyez pour voir",
|
|
||||||
"dismissAll": "Rejeter toutes les minuteries",
|
|
||||||
"dismiss": "Rejeter",
|
|
||||||
"texp": "%s minuteries ont expiré",
|
|
||||||
"prstTU": "Temps du préréglage mis à jour",
|
|
||||||
"ccwt": "Cuisinez avec confiance avec des minuteries !",
|
|
||||||
"gtD": "Aller à la date",
|
|
||||||
"random": "Aléatoire",
|
|
||||||
"ystr": "Hier",
|
|
||||||
"tmrw": "Demain",
|
|
||||||
"tdy": "Aujourd’hui",
|
|
||||||
"cpy": "copie",
|
|
||||||
"d": "Jour",
|
|
||||||
"wk": "Semaine",
|
|
||||||
"mnth": "Mois",
|
|
||||||
"calVM": "Mode d’affichage du calendrier",
|
|
||||||
"oAP": "%1$s en cours, %2$s en pause",
|
|
||||||
"otaw": "Après une semaine",
|
|
||||||
"otam": "Après un mois",
|
|
||||||
"otay": "Après un an",
|
|
||||||
"admp": "Supprimer automatiquement les planifications de repas",
|
|
||||||
"nvr": "Jamais",
|
|
||||||
"plsCrt": "Utilisez le bouton + pour en créer une",
|
|
||||||
"ehwmp": "Mangez sainement grâce aux planifications de repas !",
|
|
||||||
"selMT": "Sélectionnez le type de repas",
|
|
||||||
"rstBtn": "RÉINITIALISER",
|
|
||||||
"add": "Ajouter",
|
|
||||||
"ksavr": "Garder l’écran allumé durant l’affichage d’une recette",
|
|
||||||
"esgbInfo": "Désactivez cette option si vous avez des problèmes de navigation",
|
|
||||||
"esgb": "Balayer le bord pour revenir en arrière",
|
|
||||||
"ksavrInfo": "Empêche l’écran de s’éteindre durant la visualisation d’une recette",
|
|
||||||
"sectRm": "Section retiré",
|
|
||||||
"addSectBtn": "AJOUTER UNE SECTION",
|
|
||||||
"sect": "Section %s"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,9 @@
|
||||||
"appInfo": "एनरेसिपीज़ एक खुला स्रोत, गोपनीयता-अनुकूल डिजिटल रसोई की किताब है जो आपको अपने व्यंजनों को बनाने, प्रबंधित करने और साझा करने देता है",
|
"appInfo": "एनरेसिपीज़ एक खुला स्रोत, गोपनीयता-अनुकूल डिजिटल रसोई की किताब है जो आपको अपने व्यंजनों को बनाने, प्रबंधित करने और साझा करने देता है",
|
||||||
"apply": "लागू",
|
"apply": "लागू",
|
||||||
"appRst": "एप्लिकेशन पुनरारंभ की आवश्यकता है",
|
"appRst": "एप्लिकेशन पुनरारंभ की आवश्यकता है",
|
||||||
|
"April": "अप्रैल",
|
||||||
"aStpBtn": "निर्देश जोड़ें",
|
"aStpBtn": "निर्देश जोड़ें",
|
||||||
|
"August": "अगस्त",
|
||||||
"Barbecue": "बारबेक्यू",
|
"Barbecue": "बारबेक्यू",
|
||||||
"Beverages": "पेय",
|
"Beverages": "पेय",
|
||||||
"Black": "काला",
|
"Black": "काला",
|
||||||
|
@ -51,6 +53,7 @@
|
||||||
"Dark": "गहरा",
|
"Dark": "गहरा",
|
||||||
"db": "डेटाबेस",
|
"db": "डेटाबेस",
|
||||||
"dBtn": "हटाएँ",
|
"dBtn": "हटाएँ",
|
||||||
|
"December": "दिसंबर",
|
||||||
"delRecInfo": "आप के बारे में स्थायी रूप से नुस्खा %s को नष्ट करने के लिए कर रहे हैं",
|
"delRecInfo": "आप के बारे में स्थायी रूप से नुस्खा %s को नष्ट करने के लिए कर रहे हैं",
|
||||||
"delRecsInfo": "आप %s को स्थायी रूप से हटाने वाले हैं",
|
"delRecsInfo": "आप %s को स्थायी रूप से हटाने वाले हैं",
|
||||||
"Desserts": "डेसर्ट",
|
"Desserts": "डेसर्ट",
|
||||||
|
@ -72,12 +75,14 @@
|
||||||
"expip": "निर्यात प्रगति पर है",
|
"expip": "निर्यात प्रगति पर है",
|
||||||
"expSuc": "निर्यात की सफलता",
|
"expSuc": "निर्यात की सफलता",
|
||||||
"favourites": "पसंदीदा",
|
"favourites": "पसंदीदा",
|
||||||
|
"February": "फ़रवरी",
|
||||||
"Filipino": "filipino",
|
"Filipino": "filipino",
|
||||||
"Filtered recipes": "फ़िल्टर किए गए व्यंजनों",
|
"Filtered recipes": "फ़िल्टर किए गए व्यंजनों",
|
||||||
"fl oz": "द्रव-औंस",
|
"fl oz": "द्रव-औंस",
|
||||||
"fltr": "फ़िल्टर",
|
"fltr": "फ़िल्टर",
|
||||||
"Fluid Ounce": "द्रव-औंस",
|
"Fluid Ounce": "द्रव-औंस",
|
||||||
"French": "फ्रेंच",
|
"French": "फ्रेंच",
|
||||||
|
"FRI": "शुक्र",
|
||||||
"fsList": "आपकी पसंदीदा रेसिपी यहाँ सूचीबद्ध हैं",
|
"fsList": "आपकी पसंदीदा रेसिपी यहाँ सूचीबद्ध हैं",
|
||||||
"g": "ग्राम",
|
"g": "ग्राम",
|
||||||
"gal": "गैलन",
|
"gal": "गैलन",
|
||||||
|
@ -103,12 +108,15 @@
|
||||||
"intf": "इंटरफेस",
|
"intf": "इंटरफेस",
|
||||||
"invFile": "अवैध फाइल",
|
"invFile": "अवैध फाइल",
|
||||||
"Irish": "आयरिश",
|
"Irish": "आयरिश",
|
||||||
"it": "मद %s",
|
"it": "मद",
|
||||||
"Italian": "इतालवी",
|
"Italian": "इतालवी",
|
||||||
"Jamaican": "जमैका",
|
"Jamaican": "जमैका",
|
||||||
|
"January": "जनवरी",
|
||||||
"Japanese": "जापानी",
|
"Japanese": "जापानी",
|
||||||
"Jewish": "यहूदी",
|
"Jewish": "यहूदी",
|
||||||
"joinTG": "टेलीग्राम समूह में शामिल हों",
|
"joinTG": "टेलीग्राम समूह में शामिल हों",
|
||||||
|
"July": "जुलाई",
|
||||||
|
"June": "जून",
|
||||||
"kEdit": "संपादन रखें",
|
"kEdit": "संपादन रखें",
|
||||||
"Kenyan": "केन्याई",
|
"Kenyan": "केन्याई",
|
||||||
"kg": "किलोग्राम",
|
"kg": "किलोग्राम",
|
||||||
|
@ -128,6 +136,8 @@
|
||||||
"lunch": "दोपहर का भोजन",
|
"lunch": "दोपहर का भोजन",
|
||||||
"mAgo": "%s महीने पहले",
|
"mAgo": "%s महीने पहले",
|
||||||
"Main dishes": "मुख्य व्यंजन",
|
"Main dishes": "मुख्य व्यंजन",
|
||||||
|
"March": "जुलूस",
|
||||||
|
"May": "मई",
|
||||||
"Meat": "मांस",
|
"Meat": "मांस",
|
||||||
"medium": "मध्यम",
|
"medium": "मध्यम",
|
||||||
"Mexican": "मैक्सिकन",
|
"Mexican": "मैक्सिकन",
|
||||||
|
@ -137,6 +147,7 @@
|
||||||
"minimal": "कम से कम",
|
"minimal": "कम से कम",
|
||||||
"ml": "मिली लीटर",
|
"ml": "मिली लीटर",
|
||||||
"Moderate": "उदारवादी",
|
"Moderate": "उदारवादी",
|
||||||
|
"MON": "सोम",
|
||||||
"newCui": "नए भोजन",
|
"newCui": "नए भोजन",
|
||||||
"Newest first": "नवीनतम पहले",
|
"Newest first": "नवीनतम पहले",
|
||||||
"newRec": "नई रेसिपी",
|
"newRec": "नई रेसिपी",
|
||||||
|
@ -151,8 +162,10 @@
|
||||||
"noRecs": "कोई भी रेसिपी आपकी खोज से मेल नहीं खाती",
|
"noRecs": "कोई भी रेसिपी आपकी खोज से मेल नहीं खाती",
|
||||||
"noRecsInL": "यहां कोई भी रेसिपी आपकी खोज से मेल नहीं खाती है",
|
"noRecsInL": "यहां कोई भी रेसिपी आपकी खोज से मेल नहीं खाती है",
|
||||||
"nos": "नोट्स",
|
"nos": "नोट्स",
|
||||||
|
"November": "नवंबर",
|
||||||
"nwCat": "नई श्रेणी",
|
"nwCat": "नई श्रेणी",
|
||||||
"nwYiU": "नई उपज इकाई",
|
"nwYiU": "नई उपज इकाई",
|
||||||
|
"October": "अक्टूबर",
|
||||||
"OK": "ठीक है",
|
"OK": "ठीक है",
|
||||||
"Oldest first": "सबसे पुराना पहले",
|
"Oldest first": "सबसे पुराना पहले",
|
||||||
"opts": "विकल्प",
|
"opts": "विकल्प",
|
||||||
|
@ -166,7 +179,7 @@
|
||||||
"Piece": "टुकड़ा",
|
"Piece": "टुकड़ा",
|
||||||
"pinch": "chutakee",
|
"pinch": "chutakee",
|
||||||
"planner": "भोजन नियोजक",
|
"planner": "भोजन नियोजक",
|
||||||
"plsAdd": "एक जोड़ने के लिए + बटन का प्रयोग करें",
|
"plsAdd": "एक जोड़ने के लिए प्लस बटन का उपयोग करें",
|
||||||
"Portuguese": "पुर्तगाली",
|
"Portuguese": "पुर्तगाली",
|
||||||
"Poultry": "मुर्गी पालन",
|
"Poultry": "मुर्गी पालन",
|
||||||
"Pound": "पौंड",
|
"Pound": "पौंड",
|
||||||
|
@ -210,10 +223,12 @@
|
||||||
"rst": "पुनरारंभ",
|
"rst": "पुनरारंभ",
|
||||||
"Russian": "रूसी",
|
"Russian": "रूसी",
|
||||||
"Salads": "सलाद",
|
"Salads": "सलाद",
|
||||||
|
"SAT": "शनि",
|
||||||
"Sauces": "सॉस",
|
"Sauces": "सॉस",
|
||||||
"Scottish": "स्कॉटिश",
|
"Scottish": "स्कॉटिश",
|
||||||
"Seafood": "समुद्री भोजन",
|
"Seafood": "समुद्री भोजन",
|
||||||
"selRec": "नुस्खा चुनें",
|
"selRec": "नुस्खा चुनें",
|
||||||
|
"September": "सितंबर",
|
||||||
"ser": "खोज",
|
"ser": "खोज",
|
||||||
"Serving": "सर्विंग",
|
"Serving": "सर्विंग",
|
||||||
"SET": "सेट",
|
"SET": "सेट",
|
||||||
|
@ -233,8 +248,9 @@
|
||||||
"sru": "शेयर रेसिपी...",
|
"sru": "शेयर रेसिपी...",
|
||||||
"stars": "स्टार रेटिंग",
|
"stars": "स्टार रेटिंग",
|
||||||
"stick": "लाठी",
|
"stick": "लाठी",
|
||||||
"stp": "कदम %s",
|
"stp": "कदम",
|
||||||
"strAdd": "अपने व्यंजनों को जोड़ना शुरू करें!",
|
"strAdd": "अपने व्यंजनों को जोड़ना शुरू करें!",
|
||||||
|
"SUN": "रवि",
|
||||||
"sVw": "यादृच्छिक नुस्खा देखने के लिए हिलाएं",
|
"sVw": "यादृच्छिक नुस्खा देखने के लिए हिलाएं",
|
||||||
"sVwInfo": "जब आप तय नहीं कर सकते तो आपको क्या खाना बनाना है, यह चुनने में मदद करता है",
|
"sVwInfo": "जब आप तय नहीं कर सकते तो आपको क्या खाना बनाना है, यह चुनने में मदद करता है",
|
||||||
"Swedish": "स्वीडिश",
|
"Swedish": "स्वीडिश",
|
||||||
|
@ -245,6 +261,7 @@
|
||||||
"Teaspoon": "छोटी चम्मच",
|
"Teaspoon": "छोटी चम्मच",
|
||||||
"Thai": "थाई",
|
"Thai": "थाई",
|
||||||
"Theme": "थीम",
|
"Theme": "थीम",
|
||||||
|
"THU": "गुरु",
|
||||||
"title": "शीर्षक",
|
"title": "शीर्षक",
|
||||||
"tLInfo": "जिन व्यंजनों को आप बाद में आज़माना चाहते हैं, वे यहाँ सूचीबद्ध हैं",
|
"tLInfo": "जिन व्यंजनों को आप बाद में आज़माना चाहते हैं, वे यहाँ सूचीबद्ध हैं",
|
||||||
"today": "आज",
|
"today": "आज",
|
||||||
|
@ -255,6 +272,7 @@
|
||||||
"ts": "टैग",
|
"ts": "टैग",
|
||||||
"tsInfo": "रिक्त स्थान के साथ अलग",
|
"tsInfo": "रिक्त स्थान के साथ अलग",
|
||||||
"tsp": "छोटी चम्मच",
|
"tsp": "छोटी चम्मच",
|
||||||
|
"TUE": "मंगल",
|
||||||
"Turkish": "तुर्की",
|
"Turkish": "तुर्की",
|
||||||
"Undefined": "अपरिभाषित",
|
"Undefined": "अपरिभाषित",
|
||||||
"unit": "इकाई",
|
"unit": "इकाई",
|
||||||
|
@ -265,67 +283,11 @@
|
||||||
"Vegetarian": "शाकाहारी",
|
"Vegetarian": "शाकाहारी",
|
||||||
"Vietnamese": "वियतनामी",
|
"Vietnamese": "वियतनामी",
|
||||||
"wAgo": "%s हफ्ते पहले",
|
"wAgo": "%s हफ्ते पहले",
|
||||||
|
"WED": "बुध",
|
||||||
"yesterday": "कल",
|
"yesterday": "कल",
|
||||||
"yieldQ": "उपज की मात्रा",
|
"yieldQ": "उपज की मात्रा",
|
||||||
"yieldU": "उपज इकाई",
|
"yieldU": "उपज इकाई",
|
||||||
"yld": "मान जाना",
|
"yld": "मान जाना",
|
||||||
"buto": "%s में बैकअप लिया गया",
|
"buto": "%s में बैकअप लिया गया",
|
||||||
"sysDefB": "प्रणालीगत चूक + काला",
|
"sysDefB": "प्रणालीगत चूक + काला"
|
||||||
"fwr": "किस विधि के लिए?",
|
|
||||||
"seconds": "सेकंड",
|
|
||||||
"hours": "घंटे",
|
|
||||||
"hour": "घंटा",
|
|
||||||
"minutes": "मिनटो",
|
|
||||||
"minute": "मिनट",
|
|
||||||
"dlyDur": "विलंब अवधि",
|
|
||||||
"tmrvbrt": "टाइमर वाइब्रेट",
|
|
||||||
"tmrSnd": "टाइमर की आवाज़",
|
|
||||||
"aTPrst": "प्रीसेट में जोड़ा गया",
|
|
||||||
"prstBtn": "प्रीसेट",
|
|
||||||
"tmr": "टाइमर %s",
|
|
||||||
"delay": "देरी",
|
|
||||||
"stop": "रुकें",
|
|
||||||
"strtBtn": "शुरू",
|
|
||||||
"ntmr": "नया टाइमर",
|
|
||||||
"timer": "कुकिंग टाइमर",
|
|
||||||
"sec": "सेकंड",
|
|
||||||
"notifSetg": "अधिसूचना सेटिंग्स",
|
|
||||||
"tmrRm": "टाइमर हटा दिया गया",
|
|
||||||
"prsts": "प्रीसेट",
|
|
||||||
"delPrst": "आप प्रीसेट से %s मिटाने वाले हैं",
|
|
||||||
"ystr": "कल",
|
|
||||||
"tmrw": "कल",
|
|
||||||
"tdy": "आज",
|
|
||||||
"cpy": "कॉपी",
|
|
||||||
"calVM": "कैलेंडर दृश्य मोड",
|
|
||||||
"oAP": "%1$s चल रहा है, %2$s रुका हुआ है",
|
|
||||||
"ttv": "देखने के लिए टैप करें",
|
|
||||||
"dismissAll": "सभी टाइमर्स खारिज करें",
|
|
||||||
"dismiss": "खारिज",
|
|
||||||
"texp": "%s टाइमर समाप्त हो गए",
|
|
||||||
"wDBy": "%1$s वा %2$s की देरी से",
|
|
||||||
"prstTU": "प्रीसेट समय अपडेट किया गया",
|
|
||||||
"ccwt": "टाइमर्स के साथ आत्मविश्वास से पकाएं!",
|
|
||||||
"gtD": "डेट पर जाएं",
|
|
||||||
"random": "बेतरतीब",
|
|
||||||
"esgbInfo": "यदि आपके पास नेविगेशन समस्याएं हैं तो इसे अक्षम करें",
|
|
||||||
"esgb": "वापस जाने के लिए किनारे से स्वाइप करें",
|
|
||||||
"ksavrInfo": "नुस्खा देखते समय स्क्रीन को बंद होने से रोकता है",
|
|
||||||
"ksavr": "रेसिपी देखते समय स्क्रीन को चालू रखें",
|
|
||||||
"rstBtn": "रीसेट",
|
|
||||||
"add": "जोड़ना",
|
|
||||||
"nvr": "कभी नहीँ",
|
|
||||||
"otaw": "एक सप्ताह से अधिक पुराना",
|
|
||||||
"otam": "एक महीने से अधिक पुराना",
|
|
||||||
"otay": "एक वर्ष से अधिक पुराना",
|
|
||||||
"admp": "भोजन योजनाओं को स्वतः हटाएं",
|
|
||||||
"plsCrt": "एक बनाने के लिए + बटन का प्रयोग करें",
|
|
||||||
"ehwmp": "भोजन योजना के साथ स्वस्थ खाओ!",
|
|
||||||
"selMT": "भोजन का प्रकार चुनें",
|
|
||||||
"d": "दिन",
|
|
||||||
"wk": "सप्ताह",
|
|
||||||
"mnth": "महीना",
|
|
||||||
"sectRm": "धारा हटा दिया गया",
|
|
||||||
"addSectBtn": "धारा जोड़ें",
|
|
||||||
"sect": "भाग %s"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,9 @@
|
||||||
"appInfo": "EnRecipes adalah buku resep digital sumber terbuka, ramah privasi yang memungkinkan anda untuk membuat, mengatur dan berbagi resep",
|
"appInfo": "EnRecipes adalah buku resep digital sumber terbuka, ramah privasi yang memungkinkan anda untuk membuat, mengatur dan berbagi resep",
|
||||||
"apply": "MENERAPKAN",
|
"apply": "MENERAPKAN",
|
||||||
"appRst": "Aplikasi perlu dimulai ulang",
|
"appRst": "Aplikasi perlu dimulai ulang",
|
||||||
|
"April": "April",
|
||||||
"aStpBtn": "TAMBAH LANGKAH",
|
"aStpBtn": "TAMBAH LANGKAH",
|
||||||
|
"August": "Agustus",
|
||||||
"Barbecue": "barbekyu",
|
"Barbecue": "barbekyu",
|
||||||
"Beverages": "Minuman",
|
"Beverages": "Minuman",
|
||||||
"Black": "Hitam",
|
"Black": "Hitam",
|
||||||
|
@ -51,6 +53,7 @@
|
||||||
"Dark": "Gelap",
|
"Dark": "Gelap",
|
||||||
"db": "Basisdata",
|
"db": "Basisdata",
|
||||||
"dBtn": "HAPUS",
|
"dBtn": "HAPUS",
|
||||||
|
"December": "Desember",
|
||||||
"delRecInfo": "Anda akan menghapus resep %s secara permanen",
|
"delRecInfo": "Anda akan menghapus resep %s secara permanen",
|
||||||
"delRecsInfo": "Anda akan menghapus %s secara permanen",
|
"delRecsInfo": "Anda akan menghapus %s secara permanen",
|
||||||
"Desserts": "Makanan pencuci mulut",
|
"Desserts": "Makanan pencuci mulut",
|
||||||
|
@ -72,12 +75,14 @@
|
||||||
"expip": "Ekspor sedang berlangsung",
|
"expip": "Ekspor sedang berlangsung",
|
||||||
"expSuc": "Ekspor berhasil",
|
"expSuc": "Ekspor berhasil",
|
||||||
"favourites": "Favorit",
|
"favourites": "Favorit",
|
||||||
|
"February": "Februari",
|
||||||
"Filipino": "Filipina",
|
"Filipino": "Filipina",
|
||||||
"Filtered recipes": "Resep yang difilter",
|
"Filtered recipes": "Resep yang difilter",
|
||||||
"fl oz": "fl oz",
|
"fl oz": "fl oz",
|
||||||
"fltr": "Saring",
|
"fltr": "Saring",
|
||||||
"Fluid Ounce": "Ons Cairan",
|
"Fluid Ounce": "Ons Cairan",
|
||||||
"French": "Perancis",
|
"French": "Perancis",
|
||||||
|
"FRI": "JUM",
|
||||||
"fsList": "Resep favorit Anda tercantum di sini",
|
"fsList": "Resep favorit Anda tercantum di sini",
|
||||||
"g": "g",
|
"g": "g",
|
||||||
"gal": "gal",
|
"gal": "gal",
|
||||||
|
@ -106,9 +111,12 @@
|
||||||
"it": "Item",
|
"it": "Item",
|
||||||
"Italian": "Italia",
|
"Italian": "Italia",
|
||||||
"Jamaican": "Jamaika",
|
"Jamaican": "Jamaika",
|
||||||
|
"January": "Januari",
|
||||||
"Japanese": "Jepang",
|
"Japanese": "Jepang",
|
||||||
"Jewish": "Yahudi",
|
"Jewish": "Yahudi",
|
||||||
"joinTG": "Gabung grup Telegram",
|
"joinTG": "Gabung grup Telegram",
|
||||||
|
"July": "Juli",
|
||||||
|
"June": "Juni",
|
||||||
"kEdit": "TETAP MENYUNTING",
|
"kEdit": "TETAP MENYUNTING",
|
||||||
"Kenyan": "Kenya",
|
"Kenyan": "Kenya",
|
||||||
"kg": "kg",
|
"kg": "kg",
|
||||||
|
@ -128,6 +136,8 @@
|
||||||
"lunch": "Makan siang",
|
"lunch": "Makan siang",
|
||||||
"mAgo": "%s bulan yang lalu",
|
"mAgo": "%s bulan yang lalu",
|
||||||
"Main dishes": "Hidangan utama",
|
"Main dishes": "Hidangan utama",
|
||||||
|
"March": "Maret",
|
||||||
|
"May": "Mei",
|
||||||
"Meat": "Daging",
|
"Meat": "Daging",
|
||||||
"medium": "sedang",
|
"medium": "sedang",
|
||||||
"Mexican": "Meksiko",
|
"Mexican": "Meksiko",
|
||||||
|
@ -137,6 +147,7 @@
|
||||||
"minimal": "paling sedikit",
|
"minimal": "paling sedikit",
|
||||||
"ml": "ml",
|
"ml": "ml",
|
||||||
"Moderate": "Sedang",
|
"Moderate": "Sedang",
|
||||||
|
"MON": "SEN",
|
||||||
"newCui": "Hidangan baru",
|
"newCui": "Hidangan baru",
|
||||||
"Newest first": "Yang terbaru",
|
"Newest first": "Yang terbaru",
|
||||||
"newRec": "Resep baru",
|
"newRec": "Resep baru",
|
||||||
|
@ -151,8 +162,10 @@
|
||||||
"noRecs": "Tidak ada resep yang cocok dengan pencarian anda",
|
"noRecs": "Tidak ada resep yang cocok dengan pencarian anda",
|
||||||
"noRecsInL": "Tidak ada resep di sini yang cocok dengan pencarian Anda",
|
"noRecsInL": "Tidak ada resep di sini yang cocok dengan pencarian Anda",
|
||||||
"nos": "Catatan-catatan",
|
"nos": "Catatan-catatan",
|
||||||
|
"November": "November",
|
||||||
"nwCat": "Kategori baru",
|
"nwCat": "Kategori baru",
|
||||||
"nwYiU": "Satuan hasil baru",
|
"nwYiU": "Satuan hasil baru",
|
||||||
|
"October": "Oktober",
|
||||||
"OK": "Baik",
|
"OK": "Baik",
|
||||||
"Oldest first": "Yang terlama",
|
"Oldest first": "Yang terlama",
|
||||||
"opts": "Pilihan",
|
"opts": "Pilihan",
|
||||||
|
@ -210,10 +223,12 @@
|
||||||
"rst": "Mulai ulang",
|
"rst": "Mulai ulang",
|
||||||
"Russian": "Russia",
|
"Russian": "Russia",
|
||||||
"Salads": "Salad",
|
"Salads": "Salad",
|
||||||
|
"SAT": "SAB",
|
||||||
"Sauces": "Saus",
|
"Sauces": "Saus",
|
||||||
"Scottish": "Skotlandia",
|
"Scottish": "Skotlandia",
|
||||||
"Seafood": "Hidangan laut",
|
"Seafood": "Hidangan laut",
|
||||||
"selRec": "Pilih resep",
|
"selRec": "Pilih resep",
|
||||||
|
"September": "September",
|
||||||
"ser": "Cari",
|
"ser": "Cari",
|
||||||
"Serving": "Penyajian",
|
"Serving": "Penyajian",
|
||||||
"SET": "ATUR",
|
"SET": "ATUR",
|
||||||
|
@ -235,6 +250,7 @@
|
||||||
"stick": "batang",
|
"stick": "batang",
|
||||||
"stp": "Langkah",
|
"stp": "Langkah",
|
||||||
"strAdd": "Mulai tambahkan resep Anda!",
|
"strAdd": "Mulai tambahkan resep Anda!",
|
||||||
|
"SUN": "MIN",
|
||||||
"sVw": "Kocok untuk melihat resep acak",
|
"sVw": "Kocok untuk melihat resep acak",
|
||||||
"sVwInfo": "Membantu anda untuk memilih apa yang dimasak ketika anda tidak bisa menentukan",
|
"sVwInfo": "Membantu anda untuk memilih apa yang dimasak ketika anda tidak bisa menentukan",
|
||||||
"Swedish": "Swedia",
|
"Swedish": "Swedia",
|
||||||
|
@ -245,6 +261,7 @@
|
||||||
"Teaspoon": "Sendok teh",
|
"Teaspoon": "Sendok teh",
|
||||||
"Thai": "Thailand",
|
"Thai": "Thailand",
|
||||||
"Theme": "Tema",
|
"Theme": "Tema",
|
||||||
|
"THU": "KAM",
|
||||||
"title": "Judul",
|
"title": "Judul",
|
||||||
"tLInfo": "Resep yang ingin Anda coba nanti tercantum di sini",
|
"tLInfo": "Resep yang ingin Anda coba nanti tercantum di sini",
|
||||||
"today": "hari ini",
|
"today": "hari ini",
|
||||||
|
@ -255,42 +272,23 @@
|
||||||
"ts": "Tag",
|
"ts": "Tag",
|
||||||
"tsInfo": "pisahkan dengan spasi",
|
"tsInfo": "pisahkan dengan spasi",
|
||||||
"tsp": "sdt",
|
"tsp": "sdt",
|
||||||
|
"TUE": "SEL",
|
||||||
"Turkish": "Turki",
|
"Turkish": "Turki",
|
||||||
"Undefined": "Belum terdefinisi",
|
"Undefined": "Belum terdefinisi",
|
||||||
"unit": "Satuan",
|
"unit": "Satuan",
|
||||||
"Unit": "Satuan",
|
"Unit": "Satuan",
|
||||||
"unsaved": "Perubahan yang belum disimpan",
|
"unsaved": "Perubahan yang belum disimpan",
|
||||||
"untRec": "Resep tanpa judul",
|
"untRec": "Resep tanpa judul",
|
||||||
"Vegan": "vegan",
|
"Vegan": "Vegan",
|
||||||
"Vegetarian": "vegetarian",
|
"Vegetarian": "Vegetarian",
|
||||||
"Vietnamese": "Vietnam",
|
"Vietnamese": "Vietnam",
|
||||||
"wAgo": "%s minggu yang lalu",
|
"wAgo": "%s minggu yang lalu",
|
||||||
|
"WED": "RAB",
|
||||||
"yesterday": "kemarin",
|
"yesterday": "kemarin",
|
||||||
"yieldQ": "Kuantitas hasil",
|
"yieldQ": "Kuantitas hasil",
|
||||||
"yieldU": "Satuan hasil",
|
"yieldU": "Satuan hasil",
|
||||||
"yld": "Menghasilkan",
|
"yld": "Menghasilkan",
|
||||||
"buto": "Didukung ke %s",
|
"buto": "Didukung ke %s",
|
||||||
"sysDefB": "Default sistem + Hitam",
|
"sysDefB": "Default sistem + Hitam",
|
||||||
"sec": "s",
|
"sec": "s"
|
||||||
"strtBtn": "MULAI",
|
|
||||||
"ntmr": "Timer baru",
|
|
||||||
"timer": "Timer Memasak",
|
|
||||||
"seconds": "detik",
|
|
||||||
"hours": "jam",
|
|
||||||
"hour": "jam",
|
|
||||||
"minutes": "menit",
|
|
||||||
"minute": "menit",
|
|
||||||
"dlyDur": "Durasi penundaan",
|
|
||||||
"tmrvbrt": "Timer bergetar",
|
|
||||||
"tmrSnd": "Suara timer",
|
|
||||||
"aTPrst": "Ditambahkan ke preset",
|
|
||||||
"fwr": "untuk resep yang mana?",
|
|
||||||
"prstBtn": "PRESET",
|
|
||||||
"tmr": "Timer %s",
|
|
||||||
"delay": "Menunda",
|
|
||||||
"stop": "Berhenti",
|
|
||||||
"prsts": "Preset",
|
|
||||||
"delPrst": "Anda akan menghapus %s dari presets",
|
|
||||||
"tmrRm": "Timer dihapus",
|
|
||||||
"notifSetg": "Pengaturan notifikasi"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,8 +17,10 @@
|
||||||
"Appetizers": "Antipasti",
|
"Appetizers": "Antipasti",
|
||||||
"appInfo": "EnRecipes è un ricettario digitale a codice aperto e rispettoso della riservatezza che ti consente di creare, gestire e condividere le tue ricette",
|
"appInfo": "EnRecipes è un ricettario digitale a codice aperto e rispettoso della riservatezza che ti consente di creare, gestire e condividere le tue ricette",
|
||||||
"apply": "APPLICA",
|
"apply": "APPLICA",
|
||||||
"appRst": "Riavvio dell’app necessario",
|
"appRst": "Riavvio dell'app necessario",
|
||||||
|
"April": "aprile",
|
||||||
"aStpBtn": "AGGIUNGI UN PASSO",
|
"aStpBtn": "AGGIUNGI UN PASSO",
|
||||||
|
"August": "agosto",
|
||||||
"Barbecue": "Grigliata",
|
"Barbecue": "Grigliata",
|
||||||
"Beverages": "Bevande",
|
"Beverages": "Bevande",
|
||||||
"Black": "Nero",
|
"Black": "Nero",
|
||||||
|
@ -51,6 +53,7 @@
|
||||||
"Dark": "Scuro",
|
"Dark": "Scuro",
|
||||||
"db": "Banca dati",
|
"db": "Banca dati",
|
||||||
"dBtn": "ELIMINA",
|
"dBtn": "ELIMINA",
|
||||||
|
"December": "dicembre",
|
||||||
"delRecInfo": "Stai per eliminare definitivamente la ricetta %s",
|
"delRecInfo": "Stai per eliminare definitivamente la ricetta %s",
|
||||||
"delRecsInfo": "Stai per eliminare definitivamente %s",
|
"delRecsInfo": "Stai per eliminare definitivamente %s",
|
||||||
"Desserts": "Dolci",
|
"Desserts": "Dolci",
|
||||||
|
@ -72,12 +75,14 @@
|
||||||
"expip": "Esportazione in corso",
|
"expip": "Esportazione in corso",
|
||||||
"expSuc": "Exportation réussie",
|
"expSuc": "Exportation réussie",
|
||||||
"favourites": "Preferiti",
|
"favourites": "Preferiti",
|
||||||
|
"February": "febbraio",
|
||||||
"Filipino": "filippina",
|
"Filipino": "filippina",
|
||||||
"Filtered recipes": "Ricette filtrate",
|
"Filtered recipes": "Ricette filtrate",
|
||||||
"fl oz": "fl oz",
|
"fl oz": "fl oz",
|
||||||
"fltr": "Filtro",
|
"fltr": "Filtro",
|
||||||
"Fluid Ounce": "Oncia liquida",
|
"Fluid Ounce": "Oncia liquida",
|
||||||
"French": "francese",
|
"French": "francese",
|
||||||
|
"FRI": "ven",
|
||||||
"fsList": "Le tue ricette preferite sono elencate qui",
|
"fsList": "Le tue ricette preferite sono elencate qui",
|
||||||
"g": "g",
|
"g": "g",
|
||||||
"gal": "gal",
|
"gal": "gal",
|
||||||
|
@ -106,9 +111,12 @@
|
||||||
"it": "Voce",
|
"it": "Voce",
|
||||||
"Italian": "italiana",
|
"Italian": "italiana",
|
||||||
"Jamaican": "giamaicana",
|
"Jamaican": "giamaicana",
|
||||||
|
"January": "gennaio",
|
||||||
"Japanese": "giapponese",
|
"Japanese": "giapponese",
|
||||||
"Jewish": "ebraica",
|
"Jewish": "ebraica",
|
||||||
"joinTG": "Unisciti al gruppo Telegram",
|
"joinTG": "Unisciti al gruppo Telegram",
|
||||||
|
"July": "luglio",
|
||||||
|
"June": "giugno",
|
||||||
"kEdit": "CONTINUA A MODIFICARE",
|
"kEdit": "CONTINUA A MODIFICARE",
|
||||||
"Kenyan": "keniota",
|
"Kenyan": "keniota",
|
||||||
"kg": "kg",
|
"kg": "kg",
|
||||||
|
@ -128,6 +136,8 @@
|
||||||
"lunch": "Pranzo",
|
"lunch": "Pranzo",
|
||||||
"mAgo": "%s mesi fa",
|
"mAgo": "%s mesi fa",
|
||||||
"Main dishes": "Piatti principali",
|
"Main dishes": "Piatti principali",
|
||||||
|
"March": "marzo",
|
||||||
|
"May": "maggio",
|
||||||
"Meat": "Carne",
|
"Meat": "Carne",
|
||||||
"medium": "medio",
|
"medium": "medio",
|
||||||
"Mexican": "messicana",
|
"Mexican": "messicana",
|
||||||
|
@ -137,6 +147,7 @@
|
||||||
"minimal": "Minima",
|
"minimal": "Minima",
|
||||||
"ml": "ml",
|
"ml": "ml",
|
||||||
"Moderate": "Moderato",
|
"Moderate": "Moderato",
|
||||||
|
"MON": "lun",
|
||||||
"newCui": "Nuova cucina",
|
"newCui": "Nuova cucina",
|
||||||
"Newest first": "Prima la più ricente",
|
"Newest first": "Prima la più ricente",
|
||||||
"newRec": "Nuova ricetta",
|
"newRec": "Nuova ricetta",
|
||||||
|
@ -151,8 +162,10 @@
|
||||||
"noRecs": "Nessuna ricetta corrisponde alla tua ricerca",
|
"noRecs": "Nessuna ricetta corrisponde alla tua ricerca",
|
||||||
"noRecsInL": "Nessuna delle ricette qui corrisponde alla tua ricerca",
|
"noRecsInL": "Nessuna delle ricette qui corrisponde alla tua ricerca",
|
||||||
"nos": "Note",
|
"nos": "Note",
|
||||||
|
"November": "novembre",
|
||||||
"nwCat": "Nuova categoria",
|
"nwCat": "Nuova categoria",
|
||||||
"nwYiU": "Nuova unità di resa",
|
"nwYiU": "Nuova unità di resa",
|
||||||
|
"October": "ottobre",
|
||||||
"OK": "OK",
|
"OK": "OK",
|
||||||
"Oldest first": "Prima la più vecchia",
|
"Oldest first": "Prima la più vecchia",
|
||||||
"opts": "Opzioni",
|
"opts": "Opzioni",
|
||||||
|
@ -166,7 +179,7 @@
|
||||||
"Piece": "Pezzo",
|
"Piece": "Pezzo",
|
||||||
"pinch": "pizzico",
|
"pinch": "pizzico",
|
||||||
"planner": "Pianificatore di pasti",
|
"planner": "Pianificatore di pasti",
|
||||||
"plsAdd": "Usa il pulsante + per aggiungerne uno",
|
"plsAdd": "Usa il pulsante più per aggiungerne uno",
|
||||||
"Portuguese": "portoghese",
|
"Portuguese": "portoghese",
|
||||||
"Poultry": "Pollame",
|
"Poultry": "Pollame",
|
||||||
"Pound": "Libbra",
|
"Pound": "Libbra",
|
||||||
|
@ -187,33 +200,35 @@
|
||||||
"recs": "ricette",
|
"recs": "ricette",
|
||||||
"recTitle": "La mia ricetta sana",
|
"recTitle": "La mia ricetta sana",
|
||||||
"recU": "Aggiornate:",
|
"recU": "Aggiornate:",
|
||||||
"req": "%s necessario",
|
"req": "%s richiesto",
|
||||||
"resNF": "Ricetta non trovata",
|
"resNF": "Ricetta non trovata",
|
||||||
"rest": "Ripristina",
|
"rest": "Ripristina",
|
||||||
"restCatL": "Reimposta l’elenco delle categorie",
|
"restCatL": "Reimposta l'elenco delle categorie",
|
||||||
"restCuiL": "Reimposta l’elenco cucina",
|
"restCuiL": "Reimposta l'elenco cucina",
|
||||||
"restDone": "Reimpostazione eseguito",
|
"restDone": "Reimpostazione eseguito",
|
||||||
"restInfo": "Il ripristino di un elenco eliminerà le voci create dall’utente e ripristinerà le voci predefinite. Le ricette esistenti non saranno interessate.",
|
"restInfo": "Il ripristino di un elenco eliminerà le voci create dall'utente e ripristinerà le voci predefinite. Le ricette esistenti non saranno interessate.",
|
||||||
"restUL": "Reimposta l’elenco delle unità",
|
"restUL": "Reimposta l'elenco delle unità",
|
||||||
"restYUL": "Reimposta l’elenco delle unità di resa",
|
"restYUL": "Reimposta l'elenco delle unità di resa",
|
||||||
"Rice": "Riso",
|
"Rice": "Riso",
|
||||||
"rmCatInfo": "Stai per rimuovere %s dall’elenco delle categorie",
|
"rmCatInfo": "Stai per rimuovere %s dall'elenco delle categorie",
|
||||||
"rmCmb": "Combinazione rimossa",
|
"rmCmb": "Combinazione rimossa",
|
||||||
"rmCuiInfo": "Stai per rimuovere %s dall’elenco della cucina",
|
"rmCuiInfo": "Stai per rimuovere %s dall'elenco della cucina",
|
||||||
"rmIng": "Ingrediente rimosso",
|
"rmIng": "Ingrediente rimosso",
|
||||||
"rmIns": "Istruzione rimossa",
|
"rmIns": "Istruzione rimossa",
|
||||||
"rmN": "Nota rimossa",
|
"rmN": "Nota rimossa",
|
||||||
"rmUInfo": "Stai per rimuovere %s dall’elenco delle unità",
|
"rmUInfo": "Stai per rimuovere %s dall'elenco delle unità",
|
||||||
"rmYUInfo": "Stai per rimuovere %s dall’elenco delle unità di rendimento",
|
"rmYUInfo": "Stai per rimuovere %s dall'elenco delle unità di rendimento",
|
||||||
"Roll": "Rotolo",
|
"Roll": "Rotolo",
|
||||||
"rp": "Rimuovi la foto",
|
"rp": "Rimuovi la foto",
|
||||||
"rst": "RIAVVIA",
|
"rst": "RIAVVIA",
|
||||||
"Russian": "russa",
|
"Russian": "russa",
|
||||||
"Salads": "Insalate",
|
"Salads": "Insalate",
|
||||||
|
"SAT": "sab",
|
||||||
"Sauces": "Salse",
|
"Sauces": "Salse",
|
||||||
"Scottish": "scozzese",
|
"Scottish": "scozzese",
|
||||||
"Seafood": "Frutti di mare",
|
"Seafood": "Frutti di mare",
|
||||||
"selRec": "Seleziona una ricetta",
|
"selRec": "Seleziona una ricetta",
|
||||||
|
"September": "settembre",
|
||||||
"ser": "Cerca",
|
"ser": "Cerca",
|
||||||
"Serving": "Porzione",
|
"Serving": "Porzione",
|
||||||
"SET": "IMPOSTA",
|
"SET": "IMPOSTA",
|
||||||
|
@ -235,6 +250,7 @@
|
||||||
"stick": "bastone",
|
"stick": "bastone",
|
||||||
"stp": "Passo",
|
"stp": "Passo",
|
||||||
"strAdd": "Inizia ad aggiungere le tue ricette!",
|
"strAdd": "Inizia ad aggiungere le tue ricette!",
|
||||||
|
"SUN": "dom",
|
||||||
"sVw": "Scuoti per visualizzare una ricetta casuale",
|
"sVw": "Scuoti per visualizzare una ricetta casuale",
|
||||||
"sVwInfo": "Ti aiuta a scegliere cosa cucinare quando non puoi decidere",
|
"sVwInfo": "Ti aiuta a scegliere cosa cucinare quando non puoi decidere",
|
||||||
"Swedish": "svedese",
|
"Swedish": "svedese",
|
||||||
|
@ -245,16 +261,18 @@
|
||||||
"Teaspoon": "Cucchiaino",
|
"Teaspoon": "Cucchiaino",
|
||||||
"Thai": "tailandese",
|
"Thai": "tailandese",
|
||||||
"Theme": "Tema",
|
"Theme": "Tema",
|
||||||
|
"THU": "gio",
|
||||||
"title": "Titolo",
|
"title": "Titolo",
|
||||||
"tLInfo": "Le ricette che vuoi provare in seguito sono elencate qui",
|
"tLInfo": "Le ricette che vuoi provare in seguito sono elencate qui",
|
||||||
"today": "oggi",
|
"today": "oggi",
|
||||||
"triedInfo": "Hai provato questa ricetta %s",
|
"triedInfo": "Hai provato questa ricetta %s",
|
||||||
"trnsl": "Traduci",
|
"trnsl": "Traduci",
|
||||||
"trylater": "Da provare più tardi",
|
"trylater": "Prova più tardi",
|
||||||
"trySer": "CERCARE IN TUTTE LE RICETTE?",
|
"trySer": "CERCARE IN TUTTE LE RICETTE?",
|
||||||
"ts": "Etichette",
|
"ts": "Etichette",
|
||||||
"tsInfo": "separa con spazi",
|
"tsInfo": "separa con spazi",
|
||||||
"tsp": "cucchiaino",
|
"tsp": "cucchiaino",
|
||||||
|
"TUE": "mar",
|
||||||
"Turkish": "turca",
|
"Turkish": "turca",
|
||||||
"Undefined": "Indefinito",
|
"Undefined": "Indefinito",
|
||||||
"unit": "unità",
|
"unit": "unità",
|
||||||
|
@ -265,6 +283,7 @@
|
||||||
"Vegetarian": "Vegetariano",
|
"Vegetarian": "Vegetariano",
|
||||||
"Vietnamese": "vietnamita",
|
"Vietnamese": "vietnamita",
|
||||||
"wAgo": "%s settimane fa",
|
"wAgo": "%s settimane fa",
|
||||||
|
"WED": "mer",
|
||||||
"yesterday": "ieri",
|
"yesterday": "ieri",
|
||||||
"yieldQ": "Quantità di resa",
|
"yieldQ": "Quantità di resa",
|
||||||
"yieldU": "Unità di resa",
|
"yieldU": "Unità di resa",
|
||||||
|
@ -272,13 +291,14 @@
|
||||||
"buto": "Backup salvato in %s",
|
"buto": "Backup salvato in %s",
|
||||||
"sysDefB": "Predefinito del sistema + Nero",
|
"sysDefB": "Predefinito del sistema + Nero",
|
||||||
"tmr": "Contaminuti %s",
|
"tmr": "Contaminuti %s",
|
||||||
"strtBtn": "AVVIA",
|
"strtBtn": "AVVIO",
|
||||||
"ntmr": "Nuovo contaminuti",
|
"ntmr": "Nuovo contaminuti",
|
||||||
"timer": "Contaminuti di cottura",
|
"timer": "Contaminuti di cottura",
|
||||||
"tmrvbrt": "Vibrazione contaminuti",
|
"tmrvbrt": "Vibrazione contaminuti",
|
||||||
"tmrSnd": "Suono del contaminuti",
|
"tmrSnd": "Suono del contaminuti",
|
||||||
"aTPrst": "Aggiunto alle preimpostazioni",
|
"aTPrst": "Aggiunto alle preimpostazioni",
|
||||||
"fwr": "per quale ricetta?",
|
"fwr": "per quale ricetta?",
|
||||||
|
"tmrPrsts": "Preimpostazioni del contaminuti",
|
||||||
"prstBtn": "Preimpostazioni",
|
"prstBtn": "Preimpostazioni",
|
||||||
"stop": "Ferma",
|
"stop": "Ferma",
|
||||||
"sec": "s",
|
"sec": "s",
|
||||||
|
@ -288,41 +308,5 @@
|
||||||
"minutes": "minuti",
|
"minutes": "minuti",
|
||||||
"minute": "minuto",
|
"minute": "minuto",
|
||||||
"dlyDur": "Durata del ritardo",
|
"dlyDur": "Durata del ritardo",
|
||||||
"delay": "Ritarda",
|
"delay": "Ritardo"
|
||||||
"notifSetg": "Impostazioni di notifica",
|
|
||||||
"tmrRm": "Contaminuti rimosso",
|
|
||||||
"delPrst": "Stai per eliminare %s dalle preimpostazioni",
|
|
||||||
"prsts": "Preimpostazioni",
|
|
||||||
"ttv": "Tocca per visualizzare",
|
|
||||||
"dismissAll": "Disattiva tutti i contaminuti",
|
|
||||||
"dismiss": "Diattiva",
|
|
||||||
"texp": "%s contaminuti scaduti",
|
|
||||||
"wDBy": "%1$s è stato ritardato di %2$s",
|
|
||||||
"prstTU": "Tempo preimpostato aggiornato",
|
|
||||||
"ccwt": "Cucina con fiducia con i contaminuti!",
|
|
||||||
"gtD": "Vai alla data",
|
|
||||||
"random": "Casuale",
|
|
||||||
"ystr": "Ieri",
|
|
||||||
"tmrw": "Domani",
|
|
||||||
"tdy": "Oggi",
|
|
||||||
"cpy": "copia",
|
|
||||||
"d": "Giorno",
|
|
||||||
"wk": "Settimana",
|
|
||||||
"mnth": "Mese",
|
|
||||||
"calVM": "Modalità di visualizzazione calendario",
|
|
||||||
"oAP": "%1$s in corso, %2$s in pausa",
|
|
||||||
"otaw": "Dopo una settimana",
|
|
||||||
"otam": "Dopo un mese",
|
|
||||||
"otay": "Dopo un anno",
|
|
||||||
"nvr": "Mai",
|
|
||||||
"admp": "Elimina automaticamente i piani pasto",
|
|
||||||
"plsCrt": "Usa il pulsante + per crearne uno",
|
|
||||||
"ehwmp": "Mangia sano con i piani dei pasti!",
|
|
||||||
"selMT": "Seleziona il tipo di pasto",
|
|
||||||
"rstBtn": "RIPRISTINA",
|
|
||||||
"add": "Aggiungi",
|
|
||||||
"esgbInfo": "Disabilita questa opzione se hai problemi di navigazione",
|
|
||||||
"esgb": "Scorri sul bordo per tornare indietro",
|
|
||||||
"ksavrInfo": "Impedisce che lo schermo si spenga durante la visualizzazione di una ricetta",
|
|
||||||
"ksavr": "Mantieni lo schermo attivo durante la visualizzazione di una ricetta"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,13 +12,14 @@
|
||||||
"American": "アメリカ料理",
|
"American": "アメリカ料理",
|
||||||
"aNBtn": "新しく追加",
|
"aNBtn": "新しく追加",
|
||||||
"aNoBtn": "メモを追加",
|
"aNoBtn": "メモを追加",
|
||||||
"app.name": "EnRecipes",
|
|
||||||
"appCrd": "EnRecipesから共有されました。F-DroidかIzzyOnDroidかPlayストアからダウンロード出来ます。",
|
"appCrd": "EnRecipesから共有されました。F-DroidかIzzyOnDroidかPlayストアからダウンロード出来ます。",
|
||||||
"Appetizers": "前菜",
|
"Appetizers": "前菜",
|
||||||
"appInfo": "EnRecipesはレシピを作成・管理・共有することができる、オープンソースでプライバシーに配慮したデジタル料理本です",
|
"appInfo": "EnRecipesはレシピを作成・管理・共有することができる、オープンソースでプライバシーに配慮したデジタル料理本です",
|
||||||
"apply": "適用する",
|
"apply": "適用する",
|
||||||
"appRst": "アプリの再起動が必要",
|
"appRst": "アプリの再起動が必要",
|
||||||
|
"April": "4月",
|
||||||
"aStpBtn": "手順を追加",
|
"aStpBtn": "手順を追加",
|
||||||
|
"August": "8月",
|
||||||
"Barbecue": "キャンプ料理",
|
"Barbecue": "キャンプ料理",
|
||||||
"Beverages": "飲物",
|
"Beverages": "飲物",
|
||||||
"Black": "黒",
|
"Black": "黒",
|
||||||
|
@ -51,6 +52,7 @@
|
||||||
"Dark": "ダーク",
|
"Dark": "ダーク",
|
||||||
"db": "データベース",
|
"db": "データベース",
|
||||||
"dBtn": "削除",
|
"dBtn": "削除",
|
||||||
|
"December": "12月",
|
||||||
"delRecInfo": "レシピ %s を削除しようとしています",
|
"delRecInfo": "レシピ %s を削除しようとしています",
|
||||||
"delRecsInfo": "%s 件のレシピを削除しようとしています",
|
"delRecsInfo": "%s 件のレシピを削除しようとしています",
|
||||||
"Desserts": "デザート",
|
"Desserts": "デザート",
|
||||||
|
@ -67,17 +69,18 @@
|
||||||
"editRec": "レシピを編集する",
|
"editRec": "レシピを編集する",
|
||||||
"Egyptian": "エジプト料理",
|
"Egyptian": "エジプト料理",
|
||||||
"English": "イングランド料理",
|
"English": "イングランド料理",
|
||||||
"EnRecipes": "EnRecipes",
|
|
||||||
"expBu": "バックアップをエクスポート",
|
"expBu": "バックアップをエクスポート",
|
||||||
"expip": "エクスポートを実行中",
|
"expip": "エクスポートを実行中",
|
||||||
"expSuc": "エクスポートに成功",
|
"expSuc": "エクスポートに成功",
|
||||||
"favourites": "お気に入り",
|
"favourites": "お気に入り",
|
||||||
|
"February": "2月",
|
||||||
"Filipino": "フィリピン料理",
|
"Filipino": "フィリピン料理",
|
||||||
"Filtered recipes": "絞り込み結果",
|
"Filtered recipes": "絞り込み結果",
|
||||||
"fl oz": "液量オンス",
|
"fl oz": "液量オンス",
|
||||||
"fltr": "絞り込み",
|
"fltr": "絞り込み",
|
||||||
"Fluid Ounce": "液量オンス",
|
"Fluid Ounce": "液量オンス",
|
||||||
"French": "フランス料理",
|
"French": "フランス料理",
|
||||||
|
"FRI": "金",
|
||||||
"fsList": "お気に入りのレシピはここに表示されます",
|
"fsList": "お気に入りのレシピはここに表示されます",
|
||||||
"g": "g",
|
"g": "g",
|
||||||
"gal": "ガロン",
|
"gal": "ガロン",
|
||||||
|
@ -104,9 +107,12 @@
|
||||||
"Irish": "アイルランド料理",
|
"Irish": "アイルランド料理",
|
||||||
"Italian": "イタリア料理",
|
"Italian": "イタリア料理",
|
||||||
"Jamaican": "ジャマイカ料理",
|
"Jamaican": "ジャマイカ料理",
|
||||||
|
"January": "1月",
|
||||||
"Japanese": "和食",
|
"Japanese": "和食",
|
||||||
"Jewish": "ユダヤ料理",
|
"Jewish": "ユダヤ料理",
|
||||||
"joinTG": "Telegramグループに参加",
|
"joinTG": "Telegramグループに参加",
|
||||||
|
"July": "7月",
|
||||||
|
"June": "6月",
|
||||||
"kEdit": "編集を続ける",
|
"kEdit": "編集を続ける",
|
||||||
"Kenyan": "ケニア料理",
|
"Kenyan": "ケニア料理",
|
||||||
"kg": "kg",
|
"kg": "kg",
|
||||||
|
@ -124,6 +130,8 @@
|
||||||
"lunch": "昼食",
|
"lunch": "昼食",
|
||||||
"mAgo": "%s か月前",
|
"mAgo": "%s か月前",
|
||||||
"Main dishes": "主菜",
|
"Main dishes": "主菜",
|
||||||
|
"March": "3月",
|
||||||
|
"May": "5月",
|
||||||
"Meat": "肉料理",
|
"Meat": "肉料理",
|
||||||
"Mexican": "メキシコ料理",
|
"Mexican": "メキシコ料理",
|
||||||
"mg": "mg",
|
"mg": "mg",
|
||||||
|
@ -132,6 +140,7 @@
|
||||||
"minimal": "最小",
|
"minimal": "最小",
|
||||||
"ml": "ml",
|
"ml": "ml",
|
||||||
"Moderate": "普通",
|
"Moderate": "普通",
|
||||||
|
"MON": "月",
|
||||||
"newCui": "新しいジャンル",
|
"newCui": "新しいジャンル",
|
||||||
"Newest first": "新しい順",
|
"Newest first": "新しい順",
|
||||||
"newRec": "新しいレシピ",
|
"newRec": "新しいレシピ",
|
||||||
|
@ -145,8 +154,10 @@
|
||||||
"noRecs": "検索に一致するレシピがありません",
|
"noRecs": "検索に一致するレシピがありません",
|
||||||
"noRecsInL": "検索に一致するレシピが見つかりませんでした",
|
"noRecsInL": "検索に一致するレシピが見つかりませんでした",
|
||||||
"nos": "メモ",
|
"nos": "メモ",
|
||||||
|
"November": "11月",
|
||||||
"nwCat": "新しいカテゴリー",
|
"nwCat": "新しいカテゴリー",
|
||||||
"nwYiU": "新しい仕上がり単位",
|
"nwYiU": "新しい仕上がり単位",
|
||||||
|
"October": "10月",
|
||||||
"OK": "OK",
|
"OK": "OK",
|
||||||
"Oldest first": "古いもの順",
|
"Oldest first": "古いもの順",
|
||||||
"opts": "オプション",
|
"opts": "オプション",
|
||||||
|
@ -202,10 +213,12 @@
|
||||||
"rst": "再起動",
|
"rst": "再起動",
|
||||||
"Russian": "ロシア料理",
|
"Russian": "ロシア料理",
|
||||||
"Salads": "サラダ",
|
"Salads": "サラダ",
|
||||||
|
"SAT": "土",
|
||||||
"Sauces": "ソース",
|
"Sauces": "ソース",
|
||||||
"Scottish": "スコットランド料理",
|
"Scottish": "スコットランド料理",
|
||||||
"Seafood": "シーフード",
|
"Seafood": "シーフード",
|
||||||
"selRec": "レシピを選択",
|
"selRec": "レシピを選択",
|
||||||
|
"September": "9月",
|
||||||
"ser": "検索",
|
"ser": "検索",
|
||||||
"Serving": "人前",
|
"Serving": "人前",
|
||||||
"SET": "設定",
|
"SET": "設定",
|
||||||
|
@ -225,6 +238,7 @@
|
||||||
"stars": "星評価",
|
"stars": "星評価",
|
||||||
"stp": "作り方",
|
"stp": "作り方",
|
||||||
"strAdd": "レシピを追加しましょう!",
|
"strAdd": "レシピを追加しましょう!",
|
||||||
|
"SUN": "日",
|
||||||
"sVw": "振ってランダムなレシピを表示",
|
"sVw": "振ってランダムなレシピを表示",
|
||||||
"sVwInfo": "何を作るか決められないときに使います",
|
"sVwInfo": "何を作るか決められないときに使います",
|
||||||
"Swedish": "スウェーデン料理",
|
"Swedish": "スウェーデン料理",
|
||||||
|
@ -235,6 +249,7 @@
|
||||||
"Teaspoon": "小さじ",
|
"Teaspoon": "小さじ",
|
||||||
"Thai": "タイ料理",
|
"Thai": "タイ料理",
|
||||||
"Theme": "テーマ",
|
"Theme": "テーマ",
|
||||||
|
"THU": "木",
|
||||||
"title": "タイトル",
|
"title": "タイトル",
|
||||||
"tLInfo": "あとで試したいレシピはここに並びます",
|
"tLInfo": "あとで試したいレシピはここに並びます",
|
||||||
"today": "今日",
|
"today": "今日",
|
||||||
|
@ -245,6 +260,7 @@
|
||||||
"ts": "タグ",
|
"ts": "タグ",
|
||||||
"tsInfo": "スペースで区切ってください",
|
"tsInfo": "スペースで区切ってください",
|
||||||
"tsp": "小さじ",
|
"tsp": "小さじ",
|
||||||
|
"TUE": "火",
|
||||||
"Turkish": "トルコ料理",
|
"Turkish": "トルコ料理",
|
||||||
"unit": "個",
|
"unit": "個",
|
||||||
"Unit": "単位",
|
"Unit": "単位",
|
||||||
|
@ -254,6 +270,7 @@
|
||||||
"Vegetarian": "ベジタリアン",
|
"Vegetarian": "ベジタリアン",
|
||||||
"Vietnamese": "ベトナム料理",
|
"Vietnamese": "ベトナム料理",
|
||||||
"wAgo": "%s 週前",
|
"wAgo": "%s 週前",
|
||||||
|
"WED": "水",
|
||||||
"yesterday": "昨日",
|
"yesterday": "昨日",
|
||||||
"yieldQ": "仕上がり分量",
|
"yieldQ": "仕上がり分量",
|
||||||
"yieldU": "仕上がり分量の単位",
|
"yieldU": "仕上がり分量の単位",
|
||||||
|
@ -270,6 +287,5 @@
|
||||||
"it": "材料",
|
"it": "材料",
|
||||||
"small": "小",
|
"small": "小",
|
||||||
"large": "大",
|
"large": "大",
|
||||||
"medium": "中",
|
"medium": "中"
|
||||||
"sec": "s"
|
|
||||||
}
|
}
|
||||||
|
|
1
app/i18n/kn.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{}
|
|
@ -18,7 +18,9 @@
|
||||||
"appInfo": "നിങ്ങളുടെ പാചകക്കുറിപ്പുകൾ സൃഷ്ടിക്കാനും നിയന്ത്രിക്കാനും പങ്കിടാനും അനുവദിക്കുന്ന ഒരു ഓപ്പൺ സോഴ്സ്, സ്വകാര്യത കേന്ദ്രീകരിച്ച ഡിജിറ്റൽ പാചകപുസ്തകമാണ് എന്റെരെസിപീസ്",
|
"appInfo": "നിങ്ങളുടെ പാചകക്കുറിപ്പുകൾ സൃഷ്ടിക്കാനും നിയന്ത്രിക്കാനും പങ്കിടാനും അനുവദിക്കുന്ന ഒരു ഓപ്പൺ സോഴ്സ്, സ്വകാര്യത കേന്ദ്രീകരിച്ച ഡിജിറ്റൽ പാചകപുസ്തകമാണ് എന്റെരെസിപീസ്",
|
||||||
"apply": "പ്രയോഗിക്കുക",
|
"apply": "പ്രയോഗിക്കുക",
|
||||||
"appRst": "അപ്ലിക്കേഷൻ പുനരാരംഭിക്കൽ ആവശ്യമാണ്",
|
"appRst": "അപ്ലിക്കേഷൻ പുനരാരംഭിക്കൽ ആവശ്യമാണ്",
|
||||||
|
"April": "ഏപ്രിൽ",
|
||||||
"aStpBtn": "നിർദ്ദേശം ചേർക്കുക",
|
"aStpBtn": "നിർദ്ദേശം ചേർക്കുക",
|
||||||
|
"August": "ഓഗസ്റ്റ്",
|
||||||
"Barbecue": "ബാർബിക്യൂ",
|
"Barbecue": "ബാർബിക്യൂ",
|
||||||
"Beverages": "പാനീയങ്ങൾ",
|
"Beverages": "പാനീയങ്ങൾ",
|
||||||
"Black": "കറുപ്പ്",
|
"Black": "കറുപ്പ്",
|
||||||
|
@ -51,6 +53,7 @@
|
||||||
"Dark": "ഇരുണ്ടത്",
|
"Dark": "ഇരുണ്ടത്",
|
||||||
"db": "ഡാറ്റാബേസ്",
|
"db": "ഡാറ്റാബേസ്",
|
||||||
"dBtn": "ഇല്ലാതാക്കുക",
|
"dBtn": "ഇല്ലാതാക്കുക",
|
||||||
|
"December": "ഡിസംബർ",
|
||||||
"delRecInfo": "%s പാചകക്കുറിപ്പ് നിങ്ങൾ ശാശ്വതമായി ഇല്ലാതാക്കാൻ പോകുന്നു",
|
"delRecInfo": "%s പാചകക്കുറിപ്പ് നിങ്ങൾ ശാശ്വതമായി ഇല്ലാതാക്കാൻ പോകുന്നു",
|
||||||
"delRecsInfo": "നിങ്ങൾ %s ശാശ്വതമായി ഇല്ലാതാക്കാൻ പോകുന്നു",
|
"delRecsInfo": "നിങ്ങൾ %s ശാശ്വതമായി ഇല്ലാതാക്കാൻ പോകുന്നു",
|
||||||
"Desserts": "മധുരപലഹാരങ്ങൾ",
|
"Desserts": "മധുരപലഹാരങ്ങൾ",
|
||||||
|
@ -72,12 +75,14 @@
|
||||||
"expip": "കയറ്റുമതി പുരോഗതിയിലാണ്",
|
"expip": "കയറ്റുമതി പുരോഗതിയിലാണ്",
|
||||||
"expSuc": "കയറ്റുമതി വിജയം",
|
"expSuc": "കയറ്റുമതി വിജയം",
|
||||||
"favourites": "പ്രിയങ്കരങ്ങൾ",
|
"favourites": "പ്രിയങ്കരങ്ങൾ",
|
||||||
|
"February": "ഫെബ്രുവരി",
|
||||||
"Filipino": "ഫിലിപ്പിനോ",
|
"Filipino": "ഫിലിപ്പിനോ",
|
||||||
"Filtered recipes": "ഫിൽട്ടർ ചെയ്ത പാചകക്കുറിപ്പുകൾ",
|
"Filtered recipes": "ഫിൽട്ടർ ചെയ്ത പാചകക്കുറിപ്പുകൾ",
|
||||||
"fl oz": "ഫ്ലൂയിഡ് un ൺസ്",
|
"fl oz": "ഫ്ലൂയിഡ് un ൺസ്",
|
||||||
"fltr": "ഫിൽട്ടർ ചെയ്യുക",
|
"fltr": "ഫിൽട്ടർ ചെയ്യുക",
|
||||||
"Fluid Ounce": "ഫ്ലൂയിഡ് un ൺസ്",
|
"Fluid Ounce": "ഫ്ലൂയിഡ് un ൺസ്",
|
||||||
"French": "ഫ്രഞ്ച്",
|
"French": "ഫ്രഞ്ച്",
|
||||||
|
"FRI": "വെള്ളി",
|
||||||
"fsList": "നിങ്ങളുടെ പ്രിയപ്പെട്ട പാചകക്കുറിപ്പുകൾ ഇവിടെ പട്ടികപ്പെടുത്തിയിട്ടുണ്ട്",
|
"fsList": "നിങ്ങളുടെ പ്രിയപ്പെട്ട പാചകക്കുറിപ്പുകൾ ഇവിടെ പട്ടികപ്പെടുത്തിയിട്ടുണ്ട്",
|
||||||
"g": "ഗ്രാം",
|
"g": "ഗ്രാം",
|
||||||
"gal": "ഗാലൺ",
|
"gal": "ഗാലൺ",
|
||||||
|
@ -103,12 +108,15 @@
|
||||||
"intf": "ഇന്റർഫേസ്",
|
"intf": "ഇന്റർഫേസ്",
|
||||||
"invFile": "അസാധുവായ ഫയൽ",
|
"invFile": "അസാധുവായ ഫയൽ",
|
||||||
"Irish": "ഐറിഷ്",
|
"Irish": "ഐറിഷ്",
|
||||||
"it": "ഇനം %s",
|
"it": "ഇനം",
|
||||||
"Italian": "ഇറ്റാലിയൻ",
|
"Italian": "ഇറ്റാലിയൻ",
|
||||||
"Jamaican": "ജമൈക്കൻ",
|
"Jamaican": "ജമൈക്കൻ",
|
||||||
|
"January": "ജനുവരി",
|
||||||
"Japanese": "ജാപ്പനീസ്",
|
"Japanese": "ജാപ്പനീസ്",
|
||||||
"Jewish": "ജൂതൻ",
|
"Jewish": "ജൂതൻ",
|
||||||
"joinTG": "ടെലിഗ്രാം ഗ്രൂപ്പിൽ ചേരുക",
|
"joinTG": "ടെലിഗ്രാം ഗ്രൂപ്പിൽ ചേരുക",
|
||||||
|
"July": "ജൂലൈ",
|
||||||
|
"June": "ജൂൺ",
|
||||||
"kEdit": "എഡിറ്റിംഗ് തുടരുക",
|
"kEdit": "എഡിറ്റിംഗ് തുടരുക",
|
||||||
"Kenyan": "കെനിയൻ",
|
"Kenyan": "കെനിയൻ",
|
||||||
"kg": "കി. ഗ്രാം",
|
"kg": "കി. ഗ്രാം",
|
||||||
|
@ -128,6 +136,8 @@
|
||||||
"lunch": "ഉച്ചഭക്ഷണം",
|
"lunch": "ഉച്ചഭക്ഷണം",
|
||||||
"mAgo": "%s മാസം മുമ്പ്",
|
"mAgo": "%s മാസം മുമ്പ്",
|
||||||
"Main dishes": "പ്രധാന വിഭവങ്ങൾ",
|
"Main dishes": "പ്രധാന വിഭവങ്ങൾ",
|
||||||
|
"March": "മാർച്ച്",
|
||||||
|
"May": "മെയ്",
|
||||||
"Meat": "മാംസം",
|
"Meat": "മാംസം",
|
||||||
"medium": "ഇടത്തരം",
|
"medium": "ഇടത്തരം",
|
||||||
"Mexican": "മെക്സിക്കൻ",
|
"Mexican": "മെക്സിക്കൻ",
|
||||||
|
@ -137,6 +147,7 @@
|
||||||
"minimal": "കുറഞ്ഞത്",
|
"minimal": "കുറഞ്ഞത്",
|
||||||
"ml": "മില്ലി",
|
"ml": "മില്ലി",
|
||||||
"Moderate": "മിതത്വം",
|
"Moderate": "മിതത്വം",
|
||||||
|
"MON": "തിങ്കൾ",
|
||||||
"newCui": "പുതിയ പാചകരീതി",
|
"newCui": "പുതിയ പാചകരീതി",
|
||||||
"Newest first": "ആദ്യത്തെ പുതിയത്",
|
"Newest first": "ആദ്യത്തെ പുതിയത്",
|
||||||
"newRec": "പുതിയ പാചകക്കുറിപ്പ്",
|
"newRec": "പുതിയ പാചകക്കുറിപ്പ്",
|
||||||
|
@ -151,8 +162,10 @@
|
||||||
"noRecs": "പാചകക്കുറിപ്പുകളൊന്നും നിങ്ങളുടെ തിരയലുമായി പൊരുത്തപ്പെടുന്നില്ല",
|
"noRecs": "പാചകക്കുറിപ്പുകളൊന്നും നിങ്ങളുടെ തിരയലുമായി പൊരുത്തപ്പെടുന്നില്ല",
|
||||||
"noRecsInL": "ഇവിടെയുള്ള പാചകങ്ങളൊന്നും നിങ്ങളുടെ തിരയലുമായി പൊരുത്തപ്പെടുന്നില്ല",
|
"noRecsInL": "ഇവിടെയുള്ള പാചകങ്ങളൊന്നും നിങ്ങളുടെ തിരയലുമായി പൊരുത്തപ്പെടുന്നില്ല",
|
||||||
"nos": "കുറിപ്പുകൾ",
|
"nos": "കുറിപ്പുകൾ",
|
||||||
|
"November": "നവംബർ",
|
||||||
"nwCat": "പുതിയ വിഭാഗം",
|
"nwCat": "പുതിയ വിഭാഗം",
|
||||||
"nwYiU": "പുതിയ വിളവ് യൂണിറ്റ്",
|
"nwYiU": "പുതിയ വിളവ് യൂണിറ്റ്",
|
||||||
|
"October": "ഒക്ടോബർ",
|
||||||
"OK": "ശരി",
|
"OK": "ശരി",
|
||||||
"Oldest first": "ആദ്യം പഴയത്",
|
"Oldest first": "ആദ്യം പഴയത്",
|
||||||
"opts": "ഓപ്ഷനുകൾ",
|
"opts": "ഓപ്ഷനുകൾ",
|
||||||
|
@ -166,7 +179,7 @@
|
||||||
"Piece": "പീസ്",
|
"Piece": "പീസ്",
|
||||||
"pinch": "നുള്ള്",
|
"pinch": "നുള്ള്",
|
||||||
"planner": "ഭക്ഷണ പ്ലാനർ",
|
"planner": "ഭക്ഷണ പ്ലാനർ",
|
||||||
"plsAdd": "ഒരെണ്ണം ചേർക്കാൻ + ബട്ടൺ ഉപയോഗിക്കുക",
|
"plsAdd": "ഒരെണ്ണം ചേർക്കാൻ പ്ലസ് ബട്ടൺ ഉപയോഗിക്കുക",
|
||||||
"Portuguese": "പോർച്ചുഗീസ്",
|
"Portuguese": "പോർച്ചുഗീസ്",
|
||||||
"Poultry": "കോഴി",
|
"Poultry": "കോഴി",
|
||||||
"Pound": "പൗണ്ട്",
|
"Pound": "പൗണ്ട്",
|
||||||
|
@ -210,10 +223,12 @@
|
||||||
"rst": "പുനരാരംഭിക്കുക",
|
"rst": "പുനരാരംഭിക്കുക",
|
||||||
"Russian": "റഷ്യൻ",
|
"Russian": "റഷ്യൻ",
|
||||||
"Salads": "സലാഡുകൾ",
|
"Salads": "സലാഡുകൾ",
|
||||||
|
"SAT": "ശനി",
|
||||||
"Sauces": "സോസുകൾ",
|
"Sauces": "സോസുകൾ",
|
||||||
"Scottish": "സ്കോട്ടിഷ്",
|
"Scottish": "സ്കോട്ടിഷ്",
|
||||||
"Seafood": "കടൽ ഭക്ഷണം",
|
"Seafood": "കടൽ ഭക്ഷണം",
|
||||||
"selRec": "പാചകക്കുറിപ്പ് തിരഞ്ഞെടുക്കുക",
|
"selRec": "പാചകക്കുറിപ്പ് തിരഞ്ഞെടുക്കുക",
|
||||||
|
"September": "സെപ്റ്റംബർ",
|
||||||
"ser": "തിരയുക",
|
"ser": "തിരയുക",
|
||||||
"Serving": "സേവിക്കുന്നു",
|
"Serving": "സേവിക്കുന്നു",
|
||||||
"SET": "സെറ്റ്",
|
"SET": "സെറ്റ്",
|
||||||
|
@ -233,8 +248,9 @@
|
||||||
"sru": "പാചകക്കുറിപ്പ് പങ്കിടുക...",
|
"sru": "പാചകക്കുറിപ്പ് പങ്കിടുക...",
|
||||||
"stars": "നക്ഷത്ര റേറ്റിംഗ്",
|
"stars": "നക്ഷത്ര റേറ്റിംഗ്",
|
||||||
"stick": "വടി",
|
"stick": "വടി",
|
||||||
"stp": "ഘട്ടം %s",
|
"stp": "ഘട്ടം",
|
||||||
"strAdd": "നിങ്ങളുടെ പാചകക്കുറിപ്പുകൾ ചേർക്കാൻ ആരംഭിക്കുക!",
|
"strAdd": "നിങ്ങളുടെ പാചകക്കുറിപ്പുകൾ ചേർക്കാൻ ആരംഭിക്കുക!",
|
||||||
|
"SUN": "ഞായ",
|
||||||
"sVw": "ക്രമരഹിതമായ പാചകക്കുറിപ്പ് കാണാൻ കുലുക്കുക",
|
"sVw": "ക്രമരഹിതമായ പാചകക്കുറിപ്പ് കാണാൻ കുലുക്കുക",
|
||||||
"sVwInfo": "നിങ്ങൾക്ക് തീരുമാനിക്കാൻ കഴിയാത്തപ്പോൾ എന്താണ് പാചകം ചെയ്യേണ്ടതെന്ന് തിരഞ്ഞെടുക്കാൻ നിങ്ങളെ സഹായിക്കുന്നു",
|
"sVwInfo": "നിങ്ങൾക്ക് തീരുമാനിക്കാൻ കഴിയാത്തപ്പോൾ എന്താണ് പാചകം ചെയ്യേണ്ടതെന്ന് തിരഞ്ഞെടുക്കാൻ നിങ്ങളെ സഹായിക്കുന്നു",
|
||||||
"Swedish": "സ്വീഡിഷ്",
|
"Swedish": "സ്വീഡിഷ്",
|
||||||
|
@ -245,6 +261,7 @@
|
||||||
"Teaspoon": "ടീസ്പൂൺ",
|
"Teaspoon": "ടീസ്പൂൺ",
|
||||||
"Thai": "തായ്",
|
"Thai": "തായ്",
|
||||||
"Theme": "തീം",
|
"Theme": "തീം",
|
||||||
|
"THU": "വ്യാഴം",
|
||||||
"title": "ശീർഷകം",
|
"title": "ശീർഷകം",
|
||||||
"tLInfo": "നിങ്ങൾ പിന്നീട് ശ്രമിക്കാൻ ആഗ്രഹിക്കുന്ന പാചകക്കുറിപ്പുകൾ ഇവിടെ പട്ടികപ്പെടുത്തിയിട്ടുണ്ട്",
|
"tLInfo": "നിങ്ങൾ പിന്നീട് ശ്രമിക്കാൻ ആഗ്രഹിക്കുന്ന പാചകക്കുറിപ്പുകൾ ഇവിടെ പട്ടികപ്പെടുത്തിയിട്ടുണ്ട്",
|
||||||
"today": "ഇന്ന്",
|
"today": "ഇന്ന്",
|
||||||
|
@ -255,6 +272,7 @@
|
||||||
"ts": "ടാഗുകൾ",
|
"ts": "ടാഗുകൾ",
|
||||||
"tsInfo": "സ്പെയ്സുകൾ ഉപയോഗിച്ച് വേർതിരിക്കുക",
|
"tsInfo": "സ്പെയ്സുകൾ ഉപയോഗിച്ച് വേർതിരിക്കുക",
|
||||||
"tsp": "ടീസ്പൂൺ",
|
"tsp": "ടീസ്പൂൺ",
|
||||||
|
"TUE": "ചൊവ്വ",
|
||||||
"Turkish": "ടർക്കിഷ്",
|
"Turkish": "ടർക്കിഷ്",
|
||||||
"Undefined": "നിർവചിച്ചിട്ടില്ല",
|
"Undefined": "നിർവചിച്ചിട്ടില്ല",
|
||||||
"unit": "യൂണിറ്റ്",
|
"unit": "യൂണിറ്റ്",
|
||||||
|
@ -265,67 +283,11 @@
|
||||||
"Vegetarian": "വെജിറ്റേറിയൻ",
|
"Vegetarian": "വെജിറ്റേറിയൻ",
|
||||||
"Vietnamese": "വിയറ്റ്നാമീസ്",
|
"Vietnamese": "വിയറ്റ്നാമീസ്",
|
||||||
"wAgo": "%s ആഴ്ച മുമ്പ്",
|
"wAgo": "%s ആഴ്ച മുമ്പ്",
|
||||||
|
"WED": "ബുധൻ",
|
||||||
"yesterday": "ഇന്നലെ",
|
"yesterday": "ഇന്നലെ",
|
||||||
"yieldQ": "വിളവ് അളവ്",
|
"yieldQ": "വിളവ് അളവ്",
|
||||||
"yieldU": "വിളവ് യൂണിറ്റ്",
|
"yieldU": "വിളവ് യൂണിറ്റ്",
|
||||||
"yld": "വരുമാനം",
|
"yld": "വരുമാനം",
|
||||||
"buto": "%s ലേക്ക് ബാക്കപ്പ് ചെയ്തു",
|
"buto": "%s ലേക്ക് ബാക്കപ്പ് ചെയ്തു",
|
||||||
"sysDefB": "സിസ്റ്റം സ്ഥിരസ്ഥിതി + കറുപ്പ്",
|
"sysDefB": "സിസ്റ്റം സ്ഥിരസ്ഥിതി + കറുപ്പ്"
|
||||||
"esgbInfo": "നിങ്ങൾക്ക് എന്തെങ്കിലും നാവിഗേഷൻ പ്രശ്നങ്ങളുണ്ടെങ്കിൽ ഈ ഓപ്ഷൻ അപ്രാപ്തമാക്കുക",
|
|
||||||
"esgb": "തിരിച്ചുപോകാൻ എഡ്ജ് സ്വൈപ്പ്",
|
|
||||||
"ksavrInfo": "ഒരു പാചകക്കുറിപ്പ് കാണുമ്പോൾ സ്ക്രീൻ ഓഫാകുന്നത് തടയുന്നു",
|
|
||||||
"ksavr": "പാചകക്കുറിപ്പ് കാണുമ്പോൾ സ്ക്രീൻ ഓണാക്കുക",
|
|
||||||
"rstBtn": "പുനഃക്രമീകരിക്കുക",
|
|
||||||
"add": "ചേർക്കുക",
|
|
||||||
"nvr": "ഒരിക്കലും",
|
|
||||||
"otaw": "ഒരാഴ്ചയേക്കാൾ പഴയത്",
|
|
||||||
"otam": "ഒരു മാസത്തേക്കാൾ പഴയത്",
|
|
||||||
"otay": "ഒരു വർഷത്തേക്കാൾ പഴയത്",
|
|
||||||
"admp": "യാന്ത്രിക-ഇല്ലാതാക്കുക ഭക്ഷണ പദ്ധതികൾ",
|
|
||||||
"plsCrt": "ഒരെണ്ണം സൃഷ്ടിക്കാൻ + ബട്ടൺ ഉപയോഗിക്കുക",
|
|
||||||
"ehwmp": "ഭക്ഷണ പദ്ധതികളോടെ ആരോഗ്യത്തോടെ ഭക്ഷണം കഴിക്കുക!",
|
|
||||||
"selMT": "ഭക്ഷണ തരം തിരഞ്ഞെടുക്കുക",
|
|
||||||
"ystr": "തലേനാള്",
|
|
||||||
"tmrw": "അടുത്തദിവസം",
|
|
||||||
"tdy": "ഇന്നേദിവസം",
|
|
||||||
"cpy": "പകർപ്പ്",
|
|
||||||
"d": "ദിവസം",
|
|
||||||
"wk": "ആഴ്ച",
|
|
||||||
"mnth": "മാസം",
|
|
||||||
"calVM": "കലണ്ടർ വ്യൂ മോഡ്",
|
|
||||||
"oAP": "%1$s നിലവിലുള്ളത്, %2$s താൽക്കാലികമായി നിർത്തി",
|
|
||||||
"ttv": "കാണാൻ ടാപ്പുചെയ്യുക",
|
|
||||||
"dismissAll": "എല്ലാ ടൈമറുകളും നിരസിക്കുക",
|
|
||||||
"dismiss": "പുറംതള്ളുക",
|
|
||||||
"texp": "%s ടൈമറുകൾ കാലഹരണപ്പെട്ടു",
|
|
||||||
"wDBy": "%1$s %2$s വൈകി",
|
|
||||||
"prstTU": "പ്രീസെറ്റ് സമയം അപ്ഡേറ്റുചെയ്തു",
|
|
||||||
"ccwt": "ടൈമറുകളുമായി ആത്മവിശ്വാസത്തോടെ വേവിക്കുക!",
|
|
||||||
"gtD": "തീയതിയിലേക്ക് പോകുക",
|
|
||||||
"random": "വികലമായ",
|
|
||||||
"notifSetg": "അറിയിപ്പ് ക്രമീകരണങ്ങൾ",
|
|
||||||
"tmrRm": "ടൈമർ നീക്കംചെയ്തു",
|
|
||||||
"seconds": "സെക്കൻഡ്",
|
|
||||||
"hours": "മണിക്കൂറുകൾ",
|
|
||||||
"hour": "മണിക്കൂര്",
|
|
||||||
"minutes": "മിനിറ്റ്",
|
|
||||||
"minute": "മിനിറ്റ്",
|
|
||||||
"dlyDur": "കാലതാമസം",
|
|
||||||
"tmrvbrt": "ടൈമർ വൈബ്രേറ്റ്",
|
|
||||||
"tmrSnd": "ടൈമർ ശബ്ദം",
|
|
||||||
"aTPrst": "പ്രീസെറ്റുകളിലേക്ക് ചേർത്തു",
|
|
||||||
"fwr": "ഏത് പാചകത്തിന്?",
|
|
||||||
"delPrst": "നിങ്ങൾ പ്രീസെറ്റുകളിൽ നിന്ന് %s ഇല്ലാതാക്കാൻ പോകുന്നു",
|
|
||||||
"prsts": "പ്രെസ്റ്റുകൾ",
|
|
||||||
"prstBtn": "പ്രെസ്റ്റുകൾ",
|
|
||||||
"tmr": "ടൈമർ %s",
|
|
||||||
"delay": "താമസിക്കുക",
|
|
||||||
"stop": "നിർത്തുക",
|
|
||||||
"strtBtn": "ആരംഭിക്കുക",
|
|
||||||
"ntmr": "പുതിയ ടൈമർ",
|
|
||||||
"timer": "പാചക ടൈമർ",
|
|
||||||
"sec": "സെക്കൻഡ്",
|
|
||||||
"addSectBtn": "വിഭാഗം ചേർക്കുക",
|
|
||||||
"sectRm": "വിഭാഗം നീക്കംചെയ്തു",
|
|
||||||
"sect": "ഭാഗം %s"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,9 @@
|
||||||
"appInfo": "EnRecipes er et fritt kokeboksprogram som respekterer ditt personvern der du kan lage, håndtere og dele dine oppskrifter",
|
"appInfo": "EnRecipes er et fritt kokeboksprogram som respekterer ditt personvern der du kan lage, håndtere og dele dine oppskrifter",
|
||||||
"apply": "Bruk",
|
"apply": "Bruk",
|
||||||
"appRst": "Programomstart kreves",
|
"appRst": "Programomstart kreves",
|
||||||
|
"April": "April",
|
||||||
"aStpBtn": "Legg til steg",
|
"aStpBtn": "Legg til steg",
|
||||||
|
"August": "August",
|
||||||
"Barbecue": "Grill",
|
"Barbecue": "Grill",
|
||||||
"Beverages": "Drikke",
|
"Beverages": "Drikke",
|
||||||
"Black": "Svart",
|
"Black": "Svart",
|
||||||
|
@ -51,6 +53,7 @@
|
||||||
"Dark": "Mørk",
|
"Dark": "Mørk",
|
||||||
"db": "Database",
|
"db": "Database",
|
||||||
"dBtn": "Slett",
|
"dBtn": "Slett",
|
||||||
|
"December": "Desember",
|
||||||
"delRecInfo": "Du er i ferd med å slette oppskriften %s for godt",
|
"delRecInfo": "Du er i ferd med å slette oppskriften %s for godt",
|
||||||
"delRecsInfo": "Du er i ferd med å slette %s for godt",
|
"delRecsInfo": "Du er i ferd med å slette %s for godt",
|
||||||
"Desserts": "Desserter",
|
"Desserts": "Desserter",
|
||||||
|
@ -72,12 +75,14 @@
|
||||||
"expip": "Eksport pågår",
|
"expip": "Eksport pågår",
|
||||||
"expSuc": "Eksportert",
|
"expSuc": "Eksportert",
|
||||||
"favourites": "Favoritter",
|
"favourites": "Favoritter",
|
||||||
|
"February": "Februar",
|
||||||
"Filipino": "Filipinsk",
|
"Filipino": "Filipinsk",
|
||||||
"Filtered recipes": "Filtrerte oppskrifter",
|
"Filtered recipes": "Filtrerte oppskrifter",
|
||||||
"fl oz": "flytende unse",
|
"fl oz": "flytende unse",
|
||||||
"fltr": "Filter",
|
"fltr": "Filter",
|
||||||
"Fluid Ounce": "Flytende unse",
|
"Fluid Ounce": "Flytende unse",
|
||||||
"French": "Fransk",
|
"French": "Fransk",
|
||||||
|
"FRI": "Fre",
|
||||||
"fsList": "Dine favorittoppskrifter listes opp her",
|
"fsList": "Dine favorittoppskrifter listes opp her",
|
||||||
"g": "g",
|
"g": "g",
|
||||||
"gal": "gal",
|
"gal": "gal",
|
||||||
|
@ -106,9 +111,12 @@
|
||||||
"it": "Element",
|
"it": "Element",
|
||||||
"Italian": "Italiensk",
|
"Italian": "Italiensk",
|
||||||
"Jamaican": "Jamaikansk",
|
"Jamaican": "Jamaikansk",
|
||||||
|
"January": "Januar",
|
||||||
"Japanese": "Japansk",
|
"Japanese": "Japansk",
|
||||||
"Jewish": "Jødisk",
|
"Jewish": "Jødisk",
|
||||||
"joinTG": "Ta del i Telegram-gruppen",
|
"joinTG": "Ta del i Telegram-gruppen",
|
||||||
|
"July": "July",
|
||||||
|
"June": "June",
|
||||||
"kEdit": "Fortsett å redigere",
|
"kEdit": "Fortsett å redigere",
|
||||||
"Kenyan": "Kenyansk",
|
"Kenyan": "Kenyansk",
|
||||||
"kg": "kg",
|
"kg": "kg",
|
||||||
|
@ -128,6 +136,8 @@
|
||||||
"lunch": "Lunsj",
|
"lunch": "Lunsj",
|
||||||
"mAgo": "for %s måneder siden",
|
"mAgo": "for %s måneder siden",
|
||||||
"Main dishes": "Hovedretter",
|
"Main dishes": "Hovedretter",
|
||||||
|
"March": "March",
|
||||||
|
"May": "May",
|
||||||
"Meat": "Kjøtt",
|
"Meat": "Kjøtt",
|
||||||
"medium": "middels",
|
"medium": "middels",
|
||||||
"Mexican": "Meksikansk",
|
"Mexican": "Meksikansk",
|
||||||
|
@ -137,6 +147,7 @@
|
||||||
"minimal": "minimalistisk",
|
"minimal": "minimalistisk",
|
||||||
"ml": "ml",
|
"ml": "ml",
|
||||||
"Moderate": "Moderat",
|
"Moderate": "Moderat",
|
||||||
|
"MON": "Man",
|
||||||
"newCui": "Nytt kjøkken",
|
"newCui": "Nytt kjøkken",
|
||||||
"Newest first": "Nyeste først",
|
"Newest first": "Nyeste først",
|
||||||
"newRec": "Ny oppskrift",
|
"newRec": "Ny oppskrift",
|
||||||
|
@ -151,8 +162,10 @@
|
||||||
"noRecs": "Ingen oppskrifter samsvarte med søket ditt",
|
"noRecs": "Ingen oppskrifter samsvarte med søket ditt",
|
||||||
"noRecsInL": "Ingen av oppskriftene her samsvarer med søket",
|
"noRecsInL": "Ingen av oppskriftene her samsvarer med søket",
|
||||||
"nos": "Notiser",
|
"nos": "Notiser",
|
||||||
|
"November": "November",
|
||||||
"nwCat": "Ny kategori",
|
"nwCat": "Ny kategori",
|
||||||
"nwYiU": "Ny nyttemengdeenhet",
|
"nwYiU": "Ny nyttemengdeenhet",
|
||||||
|
"October": "Oktober",
|
||||||
"OK": "OK",
|
"OK": "OK",
|
||||||
"Oldest first": "Eldste først",
|
"Oldest first": "Eldste først",
|
||||||
"opts": "Innstillinger",
|
"opts": "Innstillinger",
|
||||||
|
@ -210,10 +223,12 @@
|
||||||
"rst": "Omstart",
|
"rst": "Omstart",
|
||||||
"Russian": "Russisk",
|
"Russian": "Russisk",
|
||||||
"Salads": "Salater",
|
"Salads": "Salater",
|
||||||
|
"SAT": "Sat",
|
||||||
"Sauces": "Sauser",
|
"Sauces": "Sauser",
|
||||||
"Scottish": "Skotsk",
|
"Scottish": "Skotsk",
|
||||||
"Seafood": "Sjømat",
|
"Seafood": "Sjømat",
|
||||||
"selRec": "Velg oppskrift",
|
"selRec": "Velg oppskrift",
|
||||||
|
"September": "September",
|
||||||
"ser": "Søk",
|
"ser": "Søk",
|
||||||
"Serving": "Posjon",
|
"Serving": "Posjon",
|
||||||
"SET": "Sett",
|
"SET": "Sett",
|
||||||
|
@ -235,6 +250,7 @@
|
||||||
"stick": "stang",
|
"stick": "stang",
|
||||||
"stp": "Steg",
|
"stp": "Steg",
|
||||||
"strAdd": "Begynn å legge til oppskriftene dine!",
|
"strAdd": "Begynn å legge til oppskriftene dine!",
|
||||||
|
"SUN": "Søn",
|
||||||
"sVw": "Rist for å vise tilfeldig oppskrift",
|
"sVw": "Rist for å vise tilfeldig oppskrift",
|
||||||
"sVwInfo": "Hjelper deg å velge hva du skal lage når du ikke kan bestemme deg",
|
"sVwInfo": "Hjelper deg å velge hva du skal lage når du ikke kan bestemme deg",
|
||||||
"Swedish": "Svensk",
|
"Swedish": "Svensk",
|
||||||
|
@ -245,6 +261,7 @@
|
||||||
"Teaspoon": "Teskje",
|
"Teaspoon": "Teskje",
|
||||||
"Thai": "Thailandsk",
|
"Thai": "Thailandsk",
|
||||||
"Theme": "Drakt",
|
"Theme": "Drakt",
|
||||||
|
"THU": "Tor",
|
||||||
"title": "Tittel",
|
"title": "Tittel",
|
||||||
"tLInfo": "Oppskrifter du ønsker å prøve senere listes opp her",
|
"tLInfo": "Oppskrifter du ønsker å prøve senere listes opp her",
|
||||||
"today": "i dag",
|
"today": "i dag",
|
||||||
|
@ -255,6 +272,7 @@
|
||||||
"ts": "Etiketter",
|
"ts": "Etiketter",
|
||||||
"tsInfo": "inndel med mellomrom",
|
"tsInfo": "inndel med mellomrom",
|
||||||
"tsp": "ts",
|
"tsp": "ts",
|
||||||
|
"TUE": "Tir",
|
||||||
"Turkish": "Tyrkisk",
|
"Turkish": "Tyrkisk",
|
||||||
"Undefined": "Udefinert",
|
"Undefined": "Udefinert",
|
||||||
"unit": "enhet",
|
"unit": "enhet",
|
||||||
|
@ -265,24 +283,12 @@
|
||||||
"Vegetarian": "Vegetar",
|
"Vegetarian": "Vegetar",
|
||||||
"Vietnamese": "Vietnamesisk",
|
"Vietnamese": "Vietnamesisk",
|
||||||
"wAgo": "for %s uker siden",
|
"wAgo": "for %s uker siden",
|
||||||
|
"WED": "Ons",
|
||||||
"yesterday": "i går",
|
"yesterday": "i går",
|
||||||
"yieldQ": "Nyttemengde",
|
"yieldQ": "Nyttemengde",
|
||||||
"yieldU": "Enhet for nyttemengde",
|
"yieldU": "Enhet for nyttemengde",
|
||||||
"yld": "Nyttemengde",
|
"yld": "Nyttemengde",
|
||||||
"buto": "Støttet opp til %s",
|
"buto": "Støttet opp til %s",
|
||||||
"sysDefB": "Systemforvalg + Svart",
|
"sysDefB": "Systemforvalg + Svart",
|
||||||
"sec": "s",
|
"sec": "s"
|
||||||
"ntmr": "Nytt tidsur",
|
|
||||||
"gtD": "Gå til dato",
|
|
||||||
"random": "Tilfeldig",
|
|
||||||
"notifSetg": "Merknadsinnstillinger",
|
|
||||||
"tmrRm": "Tidsur fjernet",
|
|
||||||
"seconds": "sekunder",
|
|
||||||
"hours": "timer",
|
|
||||||
"hour": "time",
|
|
||||||
"minutes": "minutter",
|
|
||||||
"minute": "minutt",
|
|
||||||
"delay": "Utsett",
|
|
||||||
"stop": "Stopp",
|
|
||||||
"strtBtn": "Start"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,9 @@
|
||||||
"appInfo": "EnRecipes in een open source, privacybewust digitaal kookboek waarmee je recepten kunt aanmaken, beheren en delen",
|
"appInfo": "EnRecipes in een open source, privacybewust digitaal kookboek waarmee je recepten kunt aanmaken, beheren en delen",
|
||||||
"apply": "TOEPASSEN",
|
"apply": "TOEPASSEN",
|
||||||
"appRst": "Herstart vereist",
|
"appRst": "Herstart vereist",
|
||||||
|
"April": "april",
|
||||||
"aStpBtn": "STAP TOEVOEGEN",
|
"aStpBtn": "STAP TOEVOEGEN",
|
||||||
|
"August": "augustus",
|
||||||
"Barbecue": "Barbecue",
|
"Barbecue": "Barbecue",
|
||||||
"Beverages": "Drankjes",
|
"Beverages": "Drankjes",
|
||||||
"Black": "Zwart",
|
"Black": "Zwart",
|
||||||
|
@ -51,6 +53,7 @@
|
||||||
"Dark": "Donker",
|
"Dark": "Donker",
|
||||||
"db": "Databank",
|
"db": "Databank",
|
||||||
"dBtn": "VERWIJDEREN",
|
"dBtn": "VERWIJDEREN",
|
||||||
|
"December": "december",
|
||||||
"delRecInfo": "Je staat op het punt om %s te verwijderen",
|
"delRecInfo": "Je staat op het punt om %s te verwijderen",
|
||||||
"delRecsInfo": "Je staat op het punt om %s permanent te verwijderen",
|
"delRecsInfo": "Je staat op het punt om %s permanent te verwijderen",
|
||||||
"Desserts": "Nagerechten",
|
"Desserts": "Nagerechten",
|
||||||
|
@ -72,12 +75,14 @@
|
||||||
"expip": "Bezig met exporteren",
|
"expip": "Bezig met exporteren",
|
||||||
"expSuc": "Exporteren voltooid",
|
"expSuc": "Exporteren voltooid",
|
||||||
"favourites": "Favorieten",
|
"favourites": "Favorieten",
|
||||||
|
"February": "februari",
|
||||||
"Filipino": "Filipijns",
|
"Filipino": "Filipijns",
|
||||||
"Filtered recipes": "Gefilterde recepten",
|
"Filtered recipes": "Gefilterde recepten",
|
||||||
"fl oz": "fl oz",
|
"fl oz": "fl oz",
|
||||||
"fltr": "Filteren",
|
"fltr": "Filteren",
|
||||||
"Fluid Ounce": "Vloeibaar ons",
|
"Fluid Ounce": "Vloeibaar ons",
|
||||||
"French": "Frans",
|
"French": "Frans",
|
||||||
|
"FRI": "VRIJ",
|
||||||
"fsList": "Hier vind je je favoriete recepten terug",
|
"fsList": "Hier vind je je favoriete recepten terug",
|
||||||
"g": "g",
|
"g": "g",
|
||||||
"gal": "gal",
|
"gal": "gal",
|
||||||
|
@ -103,12 +108,15 @@
|
||||||
"intf": "Uiterlijk",
|
"intf": "Uiterlijk",
|
||||||
"invFile": "Ongeldig bestand",
|
"invFile": "Ongeldig bestand",
|
||||||
"Irish": "Iers",
|
"Irish": "Iers",
|
||||||
"it": "Item %s",
|
"it": "Item",
|
||||||
"Italian": "Italiaans",
|
"Italian": "Italiaans",
|
||||||
"Jamaican": "Jamaicaans",
|
"Jamaican": "Jamaicaans",
|
||||||
|
"January": "januari",
|
||||||
"Japanese": "Japans",
|
"Japanese": "Japans",
|
||||||
"Jewish": "Joods",
|
"Jewish": "Joods",
|
||||||
"joinTG": "Word lid van de Telegram-groep",
|
"joinTG": "Word lid van de Telegram-groep",
|
||||||
|
"July": "juli",
|
||||||
|
"June": "juni",
|
||||||
"kEdit": "DOORGAAN MET BEWERKEN",
|
"kEdit": "DOORGAAN MET BEWERKEN",
|
||||||
"Kenyan": "Keniaans",
|
"Kenyan": "Keniaans",
|
||||||
"kg": "kg",
|
"kg": "kg",
|
||||||
|
@ -128,6 +136,8 @@
|
||||||
"lunch": "Lunch",
|
"lunch": "Lunch",
|
||||||
"mAgo": "%s maanden geleden",
|
"mAgo": "%s maanden geleden",
|
||||||
"Main dishes": "Hoofdgerechten",
|
"Main dishes": "Hoofdgerechten",
|
||||||
|
"March": "maart",
|
||||||
|
"May": "mei",
|
||||||
"Meat": "Vlees",
|
"Meat": "Vlees",
|
||||||
"medium": "middelgroot",
|
"medium": "middelgroot",
|
||||||
"Mexican": "Mexicaans",
|
"Mexican": "Mexicaans",
|
||||||
|
@ -137,6 +147,7 @@
|
||||||
"minimal": "Minimaal",
|
"minimal": "Minimaal",
|
||||||
"ml": "ml",
|
"ml": "ml",
|
||||||
"Moderate": "Gemiddeld",
|
"Moderate": "Gemiddeld",
|
||||||
|
"MON": "MA",
|
||||||
"newCui": "Nieuwe keuken",
|
"newCui": "Nieuwe keuken",
|
||||||
"Newest first": "Nieuwste bovenaan",
|
"Newest first": "Nieuwste bovenaan",
|
||||||
"newRec": "Nieuw recept",
|
"newRec": "Nieuw recept",
|
||||||
|
@ -151,8 +162,10 @@
|
||||||
"noRecs": "Er zijn geen overeenkomende zoekresultaten",
|
"noRecs": "Er zijn geen overeenkomende zoekresultaten",
|
||||||
"noRecsInL": "Geen van deze recepten komt overeen met je zoekopdracht",
|
"noRecsInL": "Geen van deze recepten komt overeen met je zoekopdracht",
|
||||||
"nos": "Aantekeningen",
|
"nos": "Aantekeningen",
|
||||||
|
"November": "november",
|
||||||
"nwCat": "Nieuwe categorie",
|
"nwCat": "Nieuwe categorie",
|
||||||
"nwYiU": "Nieuwe eenheid",
|
"nwYiU": "Nieuwe eenheid",
|
||||||
|
"October": "oktober",
|
||||||
"OK": "Oké",
|
"OK": "Oké",
|
||||||
"Oldest first": "Oudste bovenaan",
|
"Oldest first": "Oudste bovenaan",
|
||||||
"opts": "Opties",
|
"opts": "Opties",
|
||||||
|
@ -187,7 +200,7 @@
|
||||||
"recs": "recepten",
|
"recs": "recepten",
|
||||||
"recTitle": "Mijn gezonde recept",
|
"recTitle": "Mijn gezonde recept",
|
||||||
"recU": "Bijgewerkt:",
|
"recU": "Bijgewerkt:",
|
||||||
"req": "%s vereist",
|
"req": "Vereiste %s",
|
||||||
"resNF": "Recept niet gevonden",
|
"resNF": "Recept niet gevonden",
|
||||||
"rest": "Standaardwaarden",
|
"rest": "Standaardwaarden",
|
||||||
"restCatL": "Categorieënlijst herstellen",
|
"restCatL": "Categorieënlijst herstellen",
|
||||||
|
@ -210,10 +223,12 @@
|
||||||
"rst": "HERSTARTEN",
|
"rst": "HERSTARTEN",
|
||||||
"Russian": "Russisch",
|
"Russian": "Russisch",
|
||||||
"Salads": "Salades",
|
"Salads": "Salades",
|
||||||
|
"SAT": "ZA",
|
||||||
"Sauces": "Sausen",
|
"Sauces": "Sausen",
|
||||||
"Scottish": "Schots",
|
"Scottish": "Schots",
|
||||||
"Seafood": "Zeevruchten",
|
"Seafood": "Zeevruchten",
|
||||||
"selRec": "Recept kiezen",
|
"selRec": "Recept kiezen",
|
||||||
|
"September": "september",
|
||||||
"ser": "Zoeken",
|
"ser": "Zoeken",
|
||||||
"Serving": "Portie",
|
"Serving": "Portie",
|
||||||
"SET": "INSTELLEN",
|
"SET": "INSTELLEN",
|
||||||
|
@ -233,8 +248,9 @@
|
||||||
"sru": "Recept delen via…",
|
"sru": "Recept delen via…",
|
||||||
"stars": "Waardering",
|
"stars": "Waardering",
|
||||||
"stick": "stokje",
|
"stick": "stokje",
|
||||||
"stp": "Stap %s",
|
"stp": "Stap",
|
||||||
"strAdd": "Voeg je recepten toe!",
|
"strAdd": "Voeg je recepten toe!",
|
||||||
|
"SUN": "ZO",
|
||||||
"sVw": "Schudden om willekeurig recept te tonen",
|
"sVw": "Schudden om willekeurig recept te tonen",
|
||||||
"sVwInfo": "Handig voor als je even niet weet wat je wilt maken",
|
"sVwInfo": "Handig voor als je even niet weet wat je wilt maken",
|
||||||
"Swedish": "Zweeds",
|
"Swedish": "Zweeds",
|
||||||
|
@ -245,6 +261,7 @@
|
||||||
"Teaspoon": "Theelepel",
|
"Teaspoon": "Theelepel",
|
||||||
"Thai": "Thais",
|
"Thai": "Thais",
|
||||||
"Theme": "Thema",
|
"Theme": "Thema",
|
||||||
|
"THU": "DO",
|
||||||
"title": "Naam",
|
"title": "Naam",
|
||||||
"tLInfo": "Hier vind je de recepten terug die je later wilt uitproberen",
|
"tLInfo": "Hier vind je de recepten terug die je later wilt uitproberen",
|
||||||
"today": "vandaag",
|
"today": "vandaag",
|
||||||
|
@ -255,6 +272,7 @@
|
||||||
"ts": "Labels",
|
"ts": "Labels",
|
||||||
"tsInfo": "kommagescheiden",
|
"tsInfo": "kommagescheiden",
|
||||||
"tsp": "tl",
|
"tsp": "tl",
|
||||||
|
"TUE": "DI",
|
||||||
"Turkish": "Turks",
|
"Turkish": "Turks",
|
||||||
"Undefined": "Onbekend",
|
"Undefined": "Onbekend",
|
||||||
"unit": "eenheid",
|
"unit": "eenheid",
|
||||||
|
@ -265,6 +283,7 @@
|
||||||
"Vegetarian": "Vegetarisch",
|
"Vegetarian": "Vegetarisch",
|
||||||
"Vietnamese": "Vietnamees",
|
"Vietnamese": "Vietnamees",
|
||||||
"wAgo": "%s weken geleden",
|
"wAgo": "%s weken geleden",
|
||||||
|
"WED": "WOE",
|
||||||
"yesterday": "gisteren",
|
"yesterday": "gisteren",
|
||||||
"yieldQ": "Hoeveelheid",
|
"yieldQ": "Hoeveelheid",
|
||||||
"yieldU": "Eenheid",
|
"yieldU": "Eenheid",
|
||||||
|
@ -279,6 +298,7 @@
|
||||||
"tmrSnd": "Kookwekkergeluid",
|
"tmrSnd": "Kookwekkergeluid",
|
||||||
"aTPrst": "Toegevoegd aan voorinstellingen",
|
"aTPrst": "Toegevoegd aan voorinstellingen",
|
||||||
"fwr": "bij welk recept?",
|
"fwr": "bij welk recept?",
|
||||||
|
"tmrPrsts": "Kookwekker: voorinstellingen",
|
||||||
"prstBtn": "VOORINSTELLINGEN",
|
"prstBtn": "VOORINSTELLINGEN",
|
||||||
"stop": "Stoppen",
|
"stop": "Stoppen",
|
||||||
"tmrvbrt": "Kookwekker laten trillen",
|
"tmrvbrt": "Kookwekker laten trillen",
|
||||||
|
@ -288,44 +308,5 @@
|
||||||
"minutes": "minuten",
|
"minutes": "minuten",
|
||||||
"minute": "minuut",
|
"minute": "minuut",
|
||||||
"dlyDur": "Vertragingsduur",
|
"dlyDur": "Vertragingsduur",
|
||||||
"delay": "Vertraging",
|
"delay": "Vertraging"
|
||||||
"notifSetg": "Meldingsinstellingen",
|
|
||||||
"tmrRm": "De kookwekker is verwijderd",
|
|
||||||
"delPrst": "Je staat op het punt om %s te verwijderen uit de voorinstellingen",
|
|
||||||
"prsts": "Voorinstellingen",
|
|
||||||
"ttv": "Druk om te bekijken",
|
|
||||||
"dismissAll": "Alle kookwekkers verwerpen",
|
|
||||||
"dismiss": "Verwerpen",
|
|
||||||
"texp": "%s kookwekkers zijn afgegaan",
|
|
||||||
"wDBy": "%1$s is %2$s vertraagd",
|
|
||||||
"prstTU": "De tijd is bijgewerkt",
|
|
||||||
"ccwt": "Kook vol vertrouwen d.m.v. kookwekkers!",
|
|
||||||
"gtD": "Ga naar datum",
|
|
||||||
"random": "Willekeurig",
|
|
||||||
"ystr": "Gisteren",
|
|
||||||
"tmrw": "Morgen",
|
|
||||||
"tdy": "Vandaag",
|
|
||||||
"cpy": "kopie",
|
|
||||||
"d": "Dag",
|
|
||||||
"wk": "Week",
|
|
||||||
"mnth": "Maand",
|
|
||||||
"calVM": "Weergavemodus van kalender",
|
|
||||||
"oAP": "%1$s lopende; %2$s onderbroken",
|
|
||||||
"nvr": "Nooit",
|
|
||||||
"otaw": "Ouder dan een week",
|
|
||||||
"otam": "Ouder dan een maand",
|
|
||||||
"otay": "Ouder dan een jaar",
|
|
||||||
"admp": "Schema's automatisch verwijderen",
|
|
||||||
"plsCrt": "Druk op de plusknop om een schema toe te voegen",
|
|
||||||
"ehwmp": "Eet gezond met maaltijdschema's!",
|
|
||||||
"selMT": "Kies het soort maaltijd",
|
|
||||||
"rstBtn": "STANDAARDWAARDEN",
|
|
||||||
"add": "Toevoegen",
|
|
||||||
"esgbInfo": "Schakel deze optie uit als je problemen ervaart tijdens het navigeren",
|
|
||||||
"esgb": "Vegen vanaf schermrand om terug te gaan",
|
|
||||||
"ksavrInfo": "Voorkomt dat het scherm wordt uitgeschakeld tijdens het bekijken van een recept",
|
|
||||||
"ksavr": "Scherm niet uitschakelen tijdens bekijken van recept",
|
|
||||||
"addSectBtn": "SECTIE TOEVOEGEN",
|
|
||||||
"sect": "Sectie %s",
|
|
||||||
"sectRm": "De sectie is verwijderd"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
"addCmbBtn": "ADICIONE COMBINAÇÃO",
|
"addCmbBtn": "ADICIONE COMBINAÇÃO",
|
||||||
"aFBu": "Adicione um receita para realizar um backup",
|
"aFBu": "Adicione um receita para realizar um backup",
|
||||||
"aIngBtn": "ADICIONE INGREDIENTE",
|
"aIngBtn": "ADICIONE INGREDIENTE",
|
||||||
"aNBtn": "ADICIONAR NOVO",
|
"aNBtn": "adicionar novo",
|
||||||
"aNoBtn": "ADICIONAR NOTA",
|
"aNoBtn": "ADICIONAR NOTA",
|
||||||
"app.name": "EnRecipes",
|
"app.name": "EnRecipes",
|
||||||
"Appetizers": "Aperitivos",
|
"Appetizers": "Aperitivos",
|
||||||
|
@ -18,29 +18,29 @@
|
||||||
"cat": "Categoria",
|
"cat": "Categoria",
|
||||||
"cBtn": "CANCELAR",
|
"cBtn": "CANCELAR",
|
||||||
"clove": "dente de alho",
|
"clove": "dente de alho",
|
||||||
"cm": "cm",
|
"cm": "Centimetro",
|
||||||
"cmbs": "Combinações",
|
"cmbs": "Combinação",
|
||||||
"conBtn": "CONTINUAR",
|
"conBtn": "continuar",
|
||||||
"conf": "Confirmar",
|
"conf": "Confirmar",
|
||||||
"cookT": "Tempo de cozimento",
|
"cookT": "Tempo de cozimento",
|
||||||
"Created": "Criada",
|
"Created": "Criar",
|
||||||
"cup": "copo",
|
"cup": "copo",
|
||||||
"Cup": "Copo",
|
"Cup": "Copo",
|
||||||
"Dark": "Escuro",
|
"Dark": "Escuro",
|
||||||
"db": "Banco de dados",
|
"db": "Base de dados",
|
||||||
"dBtn": "APAGAR",
|
"dBtn": "Deletar",
|
||||||
"Desserts": "Sobremesas",
|
"Desserts": "Sobremesas",
|
||||||
"dozen": "dúzia",
|
"dozen": "dúzia",
|
||||||
"drop": "gota",
|
"drop": "solta",
|
||||||
"dsp": "cds",
|
"dsp": "cds",
|
||||||
"editRec": "Editar receita",
|
"editRec": "Editar receita",
|
||||||
"EnRecipes": "EnRecipes",
|
"EnRecipes": "EnRecipes",
|
||||||
"expBu": "Exportar backup completo",
|
"expBu": "Exportar backup completo",
|
||||||
"favourites": "Favoritos",
|
"favourites": "Favoritos",
|
||||||
"fl oz": "fl oz",
|
"fl oz": "onça fluída",
|
||||||
"Fluid Ounce": "Onça fluída (Oz.)",
|
"Fluid Ounce": "Onça Fluída (Oz.)",
|
||||||
"fsList": "Suas receitas favoritas estão listadas aqui",
|
"fsList": "Suas receitas favoritas estão listadas aqui",
|
||||||
"g": "g",
|
"g": "grama",
|
||||||
"gal": "gal",
|
"gal": "gal",
|
||||||
"Gallon": "Galão",
|
"Gallon": "Galão",
|
||||||
"Gram": "Grama",
|
"Gram": "Grama",
|
||||||
|
@ -49,13 +49,13 @@
|
||||||
"hr": "h",
|
"hr": "h",
|
||||||
"impBu": "Importar dados",
|
"impBu": "Importar dados",
|
||||||
"impInfo": "Suporta backups completos exportados por este aplicativo",
|
"impInfo": "Suporta backups completos exportados por este aplicativo",
|
||||||
"in": "in",
|
"in": "Entrar",
|
||||||
"ings": "Ingredientes",
|
"ings": "Ingredientes",
|
||||||
"inss": "Instruções",
|
"inss": "Instruções",
|
||||||
"intf": "Interface",
|
"intf": "Interface",
|
||||||
"it": "Item",
|
"it": "Item",
|
||||||
"joinTG": "Junte-se ao grupo Telegram",
|
"joinTG": "Junte-se ao grupo Telegram",
|
||||||
"kg": "kg",
|
"kg": "Kilo",
|
||||||
"Kilogram": "Quilograma",
|
"Kilogram": "Quilograma",
|
||||||
"l": "litro",
|
"l": "litro",
|
||||||
"lang": "Idioma",
|
"lang": "Idioma",
|
||||||
|
@ -69,7 +69,7 @@
|
||||||
"Main dishes": "Pratos principais",
|
"Main dishes": "Pratos principais",
|
||||||
"Meat": "Carnes",
|
"Meat": "Carnes",
|
||||||
"medium": "médio",
|
"medium": "médio",
|
||||||
"mg": "mg",
|
"mg": "Miligrama",
|
||||||
"Millilitre": "Mililitro",
|
"Millilitre": "Mililitro",
|
||||||
"min": "min",
|
"min": "min",
|
||||||
"ml": "ml",
|
"ml": "ml",
|
||||||
|
@ -79,18 +79,19 @@
|
||||||
"no": "Nota",
|
"no": "Nota",
|
||||||
"noFavs": "Ainda não há favoritos",
|
"noFavs": "Ainda não há favoritos",
|
||||||
"Noodles": "Macarrão fita",
|
"Noodles": "Macarrão fita",
|
||||||
"noRecs": "Nenhuma receita corresponde à sua busca",
|
"noRecs": "Nenhuma receita corresponde à sua pesquisa",
|
||||||
"nos": "Notas",
|
"nos": "Notas",
|
||||||
|
"November": "Novembro",
|
||||||
"Ounce": "Onça",
|
"Ounce": "Onça",
|
||||||
"oz": "onça",
|
"oz": "onça",
|
||||||
"Pasta": "Macarrão",
|
"Pasta": "Macarrão",
|
||||||
"Patty": "Empada",
|
"Patty": "Empada",
|
||||||
"pht": "Foto da receita",
|
"pht": "Foto da receita",
|
||||||
"piece": "peça",
|
"piece": "peça",
|
||||||
"Piece": "Peça",
|
"Piece": "Pedaço",
|
||||||
"pinch": "pitada",
|
"pinch": "pitada",
|
||||||
"planner": "Planejador de refeições",
|
"planner": "Planejador de refeições",
|
||||||
"plsAdd": "Use o botão de adição para adicionar uma",
|
"plsAdd": "Use o botão de adição para adicionar um",
|
||||||
"Poultry": "Carne de aves",
|
"Poultry": "Carne de aves",
|
||||||
"Pound": "Libra",
|
"Pound": "Libra",
|
||||||
"prepT": "Tempo de preparação",
|
"prepT": "Tempo de preparação",
|
||||||
|
@ -99,12 +100,12 @@
|
||||||
"rBtn": "REMOVER",
|
"rBtn": "REMOVER",
|
||||||
"rec": "Receita",
|
"rec": "Receita",
|
||||||
"recListEmp": "Nada aqui! Adicione algumas receitas e tente novamente",
|
"recListEmp": "Nada aqui! Adicione algumas receitas e tente novamente",
|
||||||
"recTitle": "Minha receita saudável",
|
"recTitle": "Minha Receita Saudável",
|
||||||
"Rice": "Arroz",
|
"Rice": "Arroz",
|
||||||
"rmCatInfo": "Você está prestes a remover %s da lista de categorias",
|
"rmCatInfo": "Você está prestes a remover a categoria",
|
||||||
"rmCuiInfo": "Você está prestes a remover %s da lista de cozinha",
|
"rmCuiInfo": "Você está prestes a remover a cozinha",
|
||||||
"rmUInfo": "Você está prestes a remover %s da lista de unidades",
|
"rmUInfo": "Você está prestes a remover a unidade",
|
||||||
"rmYUInfo": "Você está prestes a remover %s das unidades de porção",
|
"rmYUInfo": "Você está prestes a remover a unidade de porção",
|
||||||
"Roll": "Lista",
|
"Roll": "Lista",
|
||||||
"rst": "REINICIAR",
|
"rst": "REINICIAR",
|
||||||
"Salads": "Saladas",
|
"Salads": "Saladas",
|
||||||
|
@ -113,11 +114,11 @@
|
||||||
"selRec": "Selecione a receita",
|
"selRec": "Selecione a receita",
|
||||||
"ser": "Procurar",
|
"ser": "Procurar",
|
||||||
"Serving": "Porção",
|
"Serving": "Porção",
|
||||||
"SET": "DEFINIR",
|
"SET": "definir",
|
||||||
"Settings": "Ajustes",
|
"Settings": "Ajustes",
|
||||||
"shr": "Compartilhar",
|
"shr": "compartilhar",
|
||||||
"Side dishes": "Acompanhamentos",
|
"Side dishes": "Acompanhamentos",
|
||||||
"sltd": "selecionada",
|
"sltd": "Selecionar",
|
||||||
"small": "pequeno",
|
"small": "pequeno",
|
||||||
"Soups": "Sopas",
|
"Soups": "Sopas",
|
||||||
"srt": "Ordenar",
|
"srt": "Ordenar",
|
||||||
|
@ -134,36 +135,48 @@
|
||||||
"trylater": "Experimentar depois",
|
"trylater": "Experimentar depois",
|
||||||
"tsp": "cc",
|
"tsp": "cc",
|
||||||
"Undefined": "Indefinido",
|
"Undefined": "Indefinido",
|
||||||
"unit": "unidade",
|
"unit": "Unidade",
|
||||||
"Vegan": "Vegana",
|
"Vegan": "Vegano",
|
||||||
"Vegetarian": "Vegetariana",
|
"Vegetarian": "Vegetariano",
|
||||||
"yieldQ": "Quantidade de porção",
|
"yieldQ": "Quantidade de porção",
|
||||||
"yieldU": "Unidade de porção",
|
"yieldU": "Unidade de porção",
|
||||||
|
"MON": "SEG",
|
||||||
|
"FRI": "SEX",
|
||||||
|
"WED": "VIA",
|
||||||
"req": "Necessárias %s",
|
"req": "Necessárias %s",
|
||||||
"kEdit": "CONTINUAR EDITANDO",
|
"SAT": "SÁB",
|
||||||
"Kenyan": "Queniana",
|
"SUN": "DOM",
|
||||||
"Korean": "Coreana",
|
"THU": "QUI",
|
||||||
|
"TUE": "TER",
|
||||||
|
"July": "Julho",
|
||||||
|
"June": "Junho",
|
||||||
|
"kEdit": "EDITOR DE KEEP",
|
||||||
|
"Kenyan": "Queniano",
|
||||||
|
"Korean": "Coreano",
|
||||||
"Last updated": "Última atualização",
|
"Last updated": "Última atualização",
|
||||||
"ltAgo": "há muito tempo",
|
"ltAgo": "há muito tempo",
|
||||||
"lunch": "Almoço",
|
"lunch": "Almoço",
|
||||||
"Mexican": "Mexicana",
|
"March": "Março",
|
||||||
|
"May": "Maio",
|
||||||
|
"Mexican": "Mexicano",
|
||||||
"minimal": "Mínimo",
|
"minimal": "Mínimo",
|
||||||
"Moderate": "Moderado",
|
"Moderate": "Moderado",
|
||||||
"newCui": "Nova cozinha",
|
"newCui": "Nova cozinha",
|
||||||
"Newest first": "A mais nova primeiro",
|
"Newest first": "O mais novo primeiro",
|
||||||
"newUnit": "Nova unidade",
|
"newUnit": "Nova unidade",
|
||||||
"Nigerian": "Nigeriana",
|
"Nigerian": "Nigeriano",
|
||||||
"noAccSensor": "O sensor do acelerômetro está desativado ou não está funcionando",
|
"noAccSensor": "O sensor do acelerômetro está desativado ou não está funcionando",
|
||||||
"noRecsInL": "Nenhuma das receitas aqui corresponde à sua busca",
|
"noRecsInL": "Nenhuma das receitas aqui corresponde à sua busca",
|
||||||
"nwCat": "Nova categoria",
|
"nwCat": "Nova categoria",
|
||||||
"nwYiU": "Nova unidade de porção",
|
"nwYiU": "Nova unidade de porção",
|
||||||
|
"October": "Outubro",
|
||||||
"OK": "OK",
|
"OK": "OK",
|
||||||
"Oldest first": "As mais antigas primeiro",
|
"Oldest first": "Os mais antigos",
|
||||||
"opts": "Opções",
|
"opts": "Opções",
|
||||||
"photogrid": "Grade de fotos",
|
"photogrid": "Grade de fotos",
|
||||||
"Portuguese": "Portuguesa",
|
"Portuguese": "Português",
|
||||||
"priv": "Política de privacidade",
|
"priv": "Política de privacidade",
|
||||||
"Quickest first": "Primeiro a mais rápida",
|
"Quickest first": "Primeiro o mais rápido",
|
||||||
"Rating": "Classificação",
|
"Rating": "Classificação",
|
||||||
"recE": "Já existe:",
|
"recE": "Já existe:",
|
||||||
"swm": "Início da semana na segunda",
|
"swm": "Início da semana na segunda",
|
||||||
|
@ -173,66 +186,70 @@
|
||||||
"trySer": "PROCURAR EM TODAS AS RECEITAS?",
|
"trySer": "PROCURAR EM TODAS AS RECEITAS?",
|
||||||
"ts": "Etiquetas",
|
"ts": "Etiquetas",
|
||||||
"tsInfo": "separar com espaços",
|
"tsInfo": "separar com espaços",
|
||||||
"Turkish": "Turca",
|
"Turkish": "Turco",
|
||||||
"Unit": "Unidade",
|
"Unit": "Unidade",
|
||||||
"unsaved": "Mudanças não salvas",
|
"unsaved": "Mudanças não salvas",
|
||||||
"untRec": "Receita sem título",
|
"untRec": "Receita sem título",
|
||||||
"Vietnamese": "Vietnamita",
|
"Vietnamese": "Vietnamita",
|
||||||
"yesterday": "ontem",
|
"yesterday": "ontem",
|
||||||
"buto": "Backup em %s",
|
"buto": "Com apoio até %s",
|
||||||
"Swedish": "Sueca",
|
"Swedish": "Sueco",
|
||||||
"sVwInfo": "Ajuda a escolher o que cozinhar quando você não pode decidir",
|
"sVwInfo": "Ajuda a escolher o que cozinhar quando você não pode decidir",
|
||||||
"sVw": "Sacudir para ver a receita aleatória",
|
"sVw": "Sacudir para ver a receita aleatória",
|
||||||
"stars": "Classificação em estrelas",
|
"stars": "Classificação em estrelas",
|
||||||
"sru": "Compartilhar receita usando...",
|
"sru": "Compartilhar receita usando...",
|
||||||
"srpu": "Compartilhar foto da receita usando...",
|
"srpu": "Compartilhar foto da receita usando...",
|
||||||
"Sri Lankan": "Cingalesa",
|
"Sri Lankan": "Sri Lanka",
|
||||||
"Spanish": "Espanhola",
|
"Spanish": "Espanhol",
|
||||||
"snacks": "Lanches",
|
"snacks": "Lanches",
|
||||||
"Slowest first": "Mais lenta primeiro",
|
"Slowest first": "Mais lento primeiro",
|
||||||
"simple": "Simples",
|
"simple": "Simples",
|
||||||
"Scottish": "Escocesa",
|
"September": "Setembro",
|
||||||
"Russian": "Russa",
|
"Scottish": "Escocês",
|
||||||
|
"Russian": "Russo",
|
||||||
"rp": "Retirar foto",
|
"rp": "Retirar foto",
|
||||||
"rmN": "Nota removida",
|
"rmN": "Nota removida",
|
||||||
"rmIns": "Instrução removida",
|
"rmIns": "Instrução retirada",
|
||||||
"rmIng": "Ingrediente removido",
|
"rmIng": "Ingrediente removido",
|
||||||
"rmCmb": "Combinação removida",
|
"rmCmb": "Combinação removida",
|
||||||
"restYUL": "Redefinir a lista de unidades de porção",
|
"restYUL": "Redefinir a lista de unidades de porção",
|
||||||
"restUL": "Redefinir a lista de unidades",
|
"restUL": "Reiniciar a lista de unidades",
|
||||||
"restInfo": "A redefinição de uma lista eliminará as entradas criadas pelo usuário e restaurará as entradas padrão. As receitas existentes não serão afetadas.",
|
"restInfo": "A redefinição de uma lista eliminará as entradas criadas pelo usuário e restaurará as entradas padrão. As receitas existentes não serão afetadas.",
|
||||||
"restDone": "Reposição feita",
|
"restDone": "Reposição feita",
|
||||||
"restCuiL": "Redefinir a lista de cozinha",
|
"restCuiL": "Reiniciar a lista de cozinha",
|
||||||
"restCatL": "Redefinir lista de categorias",
|
"restCatL": "Redefinir lista de categorias",
|
||||||
"rest": "Redefinir",
|
"rest": "Redefinir",
|
||||||
"resNF": "Receita não encontrada",
|
"resNF": "Receita não encontrada",
|
||||||
"recU": "Atualizado:",
|
"recU": "Atualizado:",
|
||||||
"recs": "receitas",
|
"recs": "receitas",
|
||||||
"recRm": "Receita removida",
|
"recRm": "Receita retirada",
|
||||||
"recF": "receitas encontradas",
|
"recF": "receitas encontradas",
|
||||||
"recI": "Importado:",
|
"recI": "Importado:",
|
||||||
"recPic": "Foto da receita",
|
"recPic": "Foto da receita",
|
||||||
"aap": "Anexe uma foto",
|
"aap": "Anexe uma foto",
|
||||||
"allCats": "Todas as categorias",
|
"allCats": "Todas as categorias",
|
||||||
"allCuis": "Todas as culinárias",
|
"allCuis": "Todas as culinárias",
|
||||||
"allTs": "Todas as etiquetas",
|
"allTs": "Todas as Tags",
|
||||||
"American": "Americana",
|
"American": "Americano",
|
||||||
"appCrd": "Compartilhado via EnRecipes. Obtenha-o no F-Droid, IzzyOnDroid ou na Play Store.",
|
"appCrd": "Compartilhado via EnRecipes. Obtenha-o no F-Droid, IzzyOnDroid ou na Play Store.",
|
||||||
"appInfo": "EnRecipes é um livro de receitas digital de código aberto, que lhe permite criar, gerenciar e compartilhar suas receitas",
|
"appInfo": "EnRecipes é um livro de receitas digital de código aberto, que lhe permite criar, gerenciar e compartilhar suas receitas",
|
||||||
"apply": "APLIQUE",
|
"apply": "APLIQUE",
|
||||||
|
"April": "Abril",
|
||||||
|
"August": "Agosto",
|
||||||
"Black": "Preto",
|
"Black": "Preto",
|
||||||
"Brazilian": "Brasileira",
|
"Brazilian": "Brasileiro",
|
||||||
"breakfast": "Café da manhã",
|
"breakfast": "Café da manhã",
|
||||||
"British": "Britânica",
|
"British": "Britânico",
|
||||||
"buEmp": "O arquivo de backup está vazio",
|
"buEmp": "O arquivo de backup está vazio",
|
||||||
"buFol": "Pasta de backup",
|
"buFol": "Pasta de backup",
|
||||||
"buInc": "Arquivo de backup malformado ou corrupto",
|
"buInc": "Arquivo de backup malformado ou corrupto",
|
||||||
"buMod": "O arquivo de backup foi modificado em outro lugar",
|
"buMod": "O arquivo de backup foi modificado em outro lugar",
|
||||||
"Challenging": "Difícil",
|
"Challenging": "Desafiando",
|
||||||
"Chinese": "Chinesa",
|
"Chinese": "Chinês",
|
||||||
"cPic": "Recorte da foto",
|
"cPic": "Foto do corte",
|
||||||
"cui": "Cozinha",
|
"cui": "Cozinha",
|
||||||
"Danish": "Dinamarquesa",
|
"Danish": "Dinamarquês",
|
||||||
|
"December": "Dezembro",
|
||||||
"delRecInfo": "Você está prestes a apagar permanentemente a receita %s",
|
"delRecInfo": "Você está prestes a apagar permanentemente a receita %s",
|
||||||
"delRecsInfo": "Você está prestes a apagar permanentemente %s",
|
"delRecsInfo": "Você está prestes a apagar permanentemente %s",
|
||||||
"detailed": "Detalhado",
|
"detailed": "Detalhado",
|
||||||
|
@ -242,30 +259,32 @@
|
||||||
"disc": "Esta receita tem mudanças não salvas. O que você gostaria de fazer?",
|
"disc": "Esta receita tem mudanças não salvas. O que você gostaria de fazer?",
|
||||||
"donate": "Doe",
|
"donate": "Doe",
|
||||||
"Easy": "Fácil",
|
"Easy": "Fácil",
|
||||||
"Egyptian": "Egípcia",
|
"Egyptian": "Egípcio",
|
||||||
"English": "Inglesa",
|
"English": "Inglês",
|
||||||
"expip": "Exportação em curso",
|
"expip": "Exportação em curso",
|
||||||
"expSuc": "Sucesso na exportação",
|
"expSuc": "Sucesso na exportação",
|
||||||
|
"February": "Fevereiro",
|
||||||
"Filtered recipes": "Receitas filtradas",
|
"Filtered recipes": "Receitas filtradas",
|
||||||
"fltr": "Filtro",
|
"fltr": "Filtro",
|
||||||
"French": "Francesa",
|
"French": "Francês",
|
||||||
"German": "Alemã",
|
"German": "Alemão",
|
||||||
"gh": "Veja em GitHub",
|
"gh": "Vista em GitHub",
|
||||||
"Greek": "Grega",
|
"Greek": "Grego",
|
||||||
"grid": "Grade",
|
"grid": "Grade",
|
||||||
"guide": "Guia do usuário",
|
"guide": "Guia do usuário",
|
||||||
"impFail": "A importação falhou",
|
"impFail": "A importação falhou",
|
||||||
"impip": "Importação em curso",
|
"impip": "Importação em curso",
|
||||||
"impSuc": "Importação com êxito",
|
"impSuc": "Importação com êxito",
|
||||||
"Indian": "Indiana",
|
"Indian": "Índio",
|
||||||
"invFile": "Arquivo inválido",
|
"invFile": "Arquivo inválido",
|
||||||
"Irish": "Irlandesa",
|
"Irish": "Irlandês",
|
||||||
"Italian": "Italiana",
|
"Italian": "Italiano",
|
||||||
"Jamaican": "Jamaicana",
|
"Jamaican": "Jamaicano",
|
||||||
"Japanese": "Japonesa",
|
"January": "Janeiro",
|
||||||
"Jewish": "Judaica",
|
"Japanese": "Japonês",
|
||||||
|
"Jewish": "Judeu",
|
||||||
"yld": "Porção",
|
"yld": "Porção",
|
||||||
"sysDefB": "Padrão do sistema + preto",
|
"sysDefB": "Padrão do sistema + Preto",
|
||||||
"wAgo": "%s semanas atrás",
|
"wAgo": "%s semanas atrás",
|
||||||
"Thai": "Tailandesa",
|
"Thai": "Tailandesa",
|
||||||
"mAgo": "%s meses atrás",
|
"mAgo": "%s meses atrás",
|
||||||
|
@ -273,53 +292,21 @@
|
||||||
"dAgo": "%s dias atrás",
|
"dAgo": "%s dias atrás",
|
||||||
"tmr": "Temporizador %s",
|
"tmr": "Temporizador %s",
|
||||||
"strtBtn": "INICIAR",
|
"strtBtn": "INICIAR",
|
||||||
"ntmr": "Novo temporizador",
|
"ntmr": "Novo timer",
|
||||||
"timer": "Temporizador de culinária",
|
"timer": "Temporizador de Culinária",
|
||||||
"prstBtn": "PREDEFINIÇÕES",
|
"prstBtn": "PERSPECTIVAS",
|
||||||
"sec": "s",
|
"sec": "s",
|
||||||
"stop": "Parada",
|
"stop": "Parada",
|
||||||
"delay": "Atraso",
|
"delay": "Atraso",
|
||||||
|
"tmrPrsts": "Predefinições temporizadas",
|
||||||
"fwr": "para qual receita?",
|
"fwr": "para qual receita?",
|
||||||
"aTPrst": "Adicionado às predefinições",
|
"aTPrst": "Adicionado às predefinições",
|
||||||
"tmrSnd": "Som do temporizador",
|
"tmrSnd": "Som temporizador",
|
||||||
"tmrvbrt": "Vibração do temporizador",
|
"tmrvbrt": "Temporizador vibrar",
|
||||||
"dlyDur": "Duração do atraso",
|
"dlyDur": "Duração do atraso",
|
||||||
"minute": "minuto",
|
"minute": "minuto",
|
||||||
"minutes": "minutos",
|
"minutes": "atas",
|
||||||
"hour": "hora",
|
"hour": "hora",
|
||||||
"hours": "horas",
|
"hours": "horas",
|
||||||
"seconds": "segundos",
|
"seconds": "segundos"
|
||||||
"prsts": "Predefinições",
|
|
||||||
"delPrst": "Você está prestes a apagar %s das predefinições",
|
|
||||||
"tmrRm": "Temporizador removido",
|
|
||||||
"notifSetg": "Configurações de notificação",
|
|
||||||
"admp": "Apagar automaticamente planos de refeições",
|
|
||||||
"wDBy": "%1$s foi atrasada por %2$s",
|
|
||||||
"otaw": "Mais antigas que 1 semana",
|
|
||||||
"otam": "Mais antigas que 1 mês",
|
|
||||||
"otay": "Mais antigas que 1 ano",
|
|
||||||
"plsCrt": "Use o botão mais para criar uma",
|
|
||||||
"ehwmp": "Coma saudavelmente com planejamento de refeições!",
|
|
||||||
"selMT": "Selecione tipo de refeição",
|
|
||||||
"ystr": "Ontem",
|
|
||||||
"tmrw": "Amanhã",
|
|
||||||
"tdy": "Hoje",
|
|
||||||
"cpy": "cópia",
|
|
||||||
"d": "Dia",
|
|
||||||
"wk": "Semana",
|
|
||||||
"mnth": "Mês",
|
|
||||||
"calVM": "Modo de vista de calendário",
|
|
||||||
"oAP": "%1$s decorrendo, %2$s pausado",
|
|
||||||
"ttv": "Pressionar para ver",
|
|
||||||
"dismissAll": "Rejeitar todos os temporizadores",
|
|
||||||
"dismiss": "Rejeitar",
|
|
||||||
"texp": "%s temporizadores expiraram",
|
|
||||||
"prstTU": "Tempo predefinido atualiado",
|
|
||||||
"ccwt": "Cozinhe co confiança com temporizadores!",
|
|
||||||
"random": "Aleatória",
|
|
||||||
"nvr": "Nunca",
|
|
||||||
"gtD": "Ir à data",
|
|
||||||
"rstBtn": "REINICIAR",
|
|
||||||
"add": "Adicionar",
|
|
||||||
"ksavr": "Manter tela ligada ao ver receitas"
|
|
||||||
}
|
}
|
||||||
|
|
116
app/i18n/pt.json
|
@ -14,7 +14,7 @@
|
||||||
"Chinese": "Chinesa",
|
"Chinese": "Chinesa",
|
||||||
"clove": "bulbo",
|
"clove": "bulbo",
|
||||||
"cm": "cm",
|
"cm": "cm",
|
||||||
"Created": "Criada",
|
"Created": "Criado",
|
||||||
"cup": "copo",
|
"cup": "copo",
|
||||||
"Cup": "Copo",
|
"Cup": "Copo",
|
||||||
"Danish": "Dinamarquesa",
|
"Danish": "Dinamarquesa",
|
||||||
|
@ -23,7 +23,7 @@
|
||||||
"Difficulty level": "Nível de dificuldade",
|
"Difficulty level": "Nível de dificuldade",
|
||||||
"dinner": "Jantar",
|
"dinner": "Jantar",
|
||||||
"dozen": "dúzia",
|
"dozen": "dúzia",
|
||||||
"drop": "gota",
|
"drop": "solta",
|
||||||
"dsp": "colher de sobremesa",
|
"dsp": "colher de sobremesa",
|
||||||
"Easy": "Fácil",
|
"Easy": "Fácil",
|
||||||
"Egyptian": "Egípcia",
|
"Egyptian": "Egípcia",
|
||||||
|
@ -87,7 +87,7 @@
|
||||||
"planner": "Plano de refeições",
|
"planner": "Plano de refeições",
|
||||||
"Portuguese": "Portuguesa",
|
"Portuguese": "Portuguesa",
|
||||||
"Poultry": "Aves",
|
"Poultry": "Aves",
|
||||||
"Pound": "Libra",
|
"Pound": "Pound",
|
||||||
"pt": "pt",
|
"pt": "pt",
|
||||||
"qt": "qt",
|
"qt": "qt",
|
||||||
"Quickest first": "Mais rápidas primeiro",
|
"Quickest first": "Mais rápidas primeiro",
|
||||||
|
@ -100,8 +100,8 @@
|
||||||
"Scottish": "Escocesa",
|
"Scottish": "Escocesa",
|
||||||
"Seafood": "Marisco",
|
"Seafood": "Marisco",
|
||||||
"Serving": "Porção",
|
"Serving": "Porção",
|
||||||
"SET": "APLICAR",
|
"SET": "DEFINIR",
|
||||||
"Settings": "Configurações",
|
"Settings": "Definições",
|
||||||
"Side dishes": "Acompanhamentos",
|
"Side dishes": "Acompanhamentos",
|
||||||
"Slowest first": "Mais lentas primeiro",
|
"Slowest first": "Mais lentas primeiro",
|
||||||
"small": "pequeno",
|
"small": "pequeno",
|
||||||
|
@ -124,8 +124,8 @@
|
||||||
"Undefined": "Indefinido",
|
"Undefined": "Indefinido",
|
||||||
"unit": "unidade",
|
"unit": "unidade",
|
||||||
"Unit": "Unidade",
|
"Unit": "Unidade",
|
||||||
"Vegan": "Vegana",
|
"Vegan": "Vegano",
|
||||||
"Vegetarian": "Vegetariana",
|
"Vegetarian": "Vegetariano",
|
||||||
"Vietnamese": "Vietnamita",
|
"Vietnamese": "Vietnamita",
|
||||||
"yesterday": "ontem",
|
"yesterday": "ontem",
|
||||||
"noAccSensor": "O sensor do acelerómetro ou está desativado ou não está a funcionar",
|
"noAccSensor": "O sensor do acelerómetro ou está desativado ou não está a funcionar",
|
||||||
|
@ -133,12 +133,12 @@
|
||||||
"rmCuiInfo": "Está prestes a retirar %s da lista de cozinha",
|
"rmCuiInfo": "Está prestes a retirar %s da lista de cozinha",
|
||||||
"rmUInfo": "Está prestes a remover %s da lista de unidades",
|
"rmUInfo": "Está prestes a remover %s da lista de unidades",
|
||||||
"rmYUInfo": "Está prestes a remover %s da lista de unidades de porções",
|
"rmYUInfo": "Está prestes a remover %s da lista de unidades de porções",
|
||||||
"sVw": "Agitar para ver uma receita aleatória",
|
"sVw": "Sacudir para ver a receita aleatória",
|
||||||
"sVwInfo": "Ajuda-o a escolher o que deve cozinhar quando não consegue decidir",
|
"sVwInfo": "Ajuda-o a escolher o que deve cozinhar quando não consegue decidir",
|
||||||
"swm": "Começa na segunda-feira",
|
"swm": "Começa na segunda-feira",
|
||||||
"sysDef": "Padrão do sistema",
|
"sysDef": "Padrão do sistema",
|
||||||
"title": "Título",
|
"title": "Título",
|
||||||
"tLInfo": "As receitas que quer experimentar mais tarde estão mostradas aqui",
|
"tLInfo": "As receitas que quer experimentar mais tarde estão listadas aqui",
|
||||||
"triedInfo": "Experimentou esta receita %s",
|
"triedInfo": "Experimentou esta receita %s",
|
||||||
"trnsl": "Traduzir",
|
"trnsl": "Traduzir",
|
||||||
"ts": "Etiquetas",
|
"ts": "Etiquetas",
|
||||||
|
@ -148,32 +148,36 @@
|
||||||
"wAgo": "%s semanas atrás",
|
"wAgo": "%s semanas atrás",
|
||||||
"photogrid": "Grelha de fotos",
|
"photogrid": "Grelha de fotos",
|
||||||
"opts": "Opções",
|
"opts": "Opções",
|
||||||
|
"October": "Outubro",
|
||||||
"nwYiU": "Nova unidade de porção",
|
"nwYiU": "Nova unidade de porção",
|
||||||
"nwCat": "Nova categoria",
|
"nwCat": "Nova categoria",
|
||||||
|
"November": "Novembro",
|
||||||
"nos": "Notas",
|
"nos": "Notas",
|
||||||
"noRecsInL": "Nenhuma das receitas aqui apresentadas corresponde à sua pesquisa",
|
"noRecsInL": "Nenhuma das receitas aqui apresentadas corresponde à sua pesquisa",
|
||||||
"fltr": "Filtro",
|
"fltr": "Filtro",
|
||||||
"Filtered recipes": "Receitas filtradas",
|
"Filtered recipes": "Receitas filtradas",
|
||||||
|
"February": "Fevereiro",
|
||||||
"expSuc": "Exportado com sucesso",
|
"expSuc": "Exportado com sucesso",
|
||||||
"expip": "Exportação em curso",
|
"expip": "Exportação em curso",
|
||||||
"expBu": "Exportar cópia de segurança completa",
|
"expBu": "Exportar apoio total",
|
||||||
"editRec": "Editar receita",
|
"editRec": "Editar receita",
|
||||||
"donate": "Doação",
|
"donate": "Doação",
|
||||||
"disc": "Esta receita tem alterações por guardar. O que quer fazer?",
|
"disc": "Esta receita tem alterações não guardadas. O que gostaria de fazer?",
|
||||||
"detailed": "Detalhado",
|
"detailed": "Detalhado",
|
||||||
"delRecsInfo": "Está prestes a eliminar permanentemente %s",
|
"delRecsInfo": "Está prestes a eliminar permanentemente %s",
|
||||||
"delRecInfo": "Está prestes a eliminar permanentemente a receita %s",
|
"delRecInfo": "Está prestes a eliminar permanentemente a receita %s",
|
||||||
|
"December": "Dezembro",
|
||||||
"db": "Base de dados",
|
"db": "Base de dados",
|
||||||
"dAgo": "%s dias atrás",
|
"dAgo": "%s dias atrás",
|
||||||
"cui": "Cozinha",
|
"cui": "Cozinha",
|
||||||
"cPic": "Recortar fotografia",
|
"cPic": "Foto do corte",
|
||||||
"cookT": "Tempo de cozedura",
|
"cookT": "Tempo de cozedura",
|
||||||
"conf": "Confirme",
|
"conf": "Confirme",
|
||||||
"cmbs": "Combinações",
|
"cmbs": "Combinações",
|
||||||
"cat": "Categoria",
|
"cat": "Categoria",
|
||||||
"buMod": "O ficheiro da cópia de segurança foi alterado noutro local",
|
"buMod": "O ficheiro de cópia de segurança foi modificado noutro local",
|
||||||
"buInfo": "Gera um ficheiro ZIP contendo todos os seus dados que podem ser importados de volta",
|
"buInfo": "Gera um ficheiro ZIP contendo todos os seus dados que podem ser importados de volta",
|
||||||
"buInc": "O ficheiro da cópia de segurança está mal formado ou corrupto",
|
"buInc": "Ficheiro da cópia de segurança está mal formado ou corrupto",
|
||||||
"buFol": "Pasta da cópia de segurança",
|
"buFol": "Pasta da cópia de segurança",
|
||||||
"buEmp": "O ficheiro da cópia de segurança está vazio",
|
"buEmp": "O ficheiro da cópia de segurança está vazio",
|
||||||
"Black": "Preto",
|
"Black": "Preto",
|
||||||
|
@ -182,23 +186,30 @@
|
||||||
"buto": "Cópia de segurança guardada em %s",
|
"buto": "Cópia de segurança guardada em %s",
|
||||||
"restDone": "Reposição feita",
|
"restDone": "Reposição feita",
|
||||||
"restCuiL": "Repor a lista de cozinha",
|
"restCuiL": "Repor a lista de cozinha",
|
||||||
"restCatL": "Repor lista de categorias",
|
"restCatL": "Reiniciar lista de categorias",
|
||||||
"rest": "Repor",
|
"rest": "Reiniciar",
|
||||||
"resNF": "Receita não encontrada",
|
"resNF": "Receita não encontrada",
|
||||||
"req": "Necessário %s",
|
"req": "Necessárias %s",
|
||||||
"recU": "Atualizado:",
|
"recU": "Atualizado:",
|
||||||
"recTitle": "A minha receita saudável",
|
"recTitle": "A minha receita saudável",
|
||||||
"recs": "receitas",
|
"recs": "receitas",
|
||||||
"recRm": "Receita removida",
|
"recRm": "Receita retirada",
|
||||||
"recPic": "Fotografia da receita",
|
"recPic": "Fotografia de receita",
|
||||||
"recListEmp": "Nada aqui! Adicione algumas receitas e tente novamente",
|
"recListEmp": "Nada aqui! Adicione algumas receitas e tente novamente",
|
||||||
"recI": "Importadas:",
|
"recI": "Importado:",
|
||||||
"recF": "receitas encontradas",
|
"recF": "receitas encontradas",
|
||||||
"recE": "Já existem:",
|
"recE": "Já existem:",
|
||||||
"rec": "Receita",
|
"rec": "Receita",
|
||||||
"sysDefB": "Padrão do sistema + preto",
|
"THU": "QUI",
|
||||||
|
"WED": "QUA",
|
||||||
|
"TUE": "TER",
|
||||||
|
"SUN": "DOM",
|
||||||
|
"SAT": "SÁB",
|
||||||
|
"MON": "SEG",
|
||||||
|
"FRI": "SEX",
|
||||||
|
"sysDefB": "Padrão do sistema + Preto",
|
||||||
"trySer": "PROCURAR EM TODAS AS RECEITAS?",
|
"trySer": "PROCURAR EM TODAS AS RECEITAS?",
|
||||||
"stp": "Etapa %s",
|
"stp": "Etapa",
|
||||||
"stars": "Classificação por estrelas",
|
"stars": "Classificação por estrelas",
|
||||||
"sru": "Partilhar receita usando...",
|
"sru": "Partilhar receita usando...",
|
||||||
"srt": "Ordenar",
|
"srt": "Ordenar",
|
||||||
|
@ -207,6 +218,7 @@
|
||||||
"simple": "Simples",
|
"simple": "Simples",
|
||||||
"shr": "Partilhar",
|
"shr": "Partilhar",
|
||||||
"ser": "Pesquisar",
|
"ser": "Pesquisar",
|
||||||
|
"September": "Setembro",
|
||||||
"selRec": "Selecione a receita",
|
"selRec": "Selecione a receita",
|
||||||
"rst": "REINICIAR",
|
"rst": "REINICIAR",
|
||||||
"rp": "Remover fotografia",
|
"rp": "Remover fotografia",
|
||||||
|
@ -217,11 +229,11 @@
|
||||||
"yld": "Porção",
|
"yld": "Porção",
|
||||||
"restYUL": "Repor lista de unidades de porções",
|
"restYUL": "Repor lista de unidades de porções",
|
||||||
"restUL": "Repor lista de unidades",
|
"restUL": "Repor lista de unidades",
|
||||||
"restInfo": "A reposição de uma lista eliminará as entradas criadas pelo utilizador e restaurará as entradas predefinidas. As receitas existentes não serão afetadas.",
|
"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.",
|
||||||
"rBtn": "REMOVER",
|
"rBtn": "REMOVER",
|
||||||
"priv": "Política de privacidade",
|
"priv": "Política de privacidade",
|
||||||
"prepT": "Tempo de preparação",
|
"prepT": "Tempo de preparação",
|
||||||
"plsAdd": "Use o botão + para adicionar uma",
|
"plsAdd": "Use o botão mais para adicionar uma",
|
||||||
"pht": "Fotografia da receita",
|
"pht": "Fotografia da receita",
|
||||||
"noRecs": "Nenhuma receita corresponde à pesquisa",
|
"noRecs": "Nenhuma receita corresponde à pesquisa",
|
||||||
"noFavs": "Ainda não tem favoritos",
|
"noFavs": "Ainda não tem favoritos",
|
||||||
|
@ -232,13 +244,18 @@
|
||||||
"newRec": "Nova receita",
|
"newRec": "Nova receita",
|
||||||
"newCui": "Nova cozinha",
|
"newCui": "Nova cozinha",
|
||||||
"minimal": "Mínimo",
|
"minimal": "Mínimo",
|
||||||
|
"May": "Maio",
|
||||||
|
"March": "Março",
|
||||||
"mAgo": "%s meses atrás",
|
"mAgo": "%s meses atrás",
|
||||||
"ltAgo": "há muito tempo",
|
"ltAgo": "há muito tempo",
|
||||||
"listVM": "Modo de vista em lista",
|
"listVM": "Modo de vista em lista",
|
||||||
"lang": "Idioma",
|
"lang": "Idioma",
|
||||||
"kEdit": "CONTINUAR A EDITAR",
|
"kEdit": "CONTINUAR A EDITAR",
|
||||||
|
"June": "Junho",
|
||||||
|
"July": "Julho",
|
||||||
"joinTG": "Junte-se ao grupo no Telegram",
|
"joinTG": "Junte-se ao grupo no Telegram",
|
||||||
"it": "Item %s",
|
"January": "Janeiro",
|
||||||
|
"it": "Item",
|
||||||
"invFile": "Ficheiro inválido",
|
"invFile": "Ficheiro inválido",
|
||||||
"intf": "Interface",
|
"intf": "Interface",
|
||||||
"inss": "Instruções",
|
"inss": "Instruções",
|
||||||
|
@ -256,7 +273,9 @@
|
||||||
"dBtn": "ELIMINAR",
|
"dBtn": "ELIMINAR",
|
||||||
"conBtn": "CONTINUAR",
|
"conBtn": "CONTINUAR",
|
||||||
"cBtn": "CANCELAR",
|
"cBtn": "CANCELAR",
|
||||||
|
"August": "Agosto",
|
||||||
"aStpBtn": "ADICIONAR PASSO",
|
"aStpBtn": "ADICIONAR PASSO",
|
||||||
|
"April": "Abril",
|
||||||
"appRst": "É necessário reiniciar a aplicação",
|
"appRst": "É necessário reiniciar a aplicação",
|
||||||
"apply": "APLICAR",
|
"apply": "APLICAR",
|
||||||
"appInfo": "EnRecipes é um livro de receitas digital de código aberto, amigo da privacidade, que lhe permite criar, gerir e partilhar as suas receitas",
|
"appInfo": "EnRecipes é um livro de receitas digital de código aberto, amigo da privacidade, que lhe permite criar, gerir e partilhar as suas receitas",
|
||||||
|
@ -284,47 +303,10 @@
|
||||||
"hour": "hora",
|
"hour": "hora",
|
||||||
"hours": "horas",
|
"hours": "horas",
|
||||||
"seconds": "segundos",
|
"seconds": "segundos",
|
||||||
"tmrvbrt": "Vibrador do temporizador",
|
"tmrvbrt": "Vibrador temporizador",
|
||||||
"tmrSnd": "Som do temporizador",
|
"tmrSnd": "Som temporizador",
|
||||||
"aTPrst": "Adicionado às predefinições",
|
"aTPrst": "Adicionado às predefinições",
|
||||||
"fwr": "para qual receita?",
|
"fwr": "para que receita?",
|
||||||
"prstBtn": "PREDEFINIÇÕES",
|
"tmrPrsts": "Predefinições temporizadas",
|
||||||
"notifSetg": "Configurações de notificação",
|
"prstBtn": "PRIMEIROS"
|
||||||
"tmrRm": "Temporizador removido",
|
|
||||||
"delPrst": "Está prestes a eliminar %s das predefinições",
|
|
||||||
"prsts": "Predefinições",
|
|
||||||
"ttv": "Tocar para ver",
|
|
||||||
"dismissAll": "Rejeitar todos os temporizadores",
|
|
||||||
"dismiss": "Rejeitar",
|
|
||||||
"texp": "%s temporizadores expiraram",
|
|
||||||
"wDBy": "%1$s foi adiado por %2$s",
|
|
||||||
"prstTU": "Tempo predefinido atualizado",
|
|
||||||
"ccwt": "Cozinhe com segurança com temporizadores!",
|
|
||||||
"gtD": "Ir à data",
|
|
||||||
"random": "Aleatória",
|
|
||||||
"nvr": "Nunca",
|
|
||||||
"otaw": "Mais antigas que 1 semana",
|
|
||||||
"otam": "Mais antigas que 1 mês",
|
|
||||||
"otay": "Mais antigas que 1 ano",
|
|
||||||
"admp": "Eliminar automaticamente planos de refeições",
|
|
||||||
"plsCrt": "Use o botão + para criar uma",
|
|
||||||
"ehwmp": "Coma saudavelmente com planificações de refeições!",
|
|
||||||
"selMT": "Selecionar tipo de refeição",
|
|
||||||
"ystr": "Ontem",
|
|
||||||
"tmrw": "Amanhã",
|
|
||||||
"tdy": "Hoje",
|
|
||||||
"cpy": "cópia",
|
|
||||||
"d": "Dia",
|
|
||||||
"wk": "Semana",
|
|
||||||
"mnth": "Mês",
|
|
||||||
"calVM": "Modo de vista tipo calendário",
|
|
||||||
"oAP": "%1$s a decorrer, %2$s em pausa",
|
|
||||||
"rstBtn": "REINICIAR",
|
|
||||||
"add": "Adicionar",
|
|
||||||
"esgb": "Deslizar para a borda para voltar",
|
|
||||||
"esgbInfo": "Desative esta opção se tiver problemas ao navegar",
|
|
||||||
"ksavrInfo": "Impede que o ecrã desligue ao ver uma receita",
|
|
||||||
"ksavr": "Manter ecrã ligado ao ver receitas",
|
|
||||||
"addSectBtn": "ADICIONAR SECÇÃO",
|
|
||||||
"sect": "Secção %s"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,9 @@
|
||||||
"appInfo": "EnRecipes - это цифровая кулинарная книга с открытым исходным кодом, обеспечивающая конфиденциальность, которая позволяет вам создавать, управлять и делиться своими рецептами",
|
"appInfo": "EnRecipes - это цифровая кулинарная книга с открытым исходным кодом, обеспечивающая конфиденциальность, которая позволяет вам создавать, управлять и делиться своими рецептами",
|
||||||
"apply": "ПРИМЕНЯТЬ",
|
"apply": "ПРИМЕНЯТЬ",
|
||||||
"appRst": "Требуется перезапуск приложения",
|
"appRst": "Требуется перезапуск приложения",
|
||||||
|
"April": "Апрель",
|
||||||
"aStpBtn": "ДОБАВИТЬ ШАГ",
|
"aStpBtn": "ДОБАВИТЬ ШАГ",
|
||||||
|
"August": "Август",
|
||||||
"Barbecue": "Барбекю",
|
"Barbecue": "Барбекю",
|
||||||
"Beverages": "Напитки",
|
"Beverages": "Напитки",
|
||||||
"Black": "Чернить",
|
"Black": "Чернить",
|
||||||
|
@ -51,6 +53,7 @@
|
||||||
"Dark": "Темная",
|
"Dark": "Темная",
|
||||||
"db": "База данных",
|
"db": "База данных",
|
||||||
"dBtn": "УДАЛИТЬ",
|
"dBtn": "УДАЛИТЬ",
|
||||||
|
"December": "Декабрь",
|
||||||
"delRecInfo": "Вы собираетесь полностью удалить рецепт %s",
|
"delRecInfo": "Вы собираетесь полностью удалить рецепт %s",
|
||||||
"delRecsInfo": "Вы собираетесь безвозвратно удалить %s",
|
"delRecsInfo": "Вы собираетесь безвозвратно удалить %s",
|
||||||
"Desserts": "Десерты",
|
"Desserts": "Десерты",
|
||||||
|
@ -72,12 +75,14 @@
|
||||||
"expip": "Выполняется экспорт",
|
"expip": "Выполняется экспорт",
|
||||||
"expSuc": "Успех экспорта",
|
"expSuc": "Успех экспорта",
|
||||||
"favourites": "Избранное",
|
"favourites": "Избранное",
|
||||||
|
"February": "Февраль",
|
||||||
"Filipino": "Филиппинская",
|
"Filipino": "Филиппинская",
|
||||||
"Filtered recipes": "Отфильтрованные рецепты",
|
"Filtered recipes": "Отфильтрованные рецепты",
|
||||||
"fl oz": "жидкая унция",
|
"fl oz": "жидкая унция",
|
||||||
"fltr": "Фильтр",
|
"fltr": "Фильтр",
|
||||||
"Fluid Ounce": "Жидкая унция",
|
"Fluid Ounce": "Жидкая унция",
|
||||||
"French": "Французская",
|
"French": "Французская",
|
||||||
|
"FRI": "ПТ",
|
||||||
"fsList": "Здесь будут перечислены рецепты, которые вы отметили как любимые",
|
"fsList": "Здесь будут перечислены рецепты, которые вы отметили как любимые",
|
||||||
"g": "г",
|
"g": "г",
|
||||||
"gal": "галлон",
|
"gal": "галлон",
|
||||||
|
@ -106,9 +111,12 @@
|
||||||
"it": "Ингредиент",
|
"it": "Ингредиент",
|
||||||
"Italian": "Итальянская",
|
"Italian": "Итальянская",
|
||||||
"Jamaican": "Ямайская",
|
"Jamaican": "Ямайская",
|
||||||
|
"January": "Январь",
|
||||||
"Japanese": "Японская",
|
"Japanese": "Японская",
|
||||||
"Jewish": "Еврейская",
|
"Jewish": "Еврейская",
|
||||||
"joinTG": "Присоединяйтесь к группе в Telegram",
|
"joinTG": "Присоединяйтесь к группе в Telegram",
|
||||||
|
"July": "Июль",
|
||||||
|
"June": "Июнь",
|
||||||
"kEdit": "ПРОДОЛЖИТЬ РЕДАКТИРОВАНИЕ",
|
"kEdit": "ПРОДОЛЖИТЬ РЕДАКТИРОВАНИЕ",
|
||||||
"Kenyan": "Кенийская",
|
"Kenyan": "Кенийская",
|
||||||
"kg": "кг",
|
"kg": "кг",
|
||||||
|
@ -128,6 +136,8 @@
|
||||||
"lunch": "Обед",
|
"lunch": "Обед",
|
||||||
"mAgo": "%s месяцев назад",
|
"mAgo": "%s месяцев назад",
|
||||||
"Main dishes": "Основные блюда",
|
"Main dishes": "Основные блюда",
|
||||||
|
"March": "Март",
|
||||||
|
"May": "Май",
|
||||||
"Meat": "Мясо",
|
"Meat": "Мясо",
|
||||||
"medium": "средний",
|
"medium": "средний",
|
||||||
"Mexican": "Мексиканская",
|
"Mexican": "Мексиканская",
|
||||||
|
@ -137,6 +147,7 @@
|
||||||
"minimal": "Минимальный",
|
"minimal": "Минимальный",
|
||||||
"ml": "мл",
|
"ml": "мл",
|
||||||
"Moderate": "Средний",
|
"Moderate": "Средний",
|
||||||
|
"MON": "ПН",
|
||||||
"newCui": "Новая кухня",
|
"newCui": "Новая кухня",
|
||||||
"Newest first": "Сначала новое",
|
"Newest first": "Сначала новое",
|
||||||
"newRec": "Новый рецепт",
|
"newRec": "Новый рецепт",
|
||||||
|
@ -151,8 +162,10 @@
|
||||||
"noRecs": "По вашему запросу ничего не найдено",
|
"noRecs": "По вашему запросу ничего не найдено",
|
||||||
"noRecsInL": "Ни один из рецептов здесь не соответствует вашему запросу",
|
"noRecsInL": "Ни один из рецептов здесь не соответствует вашему запросу",
|
||||||
"nos": "Заметки",
|
"nos": "Заметки",
|
||||||
|
"November": "Ноябрь",
|
||||||
"nwCat": "Новая категория",
|
"nwCat": "Новая категория",
|
||||||
"nwYiU": "Новая единица измерения подачи",
|
"nwYiU": "Новая единица измерения подачи",
|
||||||
|
"October": "Октябрь",
|
||||||
"OK": "ОК",
|
"OK": "ОК",
|
||||||
"Oldest first": "Сначала старые",
|
"Oldest first": "Сначала старые",
|
||||||
"opts": "Параметры",
|
"opts": "Параметры",
|
||||||
|
@ -210,10 +223,12 @@
|
||||||
"rst": "ПЕРЕЗАПУСТИТЬ",
|
"rst": "ПЕРЕЗАПУСТИТЬ",
|
||||||
"Russian": "Русская",
|
"Russian": "Русская",
|
||||||
"Salads": "Салаты",
|
"Salads": "Салаты",
|
||||||
|
"SAT": "СБ",
|
||||||
"Sauces": "Соусы",
|
"Sauces": "Соусы",
|
||||||
"Scottish": "Шотландская",
|
"Scottish": "Шотландская",
|
||||||
"Seafood": "Морепродукты",
|
"Seafood": "Морепродукты",
|
||||||
"selRec": "Выберите рецепт",
|
"selRec": "Выберите рецепт",
|
||||||
|
"September": "Сентябрь",
|
||||||
"ser": "Поиск",
|
"ser": "Поиск",
|
||||||
"Serving": "Порция",
|
"Serving": "Порция",
|
||||||
"SET": "УСТАНОВИТЬ",
|
"SET": "УСТАНОВИТЬ",
|
||||||
|
@ -235,6 +250,7 @@
|
||||||
"stick": "палочка",
|
"stick": "палочка",
|
||||||
"stp": "Шаг",
|
"stp": "Шаг",
|
||||||
"strAdd": "Начните добавлять свои рецепты!",
|
"strAdd": "Начните добавлять свои рецепты!",
|
||||||
|
"SUN": "ВС",
|
||||||
"sVw": "Встряхнуть, чтобы показать случайный рецепт",
|
"sVw": "Встряхнуть, чтобы показать случайный рецепт",
|
||||||
"sVwInfo": "Помогает выбрать, что приготовить, когда вы не можете решить",
|
"sVwInfo": "Помогает выбрать, что приготовить, когда вы не можете решить",
|
||||||
"Swedish": "Шведская",
|
"Swedish": "Шведская",
|
||||||
|
@ -245,6 +261,7 @@
|
||||||
"Teaspoon": "Чайная ложка",
|
"Teaspoon": "Чайная ложка",
|
||||||
"Thai": "Тайская",
|
"Thai": "Тайская",
|
||||||
"Theme": "Тема",
|
"Theme": "Тема",
|
||||||
|
"THU": "ЧТ",
|
||||||
"title": "Заголовок",
|
"title": "Заголовок",
|
||||||
"tLInfo": "Здесь будут перечислены рецепты, которые вы хотите попробовать позже",
|
"tLInfo": "Здесь будут перечислены рецепты, которые вы хотите попробовать позже",
|
||||||
"today": "сегодня",
|
"today": "сегодня",
|
||||||
|
@ -255,6 +272,7 @@
|
||||||
"ts": "Теги",
|
"ts": "Теги",
|
||||||
"tsInfo": "разделяйте пробелами",
|
"tsInfo": "разделяйте пробелами",
|
||||||
"tsp": "ч.л..",
|
"tsp": "ч.л..",
|
||||||
|
"TUE": "ВТ",
|
||||||
"Turkish": "Турецкая",
|
"Turkish": "Турецкая",
|
||||||
"Undefined": "Не указано",
|
"Undefined": "Не указано",
|
||||||
"unit": "единица измерения",
|
"unit": "единица измерения",
|
||||||
|
@ -265,6 +283,7 @@
|
||||||
"Vegetarian": "Вегетарианский",
|
"Vegetarian": "Вегетарианский",
|
||||||
"Vietnamese": "Вьетнамская",
|
"Vietnamese": "Вьетнамская",
|
||||||
"wAgo": "%s недель назад",
|
"wAgo": "%s недель назад",
|
||||||
|
"WED": "СР",
|
||||||
"yesterday": "вчера",
|
"yesterday": "вчера",
|
||||||
"yieldQ": "Подавать в количестве",
|
"yieldQ": "Подавать в количестве",
|
||||||
"yieldU": "Подавать в",
|
"yieldU": "Подавать в",
|
||||||
|
@ -279,6 +298,7 @@
|
||||||
"stop": "Стоп",
|
"stop": "Стоп",
|
||||||
"delay": "Задержка",
|
"delay": "Задержка",
|
||||||
"prstBtn": "ПРЕЗЕТЫ",
|
"prstBtn": "ПРЕЗЕТЫ",
|
||||||
|
"tmrPrsts": "Предустановки таймера",
|
||||||
"fwr": "для какого рецепта?",
|
"fwr": "для какого рецепта?",
|
||||||
"aTPrst": "Добавлено в предустановки",
|
"aTPrst": "Добавлено в предустановки",
|
||||||
"tmrSnd": "Звук таймера",
|
"tmrSnd": "Звук таймера",
|
||||||
|
@ -288,9 +308,5 @@
|
||||||
"minutes": "минут",
|
"minutes": "минут",
|
||||||
"hour": "час",
|
"hour": "час",
|
||||||
"hours": "часы",
|
"hours": "часы",
|
||||||
"seconds": "секунды",
|
"seconds": "секунды"
|
||||||
"prsts": "Пресеты",
|
|
||||||
"delPrst": "Вы собираетесь удалить %s из предустановок",
|
|
||||||
"tmrRm": "Таймер удален",
|
|
||||||
"notifSetg": "Настройки уведомлений"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,9 @@
|
||||||
"appInfo": "என்ரெசிபீஸ் என்பது ஒரு திறந்த மூல, தனியுரிமைக்கு ஏற்ற டிஜிட்டல் சமையல் புத்தகம், இது உங்கள் சமையல் குறிப்புகளை உருவாக்க, நிர்வகிக்க மற்றும் பகிர உதவுகிறது",
|
"appInfo": "என்ரெசிபீஸ் என்பது ஒரு திறந்த மூல, தனியுரிமைக்கு ஏற்ற டிஜிட்டல் சமையல் புத்தகம், இது உங்கள் சமையல் குறிப்புகளை உருவாக்க, நிர்வகிக்க மற்றும் பகிர உதவுகிறது",
|
||||||
"apply": "இடு",
|
"apply": "இடு",
|
||||||
"appRst": "பயன்பாட்டு மறுதொடக்கம் தேவை",
|
"appRst": "பயன்பாட்டு மறுதொடக்கம் தேவை",
|
||||||
|
"April": "ஏப்ரல்",
|
||||||
"aStpBtn": "செய்முறையைச் சேர்",
|
"aStpBtn": "செய்முறையைச் சேர்",
|
||||||
|
"August": "ஆகஸ்ட்",
|
||||||
"Barbecue": "பார்பெக்யூ",
|
"Barbecue": "பார்பெக்யூ",
|
||||||
"Beverages": "பானங்கள்",
|
"Beverages": "பானங்கள்",
|
||||||
"Black": "கருப்பு",
|
"Black": "கருப்பு",
|
||||||
|
@ -51,6 +53,7 @@
|
||||||
"Dark": "இருள்",
|
"Dark": "இருள்",
|
||||||
"db": "தரவுத்தளம்",
|
"db": "தரவுத்தளம்",
|
||||||
"dBtn": "நீக்கு",
|
"dBtn": "நீக்கு",
|
||||||
|
"December": "டிசம்பர்",
|
||||||
"delRecInfo": "நீங்கள் %s சமையல் குறிப்பை நிரந்தரமாக நீக்க உள்ளீர்கள்",
|
"delRecInfo": "நீங்கள் %s சமையல் குறிப்பை நிரந்தரமாக நீக்க உள்ளீர்கள்",
|
||||||
"delRecsInfo": "நீங்கள் %s நிரந்தரமாக நீக்க உள்ளீர்கள்",
|
"delRecsInfo": "நீங்கள் %s நிரந்தரமாக நீக்க உள்ளீர்கள்",
|
||||||
"Desserts": "இனிப்புகள்",
|
"Desserts": "இனிப்புகள்",
|
||||||
|
@ -72,18 +75,20 @@
|
||||||
"expip": "ஏற்றுமதி செயலில் உள்ளது",
|
"expip": "ஏற்றுமதி செயலில் உள்ளது",
|
||||||
"expSuc": "வெற்றிகரமாக ஏற்றுமதி செய்யப்பட்டது",
|
"expSuc": "வெற்றிகரமாக ஏற்றுமதி செய்யப்பட்டது",
|
||||||
"favourites": "பிடித்தவை",
|
"favourites": "பிடித்தவை",
|
||||||
|
"February": "பிப்ரவரி",
|
||||||
"Filipino": "பிலிப்பைன்ஸ்",
|
"Filipino": "பிலிப்பைன்ஸ்",
|
||||||
"Filtered recipes": "வடிகட்டப்பட்ட சமையல் குறிப்புகள்",
|
"Filtered recipes": "வடிகட்டப்பட்ட சமையல் குறிப்புகள்",
|
||||||
"fl oz": "திரவ அவுன்ஸ",
|
"fl oz": "திரவ அவுன்ஸ",
|
||||||
"fltr": "வடிகட்டு",
|
"fltr": "வடிகட்டு",
|
||||||
"Fluid Ounce": "திரவ அவுன்ஸ்",
|
"Fluid Ounce": "திரவ அவுன்ஸ்",
|
||||||
"French": "பிரஞ்சு",
|
"French": "பிரஞ்சு",
|
||||||
|
"FRI": "வெ",
|
||||||
"fsList": "உங்களுக்கு பிடித்த சமையல் குறிப்புகள் இங்கே பட்டியலிடப்படும்",
|
"fsList": "உங்களுக்கு பிடித்த சமையல் குறிப்புகள் இங்கே பட்டியலிடப்படும்",
|
||||||
"g": "கிராம்",
|
"g": "கிராம்",
|
||||||
"gal": "கேலன்",
|
"gal": "கேலன்",
|
||||||
"Gallon": "கேலன்",
|
"Gallon": "கேலன்",
|
||||||
"German": "ஜெர்மன்",
|
"German": "ஜெர்மன்",
|
||||||
"gh": "GitHub இல் காண்க",
|
"gh": "கிட்ஹப்பில் காண்க",
|
||||||
"Gram": "கிராம்",
|
"Gram": "கிராம்",
|
||||||
"Greek": "கிரேக்க",
|
"Greek": "கிரேக்க",
|
||||||
"grid": "கட்டம்",
|
"grid": "கட்டம்",
|
||||||
|
@ -103,12 +108,15 @@
|
||||||
"intf": "இடைமுகம்",
|
"intf": "இடைமுகம்",
|
||||||
"invFile": "தவறான கோப்பு",
|
"invFile": "தவறான கோப்பு",
|
||||||
"Irish": "ஐரிஷ்",
|
"Irish": "ஐரிஷ்",
|
||||||
"it": "பொருள் %s",
|
"it": "பொருள்",
|
||||||
"Italian": "இத்தாலிய",
|
"Italian": "இத்தாலிய",
|
||||||
"Jamaican": "ஜமைக்கா",
|
"Jamaican": "ஜமைக்கா",
|
||||||
|
"January": "ஜனவரி",
|
||||||
"Japanese": "ஜப்பானிய",
|
"Japanese": "ஜப்பானிய",
|
||||||
"Jewish": "யூத",
|
"Jewish": "யூத",
|
||||||
"joinTG": "டெலிகிராம் குழுவில் சேர்க",
|
"joinTG": "டெலிகிராம் குழுவில் சேர்க",
|
||||||
|
"July": "ஜூலை",
|
||||||
|
"June": "ஜூன்",
|
||||||
"kEdit": "தொடர்ந்து திருத்து",
|
"kEdit": "தொடர்ந்து திருத்து",
|
||||||
"Kenyan": "கென்ய",
|
"Kenyan": "கென்ய",
|
||||||
"kg": "கிலோகிராம்",
|
"kg": "கிலோகிராம்",
|
||||||
|
@ -128,6 +136,8 @@
|
||||||
"lunch": "மதிய உணவு",
|
"lunch": "மதிய உணவு",
|
||||||
"mAgo": "%s மாதங்களுக்கு முன்பு",
|
"mAgo": "%s மாதங்களுக்கு முன்பு",
|
||||||
"Main dishes": "முக்கிய உணவுகள்",
|
"Main dishes": "முக்கிய உணவுகள்",
|
||||||
|
"March": "மார்ச்",
|
||||||
|
"May": "மே",
|
||||||
"Meat": "இறைச்சி",
|
"Meat": "இறைச்சி",
|
||||||
"medium": "நடுத்தர",
|
"medium": "நடுத்தர",
|
||||||
"Mexican": "மெக்சிகன்",
|
"Mexican": "மெக்சிகன்",
|
||||||
|
@ -137,6 +147,7 @@
|
||||||
"minimal": "குறைந்தபட்சம்",
|
"minimal": "குறைந்தபட்சம்",
|
||||||
"ml": "மில்லிலிட்டர்",
|
"ml": "மில்லிலிட்டர்",
|
||||||
"Moderate": "மிதமானது",
|
"Moderate": "மிதமானது",
|
||||||
|
"MON": "தி",
|
||||||
"newCui": "புதிய உணவு வகை",
|
"newCui": "புதிய உணவு வகை",
|
||||||
"Newest first": "புதியது முதலில்",
|
"Newest first": "புதியது முதலில்",
|
||||||
"newRec": "புதிய சமையல் குறிப்பு",
|
"newRec": "புதிய சமையல் குறிப்பு",
|
||||||
|
@ -151,8 +162,10 @@
|
||||||
"noRecs": "உங்கள் தேடலுடன் எந்த சமையல் குறிப்புகளும் பொருந்தவில்லை",
|
"noRecs": "உங்கள் தேடலுடன் எந்த சமையல் குறிப்புகளும் பொருந்தவில்லை",
|
||||||
"noRecsInL": "இங்குள்ள சமையல் குறிப்புகள் எதுவும் உங்கள் தேடலுடன் பொருந்தவில்லை",
|
"noRecsInL": "இங்குள்ள சமையல் குறிப்புகள் எதுவும் உங்கள் தேடலுடன் பொருந்தவில்லை",
|
||||||
"nos": "குறிப்புகள்",
|
"nos": "குறிப்புகள்",
|
||||||
|
"November": "நவம்பர்",
|
||||||
"nwCat": "புதிய பகுப்பு",
|
"nwCat": "புதிய பகுப்பு",
|
||||||
"nwYiU": "புதிய மகசூல் அலகு",
|
"nwYiU": "புதிய மகசூல் அலகு",
|
||||||
|
"October": "அக்டோபர்",
|
||||||
"OK": "சரி",
|
"OK": "சரி",
|
||||||
"Oldest first": "பழையன முதலில்",
|
"Oldest first": "பழையன முதலில்",
|
||||||
"opts": "விருப்பங்கள்",
|
"opts": "விருப்பங்கள்",
|
||||||
|
@ -166,7 +179,7 @@
|
||||||
"Piece": "துண்டு",
|
"Piece": "துண்டு",
|
||||||
"pinch": "கிள்ளு",
|
"pinch": "கிள்ளு",
|
||||||
"planner": "உணவுத் திட்டம்",
|
"planner": "உணவுத் திட்டம்",
|
||||||
"plsAdd": "ஒன்றைச் சேர்க்க + பொத்தானைப் பயன்படுத்தவும்",
|
"plsAdd": "ஒன்றைச் சேர்க்க பிளஸ் பொத்தானைப் பயன்படுத்தவும்",
|
||||||
"Portuguese": "போர்த்துகீசியம்",
|
"Portuguese": "போர்த்துகீசியம்",
|
||||||
"Poultry": "கோழி",
|
"Poultry": "கோழி",
|
||||||
"Pound": "பவுண்டு",
|
"Pound": "பவுண்டு",
|
||||||
|
@ -210,10 +223,12 @@
|
||||||
"rst": "மறுதொடக்கம்",
|
"rst": "மறுதொடக்கம்",
|
||||||
"Russian": "ரஷ்ய",
|
"Russian": "ரஷ்ய",
|
||||||
"Salads": "சாலடுகள்",
|
"Salads": "சாலடுகள்",
|
||||||
|
"SAT": "ச",
|
||||||
"Sauces": "சாஸ்கள்",
|
"Sauces": "சாஸ்கள்",
|
||||||
"Scottish": "ஸ்காட்டிஷ்",
|
"Scottish": "ஸ்காட்டிஷ்",
|
||||||
"Seafood": "கடல் உணவு",
|
"Seafood": "கடல் உணவு",
|
||||||
"selRec": "சமையல் குறிப்பைத் தேர்ந்தெடுக்கவும்",
|
"selRec": "சமையல் குறிப்பைத் தேர்ந்தெடுக்கவும்",
|
||||||
|
"September": "செப்டம்பர்",
|
||||||
"ser": "தேடு",
|
"ser": "தேடு",
|
||||||
"Serving": "கூறு",
|
"Serving": "கூறு",
|
||||||
"SET": "அமை",
|
"SET": "அமை",
|
||||||
|
@ -233,8 +248,9 @@
|
||||||
"sru": "சமையல் குறிப்பை பகிரவும்...",
|
"sru": "சமையல் குறிப்பை பகிரவும்...",
|
||||||
"stars": "நட்சத்திர மதிப்பீடு",
|
"stars": "நட்சத்திர மதிப்பீடு",
|
||||||
"stick": "குச்சி",
|
"stick": "குச்சி",
|
||||||
"stp": "செய்முறை %s",
|
"stp": "செய்முறை",
|
||||||
"strAdd": "உங்கள் சமையல் குறிப்புகளைச் சேர்க்கத் தொடங்குங்கள்!",
|
"strAdd": "உங்கள் சமையல் குறிப்புகளைச் சேர்க்கத் தொடங்குங்கள்!",
|
||||||
|
"SUN": "ஞா",
|
||||||
"sVw": "சாதனத்தை அசைத்து சீரற்ற சமையல் குறிப்பை காண்க",
|
"sVw": "சாதனத்தை அசைத்து சீரற்ற சமையல் குறிப்பை காண்க",
|
||||||
"sVwInfo": "நீங்கள் தீர்மானிக்க முடியாதபோது என்ன சமைக்கலாம் என்பதைத் தேர்வுசெய்ய உதவும்",
|
"sVwInfo": "நீங்கள் தீர்மானிக்க முடியாதபோது என்ன சமைக்கலாம் என்பதைத் தேர்வுசெய்ய உதவும்",
|
||||||
"Swedish": "ஸ்வீடிஷ்",
|
"Swedish": "ஸ்வீடிஷ்",
|
||||||
|
@ -245,6 +261,7 @@
|
||||||
"Teaspoon": "டீஸ்பூன்",
|
"Teaspoon": "டீஸ்பூன்",
|
||||||
"Thai": "தாய்",
|
"Thai": "தாய்",
|
||||||
"Theme": "தீம்",
|
"Theme": "தீம்",
|
||||||
|
"THU": "வி",
|
||||||
"title": "தலைப்பு",
|
"title": "தலைப்பு",
|
||||||
"tLInfo": "நீங்கள் பின்னர் முயற்சிக்க விரும்பும் சமையல் குறிப்புகள் இங்கே பட்டியலிடப்படும்",
|
"tLInfo": "நீங்கள் பின்னர் முயற்சிக்க விரும்பும் சமையல் குறிப்புகள் இங்கே பட்டியலிடப்படும்",
|
||||||
"today": "இன்று",
|
"today": "இன்று",
|
||||||
|
@ -255,6 +272,7 @@
|
||||||
"ts": "குறிச்சொற்கள்",
|
"ts": "குறிச்சொற்கள்",
|
||||||
"tsInfo": "இடைவெளிகளுடன் பிரிக்கவும்",
|
"tsInfo": "இடைவெளிகளுடன் பிரிக்கவும்",
|
||||||
"tsp": "டீஸ்பூன்",
|
"tsp": "டீஸ்பூன்",
|
||||||
|
"TUE": "செ",
|
||||||
"Turkish": "துருக்கிய",
|
"Turkish": "துருக்கிய",
|
||||||
"Undefined": "வரையறுக்கப்படாதவை",
|
"Undefined": "வரையறுக்கப்படாதவை",
|
||||||
"unit": "அலகு",
|
"unit": "அலகு",
|
||||||
|
@ -265,67 +283,11 @@
|
||||||
"Vegetarian": "சைவம்",
|
"Vegetarian": "சைவம்",
|
||||||
"Vietnamese": "வியட்நாமிய",
|
"Vietnamese": "வியட்நாமிய",
|
||||||
"wAgo": "%s வாரங்களுக்கு முன்பு",
|
"wAgo": "%s வாரங்களுக்கு முன்பு",
|
||||||
|
"WED": "பு",
|
||||||
"yesterday": "நேற்று",
|
"yesterday": "நேற்று",
|
||||||
"yieldQ": "மகசூல் அளவு",
|
"yieldQ": "மகசூல் அளவு",
|
||||||
"yieldU": "மகசூல் அலகு",
|
"yieldU": "மகசூல் அலகு",
|
||||||
"yld": "மகசூல்",
|
"yld": "மகசூல்",
|
||||||
"buto": "%s இல் காப்புப் பிரதி எடுக்கப்பட்டது",
|
"buto": "%s இல் காப்புப் பிரதி எடுக்கப்பட்டது",
|
||||||
"sysDefB": "அமைப்பு இயல்புநிலை + கருப்பு",
|
"sysDefB": "அமைப்பு இயல்புநிலை + கருப்பு"
|
||||||
"notifSetg": "அறிவிப்பு அமைப்புகள்",
|
|
||||||
"tmrRm": "டைமர் நீக்கப்பட்டது",
|
|
||||||
"seconds": "வினாடிகள்",
|
|
||||||
"hours": "மணி",
|
|
||||||
"hour": "மணி",
|
|
||||||
"minutes": "நிமிடங்கள்",
|
|
||||||
"minute": "நிமிடம்",
|
|
||||||
"dlyDur": "தாமத காலம்",
|
|
||||||
"tmrvbrt": "டைமர் அதிர்வு",
|
|
||||||
"tmrSnd": "டைமர் ஒலி",
|
|
||||||
"aTPrst": "முன்னமைவுகளில் சேர்க்கப்பட்டது",
|
|
||||||
"fwr": "எந்த சமையல் குறிப்புக்காக?",
|
|
||||||
"delPrst": "நீங்கள் முன்னமைவுகளிலிருந்து %s ஐ நீக்க உள்ளீர்கள்",
|
|
||||||
"prsts": "முன்னமைவுகள்",
|
|
||||||
"prstBtn": "முன்னமைவுகள்",
|
|
||||||
"tmr": "டைமர் %s",
|
|
||||||
"delay": "தாமதப்படுத்து",
|
|
||||||
"stop": "நிறுத்து",
|
|
||||||
"strtBtn": "துடங்கு",
|
|
||||||
"ntmr": "புதிய டைமர்",
|
|
||||||
"timer": "சமையல் டைமர்",
|
|
||||||
"sec": "வினாடி",
|
|
||||||
"gtD": "தேதிக்குச் செல்",
|
|
||||||
"random": "ஒழுங்குமுறையின்றி",
|
|
||||||
"prstTU": "முன்னமைவின் நேரம் புதுப்பிக்கப்பட்டது",
|
|
||||||
"ccwt": "டைமர்களுடன் நம்பிக்கையுடன் சமையுங்கள்!",
|
|
||||||
"ttv": "பார்க்க தட்டவும்",
|
|
||||||
"dismissAll": "அனைத்து டைமர்களையும் அகற்று",
|
|
||||||
"dismiss": "அகற்று",
|
|
||||||
"texp": "%s டைமர்கள் முடிந்துவிட்டன",
|
|
||||||
"wDBy": "%1$s %2$s தாமதமாக்கப்பட்டது",
|
|
||||||
"ystr": "நேற்று",
|
|
||||||
"tmrw": "நாளை",
|
|
||||||
"tdy": "இன்று",
|
|
||||||
"cpy": "நகல்",
|
|
||||||
"calVM": "கேலெண்டர் காட்சி முறை",
|
|
||||||
"oAP": "%1$s செயலில் உள்ளது,%2$s இடைநிறுத்தப்பட்டது",
|
|
||||||
"d": "நாள்",
|
|
||||||
"wk": "வாரம்",
|
|
||||||
"mnth": "மாதம்",
|
|
||||||
"nvr": "ஒருபோதும்",
|
|
||||||
"otaw": "ஒரு வாரத்திற்கும் மேலானது",
|
|
||||||
"otam": "ஒரு மாதத்திற்கும் மேலானது",
|
|
||||||
"otay": "ஒரு வருடத்திற்கும் மேலானது",
|
|
||||||
"admp": "உணவு திட்டங்களை தானாக நீக்கு",
|
|
||||||
"plsCrt": "ஒன்றை உருவாக்க + பொத்தானைப் பயன்படுத்தவும்",
|
|
||||||
"ehwmp": "உணவு திட்டங்களுடன் ஆரோக்கியமாக சாப்பிடுங்கள்!",
|
|
||||||
"selMT": "உணவு வகையைத் தேர்ந்தெடுக்கவும்",
|
|
||||||
"esgbInfo": "வழிசெலுத்தலில் சிக்கல்கள் இருந்தால் இந்த விருப்பத்தை முடக்குக",
|
|
||||||
"esgb": "விளிம்பிலிருந்து ஸ்வைப் செய்து பின் செல்",
|
|
||||||
"ksavrInfo": "சமையல் குறிப்பு பார்க்கும் போது திரையை உறக்கநிலைக்குச் செல்லாது தடுக்கும்",
|
|
||||||
"ksavr": "சமையல் குறிப்பு பார்க்கும் போது திரையை விழித்திரு",
|
|
||||||
"rstBtn": "மீட்டமை",
|
|
||||||
"add": "சேர்",
|
|
||||||
"sectRm": "பிரிவு நீக்கப்பட்டது",
|
|
||||||
"addSectBtn": "பிரிவைச் சேர்",
|
|
||||||
"sect": "பிரிவு %s"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,9 @@
|
||||||
"appInfo": "నారెసిపీస్ అనేది ఓపెన్ సోర్స్, గోప్యతా-స్నేహపూర్వక డిజిటల్ కుక్బుక్, ఇది మీ వంటకాలను సృష్టించడానికి, నిర్వహించడానికి మరియు భాగస్వామ్యం చేయడానికి మిమ్మల్ని అనుమతిస్తుంది",
|
"appInfo": "నారెసిపీస్ అనేది ఓపెన్ సోర్స్, గోప్యతా-స్నేహపూర్వక డిజిటల్ కుక్బుక్, ఇది మీ వంటకాలను సృష్టించడానికి, నిర్వహించడానికి మరియు భాగస్వామ్యం చేయడానికి మిమ్మల్ని అనుమతిస్తుంది",
|
||||||
"apply": "వర్తించు",
|
"apply": "వర్తించు",
|
||||||
"appRst": "అప్లికేషన్ పున art ప్రారంభం అవసరం",
|
"appRst": "అప్లికేషన్ పున art ప్రారంభం అవసరం",
|
||||||
|
"April": "ఏప్రిల్",
|
||||||
"aStpBtn": "దశను జోడించండి",
|
"aStpBtn": "దశను జోడించండి",
|
||||||
|
"August": "ఆగస్టు",
|
||||||
"Barbecue": "బార్బెక్యూ",
|
"Barbecue": "బార్బెక్యూ",
|
||||||
"Beverages": "పానీయాలు",
|
"Beverages": "పానీయాలు",
|
||||||
"Black": "నలుపు",
|
"Black": "నలుపు",
|
||||||
|
@ -51,6 +53,7 @@
|
||||||
"Dark": "ముదురు",
|
"Dark": "ముదురు",
|
||||||
"db": "డేటాబేస్",
|
"db": "డేటాబేస్",
|
||||||
"dBtn": "ఎంచుకోబడింది",
|
"dBtn": "ఎంచుకోబడింది",
|
||||||
|
"December": "డిసెంబర్",
|
||||||
"delRecInfo": "మీరు %s రెసిపీని శాశ్వతంగా తొలగించబోతున్నారు",
|
"delRecInfo": "మీరు %s రెసిపీని శాశ్వతంగా తొలగించబోతున్నారు",
|
||||||
"delRecsInfo": "మీరు %s ని శాశ్వతంగా తొలగించబోతున్నారు",
|
"delRecsInfo": "మీరు %s ని శాశ్వతంగా తొలగించబోతున్నారు",
|
||||||
"Desserts": "డెజర్ట్స్",
|
"Desserts": "డెజర్ట్స్",
|
||||||
|
@ -72,12 +75,14 @@
|
||||||
"expip": "ఎగుమతి పురోగతిలో ఉంది",
|
"expip": "ఎగుమతి పురోగతిలో ఉంది",
|
||||||
"expSuc": "ఎగుమతి విజయం",
|
"expSuc": "ఎగుమతి విజయం",
|
||||||
"favourites": "ఇష్టమైనవి",
|
"favourites": "ఇష్టమైనవి",
|
||||||
|
"February": "ఫిబ్రవరి",
|
||||||
"Filipino": "ఫిలిపినో",
|
"Filipino": "ఫిలిపినో",
|
||||||
"Filtered recipes": "ఫిల్టర్ చేసిన వంటకాలు",
|
"Filtered recipes": "ఫిల్టర్ చేసిన వంటకాలు",
|
||||||
"fl oz": "ద్రవం oun న్స్",
|
"fl oz": "ద్రవం oun న్స్",
|
||||||
"fltr": "ఫిల్టర్",
|
"fltr": "ఫిల్టర్",
|
||||||
"Fluid Ounce": "ద్రవం oun న్స్",
|
"Fluid Ounce": "ద్రవం oun న్స్",
|
||||||
"French": "ఫ్రెంచ్",
|
"French": "ఫ్రెంచ్",
|
||||||
|
"FRI": "శుక్ర",
|
||||||
"fsList": "ఇష్టమైన వంటకాలు ఇంకా ఏమీ లేవు",
|
"fsList": "ఇష్టమైన వంటకాలు ఇంకా ఏమీ లేవు",
|
||||||
"g": "గ్రాము",
|
"g": "గ్రాము",
|
||||||
"gal": "గాలన్",
|
"gal": "గాలన్",
|
||||||
|
@ -103,12 +108,15 @@
|
||||||
"intf": "ఇంటర్ఫేస్",
|
"intf": "ఇంటర్ఫేస్",
|
||||||
"invFile": "చెల్లుబాటులోలేని ఫైలు",
|
"invFile": "చెల్లుబాటులోలేని ఫైలు",
|
||||||
"Irish": "ఐరిష్",
|
"Irish": "ఐరిష్",
|
||||||
"it": "అంశం %s",
|
"it": "అంశం",
|
||||||
"Italian": "ఇటాలియన్",
|
"Italian": "ఇటాలియన్",
|
||||||
"Jamaican": "జమైకా",
|
"Jamaican": "జమైకా",
|
||||||
|
"January": "జనవరి",
|
||||||
"Japanese": "జపనీస్",
|
"Japanese": "జపనీస్",
|
||||||
"Jewish": "యూదుల",
|
"Jewish": "యూదుల",
|
||||||
"joinTG": "టెలిగ్రామ్ సమూహంలో చేరండి",
|
"joinTG": "టెలిగ్రామ్ సమూహంలో చేరండి",
|
||||||
|
"July": "జూలై",
|
||||||
|
"June": "జూన్",
|
||||||
"kEdit": "సవరణ కొనసాగించండి",
|
"kEdit": "సవరణ కొనసాగించండి",
|
||||||
"Kenyan": "కెన్యా",
|
"Kenyan": "కెన్యా",
|
||||||
"kg": "కిలోగ్రాము",
|
"kg": "కిలోగ్రాము",
|
||||||
|
@ -128,6 +136,8 @@
|
||||||
"lunch": "భోజనం",
|
"lunch": "భోజనం",
|
||||||
"mAgo": "%s నెలల క్రితం",
|
"mAgo": "%s నెలల క్రితం",
|
||||||
"Main dishes": "ప్రధాన వంటకాలు",
|
"Main dishes": "ప్రధాన వంటకాలు",
|
||||||
|
"March": "మార్చి",
|
||||||
|
"May": "మే",
|
||||||
"Meat": "మాంసం",
|
"Meat": "మాంసం",
|
||||||
"medium": "మీడియం",
|
"medium": "మీడియం",
|
||||||
"Mexican": "మెక్సికన్",
|
"Mexican": "మెక్సికన్",
|
||||||
|
@ -137,6 +147,7 @@
|
||||||
"minimal": "కనిష్ట",
|
"minimal": "కనిష్ట",
|
||||||
"ml": "మిల్లీలీటర్",
|
"ml": "మిల్లీలీటర్",
|
||||||
"Moderate": "మోస్తరు",
|
"Moderate": "మోస్తరు",
|
||||||
|
"MON": "సోమ",
|
||||||
"newCui": "కొత్త వంటకాలు",
|
"newCui": "కొత్త వంటకాలు",
|
||||||
"Newest first": "క్రొత్తది మొదటిది",
|
"Newest first": "క్రొత్తది మొదటిది",
|
||||||
"newRec": "కొత్త వంటకం",
|
"newRec": "కొత్త వంటకం",
|
||||||
|
@ -151,8 +162,10 @@
|
||||||
"noRecs": "మీ శోధనకు వంటకాలు ఏవీ సరిపోలడం లేదు",
|
"noRecs": "మీ శోధనకు వంటకాలు ఏవీ సరిపోలడం లేదు",
|
||||||
"noRecsInL": "ఇక్కడ ఉన్న వంటకాలు ఏవీ మీ శోధనతో సరిపోలడం లేదు",
|
"noRecsInL": "ఇక్కడ ఉన్న వంటకాలు ఏవీ మీ శోధనతో సరిపోలడం లేదు",
|
||||||
"nos": "గమనికలు",
|
"nos": "గమనికలు",
|
||||||
|
"November": "నవంబర్",
|
||||||
"nwCat": "కొత్త వర్గం",
|
"nwCat": "కొత్త వర్గం",
|
||||||
"nwYiU": "కొత్త దిగుబడి యూనిట్",
|
"nwYiU": "కొత్త దిగుబడి యూనిట్",
|
||||||
|
"October": "అక్టోబర్",
|
||||||
"OK": "అలాగే",
|
"OK": "అలాగే",
|
||||||
"Oldest first": "పురాతన మొదటి",
|
"Oldest first": "పురాతన మొదటి",
|
||||||
"opts": "ఎంపికలు",
|
"opts": "ఎంపికలు",
|
||||||
|
@ -166,7 +179,7 @@
|
||||||
"Piece": "ముక్క",
|
"Piece": "ముక్క",
|
||||||
"pinch": "చిటికెడు",
|
"pinch": "చిటికెడు",
|
||||||
"planner": "భోజన ప్రణాళిక",
|
"planner": "భోజన ప్రణాళిక",
|
||||||
"plsAdd": "ఒకదాన్ని జోడించడానికి + బటన్ను ఉపయోగించండి",
|
"plsAdd": "ఒకదాన్ని జోడించడానికి ప్లస్ బటన్ను ఉపయోగించండి",
|
||||||
"Portuguese": "పోర్చుగీస్",
|
"Portuguese": "పోర్చుగీస్",
|
||||||
"Poultry": "పౌల్ట్రీ",
|
"Poultry": "పౌల్ట్రీ",
|
||||||
"Pound": "పౌండ్",
|
"Pound": "పౌండ్",
|
||||||
|
@ -187,7 +200,7 @@
|
||||||
"recs": "వంటకాలు",
|
"recs": "వంటకాలు",
|
||||||
"recTitle": "నా ఆరోగ్యకరమైన వంటకం",
|
"recTitle": "నా ఆరోగ్యకరమైన వంటకం",
|
||||||
"recU": "నవీకరించబడింది:",
|
"recU": "నవీకరించబడింది:",
|
||||||
"req": "అవసరమైన %s",
|
"req": "అవసరమైన %",
|
||||||
"resNF": "రెసిపీ కనుగొనబడలేదు",
|
"resNF": "రెసిపీ కనుగొనబడలేదు",
|
||||||
"rest": "రీసెట్ చేయండి",
|
"rest": "రీసెట్ చేయండి",
|
||||||
"restCatL": "వర్గం జాబితాను రీసెట్ చేయండి",
|
"restCatL": "వర్గం జాబితాను రీసెట్ చేయండి",
|
||||||
|
@ -210,10 +223,12 @@
|
||||||
"rst": "పునఃప్రారంభించు",
|
"rst": "పునఃప్రారంభించు",
|
||||||
"Russian": "రష్యన్",
|
"Russian": "రష్యన్",
|
||||||
"Salads": "సలాడ్లు",
|
"Salads": "సలాడ్లు",
|
||||||
|
"SAT": "శని",
|
||||||
"Sauces": "సాస్",
|
"Sauces": "సాస్",
|
||||||
"Scottish": "స్కాటిష్",
|
"Scottish": "స్కాటిష్",
|
||||||
"Seafood": "సముద్రపు ఆహారం",
|
"Seafood": "సముద్రపు ఆహారం",
|
||||||
"selRec": "రెసిపీని ఎంచుకోండి",
|
"selRec": "రెసిపీని ఎంచుకోండి",
|
||||||
|
"September": "సెప్టెంబర్",
|
||||||
"ser": "శోధించు",
|
"ser": "శోధించు",
|
||||||
"Serving": "అందిస్తోంది",
|
"Serving": "అందిస్తోంది",
|
||||||
"SET": "సెట్",
|
"SET": "సెట్",
|
||||||
|
@ -233,8 +248,9 @@
|
||||||
"sru": "రెసిపీని భాగస్వామ్యం చేయండి ...",
|
"sru": "రెసిపీని భాగస్వామ్యం చేయండి ...",
|
||||||
"stars": "స్టార్ రేటింగ్",
|
"stars": "స్టార్ రేటింగ్",
|
||||||
"stick": "కర్ర",
|
"stick": "కర్ర",
|
||||||
"stp": "దశ %s",
|
"stp": "దశ",
|
||||||
"strAdd": "మీ వంటకాలను జోడించడం ప్రారంభించండి!",
|
"strAdd": "మీ వంటకాలను జోడించడం ప్రారంభించండి!",
|
||||||
|
"SUN": "ఆది",
|
||||||
"sVw": "యాదృచ్ఛిక రెసిపీని చూడటానికి షేక్ చేయండి",
|
"sVw": "యాదృచ్ఛిక రెసిపీని చూడటానికి షేక్ చేయండి",
|
||||||
"sVwInfo": "మీరు నిర్ణయించలేనప్పుడు ఏమి ఉడికించాలో ఎంచుకోవడానికి మీకు సహాయపడుతుంది",
|
"sVwInfo": "మీరు నిర్ణయించలేనప్పుడు ఏమి ఉడికించాలో ఎంచుకోవడానికి మీకు సహాయపడుతుంది",
|
||||||
"Swedish": "స్వీడిష్",
|
"Swedish": "స్వీడిష్",
|
||||||
|
@ -245,6 +261,7 @@
|
||||||
"Teaspoon": "టీస్పూన్",
|
"Teaspoon": "టీస్పూన్",
|
||||||
"Thai": "థాయ్",
|
"Thai": "థాయ్",
|
||||||
"Theme": "థీమ్",
|
"Theme": "థీమ్",
|
||||||
|
"THU": "గురు",
|
||||||
"title": "శీర్షిక",
|
"title": "శీర్షిక",
|
||||||
"tLInfo": "మీరు తరువాత ప్రయత్నించాలనుకునే వంటకాలు ఇక్కడ ఇవ్వబడ్డాయి",
|
"tLInfo": "మీరు తరువాత ప్రయత్నించాలనుకునే వంటకాలు ఇక్కడ ఇవ్వబడ్డాయి",
|
||||||
"today": "ఈ రోజు",
|
"today": "ఈ రోజు",
|
||||||
|
@ -255,6 +272,7 @@
|
||||||
"ts": "టాగ్లు",
|
"ts": "టాగ్లు",
|
||||||
"tsInfo": "ఖాళీలతో వేరు",
|
"tsInfo": "ఖాళీలతో వేరు",
|
||||||
"tsp": "స్పూన్",
|
"tsp": "స్పూన్",
|
||||||
|
"TUE": "మంగళ",
|
||||||
"Turkish": "టర్కిష్",
|
"Turkish": "టర్కిష్",
|
||||||
"Undefined": "వివరించబడలేదు",
|
"Undefined": "వివరించబడలేదు",
|
||||||
"unit": "యూనిట్",
|
"unit": "యూనిట్",
|
||||||
|
@ -265,67 +283,11 @@
|
||||||
"Vegetarian": "శాఖాహారం",
|
"Vegetarian": "శాఖాహారం",
|
||||||
"Vietnamese": "వియత్నామీస్",
|
"Vietnamese": "వియత్నామీస్",
|
||||||
"wAgo": "%s వారాల క్రితం",
|
"wAgo": "%s వారాల క్రితం",
|
||||||
|
"WED": "బుధ",
|
||||||
"yesterday": "నిన్న",
|
"yesterday": "నిన్న",
|
||||||
"yieldQ": "దిగుబడి పరిమాణం",
|
"yieldQ": "దిగుబడి పరిమాణం",
|
||||||
"yieldU": "దిగుబడి యూనిట్",
|
"yieldU": "దిగుబడి యూనిట్",
|
||||||
"yld": "దిగుబడి",
|
"yld": "దిగుబడి",
|
||||||
"buto": "%s కు బ్యాకప్ చేయబడింది",
|
"buto": "%s కు బ్యాకప్ చేయబడింది",
|
||||||
"sysDefB": "సిస్టమ్ డిఫాల్ట్ + నలుపు",
|
"sysDefB": "సిస్టమ్ డిఫాల్ట్ + నలుపు"
|
||||||
"notifSetg": "నోటిఫికేషన్ సెట్టింగులు",
|
|
||||||
"tmrRm": "టైమర్ తొలగించబడింది",
|
|
||||||
"seconds": "సెకన్లు",
|
|
||||||
"hours": "గంటలు",
|
|
||||||
"hour": "గంట",
|
|
||||||
"minutes": "నిమిషాలు",
|
|
||||||
"minute": "నిమిషం",
|
|
||||||
"dlyDur": "ఆలస్యం వ్యవధి",
|
|
||||||
"tmrvbrt": "టైమర్ వైబ్రేట్",
|
|
||||||
"tmrSnd": "టైమర్ ధ్వని",
|
|
||||||
"aTPrst": "ప్రీసెట్లు జోడించబడ్డాయి",
|
|
||||||
"fwr": "ఏ రెసిపీ కోసం?",
|
|
||||||
"delPrst": "మీరు ప్రీసెట్లు నుండి %s ను తొలగించబోతున్నారు",
|
|
||||||
"prsts": "ప్రీసెట్లు",
|
|
||||||
"prstBtn": "ప్రీసెట్లు",
|
|
||||||
"tmr": "టైమర్ %s",
|
|
||||||
"delay": "ఆలస్యం",
|
|
||||||
"stop": "ఆపు",
|
|
||||||
"strtBtn": "ప్రారం",
|
|
||||||
"ntmr": "క్రొత్త టైమర్",
|
|
||||||
"timer": "వంట టైమర్",
|
|
||||||
"sec": "సెక",
|
|
||||||
"ystr": "నిన్న",
|
|
||||||
"tmrw": "రేపు",
|
|
||||||
"tdy": "నేడు",
|
|
||||||
"cpy": "కాపీ",
|
|
||||||
"calVM": "క్యాలెండర్ వీక్షణ మోడ్",
|
|
||||||
"oAP": "%1$s పురోగతిలో ఉంది, %2$s పాజ్ చేయబడ్డాయి",
|
|
||||||
"ttv": "వీక్షించడానికి నొక్కండి",
|
|
||||||
"dismissAll": "అన్ని టైమర్లను తొలగించండి",
|
|
||||||
"dismiss": "రద్దుచేసే",
|
|
||||||
"texp": "%s టైమర్ల గడువు ముగిసింది",
|
|
||||||
"wDBy": "%1$s %2$s ఆలస్యం అయింది",
|
|
||||||
"prstTU": "ప్రీసెట్ సమయం నవీకరించబడింది",
|
|
||||||
"ccwt": "టైమర్లతో నమ్మకంగా ఉడికించాలి!",
|
|
||||||
"gtD": "తేదీకి వెళ్ళండి",
|
|
||||||
"random": "యాదృచ్ఛికం",
|
|
||||||
"esgbInfo": "మీకు నావిగేషన్ సమస్యలు ఉంటే ఈ ఎంపికను నిలిపివేయండి",
|
|
||||||
"esgb": "తిరిగి వెళ్ళడానికి అంచుని స్వైప్ చేయండి",
|
|
||||||
"ksavrInfo": "రెసిపీని చూసేటప్పుడు స్క్రీన్ ఆపివేయకుండా నిరోధిస్తుంది",
|
|
||||||
"ksavr": "రెసిపీని చూసేటప్పుడు స్క్రీన్ను మేల్కొని ఉండండి",
|
|
||||||
"rstBtn": "రీసెట్ చేయండి",
|
|
||||||
"add": "జోడించు",
|
|
||||||
"nvr": "ఎప్పుడూ",
|
|
||||||
"otaw": "వారం కన్నా పాతది",
|
|
||||||
"otam": "ఒక నెల కన్నా పాతది",
|
|
||||||
"otay": "ఒక సంవత్సరం కన్నా పాతది",
|
|
||||||
"admp": "భోజన పథకాలను స్వయంచాలకంగా తొలగించండి",
|
|
||||||
"plsCrt": "ఒకదాన్ని సృష్టించడానికి + బటన్ను ఉపయోగించండి",
|
|
||||||
"ehwmp": "భోజన పథకాలతో ఆరోగ్యంగా తినండి!",
|
|
||||||
"selMT": "భోజన రకాన్ని ఎంచుకోండి",
|
|
||||||
"d": "రోజు",
|
|
||||||
"wk": "వారం",
|
|
||||||
"mnth": "నెల",
|
|
||||||
"sectRm": "విభాగం తొలగించబడింది",
|
|
||||||
"addSectBtn": "విభాగం జోడించండి",
|
|
||||||
"sect": "విభాగం %s"
|
|
||||||
}
|
}
|
||||||
|
|
153
app/main.ts
|
@ -1,149 +1,28 @@
|
||||||
|
import {
|
||||||
|
localize,
|
||||||
|
androidLaunchEventLocalizationHandler,
|
||||||
|
} from '@nativescript/localize'
|
||||||
|
import { on, launchEvent } from '@nativescript/core/application'
|
||||||
|
on(launchEvent, (args) => {
|
||||||
|
if (args.android) {
|
||||||
|
androidLaunchEventLocalizationHandler()
|
||||||
|
}
|
||||||
|
})
|
||||||
import Vue from 'nativescript-vue'
|
import Vue from 'nativescript-vue'
|
||||||
import store from './store'
|
|
||||||
import {
|
|
||||||
Application,
|
|
||||||
AndroidApplication,
|
|
||||||
Utils,
|
|
||||||
Frame,
|
|
||||||
} from '@nativescript/core'
|
|
||||||
import {
|
|
||||||
setNumber,
|
|
||||||
getNumber,
|
|
||||||
getString,
|
|
||||||
} from '@nativescript/core/application-settings'
|
|
||||||
import { localize } from '@nativescript/localize'
|
|
||||||
import EnRecipes from './components/EnRecipes.vue'
|
import EnRecipes from './components/EnRecipes.vue'
|
||||||
import EditRecipe from './components/EditRecipe.vue'
|
import store from './store'
|
||||||
import MealPlanner from './components/MealPlanner.vue'
|
|
||||||
import CookingTimer from './components/CookingTimer.vue'
|
|
||||||
// import GroceryList from './components/GroceryList.vue'
|
|
||||||
|
|
||||||
import * as utils from '~/shared/utils'
|
|
||||||
|
|
||||||
export const EvtBus = new Vue()
|
|
||||||
|
|
||||||
let renderView: any = EnRecipes
|
|
||||||
|
|
||||||
import CollectionView from '@nativescript-community/ui-collectionview/vue'
|
import CollectionView from '@nativescript-community/ui-collectionview/vue'
|
||||||
Vue.use(CollectionView)
|
Vue.use(CollectionView)
|
||||||
|
|
||||||
import { RGridLayout, RStackLayout, RLabel } from './rtl-ui'
|
import { lvMixin } from './shared/mixins.js'
|
||||||
Vue.registerElement('RGridLayout', () => RGridLayout)
|
Vue.mixin(lvMixin)
|
||||||
Vue.registerElement('RStackLayout', () => RStackLayout)
|
|
||||||
Vue.registerElement('RLabel', () => RLabel)
|
|
||||||
|
|
||||||
import { myMixin } from './shared/mixins'
|
|
||||||
Vue.mixin(myMixin)
|
|
||||||
|
|
||||||
Vue.filter('L', localize)
|
|
||||||
|
|
||||||
const initFrame = () => {
|
|
||||||
const s = store
|
|
||||||
// MainInit
|
|
||||||
s.commit('setT', getString('theme', 'sysDef'))
|
|
||||||
s.commit('initRs')
|
|
||||||
s.commit('initMPs')
|
|
||||||
s.commit('initLIs')
|
|
||||||
s.commit('initTPs')
|
|
||||||
if (!Object.keys(s.state.timerS).length) {
|
|
||||||
let hasTimerSound = getString('timerS', null)
|
|
||||||
s.commit(
|
|
||||||
'setTS',
|
|
||||||
hasTimerSound ? JSON.parse(hasTimerSound) : utils.getTones().defaultTone
|
|
||||||
)
|
|
||||||
}
|
|
||||||
// InitFrame
|
|
||||||
const window = Application.android.startActivity.getWindow()
|
|
||||||
const decorView = window.getDecorView()
|
|
||||||
utils.setBarColors(window, decorView, s.state.theme)
|
|
||||||
Frame.topmost().className = s.state.theme
|
|
||||||
}
|
|
||||||
const showOverLockscreen = () => {
|
|
||||||
let ctx = Utils.ad.getApplicationContext()
|
|
||||||
const pm = ctx.getSystemService(android.content.Context.POWER_SERVICE)
|
|
||||||
let isScreenOff = !pm.isInteractive()
|
|
||||||
if (isScreenOff) {
|
|
||||||
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)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
const intentListener = ({ intent, android }: any) => {
|
|
||||||
let action = ((intent || android).getStringExtra('action') ||
|
|
||||||
(android && android.getAction())) as string
|
|
||||||
if (action) {
|
|
||||||
switch (action) {
|
|
||||||
case 'new_recipe':
|
|
||||||
renderView = EditRecipe
|
|
||||||
break
|
|
||||||
case 'planner':
|
|
||||||
renderView = MealPlanner
|
|
||||||
break
|
|
||||||
case 'timer':
|
|
||||||
renderView = CookingTimer
|
|
||||||
switch (getNumber('isTimer', 0)) {
|
|
||||||
case 0:
|
|
||||||
// Closing all modals if available before navigation
|
|
||||||
if (Frame.topmost()) {
|
|
||||||
let modals = Frame.topmost()._getRootModalViews()
|
|
||||||
for (let i = modals.length - 1; i >= 0; i--) {
|
|
||||||
Frame.topmost()
|
|
||||||
._getRootModalViews()
|
|
||||||
[i].closeModal()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Vue.navigateTo(CookingTimer as any, {
|
|
||||||
animated: false,
|
|
||||||
})
|
|
||||||
setNumber('isTimer', 1)
|
|
||||||
break
|
|
||||||
case 2:
|
|
||||||
Vue.navigateBack()
|
|
||||||
break
|
|
||||||
}
|
|
||||||
break
|
|
||||||
// case 'grocery':
|
|
||||||
// renderView = GroceryList
|
|
||||||
// break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Application.on(Application.launchEvent, (args) => {
|
|
||||||
utils.updateLocale()
|
|
||||||
store.commit('setRTL')
|
|
||||||
intentListener(args)
|
|
||||||
Application.android.on(
|
|
||||||
AndroidApplication.activityNewIntentEvent,
|
|
||||||
intentListener
|
|
||||||
)
|
|
||||||
Frame.on(Frame.loadedEvent, initFrame)
|
|
||||||
})
|
|
||||||
|
|
||||||
Application.on(Application.resumeEvent, () => {
|
|
||||||
showOverLockscreen()
|
|
||||||
if (utils.sysLocale() !== getString('sysLocale', utils.sysLocale())) {
|
|
||||||
Frame.reloadPage()
|
|
||||||
utils.updateLocale()
|
|
||||||
store.commit('setRTL')
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
Application.on(Application.exitEvent, () => {
|
|
||||||
renderView = EnRecipes
|
|
||||||
Application.android.off(
|
|
||||||
AndroidApplication.activityNewIntentEvent,
|
|
||||||
intentListener
|
|
||||||
)
|
|
||||||
})
|
|
||||||
|
|
||||||
Vue.config.silent = false
|
Vue.config.silent = false
|
||||||
|
|
||||||
|
Vue.filter('L', localize)
|
||||||
|
|
||||||
new Vue({
|
new Vue({
|
||||||
store,
|
store,
|
||||||
render: (h) => h('Frame', [h(renderView)]),
|
render: (h) => h(EnRecipes),
|
||||||
}).$start()
|
}).$start()
|
||||||
|
|
|
@ -15,18 +15,29 @@
|
||||||
|
|
||||||
android {
|
android {
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
versionCode 2
|
versionCode 8
|
||||||
versionName '2.0.1'
|
versionName '1.3.3'
|
||||||
|
applicationId 'com.vishnuraghav.enrecipes'
|
||||||
minSdkVersion 23
|
minSdkVersion 23
|
||||||
targetSdkVersion 30
|
targetSdkVersion 30
|
||||||
compileSdkVersion 30
|
compileSdkVersion 30
|
||||||
generatedDensities = []
|
generatedDensities = []
|
||||||
// ndk {
|
ndk {
|
||||||
// abiFilters.clear()
|
abiFilters.clear()
|
||||||
// abiFilters.addAll(['arm64-v8a'])
|
abiFilters.addAll(['arm64-v8a', 'armeabi-v7a', 'x86'])
|
||||||
// }
|
}
|
||||||
}
|
}
|
||||||
aaptOptions {
|
aaptOptions {
|
||||||
additionalParameters "--no-version-vectors"
|
additionalParameters "--no-version-vectors"
|
||||||
}
|
}
|
||||||
|
// buildTypes {
|
||||||
|
// release {
|
||||||
|
// minifyEnabled true
|
||||||
|
// shrinkResources false
|
||||||
|
// debuggable false
|
||||||
|
// jniDebuggable false
|
||||||
|
// renderscriptDebuggable false
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,29 +1,32 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?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">
|
<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" />
|
<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.CAMERA" tools:node="remove" />
|
||||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" 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.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.ACCESS_NETWORK_STATE" tools:node="remove" />
|
||||||
<uses-permission android:name="android.permission.INTERNET" tools:node="remove" />
|
<uses-permission android:name="android.permission.INTERNET" tools:node="remove" />
|
||||||
<uses-permission android:name="android.permission.RECORD_AUDIO" 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/app_icon" android:label="@string/app_name" android:supportsRtl="true" android:hardwareAccelerated="true" android:largeHeap="true" android:theme="@style/AppTheme">
|
<application android:extractNativeLibs="true"
|
||||||
<activity android:name="com.tns.NativeScriptActivity" android:label="@string/title_activity_kimera" android:launchMode="singleTop" android:screenOrientation="userPortrait" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|smallestScreenSize|screenLayout|locale|uiMode" android:theme="@style/LaunchScreenTheme" android:windowSoftInputMode="adjustResize">
|
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">
|
||||||
<meta-data android:name="SET_THEME_ON_LAUNCH" android:resource="@style/AppTheme" />
|
<meta-data android:name="SET_THEME_ON_LAUNCH" android:resource="@style/AppTheme" />
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.MAIN" />
|
<action android:name="android.intent.action.MAIN" />
|
||||||
<category android:name="android.intent.category.LAUNCHER" />
|
<category android:name="android.intent.category.LAUNCHER" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
<meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts" />
|
|
||||||
</activity>
|
</activity>
|
||||||
<activity android:name="com.tns.ErrorReportActivity" />
|
<activity android:name="com.tns.ErrorReportActivity" />
|
||||||
<service android:name="com.tns.ForegroundService" android:enabled="true" android:exported="false" />
|
<provider
|
||||||
<provider android:name="androidx.core.content.FileProvider" android:exported="false" android:authorities="${applicationId}.provider" android:grantUriPermissions="true">
|
android:name="androidx.core.content.FileProvider"
|
||||||
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider" />
|
android:exported="false"
|
||||||
|
android:authorities="${applicationId}.provider"
|
||||||
|
android:grantUriPermissions="true">
|
||||||
|
<meta-data
|
||||||
|
android:name="android.support.FILE_PROVIDER_PATHS"
|
||||||
|
android:resource="@xml/provider"/>
|
||||||
</provider>
|
</provider>
|
||||||
</application>
|
</application>
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<foreground android:drawable="@drawable/app_icon_fg" />
|
<foreground android:drawable="@drawable/ic_launcher_foreground" />
|
||||||
<background android:drawable="@color/white" />
|
<background android:drawable="@color/white" />
|
||||||
</adaptive-icon>
|
</adaptive-icon>
|
|
@ -1,5 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
<foreground android:drawable="@drawable/sc_add_fg" />
|
|
||||||
<background android:drawable="@color/orange" />
|
|
||||||
</adaptive-icon>
|
|
|
@ -1,5 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
<foreground android:drawable="@drawable/sc_grocery_fg" />
|
|
||||||
<background android:drawable="@color/orange" />
|
|
||||||
</adaptive-icon>
|
|
|
@ -1,5 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
<foreground android:drawable="@drawable/sc_planner_fg" />
|
|
||||||
<background android:drawable="@color/orange" />
|
|
||||||
</adaptive-icon>
|
|
|
@ -1,5 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
<foreground android:drawable="@drawable/sc_timer_fg" />
|
|
||||||
<background android:drawable="@color/orange" />
|
|
||||||
</adaptive-icon>
|
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 938 B |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.6 KiB |
BIN
app/resources/Android/src/main/res/drawable-ldpi/logo.webp
Normal file
After Width: | Height: | Size: 754 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 852 B |
Before Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1,016 B |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.9 KiB |