From 22150a1f70d2181f48f0668dcb9d80d13c1683f2 Mon Sep 17 00:00:00 2001 From: Pierre Slamich Date: Fri, 8 Jul 2022 17:21:31 +0200 Subject: [PATCH 01/51] Update and rename github-projects.yml to github-projects-pr.yml --- .../workflows/{github-projects.yml => github-projects-pr.yml} | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) rename .github/workflows/{github-projects.yml => github-projects-pr.yml} (82%) diff --git a/.github/workflows/github-projects.yml b/.github/workflows/github-projects-pr.yml similarity index 82% rename from .github/workflows/github-projects.yml rename to .github/workflows/github-projects-pr.yml index 0e00c23739a1..68dc61d1fe98 100644 --- a/.github/workflows/github-projects.yml +++ b/.github/workflows/github-projects-pr.yml @@ -1,8 +1,6 @@ -name: Add bugs to the Release Smoothie GitHub Project +name: Add PRs to the Release Smoothie GitHub Project on: - issues: - types: [opened, transferred] pull_request: types: - opened From 8a0ba02ddbf8787bafa90f063cdfa44061f5895c Mon Sep 17 00:00:00 2001 From: Pierre Slamich Date: Fri, 8 Jul 2022 17:22:01 +0200 Subject: [PATCH 02/51] Create github-projects.yml --- .github/workflows/github-projects.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 .github/workflows/github-projects.yml diff --git a/.github/workflows/github-projects.yml b/.github/workflows/github-projects.yml new file mode 100644 index 000000000000..c0c84a90e97d --- /dev/null +++ b/.github/workflows/github-projects.yml @@ -0,0 +1,16 @@ +name: Add bugs to the Release Smoothie GitHub Project + +on: + issues: + types: [opened, transferred] + +jobs: + add-to-project: + name: Add issue to project + runs-on: ubuntu-latest + steps: + - uses: actions/add-to-project@main + with: + project-url: https://github.com/orgs/openfoodfacts/projects/7 + github-token: ${{ secrets.ADD_TO_PROJECT_PAT || github.token }} + label-operator: AND From 0a26cc62dd34b9f561c2c1325fb03b853b76bbad Mon Sep 17 00:00:00 2001 From: Pierre Slamich Date: Fri, 8 Jul 2022 19:09:46 +0200 Subject: [PATCH 03/51] doc: add currently deployed commit (#2556) --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 9cbf6336f64f..aad9dd565af1 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,8 @@ # Open Food Facts - Codename: "Smooth App" [![SmoothApp Post-Submit Tests](https://github.com/openfoodfacts/smooth-app/actions/workflows/postsubmit.yml/badge.svg)](https://github.com/openfoodfacts/smooth-app/actions/workflows/postsubmit.yml) +Latest commit deployed to App Stores: (July 8th 2022) https://github.com/openfoodfacts/smooth-app/commit/b318a540130a2135db9308c2b4f74ce0eeb8f849 + A new Flutter application by [Open Food Facts](https://github.com/openfoodfacts). You can install it on [Android](https://play.google.com/store/apps/details?id=org.openfoodfacts.scanner) or [iPhone/iPad](https://apps.apple.com/app/open-food-facts/id588797948). Note that a internal development build ([Android](https://play.google.com/apps/internaltest/4699092342921529278) or [iPhone/iPad](https://testflight.apple.com/join/c2tiBHgd) )if you'd like to use the results of your PRs quicker. Smoothie. We pioneered the collaborative scanning app in 2012. With this experimental app, we’re reinventing it from the ground up, and this time, it’s personal. From 4e891bbb81cdcdc56003c79ac81d40269904fcc2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 8 Jul 2022 22:13:00 +0200 Subject: [PATCH 04/51] chore(deps): bump crowdin/github-action from 1.4.9 to 1.4.10 (#2559) Bumps [crowdin/github-action](https://github.com/crowdin/github-action) from 1.4.9 to 1.4.10. - [Release notes](https://github.com/crowdin/github-action/releases) - [Commits](https://github.com/crowdin/github-action/compare/1.4.9...1.4.10) --- updated-dependencies: - dependency-name: crowdin/github-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/crowdin.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/crowdin.yml b/.github/workflows/crowdin.yml index 6fc1778a864c..cc75e9375848 100644 --- a/.github/workflows/crowdin.yml +++ b/.github/workflows/crowdin.yml @@ -15,7 +15,7 @@ jobs: uses: actions/checkout@v3 - name: crowdin action - uses: crowdin/github-action@1.4.9 + uses: crowdin/github-action@1.4.10 continue-on-error: true with: # Upload sources to Crowdin From e4ea159685342a92dc148793dbadf9a46d662647 Mon Sep 17 00:00:00 2001 From: Aman Raj <57723319+AshAman999@users.noreply.github.com> Date: Sat, 9 Jul 2022 22:49:24 +0530 Subject: [PATCH 05/51] fix: better place holder when no internet connection (#2560) * better place holder when no internet connection * better text msg --- .../lib/cards/data_cards/image_upload_card.dart | 13 ++++++++++--- packages/smooth_app/lib/l10n/app_en.arb | 4 ++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/packages/smooth_app/lib/cards/data_cards/image_upload_card.dart b/packages/smooth_app/lib/cards/data_cards/image_upload_card.dart index f401e7df9dc4..821441ccc5a3 100644 --- a/packages/smooth_app/lib/cards/data_cards/image_upload_card.dart +++ b/packages/smooth_app/lib/cards/data_cards/image_upload_card.dart @@ -81,6 +81,8 @@ class _ImageUploadCardState extends State { @override Widget build(BuildContext context) { final Size screenSize = MediaQuery.of(context).size; + final AppLocalizations appLocalizations = AppLocalizations.of(context); + // We can already have an _imageProvider for a file that is going to be uploaded // or an imageUrl for a network image // or no image yet @@ -103,9 +105,14 @@ class _ImageUploadCardState extends State { height: 1000, errorBuilder: (BuildContext context, Object exception, StackTrace? stackTrace) { - return Icon( - Icons.wifi_off, - size: screenSize.width / 3, + return Column( + children: [ + Icon( + Icons.cloud_off_sharp, + size: screenSize.width / 4, + ), + Text(appLocalizations.no_internet_connection), + ], ); }, ), diff --git a/packages/smooth_app/lib/l10n/app_en.arb b/packages/smooth_app/lib/l10n/app_en.arb index 33f1afe4ee82..0a7b91f46f5f 100644 --- a/packages/smooth_app/lib/l10n/app_en.arb +++ b/packages/smooth_app/lib/l10n/app_en.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file From 6dc012efec32f6d9ffc3105e53e41ce58341fe06 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 10 Jul 2022 09:34:27 +0200 Subject: [PATCH 06/51] chore: New Crowdin translations to review and merge (#2562) * chore: New Crowdin translations * Update app_aa.arb Co-authored-by: Crowdin Bot Co-authored-by: Pierre Slamich --- packages/smooth_app/lib/l10n/app_aa.arb | 6 +++++- packages/smooth_app/lib/l10n/app_af.arb | 4 ++++ packages/smooth_app/lib/l10n/app_ak.arb | 4 ++++ packages/smooth_app/lib/l10n/app_am.arb | 4 ++++ packages/smooth_app/lib/l10n/app_ar.arb | 4 ++++ packages/smooth_app/lib/l10n/app_as.arb | 4 ++++ packages/smooth_app/lib/l10n/app_az.arb | 4 ++++ packages/smooth_app/lib/l10n/app_be.arb | 4 ++++ packages/smooth_app/lib/l10n/app_bg.arb | 4 ++++ packages/smooth_app/lib/l10n/app_bm.arb | 4 ++++ packages/smooth_app/lib/l10n/app_bn.arb | 4 ++++ packages/smooth_app/lib/l10n/app_bo.arb | 4 ++++ packages/smooth_app/lib/l10n/app_br.arb | 4 ++++ packages/smooth_app/lib/l10n/app_bs.arb | 4 ++++ packages/smooth_app/lib/l10n/app_ca.arb | 4 ++++ packages/smooth_app/lib/l10n/app_ce.arb | 4 ++++ packages/smooth_app/lib/l10n/app_co.arb | 4 ++++ packages/smooth_app/lib/l10n/app_cs.arb | 4 ++++ packages/smooth_app/lib/l10n/app_cv.arb | 4 ++++ packages/smooth_app/lib/l10n/app_cy.arb | 4 ++++ packages/smooth_app/lib/l10n/app_da.arb | 4 ++++ packages/smooth_app/lib/l10n/app_de.arb | 4 ++++ packages/smooth_app/lib/l10n/app_el.arb | 4 ++++ packages/smooth_app/lib/l10n/app_eo.arb | 4 ++++ packages/smooth_app/lib/l10n/app_es.arb | 4 ++++ packages/smooth_app/lib/l10n/app_et.arb | 4 ++++ packages/smooth_app/lib/l10n/app_eu.arb | 4 ++++ packages/smooth_app/lib/l10n/app_fa.arb | 4 ++++ packages/smooth_app/lib/l10n/app_fi.arb | 4 ++++ packages/smooth_app/lib/l10n/app_fil.arb | 4 ++++ packages/smooth_app/lib/l10n/app_fo.arb | 4 ++++ packages/smooth_app/lib/l10n/app_fr.arb | 4 ++++ packages/smooth_app/lib/l10n/app_ga.arb | 4 ++++ packages/smooth_app/lib/l10n/app_gd.arb | 4 ++++ packages/smooth_app/lib/l10n/app_gl.arb | 4 ++++ packages/smooth_app/lib/l10n/app_gu.arb | 4 ++++ packages/smooth_app/lib/l10n/app_ha.arb | 4 ++++ packages/smooth_app/lib/l10n/app_he.arb | 4 ++++ packages/smooth_app/lib/l10n/app_hi.arb | 4 ++++ packages/smooth_app/lib/l10n/app_hr.arb | 4 ++++ packages/smooth_app/lib/l10n/app_ht.arb | 4 ++++ packages/smooth_app/lib/l10n/app_hu.arb | 4 ++++ packages/smooth_app/lib/l10n/app_hy.arb | 4 ++++ packages/smooth_app/lib/l10n/app_id.arb | 4 ++++ packages/smooth_app/lib/l10n/app_ii.arb | 4 ++++ packages/smooth_app/lib/l10n/app_is.arb | 4 ++++ packages/smooth_app/lib/l10n/app_it.arb | 4 ++++ packages/smooth_app/lib/l10n/app_iu.arb | 4 ++++ packages/smooth_app/lib/l10n/app_ja.arb | 4 ++++ packages/smooth_app/lib/l10n/app_jv.arb | 4 ++++ packages/smooth_app/lib/l10n/app_ka.arb | 4 ++++ packages/smooth_app/lib/l10n/app_kk.arb | 4 ++++ packages/smooth_app/lib/l10n/app_km.arb | 4 ++++ packages/smooth_app/lib/l10n/app_kn.arb | 4 ++++ packages/smooth_app/lib/l10n/app_ko.arb | 4 ++++ packages/smooth_app/lib/l10n/app_ku.arb | 4 ++++ packages/smooth_app/lib/l10n/app_kw.arb | 4 ++++ packages/smooth_app/lib/l10n/app_ky.arb | 4 ++++ packages/smooth_app/lib/l10n/app_la.arb | 4 ++++ packages/smooth_app/lib/l10n/app_lb.arb | 4 ++++ packages/smooth_app/lib/l10n/app_lo.arb | 4 ++++ packages/smooth_app/lib/l10n/app_lt.arb | 4 ++++ packages/smooth_app/lib/l10n/app_lv.arb | 4 ++++ packages/smooth_app/lib/l10n/app_mg.arb | 4 ++++ packages/smooth_app/lib/l10n/app_mi.arb | 4 ++++ packages/smooth_app/lib/l10n/app_ml.arb | 4 ++++ packages/smooth_app/lib/l10n/app_mn.arb | 4 ++++ packages/smooth_app/lib/l10n/app_mr.arb | 4 ++++ packages/smooth_app/lib/l10n/app_ms.arb | 4 ++++ packages/smooth_app/lib/l10n/app_mt.arb | 4 ++++ packages/smooth_app/lib/l10n/app_my.arb | 4 ++++ packages/smooth_app/lib/l10n/app_nb.arb | 4 ++++ packages/smooth_app/lib/l10n/app_ne.arb | 4 ++++ packages/smooth_app/lib/l10n/app_nl.arb | 4 ++++ packages/smooth_app/lib/l10n/app_nn.arb | 4 ++++ packages/smooth_app/lib/l10n/app_no.arb | 4 ++++ packages/smooth_app/lib/l10n/app_nr.arb | 4 ++++ packages/smooth_app/lib/l10n/app_oc.arb | 4 ++++ packages/smooth_app/lib/l10n/app_pa.arb | 4 ++++ packages/smooth_app/lib/l10n/app_pl.arb | 4 ++++ packages/smooth_app/lib/l10n/app_pt.arb | 4 ++++ packages/smooth_app/lib/l10n/app_qu.arb | 4 ++++ packages/smooth_app/lib/l10n/app_rm.arb | 4 ++++ packages/smooth_app/lib/l10n/app_ro.arb | 4 ++++ packages/smooth_app/lib/l10n/app_ru.arb | 4 ++++ packages/smooth_app/lib/l10n/app_sa.arb | 4 ++++ packages/smooth_app/lib/l10n/app_sc.arb | 4 ++++ packages/smooth_app/lib/l10n/app_sd.arb | 4 ++++ packages/smooth_app/lib/l10n/app_sg.arb | 4 ++++ packages/smooth_app/lib/l10n/app_si.arb | 4 ++++ packages/smooth_app/lib/l10n/app_sk.arb | 4 ++++ packages/smooth_app/lib/l10n/app_sl.arb | 4 ++++ packages/smooth_app/lib/l10n/app_sn.arb | 4 ++++ packages/smooth_app/lib/l10n/app_so.arb | 4 ++++ packages/smooth_app/lib/l10n/app_sq.arb | 4 ++++ packages/smooth_app/lib/l10n/app_sr.arb | 4 ++++ packages/smooth_app/lib/l10n/app_ss.arb | 4 ++++ packages/smooth_app/lib/l10n/app_st.arb | 4 ++++ packages/smooth_app/lib/l10n/app_sv.arb | 4 ++++ packages/smooth_app/lib/l10n/app_sw.arb | 4 ++++ packages/smooth_app/lib/l10n/app_ta.arb | 4 ++++ packages/smooth_app/lib/l10n/app_te.arb | 4 ++++ packages/smooth_app/lib/l10n/app_tg.arb | 4 ++++ packages/smooth_app/lib/l10n/app_th.arb | 4 ++++ packages/smooth_app/lib/l10n/app_ti.arb | 4 ++++ packages/smooth_app/lib/l10n/app_tl.arb | 4 ++++ packages/smooth_app/lib/l10n/app_tn.arb | 4 ++++ packages/smooth_app/lib/l10n/app_tr.arb | 4 ++++ packages/smooth_app/lib/l10n/app_ts.arb | 4 ++++ packages/smooth_app/lib/l10n/app_tt.arb | 4 ++++ packages/smooth_app/lib/l10n/app_tw.arb | 4 ++++ packages/smooth_app/lib/l10n/app_ty.arb | 4 ++++ packages/smooth_app/lib/l10n/app_ug.arb | 4 ++++ packages/smooth_app/lib/l10n/app_uk.arb | 4 ++++ packages/smooth_app/lib/l10n/app_ur.arb | 4 ++++ packages/smooth_app/lib/l10n/app_uz.arb | 4 ++++ packages/smooth_app/lib/l10n/app_ve.arb | 4 ++++ packages/smooth_app/lib/l10n/app_vi.arb | 4 ++++ packages/smooth_app/lib/l10n/app_wa.arb | 4 ++++ packages/smooth_app/lib/l10n/app_wo.arb | 4 ++++ packages/smooth_app/lib/l10n/app_xh.arb | 4 ++++ packages/smooth_app/lib/l10n/app_yo.arb | 4 ++++ packages/smooth_app/lib/l10n/app_zh.arb | 4 ++++ packages/smooth_app/lib/l10n/app_zu.arb | 4 ++++ 124 files changed, 497 insertions(+), 1 deletion(-) diff --git a/packages/smooth_app/lib/l10n/app_aa.arb b/packages/smooth_app/lib/l10n/app_aa.arb index 66ae703f81bc..77d65314344b 100644 --- a/packages/smooth_app/lib/l10n/app_aa.arb +++ b/packages/smooth_app/lib/l10n/app_aa.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } -} \ No newline at end of file +} diff --git a/packages/smooth_app/lib/l10n/app_af.arb b/packages/smooth_app/lib/l10n/app_af.arb index 716e80e5a9f8..80ef26c58f54 100644 --- a/packages/smooth_app/lib/l10n/app_af.arb +++ b/packages/smooth_app/lib/l10n/app_af.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ak.arb b/packages/smooth_app/lib/l10n/app_ak.arb index 33f1afe4ee82..0a7b91f46f5f 100644 --- a/packages/smooth_app/lib/l10n/app_ak.arb +++ b/packages/smooth_app/lib/l10n/app_ak.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_am.arb b/packages/smooth_app/lib/l10n/app_am.arb index 4db3fbb3244d..43b327400cb1 100644 --- a/packages/smooth_app/lib/l10n/app_am.arb +++ b/packages/smooth_app/lib/l10n/app_am.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ar.arb b/packages/smooth_app/lib/l10n/app_ar.arb index 8f076a5e11c0..42563118b35f 100644 --- a/packages/smooth_app/lib/l10n/app_ar.arb +++ b/packages/smooth_app/lib/l10n/app_ar.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_as.arb b/packages/smooth_app/lib/l10n/app_as.arb index 33f1afe4ee82..0a7b91f46f5f 100644 --- a/packages/smooth_app/lib/l10n/app_as.arb +++ b/packages/smooth_app/lib/l10n/app_as.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_az.arb b/packages/smooth_app/lib/l10n/app_az.arb index f4b555367711..28e01f8cb589 100644 --- a/packages/smooth_app/lib/l10n/app_az.arb +++ b/packages/smooth_app/lib/l10n/app_az.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_be.arb b/packages/smooth_app/lib/l10n/app_be.arb index cbf192963fc0..afe639a0f96c 100644 --- a/packages/smooth_app/lib/l10n/app_be.arb +++ b/packages/smooth_app/lib/l10n/app_be.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_bg.arb b/packages/smooth_app/lib/l10n/app_bg.arb index 622505c63166..d38147e5392e 100644 --- a/packages/smooth_app/lib/l10n/app_bg.arb +++ b/packages/smooth_app/lib/l10n/app_bg.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Избери от галерията", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_bm.arb b/packages/smooth_app/lib/l10n/app_bm.arb index 33f1afe4ee82..0a7b91f46f5f 100644 --- a/packages/smooth_app/lib/l10n/app_bm.arb +++ b/packages/smooth_app/lib/l10n/app_bm.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_bn.arb b/packages/smooth_app/lib/l10n/app_bn.arb index 19a7f6fc5856..3e0734f7d77b 100644 --- a/packages/smooth_app/lib/l10n/app_bn.arb +++ b/packages/smooth_app/lib/l10n/app_bn.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_bo.arb b/packages/smooth_app/lib/l10n/app_bo.arb index 33f1afe4ee82..0a7b91f46f5f 100644 --- a/packages/smooth_app/lib/l10n/app_bo.arb +++ b/packages/smooth_app/lib/l10n/app_bo.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_br.arb b/packages/smooth_app/lib/l10n/app_br.arb index 3e3a1983b868..8e7f76ebd0e9 100644 --- a/packages/smooth_app/lib/l10n/app_br.arb +++ b/packages/smooth_app/lib/l10n/app_br.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_bs.arb b/packages/smooth_app/lib/l10n/app_bs.arb index 84450950d3a1..ee79d5f15b00 100644 --- a/packages/smooth_app/lib/l10n/app_bs.arb +++ b/packages/smooth_app/lib/l10n/app_bs.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ca.arb b/packages/smooth_app/lib/l10n/app_ca.arb index 7cd2e6ef96cc..5c5d6274865f 100644 --- a/packages/smooth_app/lib/l10n/app_ca.arb +++ b/packages/smooth_app/lib/l10n/app_ca.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ce.arb b/packages/smooth_app/lib/l10n/app_ce.arb index 33f1afe4ee82..0a7b91f46f5f 100644 --- a/packages/smooth_app/lib/l10n/app_ce.arb +++ b/packages/smooth_app/lib/l10n/app_ce.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_co.arb b/packages/smooth_app/lib/l10n/app_co.arb index 33f1afe4ee82..0a7b91f46f5f 100644 --- a/packages/smooth_app/lib/l10n/app_co.arb +++ b/packages/smooth_app/lib/l10n/app_co.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_cs.arb b/packages/smooth_app/lib/l10n/app_cs.arb index 1ea460f0f614..51574951437e 100644 --- a/packages/smooth_app/lib/l10n/app_cs.arb +++ b/packages/smooth_app/lib/l10n/app_cs.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Vybrat z galerie", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_cv.arb b/packages/smooth_app/lib/l10n/app_cv.arb index 33f1afe4ee82..0a7b91f46f5f 100644 --- a/packages/smooth_app/lib/l10n/app_cv.arb +++ b/packages/smooth_app/lib/l10n/app_cv.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_cy.arb b/packages/smooth_app/lib/l10n/app_cy.arb index 923a9bf1bec7..f5e66bbd7d32 100644 --- a/packages/smooth_app/lib/l10n/app_cy.arb +++ b/packages/smooth_app/lib/l10n/app_cy.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_da.arb b/packages/smooth_app/lib/l10n/app_da.arb index 13f60e1729ce..3bbecb571010 100644 --- a/packages/smooth_app/lib/l10n/app_da.arb +++ b/packages/smooth_app/lib/l10n/app_da.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Vælg fra galleri", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_de.arb b/packages/smooth_app/lib/l10n/app_de.arb index 6b863b5c1c87..5becb9a72329 100644 --- a/packages/smooth_app/lib/l10n/app_de.arb +++ b/packages/smooth_app/lib/l10n/app_de.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Aus Galerie wählen", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_el.arb b/packages/smooth_app/lib/l10n/app_el.arb index fbadd6726c62..66fe5790a925 100644 --- a/packages/smooth_app/lib/l10n/app_el.arb +++ b/packages/smooth_app/lib/l10n/app_el.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Επιλέξτε από τη συλλογή", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_eo.arb b/packages/smooth_app/lib/l10n/app_eo.arb index 66d2ba08475a..f62a6edc36e1 100644 --- a/packages/smooth_app/lib/l10n/app_eo.arb +++ b/packages/smooth_app/lib/l10n/app_eo.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_es.arb b/packages/smooth_app/lib/l10n/app_es.arb index 0f31cc2846f5..ad40811dcdaa 100644 --- a/packages/smooth_app/lib/l10n/app_es.arb +++ b/packages/smooth_app/lib/l10n/app_es.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Seleccionar de la galería", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_et.arb b/packages/smooth_app/lib/l10n/app_et.arb index c7eeffafdd70..5d0ad4e208d2 100644 --- a/packages/smooth_app/lib/l10n/app_et.arb +++ b/packages/smooth_app/lib/l10n/app_et.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_eu.arb b/packages/smooth_app/lib/l10n/app_eu.arb index e1bea48cedb4..73dc6327abc1 100644 --- a/packages/smooth_app/lib/l10n/app_eu.arb +++ b/packages/smooth_app/lib/l10n/app_eu.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_fa.arb b/packages/smooth_app/lib/l10n/app_fa.arb index a1567ce1ccdf..3d12129105b8 100644 --- a/packages/smooth_app/lib/l10n/app_fa.arb +++ b/packages/smooth_app/lib/l10n/app_fa.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_fi.arb b/packages/smooth_app/lib/l10n/app_fi.arb index f803fa9204ce..cf9ab094b6b2 100644 --- a/packages/smooth_app/lib/l10n/app_fi.arb +++ b/packages/smooth_app/lib/l10n/app_fi.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_fil.arb b/packages/smooth_app/lib/l10n/app_fil.arb index 63ddf8b89280..4ffe5c7f3d81 100644 --- a/packages/smooth_app/lib/l10n/app_fil.arb +++ b/packages/smooth_app/lib/l10n/app_fil.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_fo.arb b/packages/smooth_app/lib/l10n/app_fo.arb index 33f1afe4ee82..0a7b91f46f5f 100644 --- a/packages/smooth_app/lib/l10n/app_fo.arb +++ b/packages/smooth_app/lib/l10n/app_fo.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_fr.arb b/packages/smooth_app/lib/l10n/app_fr.arb index b31ae529258e..05bba42bf03c 100644 --- a/packages/smooth_app/lib/l10n/app_fr.arb +++ b/packages/smooth_app/lib/l10n/app_fr.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choisir depuis la galerie", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ga.arb b/packages/smooth_app/lib/l10n/app_ga.arb index 11637a097d88..e349bcc96a0d 100644 --- a/packages/smooth_app/lib/l10n/app_ga.arb +++ b/packages/smooth_app/lib/l10n/app_ga.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_gd.arb b/packages/smooth_app/lib/l10n/app_gd.arb index 33f1afe4ee82..0a7b91f46f5f 100644 --- a/packages/smooth_app/lib/l10n/app_gd.arb +++ b/packages/smooth_app/lib/l10n/app_gd.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_gl.arb b/packages/smooth_app/lib/l10n/app_gl.arb index d681946f1cbb..f21161055163 100644 --- a/packages/smooth_app/lib/l10n/app_gl.arb +++ b/packages/smooth_app/lib/l10n/app_gl.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_gu.arb b/packages/smooth_app/lib/l10n/app_gu.arb index 3bb28392f5d8..87aff8206c16 100644 --- a/packages/smooth_app/lib/l10n/app_gu.arb +++ b/packages/smooth_app/lib/l10n/app_gu.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ha.arb b/packages/smooth_app/lib/l10n/app_ha.arb index 4ad1993b0713..1fea8bacd64f 100644 --- a/packages/smooth_app/lib/l10n/app_ha.arb +++ b/packages/smooth_app/lib/l10n/app_ha.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_he.arb b/packages/smooth_app/lib/l10n/app_he.arb index 5d91e0e62b6c..d4ec5ae9afd5 100644 --- a/packages/smooth_app/lib/l10n/app_he.arb +++ b/packages/smooth_app/lib/l10n/app_he.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "בחירה מהגלריה", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_hi.arb b/packages/smooth_app/lib/l10n/app_hi.arb index f858a824d212..22ee0459d931 100644 --- a/packages/smooth_app/lib/l10n/app_hi.arb +++ b/packages/smooth_app/lib/l10n/app_hi.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_hr.arb b/packages/smooth_app/lib/l10n/app_hr.arb index 64166fdc29cd..c09c6935f1e4 100644 --- a/packages/smooth_app/lib/l10n/app_hr.arb +++ b/packages/smooth_app/lib/l10n/app_hr.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ht.arb b/packages/smooth_app/lib/l10n/app_ht.arb index 33f1afe4ee82..0a7b91f46f5f 100644 --- a/packages/smooth_app/lib/l10n/app_ht.arb +++ b/packages/smooth_app/lib/l10n/app_ht.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_hu.arb b/packages/smooth_app/lib/l10n/app_hu.arb index 9f8566154213..bd58fe77ffe6 100644 --- a/packages/smooth_app/lib/l10n/app_hu.arb +++ b/packages/smooth_app/lib/l10n/app_hu.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_hy.arb b/packages/smooth_app/lib/l10n/app_hy.arb index 44d8232680f6..0ded01040662 100644 --- a/packages/smooth_app/lib/l10n/app_hy.arb +++ b/packages/smooth_app/lib/l10n/app_hy.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_id.arb b/packages/smooth_app/lib/l10n/app_id.arb index f9494955c246..7ac0051b83e9 100644 --- a/packages/smooth_app/lib/l10n/app_id.arb +++ b/packages/smooth_app/lib/l10n/app_id.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ii.arb b/packages/smooth_app/lib/l10n/app_ii.arb index 33f1afe4ee82..0a7b91f46f5f 100644 --- a/packages/smooth_app/lib/l10n/app_ii.arb +++ b/packages/smooth_app/lib/l10n/app_ii.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_is.arb b/packages/smooth_app/lib/l10n/app_is.arb index 3cb767729992..98d5ad478cde 100644 --- a/packages/smooth_app/lib/l10n/app_is.arb +++ b/packages/smooth_app/lib/l10n/app_is.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_it.arb b/packages/smooth_app/lib/l10n/app_it.arb index b2dd6e043a2b..3a8f677cbe64 100644 --- a/packages/smooth_app/lib/l10n/app_it.arb +++ b/packages/smooth_app/lib/l10n/app_it.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Scegli dalla galleria", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_iu.arb b/packages/smooth_app/lib/l10n/app_iu.arb index 33f1afe4ee82..0a7b91f46f5f 100644 --- a/packages/smooth_app/lib/l10n/app_iu.arb +++ b/packages/smooth_app/lib/l10n/app_iu.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ja.arb b/packages/smooth_app/lib/l10n/app_ja.arb index a5f6179fada2..0fa30a1997db 100644 --- a/packages/smooth_app/lib/l10n/app_ja.arb +++ b/packages/smooth_app/lib/l10n/app_ja.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "ギャラリーから選択する", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_jv.arb b/packages/smooth_app/lib/l10n/app_jv.arb index 9dc5ccf1910b..34fa6c35687d 100644 --- a/packages/smooth_app/lib/l10n/app_jv.arb +++ b/packages/smooth_app/lib/l10n/app_jv.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ka.arb b/packages/smooth_app/lib/l10n/app_ka.arb index ca333e929a2f..a600f3d7de15 100644 --- a/packages/smooth_app/lib/l10n/app_ka.arb +++ b/packages/smooth_app/lib/l10n/app_ka.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_kk.arb b/packages/smooth_app/lib/l10n/app_kk.arb index df2769504b8b..061a09ead8d5 100644 --- a/packages/smooth_app/lib/l10n/app_kk.arb +++ b/packages/smooth_app/lib/l10n/app_kk.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_km.arb b/packages/smooth_app/lib/l10n/app_km.arb index b75062cbc74e..de365e2bdfda 100644 --- a/packages/smooth_app/lib/l10n/app_km.arb +++ b/packages/smooth_app/lib/l10n/app_km.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_kn.arb b/packages/smooth_app/lib/l10n/app_kn.arb index 731d1fdd1255..08089e1e56c1 100644 --- a/packages/smooth_app/lib/l10n/app_kn.arb +++ b/packages/smooth_app/lib/l10n/app_kn.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ko.arb b/packages/smooth_app/lib/l10n/app_ko.arb index c2969e102164..5680e545dd37 100644 --- a/packages/smooth_app/lib/l10n/app_ko.arb +++ b/packages/smooth_app/lib/l10n/app_ko.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ku.arb b/packages/smooth_app/lib/l10n/app_ku.arb index f100ab5e5fa4..6293fb8de2a1 100644 --- a/packages/smooth_app/lib/l10n/app_ku.arb +++ b/packages/smooth_app/lib/l10n/app_ku.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_kw.arb b/packages/smooth_app/lib/l10n/app_kw.arb index 33f1afe4ee82..0a7b91f46f5f 100644 --- a/packages/smooth_app/lib/l10n/app_kw.arb +++ b/packages/smooth_app/lib/l10n/app_kw.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ky.arb b/packages/smooth_app/lib/l10n/app_ky.arb index 8b335d3cf45f..633bcd79a48f 100644 --- a/packages/smooth_app/lib/l10n/app_ky.arb +++ b/packages/smooth_app/lib/l10n/app_ky.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_la.arb b/packages/smooth_app/lib/l10n/app_la.arb index d0374c3e407c..10ce0d8cc7d9 100644 --- a/packages/smooth_app/lib/l10n/app_la.arb +++ b/packages/smooth_app/lib/l10n/app_la.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_lb.arb b/packages/smooth_app/lib/l10n/app_lb.arb index a7fe36f38112..ed27bf2036ae 100644 --- a/packages/smooth_app/lib/l10n/app_lb.arb +++ b/packages/smooth_app/lib/l10n/app_lb.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_lo.arb b/packages/smooth_app/lib/l10n/app_lo.arb index 33f1afe4ee82..0a7b91f46f5f 100644 --- a/packages/smooth_app/lib/l10n/app_lo.arb +++ b/packages/smooth_app/lib/l10n/app_lo.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_lt.arb b/packages/smooth_app/lib/l10n/app_lt.arb index d6513209d903..0aa4a69453e4 100644 --- a/packages/smooth_app/lib/l10n/app_lt.arb +++ b/packages/smooth_app/lib/l10n/app_lt.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_lv.arb b/packages/smooth_app/lib/l10n/app_lv.arb index 4cbe176c2bac..94cd94770c60 100644 --- a/packages/smooth_app/lib/l10n/app_lv.arb +++ b/packages/smooth_app/lib/l10n/app_lv.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_mg.arb b/packages/smooth_app/lib/l10n/app_mg.arb index fc5dee0b3af9..8771a34feea6 100644 --- a/packages/smooth_app/lib/l10n/app_mg.arb +++ b/packages/smooth_app/lib/l10n/app_mg.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_mi.arb b/packages/smooth_app/lib/l10n/app_mi.arb index 33f1afe4ee82..0a7b91f46f5f 100644 --- a/packages/smooth_app/lib/l10n/app_mi.arb +++ b/packages/smooth_app/lib/l10n/app_mi.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ml.arb b/packages/smooth_app/lib/l10n/app_ml.arb index b5906a4c5cc4..fce7721fd7c2 100644 --- a/packages/smooth_app/lib/l10n/app_ml.arb +++ b/packages/smooth_app/lib/l10n/app_ml.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_mn.arb b/packages/smooth_app/lib/l10n/app_mn.arb index 33f1afe4ee82..0a7b91f46f5f 100644 --- a/packages/smooth_app/lib/l10n/app_mn.arb +++ b/packages/smooth_app/lib/l10n/app_mn.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_mr.arb b/packages/smooth_app/lib/l10n/app_mr.arb index 3fcc81e5029b..c6c463988039 100644 --- a/packages/smooth_app/lib/l10n/app_mr.arb +++ b/packages/smooth_app/lib/l10n/app_mr.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ms.arb b/packages/smooth_app/lib/l10n/app_ms.arb index 45075f750692..335d1e825b59 100644 --- a/packages/smooth_app/lib/l10n/app_ms.arb +++ b/packages/smooth_app/lib/l10n/app_ms.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_mt.arb b/packages/smooth_app/lib/l10n/app_mt.arb index 33f1afe4ee82..0a7b91f46f5f 100644 --- a/packages/smooth_app/lib/l10n/app_mt.arb +++ b/packages/smooth_app/lib/l10n/app_mt.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_my.arb b/packages/smooth_app/lib/l10n/app_my.arb index 5a6abeb79840..45a17bcb0e5b 100644 --- a/packages/smooth_app/lib/l10n/app_my.arb +++ b/packages/smooth_app/lib/l10n/app_my.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_nb.arb b/packages/smooth_app/lib/l10n/app_nb.arb index 5fc57446bae1..07e5e15c48d2 100644 --- a/packages/smooth_app/lib/l10n/app_nb.arb +++ b/packages/smooth_app/lib/l10n/app_nb.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ne.arb b/packages/smooth_app/lib/l10n/app_ne.arb index 78e071292217..a3c52b58ffb7 100644 --- a/packages/smooth_app/lib/l10n/app_ne.arb +++ b/packages/smooth_app/lib/l10n/app_ne.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_nl.arb b/packages/smooth_app/lib/l10n/app_nl.arb index b010e29fb968..d4325418ebce 100644 --- a/packages/smooth_app/lib/l10n/app_nl.arb +++ b/packages/smooth_app/lib/l10n/app_nl.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Kies uit gallerij", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_nn.arb b/packages/smooth_app/lib/l10n/app_nn.arb index 2e8332feec94..850686ac9666 100644 --- a/packages/smooth_app/lib/l10n/app_nn.arb +++ b/packages/smooth_app/lib/l10n/app_nn.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_no.arb b/packages/smooth_app/lib/l10n/app_no.arb index 2e8332feec94..850686ac9666 100644 --- a/packages/smooth_app/lib/l10n/app_no.arb +++ b/packages/smooth_app/lib/l10n/app_no.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_nr.arb b/packages/smooth_app/lib/l10n/app_nr.arb index 33f1afe4ee82..0a7b91f46f5f 100644 --- a/packages/smooth_app/lib/l10n/app_nr.arb +++ b/packages/smooth_app/lib/l10n/app_nr.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_oc.arb b/packages/smooth_app/lib/l10n/app_oc.arb index 627903bee23a..44e4ca7af8e4 100644 --- a/packages/smooth_app/lib/l10n/app_oc.arb +++ b/packages/smooth_app/lib/l10n/app_oc.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_pa.arb b/packages/smooth_app/lib/l10n/app_pa.arb index 33f1afe4ee82..0a7b91f46f5f 100644 --- a/packages/smooth_app/lib/l10n/app_pa.arb +++ b/packages/smooth_app/lib/l10n/app_pa.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_pl.arb b/packages/smooth_app/lib/l10n/app_pl.arb index 33deee503659..e694922d22cd 100644 --- a/packages/smooth_app/lib/l10n/app_pl.arb +++ b/packages/smooth_app/lib/l10n/app_pl.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Wybierz z galerii", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_pt.arb b/packages/smooth_app/lib/l10n/app_pt.arb index b7f5060950eb..1e14e3a70910 100644 --- a/packages/smooth_app/lib/l10n/app_pt.arb +++ b/packages/smooth_app/lib/l10n/app_pt.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Escolher da galeria", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_qu.arb b/packages/smooth_app/lib/l10n/app_qu.arb index 33f1afe4ee82..0a7b91f46f5f 100644 --- a/packages/smooth_app/lib/l10n/app_qu.arb +++ b/packages/smooth_app/lib/l10n/app_qu.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_rm.arb b/packages/smooth_app/lib/l10n/app_rm.arb index 33f1afe4ee82..0a7b91f46f5f 100644 --- a/packages/smooth_app/lib/l10n/app_rm.arb +++ b/packages/smooth_app/lib/l10n/app_rm.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ro.arb b/packages/smooth_app/lib/l10n/app_ro.arb index 79897752df00..59cfc9cbc55f 100644 --- a/packages/smooth_app/lib/l10n/app_ro.arb +++ b/packages/smooth_app/lib/l10n/app_ro.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Alegeți din galerie", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ru.arb b/packages/smooth_app/lib/l10n/app_ru.arb index 14ca58933d9b..5d9e170fcb51 100644 --- a/packages/smooth_app/lib/l10n/app_ru.arb +++ b/packages/smooth_app/lib/l10n/app_ru.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_sa.arb b/packages/smooth_app/lib/l10n/app_sa.arb index 33f1afe4ee82..0a7b91f46f5f 100644 --- a/packages/smooth_app/lib/l10n/app_sa.arb +++ b/packages/smooth_app/lib/l10n/app_sa.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_sc.arb b/packages/smooth_app/lib/l10n/app_sc.arb index 33f1afe4ee82..0a7b91f46f5f 100644 --- a/packages/smooth_app/lib/l10n/app_sc.arb +++ b/packages/smooth_app/lib/l10n/app_sc.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_sd.arb b/packages/smooth_app/lib/l10n/app_sd.arb index 33f1afe4ee82..0a7b91f46f5f 100644 --- a/packages/smooth_app/lib/l10n/app_sd.arb +++ b/packages/smooth_app/lib/l10n/app_sd.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_sg.arb b/packages/smooth_app/lib/l10n/app_sg.arb index 33f1afe4ee82..0a7b91f46f5f 100644 --- a/packages/smooth_app/lib/l10n/app_sg.arb +++ b/packages/smooth_app/lib/l10n/app_sg.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_si.arb b/packages/smooth_app/lib/l10n/app_si.arb index a9ac70594919..062d5a0bc1d1 100644 --- a/packages/smooth_app/lib/l10n/app_si.arb +++ b/packages/smooth_app/lib/l10n/app_si.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_sk.arb b/packages/smooth_app/lib/l10n/app_sk.arb index b9e227f7c8f3..36878b56ed4c 100644 --- a/packages/smooth_app/lib/l10n/app_sk.arb +++ b/packages/smooth_app/lib/l10n/app_sk.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_sl.arb b/packages/smooth_app/lib/l10n/app_sl.arb index c5a63d65b68a..c6962be4ec85 100644 --- a/packages/smooth_app/lib/l10n/app_sl.arb +++ b/packages/smooth_app/lib/l10n/app_sl.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_sn.arb b/packages/smooth_app/lib/l10n/app_sn.arb index 33f1afe4ee82..0a7b91f46f5f 100644 --- a/packages/smooth_app/lib/l10n/app_sn.arb +++ b/packages/smooth_app/lib/l10n/app_sn.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_so.arb b/packages/smooth_app/lib/l10n/app_so.arb index 33f1afe4ee82..0a7b91f46f5f 100644 --- a/packages/smooth_app/lib/l10n/app_so.arb +++ b/packages/smooth_app/lib/l10n/app_so.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_sq.arb b/packages/smooth_app/lib/l10n/app_sq.arb index ef667eb79c84..f87fdce1e531 100644 --- a/packages/smooth_app/lib/l10n/app_sq.arb +++ b/packages/smooth_app/lib/l10n/app_sq.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_sr.arb b/packages/smooth_app/lib/l10n/app_sr.arb index fc502275e255..f64c0356cb91 100644 --- a/packages/smooth_app/lib/l10n/app_sr.arb +++ b/packages/smooth_app/lib/l10n/app_sr.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ss.arb b/packages/smooth_app/lib/l10n/app_ss.arb index 33f1afe4ee82..0a7b91f46f5f 100644 --- a/packages/smooth_app/lib/l10n/app_ss.arb +++ b/packages/smooth_app/lib/l10n/app_ss.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_st.arb b/packages/smooth_app/lib/l10n/app_st.arb index 33f1afe4ee82..0a7b91f46f5f 100644 --- a/packages/smooth_app/lib/l10n/app_st.arb +++ b/packages/smooth_app/lib/l10n/app_st.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_sv.arb b/packages/smooth_app/lib/l10n/app_sv.arb index 3676ed0f3398..169017217f4c 100644 --- a/packages/smooth_app/lib/l10n/app_sv.arb +++ b/packages/smooth_app/lib/l10n/app_sv.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_sw.arb b/packages/smooth_app/lib/l10n/app_sw.arb index f9e11b689fec..f5dee5d1b4ec 100644 --- a/packages/smooth_app/lib/l10n/app_sw.arb +++ b/packages/smooth_app/lib/l10n/app_sw.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ta.arb b/packages/smooth_app/lib/l10n/app_ta.arb index aeec8f52d510..0a65de2a7e0e 100644 --- a/packages/smooth_app/lib/l10n/app_ta.arb +++ b/packages/smooth_app/lib/l10n/app_ta.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_te.arb b/packages/smooth_app/lib/l10n/app_te.arb index e590a389127a..2cb0a1f71f7a 100644 --- a/packages/smooth_app/lib/l10n/app_te.arb +++ b/packages/smooth_app/lib/l10n/app_te.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_tg.arb b/packages/smooth_app/lib/l10n/app_tg.arb index 33f1afe4ee82..0a7b91f46f5f 100644 --- a/packages/smooth_app/lib/l10n/app_tg.arb +++ b/packages/smooth_app/lib/l10n/app_tg.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_th.arb b/packages/smooth_app/lib/l10n/app_th.arb index e4a8c8f15e70..d38519074ca0 100644 --- a/packages/smooth_app/lib/l10n/app_th.arb +++ b/packages/smooth_app/lib/l10n/app_th.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ti.arb b/packages/smooth_app/lib/l10n/app_ti.arb index 5a676e82e003..3fd92f4b5fc6 100644 --- a/packages/smooth_app/lib/l10n/app_ti.arb +++ b/packages/smooth_app/lib/l10n/app_ti.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_tl.arb b/packages/smooth_app/lib/l10n/app_tl.arb index 4691e5789d4d..5a51cbc949e9 100644 --- a/packages/smooth_app/lib/l10n/app_tl.arb +++ b/packages/smooth_app/lib/l10n/app_tl.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_tn.arb b/packages/smooth_app/lib/l10n/app_tn.arb index aa6f3ce2868b..4ab110423f81 100644 --- a/packages/smooth_app/lib/l10n/app_tn.arb +++ b/packages/smooth_app/lib/l10n/app_tn.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_tr.arb b/packages/smooth_app/lib/l10n/app_tr.arb index cf3dd304b029..0dbfe8cae76d 100644 --- a/packages/smooth_app/lib/l10n/app_tr.arb +++ b/packages/smooth_app/lib/l10n/app_tr.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ts.arb b/packages/smooth_app/lib/l10n/app_ts.arb index aa6f3ce2868b..4ab110423f81 100644 --- a/packages/smooth_app/lib/l10n/app_ts.arb +++ b/packages/smooth_app/lib/l10n/app_ts.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_tt.arb b/packages/smooth_app/lib/l10n/app_tt.arb index 3a43b73e0b6e..32ae2e3e0848 100644 --- a/packages/smooth_app/lib/l10n/app_tt.arb +++ b/packages/smooth_app/lib/l10n/app_tt.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_tw.arb b/packages/smooth_app/lib/l10n/app_tw.arb index 33f1afe4ee82..0a7b91f46f5f 100644 --- a/packages/smooth_app/lib/l10n/app_tw.arb +++ b/packages/smooth_app/lib/l10n/app_tw.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ty.arb b/packages/smooth_app/lib/l10n/app_ty.arb index 33f1afe4ee82..0a7b91f46f5f 100644 --- a/packages/smooth_app/lib/l10n/app_ty.arb +++ b/packages/smooth_app/lib/l10n/app_ty.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ug.arb b/packages/smooth_app/lib/l10n/app_ug.arb index 5c95cbdecf31..11bf785f9812 100644 --- a/packages/smooth_app/lib/l10n/app_ug.arb +++ b/packages/smooth_app/lib/l10n/app_ug.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_uk.arb b/packages/smooth_app/lib/l10n/app_uk.arb index d97aa44ea2ec..35f69ff57bee 100644 --- a/packages/smooth_app/lib/l10n/app_uk.arb +++ b/packages/smooth_app/lib/l10n/app_uk.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ur.arb b/packages/smooth_app/lib/l10n/app_ur.arb index 16b260e07ca6..93fdb35c864e 100644 --- a/packages/smooth_app/lib/l10n/app_ur.arb +++ b/packages/smooth_app/lib/l10n/app_ur.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_uz.arb b/packages/smooth_app/lib/l10n/app_uz.arb index e82850b980b3..2031630d5464 100644 --- a/packages/smooth_app/lib/l10n/app_uz.arb +++ b/packages/smooth_app/lib/l10n/app_uz.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ve.arb b/packages/smooth_app/lib/l10n/app_ve.arb index aa6f3ce2868b..4ab110423f81 100644 --- a/packages/smooth_app/lib/l10n/app_ve.arb +++ b/packages/smooth_app/lib/l10n/app_ve.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_vi.arb b/packages/smooth_app/lib/l10n/app_vi.arb index f5861edab0c7..f156993c13aa 100644 --- a/packages/smooth_app/lib/l10n/app_vi.arb +++ b/packages/smooth_app/lib/l10n/app_vi.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Chọn từ thư viện ảnh", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_wa.arb b/packages/smooth_app/lib/l10n/app_wa.arb index 33f1afe4ee82..0a7b91f46f5f 100644 --- a/packages/smooth_app/lib/l10n/app_wa.arb +++ b/packages/smooth_app/lib/l10n/app_wa.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_wo.arb b/packages/smooth_app/lib/l10n/app_wo.arb index aa6f3ce2868b..4ab110423f81 100644 --- a/packages/smooth_app/lib/l10n/app_wo.arb +++ b/packages/smooth_app/lib/l10n/app_wo.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_xh.arb b/packages/smooth_app/lib/l10n/app_xh.arb index 33f1afe4ee82..0a7b91f46f5f 100644 --- a/packages/smooth_app/lib/l10n/app_xh.arb +++ b/packages/smooth_app/lib/l10n/app_xh.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_yo.arb b/packages/smooth_app/lib/l10n/app_yo.arb index 1b9859f705cc..b8d34d5f505a 100644 --- a/packages/smooth_app/lib/l10n/app_yo.arb +++ b/packages/smooth_app/lib/l10n/app_yo.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_zh.arb b/packages/smooth_app/lib/l10n/app_zh.arb index f4d8393a3bfb..7c783272097d 100644 --- a/packages/smooth_app/lib/l10n/app_zh.arb +++ b/packages/smooth_app/lib/l10n/app_zh.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_zu.arb b/packages/smooth_app/lib/l10n/app_zu.arb index ab46fb6331ef..d9d9240aa581 100644 --- a/packages/smooth_app/lib/l10n/app_zu.arb +++ b/packages/smooth_app/lib/l10n/app_zu.arb @@ -1511,5 +1511,9 @@ "choose_from_gallery": "Choose from gallery", "@choose from gallery": { "description": "Button label for choosing a photo from gallery" + }, + "no_internet_connection": "No internet connection", + "@no_internet_connection": { + "description": "Message when there is no internet connection" } } \ No newline at end of file From b16d6d67cbee1b27396e9d7edce99b186f78a5ae Mon Sep 17 00:00:00 2001 From: monsieurtanuki Date: Sun, 10 Jul 2022 20:40:31 +0200 Subject: [PATCH 07/51] feat: #2563 - edit product page - added top barcode display and leading/trailing icons (#2567) Impacted files: * `edit_product_page.dart`: added barcode display; added leading icon and trailing arrow to items * `pubspec.lock`: wtf * `pubspec.yaml`: added package `barcode_widget` * `simple_input_page_helpers.dart`: added leading icon --- .../lib/pages/product/edit_product_page.dart | 51 ++++++++++++------- .../product/simple_input_page_helpers.dart | 18 +++++++ packages/smooth_app/pubspec.lock | 21 ++++++++ packages/smooth_app/pubspec.yaml | 1 + 4 files changed, 73 insertions(+), 18 deletions(-) diff --git a/packages/smooth_app/lib/pages/product/edit_product_page.dart b/packages/smooth_app/lib/pages/product/edit_product_page.dart index 66912bd64ebc..cb6723e2e5c9 100644 --- a/packages/smooth_app/lib/pages/product/edit_product_page.dart +++ b/packages/smooth_app/lib/pages/product/edit_product_page.dart @@ -1,4 +1,5 @@ import 'package:auto_size_text/auto_size_text.dart'; +import 'package:barcode_widget/barcode_widget.dart'; import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:openfoodfacts/openfoodfacts.dart'; @@ -6,6 +7,7 @@ import 'package:provider/provider.dart'; import 'package:smooth_app/data_models/product_image_data.dart'; import 'package:smooth_app/data_models/up_to_date_product_provider.dart'; import 'package:smooth_app/database/local_database.dart'; +import 'package:smooth_app/generic_lib/design_constants.dart'; import 'package:smooth_app/helpers/product_cards_helper.dart'; import 'package:smooth_app/pages/product/add_basic_details_page.dart'; import 'package:smooth_app/pages/product/common/product_refresher.dart'; @@ -17,6 +19,7 @@ import 'package:smooth_app/pages/product/ordered_nutrients_cache.dart'; import 'package:smooth_app/pages/product/product_image_gallery_view.dart'; import 'package:smooth_app/pages/product/simple_input_page.dart'; import 'package:smooth_app/pages/product/simple_input_page_helpers.dart'; +import 'package:smooth_app/themes/constant_icons.dart'; import 'package:smooth_app/widgets/smooth_scaffold.dart'; /// Page where we can indirectly edit all data about a product. @@ -41,6 +44,7 @@ class _EditProductPageState extends State { @override Widget build(BuildContext context) { final AppLocalizations appLocalizations = AppLocalizations.of(context); + final Size screenSize = MediaQuery.of(context).size; final Scaffold scaffold = SmoothScaffold( appBar: AppBar( @@ -51,13 +55,22 @@ class _EditProductPageState extends State { ), body: ListView( children: [ - ListTile( - title: Text( - appLocalizations.edit_product_form_item_barcode, + if (_product.barcode != null) + BarcodeWidget( + padding: EdgeInsets.symmetric( + horizontal: screenSize.width / 4, + vertical: SMALL_SPACE, + ), + barcode: Barcode.ean13(), + data: _product.barcode!, + errorBuilder: (final BuildContext context, String? _) => + ListTile( + title: Text( + appLocalizations.edit_product_form_item_barcode, + ), + subtitle: Text(_product.barcode!), + ), ), - subtitle: - _product.barcode == null ? null : Text(_product.barcode!), - ), _ListTitleItem( title: appLocalizations.edit_product_form_item_details_title, subtitle: @@ -76,6 +89,7 @@ class _EditProductPageState extends State { }, ), _ListTitleItem( + leading: const Icon(Icons.add_a_photo_outlined), title: appLocalizations.edit_product_form_item_photos_title, subtitle: appLocalizations.edit_product_form_item_photos_subtitle, onTap: () async { @@ -131,6 +145,7 @@ class _EditProductPageState extends State { }, ), _ListTitleItem( + leading: const Icon(Icons.recycling), title: appLocalizations.edit_product_form_item_packaging_title, onTap: () async { if (!await ProductRefresher().checkIfLoggedIn(context)) { @@ -199,6 +214,7 @@ class _EditProductPageState extends State { Widget _getSimpleListTileItem(final AbstractSimpleInputPageHelper helper) { final AppLocalizations appLocalizations = AppLocalizations.of(context); return _ListTitleItem( + leading: helper.getIcon(), title: helper.getTitle(appLocalizations), subtitle: helper.getSubtitle(appLocalizations), onTap: () async { @@ -224,24 +240,23 @@ class _ListTitleItem extends StatelessWidget { required final this.title, this.subtitle, this.onTap, + this.leading, Key? key, }) : super(key: key); final String title; final String? subtitle; final VoidCallback? onTap; + final Widget? leading; @override - Widget build(BuildContext context) { - final AppLocalizations appLocalizations = AppLocalizations.of(context); - return ListTile( - onTap: onTap, - title: Text(title), - subtitle: subtitle == null ? null : Text(subtitle!), - leading: ElevatedButton( - onPressed: onTap, - child: Text(appLocalizations.edit_product_form_save), - ), - ); - } + Widget build(BuildContext context) => Card( + child: ListTile( + onTap: onTap, + title: Text(title), + subtitle: subtitle == null ? null : Text(subtitle!), + leading: leading ?? const Icon(Icons.edit), + trailing: Icon(ConstantIcons.instance.getForwardIcon()), + ), + ); } diff --git a/packages/smooth_app/lib/pages/product/simple_input_page_helpers.dart b/packages/smooth_app/lib/pages/product/simple_input_page_helpers.dart index 151c500481d1..677d56c64f2c 100644 --- a/packages/smooth_app/lib/pages/product/simple_input_page_helpers.dart +++ b/packages/smooth_app/lib/pages/product/simple_input_page_helpers.dart @@ -80,6 +80,9 @@ abstract class AbstractSimpleInputPageHelper { /// Returns the tag type for autocomplete suggestions. TagType? getTagType(); + /// Returns the icon data for the list tile. + Widget? getIcon() => null; + /// Returns null is no change was made, or a Product to be saved on the BE. Product? getChangedProduct() { if (!_changed) { @@ -122,6 +125,9 @@ class SimpleInputPageStoreHelper extends AbstractSimpleInputPageHelper { @override TagType? getTagType() => null; + + @override + Widget? getIcon() => const Icon(Icons.shopping_cart); } /// Implementation for "Emb Code" of an [AbstractSimpleInputPageHelper]. @@ -147,6 +153,9 @@ class SimpleInputPageEmbCodeHelper extends AbstractSimpleInputPageHelper { @override TagType? getTagType() => TagType.EMB_CODES; + + @override + Widget? getIcon() => const Icon(Icons.factory); } /// Abstraction, for "in language" field, of an [AbstractSimpleInputPageHelper]. @@ -235,6 +244,9 @@ class SimpleInputPageLabelHelper @override TagType? getTagType() => TagType.LABELS; + + @override + Widget? getIcon() => const Icon(Icons.local_offer); } /// Implementation for "Categories" of an [AbstractSimpleInputPageHelper]. @@ -261,6 +273,9 @@ class SimpleInputPageCategoryHelper @override TagType? getTagType() => TagType.CATEGORIES; + + @override + Widget? getIcon() => const Icon(Icons.restaurant); } /// Implementation for "Countries" of an [AbstractSimpleInputPageHelper]. @@ -291,4 +306,7 @@ class SimpleInputPageCountryHelper @override TagType? getTagType() => TagType.COUNTRIES; + + @override + Widget? getIcon() => const Icon(Icons.public); } diff --git a/packages/smooth_app/pubspec.lock b/packages/smooth_app/pubspec.lock index 1c97de3251de..7235a520daec 100644 --- a/packages/smooth_app/pubspec.lock +++ b/packages/smooth_app/pubspec.lock @@ -92,6 +92,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "3.0.0" + barcode: + dependency: transitive + description: + name: barcode + url: "https://pub.dartlang.org" + source: hosted + version: "2.2.1" + barcode_widget: + dependency: "direct main" + description: + name: barcode_widget + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.2" boolean_selector: dependency: transitive description: @@ -991,6 +1005,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.1.1" + qr: + dependency: transitive + description: + name: qr + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.1" quiver: dependency: transitive description: diff --git a/packages/smooth_app/pubspec.yaml b/packages/smooth_app/pubspec.yaml index aaad000e9dfb..0882630c751e 100644 --- a/packages/smooth_app/pubspec.yaml +++ b/packages/smooth_app/pubspec.yaml @@ -13,6 +13,7 @@ dependencies: flutter_localizations: sdk: flutter + barcode_widget: ^2.0.2 carousel_slider: ^4.1.1 cupertino_icons: ^1.0.5 device_preview: ^1.1.0 From 88e82f216579ca020fd20229f2b90ace2023378e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 11 Jul 2022 09:14:35 +0200 Subject: [PATCH 08/51] chore: New Crowdin translations to review and merge (#2570) * chore: New Crowdin translations * Apply suggestions from code review Co-authored-by: Crowdin Bot Co-authored-by: Pierre Slamich --- packages/smooth_app/lib/l10n/app_aa.arb | 2 +- packages/smooth_app/lib/l10n/app_bg.arb | 2 +- packages/smooth_app/lib/l10n/app_da.arb | 2 +- packages/smooth_app/lib/l10n/app_de.arb | 2 +- packages/smooth_app/lib/l10n/app_es.arb | 2 +- packages/smooth_app/lib/l10n/app_he.arb | 2 +- packages/smooth_app/lib/l10n/app_hu.arb | 6 +++--- packages/smooth_app/lib/l10n/app_it.arb | 2 +- packages/smooth_app/lib/l10n/app_ja.arb | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/packages/smooth_app/lib/l10n/app_aa.arb b/packages/smooth_app/lib/l10n/app_aa.arb index 77d65314344b..424cfdf9d913 100644 --- a/packages/smooth_app/lib/l10n/app_aa.arb +++ b/packages/smooth_app/lib/l10n/app_aa.arb @@ -1516,4 +1516,4 @@ "@no_internet_connection": { "description": "Message when there is no internet connection" } -} +} \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_bg.arb b/packages/smooth_app/lib/l10n/app_bg.arb index d38147e5392e..ceb059fd3a25 100644 --- a/packages/smooth_app/lib/l10n/app_bg.arb +++ b/packages/smooth_app/lib/l10n/app_bg.arb @@ -1512,7 +1512,7 @@ "@choose from gallery": { "description": "Button label for choosing a photo from gallery" }, - "no_internet_connection": "No internet connection", + "no_internet_connection": "Няма интернет връзка", "@no_internet_connection": { "description": "Message when there is no internet connection" } diff --git a/packages/smooth_app/lib/l10n/app_da.arb b/packages/smooth_app/lib/l10n/app_da.arb index 3bbecb571010..680ff52e3cce 100644 --- a/packages/smooth_app/lib/l10n/app_da.arb +++ b/packages/smooth_app/lib/l10n/app_da.arb @@ -1512,7 +1512,7 @@ "@choose from gallery": { "description": "Button label for choosing a photo from gallery" }, - "no_internet_connection": "No internet connection", + "no_internet_connection": "Ingen internetforbindelse", "@no_internet_connection": { "description": "Message when there is no internet connection" } diff --git a/packages/smooth_app/lib/l10n/app_de.arb b/packages/smooth_app/lib/l10n/app_de.arb index 5becb9a72329..3e0eb7f7742e 100644 --- a/packages/smooth_app/lib/l10n/app_de.arb +++ b/packages/smooth_app/lib/l10n/app_de.arb @@ -1512,7 +1512,7 @@ "@choose from gallery": { "description": "Button label for choosing a photo from gallery" }, - "no_internet_connection": "No internet connection", + "no_internet_connection": "Keine Internetverbindung", "@no_internet_connection": { "description": "Message when there is no internet connection" } diff --git a/packages/smooth_app/lib/l10n/app_es.arb b/packages/smooth_app/lib/l10n/app_es.arb index ad40811dcdaa..64132a970120 100644 --- a/packages/smooth_app/lib/l10n/app_es.arb +++ b/packages/smooth_app/lib/l10n/app_es.arb @@ -1512,7 +1512,7 @@ "@choose from gallery": { "description": "Button label for choosing a photo from gallery" }, - "no_internet_connection": "No internet connection", + "no_internet_connection": "No hay conexión a internet", "@no_internet_connection": { "description": "Message when there is no internet connection" } diff --git a/packages/smooth_app/lib/l10n/app_he.arb b/packages/smooth_app/lib/l10n/app_he.arb index d4ec5ae9afd5..8711b8405c8f 100644 --- a/packages/smooth_app/lib/l10n/app_he.arb +++ b/packages/smooth_app/lib/l10n/app_he.arb @@ -1512,7 +1512,7 @@ "@choose from gallery": { "description": "Button label for choosing a photo from gallery" }, - "no_internet_connection": "No internet connection", + "no_internet_connection": "אין חיבור לאינטרנט", "@no_internet_connection": { "description": "Message when there is no internet connection" } diff --git a/packages/smooth_app/lib/l10n/app_hu.arb b/packages/smooth_app/lib/l10n/app_hu.arb index bd58fe77ffe6..cb74d54dbcd3 100644 --- a/packages/smooth_app/lib/l10n/app_hu.arb +++ b/packages/smooth_app/lib/l10n/app_hu.arb @@ -18,7 +18,7 @@ "skip": "Skip", "cancel": "Mégse", "@cancel": {}, - "ignore": "Ignore", + "ignore": "Figyelmen kívül hagyni", "@ignore": { "description": "'Ignore' button. Typical use case in combination with 'OK' and 'Cancel' buttons." }, @@ -40,7 +40,7 @@ "@error_occurred": {}, "featureInProgress": "Még dolgozunk ezen a funkción, maradjon velünk", "@featureInProgress": {}, - "label_web": "View on the web", + "label_web": "Megtekintés az interneten", "@label_web": {}, "learnMore": "További információk", "@learnMore": {}, @@ -109,7 +109,7 @@ "@whatIsOff": { "description": "Description of Open Food Facts organization." }, - "offUtility": "Choose food that is good for you and the planet.", + "offUtility": "Válassz olyan ételt, amely jó neked és a bolygónak.", "@offUtility": { "description": "Description of what a user can use Open Food Facts for." }, diff --git a/packages/smooth_app/lib/l10n/app_it.arb b/packages/smooth_app/lib/l10n/app_it.arb index 3a8f677cbe64..f11dfa60ecb0 100644 --- a/packages/smooth_app/lib/l10n/app_it.arb +++ b/packages/smooth_app/lib/l10n/app_it.arb @@ -1512,7 +1512,7 @@ "@choose from gallery": { "description": "Button label for choosing a photo from gallery" }, - "no_internet_connection": "No internet connection", + "no_internet_connection": "Nessuna connessione internet", "@no_internet_connection": { "description": "Message when there is no internet connection" } diff --git a/packages/smooth_app/lib/l10n/app_ja.arb b/packages/smooth_app/lib/l10n/app_ja.arb index 0fa30a1997db..9f87214fd75a 100644 --- a/packages/smooth_app/lib/l10n/app_ja.arb +++ b/packages/smooth_app/lib/l10n/app_ja.arb @@ -1512,7 +1512,7 @@ "@choose from gallery": { "description": "Button label for choosing a photo from gallery" }, - "no_internet_connection": "No internet connection", + "no_internet_connection": "インターネットに接続されていません", "@no_internet_connection": { "description": "Message when there is no internet connection" } From 2b60cb5fd05639b100f844e7424cba6bb7113140 Mon Sep 17 00:00:00 2001 From: monsieurtanuki Date: Mon, 11 Jul 2022 09:27:19 +0200 Subject: [PATCH 09/51] feat: #2501 - added "origins" in edit product page (#2571) * feat: #2501 - added "origins" in edit product page Impacted files: * `app_en.arb`: added 2 labels for "origins" * `app_fr.arb`: added 2 labels for "origins" * `edit_product_page.dart`: added an item for "origins" * `product_query.dart`: added field "origins" to the list of the product fields we retrieve * `pubspec.lock`: wtf * `pubspec.yaml`: upgraded to `openfoodfacts: ^1.22.0`, which has new product field "origins" * `simple_input_page_helpers.dart`: implementation for "origins" of a simple input page item * feat: #2501 - icon for "origins" Impacted files: * `simple_input_page_helpers.dart` * Update packages/smooth_app/lib/l10n/app_en.arb Co-authored-by: Pierre Slamich Co-authored-by: Pierre Slamich --- packages/smooth_app/lib/l10n/app_en.arb | 8 +++++++ packages/smooth_app/lib/l10n/app_fr.arb | 8 +++++++ .../lib/pages/product/edit_product_page.dart | 1 + .../product/simple_input_page_helpers.dart | 24 +++++++++++++++++++ .../smooth_app/lib/query/product_query.dart | 1 + packages/smooth_app/pubspec.lock | 2 +- packages/smooth_app/pubspec.yaml | 2 +- 7 files changed, 44 insertions(+), 2 deletions(-) diff --git a/packages/smooth_app/lib/l10n/app_en.arb b/packages/smooth_app/lib/l10n/app_en.arb index 0a7b91f46f5f..8491132b8ff8 100644 --- a/packages/smooth_app/lib/l10n/app_en.arb +++ b/packages/smooth_app/lib/l10n/app_en.arb @@ -1013,6 +1013,14 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain, Beef from Argentina, The soy does not come from the European union", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" diff --git a/packages/smooth_app/lib/l10n/app_fr.arb b/packages/smooth_app/lib/l10n/app_fr.arb index 05bba42bf03c..019290a2a500 100644 --- a/packages/smooth_app/lib/l10n/app_fr.arb +++ b/packages/smooth_app/lib/l10n/app_fr.arb @@ -1013,6 +1013,14 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origines", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Espagne", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, "edit_product_form_item_countries_title": "Pays", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" diff --git a/packages/smooth_app/lib/pages/product/edit_product_page.dart b/packages/smooth_app/lib/pages/product/edit_product_page.dart index cb6723e2e5c9..46b6a9ae0d8f 100644 --- a/packages/smooth_app/lib/pages/product/edit_product_page.dart +++ b/packages/smooth_app/lib/pages/product/edit_product_page.dart @@ -163,6 +163,7 @@ class _EditProductPageState extends State { }, ), _getSimpleListTileItem(SimpleInputPageStoreHelper()), + _getSimpleListTileItem(SimpleInputPageOriginHelper()), _getSimpleListTileItem(SimpleInputPageEmbCodeHelper()), _getSimpleListTileItem(SimpleInputPageCountryHelper()), _getSimpleListTileItem(SimpleInputPageCategoryHelper()), diff --git a/packages/smooth_app/lib/pages/product/simple_input_page_helpers.dart b/packages/smooth_app/lib/pages/product/simple_input_page_helpers.dart index 677d56c64f2c..68dc4c5523a5 100644 --- a/packages/smooth_app/lib/pages/product/simple_input_page_helpers.dart +++ b/packages/smooth_app/lib/pages/product/simple_input_page_helpers.dart @@ -130,6 +130,30 @@ class SimpleInputPageStoreHelper extends AbstractSimpleInputPageHelper { Widget? getIcon() => const Icon(Icons.shopping_cart); } +/// Implementation for "Origins" of an [AbstractSimpleInputPageHelper]. +class SimpleInputPageOriginHelper extends AbstractSimpleInputPageHelper { + @override + List initTerms() => splitString(product.origins); + + @override + void changeProduct(final Product changedProduct) => + changedProduct.origins = terms.join(_separator); + + @override + String getTitle(final AppLocalizations appLocalizations) => + appLocalizations.edit_product_form_item_origins_title; + + @override + String getAddHint(final AppLocalizations appLocalizations) => + appLocalizations.edit_product_form_item_origins_hint; + + @override + TagType? getTagType() => null; + + @override + Widget? getIcon() => const Icon(Icons.travel_explore); +} + /// Implementation for "Emb Code" of an [AbstractSimpleInputPageHelper]. class SimpleInputPageEmbCodeHelper extends AbstractSimpleInputPageHelper { @override diff --git a/packages/smooth_app/lib/query/product_query.dart b/packages/smooth_app/lib/query/product_query.dart index 494a5af39971..a8fdbe3b2689 100644 --- a/packages/smooth_app/lib/query/product_query.dart +++ b/packages/smooth_app/lib/query/product_query.dart @@ -145,5 +145,6 @@ abstract class ProductQuery { ProductField.COUNTRIES_TAGS, ProductField.COUNTRIES_TAGS_IN_LANGUAGES, ProductField.EMB_CODES, + ProductField.ORIGINS, ]; } diff --git a/packages/smooth_app/pubspec.lock b/packages/smooth_app/pubspec.lock index 7235a520daec..3671dfc705bc 100644 --- a/packages/smooth_app/pubspec.lock +++ b/packages/smooth_app/pubspec.lock @@ -764,7 +764,7 @@ packages: name: openfoodfacts url: "https://pub.dartlang.org" source: hosted - version: "1.21.0" + version: "1.22.0" openfoodfacts_flutter_lints: dependency: "direct dev" description: diff --git a/packages/smooth_app/pubspec.yaml b/packages/smooth_app/pubspec.yaml index 0882630c751e..1e64afbf124f 100644 --- a/packages/smooth_app/pubspec.yaml +++ b/packages/smooth_app/pubspec.yaml @@ -34,7 +34,7 @@ dependencies: url: 'https://github.com/M123-dev/matomo-tracker.git' ref: 'fix-event-sending' modal_bottom_sheet: ^2.1.0 - openfoodfacts: ^1.21.0 + openfoodfacts: ^1.22.0 # openfoodfacts: # path: ../../../openfoodfacts-dart package_info_plus: ^1.4.2 From 8446b3082a391b29843a72a2c742152835038952 Mon Sep 17 00:00:00 2001 From: monsieurtanuki Date: Mon, 11 Jul 2022 11:45:35 +0200 Subject: [PATCH 10/51] fix: #2575 - fixed brightness check for app icon (#2579) Impacted file: * `user_preferences_faq.dart`: fixed brightness check for app icon --- .../lib/pages/preferences/user_preferences_faq.dart | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/smooth_app/lib/pages/preferences/user_preferences_faq.dart b/packages/smooth_app/lib/pages/preferences/user_preferences_faq.dart index 4e940c099451..ec0ee9e47e32 100644 --- a/packages/smooth_app/lib/pages/preferences/user_preferences_faq.dart +++ b/packages/smooth_app/lib/pages/preferences/user_preferences_faq.dart @@ -94,8 +94,7 @@ class UserPreferencesFaq extends AbstractUserPreferences { showDialog( context: context, builder: (BuildContext context) { - final MediaQueryData data = MediaQuery.of(context); - final String logo = data.platformBrightness == Brightness.light + final String logo = Theme.of(context).brightness == Brightness.light ? _iconLightAssetPath : _iconDarkAssetPath; @@ -106,7 +105,7 @@ class UserPreferencesFaq extends AbstractUserPreferences { children: [ SvgPicture.asset( logo, - width: data.size.width * 0.1, + width: MediaQuery.of(context).size.width * 0.1, ), const SizedBox(width: SMALL_SPACE), Expanded( From 46748bb33e1512dbb9a7e52b7eff3edda49e3d47 Mon Sep 17 00:00:00 2001 From: Edouard Marquez Date: Mon, 11 Jul 2022 16:10:19 +0200 Subject: [PATCH 11/51] Contribute: add a "Share app" entry (#2582) --- packages/smooth_app/lib/l10n/app_en.arb | 6 ++++++ .../pages/preferences/user_preferences_contribute.dart | 8 ++++++++ 2 files changed, 14 insertions(+) diff --git a/packages/smooth_app/lib/l10n/app_en.arb b/packages/smooth_app/lib/l10n/app_en.arb index 8491132b8ff8..832faf68aa02 100644 --- a/packages/smooth_app/lib/l10n/app_en.arb +++ b/packages/smooth_app/lib/l10n/app_en.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." diff --git a/packages/smooth_app/lib/pages/preferences/user_preferences_contribute.dart b/packages/smooth_app/lib/pages/preferences/user_preferences_contribute.dart index df6fc45c3aaf..f221f4f36c74 100644 --- a/packages/smooth_app/lib/pages/preferences/user_preferences_contribute.dart +++ b/packages/smooth_app/lib/pages/preferences/user_preferences_contribute.dart @@ -4,6 +4,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:http/http.dart' as http; import 'package:provider/provider.dart'; +import 'package:share_plus/share_plus.dart'; import 'package:smooth_app/data_models/github_contributors_model.dart'; import 'package:smooth_app/data_models/user_preferences.dart'; import 'package:smooth_app/generic_lib/dialogs/smooth_alert_dialog.dart'; @@ -64,6 +65,11 @@ class UserPreferencesContribute extends AbstractUserPreferences { () => _translate(), Icons.translate, ), + _getListTile( + appLocalizations.contribute_share_header, + () => _share(appLocalizations.contribute_share_content), + Icons.adaptive.share, + ), _getListTile( appLocalizations.contribute_donate_header, () => _donate(), @@ -187,6 +193,8 @@ class UserPreferencesContribute extends AbstractUserPreferences { }, ); + Future _share(String content) async => Share.share(content); + Future _donate() async => LaunchUrlHelper.launchURL( AppLocalizations.of(context).donate_url, false, From bbcfd87f2620cf6d52ee0437bcdc2844173d4271 Mon Sep 17 00:00:00 2001 From: monsieurtanuki Date: Mon, 11 Jul 2022 18:05:21 +0200 Subject: [PATCH 12/51] feat: #2574 - added explanations for origins, categories and packaging (#2580) * feat: #2574 - added explanations for origins, categories and packaging Impacted files: * `app_en.arb`: populated explanation labels for origins, categories and packaging * `app_fr.arb`: populated explanation labels for origins, categories and packaging * `ocr_packaging_helper.dart`: unrelated refactoring "en passant" * `simple_input_page.dart`: replaced subtitle by explanations * `simple_input_page_helpers.dart`: populated explanations for origins and categories * feat: #2574 - improved UI/UX New file: * `explanation_widget.dart`: Widget that displays explanations as a list, with expand/collapse mode. Impacted files: * `edit_ingredients_page.dart`: now using new `ExplanationWidget` * `simple_input_page.dart`: now using new `ExplanationWidget` --- packages/smooth_app/lib/l10n/app_en.arb | 24 ++++++++- packages/smooth_app/lib/l10n/app_fr.arb | 22 +++++++- .../pages/product/edit_ingredients_page.dart | 4 +- .../lib/pages/product/explanation_widget.dart | 52 +++++++++++++++++++ .../pages/product/ocr_packaging_helper.dart | 36 +------------ .../lib/pages/product/simple_input_page.dart | 9 ++-- .../product/simple_input_page_helpers.dart | 14 +++++ 7 files changed, 116 insertions(+), 45 deletions(-) create mode 100644 packages/smooth_app/lib/pages/product/explanation_widget.dart diff --git a/packages/smooth_app/lib/l10n/app_en.arb b/packages/smooth_app/lib/l10n/app_en.arb index 832faf68aa02..4aed961cf83c 100644 --- a/packages/smooth_app/lib/l10n/app_en.arb +++ b/packages/smooth_app/lib/l10n/app_en.arb @@ -428,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1023,10 +1023,18 @@ "@edit_product_form_item_origins_title": { "description": "Product edition - Origins - Title" }, - "edit_product_form_item_origins_hint": "Spain, Beef from Argentina, The soy does not come from the European union", + "edit_product_form_item_origins_hint": "Spain", "@edit_product_form_item_origins_hint": { "description": "Product edition - Origins - input textfield hint" }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1059,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_fr.arb b/packages/smooth_app/lib/l10n/app_fr.arb index 019290a2a500..ac4ec5404938 100644 --- a/packages/smooth_app/lib/l10n/app_fr.arb +++ b/packages/smooth_app/lib/l10n/app_fr.arb @@ -422,7 +422,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Échec de l'enregistrement de l'emballage.", "packaging_editing_image_error": "Impossible d'obtenir une nouvelle image d'emballage.", "packaging_editing_title": "Modifier l'emballage", @@ -1021,6 +1021,14 @@ "@edit_product_form_item_origins_hint": { "description": "Product edition - Origins - input textfield hint" }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Pays", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1053,6 +1061,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Souhaitez-vous enregistrer vos modifications avant de quitter cette page ?", "edit_product_form_item_ingredients_title": "Ingrédients & Origines", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/pages/product/edit_ingredients_page.dart b/packages/smooth_app/lib/pages/product/edit_ingredients_page.dart index b8d1cc8abc92..0a86c8186076 100644 --- a/packages/smooth_app/lib/pages/product/edit_ingredients_page.dart +++ b/packages/smooth_app/lib/pages/product/edit_ingredients_page.dart @@ -12,6 +12,7 @@ import 'package:smooth_app/generic_lib/dialogs/smooth_alert_dialog.dart'; import 'package:smooth_app/helpers/picture_capture_helper.dart'; import 'package:smooth_app/pages/image_crop_page.dart'; import 'package:smooth_app/pages/product/common/product_refresher.dart'; +import 'package:smooth_app/pages/product/explanation_widget.dart'; import 'package:smooth_app/pages/product/ocr_helper.dart'; import 'package:smooth_app/widgets/smooth_scaffold.dart'; @@ -312,9 +313,8 @@ class _OcrWidget extends StatelessWidget { onSubmitted: (_) => onSubmitField, ), const SizedBox(height: SMALL_SPACE), - Text( + ExplanationWidget( helper.getInstructions(appLocalizations), - style: Theme.of(context).textTheme.caption, ), const SizedBox(height: MEDIUM_SPACE), SmoothActionButtonsBar( diff --git a/packages/smooth_app/lib/pages/product/explanation_widget.dart b/packages/smooth_app/lib/pages/product/explanation_widget.dart new file mode 100644 index 000000000000..5fa4d66c5756 --- /dev/null +++ b/packages/smooth_app/lib/pages/product/explanation_widget.dart @@ -0,0 +1,52 @@ +import 'package:flutter/material.dart'; +import 'package:smooth_app/generic_lib/design_constants.dart'; + +/// Widget that displays explanations as a list, with expand/collapse mode. +class ExplanationWidget extends StatefulWidget { + const ExplanationWidget(this.explanations); + + final String? explanations; + + @override + State createState() => _ExplanationWidgetState(); +} + +class _ExplanationWidgetState extends State { + bool _expanded = false; + + @override + Widget build(BuildContext context) { + if (widget.explanations == null) { + return EMPTY_WIDGET; + } + if (!_expanded) { + return ListTile( + title: Text( + widget.explanations!, + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + trailing: const Icon(Icons.info_outline), + onTap: () => setState(() => _expanded = true), + ); + } + final List result = []; + final List split = widget.explanations!.split('\n'); + bool first = true; + for (final String item in split) { + if (first) { + first = false; + result.add( + ListTile( + title: Text(item), + trailing: const Icon(Icons.expand_less), + onTap: () => setState(() => _expanded = false), + ), + ); + } else { + result.add(ListTile(title: Text(item))); + } + } + return Column(children: result); + } +} diff --git a/packages/smooth_app/lib/pages/product/ocr_packaging_helper.dart b/packages/smooth_app/lib/pages/product/ocr_packaging_helper.dart index 5d70921b5244..915fcadb59e1 100644 --- a/packages/smooth_app/lib/pages/product/ocr_packaging_helper.dart +++ b/packages/smooth_app/lib/pages/product/ocr_packaging_helper.dart @@ -1,13 +1,8 @@ import 'dart:async'; -import 'dart:convert'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; -import 'package:http/http.dart'; import 'package:openfoodfacts/model/OcrPackagingResult.dart'; import 'package:openfoodfacts/openfoodfacts.dart'; -import 'package:openfoodfacts/utils/OcrField.dart'; -import 'package:openfoodfacts/utils/QueryType.dart'; -import 'package:openfoodfacts/utils/UriHelper.dart'; import 'package:smooth_app/pages/product/ocr_helper.dart'; /// OCR Helper for packaging. @@ -54,40 +49,11 @@ class OcrPackagingHelper extends OcrHelper { @override Future getExtractedText(final Product product) async { - final OcrPackagingResult result = await extractPackaging( + final OcrPackagingResult result = await OpenFoodAPIClient.extractPackaging( getUser(), product.barcode!, getLanguage(), ); return result.textFromImage; } - - // TODO(monsieurtanuki): move to off-dart - static Future extractPackaging( - User user, - String barcode, - OpenFoodFactsLanguage language, { - OcrField ocrField = OcrField.GOOGLE_CLOUD_VISION, - QueryType? queryType, - }) async { - final Uri uri = UriHelper.getPostUri( - path: '/cgi/packaging.pl', - queryType: queryType, - ); - final Map queryParameters = { - 'code': barcode, - 'process_image': '1', - 'id': 'packaging_${language.code}', - 'ocr_engine': OcrField.GOOGLE_CLOUD_VISION.key - }; - final Response response = await HttpHelper().doPostRequest( - uri, - queryParameters, - user, - queryType: queryType, - ); - return OcrPackagingResult.fromJson( - json.decode(utf8.decode(response.bodyBytes)) as Map, - ); - } } diff --git a/packages/smooth_app/lib/pages/product/simple_input_page.dart b/packages/smooth_app/lib/pages/product/simple_input_page.dart index 568f41bbd511..d374c3de8562 100644 --- a/packages/smooth_app/lib/pages/product/simple_input_page.dart +++ b/packages/smooth_app/lib/pages/product/simple_input_page.dart @@ -10,6 +10,7 @@ import 'package:smooth_app/generic_lib/dialogs/smooth_alert_dialog.dart'; import 'package:smooth_app/helpers/product_cards_helper.dart'; import 'package:smooth_app/pages/product/autocomplete.dart'; import 'package:smooth_app/pages/product/common/product_refresher.dart'; +import 'package:smooth_app/pages/product/explanation_widget.dart'; import 'package:smooth_app/pages/product/simple_input_page_helpers.dart'; import 'package:smooth_app/query/product_query.dart'; import 'package:smooth_app/widgets/smooth_scaffold.dart'; @@ -66,8 +67,9 @@ class _SimpleInputPageState extends State { widget.helper.getTitle(appLocalizations), style: themeData.textTheme.headline1, ), - if (widget.helper.getSubtitle(appLocalizations) != null) - Text(widget.helper.getSubtitle(appLocalizations)!), + ExplanationWidget( + widget.helper.getAddExplanations(appLocalizations), + ), ListTile( onTap: () => _addItemsFromController(), trailing: const Icon(Icons.add_circle), @@ -137,9 +139,6 @@ class _SimpleInputPageState extends State { ), ), ), - if (widget.helper.getAddExplanations(appLocalizations) != - null) - Text(widget.helper.getAddExplanations(appLocalizations)!), Divider(color: themeData.colorScheme.onBackground), Column( children: List.generate( diff --git a/packages/smooth_app/lib/pages/product/simple_input_page_helpers.dart b/packages/smooth_app/lib/pages/product/simple_input_page_helpers.dart index 68dc4c5523a5..1b7ad6a21b8d 100644 --- a/packages/smooth_app/lib/pages/product/simple_input_page_helpers.dart +++ b/packages/smooth_app/lib/pages/product/simple_input_page_helpers.dart @@ -147,6 +147,12 @@ class SimpleInputPageOriginHelper extends AbstractSimpleInputPageHelper { String getAddHint(final AppLocalizations appLocalizations) => appLocalizations.edit_product_form_item_origins_hint; + @override + String? getAddExplanations(final AppLocalizations appLocalizations) => + '${appLocalizations.edit_product_form_item_origins_explainer_1}' + '\n' + '${appLocalizations.edit_product_form_item_origins_explainer_2}'; + @override TagType? getTagType() => null; @@ -291,6 +297,14 @@ class SimpleInputPageCategoryHelper String getTitle(final AppLocalizations appLocalizations) => appLocalizations.edit_product_form_item_categories_title; + @override + String? getAddExplanations(final AppLocalizations appLocalizations) => + '${appLocalizations.edit_product_form_item_categories_explainer_1}' + '\n' + '${appLocalizations.edit_product_form_item_categories_explainer_2}' + '\n' + '${appLocalizations.edit_product_form_item_categories_explainer_3}'; + @override String getAddHint(final AppLocalizations appLocalizations) => appLocalizations.edit_product_form_item_categories_hint; From 168d4688f4859a498843067475d7b34cd86902c2 Mon Sep 17 00:00:00 2001 From: monsieurtanuki Date: Mon, 11 Jul 2022 19:25:43 +0200 Subject: [PATCH 13/51] feat: #2572 - added icons for ingredients and nutrition in edit product page (#2577) Impacted file: * `edit_product_page.dart`: added svg icons for ingredients and nutrition --- .../lib/pages/product/edit_product_page.dart | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/packages/smooth_app/lib/pages/product/edit_product_page.dart b/packages/smooth_app/lib/pages/product/edit_product_page.dart index 46b6a9ae0d8f..23f8855a50d0 100644 --- a/packages/smooth_app/lib/pages/product/edit_product_page.dart +++ b/packages/smooth_app/lib/pages/product/edit_product_page.dart @@ -2,6 +2,7 @@ import 'package:auto_size_text/auto_size_text.dart'; import 'package:barcode_widget/barcode_widget.dart'; import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; +import 'package:flutter_svg/flutter_svg.dart'; import 'package:openfoodfacts/openfoodfacts.dart'; import 'package:provider/provider.dart'; import 'package:smooth_app/data_models/product_image_data.dart'; @@ -128,6 +129,7 @@ class _EditProductPageState extends State { ), _getSimpleListTileItem(SimpleInputPageLabelHelper()), _ListTitleItem( + leading: const _SvgIcon('assets/cacheTintable/ingredients.svg'), title: appLocalizations.edit_product_form_item_ingredients_title, onTap: () async { if (!await ProductRefresher().checkIfLoggedIn(context)) { @@ -168,6 +170,7 @@ class _EditProductPageState extends State { _getSimpleListTileItem(SimpleInputPageCountryHelper()), _getSimpleListTileItem(SimpleInputPageCategoryHelper()), _ListTitleItem( + leading: const _SvgIcon('assets/cacheTintable/scale-balance.svg'), title: appLocalizations.edit_product_form_item_nutrition_facts_title, subtitle: appLocalizations @@ -261,3 +264,31 @@ class _ListTitleItem extends StatelessWidget { ), ); } + +/// SVG that looks like a ListTile icon. +class _SvgIcon extends StatelessWidget { + const _SvgIcon(this.assetName); + + final String assetName; + + @override + Widget build(BuildContext context) => SvgPicture.asset( + assetName, + height: DEFAULT_ICON_SIZE, + width: DEFAULT_ICON_SIZE, + color: _iconColor(Theme.of(context)), + ); + + /// Returns the standard icon color in a [ListTile]. + /// + /// Simplified version from [ListTile], which was anyway not kind enough + /// to make it public. + Color _iconColor(ThemeData theme) { + switch (theme.brightness) { + case Brightness.light: + return Colors.black45; + case Brightness.dark: + return Colors.white; + } + } +} From 9ad3bfa81cbd6559c2ae04b1319d92fa72c1a724 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Jul 2022 20:21:45 +0200 Subject: [PATCH 14/51] chore(deps): bump actions/setup-java from 3.4.0 to 3.4.1 (#2583) Bumps [actions/setup-java](https://github.com/actions/setup-java) from 3.4.0 to 3.4.1. - [Release notes](https://github.com/actions/setup-java/releases) - [Commits](https://github.com/actions/setup-java/compare/v3.4.0...v3.4.1) --- updated-dependencies: - dependency-name: actions/setup-java dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../workflows/android-release-to-org-openfoodfacts-scanner.yml | 2 +- .github/workflows/ios-release-to-org-openfoodfacts-scanner.yml | 2 +- .github/workflows/postsubmit.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/android-release-to-org-openfoodfacts-scanner.yml b/.github/workflows/android-release-to-org-openfoodfacts-scanner.yml index 40a4f06ac2a0..9e1dbd92c936 100644 --- a/.github/workflows/android-release-to-org-openfoodfacts-scanner.yml +++ b/.github/workflows/android-release-to-org-openfoodfacts-scanner.yml @@ -26,7 +26,7 @@ jobs: run: echo ${{ env.RELEASE_VERSION }} - name: Setup Java JDK - uses: actions/setup-java@v3.4.0 + uses: actions/setup-java@v3.4.1 with: distribution: 'zulu' java-version: ${{ env.JAVA_VERSION }} diff --git a/.github/workflows/ios-release-to-org-openfoodfacts-scanner.yml b/.github/workflows/ios-release-to-org-openfoodfacts-scanner.yml index 3c79928e2688..b17bbc3d00df 100644 --- a/.github/workflows/ios-release-to-org-openfoodfacts-scanner.yml +++ b/.github/workflows/ios-release-to-org-openfoodfacts-scanner.yml @@ -31,7 +31,7 @@ jobs: ruby-version: ${{ env.RUBY_VERSION }} - name: Setup Java JDK - uses: actions/setup-java@v3.4.0 + uses: actions/setup-java@v3.4.1 with: distribution: 'zulu' java-version: ${{ env.JAVA_VERSION }} diff --git a/.github/workflows/postsubmit.yml b/.github/workflows/postsubmit.yml index a87f15f9474c..05b1c73234df 100644 --- a/.github/workflows/postsubmit.yml +++ b/.github/workflows/postsubmit.yml @@ -16,7 +16,7 @@ jobs: uses: actions/checkout@v3 - name: Setup Java JDK - uses: actions/setup-java@v3.4.0 + uses: actions/setup-java@v3.4.1 with: distribution: 'zulu' java-version: 11 From ec2eb42c86d188843ec7e88b3911ee44ba1ed2b3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 12 Jul 2022 11:09:18 +0200 Subject: [PATCH 15/51] chore: New Crowdin translations to review and merge (#2584) * chore: New Crowdin translations * Update app_aa.arb Co-authored-by: Crowdin Bot Co-authored-by: Pierre Slamich --- packages/smooth_app/lib/l10n/app_aa.arb | 38 ++++++++++- packages/smooth_app/lib/l10n/app_af.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_ak.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_am.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_ar.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_as.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_az.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_be.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_bg.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_bm.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_bn.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_bo.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_br.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_bs.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_ca.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_ce.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_co.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_cs.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_cv.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_cy.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_da.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_de.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_el.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_eo.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_es.arb | 38 ++++++++++- packages/smooth_app/lib/l10n/app_et.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_eu.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_fa.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_fi.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_fil.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_fo.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_fr.arb | 6 ++ packages/smooth_app/lib/l10n/app_ga.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_gd.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_gl.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_gu.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_ha.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_he.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_hi.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_hr.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_ht.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_hu.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_hy.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_id.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_ii.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_is.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_it.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_iu.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_ja.arb | 46 +++++++++++-- packages/smooth_app/lib/l10n/app_jv.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_ka.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_kk.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_km.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_kn.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_ko.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_ku.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_kw.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_ky.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_la.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_lb.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_lo.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_lt.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_lv.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_mg.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_mi.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_ml.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_mn.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_mr.arb | 50 +++++++++++--- packages/smooth_app/lib/l10n/app_ms.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_mt.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_my.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_nb.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_ne.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_nl.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_nn.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_no.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_nr.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_oc.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_pa.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_pl.arb | 84 +++++++++++++++++------- packages/smooth_app/lib/l10n/app_pt.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_qu.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_rm.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_ro.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_ru.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_sa.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_sc.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_sd.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_sg.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_si.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_sk.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_sl.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_sn.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_so.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_sq.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_sr.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_ss.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_st.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_sv.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_sw.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_ta.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_te.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_tg.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_th.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_ti.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_tl.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_tn.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_tr.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_ts.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_tt.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_tw.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_ty.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_ug.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_uk.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_ur.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_uz.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_ve.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_vi.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_wa.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_wo.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_xh.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_yo.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_zh.arb | 36 +++++++++- packages/smooth_app/lib/l10n/app_zu.arb | 36 +++++++++- 124 files changed, 4349 insertions(+), 161 deletions(-) diff --git a/packages/smooth_app/lib/l10n/app_aa.arb b/packages/smooth_app/lib/l10n/app_aa.arb index 424cfdf9d913..3a35148b3682 100644 --- a/packages/smooth_app/lib/l10n/app_aa.arb +++ b/packages/smooth_app/lib/l10n/app_aa.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { @@ -1516,4 +1550,4 @@ "@no_internet_connection": { "description": "Message when there is no internet connection" } -} \ No newline at end of file +} diff --git a/packages/smooth_app/lib/l10n/app_af.arb b/packages/smooth_app/lib/l10n/app_af.arb index 80ef26c58f54..09b5a150cf40 100644 --- a/packages/smooth_app/lib/l10n/app_af.arb +++ b/packages/smooth_app/lib/l10n/app_af.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_ak.arb b/packages/smooth_app/lib/l10n/app_ak.arb index 0a7b91f46f5f..4aed961cf83c 100644 --- a/packages/smooth_app/lib/l10n/app_ak.arb +++ b/packages/smooth_app/lib/l10n/app_ak.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_am.arb b/packages/smooth_app/lib/l10n/app_am.arb index 43b327400cb1..e8459044f4bb 100644 --- a/packages/smooth_app/lib/l10n/app_am.arb +++ b/packages/smooth_app/lib/l10n/app_am.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_ar.arb b/packages/smooth_app/lib/l10n/app_ar.arb index 42563118b35f..ef3e8b2f7fbb 100644 --- a/packages/smooth_app/lib/l10n/app_ar.arb +++ b/packages/smooth_app/lib/l10n/app_ar.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "الترجمات هي إحدى المهام الرئيسية للمشروع", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "اضغط هنا للإجابة على الأسئلة", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "أصلي", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "المكونات والأصول", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_as.arb b/packages/smooth_app/lib/l10n/app_as.arb index 0a7b91f46f5f..4aed961cf83c 100644 --- a/packages/smooth_app/lib/l10n/app_as.arb +++ b/packages/smooth_app/lib/l10n/app_as.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_az.arb b/packages/smooth_app/lib/l10n/app_az.arb index 28e01f8cb589..1859a681e407 100644 --- a/packages/smooth_app/lib/l10n/app_az.arb +++ b/packages/smooth_app/lib/l10n/app_az.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_be.arb b/packages/smooth_app/lib/l10n/app_be.arb index afe639a0f96c..1c75a73ec429 100644 --- a/packages/smooth_app/lib/l10n/app_be.arb +++ b/packages/smooth_app/lib/l10n/app_be.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_bg.arb b/packages/smooth_app/lib/l10n/app_bg.arb index ceb059fd3a25..7998ab87dc67 100644 --- a/packages/smooth_app/lib/l10n/app_bg.arb +++ b/packages/smooth_app/lib/l10n/app_bg.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Преводите са една от ключовите задачи на проекта", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Натисни тук, за да отговориш на въпроси", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Неуспешно запазване на опаковката.", "packaging_editing_image_error": "Неуспешно получаване на новата снимка на опаковката.", "packaging_editing_title": "Редактиране на опаковката", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Произход", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Испания", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Страна", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Искаш ли да запазиш промените, преди да напуснеш тази страница?", "edit_product_form_item_ingredients_title": "Съставки и произход", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_bm.arb b/packages/smooth_app/lib/l10n/app_bm.arb index 0a7b91f46f5f..4aed961cf83c 100644 --- a/packages/smooth_app/lib/l10n/app_bm.arb +++ b/packages/smooth_app/lib/l10n/app_bm.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_bn.arb b/packages/smooth_app/lib/l10n/app_bn.arb index 3e0734f7d77b..62f3f91be732 100644 --- a/packages/smooth_app/lib/l10n/app_bn.arb +++ b/packages/smooth_app/lib/l10n/app_bn.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_bo.arb b/packages/smooth_app/lib/l10n/app_bo.arb index 0a7b91f46f5f..4aed961cf83c 100644 --- a/packages/smooth_app/lib/l10n/app_bo.arb +++ b/packages/smooth_app/lib/l10n/app_bo.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_br.arb b/packages/smooth_app/lib/l10n/app_br.arb index 8e7f76ebd0e9..e7fd2bd07e49 100644 --- a/packages/smooth_app/lib/l10n/app_br.arb +++ b/packages/smooth_app/lib/l10n/app_br.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_bs.arb b/packages/smooth_app/lib/l10n/app_bs.arb index ee79d5f15b00..d4b32004731b 100644 --- a/packages/smooth_app/lib/l10n/app_bs.arb +++ b/packages/smooth_app/lib/l10n/app_bs.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_ca.arb b/packages/smooth_app/lib/l10n/app_ca.arb index 5c5d6274865f..a21ae60a4bda 100644 --- a/packages/smooth_app/lib/l10n/app_ca.arb +++ b/packages/smooth_app/lib/l10n/app_ca.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Les traduccions són una de les tasques clau del projecte", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_ce.arb b/packages/smooth_app/lib/l10n/app_ce.arb index 0a7b91f46f5f..4aed961cf83c 100644 --- a/packages/smooth_app/lib/l10n/app_ce.arb +++ b/packages/smooth_app/lib/l10n/app_ce.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_co.arb b/packages/smooth_app/lib/l10n/app_co.arb index 0a7b91f46f5f..4aed961cf83c 100644 --- a/packages/smooth_app/lib/l10n/app_co.arb +++ b/packages/smooth_app/lib/l10n/app_co.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_cs.arb b/packages/smooth_app/lib/l10n/app_cs.arb index 51574951437e..56619b95370b 100644 --- a/packages/smooth_app/lib/l10n/app_cs.arb +++ b/packages/smooth_app/lib/l10n/app_cs.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Překlady jsou jedním z klíčových úkolů projektu", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Klepnutím sem odpovíte na otázky", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Balení se nepodařilo uložit.", "packaging_editing_image_error": "Nepodařilo se získat nový obrázek obalu.", "packaging_editing_title": "Upravit obal", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Původ", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Španělsko", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Země", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Chcete uložit změny před opuštěním této stránky?", "edit_product_form_item_ingredients_title": "Složení a původ", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_cv.arb b/packages/smooth_app/lib/l10n/app_cv.arb index 0a7b91f46f5f..4aed961cf83c 100644 --- a/packages/smooth_app/lib/l10n/app_cv.arb +++ b/packages/smooth_app/lib/l10n/app_cv.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_cy.arb b/packages/smooth_app/lib/l10n/app_cy.arb index f5e66bbd7d32..8a2ad7d7559d 100644 --- a/packages/smooth_app/lib/l10n/app_cy.arb +++ b/packages/smooth_app/lib/l10n/app_cy.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_da.arb b/packages/smooth_app/lib/l10n/app_da.arb index 680ff52e3cce..248c9c2f3c49 100644 --- a/packages/smooth_app/lib/l10n/app_da.arb +++ b/packages/smooth_app/lib/l10n/app_da.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Oversættelser er en af projektets nøgleopgaver", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tryk her for at besvare spørgsmål", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Kunne ikke gemme emballagen.", "packaging_editing_image_error": "Kunne ikke hente nyt emballagefoto.", "packaging_editing_title": "Redigér emballage", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Oprindelser", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spanien", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Land", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Gem ændringerne, inden siden forlades?", "edit_product_form_item_ingredients_title": "Ingredienser og Oprindelser", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_de.arb b/packages/smooth_app/lib/l10n/app_de.arb index 3e0eb7f7742e..5fce6ba4c6ce 100644 --- a/packages/smooth_app/lib/l10n/app_de.arb +++ b/packages/smooth_app/lib/l10n/app_de.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Übersetzungen sind eine der Hauptaufgaben des Projekts", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tippen Sie hier, um Fragen zu beantworten", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Fehler beim Speichern der Verpackung.", "packaging_editing_image_error": "Neues Foto der Verpackung konnte nicht abgerufen werden.", "packaging_editing_title": "Verpackung bearbeiten", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Herkunfte", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spanien", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Land", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Möchten Sie Ihre Änderungen speichern, bevor Sie diese Seite verlassen?", "edit_product_form_item_ingredients_title": "Zutaten und Herkunft", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_el.arb b/packages/smooth_app/lib/l10n/app_el.arb index 66fe5790a925..faa1d57bc062 100644 --- a/packages/smooth_app/lib/l10n/app_el.arb +++ b/packages/smooth_app/lib/l10n/app_el.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Οι μεταφράσεις είναι ένα από τα βασικά καθήκοντα του project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Πατήστε εδώ για να απαντήσετε σε ερωτήσεις", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Ισπανία", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Θέλετε να αποθηκεύσετε τις αλλαγές σας πριν από την έξοδο από αυτή τη σελίδα;", "edit_product_form_item_ingredients_title": "Συστατικά & Προέλευση", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_eo.arb b/packages/smooth_app/lib/l10n/app_eo.arb index f62a6edc36e1..f99e101e26bc 100644 --- a/packages/smooth_app/lib/l10n/app_eo.arb +++ b/packages/smooth_app/lib/l10n/app_eo.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_es.arb b/packages/smooth_app/lib/l10n/app_es.arb index 64132a970120..90e7a6f4ae3b 100644 --- a/packages/smooth_app/lib/l10n/app_es.arb +++ b/packages/smooth_app/lib/l10n/app_es.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "La traducción es una de las tareas clave del proyecto.", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Toca aquí para responder a las preguntas", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -344,7 +350,7 @@ "myPreferences_settings_subtitle": "Modo oscuro, analíticas, ...", "myPreferences_food_title": "Preferencias alimentarias", "myPreferences_food_subtitle": "Elige qué tipo de información alimentaria es más importante para ti.", - "myPreferences_food_comment": "Elije qué información alimentaria es más importante para ti, así se clasificarán los alimentos según tus preferencias. Verás la información que te interesa primero y obtendrás un resumen de compatibilidad. Tus preferencias alimentarias permanecen en tu dispositivo y no están asociadas a tu cuenta de colaborador de Open Food Facts, en el caso de tener una.", + "myPreferences_food_comment": "Elige qué propiedades alimentarias de verdad te importan y así clasificar los alimentos, ordenándolos de acuerdo a tus necesidades. Las propiedades destacadas aparecerán primero y obtendrás un resumen de compatibilidad. Tus preferencias alimentarias permanecen en tu dispositivo y no están asociadas a tu cuenta de colaborador de Open Food Facts, si es que la tienes.", "confirmResetPreferences": "¿Quieres restablecer tus preferencias alimentarias?", "@confirmResetPreferences": { "description": "Pop up title: Reassuring if the food preferences should really be reset" @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "No se pudo guardar el envase.", "packaging_editing_image_error": "No se pudo obtener la nueva imagen del envase.", "packaging_editing_title": "Editar el envase", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Orígenes", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "España", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "País", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "¿Deseas guardar los cambios antes de salir de esta página?", "edit_product_form_item_ingredients_title": "Ingredientes y orígenes", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_et.arb b/packages/smooth_app/lib/l10n/app_et.arb index 5d0ad4e208d2..539df7549ee0 100644 --- a/packages/smooth_app/lib/l10n/app_et.arb +++ b/packages/smooth_app/lib/l10n/app_et.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_eu.arb b/packages/smooth_app/lib/l10n/app_eu.arb index 73dc6327abc1..7588b17b07f7 100644 --- a/packages/smooth_app/lib/l10n/app_eu.arb +++ b/packages/smooth_app/lib/l10n/app_eu.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_fa.arb b/packages/smooth_app/lib/l10n/app_fa.arb index 3d12129105b8..52f8498b9d9e 100644 --- a/packages/smooth_app/lib/l10n/app_fa.arb +++ b/packages/smooth_app/lib/l10n/app_fa.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "ترجمه یکی از وظایف کلیدی پروژه است", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_fi.arb b/packages/smooth_app/lib/l10n/app_fi.arb index cf9ab094b6b2..287a2853a02d 100644 --- a/packages/smooth_app/lib/l10n/app_fi.arb +++ b/packages/smooth_app/lib/l10n/app_fi.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Käännökset on yksi hankkeen keskeisistä tehtävistä", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Alkuperät", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_fil.arb b/packages/smooth_app/lib/l10n/app_fil.arb index 4ffe5c7f3d81..5d4db7432364 100644 --- a/packages/smooth_app/lib/l10n/app_fil.arb +++ b/packages/smooth_app/lib/l10n/app_fil.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_fo.arb b/packages/smooth_app/lib/l10n/app_fo.arb index 0a7b91f46f5f..4aed961cf83c 100644 --- a/packages/smooth_app/lib/l10n/app_fo.arb +++ b/packages/smooth_app/lib/l10n/app_fo.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_fr.arb b/packages/smooth_app/lib/l10n/app_fr.arb index ac4ec5404938..181f428dfbd9 100644 --- a/packages/smooth_app/lib/l10n/app_fr.arb +++ b/packages/smooth_app/lib/l10n/app_fr.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Les traductions sont l'une des tâches clés du projet", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Appuyez ici pour répondre aux questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." diff --git a/packages/smooth_app/lib/l10n/app_ga.arb b/packages/smooth_app/lib/l10n/app_ga.arb index e349bcc96a0d..2c76139c7ed8 100644 --- a/packages/smooth_app/lib/l10n/app_ga.arb +++ b/packages/smooth_app/lib/l10n/app_ga.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_gd.arb b/packages/smooth_app/lib/l10n/app_gd.arb index 0a7b91f46f5f..4aed961cf83c 100644 --- a/packages/smooth_app/lib/l10n/app_gd.arb +++ b/packages/smooth_app/lib/l10n/app_gd.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_gl.arb b/packages/smooth_app/lib/l10n/app_gl.arb index f21161055163..e8068a8a7cd9 100644 --- a/packages/smooth_app/lib/l10n/app_gl.arb +++ b/packages/smooth_app/lib/l10n/app_gl.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_gu.arb b/packages/smooth_app/lib/l10n/app_gu.arb index 87aff8206c16..c7786d32719e 100644 --- a/packages/smooth_app/lib/l10n/app_gu.arb +++ b/packages/smooth_app/lib/l10n/app_gu.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_ha.arb b/packages/smooth_app/lib/l10n/app_ha.arb index 1fea8bacd64f..38b89ef7cc45 100644 --- a/packages/smooth_app/lib/l10n/app_ha.arb +++ b/packages/smooth_app/lib/l10n/app_ha.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_he.arb b/packages/smooth_app/lib/l10n/app_he.arb index 8711b8405c8f..246da0060b4f 100644 --- a/packages/smooth_app/lib/l10n/app_he.arb +++ b/packages/smooth_app/lib/l10n/app_he.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "תרגומים הם אחת ממשימות המפתח של המיזם", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "יש לגעת כאן כדי לענות על שאלות", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "שמירת האריזה נכשלה.", "packaging_editing_image_error": "משיכת תמונת האריזה החדשה נכשלה.", "packaging_editing_title": "עריכת אריזה", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "מקורות", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "ספרד", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "מדינה", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "לשמור את השינויים שלך בטרם יציאה מהעמוד הזה?", "edit_product_form_item_ingredients_title": "רכיבים ומקורות", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_hi.arb b/packages/smooth_app/lib/l10n/app_hi.arb index 22ee0459d931..404513d24320 100644 --- a/packages/smooth_app/lib/l10n/app_hi.arb +++ b/packages/smooth_app/lib/l10n/app_hi.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_hr.arb b/packages/smooth_app/lib/l10n/app_hr.arb index c09c6935f1e4..320adc6d9ed1 100644 --- a/packages/smooth_app/lib/l10n/app_hr.arb +++ b/packages/smooth_app/lib/l10n/app_hr.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_ht.arb b/packages/smooth_app/lib/l10n/app_ht.arb index 0a7b91f46f5f..4aed961cf83c 100644 --- a/packages/smooth_app/lib/l10n/app_ht.arb +++ b/packages/smooth_app/lib/l10n/app_ht.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_hu.arb b/packages/smooth_app/lib/l10n/app_hu.arb index cb74d54dbcd3..659047f04d76 100644 --- a/packages/smooth_app/lib/l10n/app_hu.arb +++ b/packages/smooth_app/lib/l10n/app_hu.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "A fordítás a projekt egyik legfontosabb feladatai közé tartozik", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Származás", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Ország", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_hy.arb b/packages/smooth_app/lib/l10n/app_hy.arb index 0ded01040662..cf401b603e98 100644 --- a/packages/smooth_app/lib/l10n/app_hy.arb +++ b/packages/smooth_app/lib/l10n/app_hy.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_id.arb b/packages/smooth_app/lib/l10n/app_id.arb index 7ac0051b83e9..8d503fbc2f78 100644 --- a/packages/smooth_app/lib/l10n/app_id.arb +++ b/packages/smooth_app/lib/l10n/app_id.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Penerjemahan adalah salah satu tugas utama dari proyek ini", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Ketuk di sini untuk menjawab pertanyaan", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Tempat asal", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Negara", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Apa Anda ingin menyimpan perubahan sebelum meninggalkan halaman ini?", "edit_product_form_item_ingredients_title": "Bahan & Asal", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_ii.arb b/packages/smooth_app/lib/l10n/app_ii.arb index 0a7b91f46f5f..4aed961cf83c 100644 --- a/packages/smooth_app/lib/l10n/app_ii.arb +++ b/packages/smooth_app/lib/l10n/app_ii.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_is.arb b/packages/smooth_app/lib/l10n/app_is.arb index 98d5ad478cde..2b13a89caebf 100644 --- a/packages/smooth_app/lib/l10n/app_is.arb +++ b/packages/smooth_app/lib/l10n/app_is.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_it.arb b/packages/smooth_app/lib/l10n/app_it.arb index f11dfa60ecb0..f65583b0d36e 100644 --- a/packages/smooth_app/lib/l10n/app_it.arb +++ b/packages/smooth_app/lib/l10n/app_it.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Le traduzioni sono tra i compiti chiave del progetto", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tocca qui per rispondere a delle domande", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Impossibile salvare la confezione.", "packaging_editing_image_error": "Impossibile ottenere una nuova immagine della confezione.", "packaging_editing_title": "Modifica imballaggio", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origini", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spagna", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Paese", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Salvare le modifiche prima di lasciare questa pagina?", "edit_product_form_item_ingredients_title": "Ingredienti & Origini", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_iu.arb b/packages/smooth_app/lib/l10n/app_iu.arb index 0a7b91f46f5f..4aed961cf83c 100644 --- a/packages/smooth_app/lib/l10n/app_iu.arb +++ b/packages/smooth_app/lib/l10n/app_iu.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_ja.arb b/packages/smooth_app/lib/l10n/app_ja.arb index 9f87214fd75a..2785a245690c 100644 --- a/packages/smooth_app/lib/l10n/app_ja.arb +++ b/packages/smooth_app/lib/l10n/app_ja.arb @@ -221,7 +221,7 @@ "@sign_up_page_agree_text": { "description": "I agree to the Open Food Facts is followed by sign_up_page_terms_text" }, - "sign_up_page_terms_text": "terms of use and contribution", + "sign_up_page_terms_text": "利用規約と貢献", "@sign_up_page_terms_text": { "description": "terms of use and contribution is preceded by sign_up_page_agree_text" }, @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "翻訳はプロジェクトの重要なタスクの1つです", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "質問に答えるにはここをタップ", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "パッケージの保存に失敗しました。", "packaging_editing_image_error": "新しいパッケージイメージを取得できませんでした。", "packaging_editing_title": "パッケージを編集", @@ -686,11 +692,11 @@ "@consent_analytics_title": { "description": "Title for the consent analytics UI Page" }, - "consent_analytics_body1": "Help the Open Food Facts volunteers to improve the app. You decide whether to submit anonymous analytics.", + "consent_analytics_body1": "Open Food Factsのボランティアがアプリを改善するのを手伝ってください。匿名の分析を提供するかどうか決定します。", "@conset_analytics_body1": { "description": "first paragraph for the consent analytics UI Page" }, - "consent_analytics_body2": "If you change your mind, this option can be enabled and disabled at any time from the settings.", + "consent_analytics_body2": "気が変わった場合、設定からいつでも切り替えることができます。", "@consent_analytics_body2": { "description": "second paragraph for the consent analytics UI Page" }, @@ -772,7 +778,7 @@ "@refuse": { "description": "Button to decline the request of sending the anonymous analytics" }, - "knowledge_panel_text_source": "Go further on {source_name}", + "knowledge_panel_text_source": "{source_name}に進む", "@knowledge_panel_text_source": { "description": "Source field within a text knowledge panel.", "placeholders": { @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "原産国", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "国", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "このページを去る前に変更を保存しますか?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { @@ -1376,7 +1410,7 @@ "@signup_page_terms_of_use_line1": { "description": "User consent for terms of use (line 1)" }, - "signup_page_terms_of_use_line2": "terms of use and contribution", + "signup_page_terms_of_use_line2": "利用規約と貢献", "@signup_page_terms_of_use_line2": { "description": "User consent for terms of use (line 2)" }, diff --git a/packages/smooth_app/lib/l10n/app_jv.arb b/packages/smooth_app/lib/l10n/app_jv.arb index 34fa6c35687d..b402684b405e 100644 --- a/packages/smooth_app/lib/l10n/app_jv.arb +++ b/packages/smooth_app/lib/l10n/app_jv.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_ka.arb b/packages/smooth_app/lib/l10n/app_ka.arb index a600f3d7de15..d5b8d6922d19 100644 --- a/packages/smooth_app/lib/l10n/app_ka.arb +++ b/packages/smooth_app/lib/l10n/app_ka.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_kk.arb b/packages/smooth_app/lib/l10n/app_kk.arb index 061a09ead8d5..4583169f2f1c 100644 --- a/packages/smooth_app/lib/l10n/app_kk.arb +++ b/packages/smooth_app/lib/l10n/app_kk.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_km.arb b/packages/smooth_app/lib/l10n/app_km.arb index de365e2bdfda..7a94dddf64a3 100644 --- a/packages/smooth_app/lib/l10n/app_km.arb +++ b/packages/smooth_app/lib/l10n/app_km.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_kn.arb b/packages/smooth_app/lib/l10n/app_kn.arb index 08089e1e56c1..d9f0f4d78497 100644 --- a/packages/smooth_app/lib/l10n/app_kn.arb +++ b/packages/smooth_app/lib/l10n/app_kn.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_ko.arb b/packages/smooth_app/lib/l10n/app_ko.arb index 5680e545dd37..1a9afcd43b4a 100644 --- a/packages/smooth_app/lib/l10n/app_ko.arb +++ b/packages/smooth_app/lib/l10n/app_ko.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "번역은 프로젝트의 핵심 작업 중 하나입니다", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "포장 사항을 저장하지 못했습니다.", "packaging_editing_image_error": "새 포장 사진을 가져오지 못했습니다.", "packaging_editing_title": "포장 편집", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "근원", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "국가", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "페이지를 나가기 전에 변경 사항을 저장하시겠습니까?", "edit_product_form_item_ingredients_title": "성분 및 원산지", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_ku.arb b/packages/smooth_app/lib/l10n/app_ku.arb index 6293fb8de2a1..0882126bd5f5 100644 --- a/packages/smooth_app/lib/l10n/app_ku.arb +++ b/packages/smooth_app/lib/l10n/app_ku.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_kw.arb b/packages/smooth_app/lib/l10n/app_kw.arb index 0a7b91f46f5f..4aed961cf83c 100644 --- a/packages/smooth_app/lib/l10n/app_kw.arb +++ b/packages/smooth_app/lib/l10n/app_kw.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_ky.arb b/packages/smooth_app/lib/l10n/app_ky.arb index 633bcd79a48f..9e5be353e097 100644 --- a/packages/smooth_app/lib/l10n/app_ky.arb +++ b/packages/smooth_app/lib/l10n/app_ky.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_la.arb b/packages/smooth_app/lib/l10n/app_la.arb index 10ce0d8cc7d9..25e9bc38531f 100644 --- a/packages/smooth_app/lib/l10n/app_la.arb +++ b/packages/smooth_app/lib/l10n/app_la.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_lb.arb b/packages/smooth_app/lib/l10n/app_lb.arb index ed27bf2036ae..0f41d8712ce3 100644 --- a/packages/smooth_app/lib/l10n/app_lb.arb +++ b/packages/smooth_app/lib/l10n/app_lb.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_lo.arb b/packages/smooth_app/lib/l10n/app_lo.arb index 0a7b91f46f5f..4aed961cf83c 100644 --- a/packages/smooth_app/lib/l10n/app_lo.arb +++ b/packages/smooth_app/lib/l10n/app_lo.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_lt.arb b/packages/smooth_app/lib/l10n/app_lt.arb index 0aa4a69453e4..93f11eb8ea71 100644 --- a/packages/smooth_app/lib/l10n/app_lt.arb +++ b/packages/smooth_app/lib/l10n/app_lt.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Vertimai yra viena iš pagrindinių projekto užduočių", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Bakstelėkite čia, kad atsakytumėte į klausimus", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Kilmė", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredientai ir kilmė", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_lv.arb b/packages/smooth_app/lib/l10n/app_lv.arb index 94cd94770c60..4b953c68f04d 100644 --- a/packages/smooth_app/lib/l10n/app_lv.arb +++ b/packages/smooth_app/lib/l10n/app_lv.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_mg.arb b/packages/smooth_app/lib/l10n/app_mg.arb index 8771a34feea6..390dbf0c4528 100644 --- a/packages/smooth_app/lib/l10n/app_mg.arb +++ b/packages/smooth_app/lib/l10n/app_mg.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_mi.arb b/packages/smooth_app/lib/l10n/app_mi.arb index 0a7b91f46f5f..4aed961cf83c 100644 --- a/packages/smooth_app/lib/l10n/app_mi.arb +++ b/packages/smooth_app/lib/l10n/app_mi.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_ml.arb b/packages/smooth_app/lib/l10n/app_ml.arb index fce7721fd7c2..13a26a7765db 100644 --- a/packages/smooth_app/lib/l10n/app_ml.arb +++ b/packages/smooth_app/lib/l10n/app_ml.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_mn.arb b/packages/smooth_app/lib/l10n/app_mn.arb index 0a7b91f46f5f..4aed961cf83c 100644 --- a/packages/smooth_app/lib/l10n/app_mn.arb +++ b/packages/smooth_app/lib/l10n/app_mn.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_mr.arb b/packages/smooth_app/lib/l10n/app_mr.arb index c6c463988039..8ab1dd1c5523 100644 --- a/packages/smooth_app/lib/l10n/app_mr.arb +++ b/packages/smooth_app/lib/l10n/app_mr.arb @@ -13,16 +13,16 @@ "description": "A label on a button that says 'Next', pressing the button takes the user to the next screen." }, "go_back_to_top": "Go back to top", - "save": "Save", + "save": "जतन करा", "save_confirmation": "Tumhala Khatri aahe ka ki tumhi save karu icchita?", "skip": "Skip", - "cancel": "Cancel", + "cancel": "रद्द करा", "@cancel": {}, "ignore": "Ignore", "@ignore": { "description": "'Ignore' button. Typical use case in combination with 'OK' and 'Cancel' buttons." }, - "close": "Close", + "close": "बंद करा", "@close": {}, "no": "Nahi", "@no": {}, @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -964,7 +970,7 @@ "permission_photo_denied_dialog_settings_title": "Permission denied", "permission_photo_denied_dialog_settings_message": "As you've previously denied the camera permission, you must allow it manually from the Settings.", "permission_photo_denied_dialog_settings_button_open": "Open settings", - "permission_photo_denied_dialog_settings_button_cancel": "Cancel", + "permission_photo_denied_dialog_settings_button_cancel": "रद्द करा", "permission_photo_denied": "No camera access granted", "@permission_photo_denied": { "description": "When the camera/photo permission is denied by user" @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { @@ -1154,7 +1188,7 @@ "@camera_disable_flash": { "description": "Disable flash (tooltip)" }, - "category_picker_no_category_found_button": "Back", + "category_picker_no_category_found_button": "मागे", "@category_picker_no_category_found_button": { "description": "Button label when no category is available" }, @@ -1240,11 +1274,11 @@ "@dev_preferences_export_history_dialog_title": { "description": "User dev preferences - Export history - Dialog title" }, - "dev_preferences_button_positive": "Ok", + "dev_preferences_button_positive": "ठीक आहे", "@dev_preferences_button_positive": { "description": "User dev preferences - Positive button label" }, - "dev_preferences_button_negative": "Cancel", + "dev_preferences_button_negative": "रद्द करा", "@dev_preferences_button_negative": { "description": "User dev preferences - Negative button label" }, diff --git a/packages/smooth_app/lib/l10n/app_ms.arb b/packages/smooth_app/lib/l10n/app_ms.arb index 335d1e825b59..e1032e6068b1 100644 --- a/packages/smooth_app/lib/l10n/app_ms.arb +++ b/packages/smooth_app/lib/l10n/app_ms.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Terjemahan adalah satu daripada tugas utama projek", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_mt.arb b/packages/smooth_app/lib/l10n/app_mt.arb index 0a7b91f46f5f..4aed961cf83c 100644 --- a/packages/smooth_app/lib/l10n/app_mt.arb +++ b/packages/smooth_app/lib/l10n/app_mt.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_my.arb b/packages/smooth_app/lib/l10n/app_my.arb index 45a17bcb0e5b..a6e87d8a9eeb 100644 --- a/packages/smooth_app/lib/l10n/app_my.arb +++ b/packages/smooth_app/lib/l10n/app_my.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_nb.arb b/packages/smooth_app/lib/l10n/app_nb.arb index 07e5e15c48d2..1f1380720fb6 100644 --- a/packages/smooth_app/lib/l10n/app_nb.arb +++ b/packages/smooth_app/lib/l10n/app_nb.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Land", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_ne.arb b/packages/smooth_app/lib/l10n/app_ne.arb index a3c52b58ffb7..0c8c0069989f 100644 --- a/packages/smooth_app/lib/l10n/app_ne.arb +++ b/packages/smooth_app/lib/l10n/app_ne.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_nl.arb b/packages/smooth_app/lib/l10n/app_nl.arb index d4325418ebce..e11404c3c3fc 100644 --- a/packages/smooth_app/lib/l10n/app_nl.arb +++ b/packages/smooth_app/lib/l10n/app_nl.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Vertalingen zijn een van de belangrijkste taken van het project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tik hier om vragen te beantwoorden", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Opslaan van de verpakking is mislukt.", "packaging_editing_image_error": "Het ophalen van een nieuwe verpakkingsafbeelding is mislukt.", "packaging_editing_title": "Verpakking bewerken", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Oorsprong", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spanje", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Land", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Wilt u de wijzigingen opslaan voor het verlaten van deze pagina?", "edit_product_form_item_ingredients_title": "Ingrediënten & Oorsprong", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_nn.arb b/packages/smooth_app/lib/l10n/app_nn.arb index 850686ac9666..7a8ad9a674a3 100644 --- a/packages/smooth_app/lib/l10n/app_nn.arb +++ b/packages/smooth_app/lib/l10n/app_nn.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_no.arb b/packages/smooth_app/lib/l10n/app_no.arb index 850686ac9666..7a8ad9a674a3 100644 --- a/packages/smooth_app/lib/l10n/app_no.arb +++ b/packages/smooth_app/lib/l10n/app_no.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_nr.arb b/packages/smooth_app/lib/l10n/app_nr.arb index 0a7b91f46f5f..4aed961cf83c 100644 --- a/packages/smooth_app/lib/l10n/app_nr.arb +++ b/packages/smooth_app/lib/l10n/app_nr.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_oc.arb b/packages/smooth_app/lib/l10n/app_oc.arb index 44e4ca7af8e4..0f821feb8241 100644 --- a/packages/smooth_app/lib/l10n/app_oc.arb +++ b/packages/smooth_app/lib/l10n/app_oc.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_pa.arb b/packages/smooth_app/lib/l10n/app_pa.arb index 0a7b91f46f5f..4aed961cf83c 100644 --- a/packages/smooth_app/lib/l10n/app_pa.arb +++ b/packages/smooth_app/lib/l10n/app_pa.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_pl.arb b/packages/smooth_app/lib/l10n/app_pl.arb index e694922d22cd..96e27ee343a1 100644 --- a/packages/smooth_app/lib/l10n/app_pl.arb +++ b/packages/smooth_app/lib/l10n/app_pl.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Tłumaczenia są jednym z kluczowych zadań projektu", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Kliknij tu, żeby odpowiedzieć na pytania", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,10 +428,10 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", - "packaging_editing_error": "Failed to save the packaging.", - "packaging_editing_image_error": "Failed to get a new packaging image.", - "packaging_editing_title": "Edit Packaging", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", + "packaging_editing_error": "Nie udało się zapisać informacji o opakowaniu.", + "packaging_editing_image_error": "Nie udało się pobrać zdjęcia nowego opakowania.", + "packaging_editing_title": "Edytuj opakowanie", "nutrition": "Odżywianie", "@nutrition": {}, "nutrition_facts_photo": "Zdjęcie tabeli wartości odżywczych", @@ -622,35 +628,35 @@ "percent": {} } }, - "plural_ago_days": "{count,plural, one {} =1{one day ago} other{{count} days ago}}", + "plural_ago_days": "{count,plural, one {} =1{jeden dzień temu} other{{count} dni temu}}", "@plural_ago_days": { "description": "Cached results from: x days ago", "placeholders": { "count": {} } }, - "plural_ago_hours": "{count,plural, one {} =1{one hour ago} other{{count} hours ago}}", + "plural_ago_hours": "{count,plural, one {} =1{godzinę temu} =2{2 godziny temu} =3{3 godziny temu} =4{4 godziny temu} other{{count} godzin temu}}", "@plural_ago_hours": { "description": "Cached results from: x hours ago", "placeholders": { "count": {} } }, - "plural_ago_minutes": "{count,plural, one {} =0{less than a minute ago} =1{one minute ago} other{{count} minutes ago}}", + "plural_ago_minutes": "{count,plural, one {} =0{mniej niż minutę temu} =1{minutę temu} =2{2 minuty temu} =3{3 minuty temu} =4{4 minuty temu} other{{count} minut temu}}", "@plural_ago_minutes": { "description": "Cached results from: x minutes ago", "placeholders": { "count": {} } }, - "plural_ago_months": "{count,plural, one {} =1{one month ago} other{{count} months ago}}", + "plural_ago_months": "{count,plural, one {} =1{miesiąc temu} =2{2 miesiące temu} =3{3 miesiące temu} =4{4 miesiące temu} other{{count} miesięcy temu}}", "@plural_ago_months": { "description": "Cached results from: x months ago", "placeholders": { "count": {} } }, - "plural_ago_weeks": "{count,plural, one {} =1{one week ago} other{{count} weeks ago}}", + "plural_ago_weeks": "{count,plural, one {} =1{tydzień temu} =2{2 tygodnie temu} =3{3 tygodnie temu} =4{4 tygodnie temu} other{{count} tygodni temu}}", "@plural_ago_weeks": { "description": "Cached results from: x weeks ago", "placeholders": { @@ -678,7 +684,7 @@ "faq": "Najczęściej zadawane pytania (FAQ)", "discover": "Odkryj", "how_to_contribute": "Jak mogę pomóc", - "hint_knowledge_panel_message": "Your can tap on any part of the card to get more details about what you see. Try it now!", + "hint_knowledge_panel_message": "Możesz dotknąć dowolnej części karty, aby uzyskać więcej informacji na temat tego, co widzisz. Spróbuj teraz!", "@hint_knowledge_panel_message": { "description": "Hint popup indicating the card is clickable during onboarding" }, @@ -686,15 +692,15 @@ "@consent_analytics_title": { "description": "Title for the consent analytics UI Page" }, - "consent_analytics_body1": "Help the Open Food Facts volunteers to improve the app. You decide whether to submit anonymous analytics.", + "consent_analytics_body1": "Pomóż wolontariuszom Open Food Facts ulepszyć aplikację. Zdecydujesz, czy chcesz przesyłać anonimowe dane analityczne.", "@conset_analytics_body1": { "description": "first paragraph for the consent analytics UI Page" }, - "consent_analytics_body2": "If you change your mind, this option can be enabled and disabled at any time from the settings.", + "consent_analytics_body2": "Jeśli zmienisz zdanie, tę opcję możesz włączyć i wyłączyć w dowolnym momencie w ustawieniach.", "@consent_analytics_body2": { "description": "second paragraph for the consent analytics UI Page" }, - "contact_form_body_android": "OS: Android (SDK Int: {sdkInt} / Release: ${release})\nModel: ${model}\nProduct: ${product}\nDevice: ${device}\nBrand:{brand}", + "contact_form_body_android": "System operacyjny: Android (SDK Int: {sdkInt} / Wydanie: ${release})\nModel: ${model}\nProdukt: ${product}\nUrządzenie: ${device}\nMarka:{brand}", "@contact_form_body_android": { "description": "Contact form content for Android devices", "placeholders": { @@ -724,7 +730,7 @@ } } }, - "contact_form_body_ios": "OS: iOS ({version})\nModel: ${model}\nLocalized model: ${localizedModel}", + "contact_form_body_ios": "System operacyjny: iOS ({version})\nModel: ${model}\nLokalny model: ${localizedModel}", "@contact_form_body_ios": { "description": "Contact form content for iOS devices", "placeholders": { @@ -742,7 +748,7 @@ } } }, - "contact_form_body": "{osContent}\nApp version:{appVersion}\nApp build number:{appBuildNumber}\nApp package name:{appPackageName}", + "contact_form_body": "{osContent}\nWersja aplikacji:{appVersion}\nNumer kompilacji aplikacji:{appBuildNumber}\nNazwa pakietu aplikacji:{appPackageName}", "@contact_form_body": { "description": "Contact form content", "placeholders": { @@ -772,7 +778,7 @@ "@refuse": { "description": "Button to decline the request of sending the anonymous analytics" }, - "knowledge_panel_text_source": "Go further on {source_name}", + "knowledge_panel_text_source": "Przejdź dalej na {source_name}", "@knowledge_panel_text_source": { "description": "Source field within a text knowledge panel.", "placeholders": { @@ -781,11 +787,11 @@ } } }, - "onboarding_reinventing_text1": "We invented\nthe collaborative\nscanning app in 2012", + "onboarding_reinventing_text1": "W 2012 roku\nstworzyliśmy aplikację\ndo wspólnego skanowania", "@onboarding_reinventing_text1": { "description": "Onboarding / Reinventing page: text 1/2. If possible, balanced on 3 lines." }, - "onboarding_reinventing_text2": "As we turn 10,\nwe're reinventing it\nfrom the ground up!", + "onboarding_reinventing_text2": "Po 10. latach działania\npostanowiliśmy zaprojektować\naplikację od zera!", "@onboarding_reinventing_text2": { "description": "Onboarding / Reinventing page: text 2/2. If possible, balanced on 3 lines." }, @@ -813,7 +819,7 @@ "@product_list_empty_message": { "description": "When the history list is empty, body of the message explaining to start scanning" }, - "product_list_reloading_in_progress_multiple": "Refreshing {count,plural, one {} =0{product} =1{product} other{products}} in your history", + "product_list_reloading_in_progress_multiple": "Odświeżanie {count,plural, one {} =0{produktu} =1{produktu} other{produktów}} w historii", "@product_list_reloading_in_progress_multiple": { "description": "Message to show while loading previous scanned items", "placeholders": { @@ -957,15 +963,15 @@ } } }, - "permission_photo_denied_button": "Allow", + "permission_photo_denied_button": "Zezwól", "@permission_photo_denied_button": { "description": "When the camera/photo permission is denied by user" }, - "permission_photo_denied_dialog_settings_title": "Permission denied", - "permission_photo_denied_dialog_settings_message": "As you've previously denied the camera permission, you must allow it manually from the Settings.", + "permission_photo_denied_dialog_settings_title": "Odmowa dostępu", + "permission_photo_denied_dialog_settings_message": "Ponieważ poprzednio odmówiono dostępu do aparatu, musisz zezwolić na to ręcznie w Ustawieniach.", "permission_photo_denied_dialog_settings_button_open": "Ustawienia", "permission_photo_denied_dialog_settings_button_cancel": "Anuluj", - "permission_photo_denied": "No camera access granted", + "permission_photo_denied": "Nie przyznano dostępu do aparatu", "@permission_photo_denied": { "description": "When the camera/photo permission is denied by user" }, @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Pochodzenie", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Hiszpania", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Kraj", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Czy chcesz zapisać zmiany przed opuszczeniem tej strony?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { @@ -1419,7 +1453,7 @@ "add_basic_details_product_name_error": "Wprowadź, proszę, nazwę produktu", "brand_name": "Nazwa marki", "add_basic_details_brand_name_error": "Wprowadź, proszę, nazwę marki", - "quantity": "Quantity and weight", + "quantity": "Ilość i waga", "barcode": "Kod kreskowy", "barcode_barcode": "Kod kreskowy: {barcode}", "@barcode_barcode": { @@ -1512,7 +1546,7 @@ "@choose from gallery": { "description": "Button label for choosing a photo from gallery" }, - "no_internet_connection": "No internet connection", + "no_internet_connection": "Brak połączenia z internetem", "@no_internet_connection": { "description": "Message when there is no internet connection" } diff --git a/packages/smooth_app/lib/l10n/app_pt.arb b/packages/smooth_app/lib/l10n/app_pt.arb index 1e14e3a70910..ad4ab8f24bb6 100644 --- a/packages/smooth_app/lib/l10n/app_pt.arb +++ b/packages/smooth_app/lib/l10n/app_pt.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "A tradução é uma das principais tarefas do projeto", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Toque aqui para responder a perguntas", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Falha ao salvar a embalagem.", "packaging_editing_image_error": "Falha ao obter uma nova imagem de embalagem.", "packaging_editing_title": "Editar embalagem", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origens", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Espanha", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "País", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Deseja salvar suas alterações antes de sair desta página?", "edit_product_form_item_ingredients_title": "Ingredientes e origens", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_qu.arb b/packages/smooth_app/lib/l10n/app_qu.arb index 0a7b91f46f5f..4aed961cf83c 100644 --- a/packages/smooth_app/lib/l10n/app_qu.arb +++ b/packages/smooth_app/lib/l10n/app_qu.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_rm.arb b/packages/smooth_app/lib/l10n/app_rm.arb index 0a7b91f46f5f..4aed961cf83c 100644 --- a/packages/smooth_app/lib/l10n/app_rm.arb +++ b/packages/smooth_app/lib/l10n/app_rm.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_ro.arb b/packages/smooth_app/lib/l10n/app_ro.arb index 59cfc9cbc55f..6b9a74cefd62 100644 --- a/packages/smooth_app/lib/l10n/app_ro.arb +++ b/packages/smooth_app/lib/l10n/app_ro.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Traducerile sunt una dintre sarcinile cheie ale proiectului", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Atingeți aici pentru a răspunde la întrebări", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origini", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spania", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Țară", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Doriți să salvați modificările înainte de a părăsi această pagină?", "edit_product_form_item_ingredients_title": "Ingrediente și Origini", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_ru.arb b/packages/smooth_app/lib/l10n/app_ru.arb index 5d9e170fcb51..6b62661516b7 100644 --- a/packages/smooth_app/lib/l10n/app_ru.arb +++ b/packages/smooth_app/lib/l10n/app_ru.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Переводы — одна из ключевых задач проекта", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Нажмите здесь, чтобы ответить на несколько вопросов", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Происхождение", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Страна", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ингредиенты и происхождение", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_sa.arb b/packages/smooth_app/lib/l10n/app_sa.arb index 0a7b91f46f5f..4aed961cf83c 100644 --- a/packages/smooth_app/lib/l10n/app_sa.arb +++ b/packages/smooth_app/lib/l10n/app_sa.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_sc.arb b/packages/smooth_app/lib/l10n/app_sc.arb index 0a7b91f46f5f..4aed961cf83c 100644 --- a/packages/smooth_app/lib/l10n/app_sc.arb +++ b/packages/smooth_app/lib/l10n/app_sc.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_sd.arb b/packages/smooth_app/lib/l10n/app_sd.arb index 0a7b91f46f5f..4aed961cf83c 100644 --- a/packages/smooth_app/lib/l10n/app_sd.arb +++ b/packages/smooth_app/lib/l10n/app_sd.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_sg.arb b/packages/smooth_app/lib/l10n/app_sg.arb index 0a7b91f46f5f..4aed961cf83c 100644 --- a/packages/smooth_app/lib/l10n/app_sg.arb +++ b/packages/smooth_app/lib/l10n/app_sg.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_si.arb b/packages/smooth_app/lib/l10n/app_si.arb index 062d5a0bc1d1..c18863ccbc01 100644 --- a/packages/smooth_app/lib/l10n/app_si.arb +++ b/packages/smooth_app/lib/l10n/app_si.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_sk.arb b/packages/smooth_app/lib/l10n/app_sk.arb index 36878b56ed4c..91b5f6015021 100644 --- a/packages/smooth_app/lib/l10n/app_sk.arb +++ b/packages/smooth_app/lib/l10n/app_sk.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Preklady sú jednou z kľúčových úloh projektu", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Klepnutím sem odpovedzte na otázky", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_sl.arb b/packages/smooth_app/lib/l10n/app_sl.arb index c6962be4ec85..0deb5170ac40 100644 --- a/packages/smooth_app/lib/l10n/app_sl.arb +++ b/packages/smooth_app/lib/l10n/app_sl.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Prevodi so ena ključnih nalog projekta", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Kliknite tukaj, da odgovorite na vprašanja", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Ni mogoče pridobiti slike nove embalaže.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Poreklo", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Želite shraniti spremembe pred odhodom?", "edit_product_form_item_ingredients_title": "Sestavine in poreklo", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_sn.arb b/packages/smooth_app/lib/l10n/app_sn.arb index 0a7b91f46f5f..4aed961cf83c 100644 --- a/packages/smooth_app/lib/l10n/app_sn.arb +++ b/packages/smooth_app/lib/l10n/app_sn.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_so.arb b/packages/smooth_app/lib/l10n/app_so.arb index 0a7b91f46f5f..4aed961cf83c 100644 --- a/packages/smooth_app/lib/l10n/app_so.arb +++ b/packages/smooth_app/lib/l10n/app_so.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_sq.arb b/packages/smooth_app/lib/l10n/app_sq.arb index f87fdce1e531..2ff2375759c2 100644 --- a/packages/smooth_app/lib/l10n/app_sq.arb +++ b/packages/smooth_app/lib/l10n/app_sq.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Perkthimet jane nje nga detyrat kyce te projektit.", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Trokisni ketu per t'ju pergjigjur pyetjeve.", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_sr.arb b/packages/smooth_app/lib/l10n/app_sr.arb index f64c0356cb91..f440b47247ce 100644 --- a/packages/smooth_app/lib/l10n/app_sr.arb +++ b/packages/smooth_app/lib/l10n/app_sr.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_ss.arb b/packages/smooth_app/lib/l10n/app_ss.arb index 0a7b91f46f5f..4aed961cf83c 100644 --- a/packages/smooth_app/lib/l10n/app_ss.arb +++ b/packages/smooth_app/lib/l10n/app_ss.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_st.arb b/packages/smooth_app/lib/l10n/app_st.arb index 0a7b91f46f5f..4aed961cf83c 100644 --- a/packages/smooth_app/lib/l10n/app_st.arb +++ b/packages/smooth_app/lib/l10n/app_st.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_sv.arb b/packages/smooth_app/lib/l10n/app_sv.arb index 169017217f4c..685a5eb66bf4 100644 --- a/packages/smooth_app/lib/l10n/app_sv.arb +++ b/packages/smooth_app/lib/l10n/app_sv.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Översättningar är ett av projektets viktigaste uppgifter", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tryck här för att svara på frågor", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Ursprung", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Land", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredienser & Ursprung", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_sw.arb b/packages/smooth_app/lib/l10n/app_sw.arb index f5dee5d1b4ec..710cbd747707 100644 --- a/packages/smooth_app/lib/l10n/app_sw.arb +++ b/packages/smooth_app/lib/l10n/app_sw.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_ta.arb b/packages/smooth_app/lib/l10n/app_ta.arb index 0a65de2a7e0e..830fa0f1e0ec 100644 --- a/packages/smooth_app/lib/l10n/app_ta.arb +++ b/packages/smooth_app/lib/l10n/app_ta.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_te.arb b/packages/smooth_app/lib/l10n/app_te.arb index 2cb0a1f71f7a..7489baf4fbcb 100644 --- a/packages/smooth_app/lib/l10n/app_te.arb +++ b/packages/smooth_app/lib/l10n/app_te.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_tg.arb b/packages/smooth_app/lib/l10n/app_tg.arb index 0a7b91f46f5f..4aed961cf83c 100644 --- a/packages/smooth_app/lib/l10n/app_tg.arb +++ b/packages/smooth_app/lib/l10n/app_tg.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_th.arb b/packages/smooth_app/lib/l10n/app_th.arb index d38519074ca0..74ec525be1a2 100644 --- a/packages/smooth_app/lib/l10n/app_th.arb +++ b/packages/smooth_app/lib/l10n/app_th.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "การแปลเป็นหนึ่งในงานหลักของโครงการ", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "แตะที่นี่เพื่อตอบคำถาม", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_ti.arb b/packages/smooth_app/lib/l10n/app_ti.arb index 3fd92f4b5fc6..55c8471a06e8 100644 --- a/packages/smooth_app/lib/l10n/app_ti.arb +++ b/packages/smooth_app/lib/l10n/app_ti.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_tl.arb b/packages/smooth_app/lib/l10n/app_tl.arb index 5a51cbc949e9..0c7480475195 100644 --- a/packages/smooth_app/lib/l10n/app_tl.arb +++ b/packages/smooth_app/lib/l10n/app_tl.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_tn.arb b/packages/smooth_app/lib/l10n/app_tn.arb index 4ab110423f81..6e43aac3ef46 100644 --- a/packages/smooth_app/lib/l10n/app_tn.arb +++ b/packages/smooth_app/lib/l10n/app_tn.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_tr.arb b/packages/smooth_app/lib/l10n/app_tr.arb index 0dbfe8cae76d..479e7e082ae4 100644 --- a/packages/smooth_app/lib/l10n/app_tr.arb +++ b/packages/smooth_app/lib/l10n/app_tr.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Çeviriler, projenin temel görevlerinden biridir", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Soruları yanıtlamak için buraya dokunun", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Kökenleri", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Ülke", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Sayfadan ayrılmadan önce değişiklikleri kaydetmek istiyor musunuz?", "edit_product_form_item_ingredients_title": "İçerikler ve kökenleri", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_ts.arb b/packages/smooth_app/lib/l10n/app_ts.arb index 4ab110423f81..6e43aac3ef46 100644 --- a/packages/smooth_app/lib/l10n/app_ts.arb +++ b/packages/smooth_app/lib/l10n/app_ts.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_tt.arb b/packages/smooth_app/lib/l10n/app_tt.arb index 32ae2e3e0848..2daf42beb07a 100644 --- a/packages/smooth_app/lib/l10n/app_tt.arb +++ b/packages/smooth_app/lib/l10n/app_tt.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_tw.arb b/packages/smooth_app/lib/l10n/app_tw.arb index 0a7b91f46f5f..4aed961cf83c 100644 --- a/packages/smooth_app/lib/l10n/app_tw.arb +++ b/packages/smooth_app/lib/l10n/app_tw.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_ty.arb b/packages/smooth_app/lib/l10n/app_ty.arb index 0a7b91f46f5f..4aed961cf83c 100644 --- a/packages/smooth_app/lib/l10n/app_ty.arb +++ b/packages/smooth_app/lib/l10n/app_ty.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_ug.arb b/packages/smooth_app/lib/l10n/app_ug.arb index 11bf785f9812..a18c1b76f124 100644 --- a/packages/smooth_app/lib/l10n/app_ug.arb +++ b/packages/smooth_app/lib/l10n/app_ug.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_uk.arb b/packages/smooth_app/lib/l10n/app_uk.arb index 35f69ff57bee..58bba347043f 100644 --- a/packages/smooth_app/lib/l10n/app_uk.arb +++ b/packages/smooth_app/lib/l10n/app_uk.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Переклади - одне з ключових завдань проекту", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Натисніть тут, що відповісти на запитання", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Місце вироблення", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Іспанія", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Країна", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_ur.arb b/packages/smooth_app/lib/l10n/app_ur.arb index 93fdb35c864e..bd6bc0f72d58 100644 --- a/packages/smooth_app/lib/l10n/app_ur.arb +++ b/packages/smooth_app/lib/l10n/app_ur.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_uz.arb b/packages/smooth_app/lib/l10n/app_uz.arb index 2031630d5464..deff512b6311 100644 --- a/packages/smooth_app/lib/l10n/app_uz.arb +++ b/packages/smooth_app/lib/l10n/app_uz.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_ve.arb b/packages/smooth_app/lib/l10n/app_ve.arb index 4ab110423f81..6e43aac3ef46 100644 --- a/packages/smooth_app/lib/l10n/app_ve.arb +++ b/packages/smooth_app/lib/l10n/app_ve.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_vi.arb b/packages/smooth_app/lib/l10n/app_vi.arb index f156993c13aa..628748de4bfd 100644 --- a/packages/smooth_app/lib/l10n/app_vi.arb +++ b/packages/smooth_app/lib/l10n/app_vi.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Phiên dịch là một trong những nhiệm vụ trọng tâm của dự án", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Nhấn vào đây để trả lời câu hỏi", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Lỗi lưu ảnh bao bì.", "packaging_editing_image_error": "Không thể lấy ảnh bao bì mới.", "packaging_editing_title": "Chỉnh sửa bao bì", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Nguồn gốc", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Tây Ban Nha", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Quốc gia", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Bạn có muốn lưu các thay đổi trước khi rời trang?", "edit_product_form_item_ingredients_title": "Thành phần & Nguồn gốc", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_wa.arb b/packages/smooth_app/lib/l10n/app_wa.arb index 0a7b91f46f5f..4aed961cf83c 100644 --- a/packages/smooth_app/lib/l10n/app_wa.arb +++ b/packages/smooth_app/lib/l10n/app_wa.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_wo.arb b/packages/smooth_app/lib/l10n/app_wo.arb index 4ab110423f81..6e43aac3ef46 100644 --- a/packages/smooth_app/lib/l10n/app_wo.arb +++ b/packages/smooth_app/lib/l10n/app_wo.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_xh.arb b/packages/smooth_app/lib/l10n/app_xh.arb index 0a7b91f46f5f..4aed961cf83c 100644 --- a/packages/smooth_app/lib/l10n/app_xh.arb +++ b/packages/smooth_app/lib/l10n/app_xh.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_yo.arb b/packages/smooth_app/lib/l10n/app_yo.arb index b8d34d5f505a..2d6d7355da19 100644 --- a/packages/smooth_app/lib/l10n/app_yo.arb +++ b/packages/smooth_app/lib/l10n/app_yo.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_zh.arb b/packages/smooth_app/lib/l10n/app_zh.arb index 7c783272097d..1d7663aaeaf7 100644 --- a/packages/smooth_app/lib/l10n/app_zh.arb +++ b/packages/smooth_app/lib/l10n/app_zh.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "原產地", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { diff --git a/packages/smooth_app/lib/l10n/app_zu.arb b/packages/smooth_app/lib/l10n/app_zu.arb index d9d9240aa581..2979a2f9a9b4 100644 --- a/packages/smooth_app/lib/l10n/app_zu.arb +++ b/packages/smooth_app/lib/l10n/app_zu.arb @@ -320,6 +320,12 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Translations is one of the key tasks of the project", "@contribute_translate_text_2": {}, + "contribute_share_header": "Share Open Food Facts with your friends", + "@contribute_share_header": {}, + "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "@contribute_share_content": { + "description": "Content that will be shared, don't forget to include the URL" + }, "tap_to_answer": "Tap here to answer questions", "@tap_to_answer": { "description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." @@ -422,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "", + "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1013,6 +1019,22 @@ "@edit_product_form_item_stores_hint": { "description": "Product edition - Stores - input textfield hint" }, + "edit_product_form_item_origins_title": "Origins", + "@edit_product_form_item_origins_title": { + "description": "Product edition - Origins - Title" + }, + "edit_product_form_item_origins_hint": "Spain", + "@edit_product_form_item_origins_hint": { + "description": "Product edition - Origins - input textfield hint" + }, + "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "@edit_product_form_item_origins_explainer_1": { + "description": "Product edition - Origins - input explainer, part 1" + }, + "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "@edit_product_form_item_origins_explainer_2": { + "description": "Product edition - Origins - input explainer, part 2" + }, "edit_product_form_item_countries_title": "Country", "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" @@ -1045,6 +1067,18 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, + "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "@edit_product_form_item_categories_explainer_1": { + "description": "Product edition - Categories - input explainer, part 1" + }, + "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "@edit_product_form_item_categories_explainer_2": { + "description": "Product edition - Categories - input explainer, part 2" + }, + "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "@edit_product_form_item_categories_explainer_3": { + "description": "Product edition - Categories - input explainer, part 3" + }, "edit_product_form_item_exit_confirmation": "Do you want to save your changes before leaving this page?", "edit_product_form_item_ingredients_title": "Ingredients & Origins", "@edit_product_form_item_ingredients_title": { From 6ad23aefb277061f8c7706a2afb1ec5b25bf0918 Mon Sep 17 00:00:00 2001 From: Edouard Marquez Date: Tue, 12 Jul 2022 11:09:40 +0200 Subject: [PATCH 16/51] fix: Ensure all text inputs have coherent cursors + heights (#2578) * Ensure all textformfields have a coherent cursors + heights * Fix: Don't request twice the DefaultTextStyle * Remove unused attr --- .../generic_lib/widgets/smooth_text_form_field.dart | 10 +++++++++- .../lib/pages/user_management/login_page.dart | 7 +++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/packages/smooth_app/lib/generic_lib/widgets/smooth_text_form_field.dart b/packages/smooth_app/lib/generic_lib/widgets/smooth_text_form_field.dart index 67ae4fb98237..1c87b3db6a08 100644 --- a/packages/smooth_app/lib/generic_lib/widgets/smooth_text_form_field.dart +++ b/packages/smooth_app/lib/generic_lib/widgets/smooth_text_form_field.dart @@ -20,6 +20,7 @@ class SmoothTextFormField extends StatefulWidget { this.prefixIcon, this.textInputType, this.onChanged, + this.onFieldSubmitted, this.autofocus, }); @@ -34,6 +35,7 @@ class SmoothTextFormField extends StatefulWidget { final double? hintTextFontSize; final TextInputType? textInputType; final void Function(String?)? onChanged; + final ValueChanged? onFieldSubmitted; final bool? autofocus; @override @@ -53,6 +55,9 @@ class _SmoothTextFormFieldState extends State { Widget build(BuildContext context) { final bool enableSuggestions = widget.type == TextFieldTypes.PLAIN_TEXT; final bool autocorrect = widget.type == TextFieldTypes.PLAIN_TEXT; + final TextStyle textStyle = DefaultTextStyle.of(context).style; + final double textSize = + widget.hintTextFontSize ?? textStyle.fontSize ?? 20.0; return TextFormField( keyboardType: widget.textInputType, @@ -77,11 +82,14 @@ class _SmoothTextFormFieldState extends State { } } }, + onFieldSubmitted: widget.onFieldSubmitted, + style: TextStyle(fontSize: textSize), + cursorHeight: textSize * (textStyle.height ?? 1.4), decoration: InputDecoration( prefixIcon: widget.prefixIcon, filled: true, hintStyle: TextStyle( - fontSize: widget.hintTextFontSize ?? 20.0, + fontSize: textSize, overflow: TextOverflow.ellipsis, ), hintText: widget.hintText, diff --git a/packages/smooth_app/lib/pages/user_management/login_page.dart b/packages/smooth_app/lib/pages/user_management/login_page.dart index 0639936690dc..53ab1da149e1 100644 --- a/packages/smooth_app/lib/pages/user_management/login_page.dart +++ b/packages/smooth_app/lib/pages/user_management/login_page.dart @@ -144,6 +144,7 @@ class _LoginPageState extends State with TraceableClientMixin { //Login SmoothTextFormField( type: TextFieldTypes.PLAIN_TEXT, + textInputType: TextInputType.name, controller: userIdController, hintText: appLocalizations.username_or_email, prefixIcon: const Icon(Icons.person), @@ -170,6 +171,7 @@ class _LoginPageState extends State with TraceableClientMixin { //Password SmoothTextFormField( type: TextFieldTypes.PASSWORD, + textInputType: TextInputType.text, controller: passwordController, hintText: appLocalizations.password, prefixIcon: const Icon(Icons.vpn_key), @@ -186,6 +188,11 @@ class _LoginPageState extends State with TraceableClientMixin { } return null; }, + onFieldSubmitted: (String value) { + if (value.isNotEmpty) { + _login(context); + } + }, ), const SizedBox( From 9ebe5c849c9967289e861c57ad9f7c45b58ad788 Mon Sep 17 00:00:00 2001 From: Edouard Marquez Date: Wed, 13 Jul 2022 14:58:02 +0200 Subject: [PATCH 17/51] feat: Remove a maximum of hardcoded sizes and move Padding to Directional ones (#2534) * Remove a maximum of hardcoded sizes and move Padding to Directional ones * Fix build issue Co-authored-by: Pierre Slamich --- .../lib/cards/data_cards/score_card.dart | 2 +- .../product_cards/product_title_card.dart | 2 +- .../smooth_product_card_error.dart | 6 ++-- .../smooth_product_card_found.dart | 18 ++++++---- .../smooth_product_card_not_found.dart | 2 +- .../dialogs/smooth_alert_dialog.dart | 14 +++++--- .../dialogs/smooth_category_picker.dart | 12 ++++--- .../lib/generic_lib/widgets/smooth_card.dart | 6 ++-- .../lib/helpers/attributes_card_helper.dart | 2 +- .../lib/helpers/product_cards_helper.dart | 6 ++-- .../knowledge_panel_expanded_card.dart | 2 +- .../knowledge_panel_group_card.dart | 2 +- .../knowledge_panel_product_cards.dart | 4 +-- .../knowledge_panel_table_card.dart | 16 ++++++--- .../knowledge_panel_title_card.dart | 6 ++-- .../knowledge_panel_world_map_card.dart | 2 +- .../common/tooltip_shape_border.dart | 11 +++--- .../onboarding/consent_analytics_page.dart | 6 ++-- .../knowledge_panel_page_template.dart | 7 +++- .../onboarding/onboarding_bottom_bar.dart | 2 +- .../pages/onboarding/preferences_page.dart | 14 ++++---- .../lib/pages/onboarding/scan_example.dart | 2 +- .../lib/pages/onboarding/welcome_page.dart | 2 +- .../lib/pages/personalized_ranking_page.dart | 8 +++-- .../user_preferences_contribute.dart | 3 +- .../preferences/user_preferences_page.dart | 9 +++-- .../preferences/user_preferences_widgets.dart | 16 ++++----- .../pages/product/add_basic_details_page.dart | 2 +- .../pages/product/add_new_product_page.dart | 10 +++--- .../lib/pages/product/autocomplete.dart | 5 +-- .../product/common/product_list_page.dart | 6 ++-- .../product/common/product_query_page.dart | 35 ++++++++++++------- .../product/confirm_and_upload_picture.dart | 2 +- .../pages/product/edit_ingredients_page.dart | 20 +++++++---- .../lib/pages/product/new_product_page.dart | 2 +- .../pages/product/nutrition_page_loaded.dart | 2 +- .../lib/pages/product/summary_card.dart | 10 +++--- .../smooth_app/lib/pages/question_page.dart | 8 ++--- .../lib/pages/scan/scan_flash_toggle.dart | 4 +-- .../smooth_app/lib/pages/scan/scan_page.dart | 4 +-- .../lib/pages/scan/scanner_overlay.dart | 2 +- .../lib/pages/scan/search_history_view.dart | 4 +-- .../lib/pages/scan/search_page.dart | 2 +- .../lib/pages/user_management/login_page.dart | 9 ++--- .../smooth_app/lib/themes/smooth_theme.dart | 3 +- .../group_query_filter_view.dart | 32 +++++++++-------- .../lib/widgets/smooth_product_carousel.dart | 10 +++--- 47 files changed, 213 insertions(+), 141 deletions(-) diff --git a/packages/smooth_app/lib/cards/data_cards/score_card.dart b/packages/smooth_app/lib/cards/data_cards/score_card.dart index a0bf5f256233..241cfc62b563 100644 --- a/packages/smooth_app/lib/cards/data_cards/score_card.dart +++ b/packages/smooth_app/lib/cards/data_cards/score_card.dart @@ -60,7 +60,7 @@ class ScoreCard extends StatelessWidget { Expanded( flex: 1, child: Padding( - padding: const EdgeInsets.only(right: 8.0), + padding: const EdgeInsetsDirectional.only(end: SMALL_SPACE), child: iconChip, ), ), diff --git a/packages/smooth_app/lib/cards/product_cards/product_title_card.dart b/packages/smooth_app/lib/cards/product_cards/product_title_card.dart index a27b8e30de4a..ab45e639bedd 100644 --- a/packages/smooth_app/lib/cards/product_cards/product_title_card.dart +++ b/packages/smooth_app/lib/cards/product_cards/product_title_card.dart @@ -47,7 +47,7 @@ class ProductTitleCard extends StatelessWidget { ).selectable(isSelectable: isSelectable); } return Align( - alignment: Alignment.topLeft, + alignment: AlignmentDirectional.topStart, child: InkWell( onTap: (getProductName(product, appLocalizations) == appLocalizations.unknownProductName) diff --git a/packages/smooth_app/lib/cards/product_cards/smooth_product_card_error.dart b/packages/smooth_app/lib/cards/product_cards/smooth_product_card_error.dart index 49603dd36235..16d06b876da5 100644 --- a/packages/smooth_app/lib/cards/product_cards/smooth_product_card_error.dart +++ b/packages/smooth_app/lib/cards/product_cards/smooth_product_card_error.dart @@ -33,7 +33,7 @@ class SmoothProductCardError extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.center, children: [ Padding( - padding: const EdgeInsets.all(8.0), + padding: const EdgeInsets.all(SMALL_SPACE), child: SvgPicture.asset( 'assets/misc/error.svg', width: MINIMUM_TOUCH_SIZE * 2, @@ -47,7 +47,7 @@ class SmoothProductCardError extends StatelessWidget { ], ), const SizedBox( - height: 12.0, + height: MEDIUM_SPACE, ), ProductDialogHelper.getErrorMessage( _getErrorMessage( @@ -56,7 +56,7 @@ class SmoothProductCardError extends StatelessWidget { ), ), const SizedBox( - height: 12.0, + height: MEDIUM_SPACE, ), ElevatedButton( onPressed: () async { diff --git a/packages/smooth_app/lib/cards/product_cards/smooth_product_card_found.dart b/packages/smooth_app/lib/cards/product_cards/smooth_product_card_found.dart index 05b014f6c78f..e5b909168a3b 100644 --- a/packages/smooth_app/lib/cards/product_cards/smooth_product_card_found.dart +++ b/packages/smooth_app/lib/cards/product_cards/smooth_product_card_found.dart @@ -92,7 +92,9 @@ class SmoothProductCardFound extends StatelessWidget { width: screenSize.width * 0.20, height: screenSize.width * 0.20, ), - const Padding(padding: EdgeInsets.only(left: VERY_SMALL_SPACE)), + const Padding( + padding: + EdgeInsetsDirectional.only(start: VERY_SMALL_SPACE)), Expanded( child: SizedBox( height: screenSize.width * 0.2, @@ -118,8 +120,9 @@ class SmoothProductCardFound extends StatelessWidget { color: helper.getButtonColor(isDarkMode), ), const Padding( - padding: - EdgeInsets.only(left: VERY_SMALL_SPACE)), + padding: EdgeInsetsDirectional.only( + start: VERY_SMALL_SPACE), + ), Expanded( child: FittedBox( fit: BoxFit.scaleDown, @@ -127,8 +130,9 @@ class SmoothProductCardFound extends StatelessWidget { child: Text( helper.getSubtitle(appLocalizations), style: themeData.textTheme.bodyText2!.apply( - color: helper.getButtonForegroundColor( - isDarkMode)), + color: helper + .getButtonForegroundColor(isDarkMode), + ), ), ), ), @@ -138,7 +142,9 @@ class SmoothProductCardFound extends StatelessWidget { ), ), ), - const Padding(padding: EdgeInsets.only(left: VERY_SMALL_SPACE)), + const Padding( + padding: EdgeInsetsDirectional.only(start: VERY_SMALL_SPACE), + ), Padding( padding: const EdgeInsets.all(VERY_SMALL_SPACE), child: Column( diff --git a/packages/smooth_app/lib/cards/product_cards/smooth_product_card_not_found.dart b/packages/smooth_app/lib/cards/product_cards/smooth_product_card_not_found.dart index c2d216d935fa..41e1e2bb22c3 100644 --- a/packages/smooth_app/lib/cards/product_cards/smooth_product_card_not_found.dart +++ b/packages/smooth_app/lib/cards/product_cards/smooth_product_card_not_found.dart @@ -53,7 +53,7 @@ class SmoothProductCardNotFound extends StatelessWidget { style: Theme.of(context).textTheme.bodyText2, ), Padding( - padding: const EdgeInsets.only(top: LARGE_SPACE), + padding: const EdgeInsetsDirectional.only(top: LARGE_SPACE), child: SmoothLargeButtonWithIcon( text: appLocalizations.add_product_information_button_label, icon: Icons.add, diff --git a/packages/smooth_app/lib/generic_lib/dialogs/smooth_alert_dialog.dart b/packages/smooth_app/lib/generic_lib/dialogs/smooth_alert_dialog.dart index 88a904e8989b..2c16c41b9ae3 100644 --- a/packages/smooth_app/lib/generic_lib/dialogs/smooth_alert_dialog.dart +++ b/packages/smooth_app/lib/generic_lib/dialogs/smooth_alert_dialog.dart @@ -30,8 +30,12 @@ class SmoothAlertDialog extends StatelessWidget { final SmoothActionButton? positiveAction; final SmoothActionButton? negativeAction; - static const EdgeInsets _contentPadding = - EdgeInsets.fromLTRB(24.0, 20.0, 24.0, 24.0); + static const EdgeInsets _contentPadding = EdgeInsets.only( + left: 24.0, + top: VERY_LARGE_SPACE, + right: 24.0, + bottom: 24.0, + ); @override Widget build(BuildContext context) { @@ -57,7 +61,7 @@ class SmoothAlertDialog extends StatelessWidget { return Padding( padding: EdgeInsetsDirectional.only( top: _contentPadding.bottom, - start: 8.0, + start: SMALL_SPACE, ), child: SmoothActionButtonsBar( positiveAction: positiveAction, @@ -262,7 +266,9 @@ class _SmoothActionFlatButton extends StatelessWidget { ), ), child: SizedBox( - height: buttonData.lines != null ? 20.0 * buttonData.lines! : null, + height: buttonData.lines != null + ? VERY_LARGE_SPACE * buttonData.lines! + : null, child: FittedBox( child: Text( buttonData.text.toUpperCase(), diff --git a/packages/smooth_app/lib/generic_lib/dialogs/smooth_category_picker.dart b/packages/smooth_app/lib/generic_lib/dialogs/smooth_category_picker.dart index feae28c58577..c47021ec9d4c 100644 --- a/packages/smooth_app/lib/generic_lib/dialogs/smooth_category_picker.dart +++ b/packages/smooth_app/lib/generic_lib/dialogs/smooth_category_picker.dart @@ -7,6 +7,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:openfoodfacts/openfoodfacts.dart'; import 'package:openfoodfacts/utils/LanguageHelper.dart'; +import 'package:smooth_app/generic_lib/design_constants.dart'; import 'package:smooth_app/generic_lib/duration_constants.dart'; import 'package:smooth_app/widgets/smooth_scaffold.dart'; @@ -142,7 +143,7 @@ class _SmoothCategoryPickerState> crossAxisAlignment: CrossAxisAlignment.start, children: [ Padding( - padding: const EdgeInsets.all(8.0), + padding: const EdgeInsets.all(SMALL_SPACE), child: SmoothCategoryDisplay( categories: widget.currentCategories, onDeleted: (T item) { @@ -155,7 +156,8 @@ class _SmoothCategoryPickerState> Row( children: [ IconButton( - padding: const EdgeInsets.symmetric(horizontal: 16.0), + padding: + const EdgeInsets.symmetric(horizontal: LARGE_SPACE), icon: const Icon(Icons.chevron_left), onPressed: category.value != widget.currentPath.first ? () { @@ -424,7 +426,7 @@ class _CategoryItem> extends StatelessWidget { @override Widget build(BuildContext context) { return Padding( - padding: const EdgeInsetsDirectional.only(start: 8.0), + padding: const EdgeInsetsDirectional.only(start: SMALL_SPACE), child: FutureBuilder( future: category.hasChildren, builder: (BuildContext context, AsyncSnapshot snapshot) { @@ -562,8 +564,8 @@ class _SmoothCategoryDisplayState combinedCategories.sort(); return Wrap( alignment: WrapAlignment.start, - spacing: 8.0, - runSpacing: 4.0, + spacing: SMALL_SPACE, + runSpacing: VERY_SMALL_SPACE, children: [ for (final T category in combinedCategories) AnimatedInputChip( diff --git a/packages/smooth_app/lib/generic_lib/widgets/smooth_card.dart b/packages/smooth_app/lib/generic_lib/widgets/smooth_card.dart index 4f7d3b0290f1..d7928bbdf676 100644 --- a/packages/smooth_app/lib/generic_lib/widgets/smooth_card.dart +++ b/packages/smooth_app/lib/generic_lib/widgets/smooth_card.dart @@ -35,9 +35,9 @@ class SmoothCard extends StatelessWidget { const SmoothCard.flat({ required this.child, this.color, - this.margin = const EdgeInsets.only( - right: SMALL_SPACE, - left: SMALL_SPACE, + this.margin = const EdgeInsetsDirectional.only( + start: SMALL_SPACE, + end: SMALL_SPACE, top: VERY_SMALL_SPACE, bottom: VERY_SMALL_SPACE, ), diff --git a/packages/smooth_app/lib/helpers/attributes_card_helper.dart b/packages/smooth_app/lib/helpers/attributes_card_helper.dart index c84a3f9b461e..ace2a1fa65e3 100644 --- a/packages/smooth_app/lib/helpers/attributes_card_helper.dart +++ b/packages/smooth_app/lib/helpers/attributes_card_helper.dart @@ -14,7 +14,7 @@ enum AttributeEvaluation { } Widget getAttributeDisplayIcon(final Attribute attribute) => Padding( - padding: const EdgeInsets.only(right: VERY_SMALL_SPACE), + padding: const EdgeInsetsDirectional.only(end: VERY_SMALL_SPACE), child: _attributeMatchComparison( attribute, const Icon(CupertinoIcons.question, color: RED_COLOR), diff --git a/packages/smooth_app/lib/helpers/product_cards_helper.dart b/packages/smooth_app/lib/helpers/product_cards_helper.dart index ddd5f33dbe82..ad244d713d5d 100644 --- a/packages/smooth_app/lib/helpers/product_cards_helper.dart +++ b/packages/smooth_app/lib/helpers/product_cards_helper.dart @@ -10,8 +10,10 @@ String getProductName(Product product, AppLocalizations appLocalizations) => product.productName ?? appLocalizations.unknownProductName; /// Padding to be used while building the SmoothCard on any Product card. -const EdgeInsets SMOOTH_CARD_PADDING = - EdgeInsets.symmetric(horizontal: 12.0, vertical: 4.0); +const EdgeInsets SMOOTH_CARD_PADDING = EdgeInsets.symmetric( + horizontal: MEDIUM_SPACE, + vertical: VERY_SMALL_SPACE, +); /// A SmoothCard on Product cards using default margin and padding. Widget buildProductSmoothCard({ diff --git a/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_expanded_card.dart b/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_expanded_card.dart index a4e778cdba5f..02cf616f2735 100644 --- a/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_expanded_card.dart +++ b/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_expanded_card.dart @@ -26,7 +26,7 @@ class KnowledgePanelExpandedCard extends StatelessWidget { in panel.elements ?? []) { elementWidgets.add( Padding( - padding: const EdgeInsets.only(top: VERY_SMALL_SPACE), + padding: const EdgeInsetsDirectional.only(top: VERY_SMALL_SPACE), child: KnowledgePanelElementCard( knowledgePanelElement: element, allPanels: allPanels, diff --git a/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_group_card.dart b/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_group_card.dart index a4e13626f62e..9e75ee8a6871 100644 --- a/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_group_card.dart +++ b/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_group_card.dart @@ -28,7 +28,7 @@ class KnowledgePanelGroupCard extends StatelessWidget { children: [ if (groupElement.title.isNotEmpty) Padding( - padding: const EdgeInsets.only(top: LARGE_SPACE), + padding: const EdgeInsetsDirectional.only(top: LARGE_SPACE), child: Text( groupElement.title, style: themeData.textTheme.subtitle2!.apply(color: Colors.grey), diff --git a/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_product_cards.dart b/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_product_cards.dart index 2a86cf68cf6c..4510ecb33ad3 100644 --- a/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_product_cards.dart +++ b/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_product_cards.dart @@ -13,7 +13,7 @@ class KnowledgePanelProductCards extends StatelessWidget { for (final Widget widget in knowledgePanelWidgets) { widgetsWrappedInSmoothCards.add( Padding( - padding: const EdgeInsets.only(top: VERY_LARGE_SPACE), + padding: const EdgeInsetsDirectional.only(top: VERY_LARGE_SPACE), child: buildProductSmoothCard( body: widget, padding: SMOOTH_CARD_PADDING, @@ -23,7 +23,7 @@ class KnowledgePanelProductCards extends StatelessWidget { } return Center( child: Padding( - padding: const EdgeInsets.only(bottom: SMALL_SPACE), + padding: const EdgeInsetsDirectional.only(bottom: SMALL_SPACE), child: Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, diff --git a/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_table_card.dart b/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_table_card.dart index 9c55aeb86913..298e876d4190 100644 --- a/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_table_card.dart +++ b/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_table_card.dart @@ -50,6 +50,7 @@ class TableCell { final String text; final Color? color; final bool isHeader; + // [columnGroup] is set only for cells that have [isHeader = true]. This is used // to show a dropdown of other column headers in the group for this column. final ColumnGroup? columnGroup; @@ -265,7 +266,8 @@ class _TableCellWidgetState extends State { @override Widget build(BuildContext context) { - EdgeInsets padding = const EdgeInsets.only(bottom: VERY_SMALL_SPACE); + EdgeInsetsGeometry padding = + const EdgeInsetsDirectional.only(bottom: VERY_SMALL_SPACE); // header cells get a bigger vertical padding. if (widget.cell.isHeader) { padding = const EdgeInsets.symmetric(vertical: SMALL_SPACE); @@ -283,8 +285,11 @@ class _TableCellWidgetState extends State { return _buildDropDownColumnHeader(padding, style); } - Widget _buildHtmlCell(EdgeInsets padding, TextStyle style, - {required bool isSelectable}) { + Widget _buildHtmlCell( + EdgeInsetsGeometry padding, + TextStyle style, { + required bool isSelectable, + }) { String cellText = widget.cell.text; if (!_isExpanded) { const String htmlStyle = ''' @@ -312,7 +317,10 @@ class _TableCellWidgetState extends State { ); } - Widget _buildDropDownColumnHeader(EdgeInsets padding, TextStyle style) { + Widget _buildDropDownColumnHeader( + EdgeInsetsGeometry padding, + TextStyle style, + ) { // Now we finally render [ColumnGroup]s as drop down menus. return Padding( padding: padding, diff --git a/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_title_card.dart b/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_title_card.dart index bb24297c8700..94a606aec543 100644 --- a/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_title_card.dart +++ b/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_title_card.dart @@ -42,13 +42,15 @@ class KnowledgePanelTitleCard extends StatelessWidget { ), ), ), - const Padding(padding: EdgeInsets.only(left: SMALL_SPACE)), + const Padding( + padding: EdgeInsetsDirectional.only(start: SMALL_SPACE), + ), ]; } else { iconWidget = []; } return Padding( - padding: const EdgeInsets.only( + padding: const EdgeInsetsDirectional.only( top: VERY_SMALL_SPACE, bottom: VERY_SMALL_SPACE, ), diff --git a/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_world_map_card.dart b/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_world_map_card.dart index 431d304cd3d5..129f3eb3605a 100644 --- a/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_world_map_card.dart +++ b/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_world_map_card.dart @@ -17,7 +17,7 @@ class KnowledgePanelWorldMapCard extends StatelessWidget { // TODO(monsieurtanuki): Zoom the map to show all [mapElement.pointers] // TODO(monsieurtanuki): Add a OSM copyright. return Padding( - padding: const EdgeInsets.only(bottom: MEDIUM_SPACE), + padding: const EdgeInsetsDirectional.only(bottom: MEDIUM_SPACE), child: SizedBox( height: 200, child: FlutterMap( diff --git a/packages/smooth_app/lib/pages/onboarding/common/tooltip_shape_border.dart b/packages/smooth_app/lib/pages/onboarding/common/tooltip_shape_border.dart index ba8875544f51..100e689d9c3f 100644 --- a/packages/smooth_app/lib/pages/onboarding/common/tooltip_shape_border.dart +++ b/packages/smooth_app/lib/pages/onboarding/common/tooltip_shape_border.dart @@ -1,10 +1,11 @@ -import 'package:flutter/cupertino.dart'; +import 'package:flutter/widgets.dart'; +import 'package:smooth_app/generic_lib/design_constants.dart'; class TooltipShapeBorder extends ShapeBorder { const TooltipShapeBorder({ this.radius = 10.0, - this.arrowWidth = 20.0, - this.arrowHeight = 20.0, + this.arrowWidth = VERY_LARGE_SPACE, + this.arrowHeight = VERY_LARGE_SPACE, this.arrowArc = 0.0, }) : assert(arrowArc <= 1.0 && arrowArc >= 0.0); final double arrowWidth; @@ -13,7 +14,9 @@ class TooltipShapeBorder extends ShapeBorder { final double radius; @override - EdgeInsetsGeometry get dimensions => EdgeInsets.only(top: arrowHeight); + EdgeInsetsGeometry get dimensions => EdgeInsetsDirectional.only( + top: arrowHeight, + ); @override Path getOuterPath(Rect rect, {TextDirection? textDirection}) { diff --git a/packages/smooth_app/lib/pages/onboarding/consent_analytics_page.dart b/packages/smooth_app/lib/pages/onboarding/consent_analytics_page.dart index 428266ddcf02..1707717fcc3d 100644 --- a/packages/smooth_app/lib/pages/onboarding/consent_analytics_page.dart +++ b/packages/smooth_app/lib/pages/onboarding/consent_analytics_page.dart @@ -39,7 +39,7 @@ class ConsentAnalytics extends StatelessWidget { width: screenSize.width * .50, ), Padding( - padding: const EdgeInsets.only(top: SMALL_SPACE), + padding: const EdgeInsetsDirectional.only(top: SMALL_SPACE), child: AutoSizeText( appLocalizations.consent_analytics_title, maxLines: 2, @@ -51,7 +51,7 @@ class ConsentAnalytics extends StatelessWidget { ), ), Padding( - padding: const EdgeInsets.only(top: SMALL_SPACE), + padding: const EdgeInsetsDirectional.only(top: SMALL_SPACE), child: AutoSizeText( appLocalizations.consent_analytics_body1, maxLines: 3, @@ -59,7 +59,7 @@ class ConsentAnalytics extends StatelessWidget { ), ), Padding( - padding: const EdgeInsets.only(top: SMALL_SPACE), + padding: const EdgeInsetsDirectional.only(top: SMALL_SPACE), child: AutoSizeText( appLocalizations.consent_analytics_body2, maxLines: 3, diff --git a/packages/smooth_app/lib/pages/onboarding/knowledge_panel_page_template.dart b/packages/smooth_app/lib/pages/onboarding/knowledge_panel_page_template.dart index fe1720d463cb..6e7472b9c4e9 100644 --- a/packages/smooth_app/lib/pages/onboarding/knowledge_panel_page_template.dart +++ b/packages/smooth_app/lib/pages/onboarding/knowledge_panel_page_template.dart @@ -136,7 +136,12 @@ class _KnowledgePanelPageTemplateState color: Theme.of(context).hintColor.withOpacity(0.9), shape: const TooltipShapeBorder(arrowArc: 0.5), child: Container( - margin: const EdgeInsets.fromLTRB(20, 10, 20, 10), + margin: const EdgeInsetsDirectional.only( + start: VERY_LARGE_SPACE, + top: 10, + end: VERY_LARGE_SPACE, + bottom: 10, + ), child: Text( appLocalizations.hint_knowledge_panel_message, style: TextStyle(color: Theme.of(context).cardColor), diff --git a/packages/smooth_app/lib/pages/onboarding/onboarding_bottom_bar.dart b/packages/smooth_app/lib/pages/onboarding/onboarding_bottom_bar.dart index 0c6204779c5b..43ba06240faa 100644 --- a/packages/smooth_app/lib/pages/onboarding/onboarding_bottom_bar.dart +++ b/packages/smooth_app/lib/pages/onboarding/onboarding_bottom_bar.dart @@ -107,7 +107,7 @@ class OnboardingBottomIcon extends StatelessWidget { Widget build(BuildContext context) => ElevatedButton( style: ElevatedButton.styleFrom( shape: const CircleBorder(), - padding: const EdgeInsets.all(12), + padding: const EdgeInsets.all(MEDIUM_SPACE), primary: backgroundColor, onPrimary: foregroundColor, ), diff --git a/packages/smooth_app/lib/pages/onboarding/preferences_page.dart b/packages/smooth_app/lib/pages/onboarding/preferences_page.dart index 61e2c70637a9..7c3f503a75aa 100644 --- a/packages/smooth_app/lib/pages/onboarding/preferences_page.dart +++ b/packages/smooth_app/lib/pages/onboarding/preferences_page.dart @@ -84,10 +84,10 @@ class _HelperState extends State<_Helper> { height: MediaQuery.of(context).size.height * .25, ), Padding( - padding: const EdgeInsets.only( - right: LARGE_SPACE, - left: LARGE_SPACE, + padding: const EdgeInsetsDirectional.only( bottom: LARGE_SPACE, + start: LARGE_SPACE, + end: LARGE_SPACE, ), child: Text( appLocalizations.productDataUtility, @@ -96,10 +96,10 @@ class _HelperState extends State<_Helper> { ), Container( height: _isProductExpanded ? null : 180, - padding: const EdgeInsets.only( + padding: const EdgeInsetsDirectional.only( bottom: LARGE_SPACE, - right: LARGE_SPACE, - left: LARGE_SPACE, + start: LARGE_SPACE, + end: LARGE_SPACE, ), child: GestureDetector( onTap: () => _expandProductCard(), @@ -133,7 +133,7 @@ class _HelperState extends State<_Helper> { Flexible( flex: 1, child: ListView.builder( - padding: const EdgeInsets.only(top: LARGE_SPACE), + padding: const EdgeInsetsDirectional.only(top: LARGE_SPACE), itemCount: pageData.length, itemBuilder: (BuildContext context, int position) => pageData[position], diff --git a/packages/smooth_app/lib/pages/onboarding/scan_example.dart b/packages/smooth_app/lib/pages/onboarding/scan_example.dart index b0de17d14f1d..fe759c8aed6e 100644 --- a/packages/smooth_app/lib/pages/onboarding/scan_example.dart +++ b/packages/smooth_app/lib/pages/onboarding/scan_example.dart @@ -34,7 +34,7 @@ class ScanExample extends StatelessWidget { height: screenSize.height * .50, ), Padding( - padding: const EdgeInsets.only(top: SMALL_SPACE), + padding: const EdgeInsetsDirectional.only(top: SMALL_SPACE), child: SizedBox( height: screenSize.height * .15, child: AutoSizeText( diff --git a/packages/smooth_app/lib/pages/onboarding/welcome_page.dart b/packages/smooth_app/lib/pages/onboarding/welcome_page.dart index e12c333b480e..d70f8af26083 100644 --- a/packages/smooth_app/lib/pages/onboarding/welcome_page.dart +++ b/packages/smooth_app/lib/pages/onboarding/welcome_page.dart @@ -43,7 +43,7 @@ class WelcomePage extends StatelessWidget { height: screenSize.height * .20, ), Padding( - padding: const EdgeInsets.only(top: SMALL_SPACE), + padding: const EdgeInsetsDirectional.only(top: SMALL_SPACE), child: SizedBox( height: screenSize.height * .15, child: AutoSizeText( diff --git a/packages/smooth_app/lib/pages/personalized_ranking_page.dart b/packages/smooth_app/lib/pages/personalized_ranking_page.dart index f2eca7b4b53f..28ce219b5885 100644 --- a/packages/smooth_app/lib/pages/personalized_ranking_page.dart +++ b/packages/smooth_app/lib/pages/personalized_ranking_page.dart @@ -129,7 +129,7 @@ class _PersonalizedRankingPageState extends State alignment: Alignment.centerRight, margin: const EdgeInsets.symmetric(vertical: 14), color: RED_COLOR, - padding: const EdgeInsets.only(right: 30), + padding: const EdgeInsetsDirectional.only(end: 30), child: const Icon( Icons.delete, color: Colors.white, @@ -153,7 +153,10 @@ class _PersonalizedRankingPageState extends State ); }, child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 12.0, vertical: 8.0), + padding: const EdgeInsets.symmetric( + horizontal: MEDIUM_SPACE, + vertical: SMALL_SPACE, + ), child: SmoothProductCardFound( heroTag: matchedProduct.product.barcode!, product: matchedProduct.product, @@ -168,6 +171,7 @@ class _PersonalizedRankingPageState extends State /// Virtual item in the list: either a product or a status header class _VirtualItem { const _VirtualItem.product(this.product) : status = null; + const _VirtualItem.status(this.status) : product = null; final MatchedProductV2? product; final MatchedProductStatusV2? status; diff --git a/packages/smooth_app/lib/pages/preferences/user_preferences_contribute.dart b/packages/smooth_app/lib/pages/preferences/user_preferences_contribute.dart index f221f4f36c74..feddf3be0aec 100644 --- a/packages/smooth_app/lib/pages/preferences/user_preferences_contribute.dart +++ b/packages/smooth_app/lib/pages/preferences/user_preferences_contribute.dart @@ -7,6 +7,7 @@ import 'package:provider/provider.dart'; import 'package:share_plus/share_plus.dart'; import 'package:smooth_app/data_models/github_contributors_model.dart'; import 'package:smooth_app/data_models/user_preferences.dart'; +import 'package:smooth_app/generic_lib/design_constants.dart'; import 'package:smooth_app/generic_lib/dialogs/smooth_alert_dialog.dart'; import 'package:smooth_app/helpers/launch_url_helper.dart'; import 'package:smooth_app/pages/preferences/abstract_user_preferences.dart'; @@ -130,7 +131,7 @@ class UserPreferencesContribute extends AbstractUserPreferences { body: Column( children: [ Text(appLocalizations.contribute_develop_text), - const SizedBox(height: 20), + const SizedBox(height: VERY_LARGE_SPACE), Text(appLocalizations.contribute_develop_text_2), const SizedBox(height: 10), Row( diff --git a/packages/smooth_app/lib/pages/preferences/user_preferences_page.dart b/packages/smooth_app/lib/pages/preferences/user_preferences_page.dart index a84dfffbce4e..dbff172c7ab1 100644 --- a/packages/smooth_app/lib/pages/preferences/user_preferences_page.dart +++ b/packages/smooth_app/lib/pages/preferences/user_preferences_page.dart @@ -100,7 +100,9 @@ class _UserPreferencesPageState extends State headerColor = abstractUserPreferences.getHeaderColor(); } - const EdgeInsets padding = EdgeInsets.only(top: MEDIUM_SPACE); + const EdgeInsetsGeometry padding = EdgeInsetsDirectional.only( + top: MEDIUM_SPACE, + ); final ListView list; if (addDividers) { list = ListView.separated( @@ -153,8 +155,9 @@ class _UserPreferencesPageState extends State style: TextStyle(color: foregroundColor), ), background: Padding( - padding: - const EdgeInsets.only(bottom: titleHeightInExpandedMode), + padding: const EdgeInsetsDirectional.only( + bottom: titleHeightInExpandedMode, + ), child: SvgPicture.asset( headerAsset, height: backgroundHeight, diff --git a/packages/smooth_app/lib/pages/preferences/user_preferences_widgets.dart b/packages/smooth_app/lib/pages/preferences/user_preferences_widgets.dart index 3d8c18ef2d24..94f04d4548c1 100644 --- a/packages/smooth_app/lib/pages/preferences/user_preferences_widgets.dart +++ b/packages/smooth_app/lib/pages/preferences/user_preferences_widgets.dart @@ -77,14 +77,14 @@ class UserPreferencesSwitchItem extends StatelessWidget { Widget build(BuildContext context) { return SwitchListTile.adaptive( title: Padding( - padding: const EdgeInsets.only( + padding: const EdgeInsetsDirectional.only( top: SMALL_SPACE, bottom: SMALL_SPACE, ), child: Text(title, style: Theme.of(context).textTheme.headline4), ), subtitle: Padding( - padding: const EdgeInsets.only( + padding: const EdgeInsetsDirectional.only( bottom: SMALL_SPACE, ), child: Text( @@ -137,14 +137,14 @@ class UserPreferencesMultipleChoicesItem extends StatelessWidget { Widget build(BuildContext context) { return ListTile( title: Padding( - padding: const EdgeInsets.only( + padding: const EdgeInsetsDirectional.only( top: SMALL_SPACE, bottom: SMALL_SPACE, ), child: Text(title, style: Theme.of(context).textTheme.headline4), ), subtitle: Padding( - padding: const EdgeInsets.only( + padding: const EdgeInsetsDirectional.only( bottom: SMALL_SPACE, ), child: Text( @@ -184,7 +184,7 @@ class UserPreferencesMultipleChoicesItem extends StatelessWidget { ? Text(descriptions!.elementAt(position)) : null, contentPadding: const EdgeInsets.symmetric( - horizontal: 16.0, + horizontal: LARGE_SPACE, vertical: 5.0, ), onTap: () { @@ -224,12 +224,12 @@ class UserPreferencesTitle extends StatelessWidget { return SizedBox( width: double.infinity, child: Padding( - padding: const EdgeInsets.only( + padding: const EdgeInsetsDirectional.only( top: SMALL_SPACE, bottom: MEDIUM_SPACE, // Horizontal = same as ListTile - left: 16.0, - right: 16.0, + start: LARGE_SPACE, + end: LARGE_SPACE, ), child: Text( label, diff --git a/packages/smooth_app/lib/pages/product/add_basic_details_page.dart b/packages/smooth_app/lib/pages/product/add_basic_details_page.dart index 47d1a2a10bdb..1aa6bda75b70 100644 --- a/packages/smooth_app/lib/pages/product/add_basic_details_page.dart +++ b/packages/smooth_app/lib/pages/product/add_basic_details_page.dart @@ -55,7 +55,7 @@ class _AddBasicDetailsPageState extends State { child: ListView( children: [ Align( - alignment: Alignment.topLeft, + alignment: AlignmentDirectional.topStart, child: ProductImageCarousel( _product, height: size.height * 0.20, diff --git a/packages/smooth_app/lib/pages/product/add_new_product_page.dart b/packages/smooth_app/lib/pages/product/add_new_product_page.dart index af458878711c..7a0e7f115a2b 100644 --- a/packages/smooth_app/lib/pages/product/add_new_product_page.dart +++ b/packages/smooth_app/lib/pages/product/add_new_product_page.dart @@ -14,7 +14,9 @@ import 'package:smooth_app/pages/product/nutrition_page_loaded.dart'; import 'package:smooth_app/pages/product/ordered_nutrients_cache.dart'; import 'package:smooth_app/widgets/smooth_scaffold.dart'; -const EdgeInsets _ROW_PADDING_TOP = EdgeInsets.only(top: VERY_LARGE_SPACE); +const EdgeInsetsGeometry _ROW_PADDING_TOP = EdgeInsetsDirectional.only( + top: VERY_LARGE_SPACE, +); // Buttons to add images will appear in this order. const List _SORTED_IMAGE_FIELD_LIST = [ @@ -51,10 +53,10 @@ class _AddNewProductPageState extends State { title: Text(appLocalizations.new_product), automaticallyImplyLeading: !_isProductLoaded), body: Padding( - padding: const EdgeInsets.only( + padding: const EdgeInsetsDirectional.only( top: VERY_LARGE_SPACE, - left: VERY_LARGE_SPACE, - right: VERY_LARGE_SPACE, + start: VERY_LARGE_SPACE, + end: VERY_LARGE_SPACE, ), child: Stack( children: [ diff --git a/packages/smooth_app/lib/pages/product/autocomplete.dart b/packages/smooth_app/lib/pages/product/autocomplete.dart index 35640fcc5de6..850286db9e5c 100644 --- a/packages/smooth_app/lib/pages/product/autocomplete.dart +++ b/packages/smooth_app/lib/pages/product/autocomplete.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter/scheduler.dart'; +import 'package:smooth_app/generic_lib/design_constants.dart'; /// The default Material-style Autocomplete options. /// @@ -25,7 +26,7 @@ class AutocompleteOptions extends StatelessWidget { @override Widget build(BuildContext context) { return Align( - alignment: Alignment.topLeft, + alignment: AlignmentDirectional.topStart, child: Material( elevation: 4.0, child: ConstrainedBox( @@ -51,7 +52,7 @@ class AutocompleteOptions extends StatelessWidget { } return Container( color: highlight ? Theme.of(context).focusColor : null, - padding: const EdgeInsets.all(16.0), + padding: const EdgeInsets.all(LARGE_SPACE), child: Text(displayStringForOption(option)), ); }), diff --git a/packages/smooth_app/lib/pages/product/common/product_list_page.dart b/packages/smooth_app/lib/pages/product/common/product_list_page.dart index 35ba6a9907cf..1403e1f96447 100644 --- a/packages/smooth_app/lib/pages/product/common/product_list_page.dart +++ b/packages/smooth_app/lib/pages/product/common/product_list_page.dart @@ -262,8 +262,8 @@ class _ProductListPageState extends State onTap: _selectionMode ? onTap : null, child: Container( padding: EdgeInsets.symmetric( - horizontal: _selectionMode ? 0 : 12.0, - vertical: 8.0, + horizontal: _selectionMode ? 0 : MEDIUM_SPACE, + vertical: SMALL_SPACE, ), child: Row( children: [ @@ -291,7 +291,7 @@ class _ProductListPageState extends State alignment: Alignment.centerRight, margin: const EdgeInsets.symmetric(vertical: 14), color: RED_COLOR, - padding: const EdgeInsets.only(right: 30), + padding: const EdgeInsetsDirectional.only(end: 30), child: const Icon( Icons.delete, color: Colors.white, diff --git a/packages/smooth_app/lib/pages/product/common/product_query_page.dart b/packages/smooth_app/lib/pages/product/common/product_query_page.dart index 1be2116a7838..35221675a2c6 100644 --- a/packages/smooth_app/lib/pages/product/common/product_query_page.dart +++ b/packages/smooth_app/lib/pages/product/common/product_query_page.dart @@ -12,6 +12,7 @@ import 'package:smooth_app/cards/product_cards/smooth_product_card_found.dart'; import 'package:smooth_app/data_models/product_list_supplier.dart'; import 'package:smooth_app/data_models/product_query_model.dart'; import 'package:smooth_app/generic_lib/animations/smooth_reveal_animation.dart'; +import 'package:smooth_app/generic_lib/design_constants.dart'; import 'package:smooth_app/generic_lib/duration_constants.dart'; import 'package:smooth_app/generic_lib/loading_dialog.dart'; import 'package:smooth_app/generic_lib/widgets/smooth_error_card.dart'; @@ -190,7 +191,9 @@ class _ProductQueryPageState extends State animationCurve: Curves.easeInOutBack, startOffset: const Offset(0.0, 1.0), child: Padding( - padding: const EdgeInsets.only(left: 8.0), + padding: const EdgeInsetsDirectional.only( + start: SMALL_SPACE, + ), child: FloatingActionButton( backgroundColor: themeData.colorScheme.secondary, onPressed: () { @@ -302,8 +305,11 @@ class _ProductQueryPageState extends State ); } return Padding( - padding: const EdgeInsets.only( - bottom: 90.0, left: 20, right: 20), + padding: const EdgeInsetsDirectional.only( + bottom: 90.0, + start: VERY_LARGE_SPACE, + end: VERY_LARGE_SPACE, + ), child: child, ); } @@ -311,8 +317,8 @@ class _ProductQueryPageState extends State _model.displayProducts![index]; return Padding( padding: const EdgeInsets.symmetric( - horizontal: 12.0, - vertical: 8.0, + horizontal: MEDIUM_SPACE, + vertical: SMALL_SPACE, ), child: SmoothProductCardFound( heroTag: product.barcode!, @@ -333,12 +339,17 @@ class _ProductQueryPageState extends State ); Widget _getHero(final Size screenSize, final ThemeData themeData) => Hero( - tag: widget.heroTag, - child: Container( - width: screenSize.width, - height: double.infinity, - padding: const EdgeInsets.only(left: 10.0, right: 10.0, top: 96.0), - )); + tag: widget.heroTag, + child: Container( + width: screenSize.width, + height: double.infinity, + padding: const EdgeInsetsDirectional.only( + start: 10.0, + end: 10.0, + top: 96.0, + ), + ), + ); Widget _getErrorWidget( final Size screenSize, @@ -349,7 +360,7 @@ class _ProductQueryPageState extends State screenSize, themeData, Padding( - padding: const EdgeInsets.all(8.0), + padding: const EdgeInsets.all(SMALL_SPACE), child: SmoothErrorCard( errorMessage: errorMessage, tryAgainFunction: retryConnection, diff --git a/packages/smooth_app/lib/pages/product/confirm_and_upload_picture.dart b/packages/smooth_app/lib/pages/product/confirm_and_upload_picture.dart index 554256849fe0..09f535bed568 100644 --- a/packages/smooth_app/lib/pages/product/confirm_and_upload_picture.dart +++ b/packages/smooth_app/lib/pages/product/confirm_and_upload_picture.dart @@ -61,7 +61,7 @@ class _ConfirmAndUploadPictureState extends State { child: Align( alignment: Alignment.bottomCenter, child: Padding( - padding: const EdgeInsets.only(bottom: MEDIUM_SPACE), + padding: const EdgeInsetsDirectional.only(bottom: MEDIUM_SPACE), child: Wrap( spacing: MEDIUM_SPACE, alignment: WrapAlignment.center, diff --git a/packages/smooth_app/lib/pages/product/edit_ingredients_page.dart b/packages/smooth_app/lib/pages/product/edit_ingredients_page.dart index 0a86c8186076..05ea0b4e5656 100644 --- a/packages/smooth_app/lib/pages/product/edit_ingredients_page.dart +++ b/packages/smooth_app/lib/pages/product/edit_ingredients_page.dart @@ -221,10 +221,18 @@ class _EditOcrPageState extends State { Widget _buildZoomableImage(ImageProvider imageSource) { return InteractiveViewer( - boundaryMargin: const EdgeInsets.fromLTRB(20, 10, 20, 200), + boundaryMargin: const EdgeInsets.only( + left: VERY_LARGE_SPACE, + top: 10, + right: VERY_LARGE_SPACE, + bottom: 200, + ), minScale: 0.1, maxScale: 5, - child: Image(fit: BoxFit.contain, image: imageSource), + child: Image( + fit: BoxFit.contain, + image: imageSource, + ), ); } } @@ -252,7 +260,7 @@ class _OcrWidget extends StatelessWidget { Widget build(BuildContext context) { final AppLocalizations appLocalizations = AppLocalizations.of(context); return Align( - alignment: Alignment.bottomLeft, + alignment: AlignmentDirectional.bottomStart, child: Column( mainAxisAlignment: MainAxisAlignment.end, children: [ @@ -261,10 +269,10 @@ class _OcrWidget extends StatelessWidget { child: Align( alignment: Alignment.bottomRight, child: Padding( - padding: const EdgeInsets.only( + padding: const EdgeInsetsDirectional.only( bottom: LARGE_SPACE, - right: LARGE_SPACE, - left: LARGE_SPACE, + start: LARGE_SPACE, + end: LARGE_SPACE, ), child: SmoothActionButtonsBar( positiveAction: SmoothActionButton( diff --git a/packages/smooth_app/lib/pages/product/new_product_page.dart b/packages/smooth_app/lib/pages/product/new_product_page.dart index 2fb1df84254b..fc56563e6b7f 100644 --- a/packages/smooth_app/lib/pages/product/new_product_page.dart +++ b/packages/smooth_app/lib/pages/product/new_product_page.dart @@ -206,7 +206,7 @@ class _ProductPageState extends State with TraceableClientMixin { children: [ Align( heightFactor: 0.7, - alignment: Alignment.topLeft, + alignment: AlignmentDirectional.topStart, child: ProductImageCarousel( _product, height: 200, diff --git a/packages/smooth_app/lib/pages/product/nutrition_page_loaded.dart b/packages/smooth_app/lib/pages/product/nutrition_page_loaded.dart index e664afbdd346..2181f3c1c2a6 100644 --- a/packages/smooth_app/lib/pages/product/nutrition_page_loaded.dart +++ b/packages/smooth_app/lib/pages/product/nutrition_page_loaded.dart @@ -239,7 +239,7 @@ class _NutritionPageLoadedState extends State { controller.text = _nutritionContainer.servingSize ?? ''; _controllers[NutritionContainer.fakeNutrientIdServingSize] = controller; return Padding( - padding: const EdgeInsets.only(bottom: VERY_LARGE_SPACE), + padding: const EdgeInsetsDirectional.only(bottom: VERY_LARGE_SPACE), child: TextFormField( controller: controller, decoration: InputDecoration( diff --git a/packages/smooth_app/lib/pages/product/summary_card.dart b/packages/smooth_app/lib/pages/product/summary_card.dart index 1239dfdf3781..9197703564ed 100644 --- a/packages/smooth_app/lib/pages/product/summary_card.dart +++ b/packages/smooth_app/lib/pages/product/summary_card.dart @@ -251,8 +251,8 @@ class _SummaryCardState extends State { } } final Widget attributesContainer = Container( - alignment: Alignment.topLeft, - margin: const EdgeInsets.only(bottom: 16), + alignment: AlignmentDirectional.topStart, + margin: const EdgeInsetsDirectional.only(bottom: LARGE_SPACE), child: Column(children: displayedGroups), ); // cf. https://github.com/openfoodfacts/smooth-app/issues/2147 @@ -500,7 +500,8 @@ class _SummaryCardState extends State { if (groupName != null) { return Container( alignment: Alignment.topLeft, - padding: const EdgeInsets.only(top: SMALL_SPACE, bottom: LARGE_SPACE), + padding: const EdgeInsetsDirectional.only( + top: SMALL_SPACE, bottom: LARGE_SPACE), child: Text( groupName, style: @@ -654,7 +655,8 @@ class _SummaryCardState extends State { ), ), Container( - padding: const EdgeInsets.only(top: SMALL_SPACE), + padding: + const EdgeInsetsDirectional.only(top: SMALL_SPACE), child: Text( appLocalizations.contribute_to_get_rewards, style: Theme.of(context) diff --git a/packages/smooth_app/lib/pages/question_page.dart b/packages/smooth_app/lib/pages/question_page.dart index 3a888e3bf8f8..f6a0711a923c 100644 --- a/packages/smooth_app/lib/pages/question_page.dart +++ b/packages/smooth_app/lib/pages/question_page.dart @@ -85,7 +85,7 @@ class _QuestionPageState extends State child: SlideTransition( position: inAnimation, child: Padding( - padding: const EdgeInsets.all(8.0), + padding: const EdgeInsets.all(SMALL_SPACE), child: child, ), ), @@ -96,7 +96,7 @@ class _QuestionPageState extends State child: SlideTransition( position: outAnimation, child: Padding( - padding: const EdgeInsets.all(8.0), + padding: const EdgeInsets.all(SMALL_SPACE), child: child, ), ), @@ -188,7 +188,7 @@ class _QuestionPageState extends State children: [ Container( alignment: Alignment.center, - padding: const EdgeInsets.only(bottom: SMALL_SPACE), + padding: const EdgeInsetsDirectional.only(bottom: SMALL_SPACE), child: Text( question.question!, style: Theme.of(context) @@ -276,7 +276,7 @@ class _QuestionPageState extends State required Color backgroundColor, required Color contentColor, required int currentQuestionIndex, - EdgeInsets padding = const EdgeInsets.all(4), + EdgeInsets padding = const EdgeInsets.all(VERY_SMALL_SPACE), }) { final AppLocalizations appLocalizations = AppLocalizations.of(context); String buttonText; diff --git a/packages/smooth_app/lib/pages/scan/scan_flash_toggle.dart b/packages/smooth_app/lib/pages/scan/scan_flash_toggle.dart index ea855a05576d..03b55fa32b6e 100644 --- a/packages/smooth_app/lib/pages/scan/scan_flash_toggle.dart +++ b/packages/smooth_app/lib/pages/scan/scan_flash_toggle.dart @@ -29,11 +29,11 @@ class ScannerFlashToggleWidget extends StatelessWidget { child: Padding( padding: const EdgeInsets.symmetric( horizontal: 6.0, - vertical: 8.0, + vertical: SMALL_SPACE, ), child: Icon( value ? Icons.flash_on : Icons.flash_off, - size: 20.0, + size: VERY_LARGE_SPACE, color: Colors.white, ), ), diff --git a/packages/smooth_app/lib/pages/scan/scan_page.dart b/packages/smooth_app/lib/pages/scan/scan_page.dart index 6380106a6b12..034cb7b3466a 100644 --- a/packages/smooth_app/lib/pages/scan/scan_page.dart +++ b/packages/smooth_app/lib/pages/scan/scan_page.dart @@ -188,8 +188,8 @@ class _ScanPageTopWidget extends StatelessWidget { child: SmoothCard( padding: const EdgeInsetsDirectional.only( top: 10.0, - start: 8.0, - end: 8.0, + start: SMALL_SPACE, + end: SMALL_SPACE, bottom: 5.0, ), child: Align( diff --git a/packages/smooth_app/lib/pages/scan/scanner_overlay.dart b/packages/smooth_app/lib/pages/scan/scanner_overlay.dart index cce1a2058b2c..2cc7618ed37d 100644 --- a/packages/smooth_app/lib/pages/scan/scanner_overlay.dart +++ b/packages/smooth_app/lib/pages/scan/scanner_overlay.dart @@ -119,7 +119,7 @@ class ScannerOverlay extends StatelessWidget { startOffset: Offset(0.0, -0.1), animationCurve: Curves.easeInOutBack, child: Padding( - padding: EdgeInsets.only( + padding: EdgeInsetsDirectional.only( bottom: carouselBottomPadding, ), child: SmoothProductCarousel( diff --git a/packages/smooth_app/lib/pages/scan/search_history_view.dart b/packages/smooth_app/lib/pages/scan/search_history_view.dart index 4db4cc9ea42b..34c234c6fa0a 100644 --- a/packages/smooth_app/lib/pages/scan/search_history_view.dart +++ b/packages/smooth_app/lib/pages/scan/search_history_view.dart @@ -51,7 +51,7 @@ class _SearchHistoryViewState extends State { background: Container(color: RED_COLOR), child: ListTile( leading: const Padding( - padding: EdgeInsets.only(top: 4.0), + padding: EdgeInsetsDirectional.only(top: VERY_SMALL_SPACE), child: Icon(Icons.search, size: 18.0), ), trailing: InkWell( @@ -70,7 +70,7 @@ class _SearchHistoryViewState extends State { Focus.maybeOf(context)?.requestFocus(); }, child: const Padding( - padding: EdgeInsets.all(8.0), + padding: EdgeInsets.all(SMALL_SPACE), child: Icon(Icons.edit, size: 18.0), ), ), diff --git a/packages/smooth_app/lib/pages/scan/search_page.dart b/packages/smooth_app/lib/pages/scan/search_page.dart index 4ca6550dd9e9..bafe0b12a379 100644 --- a/packages/smooth_app/lib/pages/scan/search_page.dart +++ b/packages/smooth_app/lib/pages/scan/search_page.dart @@ -211,7 +211,7 @@ class _SearchFieldState extends State { Widget _buildClearButton() { return Padding( - padding: const EdgeInsets.only(right: 12.0), + padding: const EdgeInsetsDirectional.only(end: MEDIUM_SPACE), child: IconButton( onPressed: _handleClear, icon: AnimatedCrossFade( diff --git a/packages/smooth_app/lib/pages/user_management/login_page.dart b/packages/smooth_app/lib/pages/user_management/login_page.dart index 53ab1da149e1..e5ffa7c2c758 100644 --- a/packages/smooth_app/lib/pages/user_management/login_page.dart +++ b/packages/smooth_app/lib/pages/user_management/login_page.dart @@ -122,7 +122,7 @@ class _LoginPageState extends State with TraceableClientMixin { appLocalizations.sign_in_text, textAlign: TextAlign.center, style: theme.textTheme.headline1?.copyWith( - fontSize: 20.0, + fontSize: VERY_LARGE_SPACE, fontWeight: FontWeight.w700, ), ), @@ -234,7 +234,7 @@ class _LoginPageState extends State with TraceableClientMixin { padding: MaterialStateProperty.all( const EdgeInsets.symmetric( vertical: 10.0, - horizontal: 20.0, + horizontal: VERY_LARGE_SPACE, ), ), shape: @@ -301,11 +301,12 @@ class _LoginPageState extends State with TraceableClientMixin { ), ), child: Padding( - padding: const EdgeInsets.only(bottom: 2.0), + padding: + const EdgeInsetsDirectional.only(bottom: 2.0), child: Text( appLocalizations.create_account, style: theme.textTheme.bodyText2?.copyWith( - fontSize: 20.0, + fontSize: VERY_LARGE_SPACE, fontWeight: FontWeight.w500, color: theme.colorScheme.primary, ), diff --git a/packages/smooth_app/lib/themes/smooth_theme.dart b/packages/smooth_app/lib/themes/smooth_theme.dart index c231a6dbfd77..c8a480b40239 100644 --- a/packages/smooth_app/lib/themes/smooth_theme.dart +++ b/packages/smooth_app/lib/themes/smooth_theme.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; +import 'package:smooth_app/generic_lib/design_constants.dart'; import 'package:smooth_app/themes/color_schemes.dart'; import 'package:smooth_app/themes/theme_provider.dart'; @@ -85,7 +86,7 @@ class SmoothTheme { fontWeight: FontWeight.bold, ), headline4: TextStyle( - fontSize: 16.0, + fontSize: LARGE_SPACE, fontWeight: FontWeight.bold, color: Colors.black, ), diff --git a/packages/smooth_app/lib/views/bottom_sheet_views/group_query_filter_view.dart b/packages/smooth_app/lib/views/bottom_sheet_views/group_query_filter_view.dart index cae39ff0420d..b3a4dd23ff58 100644 --- a/packages/smooth_app/lib/views/bottom_sheet_views/group_query_filter_view.dart +++ b/packages/smooth_app/lib/views/bottom_sheet_views/group_query_filter_view.dart @@ -4,6 +4,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:provider/provider.dart'; import 'package:smooth_app/generic_lib/buttons/smooth_main_button.dart'; +import 'package:smooth_app/generic_lib/design_constants.dart'; class GroupQueryFilterView extends StatelessWidget { const GroupQueryFilterView({ @@ -34,10 +35,10 @@ class GroupQueryFilterView extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.center, children: [ Container( - margin: EdgeInsets.only( - left: - MediaQuery.of(context).size.width * 0.05 + 6.0, - top: 24.0), + margin: EdgeInsetsDirectional.only( + start: MediaQuery.of(context).size.width * 0.05 + 6.0, + top: 24.0, + ), child: Row( mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.spaceBetween, @@ -48,13 +49,15 @@ class GroupQueryFilterView extends StatelessWidget { ), ), Container( - padding: const EdgeInsets.only(left: 10.0), - margin: const EdgeInsets.only(top: 6.0), + padding: const EdgeInsetsDirectional.only(start: 10.0), + margin: const EdgeInsetsDirectional.only(top: 6.0), width: MediaQuery.of(context).size.width * 0.9, decoration: const BoxDecoration( - color: Colors.black12, - borderRadius: - BorderRadius.all(Radius.circular(12.0))), + color: Colors.black12, + borderRadius: BorderRadius.all( + Radius.circular(MEDIUM_SPACE), + ), + ), child: DropdownButton( items: selectedCategoryModel.categoriesList.map( (String key) { @@ -68,7 +71,7 @@ class GroupQueryFilterView extends StatelessWidget { style: Theme.of(context) .textTheme .bodyText2! - .copyWith(fontSize: 12.0)), + .copyWith(fontSize: MEDIUM_SPACE)), ), ); }, @@ -88,7 +91,7 @@ class GroupQueryFilterView extends StatelessWidget { /*Container( margin: EdgeInsets.only( left: MediaQuery.of(context).size.width * 0.05 + 6.0, - top: 12.0), + top: MEDIUM_SPACE), child: Row( mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.spaceBetween, @@ -105,7 +108,7 @@ class GroupQueryFilterView extends StatelessWidget { decoration: const BoxDecoration( color: Colors.black12, borderRadius: - BorderRadius.all(Radius.circular(12.0))), + BorderRadius.all(Radius.circular(MEDIUM_SPACE))), child: DropdownButton( items: selectedCategoryModel.categoriesList .map((String key) { @@ -119,7 +122,7 @@ class GroupQueryFilterView extends StatelessWidget { .bodyText2 !.copyWith( color: Colors.black, - fontSize: 12.0)), + fontSize: MEDIUM_SPACE)), ), ); }).toList(), @@ -147,7 +150,8 @@ class GroupQueryFilterView extends StatelessWidget { child: Container( color: Colors.black12, padding: const EdgeInsets.symmetric( - horizontal: 12.0, vertical: 20.0), + horizontal: MEDIUM_SPACE, + vertical: VERY_LARGE_SPACE), child: SmoothMainButton( text: AppLocalizations.of(context).applyButtonText, diff --git a/packages/smooth_app/lib/widgets/smooth_product_carousel.dart b/packages/smooth_app/lib/widgets/smooth_product_carousel.dart index 10a703db08dd..552a60b292e1 100644 --- a/packages/smooth_app/lib/widgets/smooth_product_carousel.dart +++ b/packages/smooth_app/lib/widgets/smooth_product_carousel.dart @@ -31,10 +31,10 @@ class SmoothProductCarousel extends StatefulWidget { static const EdgeInsetsGeometry carouselItemHorizontalPadding = EdgeInsetsDirectional.only( - top: 16.0, - start: 20.0, - end: 20.0, - bottom: 20.0, + top: LARGE_SPACE, + start: VERY_LARGE_SPACE, + end: VERY_LARGE_SPACE, + bottom: VERY_LARGE_SPACE, ); static const EdgeInsetsGeometry carouselItemInternalPadding = EdgeInsets.symmetric(horizontal: 2.0); @@ -268,7 +268,7 @@ class _SearchCardTagLine extends StatelessWidget { padding: const EdgeInsets.symmetric(vertical: VERY_SMALL_SPACE), child: DefaultTextStyle.merge( style: const TextStyle( - fontSize: 16.0, + fontSize: LARGE_SPACE, height: 1.22, ), textAlign: TextAlign.center, From d39afbf5ee5b0352af7e8f45b89ace7241b5cb9a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 13 Jul 2022 15:04:48 +0200 Subject: [PATCH 18/51] chore: New Crowdin translations to review and merge (#2589) * chore: New Crowdin translations * Update app_fr.arb Co-authored-by: Crowdin Bot Co-authored-by: Pierre Slamich --- packages/smooth_app/lib/l10n/app_aa.arb | 2 +- packages/smooth_app/lib/l10n/app_cs.arb | 18 +++++++++--------- packages/smooth_app/lib/l10n/app_de.arb | 16 ++++++++-------- packages/smooth_app/lib/l10n/app_es.arb | 8 ++++---- packages/smooth_app/lib/l10n/app_fr.arb | 16 ++++++++-------- packages/smooth_app/lib/l10n/app_he.arb | 12 ++++++------ packages/smooth_app/lib/l10n/app_pl.arb | 16 ++++++++-------- packages/smooth_app/lib/l10n/app_pt.arb | 2 +- packages/smooth_app/lib/l10n/app_ta.arb | 2 +- 9 files changed, 46 insertions(+), 46 deletions(-) diff --git a/packages/smooth_app/lib/l10n/app_aa.arb b/packages/smooth_app/lib/l10n/app_aa.arb index 3a35148b3682..2774414c365c 100644 --- a/packages/smooth_app/lib/l10n/app_aa.arb +++ b/packages/smooth_app/lib/l10n/app_aa.arb @@ -1550,4 +1550,4 @@ "@no_internet_connection": { "description": "Message when there is no internet connection" } -} +} \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_cs.arb b/packages/smooth_app/lib/l10n/app_cs.arb index 56619b95370b..a1565b361f3a 100644 --- a/packages/smooth_app/lib/l10n/app_cs.arb +++ b/packages/smooth_app/lib/l10n/app_cs.arb @@ -320,9 +320,9 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Překlady jsou jedním z klíčových úkolů projektu", "@contribute_translate_text_2": {}, - "contribute_share_header": "Share Open Food Facts with your friends", + "contribute_share_header": "Sdílejte Open Food Facts se svými přáteli", "@contribute_share_header": {}, - "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "contribute_share_content": "Chtěl jsem vám dát vědět o aplikaci, kterou používám, Open Food Facts, která vám umožňuje personalizovaným způsobem získat informace o dopadech vašeho jídla na zdraví a životní prostředí. Funguje naskenováním čárových kódů na obalu. Konečně je to zdarma, nevyžaduje registraci a dokonce můžete pomoci zvýšit počet dešifrovaných produktů. Zde je odkaz, jak jej získat pro váš telefon: https://openfoodfacts.app", "@contribute_share_content": { "description": "Content that will be shared, don't forget to include the URL" }, @@ -428,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", + "packaging_editing_instructions": "Uveďte všechny části balení oddělené čárkou nebo odřádkováním s uvedením jejich množství (např. 1 nebo 6), typu (např. láhev, krabice, plechovka), materiálu (např. plast, kov, hliník) a pokud je k dispozici jejich velikost (např. 33 cl) a pokyny k recyklaci.\nPříklad: 1 skleněná láhev k recyklaci, 1 plastový korek k vyhození", "packaging_editing_error": "Balení se nepodařilo uložit.", "packaging_editing_image_error": "Nepodařilo se získat nový obrázek obalu.", "packaging_editing_title": "Upravit obal", @@ -1027,11 +1027,11 @@ "@edit_product_form_item_origins_hint": { "description": "Product edition - Origins - input textfield hint" }, - "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "edit_product_form_item_origins_explainer_1": "Přidejte jakékoli označení původu, které najdete na obalu. Nemusíte se starat o původ uvedený přímo v seznamu přísad.", "@edit_product_form_item_origins_explainer_1": { "description": "Product edition - Origins - input explainer, part 1" }, - "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "edit_product_form_item_origins_explainer_2": "Příklady: Hovězí maso z Argentiny, Sója nepochází z Evropské unie", "@edit_product_form_item_origins_explainer_2": { "description": "Product edition - Origins - input explainer, part 2" }, @@ -1067,15 +1067,15 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, - "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "edit_product_form_item_categories_explainer_1": "Uveďte pouze nejkonkrétnější kategorii. Nadřazené kategorie budou přidány automaticky.", "@edit_product_form_item_categories_explainer_1": { "description": "Product edition - Categories - input explainer, part 1" }, - "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "edit_product_form_item_categories_explainer_2": "V případě, že kategorie není k dispozici v automatickém doplňování, klidně ji přidejte, pomůže nám to zlepšit Open Food Facts ve vaší zemi.", "@edit_product_form_item_categories_explainer_2": { "description": "Product edition - Categories - input explainer, part 2" }, - "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "edit_product_form_item_categories_explainer_3": "Příklady: sardinky v olivovém oleji, pomerančová šťáva z koncentrátu", "@edit_product_form_item_categories_explainer_3": { "description": "Product edition - Categories - input explainer, part 3" }, @@ -1546,7 +1546,7 @@ "@choose from gallery": { "description": "Button label for choosing a photo from gallery" }, - "no_internet_connection": "No internet connection", + "no_internet_connection": "Žádné připojení k Internetu", "@no_internet_connection": { "description": "Message when there is no internet connection" } diff --git a/packages/smooth_app/lib/l10n/app_de.arb b/packages/smooth_app/lib/l10n/app_de.arb index 5fce6ba4c6ce..f6c27e6be6b7 100644 --- a/packages/smooth_app/lib/l10n/app_de.arb +++ b/packages/smooth_app/lib/l10n/app_de.arb @@ -320,9 +320,9 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Übersetzungen sind eine der Hauptaufgaben des Projekts", "@contribute_translate_text_2": {}, - "contribute_share_header": "Share Open Food Facts with your friends", + "contribute_share_header": "Teilen Sie Open Food Facts mit Ihren Freunden", "@contribute_share_header": {}, - "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "contribute_share_content": "Ich möchte Ihnen die App Open Food Facts vorstellen, mit der Sie die Gesundheits- und Umweltauswirkungen Ihrer Lebensmittel auf personalisierte Weise ermitteln können. Es funktioniert durch das Einlesen der Strichcodes auf den Verpackungen. Schließlich ist es kostenlos, erfordert keine Registrierung und Sie können sogar dazu beitragen, die Zahl der entschlüsselten Produkte zu erhöhen. Hier ist der Link, über den Sie die Software für Ihr Handy erhalten: https://openfoodfacts.app", "@contribute_share_content": { "description": "Content that will be shared, don't forget to include the URL" }, @@ -428,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", + "packaging_editing_instructions": "Führen Sie alle Verpackungsteile durch ein Komma oder einen Zeilenvorschub getrennt auf und geben Sie die Anzahl (z. B. 1 oder 6), die Art (z. B. Flasche, Schachtel, Dose), das Material (z. B. Kunststoff, Metall, Aluminium) und, falls vorhanden, die Größe (z. B. 33cl) sowie Recyclinghinweise an.\nBeispiel: 1 Glasflasche zum Recyceln, 1 Plastikkorken zum Wegwerfen", "packaging_editing_error": "Fehler beim Speichern der Verpackung.", "packaging_editing_image_error": "Neues Foto der Verpackung konnte nicht abgerufen werden.", "packaging_editing_title": "Verpackung bearbeiten", @@ -1027,11 +1027,11 @@ "@edit_product_form_item_origins_hint": { "description": "Product edition - Origins - input textfield hint" }, - "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "edit_product_form_item_origins_explainer_1": "Fügen Sie alle Herkunftsangaben hinzu, die Sie auf der Verpackung finden. Sie brauchen sich keine Sorgen über Herkunftsangaben zu machen, die direkt in der Zutatenliste stehen.", "@edit_product_form_item_origins_explainer_1": { "description": "Product edition - Origins - input explainer, part 1" }, - "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "edit_product_form_item_origins_explainer_2": "Beispiele: Rindfleisch aus Argentinien, Das Soja kommt nicht aus der Europäischen Union", "@edit_product_form_item_origins_explainer_2": { "description": "Product edition - Origins - input explainer, part 2" }, @@ -1067,15 +1067,15 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, - "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "edit_product_form_item_categories_explainer_1": "Geben Sie nur die spezifischste Kategorie an. Die übergeordneten Kategorien werden automatisch hinzugefügt.", "@edit_product_form_item_categories_explainer_1": { "description": "Product edition - Categories - input explainer, part 1" }, - "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "edit_product_form_item_categories_explainer_2": "Falls eine Kategorie nicht in der Autovervollständigung enthalten ist, können Sie sie trotzdem hinzufügen. Das hilft uns, Open Food Facts in Ihrem Land zu verbessern.", "@edit_product_form_item_categories_explainer_2": { "description": "Product edition - Categories - input explainer, part 2" }, - "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "edit_product_form_item_categories_explainer_3": "Beispiele: Sardinen in Olivenöl, Orangensaft aus Konzentrat", "@edit_product_form_item_categories_explainer_3": { "description": "Product edition - Categories - input explainer, part 3" }, diff --git a/packages/smooth_app/lib/l10n/app_es.arb b/packages/smooth_app/lib/l10n/app_es.arb index 90e7a6f4ae3b..6f172f0d01a2 100644 --- a/packages/smooth_app/lib/l10n/app_es.arb +++ b/packages/smooth_app/lib/l10n/app_es.arb @@ -320,7 +320,7 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "La traducción es una de las tareas clave del proyecto.", "@contribute_translate_text_2": {}, - "contribute_share_header": "Share Open Food Facts with your friends", + "contribute_share_header": "Comparte Open Food Facts con tus amigos", "@contribute_share_header": {}, "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", "@contribute_share_content": { @@ -1031,7 +1031,7 @@ "@edit_product_form_item_origins_explainer_1": { "description": "Product edition - Origins - input explainer, part 1" }, - "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "edit_product_form_item_origins_explainer_2": "Ejemplos: carne de vacuno de Argentina, La soja no procede de la Unión Europea", "@edit_product_form_item_origins_explainer_2": { "description": "Product edition - Origins - input explainer, part 2" }, @@ -1067,11 +1067,11 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, - "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "edit_product_form_item_categories_explainer_1": "Indique sólo la categoría más específica. Las categorías superiores se añadirán automáticamente.", "@edit_product_form_item_categories_explainer_1": { "description": "Product edition - Categories - input explainer, part 1" }, - "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "edit_product_form_item_categories_explainer_2": "En caso de que una categoría no esté disponible en el autocompletado, no dude en añadirla de todos modos, que nos ayudarán a mejorar Open Food Facts en tu país.", "@edit_product_form_item_categories_explainer_2": { "description": "Product edition - Categories - input explainer, part 2" }, diff --git a/packages/smooth_app/lib/l10n/app_fr.arb b/packages/smooth_app/lib/l10n/app_fr.arb index 181f428dfbd9..9322a7711aae 100644 --- a/packages/smooth_app/lib/l10n/app_fr.arb +++ b/packages/smooth_app/lib/l10n/app_fr.arb @@ -320,7 +320,7 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Les traductions sont l'une des tâches clés du projet", "@contribute_translate_text_2": {}, - "contribute_share_header": "Share Open Food Facts with your friends", + "contribute_share_header": "Partagez Open Food Facts avec vos amis", "@contribute_share_header": {}, "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", "@contribute_share_content": { @@ -428,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", + "packaging_editing_instructions": "Listez toutes les pièces d'emballage séparées par une virgule ou un saut de ligne, avec leur quantité (par exemple 1 ou 6) type (par exemple bouteille, boîte, canette), matériau (par exemple plastique, métal, aluminium) et si disponible leur taille (par exemple 33cl) et consignes de recyclage.\nExemple : 1 bouteille en verre à recycler, 1 bouchon en plastique à jeter", "packaging_editing_error": "Échec de l'enregistrement de l'emballage.", "packaging_editing_image_error": "Impossible d'obtenir une nouvelle image d'emballage.", "packaging_editing_title": "Modifier l'emballage", @@ -1027,11 +1027,11 @@ "@edit_product_form_item_origins_hint": { "description": "Product edition - Origins - input textfield hint" }, - "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "edit_product_form_item_origins_explainer_1": "Ajoutez toutes les indications d'origine que vous pouvez trouver sur l'emballage. Vous n'avez pas à vous soucier des origines indiquées directement dans la liste des ingrédients.", "@edit_product_form_item_origins_explainer_1": { "description": "Product edition - Origins - input explainer, part 1" }, - "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "edit_product_form_item_origins_explainer_2": "Exemples : Bœuf d'Argentine, Le soja ne provient pas de l'Union européenne", "@edit_product_form_item_origins_explainer_2": { "description": "Product edition - Origins - input explainer, part 2" }, @@ -1067,15 +1067,15 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, - "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "edit_product_form_item_categories_explainer_1": "Indiquez uniquement la catégorie la plus spécifique. Les catégories parentes seront automatiquement ajoutées.", "@edit_product_form_item_categories_explainer_1": { "description": "Product edition - Categories - input explainer, part 1" }, - "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "edit_product_form_item_categories_explainer_2": "Si une catégorie n'est pas disponible en saisie semi-automatique, n'hésitez pas à l'ajouter quand même, cela nous aidera à améliorer Open Food Facts dans votre pays.", "@edit_product_form_item_categories_explainer_2": { "description": "Product edition - Categories - input explainer, part 2" }, - "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "edit_product_form_item_categories_explainer_3": "Exemples : Sardines à l'huile d'olive, Jus d'orange à base de concentré", "@edit_product_form_item_categories_explainer_3": { "description": "Product edition - Categories - input explainer, part 3" }, @@ -1550,4 +1550,4 @@ "@no_internet_connection": { "description": "Message when there is no internet connection" } -} \ No newline at end of file +} diff --git a/packages/smooth_app/lib/l10n/app_he.arb b/packages/smooth_app/lib/l10n/app_he.arb index 246da0060b4f..1ab8e40b2325 100644 --- a/packages/smooth_app/lib/l10n/app_he.arb +++ b/packages/smooth_app/lib/l10n/app_he.arb @@ -320,7 +320,7 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "תרגומים הם אחת ממשימות המפתח של המיזם", "@contribute_translate_text_2": {}, - "contribute_share_header": "Share Open Food Facts with your friends", + "contribute_share_header": "שיתוף Open Food Facts עם חברים", "@contribute_share_header": {}, "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", "@contribute_share_content": { @@ -428,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", + "packaging_editing_instructions": "הצגת כל חלקי האריזה מופרדים בפסיקים או ירידת שורה, בצירוף הכמות (למשל: 1 או 6), סוג (למשל: בקבוק, קופסה, פחית), חומר (למשל: פלסטיק, מתכת, אלומיניום) והגודל אם יש (למשל: 330 מ״ל) והנחיות מיחזור. למשל: בקבוק זכוכית 1 למיחזור, פקק פלסטיק אחד להשלכה", "packaging_editing_error": "שמירת האריזה נכשלה.", "packaging_editing_image_error": "משיכת תמונת האריזה החדשה נכשלה.", "packaging_editing_title": "עריכת אריזה", @@ -1031,7 +1031,7 @@ "@edit_product_form_item_origins_explainer_1": { "description": "Product edition - Origins - input explainer, part 1" }, - "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "edit_product_form_item_origins_explainer_2": "דוגמאות: בקר מארגנטינה, הסויה לא מגיעה מהאיחוד האירופי", "@edit_product_form_item_origins_explainer_2": { "description": "Product edition - Origins - input explainer, part 2" }, @@ -1067,15 +1067,15 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, - "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "edit_product_form_item_categories_explainer_1": "יש לציין רק את הקטגוריה המדויקת ביותר. קטגוריות הורה תתווספנה אוטומטית.", "@edit_product_form_item_categories_explainer_1": { "description": "Product edition - Categories - input explainer, part 1" }, - "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "edit_product_form_item_categories_explainer_2": "אם הקטגוריה לא קיימת בהשלמה האוטומטית, אפשר פשוט להוסיף אותה בכל מקרה, פעולה זו תסייע לנו לשפר את Open Food Facts במדינה שלך.", "@edit_product_form_item_categories_explainer_2": { "description": "Product edition - Categories - input explainer, part 2" }, - "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "edit_product_form_item_categories_explainer_3": "למשל: סרדינים בשמן זית, מיץ תפוזים מתרכיז", "@edit_product_form_item_categories_explainer_3": { "description": "Product edition - Categories - input explainer, part 3" }, diff --git a/packages/smooth_app/lib/l10n/app_pl.arb b/packages/smooth_app/lib/l10n/app_pl.arb index 96e27ee343a1..0cee402f71a8 100644 --- a/packages/smooth_app/lib/l10n/app_pl.arb +++ b/packages/smooth_app/lib/l10n/app_pl.arb @@ -320,9 +320,9 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Tłumaczenia są jednym z kluczowych zadań projektu", "@contribute_translate_text_2": {}, - "contribute_share_header": "Share Open Food Facts with your friends", + "contribute_share_header": "Udostępnij Open Food Facts znajomym", "@contribute_share_header": {}, - "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "contribute_share_content": "Korzystam z takiej aplikacji, Open Food Facts, która pozwala w spersonalizowany sposób poznać wpływ żywności na zdrowie i środowisko. Działa poprzez skanowanie kodów kreskowych na opakowaniu. Jest bezpłatna, nie wymaga rejestracji, a nawet możesz pomóc w zwiększeniu liczby znanych produktów. Oto link do pobrania jej na swój telefon: https://openfoodfacts.app", "@contribute_share_content": { "description": "Content that will be shared, don't forget to include the URL" }, @@ -428,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", + "packaging_editing_instructions": "Wymień wszystkie części opakowania oddzielone przecinkiem lub nowym wierszem, podając ich ilość (np. 1 lub 6) rodzaj (np. butelka, pudełko, puszka), materiał (np. plastik, metal, aluminium) i, jeśli to możliwe, ich rozmiar (np. 330 ml) oraz instrukcje recyklingu.\nPrzykład: 1 szklana butelka do recyklingu, 1 plastikowy korek do wyrzucenia", "packaging_editing_error": "Nie udało się zapisać informacji o opakowaniu.", "packaging_editing_image_error": "Nie udało się pobrać zdjęcia nowego opakowania.", "packaging_editing_title": "Edytuj opakowanie", @@ -1027,11 +1027,11 @@ "@edit_product_form_item_origins_hint": { "description": "Product edition - Origins - input textfield hint" }, - "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "edit_product_form_item_origins_explainer_1": "Dodaj informacje o pochodzeniu, które można znaleźć na opakowaniu. Nie musisz się martwić o pochodzenie wskazane bezpośrednio na liście składników.", "@edit_product_form_item_origins_explainer_1": { "description": "Product edition - Origins - input explainer, part 1" }, - "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "edit_product_form_item_origins_explainer_2": "Przykłady: wołowina z Argentyny, soja nie pochodzi z Unii Europejskiej", "@edit_product_form_item_origins_explainer_2": { "description": "Product edition - Origins - input explainer, part 2" }, @@ -1067,15 +1067,15 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, - "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "edit_product_form_item_categories_explainer_1": "Wskaż tylko najbardziej szczegółową kategorię. Kategorie nadrzędne zostaną automatycznie dodane.", "@edit_product_form_item_categories_explainer_1": { "description": "Product edition - Categories - input explainer, part 1" }, - "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "edit_product_form_item_categories_explainer_2": "Jeśli kategoria nie jest dostępna w autouzupełnianiu, możesz ją dodać, pomoże nam to ulepszyć Open Food Facts w Twoim kraju.", "@edit_product_form_item_categories_explainer_2": { "description": "Product edition - Categories - input explainer, part 2" }, - "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "edit_product_form_item_categories_explainer_3": "Przykłady: sardynki w oliwie z oliwek, sok pomarańczowy z koncentratu", "@edit_product_form_item_categories_explainer_3": { "description": "Product edition - Categories - input explainer, part 3" }, diff --git a/packages/smooth_app/lib/l10n/app_pt.arb b/packages/smooth_app/lib/l10n/app_pt.arb index ad4ab8f24bb6..5e219794d0a6 100644 --- a/packages/smooth_app/lib/l10n/app_pt.arb +++ b/packages/smooth_app/lib/l10n/app_pt.arb @@ -320,7 +320,7 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "A tradução é uma das principais tarefas do projeto", "@contribute_translate_text_2": {}, - "contribute_share_header": "Share Open Food Facts with your friends", + "contribute_share_header": "Compartilhar o Open Food Facts com seus amigos", "@contribute_share_header": {}, "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", "@contribute_share_content": { diff --git a/packages/smooth_app/lib/l10n/app_ta.arb b/packages/smooth_app/lib/l10n/app_ta.arb index 830fa0f1e0ec..b933fd8cf383 100644 --- a/packages/smooth_app/lib/l10n/app_ta.arb +++ b/packages/smooth_app/lib/l10n/app_ta.arb @@ -849,7 +849,7 @@ "@user_profile": { "description": "User account (if connected)" }, - "user_profile_title_guest": "Welcome!", + "user_profile_title_guest": "நல்வரவு!", "@user_profile_title_guest": { "description": "When the user is not connected" }, From 231186726b2c61bf246964e9a576293c650f9ec5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 14 Jul 2022 11:38:48 +0200 Subject: [PATCH 19/51] chore: New Crowdin translations to review and merge (#2592) * chore: New Crowdin translations * Update app_fr.arb Co-authored-by: Crowdin Bot Co-authored-by: Pierre Slamich --- packages/smooth_app/lib/l10n/app_nl.arb | 28 ++++---- packages/smooth_app/lib/l10n/app_pt.arb | 90 ++++++++++++------------- 2 files changed, 59 insertions(+), 59 deletions(-) diff --git a/packages/smooth_app/lib/l10n/app_nl.arb b/packages/smooth_app/lib/l10n/app_nl.arb index e11404c3c3fc..2fa9840c96d8 100644 --- a/packages/smooth_app/lib/l10n/app_nl.arb +++ b/packages/smooth_app/lib/l10n/app_nl.arb @@ -320,9 +320,9 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Vertalingen zijn een van de belangrijkste taken van het project", "@contribute_translate_text_2": {}, - "contribute_share_header": "Share Open Food Facts with your friends", + "contribute_share_header": "Deel Open Food Facts met je vrienden", "@contribute_share_header": {}, - "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "contribute_share_content": "Ik wil je laten weten dat ik de app Open Food Facts gebruik, waarmee je op een gepersonaliseerde manier de gezondheids- en milieueffecten van je eten kunt zien. Het werkt door de barcodes op de verpakking te scannen. Het is gratis, vereist geen registratie en je kunt zelfs helpen het aantal ontcijferde producten te vergroten. Download de app voor jouw telefoon via deze link: https://openfoodfacts.app", "@contribute_share_content": { "description": "Content that will be shared, don't forget to include the URL" }, @@ -428,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", + "packaging_editing_instructions": "Vermeld alle verpakkingsonderdelen gescheiden door een komma of regel, met hun hoeveelheid (bijv. 1 of 6) type (bijv. fles, doos, blik), materiaal (bijv. plastic, metaal, aluminium) en indien beschikbaar hun grootte (bijv. 33cl) en instructies voor recycling.\nVoorbeeld: 1 glazen fles om te recyclen, 1 plastic kurk om weg te gooien", "packaging_editing_error": "Opslaan van de verpakking is mislukt.", "packaging_editing_image_error": "Het ophalen van een nieuwe verpakkingsafbeelding is mislukt.", "packaging_editing_title": "Verpakking bewerken", @@ -748,7 +748,7 @@ } } }, - "contact_form_body": "{osContent}\nApp version:{appVersion}\nApp build number:{appBuildNumber}\nApp package name:{appPackageName}", + "contact_form_body": "{osContent}\nApp versie:{appVersion}\nApp build nummer:{appBuildNumber}\nApp package naam:{appPackageName}", "@contact_form_body": { "description": "Contact form content", "placeholders": { @@ -819,14 +819,14 @@ "@product_list_empty_message": { "description": "When the history list is empty, body of the message explaining to start scanning" }, - "product_list_reloading_in_progress_multiple": "Refreshing {count,plural, one {} =0{product} =1{product} other{products}} in your history", + "product_list_reloading_in_progress_multiple": "Verversen van {count,plural, one {} =0{product} =1{product} other{products}} in jouw geschiedens", "@product_list_reloading_in_progress_multiple": { "description": "Message to show while loading previous scanned items", "placeholders": { "count": {} } }, - "product_list_reloading_success_multiple": "{count,plural, one {} =0{Product} =1{Product} other{Products}} refresh complete", + "product_list_reloading_success_multiple": "{count,plural, one {} =0{Product} =1{Product} other{Producten}} verversen voltooid", "@product_list_reloading_success_multiple": { "description": "Message to show once previous scanned items are loaded", "placeholders": { @@ -1027,11 +1027,11 @@ "@edit_product_form_item_origins_hint": { "description": "Product edition - Origins - input textfield hint" }, - "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "edit_product_form_item_origins_explainer_1": "Voeg eventuele herkomstaanduidingen toe die je op de verpakking vindt. Je hoeft je geen zorgen te maken over de herkomst die direct in de ingrediëntenlijst wordt vermeld.", "@edit_product_form_item_origins_explainer_1": { "description": "Product edition - Origins - input explainer, part 1" }, - "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "edit_product_form_item_origins_explainer_2": "Voorbeelden: rundvlees uit Argentinië, de soja komt niet uit de Europese Unie", "@edit_product_form_item_origins_explainer_2": { "description": "Product edition - Origins - input explainer, part 2" }, @@ -1067,15 +1067,15 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, - "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "edit_product_form_item_categories_explainer_1": "Vermeld alleen de meest specifieke categorie. Bovenliggende categorieën worden automatisch toegevoegd.", "@edit_product_form_item_categories_explainer_1": { "description": "Product edition - Categories - input explainer, part 1" }, - "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "edit_product_form_item_categories_explainer_2": "Als een categorie niet beschikbaar is via auto-complete, voel je dan vrij om deze toch toe te voegen. Dat helpt ons Open Food Facts in jouw land te verbeteren.", "@edit_product_form_item_categories_explainer_2": { "description": "Product edition - Categories - input explainer, part 2" }, - "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "edit_product_form_item_categories_explainer_3": "Voorbeelden: sardientjes in olijfolie, sinaasappelsap uit concentraat", "@edit_product_form_item_categories_explainer_3": { "description": "Product edition - Categories - input explainer, part 3" }, @@ -1386,11 +1386,11 @@ "@user_search_photographer_title": { "description": "User search (photographer): list tile title" }, - "user_search_to_be_completed_title": "My to-be-completed products", + "user_search_to_be_completed_title": "Mijn te voltooien producten", "@user_search_to_be_completed_title": { "description": "User search (to be completed): list tile title" }, - "all_search_to_be_completed_title": "All to-be-completed products", + "all_search_to_be_completed_title": "Alle te voltooien producten", "@all_search_to_be_completed_title": { "description": "All products to be completed: list tile title" }, @@ -1546,7 +1546,7 @@ "@choose from gallery": { "description": "Button label for choosing a photo from gallery" }, - "no_internet_connection": "No internet connection", + "no_internet_connection": "Geen internetverbinding", "@no_internet_connection": { "description": "Message when there is no internet connection" } diff --git a/packages/smooth_app/lib/l10n/app_pt.arb b/packages/smooth_app/lib/l10n/app_pt.arb index 5e219794d0a6..5e675c1d9990 100644 --- a/packages/smooth_app/lib/l10n/app_pt.arb +++ b/packages/smooth_app/lib/l10n/app_pt.arb @@ -322,7 +322,7 @@ "@contribute_translate_text_2": {}, "contribute_share_header": "Compartilhar o Open Food Facts com seus amigos", "@contribute_share_header": {}, - "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "contribute_share_content": "Eu queria que você soubesse sobre o aplicativo que tenho usado, Open Food Facts, que permite que você descubra os impactos de sua alimentação na saúde e no meio ambiente, de forma personalizada. Funciona digitalizando os códigos de barras na embalagem. Por fim, é gratuito, não requer registro e você pode até ajudar a aumentar o número de produtos decifrados. Aqui está o link para obtê-lo para o seu telefone: https://openfoodfacts.app", "@contribute_share_content": { "description": "Content that will be shared, don't forget to include the URL" }, @@ -350,7 +350,7 @@ "myPreferences_settings_subtitle": "Modo escuro, Analytics, ...", "myPreferences_food_title": "Preferências alimentares", "myPreferences_food_subtitle": "Escolha quais informações sobre alimentos são mais importantes para você.", - "myPreferences_food_comment": "Choose what information about food matters most to you, in order to rank food according to your preferences, see the information you care about first, and get a compatibility summary. Those food preferences stay on your device, and are not associated with your Open Food Facts contributor account if you have one.", + "myPreferences_food_comment": "Escolha quais informações sobre os alimentos são mais importantes para você, a fim de classificar os alimentos de acordo com suas preferências, ver as informações que lhe interessam primeiro e obter um resumo de compatibilidade. Essas preferências alimentares permanecem no seu dispositivo e não são associadas à sua conta de colaborador do Open Food Facts, se você tiver uma.", "confirmResetPreferences": "Redefinir suas preferências alimentares?", "@confirmResetPreferences": { "description": "Pop up title: Reassuring if the food preferences should really be reset" @@ -428,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", + "packaging_editing_instructions": "Indique todas as partes da embalagem separadas por uma vírgula ou linha, com a sua quantidade (ex. 1 ou 6), tipo (ex. garrafa, caixa, lata), material (ex. plástico, metal, alumínio) e, se disponível, o tamanho (ex. 330 ml) e instruções de reciclagem.\nExemplo: 1 garrafa de vidro para reciclar, 1 tampa de plástico para descartar", "packaging_editing_error": "Falha ao salvar a embalagem.", "packaging_editing_image_error": "Falha ao obter uma nova imagem de embalagem.", "packaging_editing_title": "Editar embalagem", @@ -845,7 +845,7 @@ "@account_delete": { "description": "Delete account button (user profile)" }, - "user_profile": "Account", + "user_profile": "Conta", "@user_profile": { "description": "User account (if connected)" }, @@ -853,8 +853,8 @@ "@user_profile_title_guest": { "description": "When the user is not connected" }, - "user_profile_subtitle_guest": "Sign-in or sign-up to join the Open Food Facts community", - "user_profile_title_id_email": "Open Food Facts login: {email}", + "user_profile_subtitle_guest": "Faça login ou cadastre-se para participar da comunidade Open Food Facts", + "user_profile_title_id_email": "Login no Open Food Facts: {email}", "@user_profile_title_id_email": { "description": "User login (when it's an email)", "placeholders": { @@ -863,7 +863,7 @@ } } }, - "user_profile_title_id_default": "Welcome {id}!", + "user_profile_title_id_default": "Bem-vindo {id}!", "@user_profile_title_id_default": { "description": "User login (when it's an id)", "placeholders": { @@ -1027,11 +1027,11 @@ "@edit_product_form_item_origins_hint": { "description": "Product edition - Origins - input textfield hint" }, - "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "edit_product_form_item_origins_explainer_1": "Adicione quaisquer indicações de origem que você encontrar na embalagem. Você não precisa se preocupar com as origens indicadas diretamente na lista de ingredientes.", "@edit_product_form_item_origins_explainer_1": { "description": "Product edition - Origins - input explainer, part 1" }, - "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "edit_product_form_item_origins_explainer_2": "Exemplos: Carne bovina da Argentina, A soja não vem da União Européia", "@edit_product_form_item_origins_explainer_2": { "description": "Product edition - Origins - input explainer, part 2" }, @@ -1067,15 +1067,15 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, - "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "edit_product_form_item_categories_explainer_1": "Indique apenas a categoria mais específica. As categorias principais serão adicionadas automaticamente.", "@edit_product_form_item_categories_explainer_1": { "description": "Product edition - Categories - input explainer, part 1" }, - "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "edit_product_form_item_categories_explainer_2": "Caso uma categoria não esteja disponível no preenchimento automático, sinta-se à vontade para adicioná-la de qualquer maneira, isso nos ajudará a melhorar o Open Food Facts em seu país.", "@edit_product_form_item_categories_explainer_2": { "description": "Product edition - Categories - input explainer, part 2" }, - "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "edit_product_form_item_categories_explainer_3": "Exemplos: Sardinhas em azeite, Suco de Laranja concentrado", "@edit_product_form_item_categories_explainer_3": { "description": "Product edition - Categories - input explainer, part 3" }, @@ -1119,19 +1119,19 @@ "@edit_packaging_refresh_photo_btn_text": { "description": "Packaging edition - Refresh photo" }, - "user_list_dialog_new_title": "New list of products", + "user_list_dialog_new_title": "Nova lista de produtos", "@user_list_dialog_new_title": { "description": "Title of the 'new user list' dialog" }, - "user_list_dialog_rename_title": "Rename list", + "user_list_dialog_rename_title": "Renomear lista", "@user_list_dialog_rename_title": { "description": "Title of the 'rename user list' dialog" }, - "user_list_subtitle_product": "Lists", + "user_list_subtitle_product": "Listas", "@user_list_subtitle_product": { "description": "Subtitle of a paragraph about user lists in a product context" }, - "user_list_button_new": "New list", + "user_list_button_new": "Nova lista", "@user_list_button_new": { "description": "Short label of a 'new list' button" }, @@ -1143,11 +1143,11 @@ "@user_list_popup_clear": { "description": "Short label of a 'clear list' popup" }, - "user_list_popup_rename": "Rename", + "user_list_popup_rename": "Renomear", "@user_list_popup_rename": { "description": "Short label of a 'rename list' popup" }, - "user_list_name_hint": "My list", + "user_list_name_hint": "Minha lista", "@user_list_name_hint": { "description": "Hint of a user list name text-field in a 'user list' dialog" }, @@ -1155,23 +1155,23 @@ "@user_list_name_error_empty": { "description": "Validation error about the name that cannot be empty" }, - "user_list_name_error_already": "That name is already used", + "user_list_name_error_already": "Esse nome já está em uso", "@user_list_name_error_already": { "description": "Validation error about the name that is already used for another list" }, - "user_list_name_error_same": "That is the same name", + "user_list_name_error_same": "Esse é o mesmo nome", "@user_list_name_error_same": { "description": "Validation error about the renamed name that is the same as the initial list name" }, - "try_again": "Try Again", + "try_again": "Tente novamente", "@try_again": { "description": "Label for buttons that try to repeat a failed action" }, - "there_was_an_error": "There was an error", + "there_was_an_error": "Houve um erro", "@there_was_an_error": { "description": "Label that presents a error" }, - "category_picker_no_category_found_message": "No category found for {items}", + "category_picker_no_category_found_message": "Nenhuma categoria encontrada para {items}", "@category_picker_no_category_found_message": { "description": "Label when no category is available", "placeholders": { @@ -1192,27 +1192,27 @@ "@category_picker_no_category_found_button": { "description": "Button label when no category is available" }, - "dev_preferences_screen_title": "DEV Mode", + "dev_preferences_screen_title": "Modo DEV", "@dev_preferences_screen_title": { "description": "User dev preferences - Title" }, - "dev_preferences_disable_mode": "Remove dev mode", + "dev_preferences_disable_mode": "Remover modo de desenvolvimento", "@dev_preferences_disable_mode": { "description": "User dev preferences - Remove dev mode label" }, - "dev_preferences_reset_onboarding_title": "Restart onboarding", + "dev_preferences_reset_onboarding_title": "Reiniciar tutorial", "@dev_preferences_reset_onboarding_title": { "description": "User dev preferences - Reset onboarding - Title" }, - "dev_preferences_reset_onboarding_subtitle": "You then have to restart Flutter to see it again.", + "dev_preferences_reset_onboarding_subtitle": "Você então precisa reiniciar o Flutter para vê-lo novamente.", "@dev_preferences_reset_onboarding_subtitle": { "description": "User dev preferences - Reset onboarding - Subtitle" }, - "dev_preferences_environment_switch_title": "Switch between openfoodfacts.org (PROD) and test env", + "dev_preferences_environment_switch_title": "Alternar entre openfoodfacts.org (PROD) e ambiente de teste", "@dev_preferences_environment_switch_title": { "description": "User dev preferences - Environment (prod/test) switcher - Title" }, - "dev_preferences_environment_switch_subtitle": "Current query type is {query}", + "dev_preferences_environment_switch_subtitle": "O tipo de consulta atual é {query}", "@dev_preferences_environment_switch_subtitle": { "description": "User dev preferences - Environment (prod/test) switcher - Subtitle", "placeholders": { @@ -1221,7 +1221,7 @@ } } }, - "dev_preferences_test_environment_title": "Test env parameters", + "dev_preferences_test_environment_title": "Testar parâmetros env", "@dev_preferences_test_environment_title": { "description": "User dev preferences - Info about test environment - Title" }, @@ -1234,43 +1234,43 @@ } } }, - "dev_preferences_test_environment_dialog_title": "Test Env Host", + "dev_preferences_test_environment_dialog_title": "Testar Host Env", "@dev_preferences_test_environment_dialog_title": { "description": "User dev preferences - Info about test environment - Dialog title" }, - "dev_preferences_ml_kit_title": "Use ML Kit", + "dev_preferences_ml_kit_title": "Usar Kit ML", "@dev_preferences_ml_kit_title": { "description": "User dev preferences - Enable ML Kit - Title" }, - "dev_preferences_ml_kit_subtitle": "then you have to restart this app", + "dev_preferences_ml_kit_subtitle": "então você precisa reiniciar este aplicativo", "@dev_preferences_ml_kit_subtitle": { "description": "User dev preferences - Enable ML Kit - Subtitle" }, - "dev_preferences_product_additional_features_title": "Additional button on product page", + "dev_preferences_product_additional_features_title": "Botão adicional na página do produto", "@dev_preferences_product_additional_features_title": { "description": "User dev preferences - Additional buttons on product page - Title" }, - "dev_preferences_edit_ingredients_title": "Edit ingredients via a knowledge panel button", + "dev_preferences_edit_ingredients_title": "Edite ingredientes por meio de um botão do painel de conhecimento", "@dev_preferences_edit_ingredients_title": { "description": "User dev preferences - Additional buttons on product page - Subtitle" }, - "dev_preferences_export_history_title": "Export History", + "dev_preferences_export_history_title": "Exportar Histórico", "@dev_preferences_export_history_title": { "description": "User dev preferences - Export history - Title" }, - "dev_preferences_export_history_progress_error": "exception", + "dev_preferences_export_history_progress_error": "exceção", "@dev_preferences_export_history_progress_error": { "description": "User dev preferences - Export history - Item - Error" }, - "dev_preferences_export_history_progress_found": "product found", + "dev_preferences_export_history_progress_found": "produto encontrado", "@dev_preferences_export_history_progress_found": { "description": "User dev preferences - Export history - Item - Found" }, - "dev_preferences_export_history_progress_not_found": "product NOT found", + "dev_preferences_export_history_progress_not_found": "produto NÃO encontrado", "@dev_preferences_export_history_progress_not_found": { "description": "User dev preferences - Export history - Item - Not found" }, - "dev_preferences_export_history_dialog_title": "Export history", + "dev_preferences_export_history_dialog_title": "Exportar histórico", "@dev_preferences_export_history_dialog_title": { "description": "User dev preferences - Export history - Dialog title" }, @@ -1282,7 +1282,7 @@ "@dev_preferences_button_negative": { "description": "User dev preferences - Negative button label" }, - "dev_preferences_migration_title": "Data migration from V1", + "dev_preferences_migration_title": "Migração de dados de V1", "dev_preferences_migration_subtitle": "Status: {status}", "@dev_preferences_migration_subtitle": { "placeholders": { @@ -1291,9 +1291,9 @@ } } }, - "dev_preferences_migration_status_already_done": "success or fresh install", - "dev_preferences_migration_status_success": "success", - "dev_preferences_migration_status_error": "error", + "dev_preferences_migration_status_already_done": "sucesso ou nova instalação", + "dev_preferences_migration_status_success": "sucesso", + "dev_preferences_migration_status_error": "erro", "dev_preferences_migration_status_in_progress": "in progress", "dev_preferences_migration_status_required": "required (click to start)", "dev_preferences_migration_status_not_started": "unknown", @@ -1486,7 +1486,7 @@ } } }, - "user_list_all_title": "Lists", + "user_list_all_title": "Listas", "@user_list_all_title": { "description": "Title about the user lists in the user preferences" }, From 27681d101e6f6ebdc82a016aa5d032a0f74662a4 Mon Sep 17 00:00:00 2001 From: monsieurtanuki Date: Thu, 14 Jul 2022 13:07:32 +0200 Subject: [PATCH 20/51] feat: #2396 - preparatory step with simple refactoring (#2593) New files: * `smooth_product_card_template.dart`: Empty template for a product card display. * `smooth_product_image_container.dart`: Container to display the main product image on a product card. Impacted files: * `smooth_product_card_found.dart`: fix as `backgroundColor` was not taken into account anymore * `smooth_product_image.dart`: refactored with new class `SmoothImageContainer` --- .../smooth_product_card_found.dart | 5 +- .../smooth_product_card_template.dart | 80 +++++++++++++++++++ .../widgets/smooth_product_image.dart | 64 +++++++-------- .../smooth_product_image_container.dart | 25 ++++++ 4 files changed, 134 insertions(+), 40 deletions(-) create mode 100644 packages/smooth_app/lib/cards/product_cards/smooth_product_card_template.dart create mode 100644 packages/smooth_app/lib/generic_lib/widgets/smooth_product_image_container.dart diff --git a/packages/smooth_app/lib/cards/product_cards/smooth_product_card_found.dart b/packages/smooth_app/lib/cards/product_cards/smooth_product_card_found.dart index e5b909168a3b..f305162e9875 100644 --- a/packages/smooth_app/lib/cards/product_cards/smooth_product_card_found.dart +++ b/packages/smooth_app/lib/cards/product_cards/smooth_product_card_found.dart @@ -77,9 +77,8 @@ class SmoothProductCardFound extends StatelessWidget { child: Ink( decoration: BoxDecoration( borderRadius: ROUNDED_BORDER_RADIUS, - color: Theme.of(context).brightness == Brightness.light - ? Colors.white - : Colors.black, + color: + backgroundColor ?? (isDarkMode ? Colors.black : Colors.white), ), child: SmoothCard( elevation: elevation, diff --git a/packages/smooth_app/lib/cards/product_cards/smooth_product_card_template.dart b/packages/smooth_app/lib/cards/product_cards/smooth_product_card_template.dart new file mode 100644 index 000000000000..c1df29390a16 --- /dev/null +++ b/packages/smooth_app/lib/cards/product_cards/smooth_product_card_template.dart @@ -0,0 +1,80 @@ +import 'package:flutter/material.dart'; +import 'package:smooth_app/cards/product_cards/smooth_product_card_found.dart'; +import 'package:smooth_app/generic_lib/design_constants.dart'; +import 'package:smooth_app/generic_lib/widgets/smooth_card.dart'; +import 'package:smooth_app/generic_lib/widgets/smooth_product_image_container.dart'; +import 'package:smooth_app/helpers/ui_helpers.dart'; + +/// Empty template for a product card display. +/// +/// Based on the "real" [SmoothProductCardFound]. +class SmoothProductCardTemplate extends StatelessWidget { + const SmoothProductCardTemplate(); + + @override + Widget build(BuildContext context) { + final Size screenSize = MediaQuery.of(context).size; + final ThemeData themeData = Theme.of(context); + final bool isDarkMode = themeData.colorScheme.brightness == Brightness.dark; + final Color itemColor = isDarkMode ? PRIMARY_GREY_COLOR : LIGHT_GREY_COLOR; + final Color backgroundColor = isDarkMode ? Colors.black : Colors.white; + final double iconSize = IconWidgetSizer.getIconSizeFromContext(context); + final Widget textWidget = Container( + width: screenSize.width * .4, + height: screenSize.width * .05, + color: itemColor, + ); + // In the actual display, it's a 240x130 svg resized with iconSize + final Widget svgWidget = Container( + height: iconSize * .9, + width: 240 * iconSize / 130, + color: itemColor, + ); + return Container( + decoration: BoxDecoration( + borderRadius: ROUNDED_BORDER_RADIUS, + color: backgroundColor, + ), + child: SmoothCard( + elevation: SmoothProductCardFound.elevation, + color: Colors.transparent, + padding: const EdgeInsets.all(VERY_SMALL_SPACE), + child: Row( + children: [ + SmoothProductImageContainer( + width: screenSize.width * 0.20, + height: screenSize.width * 0.20, + child: Container(color: itemColor), + ), + const Padding(padding: EdgeInsets.only(left: VERY_SMALL_SPACE)), + Expanded( + child: SizedBox( + height: screenSize.width * 0.2, + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + textWidget, + textWidget, + textWidget, + ], + ), + ), + ), + const Padding(padding: EdgeInsets.only(left: VERY_SMALL_SPACE)), + Padding( + padding: const EdgeInsets.all(VERY_SMALL_SPACE), + child: Column( + children: [ + svgWidget, + Container(height: iconSize * .2), + svgWidget, + ], + ), + ), + ], + ), + ), + ); + } +} diff --git a/packages/smooth_app/lib/generic_lib/widgets/smooth_product_image.dart b/packages/smooth_app/lib/generic_lib/widgets/smooth_product_image.dart index 44123e68d297..5b86914093bf 100644 --- a/packages/smooth_app/lib/generic_lib/widgets/smooth_product_image.dart +++ b/packages/smooth_app/lib/generic_lib/widgets/smooth_product_image.dart @@ -1,8 +1,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; import 'package:openfoodfacts/model/Product.dart'; -import 'package:smooth_app/generic_lib/design_constants.dart'; +import 'package:smooth_app/generic_lib/widgets/smooth_product_image_container.dart'; +/// Main product image on a product card. class SmoothProductImage extends StatelessWidget { const SmoothProductImage({ required this.product, @@ -25,21 +26,13 @@ class SmoothProductImage extends StatelessWidget { if (result != null) { return result; } - return ClipRRect( - borderRadius: ROUNDED_BORDER_RADIUS, - child: FittedBox( - child: Container( - width: width, - height: height, - decoration: const BoxDecoration( - borderRadius: ROUNDED_BORDER_RADIUS, - ), - child: Center( - child: SvgPicture.asset( - 'assets/product/product_not_found.svg', - fit: BoxFit.cover, - ), - ), + return SmoothProductImageContainer( + width: width, + height: height, + child: Center( + child: SvgPicture.asset( + 'assets/product/product_not_found.svg', + fit: BoxFit.cover, ), ), ); @@ -47,29 +40,26 @@ class SmoothProductImage extends StatelessWidget { Widget? _buildFromUrl(final String? url) => url == null || url.isEmpty ? null - : ClipRRect( - borderRadius: ROUNDED_BORDER_RADIUS, - child: SizedBox( - width: width, - height: height, - child: Image.network( - url, - fit: BoxFit.contain, - loadingBuilder: (BuildContext context, Widget child, - ImageChunkEvent? progress) => - progress == null - ? child - : Center( - child: CircularProgressIndicator( - strokeWidth: 2.5, - valueColor: const AlwaysStoppedAnimation( - Colors.white, - ), - value: progress.cumulativeBytesLoaded / - progress.expectedTotalBytes!, + : SmoothProductImageContainer( + width: width, + height: height, + child: Image.network( + url, + fit: BoxFit.contain, + loadingBuilder: (BuildContext context, Widget child, + ImageChunkEvent? progress) => + progress == null + ? child + : Center( + child: CircularProgressIndicator( + strokeWidth: 2.5, + valueColor: const AlwaysStoppedAnimation( + Colors.white, ), + value: progress.cumulativeBytesLoaded / + progress.expectedTotalBytes!, ), - ), + ), ), ); } diff --git a/packages/smooth_app/lib/generic_lib/widgets/smooth_product_image_container.dart b/packages/smooth_app/lib/generic_lib/widgets/smooth_product_image_container.dart new file mode 100644 index 000000000000..a7c451fed278 --- /dev/null +++ b/packages/smooth_app/lib/generic_lib/widgets/smooth_product_image_container.dart @@ -0,0 +1,25 @@ +import 'package:flutter/material.dart'; +import 'package:smooth_app/generic_lib/design_constants.dart'; + +/// Container to display the main product image on a product card. +class SmoothProductImageContainer extends StatelessWidget { + const SmoothProductImageContainer({ + required this.height, + required this.width, + required this.child, + }); + + final double height; + final double width; + final Widget child; + + @override + Widget build(BuildContext context) => ClipRRect( + borderRadius: ROUNDED_BORDER_RADIUS, + child: SizedBox( + width: width, + height: height, + child: child, + ), + ); +} From 4255a5faef1f611adfc299c56b0b033f096d9e38 Mon Sep 17 00:00:00 2001 From: Edouard Marquez Date: Thu, 14 Jul 2022 15:55:24 +0200 Subject: [PATCH 21/51] feat: Smooth Dialog with an axis for buttons (#2587) * Smooth Dialog with an axis for the buttons * Remove default axis value --- .../dialogs/smooth_alert_dialog.dart | 88 ++++++++++++++----- .../product/common/product_refresher.dart | 1 + 2 files changed, 68 insertions(+), 21 deletions(-) diff --git a/packages/smooth_app/lib/generic_lib/dialogs/smooth_alert_dialog.dart b/packages/smooth_app/lib/generic_lib/dialogs/smooth_alert_dialog.dart index 2c16c41b9ae3..4e8a13935f9e 100644 --- a/packages/smooth_app/lib/generic_lib/dialogs/smooth_alert_dialog.dart +++ b/packages/smooth_app/lib/generic_lib/dialogs/smooth_alert_dialog.dart @@ -21,6 +21,7 @@ class SmoothAlertDialog extends StatelessWidget { required this.body, this.positiveAction, this.negativeAction, + this.actionsAxis, this.close = false, }); @@ -29,6 +30,7 @@ class SmoothAlertDialog extends StatelessWidget { final Widget body; final SmoothActionButton? positiveAction; final SmoothActionButton? negativeAction; + final Axis? actionsAxis; static const EdgeInsets _contentPadding = EdgeInsets.only( left: 24.0, @@ -66,6 +68,7 @@ class SmoothAlertDialog extends StatelessWidget { child: SmoothActionButtonsBar( positiveAction: positiveAction, negativeAction: negativeAction, + axis: actionsAxis, ), ); } @@ -123,10 +126,15 @@ class SmoothAlertDialog extends StatelessWidget { } } +/// Will display one or two buttons. +/// If the [axis] is [Axis.horizontal], the positive button will be on the end +/// If the [axis] is [Axis.vertical], the positive button will be on the start +/// Note: This Widget supports both RTL and LTR languages. class SmoothActionButtonsBar extends StatelessWidget { const SmoothActionButtonsBar({ this.positiveAction, this.negativeAction, + this.axis, super.key, }) : assert(positiveAction != null || negativeAction != null, 'At least one action must be passed!'); @@ -141,17 +149,31 @@ class SmoothActionButtonsBar extends StatelessWidget { final SmoothActionButton? positiveAction; final SmoothActionButton? negativeAction; + final Axis? axis; @override Widget build(BuildContext context) { - return Row( - mainAxisAlignment: MainAxisAlignment.spaceAround, - children: _buildActions( - context, - positiveAction: positiveAction, - negativeAction: negativeAction, - )!, - ); + final Axis buttonsAxis = axis ?? Axis.horizontal; + final List actions = _buildActions( + context, + buttonsAxis, + positiveAction: positiveAction, + negativeAction: negativeAction, + )!; + + if (axis == Axis.horizontal) { + return Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: actions, + ); + } else { + return IntrinsicWidth( + child: Column( + mainAxisAlignment: MainAxisAlignment.end, + children: actions, + ), + ); + } } } @@ -159,7 +181,8 @@ class SmoothActionButtonsBar extends StatelessWidget { /// In LTR mode: Negative - Positive /// In RTL mode: Positive - Negative List? _buildActions( - BuildContext context, { + BuildContext context, + Axis axis, { SmoothActionButton? positiveAction, SmoothActionButton? negativeAction, }) { @@ -167,20 +190,43 @@ List? _buildActions( return null; } - final List actions = [ - if (negativeAction != null) - Expanded( - child: _SmoothActionFlatButton( - buttonData: negativeAction, + List actions; + + if (axis == Axis.horizontal) { + // Negative action first + actions = [ + if (negativeAction != null) + Expanded( + child: _SmoothActionFlatButton( + buttonData: negativeAction, + ), ), - ), - if (positiveAction != null) - Expanded( - child: _SmoothActionElevatedButton( - buttonData: positiveAction, + if (positiveAction != null) + Expanded( + child: _SmoothActionElevatedButton( + buttonData: positiveAction, + ), ), - ), - ]; + ]; + } else { + // Positive first + actions = [ + if (positiveAction != null) + SizedBox( + width: double.infinity, + child: _SmoothActionElevatedButton( + buttonData: positiveAction, + ), + ), + if (negativeAction != null) + SizedBox( + width: double.infinity, + child: _SmoothActionFlatButton( + buttonData: negativeAction, + ), + ), + ]; + } if (Directionality.of(context) == TextDirection.rtl) { return actions.reversed.toList(growable: false); diff --git a/packages/smooth_app/lib/pages/product/common/product_refresher.dart b/packages/smooth_app/lib/pages/product/common/product_refresher.dart index 8cd14c7159e1..2c09c9cfeab0 100644 --- a/packages/smooth_app/lib/pages/product/common/product_refresher.dart +++ b/packages/smooth_app/lib/pages/product/common/product_refresher.dart @@ -22,6 +22,7 @@ class ProductRefresher { context: context, builder: (BuildContext context) => SmoothAlertDialog( body: Text(appLocalizations.sign_in_mandatory), + actionsAxis: Axis.vertical, positiveAction: SmoothActionButton( text: appLocalizations.sign_in, onPressed: () async { From 4314982cfdc14ad26ef8cfb2670844172222fa4b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Jul 2022 19:59:35 +0200 Subject: [PATCH 22/51] chore(deps): bump xcode-install in /packages/smooth_app/ios (#2597) Bumps [xcode-install](https://github.com/neonichu/xcode-install) from 2.8.0 to 2.8.1. - [Release notes](https://github.com/neonichu/xcode-install/releases) - [Commits](https://github.com/neonichu/xcode-install/compare/v2.8.0...v2.8.1) --- updated-dependencies: - dependency-name: xcode-install dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- packages/smooth_app/ios/Gemfile.lock | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/packages/smooth_app/ios/Gemfile.lock b/packages/smooth_app/ios/Gemfile.lock index e1292051b537..c04c5c8ad29a 100644 --- a/packages/smooth_app/ios/Gemfile.lock +++ b/packages/smooth_app/ios/Gemfile.lock @@ -14,7 +14,7 @@ GEM artifactory (3.0.15) atomos (0.1.3) aws-eventstream (1.2.0) - aws-partitions (1.602.0) + aws-partitions (1.605.0) aws-sdk-core (3.131.2) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.525.0) @@ -31,7 +31,7 @@ GEM aws-eventstream (~> 1, >= 1.0.2) babosa (1.0.4) blockenspiel (0.5.0) - claide (1.0.3) + claide (1.1.0) colored (1.2) colored2 (3.1.2) commander (4.6.0) @@ -115,8 +115,8 @@ GEM fastlane-plugin-flutter_dart_version_manager (0.1.5) fastlane-plugin-versioning (0.5.1) gh_inspector (1.1.3) - google-apis-androidpublisher_v3 (0.23.0) - google-apis-core (>= 0.6, < 2.a) + google-apis-androidpublisher_v3 (0.25.0) + google-apis-core (>= 0.7, < 2.a) google-apis-core (0.7.0) addressable (~> 2.5, >= 2.5.1) googleauth (>= 0.16.2, < 2.a) @@ -126,12 +126,12 @@ GEM retriable (>= 2.0, < 4.a) rexml webrick - google-apis-iamcredentials_v1 (0.12.0) - google-apis-core (>= 0.6, < 2.a) - google-apis-playcustomapp_v1 (0.9.0) - google-apis-core (>= 0.6, < 2.a) - google-apis-storage_v1 (0.16.0) - google-apis-core (>= 0.6, < 2.a) + google-apis-iamcredentials_v1 (0.13.0) + google-apis-core (>= 0.7, < 2.a) + google-apis-playcustomapp_v1 (0.10.0) + google-apis-core (>= 0.7, < 2.a) + google-apis-storage_v1 (0.18.0) + google-apis-core (>= 0.7, < 2.a) google-cloud-core (1.6.0) google-cloud-env (~> 1.0) google-cloud-errors (~> 1.0) @@ -207,8 +207,8 @@ GEM blockenspiel (~> 0.5) webrick (1.7.0) word_wrap (1.0.0) - xcode-install (2.8.0) - claide (>= 0.9.1, < 1.1.0) + xcode-install (2.8.1) + claide (>= 0.9.1) fastlane (>= 2.1.0, < 3.0.0) xcodeproj (1.22.0) CFPropertyList (>= 2.3.3, < 4.0) From 390ea3cc4d144b814d78c1d3927dc9577464ea32 Mon Sep 17 00:00:00 2001 From: monsieurtanuki Date: Thu, 14 Jul 2022 20:00:19 +0200 Subject: [PATCH 23/51] fix: ean - now we display ean8 (and not just ean13) (#2596) Impacted file: * `edit_product_page.dart` --- packages/smooth_app/lib/pages/product/edit_product_page.dart | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/smooth_app/lib/pages/product/edit_product_page.dart b/packages/smooth_app/lib/pages/product/edit_product_page.dart index 23f8855a50d0..4e5eb8a8db6e 100644 --- a/packages/smooth_app/lib/pages/product/edit_product_page.dart +++ b/packages/smooth_app/lib/pages/product/edit_product_page.dart @@ -62,7 +62,9 @@ class _EditProductPageState extends State { horizontal: screenSize.width / 4, vertical: SMALL_SPACE, ), - barcode: Barcode.ean13(), + barcode: _product.barcode!.length == 8 + ? Barcode.ean8() + : Barcode.ean13(), data: _product.barcode!, errorBuilder: (final BuildContext context, String? _) => ListTile( From 6c22a17014a1d81f604f0c13a68d21ebeb11309a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 15 Jul 2022 08:14:34 +0200 Subject: [PATCH 24/51] chore: New Crowdin translations (#2598) Co-authored-by: Crowdin Bot --- packages/smooth_app/lib/l10n/app_bg.arb | 12 ++++++------ packages/smooth_app/lib/l10n/app_fr.arb | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/smooth_app/lib/l10n/app_bg.arb b/packages/smooth_app/lib/l10n/app_bg.arb index 7998ab87dc67..a34874247d04 100644 --- a/packages/smooth_app/lib/l10n/app_bg.arb +++ b/packages/smooth_app/lib/l10n/app_bg.arb @@ -320,7 +320,7 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Преводите са една от ключовите задачи на проекта", "@contribute_translate_text_2": {}, - "contribute_share_header": "Share Open Food Facts with your friends", + "contribute_share_header": "Сподели Open Food Facts с приятелите си", "@contribute_share_header": {}, "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", "@contribute_share_content": { @@ -428,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", + "packaging_editing_instructions": "Изброй всички части на опаковката, разделени със запетая или ред, с тяхното количество (напр. 1 или 6), вид (напр. бутилка, кутия, кен), материал (напр. пластмаса, метал, алуминий) и ако е наличен, техния размер (напр. 33cl) и инструкции за рециклиране.\nПример: 1 стъклена бутилка за рециклиране, 1 пластмасова тапа за изхвърляне", "packaging_editing_error": "Неуспешно запазване на опаковката.", "packaging_editing_image_error": "Неуспешно получаване на новата снимка на опаковката.", "packaging_editing_title": "Редактиране на опаковката", @@ -1027,11 +1027,11 @@ "@edit_product_form_item_origins_hint": { "description": "Product edition - Origins - input textfield hint" }, - "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "edit_product_form_item_origins_explainer_1": "Добави всички указания за произход, които можеш да намериш върху опаковката. Не е нужно да се притесняваш за произхода, посочен директно в списъка на съставките.", "@edit_product_form_item_origins_explainer_1": { "description": "Product edition - Origins - input explainer, part 1" }, - "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "edit_product_form_item_origins_explainer_2": "Примери: Говеждо от Аржентина, Соята не идва от Европейския съюз", "@edit_product_form_item_origins_explainer_2": { "description": "Product edition - Origins - input explainer, part 2" }, @@ -1071,11 +1071,11 @@ "@edit_product_form_item_categories_explainer_1": { "description": "Product edition - Categories - input explainer, part 1" }, - "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "edit_product_form_item_categories_explainer_2": "В случай, че опледелена категория не е налична в автоматичното довършване, не се колебай да я добавиш защото това ще ни помогне да подобрим Open Food Facts в твоята страна.", "@edit_product_form_item_categories_explainer_2": { "description": "Product edition - Categories - input explainer, part 2" }, - "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "edit_product_form_item_categories_explainer_3": "Примери: Сардини в дървено масло, Портокалов сок от концентрат", "@edit_product_form_item_categories_explainer_3": { "description": "Product edition - Categories - input explainer, part 3" }, diff --git a/packages/smooth_app/lib/l10n/app_fr.arb b/packages/smooth_app/lib/l10n/app_fr.arb index 9322a7711aae..d7c159ca3fd5 100644 --- a/packages/smooth_app/lib/l10n/app_fr.arb +++ b/packages/smooth_app/lib/l10n/app_fr.arb @@ -1550,4 +1550,4 @@ "@no_internet_connection": { "description": "Message when there is no internet connection" } -} +} \ No newline at end of file From 6b52473394b921126d71be3291902ad27aa03e62 Mon Sep 17 00:00:00 2001 From: Edouard Marquez Date: Fri, 15 Jul 2022 19:17:58 +0200 Subject: [PATCH 25/51] Revert "feat: Smooth Dialog with an axis for buttons (#2587)" (#2608) This reverts commit 4255a5faef1f611adfc299c56b0b033f096d9e38. --- .../dialogs/smooth_alert_dialog.dart | 88 +++++-------------- .../product/common/product_refresher.dart | 1 - 2 files changed, 21 insertions(+), 68 deletions(-) diff --git a/packages/smooth_app/lib/generic_lib/dialogs/smooth_alert_dialog.dart b/packages/smooth_app/lib/generic_lib/dialogs/smooth_alert_dialog.dart index 4e8a13935f9e..2c16c41b9ae3 100644 --- a/packages/smooth_app/lib/generic_lib/dialogs/smooth_alert_dialog.dart +++ b/packages/smooth_app/lib/generic_lib/dialogs/smooth_alert_dialog.dart @@ -21,7 +21,6 @@ class SmoothAlertDialog extends StatelessWidget { required this.body, this.positiveAction, this.negativeAction, - this.actionsAxis, this.close = false, }); @@ -30,7 +29,6 @@ class SmoothAlertDialog extends StatelessWidget { final Widget body; final SmoothActionButton? positiveAction; final SmoothActionButton? negativeAction; - final Axis? actionsAxis; static const EdgeInsets _contentPadding = EdgeInsets.only( left: 24.0, @@ -68,7 +66,6 @@ class SmoothAlertDialog extends StatelessWidget { child: SmoothActionButtonsBar( positiveAction: positiveAction, negativeAction: negativeAction, - axis: actionsAxis, ), ); } @@ -126,15 +123,10 @@ class SmoothAlertDialog extends StatelessWidget { } } -/// Will display one or two buttons. -/// If the [axis] is [Axis.horizontal], the positive button will be on the end -/// If the [axis] is [Axis.vertical], the positive button will be on the start -/// Note: This Widget supports both RTL and LTR languages. class SmoothActionButtonsBar extends StatelessWidget { const SmoothActionButtonsBar({ this.positiveAction, this.negativeAction, - this.axis, super.key, }) : assert(positiveAction != null || negativeAction != null, 'At least one action must be passed!'); @@ -149,31 +141,17 @@ class SmoothActionButtonsBar extends StatelessWidget { final SmoothActionButton? positiveAction; final SmoothActionButton? negativeAction; - final Axis? axis; @override Widget build(BuildContext context) { - final Axis buttonsAxis = axis ?? Axis.horizontal; - final List actions = _buildActions( - context, - buttonsAxis, - positiveAction: positiveAction, - negativeAction: negativeAction, - )!; - - if (axis == Axis.horizontal) { - return Row( - mainAxisAlignment: MainAxisAlignment.spaceAround, - children: actions, - ); - } else { - return IntrinsicWidth( - child: Column( - mainAxisAlignment: MainAxisAlignment.end, - children: actions, - ), - ); - } + return Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: _buildActions( + context, + positiveAction: positiveAction, + negativeAction: negativeAction, + )!, + ); } } @@ -181,8 +159,7 @@ class SmoothActionButtonsBar extends StatelessWidget { /// In LTR mode: Negative - Positive /// In RTL mode: Positive - Negative List? _buildActions( - BuildContext context, - Axis axis, { + BuildContext context, { SmoothActionButton? positiveAction, SmoothActionButton? negativeAction, }) { @@ -190,43 +167,20 @@ List? _buildActions( return null; } - List actions; - - if (axis == Axis.horizontal) { - // Negative action first - actions = [ - if (negativeAction != null) - Expanded( - child: _SmoothActionFlatButton( - buttonData: negativeAction, - ), - ), - if (positiveAction != null) - Expanded( - child: _SmoothActionElevatedButton( - buttonData: positiveAction, - ), - ), - ]; - } else { - // Positive first - actions = [ - if (positiveAction != null) - SizedBox( - width: double.infinity, - child: _SmoothActionElevatedButton( - buttonData: positiveAction, - ), + final List actions = [ + if (negativeAction != null) + Expanded( + child: _SmoothActionFlatButton( + buttonData: negativeAction, ), - if (negativeAction != null) - SizedBox( - width: double.infinity, - child: _SmoothActionFlatButton( - buttonData: negativeAction, - ), + ), + if (positiveAction != null) + Expanded( + child: _SmoothActionElevatedButton( + buttonData: positiveAction, ), - ]; - } + ), + ]; if (Directionality.of(context) == TextDirection.rtl) { return actions.reversed.toList(growable: false); diff --git a/packages/smooth_app/lib/pages/product/common/product_refresher.dart b/packages/smooth_app/lib/pages/product/common/product_refresher.dart index 2c09c9cfeab0..8cd14c7159e1 100644 --- a/packages/smooth_app/lib/pages/product/common/product_refresher.dart +++ b/packages/smooth_app/lib/pages/product/common/product_refresher.dart @@ -22,7 +22,6 @@ class ProductRefresher { context: context, builder: (BuildContext context) => SmoothAlertDialog( body: Text(appLocalizations.sign_in_mandatory), - actionsAxis: Axis.vertical, positiveAction: SmoothActionButton( text: appLocalizations.sign_in, onPressed: () async { From 2dab8437c6181f0071cabee643b65aa3ba3de089 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 17 Jul 2022 14:42:35 +0200 Subject: [PATCH 26/51] chore: New Crowdin translations (#2610) Co-authored-by: Crowdin Bot --- packages/smooth_app/lib/l10n/app_cs.arb | 2 +- packages/smooth_app/lib/l10n/app_it.arb | 12 ++++++------ packages/smooth_app/lib/l10n/app_nl.arb | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/smooth_app/lib/l10n/app_cs.arb b/packages/smooth_app/lib/l10n/app_cs.arb index a1565b361f3a..f6f38e401909 100644 --- a/packages/smooth_app/lib/l10n/app_cs.arb +++ b/packages/smooth_app/lib/l10n/app_cs.arb @@ -663,7 +663,7 @@ "count": {} } }, - "plural_compare_x_products": "{count,plural, =1{Compare one Product} other{Compare {count} Products}", + "plural_compare_x_products": "{count,plural, =1{Compare one Product} other{Porovnání {count} produktů}", "@plural_compare_x_products": { "description": "Button label", "placeholders": { diff --git a/packages/smooth_app/lib/l10n/app_it.arb b/packages/smooth_app/lib/l10n/app_it.arb index f65583b0d36e..66a1eb5c7eee 100644 --- a/packages/smooth_app/lib/l10n/app_it.arb +++ b/packages/smooth_app/lib/l10n/app_it.arb @@ -320,7 +320,7 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Le traduzioni sono tra i compiti chiave del progetto", "@contribute_translate_text_2": {}, - "contribute_share_header": "Share Open Food Facts with your friends", + "contribute_share_header": "Condividi Open Food Facts con i tuoi amici", "@contribute_share_header": {}, "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", "@contribute_share_content": { @@ -1027,11 +1027,11 @@ "@edit_product_form_item_origins_hint": { "description": "Product edition - Origins - input textfield hint" }, - "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "edit_product_form_item_origins_explainer_1": "Aggiungi eventuali indicazioni di provenienza che trovi sulla confezione. Non devi preoccuparti delle origini indicate direttamente nella lista degli ingredienti.", "@edit_product_form_item_origins_explainer_1": { "description": "Product edition - Origins - input explainer, part 1" }, - "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "edit_product_form_item_origins_explainer_2": "Esempi: Manzo dall'Argentina, La soia non proviene dall'Unione Europea", "@edit_product_form_item_origins_explainer_2": { "description": "Product edition - Origins - input explainer, part 2" }, @@ -1067,15 +1067,15 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, - "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "edit_product_form_item_categories_explainer_1": "Indica solo la categoria più specifica. Le categorie principali verranno aggiunte automaticamente.", "@edit_product_form_item_categories_explainer_1": { "description": "Product edition - Categories - input explainer, part 1" }, - "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "edit_product_form_item_categories_explainer_2": "Nel caso in cui una categoria non sia disponibile nel completamento automatico, sentiti libero di aggiungerla comunque, questo ci aiuterà a migliorare Open Food Facts nel tuo paese.", "@edit_product_form_item_categories_explainer_2": { "description": "Product edition - Categories - input explainer, part 2" }, - "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "edit_product_form_item_categories_explainer_3": "Esempi: Sardine sott'olio d'oliva, Succo d'arancia da concentrato", "@edit_product_form_item_categories_explainer_3": { "description": "Product edition - Categories - input explainer, part 3" }, diff --git a/packages/smooth_app/lib/l10n/app_nl.arb b/packages/smooth_app/lib/l10n/app_nl.arb index 2fa9840c96d8..ab125a25c440 100644 --- a/packages/smooth_app/lib/l10n/app_nl.arb +++ b/packages/smooth_app/lib/l10n/app_nl.arb @@ -274,7 +274,7 @@ "support_join_slack": "Vraag om hulp in ons Slack-kanaal", "support_via_email": "Stuur ons een e-mail", "support_via_email_include_logs_dialog_title": "App-logboeken verzenden?", - "support_via_email_include_logs_dialog_body": "Wilt u toepassingslogboeken toevoegen aan uw e-mail?", + "support_via_email_include_logs_dialog_body": "Wilt u toepassingslogboeken als bijlage bij uw e-mail voegen?", "termsOfUse": "Gebruiksvoorwaarden", "@termsOfUse": {}, "about_this_app": "Over deze app", @@ -1055,7 +1055,7 @@ "@edit_product_form_item_emb_codes_hint": { "description": "Product edition - Traceability Codes - input textfield hint" }, - "edit_product_form_item_emb_codes_explanations": "In Europa codeert u in een ovaal met de 2 landinitialen gevolgd door een cijfer en CE.\nVoorbeelden: EMB 53062, FR 62.448.034 CE, 84 R 20, 33 RECOLTANT 522", + "edit_product_form_item_emb_codes_explanations": "In Europa is het een code in een ovaal met de 2 landinitialen gevolgd door een getal en CE.\nVoorbeelden: EMB 53062, FR 62.448.034 CE, 84 R 20, 33 RECOLTANT 522", "@edit_product_form_item_emb_codes_examples": { "description": "Product edition - EMB Codes - explanations" }, @@ -1494,7 +1494,7 @@ "@user_list_all_empty": { "description": "Small message when there are no user lists" }, - "user_list_length": "{count,plural, one {} =0{Lege lijst} =1{Eén product} other{{count} producten}}", + "user_list_length": "{count,plural, one {} =0{Empty list} =1{One product} other{{count} products}}", "@user_list_length": { "description": "Length of a user product list", "placeholders": { From 581693420dc0ad8e9a0e584e88e401e4666b5bb8 Mon Sep 17 00:00:00 2001 From: monsieurtanuki Date: Mon, 18 Jul 2022 08:58:30 +0200 Subject: [PATCH 27/51] feat: #2513 - product page - moved higher the action bar (#2615) Impacted file: * `new_product_page.dart`: moved higher the action bar --- packages/smooth_app/lib/pages/product/new_product_page.dart | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/smooth_app/lib/pages/product/new_product_page.dart b/packages/smooth_app/lib/pages/product/new_product_page.dart index fc56563e6b7f..812e72caa60a 100644 --- a/packages/smooth_app/lib/pages/product/new_product_page.dart +++ b/packages/smooth_app/lib/pages/product/new_product_page.dart @@ -227,7 +227,6 @@ class _ProductPageState extends State with TraceableClientMixin { ), ), ), - _buildKnowledgePanelCards(), _buildActionBar(appLocalizations), if (productListNames.isNotEmpty) _buildListWidget( @@ -235,6 +234,7 @@ class _ProductPageState extends State with TraceableClientMixin { productListNames, daoProductList, ), + _buildKnowledgePanelCards(), if (context.read().getFlag( UserPreferencesDevMode.userPreferencesFlagAdditionalButton) ?? false) @@ -272,7 +272,6 @@ class _ProductPageState extends State with TraceableClientMixin { final bool refreshed = await ProductListUserDialogHelper(daoProductList) .showUserListsWithBarcodeDialog(context, widget.product); if (refreshed) { - _mustScrollToTheEnd = true; setState(() {}); } } From 662a5edcd1bae74edb3d73407aa1e9dd7ee5eaee Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 18 Jul 2022 15:12:52 +0200 Subject: [PATCH 28/51] chore: New Crowdin translations to review and merge (#2614) * chore: New Crowdin translations * Update app_bg.arb Co-authored-by: Crowdin Bot Co-authored-by: Pierre Slamich --- packages/smooth_app/lib/l10n/app_bg.arb | 7 ++++--- packages/smooth_app/lib/l10n/app_ca.arb | 18 +++++++++--------- packages/smooth_app/lib/l10n/app_cs.arb | 4 ++-- packages/smooth_app/lib/l10n/app_es.arb | 2 +- 4 files changed, 16 insertions(+), 15 deletions(-) diff --git a/packages/smooth_app/lib/l10n/app_bg.arb b/packages/smooth_app/lib/l10n/app_bg.arb index a34874247d04..9fe414e17531 100644 --- a/packages/smooth_app/lib/l10n/app_bg.arb +++ b/packages/smooth_app/lib/l10n/app_bg.arb @@ -322,7 +322,7 @@ "@contribute_translate_text_2": {}, "contribute_share_header": "Сподели Open Food Facts с приятелите си", "@contribute_share_header": {}, - "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "contribute_share_content": "Исках да те уведомя за приложението, което използвам, Open Food Facts, което ти позволява да получаваш информация за въздействието на твоьта храна върху здравето и околната среда по персонализиран начин. Работи чрез сканиране на баркодовете на опаковката.То е безплатно, не изисква регистрация и дори можеш да помогнеш за увеличаване на броя на дешифрираните продукти. Ето връзката, за да го получиш за твоя телефон: https://openfoodfacts.app", "@contribute_share_content": { "description": "Content that will be shared, don't forget to include the URL" }, @@ -1067,7 +1067,7 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, - "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "edit_product_form_item_categories_explainer_1": "Посочи само най-конкретната категория. Родителските категориите ще бъдат добавени автоматично.", "@edit_product_form_item_categories_explainer_1": { "description": "Product edition - Categories - input explainer, part 1" }, @@ -1550,4 +1550,5 @@ "@no_internet_connection": { "description": "Message when there is no internet connection" } -} \ No newline at end of file + +} diff --git a/packages/smooth_app/lib/l10n/app_ca.arb b/packages/smooth_app/lib/l10n/app_ca.arb index a21ae60a4bda..f267bcce5917 100644 --- a/packages/smooth_app/lib/l10n/app_ca.arb +++ b/packages/smooth_app/lib/l10n/app_ca.arb @@ -320,9 +320,9 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Les traduccions són una de les tasques clau del projecte", "@contribute_translate_text_2": {}, - "contribute_share_header": "Share Open Food Facts with your friends", + "contribute_share_header": "Compartiu Open Food Facts amb els amics", "@contribute_share_header": {}, - "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "contribute_share_content": "Volia donar-te a conèixer l'aplicació que he estat utilitzant, Open Food Facts, que et permet conèixer els impactes sobre la salut i el medi ambient dels teus aliments, de manera personalitzada. Funciona escanejant els codis de barres de l'embalatge. Finalment, és gratuïta, no requereix registre i fins i tot pots ajudar a augmentar el nombre de productes desxifrats. Aquí teniu l'enllaç per obtenir-la per a telèfon: https://openfoodfacts.app", "@contribute_share_content": { "description": "Content that will be shared, don't forget to include the URL" }, @@ -428,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", + "packaging_editing_instructions": "Introduïu totes les peces d'embalatge separades per una coma o una línia, amb la seva quantitat (p. ex. 1 o 6) tipus (p. ex. ampolla, caixa, llauna), material (p. ex. plàstic, metall, alumini) i, si està disponible, la seva mida (p. ex. 33cl) i instruccions de reciclatge.\nExemple: 1 ampolla de vidre per reciclar, 1 suro de plàstic per llençar", "packaging_editing_error": "Failed to save the packaging.", "packaging_editing_image_error": "Failed to get a new packaging image.", "packaging_editing_title": "Edit Packaging", @@ -1027,11 +1027,11 @@ "@edit_product_form_item_origins_hint": { "description": "Product edition - Origins - input textfield hint" }, - "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "edit_product_form_item_origins_explainer_1": "Afegiu qualsevol indicació d'origen que pugueu trobar a l'embalatge. No us haureu de preocupar pels orígens indicats directament a la llista d'ingredients.", "@edit_product_form_item_origins_explainer_1": { "description": "Product edition - Origins - input explainer, part 1" }, - "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "edit_product_form_item_origins_explainer_2": "Exemples: vedella d'Argentina, La soja no prové de la Unió Europea", "@edit_product_form_item_origins_explainer_2": { "description": "Product edition - Origins - input explainer, part 2" }, @@ -1067,15 +1067,15 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, - "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "edit_product_form_item_categories_explainer_1": "Indicau només la categoria més concreta. Les categories arrel s'afegiran automàticament.", "@edit_product_form_item_categories_explainer_1": { "description": "Product edition - Categories - input explainer, part 1" }, - "edit_product_form_item_categories_explainer_2": "In case a category is not available in autocomplete, feel free to add it anyway, that will help us improve Open Food Facts in your country.", + "edit_product_form_item_categories_explainer_2": "Si una categoria no estigués disponible en autocompletar, no dubteu a afegir-la de totes maneres, això ens ajudarà a millorar Open Food Facts al vostre país.", "@edit_product_form_item_categories_explainer_2": { "description": "Product edition - Categories - input explainer, part 2" }, - "edit_product_form_item_categories_explainer_3": "Examples: Sardines in olive oil, Orange juice from concentrate", + "edit_product_form_item_categories_explainer_3": "Exemples: Sardines en oli d'oliva, Suc de taronja a partir de concentrat", "@edit_product_form_item_categories_explainer_3": { "description": "Product edition - Categories - input explainer, part 3" }, @@ -1546,7 +1546,7 @@ "@choose from gallery": { "description": "Button label for choosing a photo from gallery" }, - "no_internet_connection": "No internet connection", + "no_internet_connection": "No hi ha connexió a Internet", "@no_internet_connection": { "description": "Message when there is no internet connection" } diff --git a/packages/smooth_app/lib/l10n/app_cs.arb b/packages/smooth_app/lib/l10n/app_cs.arb index f6f38e401909..b79e8bda262b 100644 --- a/packages/smooth_app/lib/l10n/app_cs.arb +++ b/packages/smooth_app/lib/l10n/app_cs.arb @@ -1338,7 +1338,7 @@ "@dev_mode_scan_preprocess_full_image": { "description": "Scan mode - Preprocess full image" }, - "dev_mode_scan_preprocess_half_image": "Camera stream and half image preprocessing, no scanning", + "dev_mode_scan_preprocess_half_image": "Přenos z kamery a předzpracování celého obrazu, žádné skenování", "@dev_mode_scan_preprocess_half_image": { "description": "Scan mode - Preprocess half image" }, @@ -1346,7 +1346,7 @@ "@dev_mode_scan_scan_full_image": { "description": "Scan mode - Scan full image" }, - "dev_mode_scan_scan_half_image": "Half image scanning", + "dev_mode_scan_scan_half_image": "Skenování poloviny obrazu", "@dev_mode_scan_scan_half_image": { "description": "Scan mode - Scan half image" }, diff --git a/packages/smooth_app/lib/l10n/app_es.arb b/packages/smooth_app/lib/l10n/app_es.arb index 6f172f0d01a2..0af40d0ac69d 100644 --- a/packages/smooth_app/lib/l10n/app_es.arb +++ b/packages/smooth_app/lib/l10n/app_es.arb @@ -322,7 +322,7 @@ "@contribute_translate_text_2": {}, "contribute_share_header": "Comparte Open Food Facts con tus amigos", "@contribute_share_header": {}, - "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "contribute_share_content": "Quería informarles sobre la aplicación que he estado usando, Open Food Facts, la cual permite conocer el impacto sobre la salud y el medio ambiente de su comida, de una manera personalizada. Funciona escaneado los códigos de barra del envase. Por último es gratis, no requiere registro, y le permite incrementar el número de productos de la base de datos. Aquí les dejo el vínculo para descargarla en su teléfono: https://openfoodfacts.app", "@contribute_share_content": { "description": "Content that will be shared, don't forget to include the URL" }, From 14d27e9492f6cc92756737e1c952a499dd48b983 Mon Sep 17 00:00:00 2001 From: Edouard Marquez Date: Mon, 18 Jul 2022 16:59:03 +0200 Subject: [PATCH 29/51] Increase the number of products imported from "V1" from 500 to 1000 (#2619) --- packages/data_importer/lib/data_importer.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/data_importer/lib/data_importer.dart b/packages/data_importer/lib/data_importer.dart index 873a7a054f17..4806e5584633 100644 --- a/packages/data_importer/lib/data_importer.dart +++ b/packages/data_importer/lib/data_importer.dart @@ -3,7 +3,7 @@ import 'package:data_importer/shared/platform_data_importer.dart'; import 'package:data_importer_shared/data_importer_shared.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; -/// Data importer from "V1" apps to Smothie ("V2") with: +/// Data importer from "V1" apps to Smoothie ("V2") with: /// - History and user lists /// - User credentials (login / password) class ApplicationDataImporter { @@ -14,7 +14,7 @@ class ApplicationDataImporter { /// Some users may have a long history on the previous app, we limit the /// import of last scanned products to this constant - static const int MAX_HISTORY_ITEMS = 500; + static const int MAX_HISTORY_ITEMS = 1000; /// The maximum number of times [startImport] can be called automatically static const int MAX_NUMBER_RETRIES = 5; From 9b52190d3065758ab50b7f50ae12ec8f433318a4 Mon Sep 17 00:00:00 2001 From: monsieurtanuki Date: Mon, 18 Jul 2022 20:40:51 +0200 Subject: [PATCH 30/51] feat: #2475 - "contribute" now links to "in app" to-be-completed page (#2623) Impacted file: * `user_preferences_contribute.dart`: now opens the "in app" to-be-completed page instead of the web version --- .../user_preferences_contribute.dart | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/packages/smooth_app/lib/pages/preferences/user_preferences_contribute.dart b/packages/smooth_app/lib/pages/preferences/user_preferences_contribute.dart index feddf3be0aec..8c31c1712648 100644 --- a/packages/smooth_app/lib/pages/preferences/user_preferences_contribute.dart +++ b/packages/smooth_app/lib/pages/preferences/user_preferences_contribute.dart @@ -7,6 +7,7 @@ import 'package:provider/provider.dart'; import 'package:share_plus/share_plus.dart'; import 'package:smooth_app/data_models/github_contributors_model.dart'; import 'package:smooth_app/data_models/user_preferences.dart'; +import 'package:smooth_app/database/local_database.dart'; import 'package:smooth_app/generic_lib/design_constants.dart'; import 'package:smooth_app/generic_lib/dialogs/smooth_alert_dialog.dart'; import 'package:smooth_app/helpers/launch_url_helper.dart'; @@ -14,6 +15,8 @@ import 'package:smooth_app/pages/preferences/abstract_user_preferences.dart'; import 'package:smooth_app/pages/preferences/user_preferences_list_tile.dart'; import 'package:smooth_app/pages/preferences/user_preferences_page.dart'; import 'package:smooth_app/pages/preferences/user_preferences_widgets.dart'; +import 'package:smooth_app/pages/product/common/product_query_page_helper.dart'; +import 'package:smooth_app/query/paged_to_be_completed_product_query.dart'; /// Display of "Contribute" for the preferences page. class UserPreferencesContribute extends AbstractUserPreferences { @@ -101,9 +104,19 @@ class UserPreferencesContribute extends AbstractUserPreferences { height: 10, ), TextButton( - onPressed: () => LaunchUrlHelper.launchURL( - 'https://world.openfoodfacts.org/state/to-be-completed', - false), + onPressed: () async { + final LocalDatabase localDatabase = + context.read(); + Navigator.of(context).pop(); + ProductQueryPageHelper().openBestChoice( + name: appLocalizations.all_search_to_be_completed_title, + heroTag: 'all_to_be_completed', + localDatabase: localDatabase, + productQuery: PagedToBeCompletedProductQuery(), + // the other "context"s being popped + context: this.context, + ); + }, child: Text( appLocalizations.contribute_improve_ProductsToBeCompleted, ), @@ -111,9 +124,7 @@ class UserPreferencesContribute extends AbstractUserPreferences { ], ), positiveAction: SmoothActionButton( - onPressed: () { - Navigator.of(context, rootNavigator: true).pop('dialog'); - }, + onPressed: () => Navigator.of(context).pop(), text: appLocalizations.okay, minWidth: 100, ), From 6a4c29f411e1c887d536449ad78d7705e087ef3b Mon Sep 17 00:00:00 2001 From: Edouard Marquez Date: Mon, 18 Jul 2022 23:03:08 +0200 Subject: [PATCH 31/51] When a product was removed from the carousel, the one displayed may be incorrect (#2620) --- packages/smooth_app/lib/pages/scan/scan_product_card.dart | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/smooth_app/lib/pages/scan/scan_product_card.dart b/packages/smooth_app/lib/pages/scan/scan_product_card.dart index 6d0ff8d5b5f4..a404f32b1051 100644 --- a/packages/smooth_app/lib/pages/scan/scan_product_card.dart +++ b/packages/smooth_app/lib/pages/scan/scan_product_card.dart @@ -6,7 +6,9 @@ import 'package:smooth_app/pages/product/new_product_page.dart'; import 'package:smooth_app/pages/product/summary_card.dart'; class ScanProductCard extends StatelessWidget { - const ScanProductCard(this.product); + ScanProductCard(this.product) + : assert(product.barcode!.isNotEmpty), + super(key: Key(product.barcode!)); final Product product; From ca960ed4d98d95a5971c69723dfc0bd8c900cf79 Mon Sep 17 00:00:00 2001 From: monsieurtanuki Date: Tue, 19 Jul 2022 00:08:26 +0200 Subject: [PATCH 32/51] fix: #2009 - product page will always pull down - and refresh (#2618) For the record, tested on `3489940014075` on server `world.openbeautyfacts.org`. I've also written the explanation behind the trick - perhaps that would make sense to create a wiki about nice tricks: ```dart // /!\ Smart Dart // `physics: const AlwaysScrollableScrollPhysics()` // means that we will always scroll, even if it's pointless. // Why do we need to? For the RefreshIndicator, that wouldn't be // triggered on a ListView smaller than the screen // (as there will be no scroll). ``` Impacted file: `new_product_page.dart`: forced the page content to scroll even when not necessary --- .../smooth_app/lib/pages/product/new_product_page.dart | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/smooth_app/lib/pages/product/new_product_page.dart b/packages/smooth_app/lib/pages/product/new_product_page.dart index 812e72caa60a..562887388c5f 100644 --- a/packages/smooth_app/lib/pages/product/new_product_page.dart +++ b/packages/smooth_app/lib/pages/product/new_product_page.dart @@ -202,7 +202,13 @@ class _ProductPageState extends State with TraceableClientMixin { return RefreshIndicator( onRefresh: () => _refreshProduct(context), child: ListView( - controller: _scrollController, + // /!\ Smart Dart + // `physics: const AlwaysScrollableScrollPhysics()` + // means that we will always scroll, even if it's pointless. + // Why do we need to? For the RefreshIndicator, that wouldn't be + // triggered on a ListView smaller than the screen + // (as there will be no scroll). + physics: const AlwaysScrollableScrollPhysics(), children: [ Align( heightFactor: 0.7, From 1eb6712ffb0820c677ad503c3e62c56b3a49bcec Mon Sep 17 00:00:00 2001 From: monsieurtanuki Date: Tue, 19 Jul 2022 06:57:30 +0200 Subject: [PATCH 33/51] feat: #2573 - KP cells are expanded on detail pages (#2581) Impacted files: * `knowledge_panel_card.dart`: no we are not initially expanded! (same as before) * `knowledge_panel_element_card.dart`: refactored * `knowledge_panel_expanded_card.dart`: refactored * `knowledge_panel_page.dart`: yes we are initially expanded! * `knowledge_panel_table_card.dart`: added an "initially expanded?" parameter to `TableCellWidget` * `knowledge_panels_builder.dart`: no we are not initially expanded! (same as before) --- .../knowledge_panel_card.dart | 1 + .../knowledge_panel_element_card.dart | 3 +++ .../knowledge_panel_expanded_card.dart | 3 +++ .../knowledge_panel_page.dart | 1 + .../knowledge_panel_table_card.dart | 22 ++++++++++++++----- .../knowledge_panels_builder.dart | 1 + 6 files changed, 26 insertions(+), 5 deletions(-) diff --git a/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_card.dart b/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_card.dart index cfa864cd08b4..bfa9260fe592 100644 --- a/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_card.dart +++ b/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_card.dart @@ -28,6 +28,7 @@ class KnowledgePanelCard extends StatelessWidget { panel: panel, allPanels: allPanels, product: product, + isInitiallyExpanded: false, ); } diff --git a/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_element_card.dart b/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_element_card.dart index 291fc705a80a..a1572529b42e 100644 --- a/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_element_card.dart +++ b/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_element_card.dart @@ -19,11 +19,13 @@ class KnowledgePanelElementCard extends StatelessWidget { required this.knowledgePanelElement, required this.allPanels, required this.product, + required this.isInitiallyExpanded, }); final KnowledgePanelElement knowledgePanelElement; final KnowledgePanels allPanels; final Product product; + final bool isInitiallyExpanded; @override Widget build(BuildContext context) { @@ -54,6 +56,7 @@ class KnowledgePanelElementCard extends StatelessWidget { case KnowledgePanelElementType.TABLE: return KnowledgePanelTableCard( tableElement: knowledgePanelElement.tableElement!, + isInitiallyExpanded: isInitiallyExpanded, ); case KnowledgePanelElementType.MAP: return KnowledgePanelWorldMapCard(knowledgePanelElement.mapElement!); diff --git a/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_expanded_card.dart b/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_expanded_card.dart index 02cf616f2735..14df766ea352 100644 --- a/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_expanded_card.dart +++ b/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_expanded_card.dart @@ -12,11 +12,13 @@ class KnowledgePanelExpandedCard extends StatelessWidget { required this.panel, required this.allPanels, required this.product, + required this.isInitiallyExpanded, }); final KnowledgePanel panel; final KnowledgePanels allPanels; final Product product; + final bool isInitiallyExpanded; @override Widget build(BuildContext context) { @@ -31,6 +33,7 @@ class KnowledgePanelExpandedCard extends StatelessWidget { knowledgePanelElement: element, allPanels: allPanels, product: product, + isInitiallyExpanded: isInitiallyExpanded, ), ), ); diff --git a/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_page.dart b/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_page.dart index 520f46fdae56..a591d6d5f887 100644 --- a/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_page.dart +++ b/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_page.dart @@ -60,6 +60,7 @@ class _KnowledgePanelPageState extends State panel: widget.panel, allPanels: widget.allPanels, product: widget.product, + isInitiallyExpanded: true, ), ), ), diff --git a/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_table_card.dart b/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_table_card.dart index 298e876d4190..54fb7a79934d 100644 --- a/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_table_card.dart +++ b/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_table_card.dart @@ -59,9 +59,11 @@ class TableCell { class KnowledgePanelTableCard extends StatefulWidget { const KnowledgePanelTableCard({ required this.tableElement, + required this.isInitiallyExpanded, }); final KnowledgePanelTableElement tableElement; + final bool isInitiallyExpanded; @override State createState() => @@ -169,10 +171,12 @@ class _KnowledgePanelTableCardState extends State { availableWidth / totalMaxColumnWidth * _columnsMaxLength[index++]; rowWidgets.add( TableCellWidget( - cell: cell, - cellWidth: cellWidth, - tableElement: widget.tableElement, - rebuildTable: setState), + cell: cell, + cellWidth: cellWidth, + tableElement: widget.tableElement, + rebuildTable: setState, + isInitiallyExpanded: widget.isInitiallyExpanded, + ), ); } rowsWidgets.add(rowWidgets); @@ -250,19 +254,27 @@ class TableCellWidget extends StatefulWidget { required this.cellWidth, required this.tableElement, required this.rebuildTable, + required this.isInitiallyExpanded, }); final TableCell cell; final double cellWidth; final KnowledgePanelTableElement tableElement; final void Function(VoidCallback fn) rebuildTable; + final bool isInitiallyExpanded; @override State createState() => _TableCellWidgetState(); } class _TableCellWidgetState extends State { - bool _isExpanded = false; + late bool _isExpanded; + + @override + void initState() { + super.initState(); + _isExpanded = widget.isInitiallyExpanded; + } @override Widget build(BuildContext context) { diff --git a/packages/smooth_app/lib/knowledge_panel/knowledge_panels_builder.dart b/packages/smooth_app/lib/knowledge_panel/knowledge_panels_builder.dart index 432dc44bc001..52dea92291c4 100644 --- a/packages/smooth_app/lib/knowledge_panel/knowledge_panels_builder.dart +++ b/packages/smooth_app/lib/knowledge_panel/knowledge_panels_builder.dart @@ -48,6 +48,7 @@ class KnowledgePanelWidget extends StatelessWidget { knowledgePanelElement: knowledgePanelElement, allPanels: knowledgePanels, product: product, + isInitiallyExpanded: false, ), ); } From 750f429d2679e02e5525eab1aed2f9d31bba217f Mon Sep 17 00:00:00 2001 From: monsieurtanuki Date: Tue, 19 Jul 2022 06:59:34 +0200 Subject: [PATCH 34/51] fix: #2561 - fixed value+unit management in nutrient page (#2568) Impacted files: * `nutrition_page_loaded.dart`: little fix - now we consider the page edited also when at least one unit changed. * `nutrition_container.dart`: fix - now we populate units and we don't convert values when saving to the server; added initial units field for the "were units edited?" check; refactored --- .../pages/product/nutrition_container.dart | 94 +++++++++++++++---- .../pages/product/nutrition_page_loaded.dart | 27 ++---- 2 files changed, 83 insertions(+), 38 deletions(-) diff --git a/packages/smooth_app/lib/pages/product/nutrition_container.dart b/packages/smooth_app/lib/pages/product/nutrition_container.dart index 0ef5c7870516..c091a3c08522 100644 --- a/packages/smooth_app/lib/pages/product/nutrition_container.dart +++ b/packages/smooth_app/lib/pages/product/nutrition_container.dart @@ -1,3 +1,5 @@ +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; import 'package:openfoodfacts/interface/JsonObject.dart'; import 'package:openfoodfacts/model/Nutriments.dart'; import 'package:openfoodfacts/model/OrderedNutrient.dart'; @@ -58,6 +60,9 @@ class NutritionContainer { /// Nutrient units. final Map _units = {}; + /// Initial nutrient units. + final Map _initialUnits = {}; + /// Nutrient Ids added by the end-user final Set _added = {}; @@ -98,22 +103,17 @@ class NutritionContainer { servingSize: _servingSize, ); + void copyUnitsFrom(final NutritionContainer other) => + _units.addAll(other._units); + /// Converts all the data to a [Nutriments]. + /// + /// When we WRITE, that's rather simple. + /// If we want to say "120 mg", we put "120" as value and "mg" as unit. + /// When we READ it's not the same, as the weight values are ALWAYS in g. + /// If the server data is "120 mg", we get "0.12" as value (in g) + /// and "mg" as unit (as suggested unit). Nutriments _getNutriments() { - /// Converts a (weight) value to grams (before sending a value to the BE) - double? _convertWeightToG(final double? value, final Unit unit) { - if (value == null) { - return null; - } - if (unit == Unit.MILLI_G) { - return value / 1E3; - } - if (unit == Unit.MICRO_G) { - return value / 1E6; - } - return value; - } - final Map map = {}; for (final OrderedNutrient orderedNutrient in getDisplayableNutrients()) { final String nutrientId = orderedNutrient.id; @@ -126,10 +126,10 @@ class NutritionContainer { } final Unit unit = getUnit(nutrientId); if (value100g != null) { - map[key100g] = _convertWeightToG(value100g, unit); + map[key100g] = value100g; } if (valueServing != null) { - //map[keyServing] = _convertWeightToG(valueServing, unit); + map[keyServing] = valueServing; } map[_getNutrimentsUnitKey(nutrientId)] = UnitHelper.unitToString(unit); } @@ -169,7 +169,7 @@ class NutritionContainer { /// Typical use-case: [Unit] button action. void setNextWeightUnit(final OrderedNutrient orderedNutrient) { final Unit unit = getUnit(orderedNutrient.id); - _setUnit(orderedNutrient.id, _nextWeightUnits[unit] ?? unit); + _setUnit(orderedNutrient.id, _nextWeightUnits[unit] ?? unit, init: false); } /// Returns the nutrient [Unit], after possible alterations. @@ -187,8 +187,17 @@ class NutritionContainer { } /// Stores the nutrient [Unit]. - void _setUnit(final String nutrientId, final Unit unit) => - _units[_fixNutrientId(nutrientId)] = unit; + void _setUnit( + final String nutrientId, + final Unit unit, { + required final bool init, + }) { + final String tag = _fixNutrientId(nutrientId); + _units[tag] = unit; + if (init) { + _initialUnits[tag] = unit; + } + } static Unit? _getDefaultUnit(final String nutrientId) => _defaultNotWeightUnits[_fixNutrientId(nutrientId)]; @@ -277,7 +286,7 @@ class NutritionContainer { } final Unit? unit = UnitHelper.stringToUnit(value); if (unit != null) { - _setUnit(nutrientId, unit); + _setUnit(nutrientId, unit, init: true); } } } @@ -318,4 +327,49 @@ class NutritionContainer { } } } + + bool isEdited( + final Map controllers, + final NumberFormat numberFormat, + final bool noNutritionData, + ) { + if (_isEditedControllers(controllers, numberFormat)) { + return true; + } + if (this.noNutritionData != noNutritionData) { + return true; + } + if (_isEditedUnits()) { + return true; + } + return false; + } + + bool _isEditedControllers( + final Map controllers, + final NumberFormat numberFormat, + ) { + for (final String key in controllers.keys) { + final TextEditingController controller = controllers[key]!; + final String text = controller.value.text; + final double? value = getValue(key); + if (value == null) { + if (text != '') { + return true; + } + } else if (numberFormat.format(value) != text) { + return true; + } + } + return false; + } + + bool _isEditedUnits() { + for (final String tag in _units.keys) { + if (_initialUnits[tag] != _units[tag]) { + return true; + } + } + return false; + } } diff --git a/packages/smooth_app/lib/pages/product/nutrition_page_loaded.dart b/packages/smooth_app/lib/pages/product/nutrition_page_loaded.dart index 2181f3c1c2a6..aa9eb3c79729 100644 --- a/packages/smooth_app/lib/pages/product/nutrition_page_loaded.dart +++ b/packages/smooth_app/lib/pages/product/nutrition_page_loaded.dart @@ -378,24 +378,11 @@ class _NutritionPageLoadedState extends State { ); /// Returns `true` if any value differs between form and container. - bool _isEdited() { - for (final String key in _controllers.keys) { - final TextEditingController controller = _controllers[key]!; - if (_nutritionContainer.getValue(key) == null) { - if (controller.value.text != '') { - return true; - } - } else if (_numberFormat.format(_nutritionContainer.getValue(key)) != - controller.value.text) { - return true; - } - } - if (_nutritionContainer.noNutritionData != _noNutritionData) { - return true; - } - //else form is not edited just return false - return false; - } + bool _isEdited() => _nutritionContainer.isEdited( + _controllers, + _numberFormat, + _noNutritionData, + ); Product? _getChangedProduct() { if (!_formKey.currentState!.validate()) { @@ -404,11 +391,15 @@ class _NutritionPageLoadedState extends State { // We use a separate fresh container here. // If something breaks while saving, we won't get a half written object. final NutritionContainer output = _getFreshContainer(); + // we copy the values for (final String key in _controllers.keys) { final TextEditingController controller = _controllers[key]!; output.setControllerText(key, controller.text); } + // we copy the "with nutrition data true/false" output.noNutritionData = _noNutritionData; + // we copy the units + output.copyUnitsFrom(_nutritionContainer); return output.getProduct(); } From 5e540d52a3ef6e9ebea5839ca88f4c487081ade8 Mon Sep 17 00:00:00 2001 From: Pierre Slamich Date: Tue, 19 Jul 2022 15:35:19 +0200 Subject: [PATCH 35/51] ci: re-add release please to generate easier release changelogs (#2616) ci: re-add release please to generate easier release changelogs --- .github/workflows/release-please.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 .github/workflows/release-please.yml diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml new file mode 100644 index 000000000000..1d354d82bb88 --- /dev/null +++ b/.github/workflows/release-please.yml @@ -0,0 +1,13 @@ +name: Run release-please + on: + push: + branches: + - develop + jobs: + release-please: + runs-on: ubuntu-latest + steps: + - uses: GoogleCloudPlatform/release-please-action@v3 + with: + token: ${{ secrets.GITHUB_TOKEN }} + release-type: simple From 899bc6ecd0ea20e4a108cf553b209aefb27b8d0d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 19 Jul 2022 16:13:55 +0200 Subject: [PATCH 36/51] chore: New Crowdin translations (#2624) Co-authored-by: Crowdin Bot --- packages/smooth_app/lib/l10n/app_bg.arb | 3 +-- packages/smooth_app/lib/l10n/app_nl.arb | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/smooth_app/lib/l10n/app_bg.arb b/packages/smooth_app/lib/l10n/app_bg.arb index 9fe414e17531..c958655fc81d 100644 --- a/packages/smooth_app/lib/l10n/app_bg.arb +++ b/packages/smooth_app/lib/l10n/app_bg.arb @@ -1550,5 +1550,4 @@ "@no_internet_connection": { "description": "Message when there is no internet connection" } - -} +} \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_nl.arb b/packages/smooth_app/lib/l10n/app_nl.arb index ab125a25c440..a2fbd35abf11 100644 --- a/packages/smooth_app/lib/l10n/app_nl.arb +++ b/packages/smooth_app/lib/l10n/app_nl.arb @@ -428,7 +428,7 @@ "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "Vermeld alle verpakkingsonderdelen gescheiden door een komma of regel, met hun hoeveelheid (bijv. 1 of 6) type (bijv. fles, doos, blik), materiaal (bijv. plastic, metaal, aluminium) en indien beschikbaar hun grootte (bijv. 33cl) en instructies voor recycling.\nVoorbeeld: 1 glazen fles om te recyclen, 1 plastic kurk om weg te gooien", + "packaging_editing_instructions": "Vermeld alle verpakkingsonderdelen gescheiden door een komma of regel, met hun hoeveelheid (bijv. 1 of 6) type (bijv. fles, doos, blik), materiaal (bijv. plastic, metaal, aluminium) en indien beschikbaar hun grootte (bijv. 33cl) en instructies voor recycling.\nVoorbeeld: 1 glazen fles om te recyclen, 1 plastic dop om weg te gooien", "packaging_editing_error": "Opslaan van de verpakking is mislukt.", "packaging_editing_image_error": "Het ophalen van een nieuwe verpakkingsafbeelding is mislukt.", "packaging_editing_title": "Verpakking bewerken", From 4b86d22b2724b6a8a572fd45be108165785c9a9b Mon Sep 17 00:00:00 2001 From: Pierre Slamich Date: Tue, 19 Jul 2022 16:40:40 +0200 Subject: [PATCH 37/51] Update release-please.yml --- .github/workflows/release-please.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index 1d354d82bb88..da74e4f724f6 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -1,9 +1,9 @@ name: Run release-please - on: +on: push: branches: - develop - jobs: +jobs: release-please: runs-on: ubuntu-latest steps: From f657870f4c35902cd984b45a7b033fc8ce58073d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Jul 2022 11:28:42 +0200 Subject: [PATCH 38/51] chore(deps): bump fastlane in /packages/smooth_app/android (#2630) Bumps [fastlane](https://github.com/fastlane/fastlane) from 2.207.0 to 2.208.0. - [Release notes](https://github.com/fastlane/fastlane/releases) - [Commits](https://github.com/fastlane/fastlane/compare/fastlane/2.207.0...fastlane/2.208.0) --- updated-dependencies: - dependency-name: fastlane dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- packages/smooth_app/android/Gemfile.lock | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/packages/smooth_app/android/Gemfile.lock b/packages/smooth_app/android/Gemfile.lock index bb0904e283c9..12c462fcc433 100644 --- a/packages/smooth_app/android/Gemfile.lock +++ b/packages/smooth_app/android/Gemfile.lock @@ -14,13 +14,13 @@ GEM artifactory (3.0.15) atomos (0.1.3) aws-eventstream (1.2.0) - aws-partitions (1.602.0) - aws-sdk-core (3.131.2) + aws-partitions (1.608.0) + aws-sdk-core (3.131.3) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.525.0) aws-sigv4 (~> 1.1) jmespath (~> 1, >= 1.6.1) - aws-sdk-kms (1.57.0) + aws-sdk-kms (1.58.0) aws-sdk-core (~> 3, >= 3.127.0) aws-sigv4 (~> 1.1) aws-sdk-s3 (1.114.0) @@ -72,7 +72,7 @@ GEM faraday_middleware (1.2.0) faraday (~> 1.0) fastimage (2.2.6) - fastlane (2.207.0) + fastlane (2.208.0) CFPropertyList (>= 2.3, < 4.0.0) addressable (>= 2.8, < 3.0.0) artifactory (~> 3.0) @@ -114,8 +114,8 @@ GEM fastlane-plugin-flutter_dart_version_manager (0.1.5) fastlane-plugin-versioning (0.5.1) gh_inspector (1.1.3) - google-apis-androidpublisher_v3 (0.23.0) - google-apis-core (>= 0.6, < 2.a) + google-apis-androidpublisher_v3 (0.25.0) + google-apis-core (>= 0.7, < 2.a) google-apis-core (0.7.0) addressable (~> 2.5, >= 2.5.1) googleauth (>= 0.16.2, < 2.a) @@ -125,12 +125,12 @@ GEM retriable (>= 2.0, < 4.a) rexml webrick - google-apis-iamcredentials_v1 (0.12.0) - google-apis-core (>= 0.6, < 2.a) - google-apis-playcustomapp_v1 (0.9.0) - google-apis-core (>= 0.6, < 2.a) - google-apis-storage_v1 (0.16.0) - google-apis-core (>= 0.6, < 2.a) + google-apis-iamcredentials_v1 (0.13.0) + google-apis-core (>= 0.7, < 2.a) + google-apis-playcustomapp_v1 (0.10.0) + google-apis-core (>= 0.7, < 2.a) + google-apis-storage_v1 (0.18.0) + google-apis-core (>= 0.7, < 2.a) google-cloud-core (1.6.0) google-cloud-env (~> 1.0) google-cloud-errors (~> 1.0) From 19ccfcb8a894a94d7c1cb5f4839232da24e9c013 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Jul 2022 11:28:56 +0200 Subject: [PATCH 39/51] chore(deps): bump fastlane in /packages/smooth_app/ios (#2629) Bumps [fastlane](https://github.com/fastlane/fastlane) from 2.207.0 to 2.208.0. - [Release notes](https://github.com/fastlane/fastlane/releases) - [Commits](https://github.com/fastlane/fastlane/compare/fastlane/2.207.0...fastlane/2.208.0) --- updated-dependencies: - dependency-name: fastlane dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- packages/smooth_app/ios/Gemfile.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/smooth_app/ios/Gemfile.lock b/packages/smooth_app/ios/Gemfile.lock index c04c5c8ad29a..b24f85d0aeaa 100644 --- a/packages/smooth_app/ios/Gemfile.lock +++ b/packages/smooth_app/ios/Gemfile.lock @@ -14,13 +14,13 @@ GEM artifactory (3.0.15) atomos (0.1.3) aws-eventstream (1.2.0) - aws-partitions (1.605.0) - aws-sdk-core (3.131.2) + aws-partitions (1.608.0) + aws-sdk-core (3.131.3) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.525.0) aws-sigv4 (~> 1.1) jmespath (~> 1, >= 1.6.1) - aws-sdk-kms (1.57.0) + aws-sdk-kms (1.58.0) aws-sdk-core (~> 3, >= 3.127.0) aws-sigv4 (~> 1.1) aws-sdk-s3 (1.114.0) @@ -73,7 +73,7 @@ GEM faraday_middleware (1.2.0) faraday (~> 1.0) fastimage (2.2.6) - fastlane (2.207.0) + fastlane (2.208.0) CFPropertyList (>= 2.3, < 4.0.0) addressable (>= 2.8, < 3.0.0) artifactory (~> 3.0) From b15071d5337e90db6ce78ff77312eba576c80a6a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 21 Jul 2022 15:45:05 +0200 Subject: [PATCH 40/51] chore: New Crowdin translations to review and merge (#2639) * chore: New Crowdin translations * Update app_pl.arb Co-authored-by: Crowdin Bot Co-authored-by: Pierre Slamich --- packages/smooth_app/lib/l10n/app_pl.arb | 50 ++++++++++++------------- packages/smooth_app/lib/l10n/app_pt.arb | 44 +++++++++++----------- 2 files changed, 47 insertions(+), 47 deletions(-) diff --git a/packages/smooth_app/lib/l10n/app_pl.arb b/packages/smooth_app/lib/l10n/app_pl.arb index 0cee402f71a8..d23c4392924c 100644 --- a/packages/smooth_app/lib/l10n/app_pl.arb +++ b/packages/smooth_app/lib/l10n/app_pl.arb @@ -933,7 +933,7 @@ "@crash_reporting_toggle_title": { "description": "Title for the Crash reporting toggle" }, - "crash_reporting_toggle_subtitle": "When enabled, crash reports are automatically submitted to Open Food Facts' error tracking system, so that bugs can be fixed and thus improve the app.", + "crash_reporting_toggle_subtitle": "Po włączeniu raporty o awariach są automatycznie przesyłane do systemu śledzenia błędów Open Food Facts, dzięki czemu będzie można naprawić błędy, a tym samym ulepszyć aplikację.", "@crash_reporting_toggle_subtitle": { "description": "SubTitle for the Crash reporting toggle" }, @@ -953,8 +953,8 @@ "@permission_photo_error": { "description": "When the camera/photo permission failed to be acquired (!= denied)" }, - "permission_photo_denied_title": "Allow camera use to scan barcodes", - "permission_photo_denied_message": "For an enhanced experience, please allow {appName} to access your camera. You will be able to directly scan barcodes.", + "permission_photo_denied_title": "Zezwalaj na używanie aparatu do skanowania kodów kreskowych", + "permission_photo_denied_message": "Dla lepszego doświadczenia, proszę zezwolić {appName} na dostęp do kamery. Będziesz mógł bezpośrednio skanować kody kreskowe.", "@permission_photo_denied_message": { "description": "When the camera/photo permission is denied by user", "placeholders": { @@ -983,11 +983,11 @@ "@edit_product_form_item_barcode": { "description": "Product edition - Barcode" }, - "edit_product_form_item_details_title": "Basic details", + "edit_product_form_item_details_title": "Informacje podstawowe", "@edit_product_form_item_details_title": { "description": "Product edition - Basic Details - Title" }, - "edit_product_form_item_details_subtitle": "Product name, brand, quantity", + "edit_product_form_item_details_subtitle": "Nazwa produktu, marka, ilość", "@edit_product_form_item_details_subtitle": { "description": "Product edition - Basic Details - Title" }, @@ -995,15 +995,15 @@ "@edit_product_form_item_photos_title": { "description": "Product edition - Photos - Title" }, - "edit_product_form_item_photos_subtitle": "Add or refresh photos", + "edit_product_form_item_photos_subtitle": "Dodaj lub odśwież zdjęcia", "@edit_product_form_item_photos_subtitle": { "description": "Product edition - Photos - SubTitle" }, - "edit_product_form_item_labels_title": "Labels & Certifications", + "edit_product_form_item_labels_title": "Etykiety i certyfikaty", "@edit_product_form_item_labels_title": { "description": "Product edition - Labels - Title" }, - "edit_product_form_item_labels_subtitle": "Environmental, Quality labels, ...", + "edit_product_form_item_labels_subtitle": "Środowiskowe, jakościowe, ...", "@edit_product_form_item_labels_subtitle": { "description": "Product edition - Labels - SubTitle" }, @@ -1080,7 +1080,7 @@ "description": "Product edition - Categories - input explainer, part 3" }, "edit_product_form_item_exit_confirmation": "Czy chcesz zapisać zmiany przed opuszczeniem tej strony?", - "edit_product_form_item_ingredients_title": "Ingredients & Origins", + "edit_product_form_item_ingredients_title": "Składniki i pochodzenie", "@edit_product_form_item_ingredients_title": { "description": "Product edition - Ingredients - Title" }, @@ -1092,7 +1092,7 @@ "@edit_product_form_item_nutrition_facts_title": { "description": "Product edition - Nutrition facts - Title" }, - "edit_product_form_item_nutrition_facts_subtitle": "Nutrition, alcohol content…", + "edit_product_form_item_nutrition_facts_subtitle": "Wartości odżywcze, zaw. alkoholu…", "@edit_product_form_item_nutrition_facts_subtitle": { "description": "Product edition - Nutrition facts - SubTitle" }, @@ -1107,31 +1107,31 @@ "@edit_ingredients_extrait_ingredients_btn_text": { "description": "Ingredients edition - Extract ingredients" }, - "edit_ingredients_refresh_photo_btn_text": "Refresh photo", + "edit_ingredients_refresh_photo_btn_text": "Odśwież zdjęcie", "@edit_ingredients_refresh_photo_btn_text": { "description": "Ingredients edition - Refresh photo" }, - "edit_packaging_extract_btn_text": "Extract packaging", + "edit_packaging_extract_btn_text": "Rozpoznaj opakowanie", "@edit_packaging_extract_btn_text": { "description": "Packaging edition - OCR-Extract packaging" }, - "edit_packaging_refresh_photo_btn_text": "Refresh photo", + "edit_packaging_refresh_photo_btn_text": "Odśwież zdjęcie", "@edit_packaging_refresh_photo_btn_text": { "description": "Packaging edition - Refresh photo" }, - "user_list_dialog_new_title": "New list of products", + "user_list_dialog_new_title": "Nowa lista produktów", "@user_list_dialog_new_title": { "description": "Title of the 'new user list' dialog" }, - "user_list_dialog_rename_title": "Rename list", + "user_list_dialog_rename_title": "Zmień nazwę listy", "@user_list_dialog_rename_title": { "description": "Title of the 'rename user list' dialog" }, - "user_list_subtitle_product": "Lists", + "user_list_subtitle_product": "Listy", "@user_list_subtitle_product": { "description": "Subtitle of a paragraph about user lists in a product context" }, - "user_list_button_new": "New list", + "user_list_button_new": "Nowa lista", "@user_list_button_new": { "description": "Short label of a 'new list' button" }, @@ -1143,11 +1143,11 @@ "@user_list_popup_clear": { "description": "Short label of a 'clear list' popup" }, - "user_list_popup_rename": "Rename", + "user_list_popup_rename": "Zmień nazwę", "@user_list_popup_rename": { "description": "Short label of a 'rename list' popup" }, - "user_list_name_hint": "My list", + "user_list_name_hint": "Moja lista", "@user_list_name_hint": { "description": "Hint of a user list name text-field in a 'user list' dialog" }, @@ -1155,11 +1155,11 @@ "@user_list_name_error_empty": { "description": "Validation error about the name that cannot be empty" }, - "user_list_name_error_already": "That name is already used", + "user_list_name_error_already": "Ta nazwa jest już używana", "@user_list_name_error_already": { "description": "Validation error about the name that is already used for another list" }, - "user_list_name_error_same": "That is the same name", + "user_list_name_error_same": "Ta lista już się tak nazywa", "@user_list_name_error_same": { "description": "Validation error about the renamed name that is the same as the initial list name" }, @@ -1418,7 +1418,7 @@ "@analytics_consent_image_semantic_label": { "description": "Consent Analytics icon semantics label" }, - "knowledge_panel_page_loading_error": "Fatal Error: {error}", + "knowledge_panel_page_loading_error": "Błąd krytyczny: {error}", "@knowledge_panel_page_loading_error": { "description": "Knowledge panel page template - Error while loading future", "placeholders": { @@ -1427,7 +1427,7 @@ } } }, - "preferences_page_loading_error": "Fatal Error: {error}", + "preferences_page_loading_error": "Błąd krytyczny: {error}", "@preferences_page_loading_error": { "description": "Preferences page - Error while loading future", "placeholders": { @@ -1486,7 +1486,7 @@ } } }, - "user_list_all_title": "Lists", + "user_list_all_title": "Listy", "@user_list_all_title": { "description": "Title about the user lists in the user preferences" }, @@ -1550,4 +1550,4 @@ "@no_internet_connection": { "description": "Message when there is no internet connection" } -} \ No newline at end of file +} diff --git a/packages/smooth_app/lib/l10n/app_pt.arb b/packages/smooth_app/lib/l10n/app_pt.arb index 5e675c1d9990..89415503d857 100644 --- a/packages/smooth_app/lib/l10n/app_pt.arb +++ b/packages/smooth_app/lib/l10n/app_pt.arb @@ -60,7 +60,7 @@ "@match_poor": { "description": "Label for product page regarding product compatibility with the user preferences: poor match" }, - "match_may_not": "May not match", + "match_may_not": "Pode não combinar", "@match_may_not": { "description": "Label for product page regarding product compatibility with the user preferences: may not match" }, @@ -84,7 +84,7 @@ "@match_short_poor": { "description": "Short label for product list view regarding product compatibility with the user preferences: poor match" }, - "match_short_may_not": "May not match", + "match_short_may_not": "Pode não combinar", "@match_short_may_not": { "description": "Short label for product list view regarding product compatibility with the user preferences: may not match" }, @@ -1294,14 +1294,14 @@ "dev_preferences_migration_status_already_done": "sucesso ou nova instalação", "dev_preferences_migration_status_success": "sucesso", "dev_preferences_migration_status_error": "erro", - "dev_preferences_migration_status_in_progress": "in progress", - "dev_preferences_migration_status_required": "required (click to start)", - "dev_preferences_migration_status_not_started": "unknown", - "dev_preferences_import_history_title": "Import History", + "dev_preferences_migration_status_in_progress": "em progresso", + "dev_preferences_migration_status_required": "obrigatório (clique para começar)", + "dev_preferences_migration_status_not_started": "desconhecido", + "dev_preferences_import_history_title": "Histórico de importação", "@dev_preferences_import_history_title": { "description": "User dev preferences - Import history - Title" }, - "dev_preferences_import_history_subtitle": "Will clear history and put 3 products in there", + "dev_preferences_import_history_subtitle": "O histórico será limpo e serão colocados 3 produtos lá", "@dev_preferences_import_history_subtitle": { "description": "User dev preferences - Import history - Subtitle" }, @@ -1309,7 +1309,7 @@ "@dev_preferences_import_history_result_success": { "description": "User dev preferences - Import history - Result successful" }, - "dev_mode_scan_mode_title": "Scan Mode", + "dev_mode_scan_mode_title": "Modo de digitalização", "@dev_mode_scan_mode_title": { "description": "User dev preferences - Scan mode - Title" }, @@ -1322,7 +1322,7 @@ } } }, - "dev_mode_scan_mode_dialog_title": "Scan Mode", + "dev_mode_scan_mode_dialog_title": "Modo de digitalização", "@dev_mode_scan_mode_dialog_title": { "description": "User dev preferences - Scan mode - Dialog Title" }, @@ -1330,27 +1330,27 @@ "@dev_mode_hide_ecoscore_title": { "description": "User dev preferences - Disable Ecoscore - Title" }, - "dev_mode_scan_camera_only": "Only camera stream, no scanning", + "dev_mode_scan_camera_only": "Apenas transmissão de câmera, sem digitalização", "@dev_mode_scan_camera_only": { "description": "Scan mode - Camera only" }, - "dev_mode_scan_preprocess_full_image": "Camera stream and full image preprocessing, no scanning", + "dev_mode_scan_preprocess_full_image": "Reprodução de câmera e pré-processamento completo imagem, sem digitalização", "@dev_mode_scan_preprocess_full_image": { "description": "Scan mode - Preprocess full image" }, - "dev_mode_scan_preprocess_half_image": "Camera stream and half image preprocessing, no scanning", + "dev_mode_scan_preprocess_half_image": "Transmissão de câmera e pré-processamento parcial de imagem, sem digitalização", "@dev_mode_scan_preprocess_half_image": { "description": "Scan mode - Preprocess half image" }, - "dev_mode_scan_scan_full_image": "Full image scanning", + "dev_mode_scan_scan_full_image": "Digitalização completa de imagem", "@dev_mode_scan_scan_full_image": { "description": "Scan mode - Scan full image" }, - "dev_mode_scan_scan_half_image": "Half image scanning", + "dev_mode_scan_scan_half_image": "Digitalização parcial de imagem", "@dev_mode_scan_scan_half_image": { "description": "Scan mode - Scan half image" }, - "product_search_no_more_results": "You've downloaded all the {totalSize} products.", + "product_search_no_more_results": "Você baixou todos os {totalSize} produtos.", "@product_search_no_more_results": { "description": "Product search list - No more results available", "placeholders": { @@ -1359,7 +1359,7 @@ } } }, - "product_search_button_download_more": "Download {count} more products\nAlready downloaded {downloaded} out of {totalSize}.", + "product_search_button_download_more": "Baixe mais {count} produtos\nJá foram baixados {downloaded} de {totalSize}.", "@product_search_button_download_more": { "description": "Product search list - Button to download more results", "placeholders": { @@ -1386,19 +1386,19 @@ "@user_search_photographer_title": { "description": "User search (photographer): list tile title" }, - "user_search_to_be_completed_title": "My to-be-completed products", + "user_search_to_be_completed_title": "Meus produtos a serem concluídos", "@user_search_to_be_completed_title": { "description": "User search (to be completed): list tile title" }, - "all_search_to_be_completed_title": "All to-be-completed products", + "all_search_to_be_completed_title": "Todos os produtos a serem concluídos", "@all_search_to_be_completed_title": { "description": "All products to be completed: list tile title" }, - "edit_product_action_retake_picture": "Retake photo", + "edit_product_action_retake_picture": "Tirar foto novamente", "@edit_product_action_retake_picture": { "description": "Product edition - FAB actions - retake a picture" }, - "edit_product_action_take_picture": "Take photo", + "edit_product_action_take_picture": "Tirar foto", "@edit_product_action_take_picture": { "description": "Product edition - FAB actions - take a picture" }, @@ -1490,7 +1490,7 @@ "@user_list_all_title": { "description": "Title about the user lists in the user preferences" }, - "user_list_all_empty": "Create your first list!", + "user_list_all_empty": "Cria sua primeira lista!", "@user_list_all_empty": { "description": "Small message when there are no user lists" }, @@ -1546,7 +1546,7 @@ "@choose from gallery": { "description": "Button label for choosing a photo from gallery" }, - "no_internet_connection": "No internet connection", + "no_internet_connection": "Sem conexão com a internet", "@no_internet_connection": { "description": "Message when there is no internet connection" } From 68d7c5484d267cfd53849b8e9cdf96b3c4855ff8 Mon Sep 17 00:00:00 2001 From: Aman Raj <57723319+AshAman999@users.noreply.github.com> Date: Thu, 21 Jul 2022 19:15:33 +0530 Subject: [PATCH 41/51] fix: double-response mechanism in the scan screen (#2632) * double-response mechanism in the scan screen * specify exception type * removed old unused method and timeout set --- .../data_models/continuous_scan_model.dart | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/packages/smooth_app/lib/data_models/continuous_scan_model.dart b/packages/smooth_app/lib/data_models/continuous_scan_model.dart index 9c0214660006..32e0e451dfd1 100644 --- a/packages/smooth_app/lib/data_models/continuous_scan_model.dart +++ b/packages/smooth_app/lib/data_models/continuous_scan_model.dart @@ -1,3 +1,4 @@ +import 'dart:async'; import 'package:flutter/foundation.dart'; import 'package:flutter/widgets.dart'; import 'package:openfoodfacts/model/Product.dart'; @@ -149,10 +150,6 @@ class ContinuousScanModel with ChangeNotifier { _barcodes.remove(barcode); _barcodes.add(barcode); _addProduct(product, state); - - if (state == ScannedProductState.CACHED) { - _updateBarcode(barcode); - } lastConsultedBarcode = barcode; return true; } @@ -169,6 +166,21 @@ class ContinuousScanModel with ChangeNotifier { Future _cachedBarcode(final String barcode) async { final Product? product = await _daoProduct.get(barcode); if (product != null) { + try { + // We try to load the fresh copy of product from the server + final FetchedProduct fetchedProduct = + await _queryBarcode(barcode).timeout(const Duration(seconds: 5)); + if (fetchedProduct.product != null) { + _addProduct(fetchedProduct.product!, ScannedProductState.CACHED); + return true; + } + } on TimeoutException { + // We tried to load the product from the server, + // but it was taking more than 5 seconds. + // So we'll just show the already cached product. + _addProduct(product, ScannedProductState.CACHED); + return true; + } _addProduct(product, ScannedProductState.CACHED); return true; } From 01f1b89a2cf6d21238b2061a007a10328b164628 Mon Sep 17 00:00:00 2001 From: Edouard Marquez Date: Thu, 21 Jul 2022 15:46:01 +0200 Subject: [PATCH 42/51] Better highlight the selected item in the bottom navigation bar (#2640) --- packages/smooth_app/lib/themes/smooth_theme.dart | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/smooth_app/lib/themes/smooth_theme.dart b/packages/smooth_app/lib/themes/smooth_theme.dart index c8a480b40239..4ced25f14521 100644 --- a/packages/smooth_app/lib/themes/smooth_theme.dart +++ b/packages/smooth_app/lib/themes/smooth_theme.dart @@ -26,9 +26,14 @@ class SmoothTheme { fontFamily: 'PlusJakartaSans', colorScheme: myColorScheme, bottomNavigationBarTheme: BottomNavigationBarThemeData( + selectedIconTheme: const IconThemeData(size: 24.0), showSelectedLabels: true, + selectedItemColor: brightness == Brightness.dark + ? Colors.white + : const Color(0xFF341100), + selectedLabelStyle: const TextStyle(fontWeight: FontWeight.bold), showUnselectedLabels: true, - selectedItemColor: myColorScheme.primary, + unselectedIconTheme: const IconThemeData(size: 20.0), ), elevatedButtonTheme: ElevatedButtonThemeData( style: ButtonStyle( From a1e096c044e8eaf3bd189d34b97ff20ed24c717f Mon Sep 17 00:00:00 2001 From: monsieurtanuki Date: Thu, 21 Jul 2022 15:47:13 +0200 Subject: [PATCH 43/51] fix: #2530 - replaced the score colors with a score emoji (#2569) * fix: #2530 - replaced the score colors with a score emoji Impacted file: * `knowledge_panel_title_card.dart`: replaced the score colors with a score emoji as a test, with a simple way to roll back to the previous version for comparison purposes * fix: #2530 - to the "new" mode Impacted file: * `knowledge_panel_title_card.dart` * fix: #2530 - dev mode settings and new emoji Impacted files: * `knowledge_panel_title_card.dart`: now using preferences; new emoji * `user_preferences_dev_mode.dart`: 2 new settings/preferences - emoji, and no color * fix: #2530 - replaced String emoji with IconData Impacted file: * `knowledge_panel_title_card.dart`: replaced `String` emoji with `IconData` --- .../knowledge_panel_title_card.dart | 46 ++++++++++++++++--- .../user_preferences_dev_mode.dart | 30 ++++++++++++ 2 files changed, 70 insertions(+), 6 deletions(-) diff --git a/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_title_card.dart b/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_title_card.dart index 94a606aec543..de122620a2cf 100644 --- a/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_title_card.dart +++ b/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_title_card.dart @@ -1,9 +1,12 @@ import 'package:flutter/material.dart'; import 'package:openfoodfacts/model/KnowledgePanel.dart'; +import 'package:provider/provider.dart'; import 'package:smooth_app/cards/category_cards/abstract_cache.dart'; +import 'package:smooth_app/data_models/user_preferences.dart'; import 'package:smooth_app/generic_lib/design_constants.dart'; import 'package:smooth_app/helpers/extension_on_text_helper.dart'; import 'package:smooth_app/helpers/ui_helpers.dart'; +import 'package:smooth_app/pages/preferences/user_preferences_dev_mode.dart'; import 'package:smooth_app/themes/constant_icons.dart'; class KnowledgePanelTitleCard extends StatelessWidget { @@ -19,13 +22,24 @@ class KnowledgePanelTitleCard extends StatelessWidget { @override Widget build(BuildContext context) { - final ThemeData themeData = Theme.of(context); + final UserPreferences userPreferences = context.watch(); Color? colorFromEvaluation; - if (knowledgePanelTitleElement.iconColorFromEvaluation ?? false) { - if (themeData.brightness == Brightness.dark) { - colorFromEvaluation = _getColorFromEvaluationDarkMode(evaluation); - } else { - colorFromEvaluation = _getColorFromEvaluation(evaluation); + IconData? iconData; + if (userPreferences.getFlag( + UserPreferencesDevMode.userPreferencesFlagAccessibilityEmoji) ?? + false) { + iconData = _getIconDataFromEvaluation(evaluation); + } + if (!(userPreferences.getFlag( + UserPreferencesDevMode.userPreferencesFlagAccessibilityNoColor) ?? + false)) { + final ThemeData themeData = Theme.of(context); + if (knowledgePanelTitleElement.iconColorFromEvaluation ?? false) { + if (themeData.brightness == Brightness.dark) { + colorFromEvaluation = _getColorFromEvaluationDarkMode(evaluation); + } else { + colorFromEvaluation = _getColorFromEvaluation(evaluation); + } } } List iconWidget; @@ -45,6 +59,11 @@ class KnowledgePanelTitleCard extends StatelessWidget { const Padding( padding: EdgeInsetsDirectional.only(start: SMALL_SPACE), ), + if (iconData != null) + Padding( + padding: const EdgeInsetsDirectional.only(end: SMALL_SPACE), + child: Icon(iconData), + ), ]; } else { iconWidget = []; @@ -118,4 +137,19 @@ class KnowledgePanelTitleCard extends StatelessWidget { return LIGHT_GREY_COLOR; } } + + IconData? _getIconDataFromEvaluation(Evaluation? evaluation) { + switch (evaluation) { + case Evaluation.BAD: + return Icons.sentiment_very_dissatisfied; + case Evaluation.AVERAGE: + return Icons.sentiment_satisfied; + case Evaluation.GOOD: + return Icons.sentiment_very_satisfied; + case null: + case Evaluation.NEUTRAL: + case Evaluation.UNKNOWN: + return null; + } + } } diff --git a/packages/smooth_app/lib/pages/preferences/user_preferences_dev_mode.dart b/packages/smooth_app/lib/pages/preferences/user_preferences_dev_mode.dart index ec9ee2d6a9c8..30c05ae6105e 100644 --- a/packages/smooth_app/lib/pages/preferences/user_preferences_dev_mode.dart +++ b/packages/smooth_app/lib/pages/preferences/user_preferences_dev_mode.dart @@ -51,6 +51,10 @@ class UserPreferencesDevMode extends AbstractUserPreferences { static const String userPreferencesAppLanguageCode = '__appLanguage'; static const String userPreferencesCameraPostFrameDuration = '__cameraPostFrameDuration'; + static const String userPreferencesFlagAccessibilityNoColor = + '__accessibilityNoColor'; + static const String userPreferencesFlagAccessibilityEmoji = + '__accessibilityEmoji'; final TextEditingController _textFieldController = TextEditingController(); @@ -164,6 +168,32 @@ class UserPreferencesDevMode extends AbstractUserPreferences { _showSuccessMessage(); }, ), + SwitchListTile( + title: const Text( + 'Accessibility: remove colors', + ), + value: userPreferences + .getFlag(userPreferencesFlagAccessibilityNoColor) ?? + false, + onChanged: (bool value) async { + await userPreferences.setFlag( + userPreferencesFlagAccessibilityNoColor, value); + _showSuccessMessage(); + }, + ), + SwitchListTile( + title: const Text( + 'Accessibility: show emoji', + ), + value: + userPreferences.getFlag(userPreferencesFlagAccessibilityEmoji) ?? + false, + onChanged: (bool value) async { + await userPreferences.setFlag( + userPreferencesFlagAccessibilityEmoji, value); + _showSuccessMessage(); + }, + ), ListTile( title: Text( appLocalizations.dev_preferences_export_history_title, From cc7c062e555a63739708df5bd337316b5b10df42 Mon Sep 17 00:00:00 2001 From: monsieurtanuki Date: Fri, 22 Jul 2022 07:05:06 +0200 Subject: [PATCH 44/51] feat: #2364 - new preferences toggles for ingredients / nutrition expand mode (#2634) Impacted files: * `app_en.arb`: added labels for preferences toggles (ingredients and nutrition) * `knowledge_panel_card.dart`: now uses the new expand flags to expand the contents (or not) * `user_preferences_settings.dart`: added 2 preferences toggles (expand ingredients / nutrition) --- .../knowledge_panel_card.dart | 34 ++++++++++++++++-- packages/smooth_app/lib/l10n/app_en.arb | 10 ++++++ .../user_preferences_settings.dart | 36 +++++++++++++++++++ 3 files changed, 78 insertions(+), 2 deletions(-) diff --git a/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_card.dart b/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_card.dart index bfa9260fe592..a82daf0b12a7 100644 --- a/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_card.dart +++ b/packages/smooth_app/lib/knowledge_panel/knowledge_panels/knowledge_panel_card.dart @@ -3,6 +3,8 @@ import 'package:openfoodfacts/model/KnowledgePanel.dart'; import 'package:openfoodfacts/model/KnowledgePanelElement.dart'; import 'package:openfoodfacts/model/KnowledgePanels.dart'; import 'package:openfoodfacts/model/Product.dart'; +import 'package:provider/provider.dart'; +import 'package:smooth_app/data_models/user_preferences.dart'; import 'package:smooth_app/generic_lib/design_constants.dart'; import 'package:smooth_app/knowledge_panel/knowledge_panels/knowledge_panel_expanded_card.dart'; import 'package:smooth_app/knowledge_panel/knowledge_panels/knowledge_panel_group_card.dart'; @@ -20,10 +22,17 @@ class KnowledgePanelCard extends StatelessWidget { final KnowledgePanels allPanels; final Product product; + static const String PANEL_NUTRITION_TABLE_ID = 'nutrition_facts_table'; + static const String PANEL_INGREDIENTS_ID = 'ingredients'; + + /// Returns the preferences tag we use for the flag related to that [panelId]. + static String getExpandFlagTag(final String panelId) => 'expand_$panelId'; + @override Widget build(BuildContext context) { - // If [expanded] = true, render all panel elements (including summary), otherwise just renders panel summary. - if (panel.expanded ?? false) { + final UserPreferences userPreferences = context.watch(); + if (_isExpandedByUser(panel, allPanels, userPreferences) || + (panel.expanded ?? false)) { return KnowledgePanelExpandedCard( panel: panel, allPanels: allPanels, @@ -60,4 +69,25 @@ class KnowledgePanelCard extends StatelessWidget { ), ); } + + bool _isExpandedByUser( + final KnowledgePanel panel, + final KnowledgePanels allPanels, + final UserPreferences userPreferences, + ) { + final List expandedPanelIds = [ + PANEL_NUTRITION_TABLE_ID, + PANEL_INGREDIENTS_ID, + ]; + for (final String panelId in expandedPanelIds) { + if (panel.titleElement != null && + panel.titleElement!.title == + allPanels.panelIdToPanelMap[panelId]?.titleElement?.title) { + if (userPreferences.getFlag(getExpandFlagTag(panelId)) ?? false) { + return true; + } + } + } + return false; + } } diff --git a/packages/smooth_app/lib/l10n/app_en.arb b/packages/smooth_app/lib/l10n/app_en.arb index 4aed961cf83c..cf0f3b394385 100644 --- a/packages/smooth_app/lib/l10n/app_en.arb +++ b/packages/smooth_app/lib/l10n/app_en.arb @@ -1546,6 +1546,16 @@ "@choose from gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" diff --git a/packages/smooth_app/lib/pages/preferences/user_preferences_settings.dart b/packages/smooth_app/lib/pages/preferences/user_preferences_settings.dart index 6d41c717537b..830d604361a2 100644 --- a/packages/smooth_app/lib/pages/preferences/user_preferences_settings.dart +++ b/packages/smooth_app/lib/pages/preferences/user_preferences_settings.dart @@ -8,6 +8,7 @@ import 'package:smooth_app/data_models/user_preferences.dart'; import 'package:smooth_app/generic_lib/design_constants.dart'; import 'package:smooth_app/helpers/analytics_helper.dart'; import 'package:smooth_app/helpers/camera_helper.dart'; +import 'package:smooth_app/knowledge_panel/knowledge_panels/knowledge_panel_card.dart'; import 'package:smooth_app/pages/onboarding/country_selector.dart'; import 'package:smooth_app/pages/preferences/abstract_user_preferences.dart'; import 'package:smooth_app/pages/preferences/user_preferences_page.dart'; @@ -153,6 +154,16 @@ class _PrivacySettings extends StatelessWidget { const _CrashReportingSetting(), const UserPreferencesListItemDivider(), const _SendAnonymousDataSetting(), + _ExpandPanelHelper( + title: appLocalizations.expand_nutrition_facts, + subtitle: appLocalizations.expand_nutrition_facts_body, + panelId: KnowledgePanelCard.PANEL_NUTRITION_TABLE_ID, + ), + _ExpandPanelHelper( + title: appLocalizations.expand_ingredients, + subtitle: appLocalizations.expand_ingredients_body, + panelId: KnowledgePanelCard.PANEL_INGREDIENTS_ID, + ), ], ); } @@ -348,3 +359,28 @@ class _CameraPlayScanSoundSetting extends StatelessWidget { ); } } + +class _ExpandPanelHelper extends StatelessWidget { + const _ExpandPanelHelper({ + required this.title, + required this.subtitle, + required this.panelId, + }); + + final String title; + final String subtitle; + final String panelId; + + @override + Widget build(BuildContext context) { + final UserPreferences userPreferences = context.watch(); + final String flagTag = KnowledgePanelCard.getExpandFlagTag(panelId); + return UserPreferencesSwitchItem( + title: title, + subtitle: subtitle, + value: userPreferences.getFlag(flagTag) ?? false, + onChanged: (final bool value) async => + userPreferences.setFlag(flagTag, value), + ); + } +} From d5017b4f94db1cac53694eb45dfc9e6839043d7a Mon Sep 17 00:00:00 2001 From: monsieurtanuki Date: Fri, 22 Jul 2022 07:47:45 +0200 Subject: [PATCH 45/51] feat: #2337 - additional "power user" product edit page (#2617) New file: * `simple_input_widget.dart`: Simple input widget: we have a list of terms, we add, we remove. Impacted files * `edit_product_page.dart`: added an item that includes 6 simple items; * `simple_input_page.dart`: now manages multiple items; now using new widget `SimpleInputWidget * `simple_input_page_helpers.dart`: refactored for a better "multiple changes" management --- .../lib/pages/product/edit_product_page.dart | 39 ++++ .../lib/pages/product/simple_input_page.dart | 189 +++++------------- .../product/simple_input_page_helpers.dart | 28 ++- .../pages/product/simple_input_widget.dart | 156 +++++++++++++++ 4 files changed, 271 insertions(+), 141 deletions(-) create mode 100644 packages/smooth_app/lib/pages/product/simple_input_widget.dart diff --git a/packages/smooth_app/lib/pages/product/edit_product_page.dart b/packages/smooth_app/lib/pages/product/edit_product_page.dart index 4e5eb8a8db6e..5f226d15dd94 100644 --- a/packages/smooth_app/lib/pages/product/edit_product_page.dart +++ b/packages/smooth_app/lib/pages/product/edit_product_page.dart @@ -129,6 +129,16 @@ class _EditProductPageState extends State { ); }, ), + _getMultipleListTileItem( + [ + SimpleInputPageLabelHelper(), + SimpleInputPageStoreHelper(), + SimpleInputPageOriginHelper(), + SimpleInputPageEmbCodeHelper(), + SimpleInputPageCountryHelper(), + SimpleInputPageCategoryHelper(), + ], + ), _getSimpleListTileItem(SimpleInputPageLabelHelper()), _ListTitleItem( leading: const _SvgIcon('assets/cacheTintable/ingredients.svg'), @@ -239,6 +249,35 @@ class _EditProductPageState extends State { }, ); } + + Widget _getMultipleListTileItem( + final List helpers, + ) { + final AppLocalizations appLocalizations = AppLocalizations.of(context); + final List titles = []; + for (final AbstractSimpleInputPageHelper element in helpers) { + titles.add(element.getTitle(appLocalizations)); + } + return _ListTitleItem( + leading: const Icon(Icons.interests), + title: titles.join(', '), + subtitle: null, + onTap: () async { + if (!await ProductRefresher().checkIfLoggedIn(context)) { + return; + } + await Navigator.push( + context, + MaterialPageRoute( + builder: (BuildContext context) => SimpleInputPage.multiple( + helpers: helpers, + product: _product, + ), + ), + ); + }, + ); + } } class _ListTitleItem extends StatelessWidget { diff --git a/packages/smooth_app/lib/pages/product/simple_input_page.dart b/packages/smooth_app/lib/pages/product/simple_input_page.dart index d374c3de8562..12db3d7c6137 100644 --- a/packages/smooth_app/lib/pages/product/simple_input_page.dart +++ b/packages/smooth_app/lib/pages/product/simple_input_page.dart @@ -2,27 +2,33 @@ import 'package:auto_size_text/auto_size_text.dart'; import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:openfoodfacts/openfoodfacts.dart'; -import 'package:openfoodfacts/utils/TagType.dart'; import 'package:provider/provider.dart'; import 'package:smooth_app/database/local_database.dart'; import 'package:smooth_app/generic_lib/design_constants.dart'; import 'package:smooth_app/generic_lib/dialogs/smooth_alert_dialog.dart'; +import 'package:smooth_app/generic_lib/widgets/smooth_card.dart'; import 'package:smooth_app/helpers/product_cards_helper.dart'; -import 'package:smooth_app/pages/product/autocomplete.dart'; import 'package:smooth_app/pages/product/common/product_refresher.dart'; -import 'package:smooth_app/pages/product/explanation_widget.dart'; import 'package:smooth_app/pages/product/simple_input_page_helpers.dart'; -import 'package:smooth_app/query/product_query.dart'; +import 'package:smooth_app/pages/product/simple_input_widget.dart'; import 'package:smooth_app/widgets/smooth_scaffold.dart'; /// Simple input page: we have a list of terms, we add, we remove, we save. class SimpleInputPage extends StatefulWidget { - const SimpleInputPage({ - required this.helper, + SimpleInputPage({ + required final AbstractSimpleInputPageHelper helper, + required final Product product, + }) : this.multiple( + helpers: [helper], + product: product, + ); + + SimpleInputPage.multiple({ + required this.helpers, required this.product, - }); + }) : assert(helpers.isNotEmpty); - final AbstractSimpleInputPageHelper helper; + final List helpers; final Product product; @override @@ -30,26 +36,43 @@ class SimpleInputPage extends StatefulWidget { } class _SimpleInputPageState extends State { - final TextEditingController _controller = TextEditingController(); - final FocusNode _focusNode = FocusNode(); - final GlobalKey _autocompleteKey = GlobalKey(); + final List _controllers = []; @override void initState() { super.initState(); - widget.helper.reInit(widget.product); + for (final AbstractSimpleInputPageHelper helper in widget.helpers) { + helper.reInit(widget.product); + _controllers.add(TextEditingController()); + } } @override Widget build(BuildContext context) { - final ThemeData themeData = Theme.of(context); final AppLocalizations appLocalizations = AppLocalizations.of(context); + final List simpleInputs = []; + for (int i = 0; i < widget.helpers.length; i++) { + simpleInputs.add( + Padding( + padding: i == 0 + ? EdgeInsets.zero + : const EdgeInsets.only(top: LARGE_SPACE), + child: SmoothCard( + child: SimpleInputWidget( + helper: widget.helpers[i], + product: widget.product, + controller: _controllers[i], + ), + ), + ), + ); + } return WillPopScope( onWillPop: () async => _mayExitPage(saving: false), child: SmoothScaffold( appBar: AppBar( title: AutoSizeText( - getProductName(widget.helper.product, appLocalizations), + getProductName(widget.product, appLocalizations), maxLines: 2, ), ), @@ -59,107 +82,7 @@ class _SimpleInputPageState extends State { mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.start, children: [ - Flexible( - flex: 1, - child: ListView( - children: [ - Text( - widget.helper.getTitle(appLocalizations), - style: themeData.textTheme.headline1, - ), - ExplanationWidget( - widget.helper.getAddExplanations(appLocalizations), - ), - ListTile( - onTap: () => _addItemsFromController(), - trailing: const Icon(Icons.add_circle), - title: RawAutocomplete( - key: _autocompleteKey, - focusNode: _focusNode, - textEditingController: _controller, - optionsBuilder: (final TextEditingValue value) async { - final List result = []; - final String input = value.text.trim(); - if (input.isEmpty) { - return result; - } - final TagType? tagType = widget.helper.getTagType(); - if (tagType == null) { - return result; - } - // TODO(monsieurtanuki): ask off-dart to return Strings instead of dynamic? - final List data = await OpenFoodAPIClient - .getAutocompletedSuggestions( - tagType, - language: ProductQuery.getLanguage()!, - limit: - 1000000, // lower max count on the server anyway - input: value.text.trim(), - ); - for (final dynamic item in data) { - result.add(item.toString()); - } - result.sort(); - return result; - }, - fieldViewBuilder: (BuildContext context, - TextEditingController textEditingController, - FocusNode focusNode, - VoidCallback onFieldSubmitted) => - TextField( - controller: textEditingController, - decoration: InputDecoration( - filled: true, - border: const OutlineInputBorder( - borderRadius: CIRCULAR_BORDER_RADIUS, - borderSide: BorderSide.none, - ), - contentPadding: const EdgeInsets.symmetric( - horizontal: SMALL_SPACE, - vertical: SMALL_SPACE, - ), - hintText: - widget.helper.getAddHint(appLocalizations), - ), - autofocus: true, - focusNode: focusNode, - ), - optionsViewBuilder: ( - BuildContext context, - AutocompleteOnSelected onSelected, - Iterable options, - ) => - AutocompleteOptions( - displayStringForOption: - RawAutocomplete.defaultStringForOption, - onSelected: onSelected, - options: options, - maxOptionsHeight: - MediaQuery.of(context).size.height / 2, - ), - ), - ), - Divider(color: themeData.colorScheme.onBackground), - Column( - children: List.generate( - widget.helper.terms.length, - (final int index) { - final String term = widget.helper.terms[index]; - return ListTile( - leading: const Icon(Icons.delete), - title: Text(term), - onTap: () async { - if (widget.helper.removeTerm(term)) { - setState(() {}); - } - }, - ); - }, - ), - ), - ], - ), - ), + Flexible(flex: 1, child: ListView(children: simpleInputs)), SmoothActionButtonsBar( positiveAction: SmoothActionButton( text: appLocalizations.save, @@ -193,9 +116,21 @@ class _SimpleInputPageState extends State { /// Parameter [saving] tells about the context: are we leaving the page, /// or have we clicked on the "save" button? Future _mayExitPage({required final bool saving}) async { - _addItemsFromController(); - final Product? changedProduct = widget.helper.getChangedProduct(); - if (changedProduct == null) { + final Product changedProduct = Product(barcode: widget.product.barcode); + bool changed = false; + bool added = false; + for (int i = 0; i < widget.helpers.length; i++) { + if (widget.helpers[i].addItemsFromController(_controllers[i])) { + added = true; + } + if (widget.helpers[i].getChangedProduct(changedProduct)) { + changed = true; + } + } + if (added) { + setState(() {}); + } + if (!changed) { return true; } final AppLocalizations appLocalizations = AppLocalizations.of(context); @@ -206,7 +141,7 @@ class _SimpleInputPageState extends State { builder: (final BuildContext context) => SmoothAlertDialog( close: true, body: Text(appLocalizations.edit_product_form_item_exit_confirmation), - title: widget.helper.getTitle(appLocalizations), + title: appLocalizations.edit_product_label, negativeAction: SmoothActionButton( text: appLocalizations.ignore, onPressed: () => Navigator.pop(context, false), @@ -231,20 +166,4 @@ class _SimpleInputPageState extends State { product: changedProduct, ); } - - /// Adds all the non-already existing items from the controller. - /// - /// The item separator is the comma. - void _addItemsFromController() { - final List input = _controller.text.split(','); - bool result = false; - for (final String item in input) { - if (widget.helper.addTerm(item.trim())) { - result = true; - } - } - if (result) { - setState(() => _controller.text = ''); - } - } } diff --git a/packages/smooth_app/lib/pages/product/simple_input_page_helpers.dart b/packages/smooth_app/lib/pages/product/simple_input_page_helpers.dart index 1b7ad6a21b8d..2fe47dcc194e 100644 --- a/packages/smooth_app/lib/pages/product/simple_input_page_helpers.dart +++ b/packages/smooth_app/lib/pages/product/simple_input_page_helpers.dart @@ -83,14 +83,13 @@ abstract class AbstractSimpleInputPageHelper { /// Returns the icon data for the list tile. Widget? getIcon() => null; - /// Returns null is no change was made, or a Product to be saved on the BE. - Product? getChangedProduct() { + /// Returns true if changes were made. + bool getChangedProduct(final Product product) { if (!_changed) { - return null; + return false; } - final Product changedProduct = Product(barcode: product.barcode); - changeProduct(changedProduct); - return changedProduct; + changeProduct(product); + return true; } @protected @@ -104,6 +103,23 @@ abstract class AbstractSimpleInputPageHelper { } return input.split(_separator); } + + /// Adds all the non-already existing items from the controller. + /// + /// The item separator is the comma. + bool addItemsFromController(final TextEditingController controller) { + final List input = controller.text.split(','); + bool result = false; + for (final String item in input) { + if (addTerm(item.trim())) { + result = true; + } + } + if (result) { + controller.text = ''; + } + return result; + } } /// Implementation for "Stores" of an [AbstractSimpleInputPageHelper]. diff --git a/packages/smooth_app/lib/pages/product/simple_input_widget.dart b/packages/smooth_app/lib/pages/product/simple_input_widget.dart new file mode 100644 index 000000000000..01c7382061dc --- /dev/null +++ b/packages/smooth_app/lib/pages/product/simple_input_widget.dart @@ -0,0 +1,156 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/app_localizations.dart'; +import 'package:openfoodfacts/openfoodfacts.dart'; +import 'package:openfoodfacts/utils/TagType.dart'; +import 'package:smooth_app/generic_lib/design_constants.dart'; +import 'package:smooth_app/pages/product/autocomplete.dart'; +import 'package:smooth_app/pages/product/explanation_widget.dart'; +import 'package:smooth_app/pages/product/simple_input_page_helpers.dart'; +import 'package:smooth_app/query/product_query.dart'; + +/// Simple input widget: we have a list of terms, we add, we remove. +class SimpleInputWidget extends StatefulWidget { + const SimpleInputWidget({ + required this.helper, + required this.product, + required this.controller, + }); + + final AbstractSimpleInputPageHelper helper; + final Product product; + final TextEditingController controller; + + @override + State createState() => _SimpleInputWidgetState(); +} + +class _SimpleInputWidgetState extends State { + final FocusNode _focusNode = FocusNode(); + final Key _autocompleteKey = UniqueKey(); + + @override + void initState() { + super.initState(); + widget.helper.reInit(widget.product); + } + + @override + Widget build(BuildContext context) { + final ThemeData themeData = Theme.of(context); + final AppLocalizations appLocalizations = AppLocalizations.of(context); + return Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + ListTile( + leading: widget.helper.getIcon(), + title: Text( + widget.helper.getTitle(appLocalizations), + style: themeData.textTheme.headline3, + ), + ), + ExplanationWidget(widget.helper.getAddExplanations(appLocalizations)), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Flexible( + flex: 1, + child: Padding( + padding: const EdgeInsets.only(left: LARGE_SPACE), + child: RawAutocomplete( + key: _autocompleteKey, + focusNode: _focusNode, + textEditingController: widget.controller, + optionsBuilder: (final TextEditingValue value) async { + final List result = []; + final String input = value.text.trim(); + if (input.isEmpty) { + return result; + } + final TagType? tagType = widget.helper.getTagType(); + if (tagType == null) { + return result; + } + // TODO(monsieurtanuki): ask off-dart to return Strings instead of dynamic? + final List data = + await OpenFoodAPIClient.getAutocompletedSuggestions( + tagType, + language: ProductQuery.getLanguage()!, + limit: 1000000, // lower max count on the server anyway + input: value.text.trim(), + ); + for (final dynamic item in data) { + result.add(item.toString()); + } + result.sort(); + return result; + }, + fieldViewBuilder: (BuildContext context, + TextEditingController textEditingController, + FocusNode focusNode, + VoidCallback onFieldSubmitted) => + TextField( + controller: textEditingController, + decoration: InputDecoration( + filled: true, + border: const OutlineInputBorder( + borderRadius: CIRCULAR_BORDER_RADIUS, + borderSide: BorderSide.none, + ), + contentPadding: const EdgeInsets.symmetric( + horizontal: SMALL_SPACE, + vertical: SMALL_SPACE, + ), + hintText: widget.helper.getAddHint(appLocalizations), + ), + autofocus: true, + focusNode: focusNode, + ), + optionsViewBuilder: ( + BuildContext context, + AutocompleteOnSelected onSelected, + Iterable options, + ) => + AutocompleteOptions( + displayStringForOption: + RawAutocomplete.defaultStringForOption, + onSelected: onSelected, + options: options, + maxOptionsHeight: MediaQuery.of(context).size.height / 2, + ), + ), + ), + ), + IconButton( + onPressed: () { + if (widget.helper.addItemsFromController(widget.controller)) { + setState(() {}); + } + }, + icon: const Icon(Icons.add_circle), + ), + ], + ), + Divider(color: themeData.colorScheme.onBackground), + Column( + children: List.generate( + widget.helper.terms.length, + (final int index) { + final String term = widget.helper.terms[index]; + return ListTile( + leading: const Icon(Icons.delete), + title: Text(term), + onTap: () async { + if (widget.helper.removeTerm(term)) { + setState(() {}); + } + }, + ); + }, + ), + ), + ], + ); + } +} From 6b8da7414ddf6c5ab71f55a43959ccdbdd674f00 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 22 Jul 2022 12:45:30 +0200 Subject: [PATCH 46/51] chore: New Crowdin translations to review and merge (#2641) * chore: New Crowdin translations * Update app_pl.arb Co-authored-by: Crowdin Bot Co-authored-by: Pierre Slamich --- packages/smooth_app/lib/l10n/app_he.arb | 2 +- packages/smooth_app/lib/l10n/app_id.arb | 176 ++++++++++++------------ 2 files changed, 89 insertions(+), 89 deletions(-) diff --git a/packages/smooth_app/lib/l10n/app_he.arb b/packages/smooth_app/lib/l10n/app_he.arb index 1ab8e40b2325..03a968112726 100644 --- a/packages/smooth_app/lib/l10n/app_he.arb +++ b/packages/smooth_app/lib/l10n/app_he.arb @@ -1027,7 +1027,7 @@ "@edit_product_form_item_origins_hint": { "description": "Product edition - Origins - input textfield hint" }, - "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "edit_product_form_item_origins_explainer_1": "יש להוסיף כל סימון שיכול להעיד על מקורות שניתן למצוא על האריזה. אין חשש ממקורות של רכיבים שמצוינים ישירות ברשימת הרכיבים.", "@edit_product_form_item_origins_explainer_1": { "description": "Product edition - Origins - input explainer, part 1" }, diff --git a/packages/smooth_app/lib/l10n/app_id.arb b/packages/smooth_app/lib/l10n/app_id.arb index 8d503fbc2f78..c25d3b3b5186 100644 --- a/packages/smooth_app/lib/l10n/app_id.arb +++ b/packages/smooth_app/lib/l10n/app_id.arb @@ -68,7 +68,7 @@ "@match_does_not": { "description": "Label for product page regarding product compatibility with the user preferences: does not match" }, - "match_unknown": "Unknown match", + "match_unknown": "Hasil tidak diketahui", "@match_unknown": { "description": "Label for product page regarding product compatibility with the user preferences: unknown match" }, @@ -92,7 +92,7 @@ "@match_short_does_not": { "description": "Short label for product list view regarding product compatibility with the user preferences: does not match" }, - "match_short_unknown": "Unknown match", + "match_short_unknown": "Hasil tidak diketahui", "@match_short_unknown": { "description": "Short label for product list view regarding product compatibility with the user preferences: unknown match" }, @@ -142,7 +142,7 @@ "@sign_in": { "description": "Button label: For sign in" }, - "sign_in_mandatory": "For that feature we need you to sign in.", + "sign_in_mandatory": "Untuk fitur itu, kami perlu anda untuk masuk.", "@sign_in_mandatory": { "description": "Error message: for some features like product edits you need to be signed in" }, @@ -199,11 +199,11 @@ "sign_up_page_email_hint": "E-mail", "sign_up_page_email_error_empty": "E-mail diperlukan", "sign_up_page_email_error_invalid": "Surel tidak valid", - "sign_up_page_username_hint": "Username: Publicly visible", + "sign_up_page_username_hint": "Nama pengguna: Terlihat publik", "sign_up_page_username_error_empty": "Silakan masukkan nama pengguna Anda", "sign_up_page_username_error_invalid": "Silakan masukkan nama pengguna yang sah", "sign_up_page_username_description": "Nama pengguna tidak dapat mengandung spasi, huruf besar ataupun karakter khusus", - "sign_up_page_username_length_invalid": "Username cannot exceed {value} characters", + "sign_up_page_username_length_invalid": "Nama pengguna tidak dapat melebihi {value} karakter", "@sign_up_page_username_length_invalid": { "placeholders": { "value": { @@ -217,11 +217,11 @@ "sign_up_page_confirm_password_hint": "Konfirmasi kata sandi", "sign_up_page_confirm_password_error_empty": "Harap konfirmasi kata sandi", "sign_up_page_confirm_password_error_invalid": "Kata sandi tidak cocok", - "sign_up_page_agree_text": "I agree to the Open Food Facts", + "sign_up_page_agree_text": "Saya setuju dengan Open Food Facts", "@sign_up_page_agree_text": { "description": "I agree to the Open Food Facts is followed by sign_up_page_terms_text" }, - "sign_up_page_terms_text": "terms of use and contribution", + "sign_up_page_terms_text": "syarat penggunaan dan kontribusi", "@sign_up_page_terms_text": { "description": "terms of use and contribution is preceded by sign_up_page_agree_text" }, @@ -240,7 +240,7 @@ "sign_up_page_producer_checkbox": "Saya seorang produsen makanan", "sign_up_page_producer_hint": "Produsen/merek", "sign_up_page_producer_error_empty": "Silakan masukkan nama produsen atau merek", - "sign_up_page_subscribe_checkbox": "I'd like to subscribe to the Open Food Facts newsletter (You can unsubscribe from it at any time)", + "sign_up_page_subscribe_checkbox": "Saya ingin berlangganan buletin Open Food Facts (Anda dapat berhenti berlangganan kapan saja)", "@Settings": {}, "settingsTitle": "Pengaturan", "@settingsTitle": { @@ -273,8 +273,8 @@ }, "support_join_slack": "Minta bantuan di saluran Slack kami", "support_via_email": "Kirimkan kami surel", - "support_via_email_include_logs_dialog_title": "Send app logs?", - "support_via_email_include_logs_dialog_body": "Do you wish to include application logs in attachment to your email?", + "support_via_email_include_logs_dialog_title": "Kirim log aplikasi?", + "support_via_email_include_logs_dialog_body": "Apakah anda ingin menyertakan log aplikasi ke email anda?", "termsOfUse": "Syarat Penggunaan", "@termsOfUse": {}, "about_this_app": "Tentang aplikasi ini", @@ -294,8 +294,8 @@ "@contribute_develop_text": {}, "contribute_develop_text_2": "Anda dapat bergabung dengan ruang obrolan Slack Open Food Facts yang juga merupakan cara yang lebih disukai untuk mengajukan pertanyaan.", "@contribute_develop_text_2": {}, - "contribute_develop_dev_mode_title": "DEV Mode?", - "contribute_develop_dev_mode_subtitle": "Activate the DEV Mode", + "contribute_develop_dev_mode_title": "Mode DEV?", + "contribute_develop_dev_mode_subtitle": "Aktifkan Mode DEV", "contribute_donate_header": "Berdonasi ke Open Food Facts", "@contribute_donate_header": {}, "contribute_improve_ProductsToBeCompleted": "Produk - produk yang perlu dilengkapi", @@ -320,9 +320,9 @@ "@contribute_translate_text": {}, "contribute_translate_text_2": "Penerjemahan adalah salah satu tugas utama dari proyek ini", "@contribute_translate_text_2": {}, - "contribute_share_header": "Share Open Food Facts with your friends", + "contribute_share_header": "Bagikan Open Food Facts dengan teman-teman anda", "@contribute_share_header": {}, - "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "contribute_share_content": "Saya ingin memberi tahu kamu tentang aplikasi yang saya gunakan, Open Food Facts, yang memungkinkan kamu untuk mengetahui dampak kesehatan dan lingkungan dari makananmu, secara personal. Aplikasi ini bekerja dengan memindai barcode pada kemasan. Aplikasi ini gratis, tidak perlu pendaftaran, dan kamu bahkan bisa membantu menambah jumlah produk yang diuraikan. Ini tautan untuk mendapatkannya di hpmu: https://openfoodfacts.app", "@contribute_share_content": { "description": "Content that will be shared, don't forget to include the URL" }, @@ -334,11 +334,11 @@ "@saving_answer": { "description": "Dialog shown to users after they have answered a question, while the answer is being saved in the BE." }, - "contribute_to_get_rewards": "Help improve food transparency and get rewards", + "contribute_to_get_rewards": "Bantu tingkatkan transparansi makanan dan dapatkan hadiah", "@contribute_to_get_rewards": { "description": "Button description shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards." }, - "question_sign_in_text": "Sign in to your Open Food Facts account to get credit for your contribution", + "question_sign_in_text": "Masuk ke akun Open Food Facts anda untuk mendapatkan kredit atas kontribusi anda", "@Personal preferences": {}, "myPreferences": "Preferensi Saya", "@myPreferences": { @@ -347,11 +347,11 @@ "myPreferences_profile_title": "Profil Anda", "myPreferences_profile_subtitle": "Kelola akun kontributor Open Food Facts Anda.", "myPreferences_settings_title": "Pengaturan Aplikasi", - "myPreferences_settings_subtitle": "Dark mode, Analytics, ...", + "myPreferences_settings_subtitle": "Mode gelap, Analitis, ...", "myPreferences_food_title": "Preferensi Makanan", - "myPreferences_food_subtitle": "Choose what information about food matters most to you.", - "myPreferences_food_comment": "Choose what information about food matters most to you, in order to rank food according to your preferences, see the information you care about first, and get a compatibility summary. Those food preferences stay on your device, and are not associated with your Open Food Facts contributor account if you have one.", - "confirmResetPreferences": "Reset your food preferences?", + "myPreferences_food_subtitle": "Pilih informasi tentang makanan yang paling penting bagi anda.", + "myPreferences_food_comment": "Pilih informasi tentang makanan yang paling penting bagi anda, untuk memberi peringkat makanan sesuai preferensi anda, melihat informasi yang paling anda minati lebih dahulu dan dapatkan ringkasan kompatibilitas. Preferensi makanan tersebut tetap ada di perangkat anda, dan tidak terkait dengan akun kontributor Open Food Facts anda jika anda memilikinya.", + "confirmResetPreferences": "Atur ulang preferensi makanan anda?", "@confirmResetPreferences": { "description": "Pop up title: Reassuring if the food preferences should really be reset" }, @@ -362,7 +362,7 @@ "ranking_tab_all": "Semua", "ranking_subtitle_match_yes": "Pilihan cocok untuk Anda", "ranking_subtitle_match_no": "Sangat tidak cocok", - "ranking_subtitle_match_maybe": "Unknown match", + "ranking_subtitle_match_maybe": "Hasil tidak diketahui", "reloaded_with_new_preferences": "Dimuat ulang dengan preferensi baru Anda", "@reloaded_with_new_preferences": { "description": "Snackbar title: Shows that the modified settings have been applied" @@ -420,18 +420,18 @@ }, "ingredients": "Komposisi", "@ingredients": {}, - "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.", + "ingredients_editing_instructions": "Pertahankan urutan asli. Tunjukkan persentase ketika ditentukan. Pisah dengan koma atau tanda hubung, gunakan tanda kurung untuk bahan dari bahan, dan tunjukkan alergen di antara garis bawah.", "ingredients_editing_error": "Gagal menyimpan komposisi.", - "ingredients_editing_image_error": "Failed to get a new ingredients image.", + "ingredients_editing_image_error": "Gagal untuk mendapatkan gambar bahan baru.", "ingredients_editing_title": "Sunting Komposisi", "ingredients_photo": "Foto kandungan bahan", "@ingredients_photo": { "description": "Button label: For adding a picture of the Ingredients of a product" }, - "packaging_editing_instructions": "List all packaging parts separated by a comma or line feed, with their amount (e.g. 1 or 6) type (e.g. bottle, box, can), material (e.g. plastic, metal, aluminium) and if available their size (e.g. 33cl) and recycling instructions.\nExample: 1 glass bottle to recycle, 1 plastic cork to throw away", - "packaging_editing_error": "Failed to save the packaging.", - "packaging_editing_image_error": "Failed to get a new packaging image.", - "packaging_editing_title": "Edit Packaging", + "packaging_editing_instructions": "Daftar semua bagian kemasan yang dipisahkan dengan koma atau baris, dengan jumlah (misalnya 1 atau 6), jenis (misalnya botol, kotak, kaleng), material (misalnya plastik, logam, aluminium) dan jika ukuran jika tersedia (misalnya 33cl) dan instruksi daur ulang.\nContoh: 1 gelas botol untuk didaur ulang, 1 sumbat plastik untuk dibuang", + "packaging_editing_error": "Gagal menyimpan kemasan.", + "packaging_editing_image_error": "Gagal mendapatkan gambar kemasan baru.", + "packaging_editing_title": "Ubah kemasan", "nutrition": "Kandungan nutrisi", "@nutrition": {}, "nutrition_facts_photo": "Foto kandungan gizi", @@ -464,7 +464,7 @@ "front_packaging_photo_title": "Foto Kemasan Depan", "ingredients_photo_title": "Foto Komposisi", "nutritional_facts_photo_title": "Foto Informasi Nilai Gizi", - "recycling_photo_title": "Recycling Photo", + "recycling_photo_title": "Foto daur ulang", "other_interesting_photo_title": "Foto Menarik Lainnya", "front_photo_uploaded": "Foto depan diunggah", "@front_photo_uploaded": {}, @@ -472,30 +472,30 @@ "@ingredients_photo_button_label": {}, "ingredients_photo_uploaded": "Foto komposisi diunggah", "@ingredients_photo_uploaded": {}, - "nutrition_cache_loading_error": "Unable to load nutrients from cache", + "nutrition_cache_loading_error": "Tidak dapat memuat nutrien dari cache", "nutritional_facts_photo_button_label": "Foto kandungan gizi", "@nutritional_facts_photo_button_label": {}, - "nutritional_facts_input_button_label": "Input nutrition facts", - "nutritional_facts_added": "Nutrition facts added", - "nutritional_facts_photo_uploaded": "Nutrition facts photo uploaded", + "nutritional_facts_input_button_label": "Masukkan informasi nilai gizi", + "nutritional_facts_added": "Informasi nilai gizi ditambahkan", + "nutritional_facts_photo_uploaded": "Foto informasi nilai gizi telah diunggah", "@nutritional_facts_photo_uploaded": {}, - "recycling_photo_button_label": "Recycling information photo", + "recycling_photo_button_label": "Foto informasi daur ulang", "@recycling_photo_button_label": {}, - "recycling_photo_uploaded": "Recycling photo uploaded", + "recycling_photo_uploaded": "Foto daur ulang telah diunggah", "@recycling_photo_uploaded": {}, - "other_interesting_photo_button_label": "Other interesting photos", + "other_interesting_photo_button_label": "Foto menarik lainnya", "@other_interesting_photo_button_label": {}, - "other_photo_uploaded": "Miscellaneous photo uploaded", + "other_photo_uploaded": "Berbagai foto telah diunggah", "@other_photo_uploaded": {}, "retake_photo_button_label": "Ambil ulang", "@retake_photo_button_label": { "description": "Button clicking on which allows users to retake the last photo they took." }, - "selecting_photo": "Selecting photo", + "selecting_photo": "Memilih foto", "@selecting_photo": { "description": "Progress indicator when the users takes a photo" }, - "uploading_image": "Uploading photo to the server", + "uploading_image": "Mengunggah foto ke peladen", "@uploading_image": { "description": "Message when a new picture is uploading to the server" }, @@ -523,19 +523,19 @@ "@uploading_image_type_generic": { "description": "Message when a new picture is being uploaded to the server" }, - "score_add_missing_ingredients": "Add missing ingredients", - "score_add_missing_nutrition_facts": "Add missing nutrition facts", - "score_add_missing_product_category": "Add missing product category", - "score_update_nutrition_facts": "Update nutrition facts", + "score_add_missing_ingredients": "Tambahkan bahan yang kurang", + "score_add_missing_nutrition_facts": "Tambahkan informasi nilai gizi yang kurang", + "score_add_missing_product_category": "Tambahkan kategori produk yang kurang", + "score_update_nutrition_facts": "Perbarui informasi nilai gizi", "nutrition_page_title": "Informasi nilai gizi", - "nutrition_page_unspecified": "Nutrition facts are not specified on the product", + "nutrition_page_unspecified": "Informasi nilai gizi tidak ditampilkan pada produk", "nutrition_page_per_100g": "per 100g", "nutrition_page_per_serving": "per sajian", "nutrition_page_add_nutrient": "Tambahkan nutrisi", "nutrition_page_serving_size": "Takaran saji", - "nutrition_page_invalid_number": "Invalid number", - "nutrition_page_update_running": "Updating the product on the server...", - "nutrition_page_update_done": "Product updated!", + "nutrition_page_invalid_number": "Nomor tidak valid", + "nutrition_page_update_running": "Memperbarui produk di peladen...", + "nutrition_page_update_done": "Produk diperbarui!", "more_photos": "Lebih banyak foto menarik", "@more_photos": {}, "no_product_found": "Produk tidak ditemukan", @@ -556,18 +556,18 @@ "description": "The product data couldn't be refreshed" }, "product_internet_error": "Pengambilan informasi tentang produk ini gagal karena kesalahan jaringan.", - "cached_results_from": "Show results from:", + "cached_results_from": "Menampilkan hasil dari:", "@cached_results_from": { "description": "Cached results from: x time ago (time ago should not be added to the string)" }, "@Product Addition": {}, "added_product_thanks": "Terima kasih telah menambahkan produk ini!", "@added_product_thanks": {}, - "product_search_same_category": "Compare to Category", + "product_search_same_category": "Bandingkan dengan Kategori", "@product_search_same_category": { "description": "Button looking for the other products within the same category. Less than 30 characters" }, - "product_improvement_add_category": "Add a category to calculate the Nutri-Score.", + "product_improvement_add_category": "Tambahkan kategori untuk menghitung Nutri-Score.", "@product_improvement_add_category": { "description": "Message for ProductImprovement.ADD_CATEGORY" }, @@ -587,7 +587,7 @@ "@product_improvement_obsolete_nutrition_image": { "description": "Message for ProductImprovement.OBSOLETE_NUTRITION_IMAGE" }, - "product_improvement_origins_to_be_completed": "The Eco-Score takes into account the origins of the ingredients. Please take a photo of the ingredient list and/or any geographic claim or edit the product, so they can be taken into account.", + "product_improvement_origins_to_be_completed": "Eco-score memperhitungkan asal-usul bahan. Harap ambil foto daftar bahan dan/atau klaim geografis atau sunting produk, agar dapat diperhitungkan.", "@product_improvement_origins_to_be_completed": { "description": "Message for ProductImprovement.ORIGINS_TO_BE_COMPLETED" }, @@ -599,11 +599,11 @@ "@country_label": { "description": "Explanation as to why users should select their country." }, - "product_removed_comparison": "Product removed from comparison", + "product_removed_comparison": "Produk telah dihapus dari perbandingan", "@product_removed_comparison": { "description": "Product got removed from comparison list" }, - "product_removed_history": "Product removed from history", + "product_removed_history": "Produk telah dihapus dari riwayat", "@product_removed_history": { "description": "Product got removed from history" }, @@ -619,7 +619,7 @@ "@clear": { "description": "Clears a product list" }, - "really_clear": "Do you really want to delete this list?", + "really_clear": "Apakah anda benar-benar ingin menghapus daftar ini?", "@Plural": {}, "pct_match": "{percent}% cocok", "@pct_match": { @@ -628,7 +628,7 @@ "percent": {} } }, - "plural_ago_days": "{count,plural, one {} =1{one day ago} other{{count} days ago}}", + "plural_ago_days": "{count,plural, one {}=1{sehari yang lalu} other{{count} hari yang lalu}}", "@plural_ago_days": { "description": "Cached results from: x days ago", "placeholders": { @@ -663,7 +663,7 @@ "count": {} } }, - "plural_compare_x_products": "{count,plural, =1{Compare one Product} other{Compare {count} Products}", + "plural_compare_x_products": "{count,plural, =1{Compare one Product} other{Bandingkan {count} Produk}", "@plural_compare_x_products": { "description": "Button label", "placeholders": { @@ -692,15 +692,15 @@ "@consent_analytics_title": { "description": "Title for the consent analytics UI Page" }, - "consent_analytics_body1": "Help the Open Food Facts volunteers to improve the app. You decide whether to submit anonymous analytics.", + "consent_analytics_body1": "Bantu sukarelawan Open Food Facts untuk meningkatkan aplikasi. Anda dapat memutuskan untuk mengirim analisa secara anonim.", "@conset_analytics_body1": { "description": "first paragraph for the consent analytics UI Page" }, - "consent_analytics_body2": "If you change your mind, this option can be enabled and disabled at any time from the settings.", + "consent_analytics_body2": "Jika anda berubah pikiran, pilihan ini dapat diaktikan dan dinonaktifkan kapan saja dari pengaturan.", "@consent_analytics_body2": { "description": "second paragraph for the consent analytics UI Page" }, - "contact_form_body_android": "OS: Android (SDK Int: {sdkInt} / Release: ${release})\nModel: ${model}\nProduct: ${product}\nDevice: ${device}\nBrand:{brand}", + "contact_form_body_android": "OS: Android (SDK Int: {sdkInt} / Release: ${release})\nModel: ${model}\nProduk: ${product}\nGawai: ${device}\nMerek:{brand}", "@contact_form_body_android": { "description": "Contact form content for Android devices", "placeholders": { @@ -730,7 +730,7 @@ } } }, - "contact_form_body_ios": "OS: iOS ({version})\nModel: ${model}\nLocalized model: ${localizedModel}", + "contact_form_body_ios": "OS: iOS ({version})\nModel: ${model}\nModel lokal: ${localizedModel}", "@contact_form_body_ios": { "description": "Contact form content for iOS devices", "placeholders": { @@ -748,7 +748,7 @@ } } }, - "contact_form_body": "{osContent}\nApp version:{appVersion}\nApp build number:{appBuildNumber}\nApp package name:{appPackageName}", + "contact_form_body": "{osContent}\nVersi aplikasi:{appVersion}\nNomor pembuatan aplikasi:{appBuildNumber}\nNama paket aplikasi:{appPackageName}", "@contact_form_body": { "description": "Contact form content", "placeholders": { @@ -770,11 +770,11 @@ } } }, - "authorize_button_label": "Authorize", + "authorize_button_label": "Izinkan", "@authorize": { "description": "Button to accept the request of sending the anonymous analytics" }, - "refuse_button_label": "Refuse", + "refuse_button_label": "Tolak", "@refuse": { "description": "Button to decline the request of sending the anonymous analytics" }, @@ -799,7 +799,7 @@ "@onboarding_welcome_loading_dialog_title": { "description": "Title for the onboarding loading dialog" }, - "onboarding_welcome_loading_error": "Seems like there is no example product in your language", + "onboarding_welcome_loading_error": "Sepertinya tidak ada contoh produk dalam bahasa anda", "@onboarding_welcome_loading_error": { "description": "Seems like there is no example product in your language" }, @@ -819,14 +819,14 @@ "@product_list_empty_message": { "description": "When the history list is empty, body of the message explaining to start scanning" }, - "product_list_reloading_in_progress_multiple": "Refreshing {count,plural, one {} =0{product} =1{product} other{products}} in your history", + "product_list_reloading_in_progress_multiple": "Menyegarkan {count,plural, =0{produk} =1{produk} other{produk}} dalam riwayat anda", "@product_list_reloading_in_progress_multiple": { "description": "Message to show while loading previous scanned items", "placeholders": { "count": {} } }, - "product_list_reloading_success_multiple": "{count,plural, one {} =0{Product} =1{Product} other{Products}} refresh complete", + "product_list_reloading_success_multiple": "Penyegaran {count,plural, =0{Produk} =1{Produk} other{Produck}} selesai", "@product_list_reloading_success_multiple": { "description": "Message to show once previous scanned items are loaded", "placeholders": { @@ -854,7 +854,7 @@ "description": "When the user is not connected" }, "user_profile_subtitle_guest": "Masuk atau daftar untuk bergabung dengan komunitas Open Food Facts", - "user_profile_title_id_email": "Open Food Facts login: {email}", + "user_profile_title_id_email": "Open Food Facts masuk: {email}", "@user_profile_title_id_email": { "description": "User login (when it's an email)", "placeholders": { @@ -885,25 +885,25 @@ } } }, - "settings_app_app": "Application", - "settings_app_data": "Privacy & monitoring", - "settings_app_camera": "Camera", + "settings_app_app": "Aplikasi", + "settings_app_data": "Privasi dan pemantauan", + "settings_app_camera": "Kamera", "@camera_settings_title": { "description": "Name of the camera section in the settings" }, - "camera_high_resolution_preset_toggle_title": "High performance mode", + "camera_high_resolution_preset_toggle_title": "Mode performa tinggi", "@camera_high_resolution_preset_toggle_title": { "description": "Title for the Camera high resolution toggle" }, - "camera_high_resolution_preset_toggle_subtitle": "When enabled, barcodes decoding quality should be better, but may impact performance and battery life. Requires an application restart.", + "camera_high_resolution_preset_toggle_subtitle": "Saat diaktifkan, kualitas penguraian barcode akan lebih baik, tetapi dapat mempengaruhi kinerja dan masa pakai baterai. Membutuhkan restart aplikasi.", "@camera_high_resolution_preset_toggle_subtitle": { "description": "SubTitle for the Camera high resolution toggle" }, - "camera_focus_point_algorithm_title": "Focus mode", + "camera_focus_point_algorithm_title": "Mode fokus", "@camera_focus_point_algorithm_title": { "description": "Title for the Camera focus mode (Android only)" }, - "camera_focus_point_algorithm_subtitle": "Current mode: {mode}\n{reason}", + "camera_focus_point_algorithm_subtitle": "Mode saat ini: {mode}\n{reason}", "@camera_focus_point_algorithm_subtitle": { "description": "SubTitle for the Camera focus mode (Android only)", "placeholders": { @@ -916,12 +916,12 @@ } }, "camera_focus_point_algorithm_value_auto_label": "Otomatis", - "camera_focus_point_algorithm_value_auto_description": "Let the system choose automatically between fast and safe modes.", - "camera_focus_point_algorithm_value_new_algorithm_label": "Fast mode", - "camera_focus_point_algorithm_value_new_algorithm_description": "A mode recommended to recent devices.", - "camera_focus_point_algorithm_value_old_algorithm_label": "Safe mode", - "camera_focus_point_algorithm_value_old_algorithm_description": "If fast mode doesn't work, this should resolve your focus issues.", - "camera_play_sound_title": "Play a sound on scan", + "camera_focus_point_algorithm_value_auto_description": "Biarkan sistem memilih secara otomatis antara mode cepat dan aman.", + "camera_focus_point_algorithm_value_new_algorithm_label": "Mode cepat", + "camera_focus_point_algorithm_value_new_algorithm_description": "Mode yang direkomendasikan untuk perangkat terbaru.", + "camera_focus_point_algorithm_value_old_algorithm_label": "Mode aman", + "camera_focus_point_algorithm_value_old_algorithm_description": "Apabila mode cepat tidak berfungsi, ini akan menyelesaikan masalah utama anda.", + "camera_play_sound_title": "Putar suara saat memindai", "@camera_play_sound_title": { "description": "Title for the Camera play sound toggle" }, @@ -933,7 +933,7 @@ "@crash_reporting_toggle_title": { "description": "Title for the Crash reporting toggle" }, - "crash_reporting_toggle_subtitle": "When enabled, crash reports are automatically submitted to Open Food Facts' error tracking system, so that bugs can be fixed and thus improve the app.", + "crash_reporting_toggle_subtitle": "Saat diaktikan, laporan kerusakan secara otomatis dikirimkan ke sistem pelacakan kesalahan Open Food Facts, sehingga bug dapat diperbaiki sehingga dapat meningkatkan aplikasi.", "@crash_reporting_toggle_subtitle": { "description": "SubTitle for the Crash reporting toggle" }, @@ -1023,15 +1023,15 @@ "@edit_product_form_item_origins_title": { "description": "Product edition - Origins - Title" }, - "edit_product_form_item_origins_hint": "Spain", + "edit_product_form_item_origins_hint": "Spanyol", "@edit_product_form_item_origins_hint": { "description": "Product edition - Origins - input textfield hint" }, - "edit_product_form_item_origins_explainer_1": "Add any indications of origins you can find on the packaging. You need not worry about origins indicated directly in the ingredient list.", + "edit_product_form_item_origins_explainer_1": "Tambahkan indikasi asal yang dapat anda temukan pada kemasan. Anda tidak perlu khawatir tentang asal-usul yang ditunjukkan langsung dalam daftar bahan.", "@edit_product_form_item_origins_explainer_1": { "description": "Product edition - Origins - input explainer, part 1" }, - "edit_product_form_item_origins_explainer_2": "Examples: Beef from Argentina, The soy does not come from the European Union", + "edit_product_form_item_origins_explainer_2": "Contoh: Daging sapi dari Argentina, Kedelai tidak berasal dari Uni Eropa", "@edit_product_form_item_origins_explainer_2": { "description": "Product edition - Origins - input explainer, part 2" }, @@ -1039,11 +1039,11 @@ "@edit_product_form_item_countries_title": { "description": "Product edition - Countries - Title" }, - "edit_product_form_item_countries_hint": "Spain", + "edit_product_form_item_countries_hint": "Spanyol", "@edit_product_form_item_countries_hint": { "description": "Product edition - Countries - input textfield hint" }, - "edit_product_form_item_countries_explanations": "Countries where the product is widely available (not including stores specialising in foreign products).", + "edit_product_form_item_countries_explanations": "Negara tempat produk tersedia secara luas (tidak termasuk toko yang mengkhususkan diri pada produk asing).", "@edit_product_form_item_countries_explanations": { "description": "Product edition - Countries - explanations" }, @@ -1055,7 +1055,7 @@ "@edit_product_form_item_emb_codes_hint": { "description": "Product edition - Traceability Codes - input textfield hint" }, - "edit_product_form_item_emb_codes_explanations": "In Europe, code in an ellipse with the 2 country initials followed by a number and CE.\nExamples: EMB 53062, FR 62.448.034 CE, 84 R 20, 33 RECOLTANT 522", + "edit_product_form_item_emb_codes_explanations": "Di Eropa, kode berbentuk elips dengan 2 inisial negara diikuti dengan angka dan CE.\nContoh: EMB 53062, FR 62.448.034 CE, 85 R 20, 33 RECOLTANT 522", "@edit_product_form_item_emb_codes_examples": { "description": "Product edition - EMB Codes - explanations" }, @@ -1067,7 +1067,7 @@ "@edit_product_form_item_categories_hint": { "description": "Product edition - Categories - input textfield hint" }, - "edit_product_form_item_categories_explainer_1": "Indicate only the most specific category. Parent categories will be automatically added.", + "edit_product_form_item_categories_explainer_1": "Tunjukkan hanya kategori yang paling spesifik. Kategori induk akan ditambahkan secara otomatis.", "@edit_product_form_item_categories_explainer_1": { "description": "Product edition - Categories - input explainer, part 1" }, @@ -1410,7 +1410,7 @@ "@signup_page_terms_of_use_line1": { "description": "User consent for terms of use (line 1)" }, - "signup_page_terms_of_use_line2": "terms of use and contribution", + "signup_page_terms_of_use_line2": "syarat penggunaan dan kontribusi", "@signup_page_terms_of_use_line2": { "description": "User consent for terms of use (line 2)" }, From d856b350356c10a941954125cee21d3e079c4198 Mon Sep 17 00:00:00 2001 From: Abu Ghalib <33085535+abughalib@users.noreply.github.com> Date: Fri, 22 Jul 2022 17:28:16 +0530 Subject: [PATCH 47/51] feat: Language filter (#2539) * feat: language filter * feat: dev mode language search * Oop, Open food facts Language used * language picker seperated. * localize choose app language * fix: language filter changes requested * fix: further optimization Co-authored-by: Pierre Slamich --- .../widgets/language_selector.dart | 113 +++++++++ packages/smooth_app/lib/l10n/app_en.arb | 6 +- .../user_preferences_dev_mode.dart | 24 +- .../user_preferences_languages_list.dart | 226 ++++++++++++++++++ 4 files changed, 348 insertions(+), 21 deletions(-) create mode 100644 packages/smooth_app/lib/generic_lib/widgets/language_selector.dart create mode 100644 packages/smooth_app/lib/pages/preferences/user_preferences_languages_list.dart diff --git a/packages/smooth_app/lib/generic_lib/widgets/language_selector.dart b/packages/smooth_app/lib/generic_lib/widgets/language_selector.dart new file mode 100644 index 000000000000..9b55c844f9be --- /dev/null +++ b/packages/smooth_app/lib/generic_lib/widgets/language_selector.dart @@ -0,0 +1,113 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/app_localizations.dart' + show AppLocalizations; +import 'package:openfoodfacts/utils/LanguageHelper.dart'; +import 'package:smooth_app/data_models/user_preferences.dart'; +import 'package:smooth_app/generic_lib/dialogs/smooth_alert_dialog.dart'; +import 'package:smooth_app/pages/preferences/user_preferences_languages_list.dart'; + +class LanguageSelectorSettings extends StatelessWidget { + const LanguageSelectorSettings({ + required this.userPreferences, + required this.appLocalizations, + }); + + final UserPreferences userPreferences; + final AppLocalizations appLocalizations; + + static final Languages _languages = Languages(); + + @override + Widget build(BuildContext context) { + // The languages that are supported by flutter widget + final String currentLanguageCode = userPreferences.appLanguageCode ?? + Localizations.localeOf(context).toString(); + final String nameInLanguage = + _languages.getLanguageNameInEnglishFromOpenFoodFactsLanguage( + LanguageHelper.fromJson(currentLanguageCode)); + return ListTile( + leading: const Icon(Icons.language), + title: Text( + appLocalizations.choose_app_language, + ), + subtitle: Text( + '$nameInLanguage ($currentLanguageCode)', + softWrap: false, + overflow: TextOverflow.fade, + ), + onTap: () async { + final List leftovers = + _languages.getSupportedLanguagesNameInEnglish(); + leftovers.sort((OpenFoodFactsLanguage a, OpenFoodFactsLanguage b) => + _languages + .getLanguageNameInEnglishFromOpenFoodFactsLanguage(a) + .compareTo(_languages + .getLanguageNameInEnglishFromOpenFoodFactsLanguage(b))); + List filteredList = leftovers; + await showDialog( + context: context, + builder: (BuildContext context) { + return StatefulBuilder( + builder: (BuildContext context, + void Function(VoidCallback fn) setState) { + return SmoothAlertDialog( + body: Column( + children: [ + TextField( + decoration: InputDecoration( + prefixIcon: const Icon(Icons.search), + enabledBorder: const UnderlineInputBorder(), + labelText: appLocalizations.search, + ), + onChanged: (String query) { + setState( + () { + filteredList = leftovers + .where((OpenFoodFactsLanguage item) => + _languages + .getLanguageNameInEnglishFromOpenFoodFactsLanguage( + item) + .toLowerCase() + .contains(query.toLowerCase()) || + item.code.contains(query)) + .toList(); + }, + ); + }, + ), + ...List.generate( + filteredList.length, + (int index) { + final OpenFoodFactsLanguage openFoodFactsLanguage = + filteredList[index]; + final String nameInLanguage = _languages + .getLanguageNameInLanguageFromOpenFoodFactsLanguage( + openFoodFactsLanguage); + return ListTile( + title: Text( + '$nameInLanguage (${_languages.getLanguageNameInEnglishFromOpenFoodFactsLanguage(openFoodFactsLanguage)})', + softWrap: false, + overflow: TextOverflow.fade, + ), + onTap: () { + userPreferences.setAppLanguageCode( + openFoodFactsLanguage.code); + Navigator.of(context).pop(); + }, + ); + }, + ), + ], + ), + positiveAction: SmoothActionButton( + onPressed: () => Navigator.pop(context), + text: appLocalizations.cancel, + ), + ); + }, + ); + }); + }, + ); + } +} diff --git a/packages/smooth_app/lib/l10n/app_en.arb b/packages/smooth_app/lib/l10n/app_en.arb index cf0f3b394385..c1db530e84a1 100644 --- a/packages/smooth_app/lib/l10n/app_en.arb +++ b/packages/smooth_app/lib/l10n/app_en.arb @@ -1543,7 +1543,7 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, "expand_nutrition_facts": "Expand nutrition facts table", @@ -1559,5 +1559,9 @@ "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/pages/preferences/user_preferences_dev_mode.dart b/packages/smooth_app/lib/pages/preferences/user_preferences_dev_mode.dart index 30c05ae6105e..c1ae1950dcb1 100644 --- a/packages/smooth_app/lib/pages/preferences/user_preferences_dev_mode.dart +++ b/packages/smooth_app/lib/pages/preferences/user_preferences_dev_mode.dart @@ -9,6 +9,7 @@ import 'package:smooth_app/data_models/user_preferences.dart'; import 'package:smooth_app/database/dao_product_list.dart'; import 'package:smooth_app/database/local_database.dart'; import 'package:smooth_app/generic_lib/dialogs/smooth_alert_dialog.dart'; +import 'package:smooth_app/generic_lib/widgets/language_selector.dart'; import 'package:smooth_app/helpers/data_importer/product_list_import_export.dart'; import 'package:smooth_app/helpers/data_importer/smooth_app_data_importer.dart'; import 'package:smooth_app/pages/onboarding/onboarding_flow_navigator.dart'; @@ -60,9 +61,6 @@ class UserPreferencesDevMode extends AbstractUserPreferences { static const LocalizationsDelegate delegate = GlobalMaterialLocalizations.delegate; - final List _supportedLanguageCodes = AppLocalizations.supportedLocales - .where((Locale locale) => delegate.isSupported(locale)) - .toList(); @override PreferencePageType? getPreferencePageType() => PreferencePageType.DEV_MODE; @@ -335,23 +333,9 @@ class UserPreferencesDevMode extends AbstractUserPreferences { setState(() {}); }, ), - ListTile( - leading: const Icon(Icons.language), - title: DropdownButton( - value: userPreferences.appLanguageCode ?? - Localizations.localeOf(context).toString(), - elevation: 16, - isExpanded: true, - onChanged: (String? languageCode) async => - userPreferences.setAppLanguageCode(languageCode), - items: _supportedLanguageCodes.map((Locale locale) { - final String localeString = locale.toString(); - return DropdownMenuItem( - value: localeString, - child: Text(localeString), - ); - }).toList(), - ), + LanguageSelectorSettings( + userPreferences: userPreferences, + appLocalizations: appLocalizations, ), ListTile( // Do not translate diff --git a/packages/smooth_app/lib/pages/preferences/user_preferences_languages_list.dart b/packages/smooth_app/lib/pages/preferences/user_preferences_languages_list.dart new file mode 100644 index 000000000000..0a616a14fecf --- /dev/null +++ b/packages/smooth_app/lib/pages/preferences/user_preferences_languages_list.dart @@ -0,0 +1,226 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_localizations/flutter_localizations.dart'; +import 'package:flutter_native_splash/cli_commands.dart'; +import 'package:openfoodfacts/utils/LanguageHelper.dart'; + +class Languages { + static const LocalizationsDelegate _delegate = + GlobalMaterialLocalizations.delegate; + + static const Map _openFoodFactsLanguagesList = + { + OpenFoodFactsLanguage.AFAR: 'Afar', + OpenFoodFactsLanguage.AFRIKAANS: 'Afrikaans', + OpenFoodFactsLanguage.AKAN: 'Akan', + OpenFoodFactsLanguage.AMHARIC: 'አማርኛ', + OpenFoodFactsLanguage.ARABIC: 'عربى', + OpenFoodFactsLanguage.ARAGONESE: 'Aragonés', + OpenFoodFactsLanguage.ASSAMESE: 'অসমীয়া', + OpenFoodFactsLanguage.AVAR: 'Авар', + OpenFoodFactsLanguage.AVESTAN: 'Avesta', + OpenFoodFactsLanguage.AYMARA: 'Aymar aru', + OpenFoodFactsLanguage.AZERBAIJANI: 'Azərbaycan', + OpenFoodFactsLanguage.BELARUSIAN: 'беларускi', + OpenFoodFactsLanguage.BULGARIAN: 'български', + OpenFoodFactsLanguage.BAMBARA: 'Bamanankan', + OpenFoodFactsLanguage.BASHKIR: 'башҡорт тілі', + OpenFoodFactsLanguage.BENGALI: 'বাংলা', + OpenFoodFactsLanguage.BIHARI_LANGUAGES: 'Bihari Languages', + OpenFoodFactsLanguage.BISLAMA: 'Bislama', + OpenFoodFactsLanguage.TIBETAN_LANGUAGE: 'Tibetan', + OpenFoodFactsLanguage.BRETON: 'Breton', + OpenFoodFactsLanguage.BOSNIAN: 'bosanski', + OpenFoodFactsLanguage.CATALAN: 'català', + OpenFoodFactsLanguage.CHECHEN: 'Chechen', + OpenFoodFactsLanguage.CHEWA: 'Chewa', + OpenFoodFactsLanguage.CHAMORRO: 'Chamoru', + OpenFoodFactsLanguage.CHURCH_SLAVONIC: 'Church Slavonic', + OpenFoodFactsLanguage.CORSICAN: 'Corsu', + OpenFoodFactsLanguage.CREE: 'ᐃᓄᒃᑎᑐᑦ', + OpenFoodFactsLanguage.CZECH: 'čeština', + OpenFoodFactsLanguage.CHUVASH: 'Chuvash', + OpenFoodFactsLanguage.WELSH: 'Cymraeg', + OpenFoodFactsLanguage.DANISH: 'dansk', + OpenFoodFactsLanguage.DZONGKHA_LANGUAGE: 'Dzongkha', + OpenFoodFactsLanguage.GERMAN: 'Deutsch', + OpenFoodFactsLanguage.MODERN_GREEK: 'Ελληνικά', + OpenFoodFactsLanguage.ENGLISH: 'English', + OpenFoodFactsLanguage.ESPERANTO: 'Esperanto', + OpenFoodFactsLanguage.SPANISH: 'Español', + OpenFoodFactsLanguage.ESTONIAN: 'eestikeel', + OpenFoodFactsLanguage.EWE: 'Eʋegbe', + OpenFoodFactsLanguage.BASQUE: 'euskara', + OpenFoodFactsLanguage.PERSIAN: 'فارسی', + OpenFoodFactsLanguage.FINNISH: 'Suomalainen', + OpenFoodFactsLanguage.FAROESE: 'Faroese', + OpenFoodFactsLanguage.FRENCH: 'Français', + OpenFoodFactsLanguage.FIJIAN_LANGUAGE: 'Fijian', + OpenFoodFactsLanguage.FULA_LANGUAGE: 'Fula', + OpenFoodFactsLanguage.IRISH: 'Gaeilge', + OpenFoodFactsLanguage.SCOTTISH_GAELIC: 'ScottishGaelic', + OpenFoodFactsLanguage.GALICIAN: 'galego', + OpenFoodFactsLanguage.GREENLANDIC: 'Greenlandic', + OpenFoodFactsLanguage.GIKUYU: 'Gikuyu', + OpenFoodFactsLanguage.GUARANI: 'Guaraní', + OpenFoodFactsLanguage.GUJARATI: 'ગુજરાતી', + OpenFoodFactsLanguage.HAUSA: 'હૌસા', + OpenFoodFactsLanguage.HEBREW: 'עִברִית', + OpenFoodFactsLanguage.HERERO: 'Herero', + OpenFoodFactsLanguage.HINDI: 'हिन्दी', + OpenFoodFactsLanguage.HIRI_MOTU: 'HiriMotu', + OpenFoodFactsLanguage.CROATIAN: 'Hrvatski', + OpenFoodFactsLanguage.HAITIAN_CREOLE: 'ayisyen', + OpenFoodFactsLanguage.HUNGARIAN: 'Magyar', + OpenFoodFactsLanguage.ARMENIAN: 'հայերեն', + OpenFoodFactsLanguage.INDONESIAN: 'bahasaIndonesia', + OpenFoodFactsLanguage.NUOSU_LANGUAGE: 'SichuanYi', + OpenFoodFactsLanguage.ICELANDIC: 'íslenskur', + OpenFoodFactsLanguage.IDO: 'Ido', + OpenFoodFactsLanguage.ITALIAN: 'Italiano', + OpenFoodFactsLanguage.INUKTITUT: 'Inuktitut', + OpenFoodFactsLanguage.INTERLINGUA: 'Interlingua', + OpenFoodFactsLanguage.INUPIAT_LANGUAGE: 'Inupiaq', + OpenFoodFactsLanguage.INTERLINGUE: 'Interlingue', + OpenFoodFactsLanguage.IGBO_LANGUAGE: 'Igbo', + OpenFoodFactsLanguage.JAPANESE: '日本語', + OpenFoodFactsLanguage.JAVANESE: 'basajawa', + OpenFoodFactsLanguage.GEORGIAN: 'ქართული', + OpenFoodFactsLanguage.KANURI: 'Kanuri', + OpenFoodFactsLanguage.KASHMIRI: 'कश्मीरी', + OpenFoodFactsLanguage.KAZAKH: 'қазақ', + OpenFoodFactsLanguage.KANNADA: 'ಕನ್ನಡ', + OpenFoodFactsLanguage.KINYARWANDA: 'Kinyarwanda', + OpenFoodFactsLanguage.KOREAN: '한국인', + OpenFoodFactsLanguage.KOMI: 'коми кыв', + OpenFoodFactsLanguage.KONGO_LANGUAGE: 'Kongo', + OpenFoodFactsLanguage.KURDISH: 'Kurdî', + OpenFoodFactsLanguage.KWANYAMA: 'Kwanyama', + OpenFoodFactsLanguage.CORNISH: 'Cornish', + OpenFoodFactsLanguage.KIRUNDI: 'Kirundi', + OpenFoodFactsLanguage.KYRGYZ: 'Кыргызча', + OpenFoodFactsLanguage.LATIN: 'latīnum', + OpenFoodFactsLanguage.LUXEMBOURGISH: 'lëtzebuergesch', + OpenFoodFactsLanguage.LAO: 'ພາສາລາວ', + OpenFoodFactsLanguage.LATVIAN: 'latviski', + OpenFoodFactsLanguage.LITHUANIAN: 'lietuvių', + OpenFoodFactsLanguage.LINGALA_LANGUAGE: 'Lingala', + OpenFoodFactsLanguage.LIMBURGISH_LANGUAGE: 'Limburgish', + OpenFoodFactsLanguage.LUBA_KATANGA_LANGUAGE: 'Luba Katanga', + OpenFoodFactsLanguage.LUGANDA: 'Luganda', + OpenFoodFactsLanguage.MALAGASY: 'Malagasy', + OpenFoodFactsLanguage.MACEDONIAN: 'македонски', + OpenFoodFactsLanguage.MAORI: 'മലയാളം', + OpenFoodFactsLanguage.MARSHALLESE: 'Ebon', + OpenFoodFactsLanguage.MONGOLIAN: 'Монгол', + OpenFoodFactsLanguage.MANX: 'Gaelg', + OpenFoodFactsLanguage.MARATHI: 'मराठी', + OpenFoodFactsLanguage.MALAY: 'Melayu', + OpenFoodFactsLanguage.MALAYALAM: 'മലയാളം', + OpenFoodFactsLanguage.MALDIVIAN_LANGUAGE: 'Maldivian', + OpenFoodFactsLanguage.MALTESE: 'Malti', + OpenFoodFactsLanguage.MOLDOVAN: 'Moldovenească', + OpenFoodFactsLanguage.BURMESE: 'မြန်မာဘာသာ', + OpenFoodFactsLanguage.BOKMAL: 'Norskbokmål', + OpenFoodFactsLanguage.NAVAJO: 'Diné bizaad', + OpenFoodFactsLanguage.NEPALI: 'नेपाली', + OpenFoodFactsLanguage.NAURUAN: 'Nauru', + OpenFoodFactsLanguage.NDONGA_DIALECT: 'Ndonga', + OpenFoodFactsLanguage.DUTCH: 'Nederlands', + OpenFoodFactsLanguage.NYNORSK: 'Norsknynorsk', + OpenFoodFactsLanguage.NORWEGIAN: 'norsk', + OpenFoodFactsLanguage.NORTHERN_NDEBELE_LANGUAGE: 'Northern Ndebele', + OpenFoodFactsLanguage.NORTHERN_SAMI: 'Sámegiella', + OpenFoodFactsLanguage.SAMOAN: 'Gagana Sāmoa', + OpenFoodFactsLanguage.SOUTHERN_NDEBELE: 'SouthNdebele', + OpenFoodFactsLanguage.OCCITAN: 'Occitan', + OpenFoodFactsLanguage.OLD_CHURCH_SLAVONIC: 'Old Church Slavonic', + OpenFoodFactsLanguage.OSSETIAN: 'Ossetian', + OpenFoodFactsLanguage.OROMO: 'Oromoo', + OpenFoodFactsLanguage.ODIA: 'ଓଡ଼ିଆ', + OpenFoodFactsLanguage.OJIBWE: 'ᐊᓂᔑᓈᐯᒧᐎᓐ', + OpenFoodFactsLanguage.PALI: 'Pali', + OpenFoodFactsLanguage.PASHTO: 'پښتو', + OpenFoodFactsLanguage.PUNJABI: 'Panjabi', + OpenFoodFactsLanguage.POLISH: 'Polski', + OpenFoodFactsLanguage.PORTUGUESE: 'Português', + OpenFoodFactsLanguage.QUECHUA_LANGUAGES: 'Runasimi', + OpenFoodFactsLanguage.ROMANSH: 'Romansh', + OpenFoodFactsLanguage.ROMANIAN: 'Română', + OpenFoodFactsLanguage.RUSSIAN: 'Русский', + OpenFoodFactsLanguage.SANSKRIT: 'संस्कृत', + OpenFoodFactsLanguage.SARDINIAN_LANGUAGE: 'Sardinian', + OpenFoodFactsLanguage.SINDHI: 'سنڌي', + OpenFoodFactsLanguage.SANGO: 'Sango', + OpenFoodFactsLanguage.SINHALA: 'සිංහල', + OpenFoodFactsLanguage.SLOVAK: 'Slovenčina', + OpenFoodFactsLanguage.SLOVENE: 'Slovenščina', + OpenFoodFactsLanguage.SHONA: 'Shona', + OpenFoodFactsLanguage.SOMALI: 'Soomaali', + OpenFoodFactsLanguage.ALBANIAN: 'shqiptare', + OpenFoodFactsLanguage.SERBIAN: 'Српски', + OpenFoodFactsLanguage.SWAZI: 'Swati', + OpenFoodFactsLanguage.SOTHO: 'SouthernSotho', + OpenFoodFactsLanguage.SUNDANESE_LANGUAGE: 'Basa Sunda', + OpenFoodFactsLanguage.SWEDISH: 'svenska', + OpenFoodFactsLanguage.SWAHILI: 'kiswahili', + OpenFoodFactsLanguage.TAMIL: 'தமிழ்', + OpenFoodFactsLanguage.TELUGU: 'తెలుగు', + OpenFoodFactsLanguage.TAJIK: 'тоҷикӣ', + OpenFoodFactsLanguage.THAI: 'ไทย', + OpenFoodFactsLanguage.TIGRINYA: 'ትግሪኛ', + OpenFoodFactsLanguage.TAGALOG: 'Tagalog', + OpenFoodFactsLanguage.TSWANA: 'Setswana', + OpenFoodFactsLanguage.TURKISH: 'Türk', + OpenFoodFactsLanguage.TURKMEN: 'Türkmen', + OpenFoodFactsLanguage.TSONGA: 'Tsonga', + OpenFoodFactsLanguage.TATAR: 'Татар', + OpenFoodFactsLanguage.TONGAN_LANGUAGE: 'Tongan', + OpenFoodFactsLanguage.TWI: 'Twi', + OpenFoodFactsLanguage.TAHITIAN: 'Tahitian', + OpenFoodFactsLanguage.UYGHUR: 'ئۇيغۇر', + OpenFoodFactsLanguage.UKRAINIAN: 'Українська', + OpenFoodFactsLanguage.URDU: 'اردو', + OpenFoodFactsLanguage.UZBEK: '"ozbek"', + OpenFoodFactsLanguage.VENDA: 'Venda', + OpenFoodFactsLanguage.VIETNAMESE: 'TiếngViệt', + OpenFoodFactsLanguage.VOLAPUK: 'Volapuk', + OpenFoodFactsLanguage.WEST_FRISIAN: 'West Frisian', + OpenFoodFactsLanguage.WOLOF: 'Wolof', + OpenFoodFactsLanguage.XHOSA: 'isiXhosa', + OpenFoodFactsLanguage.YIDDISH: 'יידיש', + OpenFoodFactsLanguage.YORUBA: 'Yoruba', + OpenFoodFactsLanguage.CHINESE: '中文', + OpenFoodFactsLanguage.ZHUANG_LANGUAGES: 'Zhuang', + OpenFoodFactsLanguage.ZULU: 'ខ្មែរ', + }; + + List getSupportedLanguagesNameInEnglish() { + final List languages = []; + + _openFoodFactsLanguagesList + .forEach((OpenFoodFactsLanguage lc, String _) => { + if (_delegate.isSupported(Locale(lc.code))) + {languages.add(lc)} + }); + + return languages; + } + + String getLanguageNameInEnglishFromOpenFoodFactsLanguage( + OpenFoodFactsLanguage openFoodFactsLanguage) { + return openFoodFactsLanguage + .toString() + .split('.') + .last + .split('_') + .join(' ') + .toLowerCase() + .capitalize(); + } + + String getLanguageNameInLanguageFromOpenFoodFactsLanguage( + OpenFoodFactsLanguage lc) { + return _openFoodFactsLanguagesList[lc] ?? + _openFoodFactsLanguagesList[OpenFoodFactsLanguage.ENGLISH]!; + } +} From c2e5211c51b7c0abc87a920c541400eead4ccfd9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 22 Jul 2022 19:44:34 +0200 Subject: [PATCH 48/51] chore(deps): bump toshimaru/auto-author-assign from 1.5.0 to 1.5.1 (#2643) Bumps [toshimaru/auto-author-assign](https://github.com/toshimaru/auto-author-assign) from 1.5.0 to 1.5.1. - [Release notes](https://github.com/toshimaru/auto-author-assign/releases) - [Changelog](https://github.com/toshimaru/auto-author-assign/blob/main/CHANGELOG.md) - [Commits](https://github.com/toshimaru/auto-author-assign/compare/v1.5.0...v1.5.1) --- updated-dependencies: - dependency-name: toshimaru/auto-author-assign dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/auto-assign-pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/auto-assign-pr.yml b/.github/workflows/auto-assign-pr.yml index 20e97ddc525d..a1d9aeb43339 100644 --- a/.github/workflows/auto-assign-pr.yml +++ b/.github/workflows/auto-assign-pr.yml @@ -12,4 +12,4 @@ jobs: assign-author: runs-on: ubuntu-latest steps: - - uses: toshimaru/auto-author-assign@v1.5.0 + - uses: toshimaru/auto-author-assign@v1.5.1 From 0eed87b4f35135c937d58b1ead0d9a77d5dfcd78 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 23 Jul 2022 11:13:40 +0200 Subject: [PATCH 49/51] chore: New Crowdin translations to review and merge (#2644) * chore: New Crowdin translations * Update app_aa.arb * Update packages/smooth_app/lib/l10n/app_fr.arb Co-authored-by: Crowdin Bot Co-authored-by: Pierre Slamich --- packages/smooth_app/lib/l10n/app_aa.arb | 18 +++++++++++++-- packages/smooth_app/lib/l10n/app_af.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_ak.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_am.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_ar.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_as.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_az.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_be.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_bg.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_bm.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_bn.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_bo.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_br.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_bs.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_ca.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_ce.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_co.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_cs.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_cv.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_cy.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_da.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_de.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_el.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_eo.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_es.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_et.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_eu.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_fa.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_fi.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_fil.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_fo.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_fr.arb | 28 ++++++++++++++++++------ packages/smooth_app/lib/l10n/app_ga.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_gd.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_gl.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_gu.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_ha.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_he.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_hi.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_hr.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_ht.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_hu.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_hy.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_id.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_ii.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_is.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_it.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_iu.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_ja.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_jv.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_ka.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_kk.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_km.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_kn.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_ko.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_ku.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_kw.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_ky.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_la.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_lb.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_lo.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_lt.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_lv.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_mg.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_mi.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_ml.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_mn.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_mr.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_ms.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_mt.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_my.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_nb.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_ne.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_nl.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_nn.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_no.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_nr.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_oc.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_pa.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_pl.arb | 18 +++++++++++++-- packages/smooth_app/lib/l10n/app_pt.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_qu.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_rm.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_ro.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_ru.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_sa.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_sc.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_sd.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_sg.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_si.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_sk.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_sl.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_sn.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_so.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_sq.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_sr.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_ss.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_st.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_sv.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_sw.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_ta.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_te.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_tg.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_th.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_ti.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_tl.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_tn.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_tr.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_ts.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_tt.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_tw.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_ty.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_ug.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_uk.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_ur.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_uz.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_ve.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_vi.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_wa.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_wo.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_xh.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_yo.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_zh.arb | 16 +++++++++++++- packages/smooth_app/lib/l10n/app_zu.arb | 16 +++++++++++++- 124 files changed, 1868 insertions(+), 132 deletions(-) diff --git a/packages/smooth_app/lib/l10n/app_aa.arb b/packages/smooth_app/lib/l10n/app_aa.arb index 2774414c365c..263edad6aa8a 100644 --- a/packages/smooth_app/lib/l10n/app_aa.arb +++ b/packages/smooth_app/lib/l10n/app_aa.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } -} \ No newline at end of file +} diff --git a/packages/smooth_app/lib/l10n/app_af.arb b/packages/smooth_app/lib/l10n/app_af.arb index 09b5a150cf40..d70c0e9b2617 100644 --- a/packages/smooth_app/lib/l10n/app_af.arb +++ b/packages/smooth_app/lib/l10n/app_af.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ak.arb b/packages/smooth_app/lib/l10n/app_ak.arb index 4aed961cf83c..c1db530e84a1 100644 --- a/packages/smooth_app/lib/l10n/app_ak.arb +++ b/packages/smooth_app/lib/l10n/app_ak.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_am.arb b/packages/smooth_app/lib/l10n/app_am.arb index e8459044f4bb..58d74a9e97ff 100644 --- a/packages/smooth_app/lib/l10n/app_am.arb +++ b/packages/smooth_app/lib/l10n/app_am.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ar.arb b/packages/smooth_app/lib/l10n/app_ar.arb index ef3e8b2f7fbb..a28bf032b731 100644 --- a/packages/smooth_app/lib/l10n/app_ar.arb +++ b/packages/smooth_app/lib/l10n/app_ar.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_as.arb b/packages/smooth_app/lib/l10n/app_as.arb index 4aed961cf83c..c1db530e84a1 100644 --- a/packages/smooth_app/lib/l10n/app_as.arb +++ b/packages/smooth_app/lib/l10n/app_as.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_az.arb b/packages/smooth_app/lib/l10n/app_az.arb index 1859a681e407..630fa79959e3 100644 --- a/packages/smooth_app/lib/l10n/app_az.arb +++ b/packages/smooth_app/lib/l10n/app_az.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_be.arb b/packages/smooth_app/lib/l10n/app_be.arb index 1c75a73ec429..383949a0dea4 100644 --- a/packages/smooth_app/lib/l10n/app_be.arb +++ b/packages/smooth_app/lib/l10n/app_be.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_bg.arb b/packages/smooth_app/lib/l10n/app_bg.arb index c958655fc81d..56f76129e45b 100644 --- a/packages/smooth_app/lib/l10n/app_bg.arb +++ b/packages/smooth_app/lib/l10n/app_bg.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Избери от галерията", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "Няма интернет връзка", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_bm.arb b/packages/smooth_app/lib/l10n/app_bm.arb index 4aed961cf83c..c1db530e84a1 100644 --- a/packages/smooth_app/lib/l10n/app_bm.arb +++ b/packages/smooth_app/lib/l10n/app_bm.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_bn.arb b/packages/smooth_app/lib/l10n/app_bn.arb index 62f3f91be732..a5807b7659cb 100644 --- a/packages/smooth_app/lib/l10n/app_bn.arb +++ b/packages/smooth_app/lib/l10n/app_bn.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_bo.arb b/packages/smooth_app/lib/l10n/app_bo.arb index 4aed961cf83c..c1db530e84a1 100644 --- a/packages/smooth_app/lib/l10n/app_bo.arb +++ b/packages/smooth_app/lib/l10n/app_bo.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_br.arb b/packages/smooth_app/lib/l10n/app_br.arb index e7fd2bd07e49..224950ffd26e 100644 --- a/packages/smooth_app/lib/l10n/app_br.arb +++ b/packages/smooth_app/lib/l10n/app_br.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_bs.arb b/packages/smooth_app/lib/l10n/app_bs.arb index d4b32004731b..b68949d1ccbe 100644 --- a/packages/smooth_app/lib/l10n/app_bs.arb +++ b/packages/smooth_app/lib/l10n/app_bs.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ca.arb b/packages/smooth_app/lib/l10n/app_ca.arb index f267bcce5917..e611c6f3e8c4 100644 --- a/packages/smooth_app/lib/l10n/app_ca.arb +++ b/packages/smooth_app/lib/l10n/app_ca.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No hi ha connexió a Internet", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ce.arb b/packages/smooth_app/lib/l10n/app_ce.arb index 4aed961cf83c..c1db530e84a1 100644 --- a/packages/smooth_app/lib/l10n/app_ce.arb +++ b/packages/smooth_app/lib/l10n/app_ce.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_co.arb b/packages/smooth_app/lib/l10n/app_co.arb index 4aed961cf83c..c1db530e84a1 100644 --- a/packages/smooth_app/lib/l10n/app_co.arb +++ b/packages/smooth_app/lib/l10n/app_co.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_cs.arb b/packages/smooth_app/lib/l10n/app_cs.arb index b79e8bda262b..f65642fad3ba 100644 --- a/packages/smooth_app/lib/l10n/app_cs.arb +++ b/packages/smooth_app/lib/l10n/app_cs.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Vybrat z galerie", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "Žádné připojení k Internetu", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_cv.arb b/packages/smooth_app/lib/l10n/app_cv.arb index 4aed961cf83c..c1db530e84a1 100644 --- a/packages/smooth_app/lib/l10n/app_cv.arb +++ b/packages/smooth_app/lib/l10n/app_cv.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_cy.arb b/packages/smooth_app/lib/l10n/app_cy.arb index 8a2ad7d7559d..65cc77d06d7f 100644 --- a/packages/smooth_app/lib/l10n/app_cy.arb +++ b/packages/smooth_app/lib/l10n/app_cy.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_da.arb b/packages/smooth_app/lib/l10n/app_da.arb index 248c9c2f3c49..68441ab52acf 100644 --- a/packages/smooth_app/lib/l10n/app_da.arb +++ b/packages/smooth_app/lib/l10n/app_da.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Vælg fra galleri", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "Ingen internetforbindelse", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_de.arb b/packages/smooth_app/lib/l10n/app_de.arb index f6c27e6be6b7..9649a7961d37 100644 --- a/packages/smooth_app/lib/l10n/app_de.arb +++ b/packages/smooth_app/lib/l10n/app_de.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Aus Galerie wählen", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "Keine Internetverbindung", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_el.arb b/packages/smooth_app/lib/l10n/app_el.arb index faa1d57bc062..d9f6c52ce58e 100644 --- a/packages/smooth_app/lib/l10n/app_el.arb +++ b/packages/smooth_app/lib/l10n/app_el.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Επιλέξτε από τη συλλογή", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_eo.arb b/packages/smooth_app/lib/l10n/app_eo.arb index f99e101e26bc..d022dcb326e6 100644 --- a/packages/smooth_app/lib/l10n/app_eo.arb +++ b/packages/smooth_app/lib/l10n/app_eo.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_es.arb b/packages/smooth_app/lib/l10n/app_es.arb index 0af40d0ac69d..4da1ce87e833 100644 --- a/packages/smooth_app/lib/l10n/app_es.arb +++ b/packages/smooth_app/lib/l10n/app_es.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Seleccionar de la galería", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No hay conexión a internet", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_et.arb b/packages/smooth_app/lib/l10n/app_et.arb index 539df7549ee0..ddcada95e3cf 100644 --- a/packages/smooth_app/lib/l10n/app_et.arb +++ b/packages/smooth_app/lib/l10n/app_et.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_eu.arb b/packages/smooth_app/lib/l10n/app_eu.arb index 7588b17b07f7..9d127878a75d 100644 --- a/packages/smooth_app/lib/l10n/app_eu.arb +++ b/packages/smooth_app/lib/l10n/app_eu.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_fa.arb b/packages/smooth_app/lib/l10n/app_fa.arb index 52f8498b9d9e..47b1778f9cc5 100644 --- a/packages/smooth_app/lib/l10n/app_fa.arb +++ b/packages/smooth_app/lib/l10n/app_fa.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_fi.arb b/packages/smooth_app/lib/l10n/app_fi.arb index 287a2853a02d..ed093cc6719c 100644 --- a/packages/smooth_app/lib/l10n/app_fi.arb +++ b/packages/smooth_app/lib/l10n/app_fi.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_fil.arb b/packages/smooth_app/lib/l10n/app_fil.arb index 5d4db7432364..3a4d91933f37 100644 --- a/packages/smooth_app/lib/l10n/app_fil.arb +++ b/packages/smooth_app/lib/l10n/app_fil.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_fo.arb b/packages/smooth_app/lib/l10n/app_fo.arb index 4aed961cf83c..c1db530e84a1 100644 --- a/packages/smooth_app/lib/l10n/app_fo.arb +++ b/packages/smooth_app/lib/l10n/app_fo.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_fr.arb b/packages/smooth_app/lib/l10n/app_fr.arb index d7c159ca3fd5..a3110bf95b61 100644 --- a/packages/smooth_app/lib/l10n/app_fr.arb +++ b/packages/smooth_app/lib/l10n/app_fr.arb @@ -294,8 +294,8 @@ "@contribute_develop_text": {}, "contribute_develop_text_2": "Vous pouvez rejoindre le salon de discussion Slack Open Food Facts qui est le meilleur moyen de poser des questions.", "@contribute_develop_text_2": {}, - "contribute_develop_dev_mode_title": "DEV Mode?", - "contribute_develop_dev_mode_subtitle": "Activate the DEV Mode", + "contribute_develop_dev_mode_title": "Mode de développement ? ", + "contribute_develop_dev_mode_subtitle": "Activer le mode de développement", "contribute_donate_header": "Donner à Open Food Facts", "@contribute_donate_header": {}, "contribute_improve_ProductsToBeCompleted": "Produits à compléter", @@ -322,7 +322,7 @@ "@contribute_translate_text_2": {}, "contribute_share_header": "Partagez Open Food Facts avec vos amis", "@contribute_share_header": {}, - "contribute_share_content": "I wanted to let you know about the app I've been using, Open Food Facts, which allows you to get the health and environmental impacts of your food, in a personalized way. It works by scanning the barcodes on the packaging. Finally it's free, does not require registration, and you can even help increase the number of products decyphered. Here's the link to get it for your phone: https://openfoodfacts.app", + "contribute_share_content": "Je voulais te signaler l'app que j'utilise, Open Food Facts, qui te permet de voir l'impact de ton alimentation sur la santé et l'environnement, de manière personnalisée. Elle fonctionne en scannant les codes barres des emballages. Et en plus c'est gratuit, sans inscription obligatoire, et tu peux même aider à augmenter le nombre de produits décryptés. Voilà le lien pour la télécharger: https://openfoodfacts.app", "@contribute_share_content": { "description": "Content that will be shared, don't forget to include the URL" }, @@ -1386,11 +1386,11 @@ "@user_search_photographer_title": { "description": "User search (photographer): list tile title" }, - "user_search_to_be_completed_title": "My to-be-completed products", + "user_search_to_be_completed_title": "Mes produits à compléter", "@user_search_to_be_completed_title": { "description": "User search (to be completed): list tile title" }, - "all_search_to_be_completed_title": "All to-be-completed products", + "all_search_to_be_completed_title": "Tous les produits à compléter", "@all_search_to_be_completed_title": { "description": "All products to be completed: list tile title" }, @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choisir depuis la galerie", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, - "no_internet_connection": "No internet connection", + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", + "no_internet_connection": "Pas de connexion internet", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ga.arb b/packages/smooth_app/lib/l10n/app_ga.arb index 2c76139c7ed8..3b67fca9665c 100644 --- a/packages/smooth_app/lib/l10n/app_ga.arb +++ b/packages/smooth_app/lib/l10n/app_ga.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_gd.arb b/packages/smooth_app/lib/l10n/app_gd.arb index 4aed961cf83c..c1db530e84a1 100644 --- a/packages/smooth_app/lib/l10n/app_gd.arb +++ b/packages/smooth_app/lib/l10n/app_gd.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_gl.arb b/packages/smooth_app/lib/l10n/app_gl.arb index e8068a8a7cd9..ed57b1e60fd5 100644 --- a/packages/smooth_app/lib/l10n/app_gl.arb +++ b/packages/smooth_app/lib/l10n/app_gl.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_gu.arb b/packages/smooth_app/lib/l10n/app_gu.arb index c7786d32719e..031afd9a6c70 100644 --- a/packages/smooth_app/lib/l10n/app_gu.arb +++ b/packages/smooth_app/lib/l10n/app_gu.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ha.arb b/packages/smooth_app/lib/l10n/app_ha.arb index 38b89ef7cc45..509a394122f2 100644 --- a/packages/smooth_app/lib/l10n/app_ha.arb +++ b/packages/smooth_app/lib/l10n/app_ha.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_he.arb b/packages/smooth_app/lib/l10n/app_he.arb index 03a968112726..1ce86165ed0c 100644 --- a/packages/smooth_app/lib/l10n/app_he.arb +++ b/packages/smooth_app/lib/l10n/app_he.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "בחירה מהגלריה", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "אין חיבור לאינטרנט", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_hi.arb b/packages/smooth_app/lib/l10n/app_hi.arb index 404513d24320..3b3ef2a06f06 100644 --- a/packages/smooth_app/lib/l10n/app_hi.arb +++ b/packages/smooth_app/lib/l10n/app_hi.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_hr.arb b/packages/smooth_app/lib/l10n/app_hr.arb index 320adc6d9ed1..c04902baeb0b 100644 --- a/packages/smooth_app/lib/l10n/app_hr.arb +++ b/packages/smooth_app/lib/l10n/app_hr.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ht.arb b/packages/smooth_app/lib/l10n/app_ht.arb index 4aed961cf83c..c1db530e84a1 100644 --- a/packages/smooth_app/lib/l10n/app_ht.arb +++ b/packages/smooth_app/lib/l10n/app_ht.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_hu.arb b/packages/smooth_app/lib/l10n/app_hu.arb index 659047f04d76..d5e12e7acc79 100644 --- a/packages/smooth_app/lib/l10n/app_hu.arb +++ b/packages/smooth_app/lib/l10n/app_hu.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_hy.arb b/packages/smooth_app/lib/l10n/app_hy.arb index cf401b603e98..354bac68a32b 100644 --- a/packages/smooth_app/lib/l10n/app_hy.arb +++ b/packages/smooth_app/lib/l10n/app_hy.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_id.arb b/packages/smooth_app/lib/l10n/app_id.arb index c25d3b3b5186..7fed23954cbc 100644 --- a/packages/smooth_app/lib/l10n/app_id.arb +++ b/packages/smooth_app/lib/l10n/app_id.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ii.arb b/packages/smooth_app/lib/l10n/app_ii.arb index 4aed961cf83c..c1db530e84a1 100644 --- a/packages/smooth_app/lib/l10n/app_ii.arb +++ b/packages/smooth_app/lib/l10n/app_ii.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_is.arb b/packages/smooth_app/lib/l10n/app_is.arb index 2b13a89caebf..3e6a52fc053f 100644 --- a/packages/smooth_app/lib/l10n/app_is.arb +++ b/packages/smooth_app/lib/l10n/app_is.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_it.arb b/packages/smooth_app/lib/l10n/app_it.arb index 66a1eb5c7eee..be6b5834ffc9 100644 --- a/packages/smooth_app/lib/l10n/app_it.arb +++ b/packages/smooth_app/lib/l10n/app_it.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Scegli dalla galleria", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "Nessuna connessione internet", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_iu.arb b/packages/smooth_app/lib/l10n/app_iu.arb index 4aed961cf83c..c1db530e84a1 100644 --- a/packages/smooth_app/lib/l10n/app_iu.arb +++ b/packages/smooth_app/lib/l10n/app_iu.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ja.arb b/packages/smooth_app/lib/l10n/app_ja.arb index 2785a245690c..c479a5eebcf2 100644 --- a/packages/smooth_app/lib/l10n/app_ja.arb +++ b/packages/smooth_app/lib/l10n/app_ja.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "ギャラリーから選択する", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "インターネットに接続されていません", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_jv.arb b/packages/smooth_app/lib/l10n/app_jv.arb index b402684b405e..b266a356a85e 100644 --- a/packages/smooth_app/lib/l10n/app_jv.arb +++ b/packages/smooth_app/lib/l10n/app_jv.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ka.arb b/packages/smooth_app/lib/l10n/app_ka.arb index d5b8d6922d19..ee42e134411e 100644 --- a/packages/smooth_app/lib/l10n/app_ka.arb +++ b/packages/smooth_app/lib/l10n/app_ka.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_kk.arb b/packages/smooth_app/lib/l10n/app_kk.arb index 4583169f2f1c..9e6d4a940832 100644 --- a/packages/smooth_app/lib/l10n/app_kk.arb +++ b/packages/smooth_app/lib/l10n/app_kk.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_km.arb b/packages/smooth_app/lib/l10n/app_km.arb index 7a94dddf64a3..72ec8b041c60 100644 --- a/packages/smooth_app/lib/l10n/app_km.arb +++ b/packages/smooth_app/lib/l10n/app_km.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_kn.arb b/packages/smooth_app/lib/l10n/app_kn.arb index d9f0f4d78497..609887fc66ed 100644 --- a/packages/smooth_app/lib/l10n/app_kn.arb +++ b/packages/smooth_app/lib/l10n/app_kn.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ko.arb b/packages/smooth_app/lib/l10n/app_ko.arb index 1a9afcd43b4a..6124d34b7da8 100644 --- a/packages/smooth_app/lib/l10n/app_ko.arb +++ b/packages/smooth_app/lib/l10n/app_ko.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ku.arb b/packages/smooth_app/lib/l10n/app_ku.arb index 0882126bd5f5..a8185410925b 100644 --- a/packages/smooth_app/lib/l10n/app_ku.arb +++ b/packages/smooth_app/lib/l10n/app_ku.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_kw.arb b/packages/smooth_app/lib/l10n/app_kw.arb index 4aed961cf83c..c1db530e84a1 100644 --- a/packages/smooth_app/lib/l10n/app_kw.arb +++ b/packages/smooth_app/lib/l10n/app_kw.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ky.arb b/packages/smooth_app/lib/l10n/app_ky.arb index 9e5be353e097..86477f3552c8 100644 --- a/packages/smooth_app/lib/l10n/app_ky.arb +++ b/packages/smooth_app/lib/l10n/app_ky.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_la.arb b/packages/smooth_app/lib/l10n/app_la.arb index 25e9bc38531f..0db7815e46f5 100644 --- a/packages/smooth_app/lib/l10n/app_la.arb +++ b/packages/smooth_app/lib/l10n/app_la.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_lb.arb b/packages/smooth_app/lib/l10n/app_lb.arb index 0f41d8712ce3..28f39da22cc1 100644 --- a/packages/smooth_app/lib/l10n/app_lb.arb +++ b/packages/smooth_app/lib/l10n/app_lb.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_lo.arb b/packages/smooth_app/lib/l10n/app_lo.arb index 4aed961cf83c..c1db530e84a1 100644 --- a/packages/smooth_app/lib/l10n/app_lo.arb +++ b/packages/smooth_app/lib/l10n/app_lo.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_lt.arb b/packages/smooth_app/lib/l10n/app_lt.arb index 93f11eb8ea71..187fed322177 100644 --- a/packages/smooth_app/lib/l10n/app_lt.arb +++ b/packages/smooth_app/lib/l10n/app_lt.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_lv.arb b/packages/smooth_app/lib/l10n/app_lv.arb index 4b953c68f04d..9ac8143ec759 100644 --- a/packages/smooth_app/lib/l10n/app_lv.arb +++ b/packages/smooth_app/lib/l10n/app_lv.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_mg.arb b/packages/smooth_app/lib/l10n/app_mg.arb index 390dbf0c4528..77305b72a4e2 100644 --- a/packages/smooth_app/lib/l10n/app_mg.arb +++ b/packages/smooth_app/lib/l10n/app_mg.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_mi.arb b/packages/smooth_app/lib/l10n/app_mi.arb index 4aed961cf83c..c1db530e84a1 100644 --- a/packages/smooth_app/lib/l10n/app_mi.arb +++ b/packages/smooth_app/lib/l10n/app_mi.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ml.arb b/packages/smooth_app/lib/l10n/app_ml.arb index 13a26a7765db..1696651b1d4d 100644 --- a/packages/smooth_app/lib/l10n/app_ml.arb +++ b/packages/smooth_app/lib/l10n/app_ml.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_mn.arb b/packages/smooth_app/lib/l10n/app_mn.arb index 4aed961cf83c..c1db530e84a1 100644 --- a/packages/smooth_app/lib/l10n/app_mn.arb +++ b/packages/smooth_app/lib/l10n/app_mn.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_mr.arb b/packages/smooth_app/lib/l10n/app_mr.arb index 8ab1dd1c5523..f297a73d48f1 100644 --- a/packages/smooth_app/lib/l10n/app_mr.arb +++ b/packages/smooth_app/lib/l10n/app_mr.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ms.arb b/packages/smooth_app/lib/l10n/app_ms.arb index e1032e6068b1..c0aff1737fd1 100644 --- a/packages/smooth_app/lib/l10n/app_ms.arb +++ b/packages/smooth_app/lib/l10n/app_ms.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_mt.arb b/packages/smooth_app/lib/l10n/app_mt.arb index 4aed961cf83c..c1db530e84a1 100644 --- a/packages/smooth_app/lib/l10n/app_mt.arb +++ b/packages/smooth_app/lib/l10n/app_mt.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_my.arb b/packages/smooth_app/lib/l10n/app_my.arb index a6e87d8a9eeb..d360670bdfbf 100644 --- a/packages/smooth_app/lib/l10n/app_my.arb +++ b/packages/smooth_app/lib/l10n/app_my.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_nb.arb b/packages/smooth_app/lib/l10n/app_nb.arb index 1f1380720fb6..eaf16eeb7a95 100644 --- a/packages/smooth_app/lib/l10n/app_nb.arb +++ b/packages/smooth_app/lib/l10n/app_nb.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ne.arb b/packages/smooth_app/lib/l10n/app_ne.arb index 0c8c0069989f..3af8e2ff8f8c 100644 --- a/packages/smooth_app/lib/l10n/app_ne.arb +++ b/packages/smooth_app/lib/l10n/app_ne.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_nl.arb b/packages/smooth_app/lib/l10n/app_nl.arb index a2fbd35abf11..f45b49d56b15 100644 --- a/packages/smooth_app/lib/l10n/app_nl.arb +++ b/packages/smooth_app/lib/l10n/app_nl.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Kies uit gallerij", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "Geen internetverbinding", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_nn.arb b/packages/smooth_app/lib/l10n/app_nn.arb index 7a8ad9a674a3..2d56c01dcb6e 100644 --- a/packages/smooth_app/lib/l10n/app_nn.arb +++ b/packages/smooth_app/lib/l10n/app_nn.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_no.arb b/packages/smooth_app/lib/l10n/app_no.arb index 7a8ad9a674a3..2d56c01dcb6e 100644 --- a/packages/smooth_app/lib/l10n/app_no.arb +++ b/packages/smooth_app/lib/l10n/app_no.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_nr.arb b/packages/smooth_app/lib/l10n/app_nr.arb index 4aed961cf83c..c1db530e84a1 100644 --- a/packages/smooth_app/lib/l10n/app_nr.arb +++ b/packages/smooth_app/lib/l10n/app_nr.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_oc.arb b/packages/smooth_app/lib/l10n/app_oc.arb index 0f821feb8241..6005aaf622c9 100644 --- a/packages/smooth_app/lib/l10n/app_oc.arb +++ b/packages/smooth_app/lib/l10n/app_oc.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_pa.arb b/packages/smooth_app/lib/l10n/app_pa.arb index 4aed961cf83c..c1db530e84a1 100644 --- a/packages/smooth_app/lib/l10n/app_pa.arb +++ b/packages/smooth_app/lib/l10n/app_pa.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_pl.arb b/packages/smooth_app/lib/l10n/app_pl.arb index d23c4392924c..f8ba85a31d17 100644 --- a/packages/smooth_app/lib/l10n/app_pl.arb +++ b/packages/smooth_app/lib/l10n/app_pl.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Wybierz z galerii", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "Brak połączenia z internetem", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } -} +} \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_pt.arb b/packages/smooth_app/lib/l10n/app_pt.arb index 89415503d857..92ad1b1e0a18 100644 --- a/packages/smooth_app/lib/l10n/app_pt.arb +++ b/packages/smooth_app/lib/l10n/app_pt.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Escolher da galeria", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "Sem conexão com a internet", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_qu.arb b/packages/smooth_app/lib/l10n/app_qu.arb index 4aed961cf83c..c1db530e84a1 100644 --- a/packages/smooth_app/lib/l10n/app_qu.arb +++ b/packages/smooth_app/lib/l10n/app_qu.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_rm.arb b/packages/smooth_app/lib/l10n/app_rm.arb index 4aed961cf83c..c1db530e84a1 100644 --- a/packages/smooth_app/lib/l10n/app_rm.arb +++ b/packages/smooth_app/lib/l10n/app_rm.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ro.arb b/packages/smooth_app/lib/l10n/app_ro.arb index 6b9a74cefd62..ebb7a6b07348 100644 --- a/packages/smooth_app/lib/l10n/app_ro.arb +++ b/packages/smooth_app/lib/l10n/app_ro.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Alegeți din galerie", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ru.arb b/packages/smooth_app/lib/l10n/app_ru.arb index 6b62661516b7..88892b4508ac 100644 --- a/packages/smooth_app/lib/l10n/app_ru.arb +++ b/packages/smooth_app/lib/l10n/app_ru.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_sa.arb b/packages/smooth_app/lib/l10n/app_sa.arb index 4aed961cf83c..c1db530e84a1 100644 --- a/packages/smooth_app/lib/l10n/app_sa.arb +++ b/packages/smooth_app/lib/l10n/app_sa.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_sc.arb b/packages/smooth_app/lib/l10n/app_sc.arb index 4aed961cf83c..c1db530e84a1 100644 --- a/packages/smooth_app/lib/l10n/app_sc.arb +++ b/packages/smooth_app/lib/l10n/app_sc.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_sd.arb b/packages/smooth_app/lib/l10n/app_sd.arb index 4aed961cf83c..c1db530e84a1 100644 --- a/packages/smooth_app/lib/l10n/app_sd.arb +++ b/packages/smooth_app/lib/l10n/app_sd.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_sg.arb b/packages/smooth_app/lib/l10n/app_sg.arb index 4aed961cf83c..c1db530e84a1 100644 --- a/packages/smooth_app/lib/l10n/app_sg.arb +++ b/packages/smooth_app/lib/l10n/app_sg.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_si.arb b/packages/smooth_app/lib/l10n/app_si.arb index c18863ccbc01..81ad344d6272 100644 --- a/packages/smooth_app/lib/l10n/app_si.arb +++ b/packages/smooth_app/lib/l10n/app_si.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_sk.arb b/packages/smooth_app/lib/l10n/app_sk.arb index 91b5f6015021..df5a6f7b5fcc 100644 --- a/packages/smooth_app/lib/l10n/app_sk.arb +++ b/packages/smooth_app/lib/l10n/app_sk.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_sl.arb b/packages/smooth_app/lib/l10n/app_sl.arb index 0deb5170ac40..589c4ad944e1 100644 --- a/packages/smooth_app/lib/l10n/app_sl.arb +++ b/packages/smooth_app/lib/l10n/app_sl.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_sn.arb b/packages/smooth_app/lib/l10n/app_sn.arb index 4aed961cf83c..c1db530e84a1 100644 --- a/packages/smooth_app/lib/l10n/app_sn.arb +++ b/packages/smooth_app/lib/l10n/app_sn.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_so.arb b/packages/smooth_app/lib/l10n/app_so.arb index 4aed961cf83c..c1db530e84a1 100644 --- a/packages/smooth_app/lib/l10n/app_so.arb +++ b/packages/smooth_app/lib/l10n/app_so.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_sq.arb b/packages/smooth_app/lib/l10n/app_sq.arb index 2ff2375759c2..20c1efc47782 100644 --- a/packages/smooth_app/lib/l10n/app_sq.arb +++ b/packages/smooth_app/lib/l10n/app_sq.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_sr.arb b/packages/smooth_app/lib/l10n/app_sr.arb index f440b47247ce..6eefc87e6177 100644 --- a/packages/smooth_app/lib/l10n/app_sr.arb +++ b/packages/smooth_app/lib/l10n/app_sr.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ss.arb b/packages/smooth_app/lib/l10n/app_ss.arb index 4aed961cf83c..c1db530e84a1 100644 --- a/packages/smooth_app/lib/l10n/app_ss.arb +++ b/packages/smooth_app/lib/l10n/app_ss.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_st.arb b/packages/smooth_app/lib/l10n/app_st.arb index 4aed961cf83c..c1db530e84a1 100644 --- a/packages/smooth_app/lib/l10n/app_st.arb +++ b/packages/smooth_app/lib/l10n/app_st.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_sv.arb b/packages/smooth_app/lib/l10n/app_sv.arb index 685a5eb66bf4..e267b3a079a8 100644 --- a/packages/smooth_app/lib/l10n/app_sv.arb +++ b/packages/smooth_app/lib/l10n/app_sv.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_sw.arb b/packages/smooth_app/lib/l10n/app_sw.arb index 710cbd747707..21b6e5beca8c 100644 --- a/packages/smooth_app/lib/l10n/app_sw.arb +++ b/packages/smooth_app/lib/l10n/app_sw.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ta.arb b/packages/smooth_app/lib/l10n/app_ta.arb index b933fd8cf383..801090d9009d 100644 --- a/packages/smooth_app/lib/l10n/app_ta.arb +++ b/packages/smooth_app/lib/l10n/app_ta.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_te.arb b/packages/smooth_app/lib/l10n/app_te.arb index 7489baf4fbcb..3b58ef477cc4 100644 --- a/packages/smooth_app/lib/l10n/app_te.arb +++ b/packages/smooth_app/lib/l10n/app_te.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_tg.arb b/packages/smooth_app/lib/l10n/app_tg.arb index 4aed961cf83c..c1db530e84a1 100644 --- a/packages/smooth_app/lib/l10n/app_tg.arb +++ b/packages/smooth_app/lib/l10n/app_tg.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_th.arb b/packages/smooth_app/lib/l10n/app_th.arb index 74ec525be1a2..9756de535bed 100644 --- a/packages/smooth_app/lib/l10n/app_th.arb +++ b/packages/smooth_app/lib/l10n/app_th.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ti.arb b/packages/smooth_app/lib/l10n/app_ti.arb index 55c8471a06e8..1e1a733a197b 100644 --- a/packages/smooth_app/lib/l10n/app_ti.arb +++ b/packages/smooth_app/lib/l10n/app_ti.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_tl.arb b/packages/smooth_app/lib/l10n/app_tl.arb index 0c7480475195..050ded7b12aa 100644 --- a/packages/smooth_app/lib/l10n/app_tl.arb +++ b/packages/smooth_app/lib/l10n/app_tl.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_tn.arb b/packages/smooth_app/lib/l10n/app_tn.arb index 6e43aac3ef46..f50f23759350 100644 --- a/packages/smooth_app/lib/l10n/app_tn.arb +++ b/packages/smooth_app/lib/l10n/app_tn.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_tr.arb b/packages/smooth_app/lib/l10n/app_tr.arb index 479e7e082ae4..8ab3e6cc3f92 100644 --- a/packages/smooth_app/lib/l10n/app_tr.arb +++ b/packages/smooth_app/lib/l10n/app_tr.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ts.arb b/packages/smooth_app/lib/l10n/app_ts.arb index 6e43aac3ef46..f50f23759350 100644 --- a/packages/smooth_app/lib/l10n/app_ts.arb +++ b/packages/smooth_app/lib/l10n/app_ts.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_tt.arb b/packages/smooth_app/lib/l10n/app_tt.arb index 2daf42beb07a..97601e3e2e2d 100644 --- a/packages/smooth_app/lib/l10n/app_tt.arb +++ b/packages/smooth_app/lib/l10n/app_tt.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_tw.arb b/packages/smooth_app/lib/l10n/app_tw.arb index 4aed961cf83c..c1db530e84a1 100644 --- a/packages/smooth_app/lib/l10n/app_tw.arb +++ b/packages/smooth_app/lib/l10n/app_tw.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ty.arb b/packages/smooth_app/lib/l10n/app_ty.arb index 4aed961cf83c..c1db530e84a1 100644 --- a/packages/smooth_app/lib/l10n/app_ty.arb +++ b/packages/smooth_app/lib/l10n/app_ty.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ug.arb b/packages/smooth_app/lib/l10n/app_ug.arb index a18c1b76f124..63c261522108 100644 --- a/packages/smooth_app/lib/l10n/app_ug.arb +++ b/packages/smooth_app/lib/l10n/app_ug.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_uk.arb b/packages/smooth_app/lib/l10n/app_uk.arb index 58bba347043f..d1f8f342217c 100644 --- a/packages/smooth_app/lib/l10n/app_uk.arb +++ b/packages/smooth_app/lib/l10n/app_uk.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ur.arb b/packages/smooth_app/lib/l10n/app_ur.arb index bd6bc0f72d58..bbaefc968967 100644 --- a/packages/smooth_app/lib/l10n/app_ur.arb +++ b/packages/smooth_app/lib/l10n/app_ur.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_uz.arb b/packages/smooth_app/lib/l10n/app_uz.arb index deff512b6311..a7b249482929 100644 --- a/packages/smooth_app/lib/l10n/app_uz.arb +++ b/packages/smooth_app/lib/l10n/app_uz.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_ve.arb b/packages/smooth_app/lib/l10n/app_ve.arb index 6e43aac3ef46..f50f23759350 100644 --- a/packages/smooth_app/lib/l10n/app_ve.arb +++ b/packages/smooth_app/lib/l10n/app_ve.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_vi.arb b/packages/smooth_app/lib/l10n/app_vi.arb index 628748de4bfd..7b89491513c5 100644 --- a/packages/smooth_app/lib/l10n/app_vi.arb +++ b/packages/smooth_app/lib/l10n/app_vi.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Chọn từ thư viện ảnh", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_wa.arb b/packages/smooth_app/lib/l10n/app_wa.arb index 4aed961cf83c..c1db530e84a1 100644 --- a/packages/smooth_app/lib/l10n/app_wa.arb +++ b/packages/smooth_app/lib/l10n/app_wa.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_wo.arb b/packages/smooth_app/lib/l10n/app_wo.arb index 6e43aac3ef46..f50f23759350 100644 --- a/packages/smooth_app/lib/l10n/app_wo.arb +++ b/packages/smooth_app/lib/l10n/app_wo.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_xh.arb b/packages/smooth_app/lib/l10n/app_xh.arb index 4aed961cf83c..c1db530e84a1 100644 --- a/packages/smooth_app/lib/l10n/app_xh.arb +++ b/packages/smooth_app/lib/l10n/app_xh.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_yo.arb b/packages/smooth_app/lib/l10n/app_yo.arb index 2d6d7355da19..326e45d60e2d 100644 --- a/packages/smooth_app/lib/l10n/app_yo.arb +++ b/packages/smooth_app/lib/l10n/app_yo.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_zh.arb b/packages/smooth_app/lib/l10n/app_zh.arb index 1d7663aaeaf7..2fe801c61b6f 100644 --- a/packages/smooth_app/lib/l10n/app_zh.arb +++ b/packages/smooth_app/lib/l10n/app_zh.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file diff --git a/packages/smooth_app/lib/l10n/app_zu.arb b/packages/smooth_app/lib/l10n/app_zu.arb index 2979a2f9a9b4..473094c45294 100644 --- a/packages/smooth_app/lib/l10n/app_zu.arb +++ b/packages/smooth_app/lib/l10n/app_zu.arb @@ -1543,11 +1543,25 @@ "description": "Button label for taking a photo" }, "choose_from_gallery": "Choose from gallery", - "@choose from gallery": { + "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, + "expand_nutrition_facts": "Expand nutrition facts table", + "@expand_nutrition_facts": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", + "expand_ingredients": "Expand ingredients", + "@expand_ingredients": { + "description": "Label for expanding nutrition facts table in application setting" + }, + "expand_ingredients_body": "Keep the ingredients panel expanded", "no_internet_connection": "No internet connection", "@no_internet_connection": { "description": "Message when there is no internet connection" + }, + "choose_app_language": "Choose App Language", + "@choose_app_language": { + "description": "Choose Application Language" } } \ No newline at end of file From 335f74b9637bc88df120aeed9004d844aebfd072 Mon Sep 17 00:00:00 2001 From: Pierre Slamich Date: Sat, 23 Jul 2022 11:45:46 +0200 Subject: [PATCH 50/51] fr:translation hotfix (#2645) --- packages/smooth_app/lib/l10n/app_fr.arb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/smooth_app/lib/l10n/app_fr.arb b/packages/smooth_app/lib/l10n/app_fr.arb index a3110bf95b61..3868a02ab1fb 100644 --- a/packages/smooth_app/lib/l10n/app_fr.arb +++ b/packages/smooth_app/lib/l10n/app_fr.arb @@ -1546,21 +1546,21 @@ "@choose_from_gallery": { "description": "Button label for choosing a photo from gallery" }, - "expand_nutrition_facts": "Expand nutrition facts table", + "expand_nutrition_facts": "Développer le tableau nutritionnel", "@expand_nutrition_facts": { "description": "Label for expanding nutrition facts table in application setting" }, - "expand_nutrition_facts_body": "Keep the nutrition facts table expanded", - "expand_ingredients": "Expand ingredients", + "expand_nutrition_facts_body": "Garder le tableau nutritionnel étendu", + "expand_ingredients": "Développer les ingrédients", "@expand_ingredients": { "description": "Label for expanding nutrition facts table in application setting" }, - "expand_ingredients_body": "Keep the ingredients panel expanded", + "expand_ingredients_body": "Garder le panneau des ingrédients étendu", "no_internet_connection": "Pas de connexion internet", "@no_internet_connection": { "description": "Message when there is no internet connection" }, - "choose_app_language": "Choose App Language", + "choose_app_language": "Choisir la langue de l'application", "@choose_app_language": { "description": "Choose Application Language" } From d2436e8caff3d5f70108a68ecb6e2e0805674e99 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 24 Jul 2022 08:45:24 +0200 Subject: [PATCH 51/51] chore(develop): release 3.5.1 (#2628) * chore(develop): release 3.5.0 * Apply suggestions from code review Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Pierre Slamich --- CHANGELOG.md | 33 ++++++++++++++++++++++++++++++++- version.txt | 2 +- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d196ad85b422..a77133f585f5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,36 @@ # Changelog +## [3.5.1](https://github.com/openfoodfacts/smooth-app/compare/3.4.6...v3.5.1) (2022-07-23) + + +### Features + +* [#2337](https://github.com/openfoodfacts/smooth-app/issues/2337) - additional "power user" product edit page ([#2617](https://github.com/openfoodfacts/smooth-app/issues/2617)) ([d5017b4](https://github.com/openfoodfacts/smooth-app/commit/d5017b4f94db1cac53694eb45dfc9e6839043d7a)) +* [#2364](https://github.com/openfoodfacts/smooth-app/issues/2364) - new preferences toggles for ingredients / nutrition expand mode ([#2634](https://github.com/openfoodfacts/smooth-app/issues/2634)) ([cc7c062](https://github.com/openfoodfacts/smooth-app/commit/cc7c062e555a63739708df5bd337316b5b10df42)) +* [#2396](https://github.com/openfoodfacts/smooth-app/issues/2396) - preparatory step with simple refactoring ([#2593](https://github.com/openfoodfacts/smooth-app/issues/2593)) ([27681d1](https://github.com/openfoodfacts/smooth-app/commit/27681d101e6f6ebdc82a016aa5d032a0f74662a4)) +* [#2475](https://github.com/openfoodfacts/smooth-app/issues/2475) - "contribute" now links to "in app" to-be-completed page ([#2623](https://github.com/openfoodfacts/smooth-app/issues/2623)) ([9b52190](https://github.com/openfoodfacts/smooth-app/commit/9b52190d3065758ab50b7f50ae12ec8f433318a4)) +* [#2501](https://github.com/openfoodfacts/smooth-app/issues/2501) - added "origins" in edit product page ([#2571](https://github.com/openfoodfacts/smooth-app/issues/2571)) ([2b60cb5](https://github.com/openfoodfacts/smooth-app/commit/2b60cb5fd05639b100f844e7424cba6bb7113140)) +* [#2513](https://github.com/openfoodfacts/smooth-app/issues/2513) - product page - moved higher the action bar ([#2615](https://github.com/openfoodfacts/smooth-app/issues/2615)) ([5816934](https://github.com/openfoodfacts/smooth-app/commit/581693420dc0ad8e9a0e584e88e401e4666b5bb8)) +* [#2563](https://github.com/openfoodfacts/smooth-app/issues/2563) - edit product page - added top barcode display and leading/trailing icons ([#2567](https://github.com/openfoodfacts/smooth-app/issues/2567)) ([b16d6d6](https://github.com/openfoodfacts/smooth-app/commit/b16d6d67cbee1b27396e9d7edce99b186f78a5ae)) +* [#2572](https://github.com/openfoodfacts/smooth-app/issues/2572) - added icons for ingredients and nutrition in edit product page ([#2577](https://github.com/openfoodfacts/smooth-app/issues/2577)) ([168d468](https://github.com/openfoodfacts/smooth-app/commit/168d4688f4859a498843067475d7b34cd86902c2)) +* [#2573](https://github.com/openfoodfacts/smooth-app/issues/2573) - KP cells are expanded on detail pages ([#2581](https://github.com/openfoodfacts/smooth-app/issues/2581)) ([1eb6712](https://github.com/openfoodfacts/smooth-app/commit/1eb6712ffb0820c677ad503c3e62c56b3a49bcec)) +* [#2574](https://github.com/openfoodfacts/smooth-app/issues/2574) - added explanations for origins, categories and packaging ([#2580](https://github.com/openfoodfacts/smooth-app/issues/2580)) ([bbcfd87](https://github.com/openfoodfacts/smooth-app/commit/bbcfd87f2620cf6d52ee0437bcdc2844173d4271)) +* Language filter ([#2539](https://github.com/openfoodfacts/smooth-app/issues/2539)) ([d856b35](https://github.com/openfoodfacts/smooth-app/commit/d856b350356c10a941954125cee21d3e079c4198)) +* Remove a maximum of hardcoded sizes and move Padding to Directional ones ([#2534](https://github.com/openfoodfacts/smooth-app/issues/2534)) ([9ebe5c8](https://github.com/openfoodfacts/smooth-app/commit/9ebe5c849c9967289e861c57ad9f7c45b58ad788)) +* Smooth Dialog with an axis for buttons ([#2587](https://github.com/openfoodfacts/smooth-app/issues/2587)) ([4255a5f](https://github.com/openfoodfacts/smooth-app/commit/4255a5faef1f611adfc299c56b0b033f096d9e38)) + + +### Bug Fixes + +* [#2009](https://github.com/openfoodfacts/smooth-app/issues/2009) - product page will always pull down - and refresh ([#2618](https://github.com/openfoodfacts/smooth-app/issues/2618)) ([ca960ed](https://github.com/openfoodfacts/smooth-app/commit/ca960ed4d98d95a5971c69723dfc0bd8c900cf79)) +* [#2530](https://github.com/openfoodfacts/smooth-app/issues/2530) - replaced the score colors with a score emoji ([#2569](https://github.com/openfoodfacts/smooth-app/issues/2569)) ([a1e096c](https://github.com/openfoodfacts/smooth-app/commit/a1e096c044e8eaf3bd189d34b97ff20ed24c717f)) +* [#2561](https://github.com/openfoodfacts/smooth-app/issues/2561) - fixed value+unit management in nutrient page ([#2568](https://github.com/openfoodfacts/smooth-app/issues/2568)) ([750f429](https://github.com/openfoodfacts/smooth-app/commit/750f429d2679e02e5525eab1aed2f9d31bba217f)) +* [#2575](https://github.com/openfoodfacts/smooth-app/issues/2575) - fixed brightness check for app icon ([#2579](https://github.com/openfoodfacts/smooth-app/issues/2579)) ([8446b30](https://github.com/openfoodfacts/smooth-app/commit/8446b3082a391b29843a72a2c742152835038952)) +* better place holder when no internet connection ([#2560](https://github.com/openfoodfacts/smooth-app/issues/2560)) ([e4ea159](https://github.com/openfoodfacts/smooth-app/commit/e4ea159685342a92dc148793dbadf9a46d662647)) +* double-response mechanism in the scan screen ([#2632](https://github.com/openfoodfacts/smooth-app/issues/2632)) ([68d7c54](https://github.com/openfoodfacts/smooth-app/commit/68d7c5484d267cfd53849b8e9cdf96b3c4855ff8)) +* ean - now we display ean8 (and not just ean13) ([#2596](https://github.com/openfoodfacts/smooth-app/issues/2596)) ([390ea3c](https://github.com/openfoodfacts/smooth-app/commit/390ea3cc4d144b814d78c1d3927dc9577464ea32)) +* Ensure all text inputs have coherent cursors + heights ([#2578](https://github.com/openfoodfacts/smooth-app/issues/2578)) ([6ad23ae](https://github.com/openfoodfacts/smooth-app/commit/6ad23aefb277061f8c7706a2afb1ec5b25bf0918)) + ## [0.1.0](https://www.github.com/openfoodfacts/smooth-app/compare/v0.0.2...v0.1.0) (2021-11-27) @@ -22,4 +53,4 @@ * [#691](https://www.github.com/openfoodfacts/smooth-app/issues/691) - regenerated golden screenshots for profile with bottom bar ([#692](https://www.github.com/openfoodfacts/smooth-app/issues/692)) ([85970d9](https://www.github.com/openfoodfacts/smooth-app/commit/85970d92ae8b4c7d2d457c2566eec97996d4a90c)) * contributors dialog ([#641](https://www.github.com/openfoodfacts/smooth-app/issues/641)) ([b7b7983](https://www.github.com/openfoodfacts/smooth-app/commit/b7b798342559abfaab6824227fd1aea586023b9c)) * deprecated share package + analyzer warnings ([#656](https://www.github.com/openfoodfacts/smooth-app/issues/656)) ([61576de](https://www.github.com/openfoodfacts/smooth-app/commit/61576ded7128aa34b8ac5283532cced4872c8226)) -* null crash in new product page with knowledge panels builder ([#675](https://www.github.com/openfoodfacts/smooth-app/issues/675)) ([76222ac](https://www.github.com/openfoodfacts/smooth-app/commit/76222ac7c106873ef233b42c82b823172305837a)) \ No newline at end of file +* null crash in new product page with knowledge panels builder ([#675](https://www.github.com/openfoodfacts/smooth-app/issues/675)) ([76222ac](https://www.github.com/openfoodfacts/smooth-app/commit/76222ac7c106873ef233b42c82b823172305837a)) diff --git a/version.txt b/version.txt index 0ea3a944b399..d5c0c9914289 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -0.2.0 +3.5.1