From c5321805dc5d368efc9746f3ce0b9344cc3f92b6 Mon Sep 17 00:00:00 2001 From: monsieurtanuki Date: Tue, 15 Aug 2023 16:16:16 +0200 Subject: [PATCH 1/6] feat: 4533 - new twitter logo and label (#4539) Deleted file: * `twitter-bird.svg` New file: * `x-logo.svg` Impacted files: * `app_en.arb`: edited twitter label * `user_preferences_connect.dart`: now using the new tinted twitter logo --- .../assets/preferences/twitter-bird.svg | 35 ------------------- .../smooth_app/assets/preferences/x-logo.svg | 3 ++ packages/smooth_app/lib/l10n/app_en.arb | 2 +- .../preferences/user_preferences_connect.dart | 8 ++++- 4 files changed, 11 insertions(+), 37 deletions(-) delete mode 100644 packages/smooth_app/assets/preferences/twitter-bird.svg create mode 100644 packages/smooth_app/assets/preferences/x-logo.svg diff --git a/packages/smooth_app/assets/preferences/twitter-bird.svg b/packages/smooth_app/assets/preferences/twitter-bird.svg deleted file mode 100644 index 431fb4498fb..00000000000 --- a/packages/smooth_app/assets/preferences/twitter-bird.svg +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - image/svg+xml - - - - - - - - - diff --git a/packages/smooth_app/assets/preferences/x-logo.svg b/packages/smooth_app/assets/preferences/x-logo.svg new file mode 100644 index 00000000000..437e2bfddbb --- /dev/null +++ b/packages/smooth_app/assets/preferences/x-logo.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/smooth_app/lib/l10n/app_en.arb b/packages/smooth_app/lib/l10n/app_en.arb index 454d085c485..6bd35d2f4c1 100644 --- a/packages/smooth_app/lib/l10n/app_en.arb +++ b/packages/smooth_app/lib/l10n/app_en.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/pages/preferences/user_preferences_connect.dart b/packages/smooth_app/lib/pages/preferences/user_preferences_connect.dart index 079befb2dde..6cb68e0161e 100644 --- a/packages/smooth_app/lib/pages/preferences/user_preferences_connect.dart +++ b/packages/smooth_app/lib/pages/preferences/user_preferences_connect.dart @@ -1,3 +1,5 @@ +import 'dart:ui' as ui; + import 'package:device_info_plus/device_info_plus.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; @@ -64,8 +66,12 @@ class UserPreferencesConnect extends AbstractUserPreferences { title: appLocalizations.twitter, url: appLocalizations.twitter_link, leading: SvgPicture.asset( - 'assets/preferences/twitter-bird.svg', + 'assets/preferences/x-logo.svg', width: DEFAULT_ICON_SIZE, + colorFilter: ui.ColorFilter.mode( + Theme.of(context).colorScheme.onBackground, + ui.BlendMode.srcIn, + ), package: AppHelper.APP_PACKAGE, ), ), From 1c75f86d1d56e8d3713f38c9258e4e347d8f6e06 Mon Sep 17 00:00:00 2001 From: Mikhail <66741910+mishapark@users.noreply.github.com> Date: Tue, 15 Aug 2023 10:20:20 -0400 Subject: [PATCH 2/6] fixed crop and added padding (#4514) --- .../knowledge_panel_page.dart | 36 +++++++++++++------ 1 file changed, 25 insertions(+), 11 deletions(-) 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 31fdfceefbb..8bb9acb1d05 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 @@ -62,18 +62,32 @@ class _KnowledgePanelPageState extends State ), body: RefreshIndicator( onRefresh: () => _refreshProduct(context), - child: SingleChildScrollView( + child: CustomScrollView( physics: const AlwaysScrollableScrollPhysics(), - child: SmoothCard( - padding: const EdgeInsets.all( - SMALL_SPACE, - ), - child: KnowledgePanelExpandedCard( - panelId: widget.panelId, - product: upToDateProduct, - isInitiallyExpanded: true, - ), - ), + slivers: [ + SliverToBoxAdapter( + child: Column( + children: [ + Padding( + padding: const EdgeInsets.only( + bottom: SMALL_SPACE, + top: SMALL_SPACE, + ), + child: SmoothCard( + padding: const EdgeInsets.all( + SMALL_SPACE, + ), + child: KnowledgePanelExpandedCard( + panelId: widget.panelId, + product: upToDateProduct, + isInitiallyExpanded: true, + ), + ), + ), + ], + ), + ) + ], ), ), ); From 1d10cbc00036596e727f19de039dc7799747d9b3 Mon Sep 17 00:00:00 2001 From: Pierre Slamich Date: Tue, 15 Aug 2023 18:57:34 +0200 Subject: [PATCH 3/6] feat: New Crowdin updates (#4512) * New translations app_en.arb (Portuguese) * New translations app_en.arb (Portuguese) * New translations app_en.arb (Portuguese) * New translations app_en.arb (Turkish) * New translations app_en.arb (German) * New translations app_en.arb (Basque) * New translations app_en.arb (Dutch) * New translations app_en.arb (Serbian (Cyrillic)) * New translations app_en.arb (Chinese Simplified) * New translations app_en.arb (Chinese Traditional) * New translations app_en.arb (Portuguese, Brazilian) * New translations app_en.arb (English, Australia) * New translations app_en.arb (English, United Kingdom) * New translations app_en.arb (Filipino) * New translations app_en.arb (Chinese Traditional, Hong Kong) * New translations app_en.arb (Flemish) * New translations app_en.arb (Songhay) * New translations app_en.arb (Asturian) * New translations app_en.arb (Acholi) * New translations app_en.arb (Valencian) * New translations app_en.arb (Serbian (Latin)) * New translations app_en.arb (Montenegrin (Cyrillic)) * New translations app_en.arb (Dutch, Belgium) * New translations app_en.arb (Berber) * New translations app_en.arb (Scots) * New translations app_en.arb (Cherokee) * New translations app_en.arb (Santali) * New translations app_en.arb (Seychellois Creole) * New translations app_en.arb (Venetian) * New translations app_en.arb (Southern Sami) * New translations app_en.arb (Talossan) * New translations app_en.arb (Zeelandic) * New translations app_en.arb (Kabyle) * New translations app_en.arb (Romanian) * New translations app_en.arb (Catalan) * New translations app_en.arb (Romanian) * New translations app_en.arb (French) * New translations app_en.arb (Spanish) * New translations app_en.arb (Afrikaans) * New translations app_en.arb (Arabic) * New translations app_en.arb (Belarusian) * New translations app_en.arb (Bulgarian) * New translations app_en.arb (Catalan) * New translations app_en.arb (Czech) * New translations app_en.arb (Danish) * New translations app_en.arb (German) * New translations app_en.arb (Greek) * New translations app_en.arb (Basque) * New translations app_en.arb (Finnish) * New translations app_en.arb (Irish) * New translations app_en.arb (Gujarati) * New translations app_en.arb (Hebrew) * New translations app_en.arb (Hungarian) * New translations app_en.arb (Armenian) * New translations app_en.arb (Italian) * New translations app_en.arb (Japanese) * New translations app_en.arb (Georgian) * New translations app_en.arb (Korean) * New translations app_en.arb (Kurdish) * New translations app_en.arb (Lithuanian) * New translations app_en.arb (Mongolian) * New translations app_en.arb (Dutch) * New translations app_en.arb (Norwegian) * New translations app_en.arb (Punjabi) * New translations app_en.arb (Polish) * New translations app_en.arb (Portuguese) * New translations app_en.arb (Russian) * New translations app_en.arb (Slovak) * New translations app_en.arb (Slovenian) * New translations app_en.arb (Albanian) * New translations app_en.arb (Serbian (Cyrillic)) * New translations app_en.arb (Swati) * New translations app_en.arb (Southern Sotho) * New translations app_en.arb (Swedish) * New translations app_en.arb (Tswana) * New translations app_en.arb (Turkish) * New translations app_en.arb (Tsonga) * New translations app_en.arb (Ukrainian) * New translations app_en.arb (Venda) * New translations app_en.arb (Xhosa) * New translations app_en.arb (Chinese Simplified) * New translations app_en.arb (Chinese Traditional) * New translations app_en.arb (Zulu) * New translations app_en.arb (English) * New translations app_en.arb (Vietnamese) * New translations app_en.arb (Galician) * New translations app_en.arb (Icelandic) * New translations app_en.arb (Portuguese, Brazilian) * New translations app_en.arb (Indonesian) * New translations app_en.arb (Persian) * New translations app_en.arb (Khmer) * New translations app_en.arb (Tamil) * New translations app_en.arb (Bengali) * New translations app_en.arb (Marathi) * New translations app_en.arb (Thai) * New translations app_en.arb (Croatian) * New translations app_en.arb (Norwegian Nynorsk) * New translations app_en.arb (Kazakh) * New translations app_en.arb (Estonian) * New translations app_en.arb (Latvian) * New translations app_en.arb (Azerbaijani) * New translations app_en.arb (Hindi) * New translations app_en.arb (Kyrgyz) * New translations app_en.arb (Malay) * New translations app_en.arb (Maori) * New translations app_en.arb (Telugu) * New translations app_en.arb (English, Australia) * New translations app_en.arb (English, United Kingdom) * New translations app_en.arb (Tagalog) * New translations app_en.arb (Burmese) * New translations app_en.arb (Yiddish) * New translations app_en.arb (Maltese) * New translations app_en.arb (Welsh) * New translations app_en.arb (Faroese) * New translations app_en.arb (Esperanto) * New translations app_en.arb (Uyghur) * New translations app_en.arb (Filipino) * New translations app_en.arb (Luxembourgish) * New translations app_en.arb (Chinese Traditional, Hong Kong) * New translations app_en.arb (Tatar) * New translations app_en.arb (Malayalam) * New translations app_en.arb (Breton) * New translations app_en.arb (Romansh) * New translations app_en.arb (Tibetan) * New translations app_en.arb (Latin) * New translations app_en.arb (Flemish) * New translations app_en.arb (Bosnian) * New translations app_en.arb (Sinhala) * New translations app_en.arb (Cornish) * New translations app_en.arb (Uzbek) * New translations app_en.arb (Kannada) * New translations app_en.arb (Akan) * New translations app_en.arb (Songhay) * New translations app_en.arb (Assamese) * New translations app_en.arb (Scottish Gaelic) * New translations app_en.arb (Wolof) * New translations app_en.arb (Southern Ndebele) * New translations app_en.arb (Walloon) * New translations app_en.arb (Asturian) * New translations app_en.arb (Malagasy) * New translations app_en.arb (Acholi) * New translations app_en.arb (Swahili) * New translations app_en.arb (Odia) * New translations app_en.arb (Norwegian Bokmal) * New translations app_en.arb (Occitan) * New translations app_en.arb (Valencian) * New translations app_en.arb (Serbian (Latin)) * New translations app_en.arb (Amharic) * New translations app_en.arb (Nepali) * New translations app_en.arb (Montenegrin (Cyrillic)) * New translations app_en.arb (Dutch, Belgium) * New translations app_en.arb (Tahitian) * New translations app_en.arb (Hausa) * New translations app_en.arb (Chuvash) * New translations app_en.arb (Berber) * New translations app_en.arb (Scots) * New translations app_en.arb (Tajik) * New translations app_en.arb (Lao) * New translations app_en.arb (Quechua) * New translations app_en.arb (Somali) * New translations app_en.arb (Yoruba) * New translations app_en.arb (Afar) * New translations app_en.arb (Bambara) * New translations app_en.arb (Chechen) * New translations app_en.arb (Cherokee) * New translations app_en.arb (Corsican) * New translations app_en.arb (Haitian Creole) * New translations app_en.arb (Sichuan Yi) * New translations app_en.arb (Inuktitut) * New translations app_en.arb (Javanese) * New translations app_en.arb (Santali) * New translations app_en.arb (Sardinian) * New translations app_en.arb (Sindhi) * New translations app_en.arb (Sango) * New translations app_en.arb (Shona) * New translations app_en.arb (Tigrinya) * New translations app_en.arb (Sanskrit) * New translations app_en.arb (Seychellois Creole) * New translations app_en.arb (Venetian) * New translations app_en.arb (Southern Sami) * New translations app_en.arb (Akan, Twi) * New translations app_en.arb (Talossan) * New translations app_en.arb (Zeelandic) * New translations app_en.arb (Kabyle) * New translations app_en.arb (Urdu (India)) * New translations app_en.arb (LOLCAT) * remove 3 letter files --- packages/smooth_app/lib/l10n/app_aa.arb | 2 +- packages/smooth_app/lib/l10n/app_af.arb | 2 +- packages/smooth_app/lib/l10n/app_ak.arb | 2 +- packages/smooth_app/lib/l10n/app_am.arb | 2 +- packages/smooth_app/lib/l10n/app_ar.arb | 2 +- packages/smooth_app/lib/l10n/app_as.arb | 2 +- packages/smooth_app/lib/l10n/app_az.arb | 2 +- packages/smooth_app/lib/l10n/app_be.arb | 2 +- packages/smooth_app/lib/l10n/app_bg.arb | 2 +- packages/smooth_app/lib/l10n/app_bm.arb | 2 +- packages/smooth_app/lib/l10n/app_bn.arb | 4 ++-- packages/smooth_app/lib/l10n/app_bo.arb | 2 +- packages/smooth_app/lib/l10n/app_br.arb | 2 +- packages/smooth_app/lib/l10n/app_bs.arb | 2 +- packages/smooth_app/lib/l10n/app_ca.arb | 12 ++++++------ packages/smooth_app/lib/l10n/app_ce.arb | 2 +- packages/smooth_app/lib/l10n/app_co.arb | 2 +- packages/smooth_app/lib/l10n/app_cs.arb | 2 +- packages/smooth_app/lib/l10n/app_cv.arb | 2 +- packages/smooth_app/lib/l10n/app_cy.arb | 2 +- packages/smooth_app/lib/l10n/app_da.arb | 2 +- packages/smooth_app/lib/l10n/app_de.arb | 4 ++-- packages/smooth_app/lib/l10n/app_el.arb | 2 +- packages/smooth_app/lib/l10n/app_eo.arb | 2 +- packages/smooth_app/lib/l10n/app_es.arb | 2 +- packages/smooth_app/lib/l10n/app_et.arb | 2 +- packages/smooth_app/lib/l10n/app_eu.arb | 8 ++++---- packages/smooth_app/lib/l10n/app_fa.arb | 2 +- packages/smooth_app/lib/l10n/app_fi.arb | 2 +- packages/smooth_app/lib/l10n/app_fo.arb | 2 +- packages/smooth_app/lib/l10n/app_fr.arb | 2 +- packages/smooth_app/lib/l10n/app_ga.arb | 2 +- packages/smooth_app/lib/l10n/app_gd.arb | 2 +- packages/smooth_app/lib/l10n/app_gl.arb | 2 +- packages/smooth_app/lib/l10n/app_gu.arb | 2 +- packages/smooth_app/lib/l10n/app_ha.arb | 2 +- packages/smooth_app/lib/l10n/app_he.arb | 2 +- packages/smooth_app/lib/l10n/app_hi.arb | 2 +- packages/smooth_app/lib/l10n/app_hr.arb | 2 +- packages/smooth_app/lib/l10n/app_ht.arb | 2 +- packages/smooth_app/lib/l10n/app_hu.arb | 2 +- packages/smooth_app/lib/l10n/app_hy.arb | 2 +- packages/smooth_app/lib/l10n/app_id.arb | 2 +- packages/smooth_app/lib/l10n/app_ii.arb | 2 +- packages/smooth_app/lib/l10n/app_is.arb | 2 +- packages/smooth_app/lib/l10n/app_it.arb | 2 +- packages/smooth_app/lib/l10n/app_iu.arb | 2 +- packages/smooth_app/lib/l10n/app_ja.arb | 2 +- packages/smooth_app/lib/l10n/app_jv.arb | 2 +- packages/smooth_app/lib/l10n/app_ka.arb | 2 +- packages/smooth_app/lib/l10n/app_kk.arb | 2 +- packages/smooth_app/lib/l10n/app_km.arb | 2 +- packages/smooth_app/lib/l10n/app_kn.arb | 2 +- packages/smooth_app/lib/l10n/app_ko.arb | 2 +- packages/smooth_app/lib/l10n/app_ku.arb | 2 +- packages/smooth_app/lib/l10n/app_kw.arb | 2 +- packages/smooth_app/lib/l10n/app_ky.arb | 2 +- packages/smooth_app/lib/l10n/app_la.arb | 2 +- packages/smooth_app/lib/l10n/app_lb.arb | 2 +- packages/smooth_app/lib/l10n/app_lo.arb | 2 +- packages/smooth_app/lib/l10n/app_lt.arb | 2 +- packages/smooth_app/lib/l10n/app_lv.arb | 2 +- packages/smooth_app/lib/l10n/app_mg.arb | 2 +- packages/smooth_app/lib/l10n/app_mi.arb | 2 +- packages/smooth_app/lib/l10n/app_ml.arb | 2 +- packages/smooth_app/lib/l10n/app_mn.arb | 2 +- packages/smooth_app/lib/l10n/app_mr.arb | 2 +- packages/smooth_app/lib/l10n/app_ms.arb | 2 +- packages/smooth_app/lib/l10n/app_mt.arb | 2 +- packages/smooth_app/lib/l10n/app_my.arb | 2 +- packages/smooth_app/lib/l10n/app_nb.arb | 2 +- packages/smooth_app/lib/l10n/app_ne.arb | 2 +- packages/smooth_app/lib/l10n/app_nl.arb | 2 +- packages/smooth_app/lib/l10n/app_nn.arb | 2 +- packages/smooth_app/lib/l10n/app_no.arb | 2 +- packages/smooth_app/lib/l10n/app_nr.arb | 2 +- packages/smooth_app/lib/l10n/app_oc.arb | 2 +- packages/smooth_app/lib/l10n/app_or.arb | 2 +- packages/smooth_app/lib/l10n/app_pa.arb | 2 +- packages/smooth_app/lib/l10n/app_pl.arb | 2 +- packages/smooth_app/lib/l10n/app_pt.arb | 2 +- packages/smooth_app/lib/l10n/app_qu.arb | 2 +- packages/smooth_app/lib/l10n/app_rm.arb | 2 +- packages/smooth_app/lib/l10n/app_ro.arb | 12 ++++++------ packages/smooth_app/lib/l10n/app_ru.arb | 2 +- packages/smooth_app/lib/l10n/app_sa.arb | 2 +- packages/smooth_app/lib/l10n/app_sc.arb | 2 +- packages/smooth_app/lib/l10n/app_sd.arb | 2 +- packages/smooth_app/lib/l10n/app_sg.arb | 2 +- packages/smooth_app/lib/l10n/app_si.arb | 2 +- packages/smooth_app/lib/l10n/app_sk.arb | 2 +- packages/smooth_app/lib/l10n/app_sl.arb | 2 +- packages/smooth_app/lib/l10n/app_sn.arb | 2 +- packages/smooth_app/lib/l10n/app_so.arb | 2 +- packages/smooth_app/lib/l10n/app_sq.arb | 2 +- packages/smooth_app/lib/l10n/app_sr.arb | 2 +- packages/smooth_app/lib/l10n/app_ss.arb | 2 +- packages/smooth_app/lib/l10n/app_st.arb | 2 +- packages/smooth_app/lib/l10n/app_sv.arb | 2 +- packages/smooth_app/lib/l10n/app_sw.arb | 2 +- packages/smooth_app/lib/l10n/app_ta.arb | 2 +- packages/smooth_app/lib/l10n/app_te.arb | 2 +- packages/smooth_app/lib/l10n/app_tg.arb | 2 +- packages/smooth_app/lib/l10n/app_th.arb | 2 +- packages/smooth_app/lib/l10n/app_ti.arb | 2 +- packages/smooth_app/lib/l10n/app_tl.arb | 2 +- packages/smooth_app/lib/l10n/app_tn.arb | 2 +- packages/smooth_app/lib/l10n/app_tr.arb | 12 ++++++------ packages/smooth_app/lib/l10n/app_ts.arb | 2 +- packages/smooth_app/lib/l10n/app_tt.arb | 2 +- packages/smooth_app/lib/l10n/app_tw.arb | 2 +- packages/smooth_app/lib/l10n/app_ty.arb | 2 +- packages/smooth_app/lib/l10n/app_ug.arb | 2 +- packages/smooth_app/lib/l10n/app_uk.arb | 2 +- packages/smooth_app/lib/l10n/app_ur.arb | 2 +- packages/smooth_app/lib/l10n/app_uz.arb | 2 +- packages/smooth_app/lib/l10n/app_ve.arb | 2 +- packages/smooth_app/lib/l10n/app_vi.arb | 2 +- packages/smooth_app/lib/l10n/app_wa.arb | 2 +- packages/smooth_app/lib/l10n/app_wo.arb | 2 +- packages/smooth_app/lib/l10n/app_xh.arb | 2 +- packages/smooth_app/lib/l10n/app_yi.arb | 2 +- packages/smooth_app/lib/l10n/app_yo.arb | 2 +- packages/smooth_app/lib/l10n/app_zh.arb | 2 +- packages/smooth_app/lib/l10n/app_zu.arb | 2 +- 125 files changed, 145 insertions(+), 145 deletions(-) diff --git a/packages/smooth_app/lib/l10n/app_aa.arb b/packages/smooth_app/lib/l10n/app_aa.arb index 3a69989bad5..f4c827fc168 100644 --- a/packages/smooth_app/lib/l10n/app_aa.arb +++ b/packages/smooth_app/lib/l10n/app_aa.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_af.arb b/packages/smooth_app/lib/l10n/app_af.arb index a8d22aabfce..be833f0dbe3 100644 --- a/packages/smooth_app/lib/l10n/app_af.arb +++ b/packages/smooth_app/lib/l10n/app_af.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_ak.arb b/packages/smooth_app/lib/l10n/app_ak.arb index 454d085c485..6bd35d2f4c1 100644 --- a/packages/smooth_app/lib/l10n/app_ak.arb +++ b/packages/smooth_app/lib/l10n/app_ak.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_am.arb b/packages/smooth_app/lib/l10n/app_am.arb index 246c01e42c3..469471b4d62 100644 --- a/packages/smooth_app/lib/l10n/app_am.arb +++ b/packages/smooth_app/lib/l10n/app_am.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_ar.arb b/packages/smooth_app/lib/l10n/app_ar.arb index 20578b63d8f..6f53fccf3d6 100644 --- a/packages/smooth_app/lib/l10n/app_ar.arb +++ b/packages/smooth_app/lib/l10n/app_ar.arb @@ -861,7 +861,7 @@ "connect_with_us": "اتصل بنا", "instagram": "إنستغرام", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "الأسئلة المتكررة", diff --git a/packages/smooth_app/lib/l10n/app_as.arb b/packages/smooth_app/lib/l10n/app_as.arb index 454d085c485..6bd35d2f4c1 100644 --- a/packages/smooth_app/lib/l10n/app_as.arb +++ b/packages/smooth_app/lib/l10n/app_as.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_az.arb b/packages/smooth_app/lib/l10n/app_az.arb index abb46f2e48b..36cd988e277 100644 --- a/packages/smooth_app/lib/l10n/app_az.arb +++ b/packages/smooth_app/lib/l10n/app_az.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_be.arb b/packages/smooth_app/lib/l10n/app_be.arb index cba0db83b32..224e282f7dc 100644 --- a/packages/smooth_app/lib/l10n/app_be.arb +++ b/packages/smooth_app/lib/l10n/app_be.arb @@ -861,7 +861,7 @@ "connect_with_us": "Звяжыцеся з намі", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Блог", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_bg.arb b/packages/smooth_app/lib/l10n/app_bg.arb index b7957a7b07e..f8534f28638 100644 --- a/packages/smooth_app/lib/l10n/app_bg.arb +++ b/packages/smooth_app/lib/l10n/app_bg.arb @@ -861,7 +861,7 @@ "connect_with_us": "Свържи се с нас", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Блог", "faq": "ЧЗВ", diff --git a/packages/smooth_app/lib/l10n/app_bm.arb b/packages/smooth_app/lib/l10n/app_bm.arb index 454d085c485..6bd35d2f4c1 100644 --- a/packages/smooth_app/lib/l10n/app_bm.arb +++ b/packages/smooth_app/lib/l10n/app_bm.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_bn.arb b/packages/smooth_app/lib/l10n/app_bn.arb index e032cc4c7c0..6341095d704 100644 --- a/packages/smooth_app/lib/l10n/app_bn.arb +++ b/packages/smooth_app/lib/l10n/app_bn.arb @@ -861,11 +861,11 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", - "discover": "খুঁজুন", + "discover": "আবিষ্কার করো", "how_to_contribute": "How to Contribute", "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": { diff --git a/packages/smooth_app/lib/l10n/app_bo.arb b/packages/smooth_app/lib/l10n/app_bo.arb index 454d085c485..6bd35d2f4c1 100644 --- a/packages/smooth_app/lib/l10n/app_bo.arb +++ b/packages/smooth_app/lib/l10n/app_bo.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_br.arb b/packages/smooth_app/lib/l10n/app_br.arb index fca385122fc..a7112a3c718 100644 --- a/packages/smooth_app/lib/l10n/app_br.arb +++ b/packages/smooth_app/lib/l10n/app_br.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_bs.arb b/packages/smooth_app/lib/l10n/app_bs.arb index 0bea8810986..0fe2f71adf3 100644 --- a/packages/smooth_app/lib/l10n/app_bs.arb +++ b/packages/smooth_app/lib/l10n/app_bs.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_ca.arb b/packages/smooth_app/lib/l10n/app_ca.arb index 57482e0c3ca..d2d67d6be59 100644 --- a/packages/smooth_app/lib/l10n/app_ca.arb +++ b/packages/smooth_app/lib/l10n/app_ca.arb @@ -164,7 +164,7 @@ "@sign_in_mandatory": { "description": "Error message: for some features like product edits you need to be signed in" }, - "sign_out": "Tancar la sessió", + "sign_out": "Tanca la sessió", "@sign_out": { "description": "Button label: For sign out" }, @@ -516,7 +516,7 @@ "@packaging_information_photo": {}, "missing_product": "Heu trobat un nou producte!", "@missing_product": {}, - "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts", + "add_product_take_photos": "Feu fotos de l'embalatge per afegir aquest producte a Open Food Facts", "@add_product_take_photos": {}, "add_product_take_photos_descriptive": "Si us plau, feu algunes fotos primer. Sempre podeu completar el producte més endavant.", "@add_product_take_photos_descriptive": {}, @@ -861,7 +861,7 @@ "connect_with_us": "Connecta amb nosaltres", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Bloc", "faq": "FAQ", @@ -969,7 +969,7 @@ "@authorize": { "description": "Button to accept the request of sending the anonymous analytics or authorize the camera permission" }, - "refuse_button_label": "Denegar", + "refuse_button_label": "Denega", "@refuse": { "description": "Button to decline the request of sending the anonymous analytics" }, @@ -1044,7 +1044,7 @@ "@loading_dialog_default_error_message": { "description": "Default loading dialog error message" }, - "account_delete": "Eliminar compte", + "account_delete": "Elimina el compte", "@account_delete": { "description": "Delete account button (user profile)" }, @@ -1079,7 +1079,7 @@ } } }, - "email_subject_account_deletion": "Eliminar compte", + "email_subject_account_deletion": "Elimina el compte", "@email_subject_account_deletion": { "description": "Email subject for an account deletion" }, diff --git a/packages/smooth_app/lib/l10n/app_ce.arb b/packages/smooth_app/lib/l10n/app_ce.arb index 454d085c485..6bd35d2f4c1 100644 --- a/packages/smooth_app/lib/l10n/app_ce.arb +++ b/packages/smooth_app/lib/l10n/app_ce.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_co.arb b/packages/smooth_app/lib/l10n/app_co.arb index 454d085c485..6bd35d2f4c1 100644 --- a/packages/smooth_app/lib/l10n/app_co.arb +++ b/packages/smooth_app/lib/l10n/app_co.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_cs.arb b/packages/smooth_app/lib/l10n/app_cs.arb index 13762fc28d7..e36b62db652 100644 --- a/packages/smooth_app/lib/l10n/app_cs.arb +++ b/packages/smooth_app/lib/l10n/app_cs.arb @@ -861,7 +861,7 @@ "connect_with_us": "Spojte se s námi", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "Často kladené otázky", diff --git a/packages/smooth_app/lib/l10n/app_cv.arb b/packages/smooth_app/lib/l10n/app_cv.arb index 454d085c485..6bd35d2f4c1 100644 --- a/packages/smooth_app/lib/l10n/app_cv.arb +++ b/packages/smooth_app/lib/l10n/app_cv.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_cy.arb b/packages/smooth_app/lib/l10n/app_cy.arb index e9b855372ea..fba9458847d 100644 --- a/packages/smooth_app/lib/l10n/app_cy.arb +++ b/packages/smooth_app/lib/l10n/app_cy.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_da.arb b/packages/smooth_app/lib/l10n/app_da.arb index 61024def188..71cb71b33bc 100644 --- a/packages/smooth_app/lib/l10n/app_da.arb +++ b/packages/smooth_app/lib/l10n/app_da.arb @@ -861,7 +861,7 @@ "connect_with_us": "Kom i forbindelse med os", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_de.arb b/packages/smooth_app/lib/l10n/app_de.arb index 95069452e6b..5171d237b7c 100644 --- a/packages/smooth_app/lib/l10n/app_de.arb +++ b/packages/smooth_app/lib/l10n/app_de.arb @@ -681,7 +681,7 @@ "nutrition_page_add_nutrient": "Nährstoff hinzufügen", "nutrition_page_serving_size": "Portionsgröße", "nutrition_page_invalid_number": "Ungültige Nummer", - "nutrition_page_update_running": "Produkts wird auf dem Server aktualisiert …", + "nutrition_page_update_running": "Produkt wird auf dem Server aktualisiert…", "nutrition_page_update_done": "Produkt aktualisiert!", "more_photos": "Weitere interessante Fotos", "@more_photos": {}, @@ -861,7 +861,7 @@ "connect_with_us": "Mit uns in Verbindung treten", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://twitter.com/openfoodfacts", "blog": "Blog", "faq": "Häufig gestellte Fragen", diff --git a/packages/smooth_app/lib/l10n/app_el.arb b/packages/smooth_app/lib/l10n/app_el.arb index 1ad61422098..e1ebbdf6472 100644 --- a/packages/smooth_app/lib/l10n/app_el.arb +++ b/packages/smooth_app/lib/l10n/app_el.arb @@ -861,7 +861,7 @@ "connect_with_us": "Συνδεθείτε μαζί μας", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "Συχνές ερωτήσεις", diff --git a/packages/smooth_app/lib/l10n/app_eo.arb b/packages/smooth_app/lib/l10n/app_eo.arb index ca23f92d8fc..59e191b3f9b 100644 --- a/packages/smooth_app/lib/l10n/app_eo.arb +++ b/packages/smooth_app/lib/l10n/app_eo.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_es.arb b/packages/smooth_app/lib/l10n/app_es.arb index 573d5efa368..83558736e7a 100644 --- a/packages/smooth_app/lib/l10n/app_es.arb +++ b/packages/smooth_app/lib/l10n/app_es.arb @@ -861,7 +861,7 @@ "connect_with_us": "Conecta con nosotros", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "Preguntas frecuentes", diff --git a/packages/smooth_app/lib/l10n/app_et.arb b/packages/smooth_app/lib/l10n/app_et.arb index 4b1aff66c94..8a47c0728d1 100644 --- a/packages/smooth_app/lib/l10n/app_et.arb +++ b/packages/smooth_app/lib/l10n/app_et.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_eu.arb b/packages/smooth_app/lib/l10n/app_eu.arb index e82d0b6c87c..8fe3b856449 100644 --- a/packages/smooth_app/lib/l10n/app_eu.arb +++ b/packages/smooth_app/lib/l10n/app_eu.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Bloga", "faq": "FAQ", @@ -1858,15 +1858,15 @@ "@gallery_source_label": { "description": "Label for the gallery image source" }, - "gallery_source_access_denied_dialog_title": "Access denied", + "gallery_source_access_denied_dialog_title": "Sarbidea ukatuta", "@gallery_source_access_denied_dialog_title": { "description": "On iOS, the user has refused to give the permission (title of the dialog)" }, - "gallery_source_access_denied_dialog_message_ios": "Unfortunately, the application can't access your gallery, as you have previously denied the permission.\n\nPlease go to the app settings in your phone Settings -> Photos", + "gallery_source_access_denied_dialog_message_ios": "Tamalez, aplikazioak ezin du zure galeria atzitu, lehenik baimena ukatu duzulako.\n\nJoan zure mugikorreko aplikazioaren ezarpenetara: Ezarpenak -> Argazkiak", "@gallery_source_access_denied_dialog_message_ios": { "description": "On iOS, the user has refused to give the permission" }, - "gallery_source_access_denied_dialog_button": "Open the Settings", + "gallery_source_access_denied_dialog_button": "Ireki ezarpenak", "@gallery_source_access_denied_dialog_button": { "description": "Button to open the app settings" }, diff --git a/packages/smooth_app/lib/l10n/app_fa.arb b/packages/smooth_app/lib/l10n/app_fa.arb index 41d944e663f..cc64fe2699a 100644 --- a/packages/smooth_app/lib/l10n/app_fa.arb +++ b/packages/smooth_app/lib/l10n/app_fa.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_fi.arb b/packages/smooth_app/lib/l10n/app_fi.arb index 7c4ad28474b..dffab0e0163 100644 --- a/packages/smooth_app/lib/l10n/app_fi.arb +++ b/packages/smooth_app/lib/l10n/app_fi.arb @@ -861,7 +861,7 @@ "connect_with_us": "Ota yhteyttä", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blogi", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_fo.arb b/packages/smooth_app/lib/l10n/app_fo.arb index 454d085c485..6bd35d2f4c1 100644 --- a/packages/smooth_app/lib/l10n/app_fo.arb +++ b/packages/smooth_app/lib/l10n/app_fo.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_fr.arb b/packages/smooth_app/lib/l10n/app_fr.arb index 06131496dff..c062a6088d9 100644 --- a/packages/smooth_app/lib/l10n/app_fr.arb +++ b/packages/smooth_app/lib/l10n/app_fr.arb @@ -861,7 +861,7 @@ "connect_with_us": "Nous contacter", "instagram": "Instagram", "instagram_link": "https://instagram.com/openfoodfacts.fr", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfactsfr", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_ga.arb b/packages/smooth_app/lib/l10n/app_ga.arb index 63e7ceb6a9e..18203b22935 100644 --- a/packages/smooth_app/lib/l10n/app_ga.arb +++ b/packages/smooth_app/lib/l10n/app_ga.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_gd.arb b/packages/smooth_app/lib/l10n/app_gd.arb index 454d085c485..6bd35d2f4c1 100644 --- a/packages/smooth_app/lib/l10n/app_gd.arb +++ b/packages/smooth_app/lib/l10n/app_gd.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_gl.arb b/packages/smooth_app/lib/l10n/app_gl.arb index 6cec0aee17e..3eabb7a810a 100644 --- a/packages/smooth_app/lib/l10n/app_gl.arb +++ b/packages/smooth_app/lib/l10n/app_gl.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_gu.arb b/packages/smooth_app/lib/l10n/app_gu.arb index 0990c5ad264..5cf323d45b0 100644 --- a/packages/smooth_app/lib/l10n/app_gu.arb +++ b/packages/smooth_app/lib/l10n/app_gu.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_ha.arb b/packages/smooth_app/lib/l10n/app_ha.arb index 7d1b0c2edba..42818877694 100644 --- a/packages/smooth_app/lib/l10n/app_ha.arb +++ b/packages/smooth_app/lib/l10n/app_ha.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_he.arb b/packages/smooth_app/lib/l10n/app_he.arb index 230ecb64ab5..ef4c399ff4a 100644 --- a/packages/smooth_app/lib/l10n/app_he.arb +++ b/packages/smooth_app/lib/l10n/app_he.arb @@ -861,7 +861,7 @@ "connect_with_us": "להתחבר אלינו", "instagram": "אינסטגרם", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "טוויטר", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "בלוג", "faq": "שו״ת", diff --git a/packages/smooth_app/lib/l10n/app_hi.arb b/packages/smooth_app/lib/l10n/app_hi.arb index e499921ad87..3e91fe1a69a 100644 --- a/packages/smooth_app/lib/l10n/app_hi.arb +++ b/packages/smooth_app/lib/l10n/app_hi.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_hr.arb b/packages/smooth_app/lib/l10n/app_hr.arb index e2c55ecdb35..e816e82d87f 100644 --- a/packages/smooth_app/lib/l10n/app_hr.arb +++ b/packages/smooth_app/lib/l10n/app_hr.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_ht.arb b/packages/smooth_app/lib/l10n/app_ht.arb index 454d085c485..6bd35d2f4c1 100644 --- a/packages/smooth_app/lib/l10n/app_ht.arb +++ b/packages/smooth_app/lib/l10n/app_ht.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_hu.arb b/packages/smooth_app/lib/l10n/app_hu.arb index 80ed6ec929b..50182680426 100644 --- a/packages/smooth_app/lib/l10n/app_hu.arb +++ b/packages/smooth_app/lib/l10n/app_hu.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_hy.arb b/packages/smooth_app/lib/l10n/app_hy.arb index e6d3c425a45..d4dd594e17a 100644 --- a/packages/smooth_app/lib/l10n/app_hy.arb +++ b/packages/smooth_app/lib/l10n/app_hy.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_id.arb b/packages/smooth_app/lib/l10n/app_id.arb index 5d2a7973b73..9ddf36e7804 100644 --- a/packages/smooth_app/lib/l10n/app_id.arb +++ b/packages/smooth_app/lib/l10n/app_id.arb @@ -861,7 +861,7 @@ "connect_with_us": "Terhubung dengan kami", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_ii.arb b/packages/smooth_app/lib/l10n/app_ii.arb index 454d085c485..6bd35d2f4c1 100644 --- a/packages/smooth_app/lib/l10n/app_ii.arb +++ b/packages/smooth_app/lib/l10n/app_ii.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_is.arb b/packages/smooth_app/lib/l10n/app_is.arb index 8a85e98f09b..c534f0c4b46 100644 --- a/packages/smooth_app/lib/l10n/app_is.arb +++ b/packages/smooth_app/lib/l10n/app_is.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_it.arb b/packages/smooth_app/lib/l10n/app_it.arb index 4b6466f71f8..3bd19e798c9 100644 --- a/packages/smooth_app/lib/l10n/app_it.arb +++ b/packages/smooth_app/lib/l10n/app_it.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connettiti con noi", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_iu.arb b/packages/smooth_app/lib/l10n/app_iu.arb index 454d085c485..6bd35d2f4c1 100644 --- a/packages/smooth_app/lib/l10n/app_iu.arb +++ b/packages/smooth_app/lib/l10n/app_iu.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_ja.arb b/packages/smooth_app/lib/l10n/app_ja.arb index 82eb6ed0ef9..bf2df2eeb2f 100644 --- a/packages/smooth_app/lib/l10n/app_ja.arb +++ b/packages/smooth_app/lib/l10n/app_ja.arb @@ -861,7 +861,7 @@ "connect_with_us": "私たちとつながる", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "ブログ", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_jv.arb b/packages/smooth_app/lib/l10n/app_jv.arb index f2ce3fb4646..17687072b18 100644 --- a/packages/smooth_app/lib/l10n/app_jv.arb +++ b/packages/smooth_app/lib/l10n/app_jv.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_ka.arb b/packages/smooth_app/lib/l10n/app_ka.arb index 1684e1f2044..13e1fe7df54 100644 --- a/packages/smooth_app/lib/l10n/app_ka.arb +++ b/packages/smooth_app/lib/l10n/app_ka.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_kk.arb b/packages/smooth_app/lib/l10n/app_kk.arb index 6f9ca5c7752..d42166e7c5e 100644 --- a/packages/smooth_app/lib/l10n/app_kk.arb +++ b/packages/smooth_app/lib/l10n/app_kk.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_km.arb b/packages/smooth_app/lib/l10n/app_km.arb index 91c1e278e59..53ef36cf9e3 100644 --- a/packages/smooth_app/lib/l10n/app_km.arb +++ b/packages/smooth_app/lib/l10n/app_km.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_kn.arb b/packages/smooth_app/lib/l10n/app_kn.arb index efc03da9900..1e4acbc6c6a 100644 --- a/packages/smooth_app/lib/l10n/app_kn.arb +++ b/packages/smooth_app/lib/l10n/app_kn.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_ko.arb b/packages/smooth_app/lib/l10n/app_ko.arb index 1a45e160875..bc4fce7804c 100644 --- a/packages/smooth_app/lib/l10n/app_ko.arb +++ b/packages/smooth_app/lib/l10n/app_ko.arb @@ -861,7 +861,7 @@ "connect_with_us": "소통하기", "instagram": "인스타그램", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "블로그", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_ku.arb b/packages/smooth_app/lib/l10n/app_ku.arb index cc479cf5cb8..832e9d41df4 100644 --- a/packages/smooth_app/lib/l10n/app_ku.arb +++ b/packages/smooth_app/lib/l10n/app_ku.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_kw.arb b/packages/smooth_app/lib/l10n/app_kw.arb index 454d085c485..6bd35d2f4c1 100644 --- a/packages/smooth_app/lib/l10n/app_kw.arb +++ b/packages/smooth_app/lib/l10n/app_kw.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_ky.arb b/packages/smooth_app/lib/l10n/app_ky.arb index 24f73336d9e..1753eb668ef 100644 --- a/packages/smooth_app/lib/l10n/app_ky.arb +++ b/packages/smooth_app/lib/l10n/app_ky.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_la.arb b/packages/smooth_app/lib/l10n/app_la.arb index 7462700d22d..816d3dae74d 100644 --- a/packages/smooth_app/lib/l10n/app_la.arb +++ b/packages/smooth_app/lib/l10n/app_la.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_lb.arb b/packages/smooth_app/lib/l10n/app_lb.arb index f3433db9fec..25c20fd938d 100644 --- a/packages/smooth_app/lib/l10n/app_lb.arb +++ b/packages/smooth_app/lib/l10n/app_lb.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_lo.arb b/packages/smooth_app/lib/l10n/app_lo.arb index 454d085c485..6bd35d2f4c1 100644 --- a/packages/smooth_app/lib/l10n/app_lo.arb +++ b/packages/smooth_app/lib/l10n/app_lo.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_lt.arb b/packages/smooth_app/lib/l10n/app_lt.arb index d6e81ca6e3f..293fd8f5e8c 100644 --- a/packages/smooth_app/lib/l10n/app_lt.arb +++ b/packages/smooth_app/lib/l10n/app_lt.arb @@ -861,7 +861,7 @@ "connect_with_us": "Susisiekite su mumis", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blogas", "faq": "DUK", diff --git a/packages/smooth_app/lib/l10n/app_lv.arb b/packages/smooth_app/lib/l10n/app_lv.arb index 8aec874dd4f..b54d2378f24 100644 --- a/packages/smooth_app/lib/l10n/app_lv.arb +++ b/packages/smooth_app/lib/l10n/app_lv.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_mg.arb b/packages/smooth_app/lib/l10n/app_mg.arb index e9f32ba23f3..bf083791f09 100644 --- a/packages/smooth_app/lib/l10n/app_mg.arb +++ b/packages/smooth_app/lib/l10n/app_mg.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_mi.arb b/packages/smooth_app/lib/l10n/app_mi.arb index 454d085c485..6bd35d2f4c1 100644 --- a/packages/smooth_app/lib/l10n/app_mi.arb +++ b/packages/smooth_app/lib/l10n/app_mi.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_ml.arb b/packages/smooth_app/lib/l10n/app_ml.arb index 62dcbabc846..11a6905715f 100644 --- a/packages/smooth_app/lib/l10n/app_ml.arb +++ b/packages/smooth_app/lib/l10n/app_ml.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_mn.arb b/packages/smooth_app/lib/l10n/app_mn.arb index 454d085c485..6bd35d2f4c1 100644 --- a/packages/smooth_app/lib/l10n/app_mn.arb +++ b/packages/smooth_app/lib/l10n/app_mn.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_mr.arb b/packages/smooth_app/lib/l10n/app_mr.arb index 4bd94a3c176..1c505b73a58 100644 --- a/packages/smooth_app/lib/l10n/app_mr.arb +++ b/packages/smooth_app/lib/l10n/app_mr.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_ms.arb b/packages/smooth_app/lib/l10n/app_ms.arb index 3e7933f2905..afd7fa546b5 100644 --- a/packages/smooth_app/lib/l10n/app_ms.arb +++ b/packages/smooth_app/lib/l10n/app_ms.arb @@ -861,7 +861,7 @@ "connect_with_us": "Berhubunglah dengan kami", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "SOALAN-SOALAN LAZIM", diff --git a/packages/smooth_app/lib/l10n/app_mt.arb b/packages/smooth_app/lib/l10n/app_mt.arb index 454d085c485..6bd35d2f4c1 100644 --- a/packages/smooth_app/lib/l10n/app_mt.arb +++ b/packages/smooth_app/lib/l10n/app_mt.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_my.arb b/packages/smooth_app/lib/l10n/app_my.arb index 44f597fcf5c..a22edc74512 100644 --- a/packages/smooth_app/lib/l10n/app_my.arb +++ b/packages/smooth_app/lib/l10n/app_my.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_nb.arb b/packages/smooth_app/lib/l10n/app_nb.arb index 5951356c9ff..4c3860ae582 100644 --- a/packages/smooth_app/lib/l10n/app_nb.arb +++ b/packages/smooth_app/lib/l10n/app_nb.arb @@ -861,7 +861,7 @@ "connect_with_us": "Kontakt oss", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blogg", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_ne.arb b/packages/smooth_app/lib/l10n/app_ne.arb index 94853c73047..faf5db04f7a 100644 --- a/packages/smooth_app/lib/l10n/app_ne.arb +++ b/packages/smooth_app/lib/l10n/app_ne.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_nl.arb b/packages/smooth_app/lib/l10n/app_nl.arb index 55e7b28fdc0..bb28b9de261 100644 --- a/packages/smooth_app/lib/l10n/app_nl.arb +++ b/packages/smooth_app/lib/l10n/app_nl.arb @@ -861,7 +861,7 @@ "connect_with_us": "Contacteer ons", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter @", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "Veelgestelde vragen (FAQ)", diff --git a/packages/smooth_app/lib/l10n/app_nn.arb b/packages/smooth_app/lib/l10n/app_nn.arb index a446cc5d2bd..6df4239f067 100644 --- a/packages/smooth_app/lib/l10n/app_nn.arb +++ b/packages/smooth_app/lib/l10n/app_nn.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_no.arb b/packages/smooth_app/lib/l10n/app_no.arb index a446cc5d2bd..6df4239f067 100644 --- a/packages/smooth_app/lib/l10n/app_no.arb +++ b/packages/smooth_app/lib/l10n/app_no.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_nr.arb b/packages/smooth_app/lib/l10n/app_nr.arb index 454d085c485..6bd35d2f4c1 100644 --- a/packages/smooth_app/lib/l10n/app_nr.arb +++ b/packages/smooth_app/lib/l10n/app_nr.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_oc.arb b/packages/smooth_app/lib/l10n/app_oc.arb index 4c48b0e397e..dc5dd68444b 100644 --- a/packages/smooth_app/lib/l10n/app_oc.arb +++ b/packages/smooth_app/lib/l10n/app_oc.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_or.arb b/packages/smooth_app/lib/l10n/app_or.arb index 2ca970bc283..a1b8d6099f2 100644 --- a/packages/smooth_app/lib/l10n/app_or.arb +++ b/packages/smooth_app/lib/l10n/app_or.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_pa.arb b/packages/smooth_app/lib/l10n/app_pa.arb index 25f26cc4401..766d2f968d0 100644 --- a/packages/smooth_app/lib/l10n/app_pa.arb +++ b/packages/smooth_app/lib/l10n/app_pa.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_pl.arb b/packages/smooth_app/lib/l10n/app_pl.arb index 9f132d26ad0..b60b624a1d8 100644 --- a/packages/smooth_app/lib/l10n/app_pl.arb +++ b/packages/smooth_app/lib/l10n/app_pl.arb @@ -861,7 +861,7 @@ "connect_with_us": "Połącz się z nami", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "Najczęściej zadawane pytania (FAQ)", diff --git a/packages/smooth_app/lib/l10n/app_pt.arb b/packages/smooth_app/lib/l10n/app_pt.arb index f0c81aeff7c..2fb5f6ac5de 100644 --- a/packages/smooth_app/lib/l10n/app_pt.arb +++ b/packages/smooth_app/lib/l10n/app_pt.arb @@ -861,7 +861,7 @@ "connect_with_us": "Conecte-se conosco", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blogue", "faq": "Perguntas frequentes (FAQ)", diff --git a/packages/smooth_app/lib/l10n/app_qu.arb b/packages/smooth_app/lib/l10n/app_qu.arb index 454d085c485..6bd35d2f4c1 100644 --- a/packages/smooth_app/lib/l10n/app_qu.arb +++ b/packages/smooth_app/lib/l10n/app_qu.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_rm.arb b/packages/smooth_app/lib/l10n/app_rm.arb index 454d085c485..6bd35d2f4c1 100644 --- a/packages/smooth_app/lib/l10n/app_rm.arb +++ b/packages/smooth_app/lib/l10n/app_rm.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_ro.arb b/packages/smooth_app/lib/l10n/app_ro.arb index 0d2d72b4bf5..4cb6c02928e 100644 --- a/packages/smooth_app/lib/l10n/app_ro.arb +++ b/packages/smooth_app/lib/l10n/app_ro.arb @@ -144,8 +144,8 @@ "@user_management": {}, "sign_in_text": "Conectați-vă la contul Open Food Facts pentru a vă salva contribuțiile", "incorrect_credentials": "Numele de utilizator sau parola incorectă.", - "password_lost_incorrect_credentials": "This email or username doesn't exist. Please check your credentials.", - "password_lost_server_unavailable": "We are currently experiencing slowdowns on our servers and we apologise for it. Please try again later.", + "password_lost_incorrect_credentials": "Acest e-mail sau nume de utilizator nu există. Vă rugăm să vă verificați acreditările.", + "password_lost_server_unavailable": "În prezent, întâmpinăm încetiniri pe serverele noastre și ne cerem scuze pentru asta. Vă rugăm să încercați din nou mai târziu.", "login": "Nume de utilizator", "@login": { "description": "Text field hint: unified name for either username or e-mail address" @@ -262,7 +262,7 @@ "sign_up_page_user_name_already_used": "Numele de utilizator există deja, vă rugăm să alegeți un alt nume de utilizator.", "sign_up_page_email_already_exists": "există deja, conectați-vă la cont sau încercați cu un alt e-mail.", "sign_up_page_provide_valid_email": "Vă rugăm să furnizați o adresă de e-mail validă.", - "sign_up_page_server_busy": "We are deeply sorry, we have some technical difficulties to create your account. Please try again later.", + "sign_up_page_server_busy": "Ne pare rău, avem unele dificultăți tehnice pentru a vă crea contul. Vă rugăm să încercați din nou mai târziu.", "@Settings": {}, "settingsTitle": "Configurări", "@settingsTitle": { @@ -459,7 +459,7 @@ "@filter": { "description": "A button that opens a menu where you can filter within categories. Juices => Apple juices/Orange juices" }, - "scan": "Products from the Scan screen", + "scan": "Produse din ecranul de scanare", "@scan": { "description": "Page title: List type: Products in the scan session" }, @@ -785,7 +785,7 @@ "@Lists": {}, "no_prodcut_in_list": "Nu există niciun produs în această listă", "no_product_in_section": "Nu există niciun produs în această secțiune", - "recently_seen_products": "All viewed products", + "recently_seen_products": "Toate produsele vizualizate", "clear": "Ștergeți", "@clear": { "description": "Clears a product list (short label)" @@ -861,7 +861,7 @@ "connect_with_us": "Conectați-vă cu noi", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "Întrebări frecvente", diff --git a/packages/smooth_app/lib/l10n/app_ru.arb b/packages/smooth_app/lib/l10n/app_ru.arb index 103cf358864..84c48a67424 100644 --- a/packages/smooth_app/lib/l10n/app_ru.arb +++ b/packages/smooth_app/lib/l10n/app_ru.arb @@ -861,7 +861,7 @@ "connect_with_us": "Мы в соцсетях", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Блог", "faq": "Часто задаваемые вопросы", diff --git a/packages/smooth_app/lib/l10n/app_sa.arb b/packages/smooth_app/lib/l10n/app_sa.arb index 454d085c485..6bd35d2f4c1 100644 --- a/packages/smooth_app/lib/l10n/app_sa.arb +++ b/packages/smooth_app/lib/l10n/app_sa.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_sc.arb b/packages/smooth_app/lib/l10n/app_sc.arb index 454d085c485..6bd35d2f4c1 100644 --- a/packages/smooth_app/lib/l10n/app_sc.arb +++ b/packages/smooth_app/lib/l10n/app_sc.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_sd.arb b/packages/smooth_app/lib/l10n/app_sd.arb index 454d085c485..6bd35d2f4c1 100644 --- a/packages/smooth_app/lib/l10n/app_sd.arb +++ b/packages/smooth_app/lib/l10n/app_sd.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_sg.arb b/packages/smooth_app/lib/l10n/app_sg.arb index 454d085c485..6bd35d2f4c1 100644 --- a/packages/smooth_app/lib/l10n/app_sg.arb +++ b/packages/smooth_app/lib/l10n/app_sg.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_si.arb b/packages/smooth_app/lib/l10n/app_si.arb index abebce6663c..ce708f03ccc 100644 --- a/packages/smooth_app/lib/l10n/app_si.arb +++ b/packages/smooth_app/lib/l10n/app_si.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_sk.arb b/packages/smooth_app/lib/l10n/app_sk.arb index 7ca4728befb..aaf12884327 100644 --- a/packages/smooth_app/lib/l10n/app_sk.arb +++ b/packages/smooth_app/lib/l10n/app_sk.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_sl.arb b/packages/smooth_app/lib/l10n/app_sl.arb index 779ea6b1f7b..0c6e5283565 100644 --- a/packages/smooth_app/lib/l10n/app_sl.arb +++ b/packages/smooth_app/lib/l10n/app_sl.arb @@ -861,7 +861,7 @@ "connect_with_us": "Povežite se z nami", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "Pogosta vprašanja", diff --git a/packages/smooth_app/lib/l10n/app_sn.arb b/packages/smooth_app/lib/l10n/app_sn.arb index 454d085c485..6bd35d2f4c1 100644 --- a/packages/smooth_app/lib/l10n/app_sn.arb +++ b/packages/smooth_app/lib/l10n/app_sn.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_so.arb b/packages/smooth_app/lib/l10n/app_so.arb index 454d085c485..6bd35d2f4c1 100644 --- a/packages/smooth_app/lib/l10n/app_so.arb +++ b/packages/smooth_app/lib/l10n/app_so.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_sq.arb b/packages/smooth_app/lib/l10n/app_sq.arb index 507f2f5e29e..b39251761ae 100644 --- a/packages/smooth_app/lib/l10n/app_sq.arb +++ b/packages/smooth_app/lib/l10n/app_sq.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_sr.arb b/packages/smooth_app/lib/l10n/app_sr.arb index 069fec289a8..2faacd7a074 100644 --- a/packages/smooth_app/lib/l10n/app_sr.arb +++ b/packages/smooth_app/lib/l10n/app_sr.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_ss.arb b/packages/smooth_app/lib/l10n/app_ss.arb index 454d085c485..6bd35d2f4c1 100644 --- a/packages/smooth_app/lib/l10n/app_ss.arb +++ b/packages/smooth_app/lib/l10n/app_ss.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_st.arb b/packages/smooth_app/lib/l10n/app_st.arb index 454d085c485..6bd35d2f4c1 100644 --- a/packages/smooth_app/lib/l10n/app_st.arb +++ b/packages/smooth_app/lib/l10n/app_st.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_sv.arb b/packages/smooth_app/lib/l10n/app_sv.arb index bbe421c6472..329e4ec33d6 100644 --- a/packages/smooth_app/lib/l10n/app_sv.arb +++ b/packages/smooth_app/lib/l10n/app_sv.arb @@ -861,7 +861,7 @@ "connect_with_us": "Kontakta oss", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blogg", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_sw.arb b/packages/smooth_app/lib/l10n/app_sw.arb index 1aaa9f106f3..1a7fd851c50 100644 --- a/packages/smooth_app/lib/l10n/app_sw.arb +++ b/packages/smooth_app/lib/l10n/app_sw.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_ta.arb b/packages/smooth_app/lib/l10n/app_ta.arb index f1a784ec141..f53a855eeb0 100644 --- a/packages/smooth_app/lib/l10n/app_ta.arb +++ b/packages/smooth_app/lib/l10n/app_ta.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_te.arb b/packages/smooth_app/lib/l10n/app_te.arb index d0685db02a1..ecd30ee8568 100644 --- a/packages/smooth_app/lib/l10n/app_te.arb +++ b/packages/smooth_app/lib/l10n/app_te.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_tg.arb b/packages/smooth_app/lib/l10n/app_tg.arb index 454d085c485..6bd35d2f4c1 100644 --- a/packages/smooth_app/lib/l10n/app_tg.arb +++ b/packages/smooth_app/lib/l10n/app_tg.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_th.arb b/packages/smooth_app/lib/l10n/app_th.arb index 27df8cce1dd..4b0e9bf8131 100644 --- a/packages/smooth_app/lib/l10n/app_th.arb +++ b/packages/smooth_app/lib/l10n/app_th.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_ti.arb b/packages/smooth_app/lib/l10n/app_ti.arb index 4098a095206..17363f3ca2c 100644 --- a/packages/smooth_app/lib/l10n/app_ti.arb +++ b/packages/smooth_app/lib/l10n/app_ti.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_tl.arb b/packages/smooth_app/lib/l10n/app_tl.arb index cbd25021fcd..5f2414d6acc 100644 --- a/packages/smooth_app/lib/l10n/app_tl.arb +++ b/packages/smooth_app/lib/l10n/app_tl.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_tn.arb b/packages/smooth_app/lib/l10n/app_tn.arb index 54b0c8b0455..c5424f100da 100644 --- a/packages/smooth_app/lib/l10n/app_tn.arb +++ b/packages/smooth_app/lib/l10n/app_tn.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_tr.arb b/packages/smooth_app/lib/l10n/app_tr.arb index f94f130cdce..c729348a965 100644 --- a/packages/smooth_app/lib/l10n/app_tr.arb +++ b/packages/smooth_app/lib/l10n/app_tr.arb @@ -144,8 +144,8 @@ "@user_management": {}, "sign_in_text": "Sign in to your Open Food Facts account to save your contributions", "incorrect_credentials": "Hatalı kullanıcı adı veya parola.", - "password_lost_incorrect_credentials": "This email or username doesn't exist. Please check your credentials.", - "password_lost_server_unavailable": "We are currently experiencing slowdowns on our servers and we apologise for it. Please try again later.", + "password_lost_incorrect_credentials": "Bu e-posta veya kullanıcı adı mevcut değil. Lütfen kimlik bilgilerinizi kontrol edin.", + "password_lost_server_unavailable": "Şu anda sunucularımızda yavaşlamalar yaşıyoruz ve bunun için özür dileriz. Lütfen daha sonra tekrar deneyiniz.", "login": "Kullanıcı adı", "@login": { "description": "Text field hint: unified name for either username or e-mail address" @@ -262,7 +262,7 @@ "sign_up_page_user_name_already_used": "Kullanıcı adı zaten var, lütfen başka bir kullanıcı adı seçin.", "sign_up_page_email_already_exists": "zaten var, hesaba giriş yapın veya başka bir e-posta ile deneyin.", "sign_up_page_provide_valid_email": "Lütfen geçerli bir e-posta adresi girin.", - "sign_up_page_server_busy": "We are deeply sorry, we have some technical difficulties to create your account. Please try again later.", + "sign_up_page_server_busy": "Çok üzgünüz, hesabınızı oluştururken bazı teknik sorunlar yaşıyoruz. Lütfen daha sonra tekrar deneyiniz.", "@Settings": {}, "settingsTitle": "Ayarlar", "@settingsTitle": { @@ -459,7 +459,7 @@ "@filter": { "description": "A button that opens a menu where you can filter within categories. Juices => Apple juices/Orange juices" }, - "scan": "Products from the Scan screen", + "scan": "Tarama ekranındaki ürünler", "@scan": { "description": "Page title: List type: Products in the scan session" }, @@ -785,7 +785,7 @@ "@Lists": {}, "no_prodcut_in_list": "Bu listede ürün yok", "no_product_in_section": "Bu bölümde ürün bulunmamaktadır", - "recently_seen_products": "All viewed products", + "recently_seen_products": "Görüntülenen tüm ürünler", "clear": "Temizle", "@clear": { "description": "Clears a product list (short label)" @@ -861,7 +861,7 @@ "connect_with_us": "Bizimle iletişime geçin", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "SSS", diff --git a/packages/smooth_app/lib/l10n/app_ts.arb b/packages/smooth_app/lib/l10n/app_ts.arb index 54b0c8b0455..c5424f100da 100644 --- a/packages/smooth_app/lib/l10n/app_ts.arb +++ b/packages/smooth_app/lib/l10n/app_ts.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_tt.arb b/packages/smooth_app/lib/l10n/app_tt.arb index 89f5a2df953..a12aa1cb6a0 100644 --- a/packages/smooth_app/lib/l10n/app_tt.arb +++ b/packages/smooth_app/lib/l10n/app_tt.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_tw.arb b/packages/smooth_app/lib/l10n/app_tw.arb index 454d085c485..6bd35d2f4c1 100644 --- a/packages/smooth_app/lib/l10n/app_tw.arb +++ b/packages/smooth_app/lib/l10n/app_tw.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_ty.arb b/packages/smooth_app/lib/l10n/app_ty.arb index 454d085c485..6bd35d2f4c1 100644 --- a/packages/smooth_app/lib/l10n/app_ty.arb +++ b/packages/smooth_app/lib/l10n/app_ty.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_ug.arb b/packages/smooth_app/lib/l10n/app_ug.arb index 1a2068be9d2..8a23c265cd6 100644 --- a/packages/smooth_app/lib/l10n/app_ug.arb +++ b/packages/smooth_app/lib/l10n/app_ug.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_uk.arb b/packages/smooth_app/lib/l10n/app_uk.arb index db6f05b754b..c6569ae549c 100644 --- a/packages/smooth_app/lib/l10n/app_uk.arb +++ b/packages/smooth_app/lib/l10n/app_uk.arb @@ -861,7 +861,7 @@ "connect_with_us": "Зв'яжіться з нами", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Блог", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_ur.arb b/packages/smooth_app/lib/l10n/app_ur.arb index 0ebdeb2f823..df35697c420 100644 --- a/packages/smooth_app/lib/l10n/app_ur.arb +++ b/packages/smooth_app/lib/l10n/app_ur.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_uz.arb b/packages/smooth_app/lib/l10n/app_uz.arb index 1bc098e9ed0..dde4ee7cc30 100644 --- a/packages/smooth_app/lib/l10n/app_uz.arb +++ b/packages/smooth_app/lib/l10n/app_uz.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_ve.arb b/packages/smooth_app/lib/l10n/app_ve.arb index 54b0c8b0455..c5424f100da 100644 --- a/packages/smooth_app/lib/l10n/app_ve.arb +++ b/packages/smooth_app/lib/l10n/app_ve.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_vi.arb b/packages/smooth_app/lib/l10n/app_vi.arb index 041f2e6b0d6..1db8778aa1d 100644 --- a/packages/smooth_app/lib/l10n/app_vi.arb +++ b/packages/smooth_app/lib/l10n/app_vi.arb @@ -861,7 +861,7 @@ "connect_with_us": "Kết nối với chúng tôi", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_wa.arb b/packages/smooth_app/lib/l10n/app_wa.arb index 454d085c485..6bd35d2f4c1 100644 --- a/packages/smooth_app/lib/l10n/app_wa.arb +++ b/packages/smooth_app/lib/l10n/app_wa.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_wo.arb b/packages/smooth_app/lib/l10n/app_wo.arb index 54b0c8b0455..c5424f100da 100644 --- a/packages/smooth_app/lib/l10n/app_wo.arb +++ b/packages/smooth_app/lib/l10n/app_wo.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_xh.arb b/packages/smooth_app/lib/l10n/app_xh.arb index 454d085c485..6bd35d2f4c1 100644 --- a/packages/smooth_app/lib/l10n/app_xh.arb +++ b/packages/smooth_app/lib/l10n/app_xh.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_yi.arb b/packages/smooth_app/lib/l10n/app_yi.arb index 454d085c485..6bd35d2f4c1 100644 --- a/packages/smooth_app/lib/l10n/app_yi.arb +++ b/packages/smooth_app/lib/l10n/app_yi.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_yo.arb b/packages/smooth_app/lib/l10n/app_yo.arb index 687e56a1035..ae79061e4f3 100644 --- a/packages/smooth_app/lib/l10n/app_yo.arb +++ b/packages/smooth_app/lib/l10n/app_yo.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_zh.arb b/packages/smooth_app/lib/l10n/app_zh.arb index 1ad95501c3e..15a40855864 100644 --- a/packages/smooth_app/lib/l10n/app_zh.arb +++ b/packages/smooth_app/lib/l10n/app_zh.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_zu.arb b/packages/smooth_app/lib/l10n/app_zu.arb index 3346ff9350e..4094ccbe687 100644 --- a/packages/smooth_app/lib/l10n/app_zu.arb +++ b/packages/smooth_app/lib/l10n/app_zu.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "Twitter", + "twitter": "X (formerly Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", From ff10b44c70ee029d6229c3008bd4495c0a839484 Mon Sep 17 00:00:00 2001 From: Pierre Slamich Date: Wed, 16 Aug 2023 10:25:49 +0200 Subject: [PATCH 4/6] feat: translation updates (#4548) * New translations app_en.arb (Spanish) * New translations app_en.arb (German) * New translations app_en.arb (Basque) * New translations app_en.arb (Italian) * New translations app_en.arb (Lithuanian) * New translations app_en.arb (Turkish) * New translations app_en.arb (Ukrainian) * New translations app_en.arb (Portuguese, Brazilian) * New translations app_en.arb (Danish) * New translations app_en.arb (Swedish) * New translations app_en.arb (Indonesian) * New translations app_en.arb (Arabic) * New translations app_en.arb (Japanese) * Apply suggestions from code review --- 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_eu.arb | 2 +- packages/smooth_app/lib/l10n/app_id.arb | 2 +- packages/smooth_app/lib/l10n/app_it.arb | 2 +- packages/smooth_app/lib/l10n/app_ja.arb | 2 +- packages/smooth_app/lib/l10n/app_lt.arb | 2 +- packages/smooth_app/lib/l10n/app_pt.arb | 2 +- packages/smooth_app/lib/l10n/app_sv.arb | 2 +- packages/smooth_app/lib/l10n/app_tr.arb | 2 +- packages/smooth_app/lib/l10n/app_uk.arb | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/packages/smooth_app/lib/l10n/app_da.arb b/packages/smooth_app/lib/l10n/app_da.arb index 71cb71b33bc..226d2170639 100644 --- a/packages/smooth_app/lib/l10n/app_da.arb +++ b/packages/smooth_app/lib/l10n/app_da.arb @@ -861,7 +861,7 @@ "connect_with_us": "Kom i forbindelse med os", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "X (formerly Twitter)", + "twitter": "X (tidligere Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_de.arb b/packages/smooth_app/lib/l10n/app_de.arb index 5171d237b7c..69cebf0abb5 100644 --- a/packages/smooth_app/lib/l10n/app_de.arb +++ b/packages/smooth_app/lib/l10n/app_de.arb @@ -861,7 +861,7 @@ "connect_with_us": "Mit uns in Verbindung treten", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "X (formerly Twitter)", + "twitter": "X (ehemals Twitter)", "twitter_link": "https://twitter.com/openfoodfacts", "blog": "Blog", "faq": "Häufig gestellte Fragen", diff --git a/packages/smooth_app/lib/l10n/app_es.arb b/packages/smooth_app/lib/l10n/app_es.arb index 83558736e7a..18180b30347 100644 --- a/packages/smooth_app/lib/l10n/app_es.arb +++ b/packages/smooth_app/lib/l10n/app_es.arb @@ -861,7 +861,7 @@ "connect_with_us": "Conecta con nosotros", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "X (formerly Twitter)", + "twitter": "X (anteriormente Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "Preguntas frecuentes", diff --git a/packages/smooth_app/lib/l10n/app_eu.arb b/packages/smooth_app/lib/l10n/app_eu.arb index 8fe3b856449..2694da9557c 100644 --- a/packages/smooth_app/lib/l10n/app_eu.arb +++ b/packages/smooth_app/lib/l10n/app_eu.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connect with us", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "X (formerly Twitter)", + "twitter": "X (lehen Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Bloga", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_id.arb b/packages/smooth_app/lib/l10n/app_id.arb index 9ddf36e7804..7abbc4eb93c 100644 --- a/packages/smooth_app/lib/l10n/app_id.arb +++ b/packages/smooth_app/lib/l10n/app_id.arb @@ -861,7 +861,7 @@ "connect_with_us": "Terhubung dengan kami", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "X (formerly Twitter)", + "twitter": "X (sebelumnya Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_it.arb b/packages/smooth_app/lib/l10n/app_it.arb index 3bd19e798c9..3d8988c2946 100644 --- a/packages/smooth_app/lib/l10n/app_it.arb +++ b/packages/smooth_app/lib/l10n/app_it.arb @@ -861,7 +861,7 @@ "connect_with_us": "Connettiti con noi", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "X (formerly Twitter)", + "twitter": "X (ex Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_ja.arb b/packages/smooth_app/lib/l10n/app_ja.arb index bf2df2eeb2f..4ee50d76de2 100644 --- a/packages/smooth_app/lib/l10n/app_ja.arb +++ b/packages/smooth_app/lib/l10n/app_ja.arb @@ -861,7 +861,7 @@ "connect_with_us": "私たちとつながる", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "X (formerly Twitter)", + "twitter": "X (旧 Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "ブログ", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_lt.arb b/packages/smooth_app/lib/l10n/app_lt.arb index 293fd8f5e8c..17c44d68a8b 100644 --- a/packages/smooth_app/lib/l10n/app_lt.arb +++ b/packages/smooth_app/lib/l10n/app_lt.arb @@ -861,7 +861,7 @@ "connect_with_us": "Susisiekite su mumis", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "X (formerly Twitter)", + "twitter": "X (anksčiau „Twitter“)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blogas", "faq": "DUK", diff --git a/packages/smooth_app/lib/l10n/app_pt.arb b/packages/smooth_app/lib/l10n/app_pt.arb index 2fb5f6ac5de..7180546eac0 100644 --- a/packages/smooth_app/lib/l10n/app_pt.arb +++ b/packages/smooth_app/lib/l10n/app_pt.arb @@ -861,7 +861,7 @@ "connect_with_us": "Conecte-se conosco", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "X (formerly Twitter)", + "twitter": "X (antigo Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blogue", "faq": "Perguntas frequentes (FAQ)", diff --git a/packages/smooth_app/lib/l10n/app_sv.arb b/packages/smooth_app/lib/l10n/app_sv.arb index 329e4ec33d6..ec4297fb31e 100644 --- a/packages/smooth_app/lib/l10n/app_sv.arb +++ b/packages/smooth_app/lib/l10n/app_sv.arb @@ -861,7 +861,7 @@ "connect_with_us": "Kontakta oss", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "X (formerly Twitter)", + "twitter": "X (tidigare Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blogg", "faq": "FAQ", diff --git a/packages/smooth_app/lib/l10n/app_tr.arb b/packages/smooth_app/lib/l10n/app_tr.arb index c729348a965..d36eae7664f 100644 --- a/packages/smooth_app/lib/l10n/app_tr.arb +++ b/packages/smooth_app/lib/l10n/app_tr.arb @@ -861,7 +861,7 @@ "connect_with_us": "Bizimle iletişime geçin", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "X (formerly Twitter)", + "twitter": "X (eski adıyla Twitter)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Blog", "faq": "SSS", diff --git a/packages/smooth_app/lib/l10n/app_uk.arb b/packages/smooth_app/lib/l10n/app_uk.arb index c6569ae549c..82370728bd4 100644 --- a/packages/smooth_app/lib/l10n/app_uk.arb +++ b/packages/smooth_app/lib/l10n/app_uk.arb @@ -861,7 +861,7 @@ "connect_with_us": "Зв'яжіться з нами", "instagram": "Instagram", "instagram_link": "https://instagram.com/open.food.facts", - "twitter": "X (formerly Twitter)", + "twitter": "X (раніше Твіттер)", "twitter_link": "https://www.twitter.com/openfoodfacts", "blog": "Блог", "faq": "FAQ", From f79bae611fece28e0b2da25f6340b4063fa5fda6 Mon Sep 17 00:00:00 2001 From: monsieurtanuki Date: Wed, 16 Aug 2023 12:01:25 +0200 Subject: [PATCH 5/6] feat: 4423 - specific "Not connected to internet" displayed error (#4455) * feat: 4423 - specific "Not connected to internet" displayed error Impacted files: * `barcode_product_query.dart`: removed useless `try` as already `catch`'ed * `continuous_scan_model.dart`: removed the `codeInvalid` case that could never happen * `fetched_product.dart`: refactored with explicit constructors and additional exception and connectivity fields; removed the `codeInvalid` case that could never happen * `new_product_page.dart`: minor refactoring * `product_dialog_helper.dart`: removed the `codeInvalid` case that could never happen; minor refactoting * `product_list_item_simple.dart`: removed the `codeInvalid` case that could never happen * `product_loader_page.dart`: removed useless `try` as already `catch`'ed * `product_refresher.dart`: added a specific "You're not connected to the internet" error message; refactored using more `FetchedProduct`; removed useless method * `pubspec.lock`: wtf * `pubspec.yaml`: added package `connectivity_plus` * `question_card.dart`: refactored using `FetchedProduct` * feat: 4423 - fixed pubspec.yaml * feat: 4423 - new "server down" message after a ping attempt Impacted files: * `fetched_product.dart`: added field `failedPingedHost` where we store the host that we couldn't ping * `generated_plugin_registrant.cc`: wtf * `generated_plugins.cmake`: wtf * `GeneratedPluginRegistrant.swift`: wtf * `main.dart`: registered `DartPingIOS` * `product_refresher.dart`: now trying to ping the server if exception and connection * `pubspec.lock`: wtf * `pubspec.yaml: added packages `dart_ping` and `dart_ping_ios` * feat: 4423 - stupid lint check part 1 * feat: 4423 - stupid lint check part 2 * feat: 4423 - stupid lint check part 3 * feat: 4423 - stupid lint check part 5 * feat: 4423 - localizations Impacted files: * `app_en.arb`: 4 new labels when we couldn't retrieve a product (not found, no internet, server down, server error) * `product_refresher.dart`: used the new labels --- .../data_models/continuous_scan_model.dart | 6 -- .../lib/data_models/fetched_product.dart | 51 ++++++++-- packages/smooth_app/lib/l10n/app_en.arb | 26 +++++ packages/smooth_app/lib/main.dart | 2 + .../lib/pages/hunger_games/question_card.dart | 13 +-- .../product/common/product_dialog_helper.dart | 7 +- .../common/product_list_item_simple.dart | 2 - .../product/common/product_refresher.dart | 97 +++++++++++-------- .../lib/pages/product/new_product_page.dart | 2 +- .../pages/product/product_loader_page.dart | 24 +++-- .../lib/query/barcode_product_query.dart | 47 +++++---- .../Flutter/GeneratedPluginRegistrant.swift | 2 + packages/smooth_app/pubspec.lock | 56 +++++++++++ packages/smooth_app/pubspec.yaml | 4 +- .../flutter/generated_plugin_registrant.cc | 3 + .../windows/flutter/generated_plugins.cmake | 1 + 16 files changed, 240 insertions(+), 103 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 144b2b17e37..dfc025f20cc 100644 --- a/packages/smooth_app/lib/data_models/continuous_scan_model.dart +++ b/packages/smooth_app/lib/data_models/continuous_scan_model.dart @@ -224,9 +224,6 @@ class ContinuousScanModel with ChangeNotifier { case FetchedProductStatus.internetError: _setBarcodeState(barcode, ScannedProductState.ERROR_INTERNET); return; - case FetchedProductStatus.codeInvalid: - _setBarcodeState(barcode, ScannedProductState.ERROR_INVALID_CODE); - return; case FetchedProductStatus.userCancelled: // we do nothing return; @@ -247,9 +244,6 @@ class ContinuousScanModel with ChangeNotifier { case FetchedProductStatus.internetError: _setBarcodeState(barcode, ScannedProductState.ERROR_INTERNET); return; - case FetchedProductStatus.codeInvalid: - _setBarcodeState(barcode, ScannedProductState.ERROR_INVALID_CODE); - return; case FetchedProductStatus.userCancelled: // we do nothing return; diff --git a/packages/smooth_app/lib/data_models/fetched_product.dart b/packages/smooth_app/lib/data_models/fetched_product.dart index e62047d35c0..53179fcd705 100644 --- a/packages/smooth_app/lib/data_models/fetched_product.dart +++ b/packages/smooth_app/lib/data_models/fetched_product.dart @@ -1,28 +1,63 @@ +import 'package:connectivity_plus/connectivity_plus.dart'; import 'package:openfoodfacts/openfoodfacts.dart'; /// Status of a "fetch [Product]" operation enum FetchedProductStatus { + // found locally or from internet ok, internetNotFound, internetError, userCancelled, - codeInvalid, // TODO(monsieurtanuki): time-out } /// A [Product] that we tried to fetch, but was it successful?.. class FetchedProduct { + const FetchedProduct._({ + required this.status, + this.product, + this.connectivityResult, + this.exceptionString, + this.failedPingedHost, + }); + // The reason behind the "ignore": I want to force "product" to be not null - FetchedProduct(final Product product) + const FetchedProduct.found(final Product product) // ignore: prefer_initializing_formals - : product = product, - status = FetchedProductStatus.ok; + : this._( + status: FetchedProductStatus.ok, + product: product, + ); + + /// The internet Product search said it couldn't find the product. + const FetchedProduct.internetNotFound() + : this._(status: FetchedProductStatus.internetNotFound); + + /// The user cancelled the operation. + const FetchedProduct.userCancelled() + : this._(status: FetchedProductStatus.userCancelled); - /// When the "fetch product" operation didn't go well (no status "ok" here) - FetchedProduct.error(this.status) - : product = null, - assert(status != FetchedProductStatus.ok); + /// When the "fetch product" operation had an internet error. + const FetchedProduct.error({ + required final String exceptionString, + required final ConnectivityResult connectivityResult, + final String? failedPingedHost, + }) : this._( + status: FetchedProductStatus.internetError, + connectivityResult: connectivityResult, + exceptionString: exceptionString, + failedPingedHost: failedPingedHost, + ); final Product? product; final FetchedProductStatus status; + + /// When relevant, result of the connectivity check. + final ConnectivityResult? connectivityResult; + + /// When relevant, string of the exception. + final String? exceptionString; + + /// When relevant, host of the query that we couldn't even ping. + final String? failedPingedHost; } diff --git a/packages/smooth_app/lib/l10n/app_en.arb b/packages/smooth_app/lib/l10n/app_en.arb index 6bd35d2f4c1..f70cb06bd5a 100644 --- a/packages/smooth_app/lib/l10n/app_en.arb +++ b/packages/smooth_app/lib/l10n/app_en.arb @@ -2272,6 +2272,32 @@ "@contrast_low": { "description": "Low Contrast Text Color" }, + "product_refresher_internet_not_found": "Product not found!", + "@product_refresher_internet_not_found": { + "description": "When refreshing a product that does not exist on the server. Label is the body of a dialog." + }, + "product_refresher_internet_not_connected": "You are not connected to internet!", + "@product_refresher_internet_not_connected": { + "description": "When refreshing a product and you're not even connected to internet. Label is the body of a dialog." + }, + "product_refresher_internet_no_ping": "Server down ({host})", + "@product_refresher_internet_no_ping": { + "description": "When refreshing a product and you cannot even ping the server. Label is the body of a dialog.", + "placeholders": { + "host": { + "type": "String?" + } + } + }, + "product_refresher_internet_error": "Server error ({exception})", + "@product_refresher_internet_error": { + "description": "When refreshing a product and the server returned an exception. Label is the body of a dialog.", + "placeholders": { + "exception": { + "type": "String?" + } + } + }, "product_loader_not_found_title": "Product not found!", "@product_loader_not_found_title": { "description": "When fetching a product opened via a link and it doesn't exist" diff --git a/packages/smooth_app/lib/main.dart b/packages/smooth_app/lib/main.dart index afbabe4b494..6b2a7f6861d 100644 --- a/packages/smooth_app/lib/main.dart +++ b/packages/smooth_app/lib/main.dart @@ -2,6 +2,7 @@ import 'dart:async'; import 'dart:io'; import 'package:app_store_shared/app_store_shared.dart'; +import 'package:dart_ping_ios/dart_ping_ios.dart'; import 'package:device_preview/device_preview.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; @@ -120,6 +121,7 @@ Future _init1() async { return false; } + DartPingIOS.register(); await SmoothServices().init(GlobalVars.appStore); await setupAppNetworkConfig(); await UserManagementProvider.mountCredentials(); diff --git a/packages/smooth_app/lib/pages/hunger_games/question_card.dart b/packages/smooth_app/lib/pages/hunger_games/question_card.dart index f0b2f8c665f..47d8f68045c 100755 --- a/packages/smooth_app/lib/pages/hunger_games/question_card.dart +++ b/packages/smooth_app/lib/pages/hunger_games/question_card.dart @@ -3,6 +3,7 @@ import 'package:openfoodfacts/openfoodfacts.dart'; import 'package:provider/provider.dart'; import 'package:shimmer/shimmer.dart'; import 'package:smooth_app/cards/product_cards/product_title_card.dart'; +import 'package:smooth_app/data_models/fetched_product.dart'; import 'package:smooth_app/database/dao_product.dart'; import 'package:smooth_app/database/local_database.dart'; import 'package:smooth_app/generic_lib/design_constants.dart'; @@ -24,22 +25,22 @@ class QuestionCard extends StatelessWidget { @override Widget build(BuildContext context) { - final Future productFuture = _getProduct( + final Future productFuture = _getProduct( question.barcode!, context.read(), ); final Size screenSize = MediaQuery.of(context).size; - return FutureBuilder( + return FutureBuilder( future: productFuture, builder: ( BuildContext context, - AsyncSnapshot snapshot, + AsyncSnapshot snapshot, ) { Product? product; if (snapshot.connectionState == ConnectionState.done) { - product = snapshot.data; + product = snapshot.data?.product; // TODO(monsieurtanuki): do something aggressive if product is null here and we don't have a fallback value - like an error widget } // fallback version @@ -131,13 +132,13 @@ class QuestionCard extends StatelessWidget { ); } - Future _getProduct( + Future _getProduct( final String barcode, final LocalDatabase localDatabase, ) async { final Product? result = await DaoProduct(localDatabase).get(barcode); if (result != null) { - return result; + return FetchedProduct.found(result); } return ProductRefresher().silentFetchAndRefresh( barcode: question.barcode!, diff --git a/packages/smooth_app/lib/pages/product/common/product_dialog_helper.dart b/packages/smooth_app/lib/pages/product/common/product_dialog_helper.dart index 807ea6db89a..5f79a58bf46 100644 --- a/packages/smooth_app/lib/pages/product/common/product_dialog_helper.dart +++ b/packages/smooth_app/lib/pages/product/common/product_dialog_helper.dart @@ -38,7 +38,7 @@ class ProductDialogHelper { Future openBestChoice() async { final Product? product = await DaoProduct(localDatabase).get(barcode); if (product != null) { - return FetchedProduct(product); + return FetchedProduct.found(product); } return openUniqueProductSearch(); } @@ -52,7 +52,7 @@ class ProductDialogHelper { isScanned: false, ).getFetchedProduct(), title: '${AppLocalizations.of(context).looking_for}: $barcode') ?? - FetchedProduct.error(FetchedProductStatus.userCancelled); + const FetchedProduct.userCancelled(); void _openProductNotFoundDialog() => showDialog( context: context, @@ -175,9 +175,6 @@ class ProductDialogHelper { case FetchedProductStatus.internetNotFound: _openProductNotFoundDialog(); return; - case FetchedProductStatus.codeInvalid: - _openErrorMessage(appLocalizations.barcode_invalid_error); - return; } } } diff --git a/packages/smooth_app/lib/pages/product/common/product_list_item_simple.dart b/packages/smooth_app/lib/pages/product/common/product_list_item_simple.dart index 1e2868dcbe7..9af2b120dee 100644 --- a/packages/smooth_app/lib/pages/product/common/product_list_item_simple.dart +++ b/packages/smooth_app/lib/pages/product/common/product_list_item_simple.dart @@ -100,8 +100,6 @@ class _ProductListItemSimpleState extends State { switch (_model.downloadingStatus) { case null: break; - case FetchedProductStatus.codeInvalid: - return appLocalizations.barcode_invalid_error; case FetchedProductStatus.internetNotFound: return appLocalizations.product_internet_error; default: 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 a9776104828..a2c7d7a5388 100644 --- a/packages/smooth_app/lib/pages/product/common/product_refresher.dart +++ b/packages/smooth_app/lib/pages/product/common/product_refresher.dart @@ -1,8 +1,11 @@ +import 'package:connectivity_plus/connectivity_plus.dart'; +import 'package:dart_ping/dart_ping.dart'; import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:flutter_svg/svg.dart'; import 'package:openfoodfacts/openfoodfacts.dart'; import 'package:provider/provider.dart'; +import 'package:smooth_app/data_models/fetched_product.dart'; import 'package:smooth_app/database/dao_product.dart'; import 'package:smooth_app/database/local_database.dart'; import 'package:smooth_app/generic_lib/dialogs/smooth_alert_dialog.dart'; @@ -93,14 +96,11 @@ class ProductRefresher { /// Fetches the product from the server and refreshes the local database. /// /// Silent version. - Future silentFetchAndRefresh({ + Future silentFetchAndRefresh({ required final String barcode, required final LocalDatabase localDatabase, - }) async { - final _MetaProductRefresher meta = - await _fetchAndRefresh(localDatabase, barcode); - return meta.product; - } + }) async => + _fetchAndRefresh(localDatabase, barcode); /// Fetches the products from the server and refreshes the local database. /// @@ -111,23 +111,6 @@ class ProductRefresher { }) async => _fetchAndRefreshList(localDatabase, barcodes); - /// Fetches the product from the server and refreshes the local database. - /// In the case of an error, it will be send throw an [Exception] - /// Silent version. - Future silentFetchAndRefreshWithException({ - required final String barcode, - required final LocalDatabase localDatabase, - }) async { - final _MetaProductRefresher meta = - await _fetchAndRefresh(localDatabase, barcode); - - if (meta.error != null) { - throw Exception(meta.error); - } - - return meta.product; - } - /// Fetches the product from the server and refreshes the local database. /// /// With a waiting dialog. @@ -139,18 +122,45 @@ class ProductRefresher { final LocalDatabase localDatabase = widget.context.read(); final AppLocalizations appLocalizations = AppLocalizations.of(widget.context); - final _MetaProductRefresher? fetchAndRefreshed = - await LoadingDialog.run<_MetaProductRefresher>( + final FetchedProduct? fetchAndRefreshed = + await LoadingDialog.run( future: _fetchAndRefresh(localDatabase, barcode), context: widget.context, title: appLocalizations.refreshing_product, ); if (fetchAndRefreshed == null) { + // the user probably cancelled return false; } if (fetchAndRefreshed.product == null) { if (widget.mounted) { - await LoadingDialog.error(context: widget.context); + String getTitle(final FetchedProduct fetchedProduct) { + switch (fetchAndRefreshed.status) { + case FetchedProductStatus.ok: + return 'Not supposed to happen...'; + case FetchedProductStatus.userCancelled: + return 'Not supposed to happen either...'; + case FetchedProductStatus.internetNotFound: + return appLocalizations.product_refresher_internet_not_found; + case FetchedProductStatus.internetError: + if (fetchAndRefreshed.connectivityResult == + ConnectivityResult.none) { + return appLocalizations + .product_refresher_internet_not_connected; + } + if (fetchAndRefreshed.failedPingedHost != null) { + return appLocalizations.product_refresher_internet_no_ping( + fetchAndRefreshed.failedPingedHost); + } + return appLocalizations.product_refresher_internet_no_ping( + fetchAndRefreshed.exceptionString); + } + } + + await LoadingDialog.error( + context: widget.context, + title: getTitle(fetchAndRefreshed), + ); } return false; } @@ -165,7 +175,7 @@ class ProductRefresher { return true; } - Future<_MetaProductRefresher> _fetchAndRefresh( + Future _fetchAndRefresh( final LocalDatabase localDatabase, final String barcode, ) async { @@ -177,12 +187,30 @@ class ProductRefresher { await DaoProduct(localDatabase).put(result.product!); localDatabase.upToDate.setLatestDownloadedProduct(result.product!); localDatabase.notifyListeners(); - return _MetaProductRefresher.product(result.product); + return FetchedProduct.found(result.product!); } - return const _MetaProductRefresher.error(null); + return const FetchedProduct.internetNotFound(); } catch (e) { Logs.e('Refresh from server error', ex: e); - return _MetaProductRefresher.error(e.toString()); + final ConnectivityResult connectivityResult = + await Connectivity().checkConnectivity(); + if (connectivityResult == ConnectivityResult.none) { + return FetchedProduct.error( + exceptionString: e.toString(), + connectivityResult: connectivityResult, + ); + } + // TODO(monsieurtanuki): make things cleaner with off-dart + final String host = + OpenFoodAPIConfiguration.globalQueryType == QueryType.PROD + ? OpenFoodAPIConfiguration.uriProdHost + : OpenFoodAPIConfiguration.uriTestHost; + final PingData result = await Ping(host, count: 1).stream.first; + return FetchedProduct.error( + exceptionString: e.toString(), + connectivityResult: connectivityResult, + failedPingedHost: result.error == null ? null : host, + ); } } @@ -212,12 +240,3 @@ class ProductRefresher { } } } - -class _MetaProductRefresher { - const _MetaProductRefresher.error(this.error) : product = null; - - const _MetaProductRefresher.product(this.product) : error = null; - - final String? error; - final Product? product; -} 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 8b6ab418b86..76376019ccb 100644 --- a/packages/smooth_app/lib/pages/product/new_product_page.dart +++ b/packages/smooth_app/lib/pages/product/new_product_page.dart @@ -173,7 +173,7 @@ class _ProductPageState extends State final LocalDatabase localDatabase = context.read(); final DaoProductList daoProductList = DaoProductList(localDatabase); return RefreshIndicator( - onRefresh: () => ProductRefresher().fetchAndRefresh( + onRefresh: () async => ProductRefresher().fetchAndRefresh( barcode: barcode, widget: this, ), diff --git a/packages/smooth_app/lib/pages/product/product_loader_page.dart b/packages/smooth_app/lib/pages/product/product_loader_page.dart index 3ba5bcb4f94..9b92473ffa3 100644 --- a/packages/smooth_app/lib/pages/product/product_loader_page.dart +++ b/packages/smooth_app/lib/pages/product/product_loader_page.dart @@ -3,6 +3,7 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:flutter_svg/svg.dart'; import 'package:openfoodfacts/openfoodfacts.dart'; import 'package:provider/provider.dart'; +import 'package:smooth_app/data_models/fetched_product.dart'; import 'package:smooth_app/database/local_database.dart'; import 'package:smooth_app/generic_lib/buttons/smooth_large_button_with_icon.dart'; import 'package:smooth_app/generic_lib/design_constants.dart'; @@ -42,28 +43,31 @@ class _ProductLoaderPageState extends State { _state = _ProductLoaderState.loading; }); - try { - final Product? product = - await ProductRefresher().silentFetchAndRefreshWithException( - barcode: widget.barcode, - localDatabase: context.read(), - ); + final FetchedProduct fetchedProduct = + await ProductRefresher().silentFetchAndRefresh( + barcode: widget.barcode, + localDatabase: context.read(), + ); - if (product != null && mounted) { + if (mounted) { + if (fetchedProduct.product != null) { navigator.pushReplacement( AppRoutes.PRODUCT( widget.barcode, heroTag: 'product_${widget.barcode}', ), - extra: product, + extra: fetchedProduct.product, ); - } else { + return; + } + if (fetchedProduct.status == FetchedProductStatus.internetNotFound) { setState(() { _state = _ProductLoaderState.productNotFound; }); + return; } - } catch (err) { setState(() { + // TODO(monsieurtanuki): put more details from FetchedProduct? _state = _ProductLoaderState.serverError; }); } diff --git a/packages/smooth_app/lib/query/barcode_product_query.dart b/packages/smooth_app/lib/query/barcode_product_query.dart index be709c650fc..8e23f7f1643 100644 --- a/packages/smooth_app/lib/query/barcode_product_query.dart +++ b/packages/smooth_app/lib/query/barcode_product_query.dart @@ -1,6 +1,5 @@ import 'dart:async'; -import 'package:openfoodfacts/openfoodfacts.dart'; import 'package:smooth_app/data_models/fetched_product.dart'; import 'package:smooth_app/database/dao_product.dart'; import 'package:smooth_app/helpers/analytics_helper.dart'; @@ -19,33 +18,31 @@ class BarcodeProductQuery { final bool isScanned; Future getFetchedProduct() async { - try { - ProductQuery.setUserAgentComment(isScanned ? 'scan' : 'search'); - final Product? product = await ProductRefresher().silentFetchAndRefresh( - barcode: barcode, - localDatabase: daoProduct.localDatabase, - ); - if (product != null) { - return FetchedProduct(product); - } - } catch (e) { - return FetchedProduct.error(FetchedProductStatus.internetError); - } finally { - ProductQuery.setUserAgentComment(''); + ProductQuery.setUserAgentComment(isScanned ? 'scan' : 'search'); + final FetchedProduct fetchedProduct = + await ProductRefresher().silentFetchAndRefresh( + barcode: barcode, + localDatabase: daoProduct.localDatabase, + ); + ProductQuery.setUserAgentComment(''); + if (fetchedProduct.product != null) { + return fetchedProduct; } - if (isScanned) { - AnalyticsHelper.trackEvent( - AnalyticsEvent.couldNotScanProduct, - barcode: barcode, - ); - } else { - AnalyticsHelper.trackEvent( - AnalyticsEvent.couldNotFindProduct, - barcode: barcode, - ); + if (fetchedProduct.status == FetchedProductStatus.internetNotFound) { + if (isScanned) { + AnalyticsHelper.trackEvent( + AnalyticsEvent.couldNotScanProduct, + barcode: barcode, + ); + } else { + AnalyticsHelper.trackEvent( + AnalyticsEvent.couldNotFindProduct, + barcode: barcode, + ); + } } - return FetchedProduct.error(FetchedProductStatus.internetNotFound); + return fetchedProduct; } } diff --git a/packages/smooth_app/macos/Flutter/GeneratedPluginRegistrant.swift b/packages/smooth_app/macos/Flutter/GeneratedPluginRegistrant.swift index e0b43cb8208..d5d5d38ba80 100644 --- a/packages/smooth_app/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/packages/smooth_app/macos/Flutter/GeneratedPluginRegistrant.swift @@ -6,6 +6,7 @@ import FlutterMacOS import Foundation import audioplayers_darwin +import connectivity_plus import device_info_plus import file_selector_macos import flutter_secure_storage_macos @@ -22,6 +23,7 @@ import url_launcher_macos func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { AudioplayersDarwinPlugin.register(with: registry.registrar(forPlugin: "AudioplayersDarwinPlugin")) + ConnectivityPlugin.register(with: registry.registrar(forPlugin: "ConnectivityPlugin")) DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin")) FileSelectorPlugin.register(with: registry.registrar(forPlugin: "FileSelectorPlugin")) FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin")) diff --git a/packages/smooth_app/pubspec.lock b/packages/smooth_app/pubspec.lock index 2b81067c60e..1e7ab1593b6 100644 --- a/packages/smooth_app/pubspec.lock +++ b/packages/smooth_app/pubspec.lock @@ -293,6 +293,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.17.1" + connectivity_plus: + dependency: "direct main" + description: + name: connectivity_plus + sha256: "77a180d6938f78ca7d2382d2240eb626c0f6a735d0bfdce227d8ffb80f95c48b" + url: "https://pub.dev" + source: hosted + version: "4.0.2" + connectivity_plus_platform_interface: + dependency: transitive + description: + name: connectivity_plus_platform_interface + sha256: cf1d1c28f4416f8c654d7dc3cd638ec586076255d407cef3ddbdaf178272a71a + url: "https://pub.dev" + source: hosted + version: "1.2.4" convert: dependency: transitive description: @@ -341,6 +357,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.5" + dart_ping: + dependency: "direct main" + description: + name: dart_ping + sha256: dd3a93d9b986565cb2fadd0c9277cf9880298634ccc9588e353e63c6f736a386 + url: "https://pub.dev" + source: hosted + version: "9.0.0" + dart_ping_ios: + dependency: "direct main" + description: + name: dart_ping_ios + sha256: ba60bcd1ef8f13d564e9490197fb32c34d38fd1c10a890143a52f5b71d82ea95 + url: "https://pub.dev" + source: hosted + version: "4.0.0" dart_style: dependency: transitive description: @@ -363,6 +395,14 @@ packages: relative: true source: path version: "0.0.0" + dbus: + dependency: transitive + description: + name: dbus + sha256: "6f07cba3f7b3448d42d015bfd3d53fe12e5b36da2423f23838efc1d5fb31a263" + url: "https://pub.dev" + source: hosted + version: "0.7.8" device_frame: dependency: transitive description: @@ -517,6 +557,14 @@ packages: url: "https://pub.dev" source: hosted version: "6.0.1" + flutter_icmp_ping: + dependency: transitive + description: + name: flutter_icmp_ping + sha256: a06c2255a857c8f9d1b0a68f546b113557e48e7a543f91e38bd66aeab296f3a6 + url: "https://pub.dev" + source: hosted + version: "3.1.2" flutter_image_compress: dependency: "direct main" description: @@ -1006,6 +1054,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.0" + nm: + dependency: transitive + description: + name: nm + sha256: "2c9aae4127bdc8993206464fcc063611e0e36e72018696cd9631023a31b24254" + url: "https://pub.dev" + source: hosted + version: "0.5.0" openfoodfacts: dependency: "direct main" description: diff --git a/packages/smooth_app/pubspec.yaml b/packages/smooth_app/pubspec.yaml index 86261ff9592..00241282789 100644 --- a/packages/smooth_app/pubspec.yaml +++ b/packages/smooth_app/pubspec.yaml @@ -70,6 +70,9 @@ dependencies: webview_flutter: 3.0.4 flutter_custom_tabs: ^1.0.4 flutter_image_compress: 2.0.4 + connectivity_plus: ^4.0.2 + dart_ping: 9.0.0 + dart_ping_ios: 4.0.0 # According to the build variant, only one "app store" implementation must be added when building a release # Call "flutter pub remove xxxx" to remove unused dependencies @@ -97,7 +100,6 @@ dependencies: path: ../scanner/zxing - openfoodfacts: 2.10.0 # openfoodfacts: # path: ../../../openfoodfacts-dart diff --git a/packages/smooth_app/windows/flutter/generated_plugin_registrant.cc b/packages/smooth_app/windows/flutter/generated_plugin_registrant.cc index b176efadf9d..a871a1bf3bd 100644 --- a/packages/smooth_app/windows/flutter/generated_plugin_registrant.cc +++ b/packages/smooth_app/windows/flutter/generated_plugin_registrant.cc @@ -7,6 +7,7 @@ #include "generated_plugin_registrant.h" #include +#include #include #include #include @@ -18,6 +19,8 @@ void RegisterPlugins(flutter::PluginRegistry* registry) { AudioplayersWindowsPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("AudioplayersWindowsPlugin")); + ConnectivityPlusWindowsPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("ConnectivityPlusWindowsPlugin")); FileSelectorWindowsRegisterWithRegistrar( registry->GetRegistrarForPlugin("FileSelectorWindows")); FlutterSecureStorageWindowsPluginRegisterWithRegistrar( diff --git a/packages/smooth_app/windows/flutter/generated_plugins.cmake b/packages/smooth_app/windows/flutter/generated_plugins.cmake index 01df5c70637..ff0af32c54e 100644 --- a/packages/smooth_app/windows/flutter/generated_plugins.cmake +++ b/packages/smooth_app/windows/flutter/generated_plugins.cmake @@ -4,6 +4,7 @@ list(APPEND FLUTTER_PLUGIN_LIST audioplayers_windows + connectivity_plus file_selector_windows flutter_secure_storage_windows permission_handler_windows From e265e75dbd0d8bfbf9fe440a24f3b916898929e5 Mon Sep 17 00:00:00 2001 From: Edouard Marquez Date: Wed, 16 Aug 2023 12:16:23 +0200 Subject: [PATCH 6/6] feat: Improvements for a11n on preferences (#4550) * Ensure all items in the preferences behave the same + a hint for screen readers * Regenerate goldens --- packages/smooth_app/lib/l10n/app_en.arb | 4 ++ .../preferences/user_preferences_connect.dart | 1 + .../user_preferences_contribute.dart | 3 + .../preferences/user_preferences_faq.dart | 6 ++ .../user_preferences_list_tile.dart | 58 ++++++++++++------ ...ferences_page_dialogs_Improving-amoled.png | Bin 8388 -> 8392 bytes ...references_page_dialogs_Improving-dark.png | Bin 7771 -> 7776 bytes ...eferences_page_dialogs_Improving-light.png | Bin 7927 -> 7932 bytes ...ge_dialogs_Software development-amoled.png | Bin 8165 -> 8170 bytes ...page_dialogs_Software development-dark.png | Bin 8190 -> 8195 bytes ...age_dialogs_Software development-light.png | Bin 8425 -> 8430 bytes ...ferences_page_dialogs_Translate-amoled.png | Bin 7843 -> 7849 bytes ...references_page_dialogs_Translate-dark.png | Bin 7261 -> 7267 bytes ...eferences_page_dialogs_Translate-light.png | Bin 7602 -> 7608 bytes 14 files changed, 54 insertions(+), 18 deletions(-) diff --git a/packages/smooth_app/lib/l10n/app_en.arb b/packages/smooth_app/lib/l10n/app_en.arb index f70cb06bd5a..c6ddfa26fd7 100644 --- a/packages/smooth_app/lib/l10n/app_en.arb +++ b/packages/smooth_app/lib/l10n/app_en.arb @@ -1465,6 +1465,10 @@ "@category_picker_no_category_found_button": { "description": "Button label when no category is available" }, + "user_preferences_item_accessibility_hint": "Click to open in your browser or in the application (if installed)", + "@user_preferences_item_accessibility_hint":{ + "description": "A hint for screen readers to explain how external links work" + }, "dev_preferences_screen_title": "DEV Mode", "@dev_preferences_screen_title": { "description": "User dev preferences - Title" diff --git a/packages/smooth_app/lib/pages/preferences/user_preferences_connect.dart b/packages/smooth_app/lib/pages/preferences/user_preferences_connect.dart index 6cb68e0161e..87a06d6ed07 100644 --- a/packages/smooth_app/lib/pages/preferences/user_preferences_connect.dart +++ b/packages/smooth_app/lib/pages/preferences/user_preferences_connect.dart @@ -245,5 +245,6 @@ class UserPreferencesConnect extends AbstractUserPreferences { trailing: UserPreferencesListTile.getTintedIcon(Icons.open_in_new, context), leading: leading, + externalLink: true, ); } 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 5d7e482842d..287fa15d57b 100644 --- a/packages/smooth_app/lib/pages/preferences/user_preferences_contribute.dart +++ b/packages/smooth_app/lib/pages/preferences/user_preferences_contribute.dart @@ -86,6 +86,7 @@ class UserPreferencesContribute extends AbstractUserPreferences { () => _donate(), Icons.volunteer_activism, icon: UserPreferencesListTile.getTintedIcon(Icons.open_in_new, context), + externalLink: true, ), _getListTile( appLocalizations.contributors_label, @@ -239,12 +240,14 @@ class UserPreferencesContribute extends AbstractUserPreferences { final IconData leading, { final Icon? icon, final String? description, + final bool? externalLink = false, }) { final Widget tile = UserPreferencesListTile( title: Text(title), onTap: onTap, trailing: icon ?? getForwardIcon(), leading: UserPreferencesListTile.getTintedIcon(leading, context), + externalLink: externalLink, ); if (description != null) { 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 608f762859a..b644544d5a6 100644 --- a/packages/smooth_app/lib/pages/preferences/user_preferences_faq.dart +++ b/packages/smooth_app/lib/pages/preferences/user_preferences_faq.dart @@ -53,21 +53,25 @@ class UserPreferencesFaq extends AbstractUserPreferences { title: appLocalizations.faq, leading: Icons.question_mark, url: 'https://support.openfoodfacts.org/help', + externalLink: true, ), _getListTile( title: appLocalizations.discover, leading: Icons.travel_explore, url: 'https://world.openfoodfacts.org/discover', + externalLink: true, ), _getListTile( title: appLocalizations.how_to_contribute, leading: Icons.volunteer_activism, url: 'https://world.openfoodfacts.org/contribute', + externalLink: true, ), _getListTile( title: appLocalizations.feed_back, leading: Icons.feedback_sharp, url: UserFeedbackHelper.getFeedbackFormLink(), + externalLink: true, ), _getListTile( title: appLocalizations.about_this_app, @@ -83,6 +87,7 @@ class UserPreferencesFaq extends AbstractUserPreferences { final String? url, final VoidCallback? onTap, final Icon? icon, + final bool? externalLink, }) => UserPreferencesListTile( title: Text(title), @@ -90,6 +95,7 @@ class UserPreferencesFaq extends AbstractUserPreferences { trailing: icon ?? UserPreferencesListTile.getTintedIcon(Icons.open_in_new, context), leading: UserPreferencesListTile.getTintedIcon(leading, context), + externalLink: externalLink, ); static const String _iconLightAssetPath = diff --git a/packages/smooth_app/lib/pages/preferences/user_preferences_list_tile.dart b/packages/smooth_app/lib/pages/preferences/user_preferences_list_tile.dart index f72e0c8ddf6..3cf40a1950b 100644 --- a/packages/smooth_app/lib/pages/preferences/user_preferences_list_tile.dart +++ b/packages/smooth_app/lib/pages/preferences/user_preferences_list_tile.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:smooth_app/generic_lib/design_constants.dart'; /// Custom [ListTile] for preferences. @@ -14,6 +15,7 @@ class UserPreferencesListTile extends StatelessWidget { this.selected, this.selectedColor, this.contentPadding, + this.externalLink, }); final Widget title; @@ -24,6 +26,7 @@ class UserPreferencesListTile extends StatelessWidget { final VoidCallback? onLongPress; final ShapeBorder? shape; final bool? selected; + final bool? externalLink; final Color? selectedColor; final EdgeInsetsGeometry? contentPadding; @@ -38,23 +41,42 @@ class UserPreferencesListTile extends StatelessWidget { ); @override - Widget build(BuildContext context) => ListTile( - leading: leading, - title: DefaultTextStyle.merge( - style: Theme.of(context).textTheme.headlineMedium, - child: title, - ), - selected: selected ?? false, - selectedTileColor: selectedColor, - contentPadding: contentPadding ?? - EdgeInsets.symmetric( - horizontal: LARGE_SPACE, - vertical: subtitle != null ? VERY_SMALL_SPACE : 2.0, - ), - trailing: trailing, - onTap: onTap, - onLongPress: onLongPress, - subtitle: subtitle, - shape: shape, + Widget build(BuildContext context) { + final String? titleAsText = title is Text ? (title as Text).data : null; + + final Widget child = ListTile( + leading: leading, + title: DefaultTextStyle.merge( + style: Theme.of(context).textTheme.headlineMedium, + child: title, + ), + selected: selected ?? false, + selectedTileColor: selectedColor, + contentPadding: contentPadding ?? + EdgeInsets.symmetric( + horizontal: LARGE_SPACE, + vertical: subtitle != null ? VERY_SMALL_SPACE : 2.0, + ), + trailing: trailing, + onTap: onTap, + onLongPress: onLongPress, + subtitle: subtitle, + shape: shape, + ); + + if (titleAsText != null) { + return Semantics( + label: titleAsText, + hint: externalLink == true + ? AppLocalizations.of(context) + .user_preferences_item_accessibility_hint + : null, + button: true, + excludeSemantics: true, + child: child, ); + } else { + return child; + } + } } diff --git a/packages/smooth_app/test/dialogs/generic_lib/goldens/user_preferences_page_dialogs_Improving-amoled.png b/packages/smooth_app/test/dialogs/generic_lib/goldens/user_preferences_page_dialogs_Improving-amoled.png index 4880822c9e44eb8d6993595ad61162a9eff6b9e9..07749a4797f37c11046d48778df20ea7add961bd 100644 GIT binary patch literal 8392 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 diff --git a/packages/smooth_app/test/dialogs/generic_lib/goldens/user_preferences_page_dialogs_Improving-dark.png b/packages/smooth_app/test/dialogs/generic_lib/goldens/user_preferences_page_dialogs_Improving-dark.png index f96ec95a9d33d22d4f28bf6d5b44a1b97a627a59..8e1e44dfde9748e059d59adb81a2ea981c3adeb3 100644 GIT binary patch literal 7776 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 cPTyIK9uHA>*)@k>`f+El8G0l4O}|VQejA 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 B#JB(e literal 7927 zcmeHM2~?BUw*CPNT18rIML+=+#DWDCgffQffQDHSkXZ$ZG6Vz?rUatanaQ9shN!5_ zgCIl#A+{>Fobu~-uCvsUVGoYtLwe>*1B0N0_XqFfA-mD?{9zm z`)}CW9+CZA@pA}*WZ_2-9fu$(RS1$ixmp^Gq@yndgD;8D<3|oa#cf+gz(1=(55P~X z1|Q67pX(5$`~ZIFFDD{0c}%bCnH-ABA-)3Ur0QHbpipIgS5pDfpf!Ki{rFBe+Z1Q8C5`_Jc3@BmKE zzzHSwnRU=o`CXsSh{EAjaH zDB21-uP!{@dGJWV2TuqZwBY)hUN^ZbpyA^RkIAVPsoCvJyEP~Qy%_Jb*+(22i3|Qh zVHn~^bkd?QrzTU=)0>8dd|Zp1o;>N3l!VNe!;A=F)y$bF3iv~AF~VRJanN=ggD~jN zl}=LeT`sIgiEqxy(KR;C=;`Ts=4u-UL3@nIOys6bo61T{lU~1m9ahcA8cU@`eWCD8 z_9k;zxUJ8!XJS#%GuKFdqlT`5fkqevm1==yT4*%RNDi@I`}%IR$n87A;GMfZOLD?H zRI!hdFUdeqHPiPC!7V|hbiTH%1;!t0KXJChQSISWrk30CktHZ-m`!I-HjT> z)w3)zDvZz}+)((f9i_KsLJC~tzIkx)Jc;Cva%AM3q0g>s2q=!^(gjqnQC*N)_GxDR z!+A48{O}ZIw{@0PuzJQ?nRosY;3qmz#lMu*gFb zJFCXqW;E%0afN}APb({#99-i2*)A`de+k8@XFiBB>x3VgV+55HUR#`?!UTPxcIw^+ zSW*1I*i^FL%F+)=1AR1e1J%i2G?lLe~y*6I^-f{Nb}}Rj2LVISM&) zx%Z;YAqaP7mDrZe600C+mjxsNK{vnr-x*F78<^V^6f>O>7a#AauMg?nh9vbm!>NnR zd^ZSJcVW#YaC~u)Bm{l60|)To^=egcZhIwH|F_{2)3WX=0fEi8Dk^wpGMIHGR8f>C zc9z~$7du)+!mE)6VydU&gO;ww6V-^q7DNcmRB%GyY|Iy1>q7#ba@}A47qD~OHo7V9 z`Kq;_c7$&YS33VKM_f(ptsRJSz1`5;j;-q<$T8%9YU?Mq@Fxzl91ZNR+>+N}cR%%( z>MANMRD;*m%VboZ9>ovMPqBJPK?COdv&*pDN`ucAO%>wJ0te!YtSr1e@$DbWXXa%6 zPq5FDy415TxND4Jvy8*FHEc8Ij}l`)+|URazzSsP9CpNGk;&v#yd%?G#ox`duqaSa z^@g6+Y-$Pjg5^L{VdKdb_51}H5a{45!+j<_A-BTK9-SkG-c7nf#BVhIx%j$CxX9f*RnCj5pSk-)Hp+VBsrZq!Wvxb}+iLqBnV7_-}qCt5DcnRN>&#FZt^mFfrU z`@RQ9^{G%|eRC3m#!?YkkvnN-iva@y(GmwHKYrEd3v=lHHYaE2@@LQVf|-0ie|^}& zPb(}w)Zcu$rLYsH*no1bgLQWyV&`cDrS66G^Kw%`XFImXU(tC`mVvM zbmz{UAu}J_FOE7nIpNhnb1MV(99KY*^zlTpj~-hWgxZm_ ziTw2q~$BMpS>CcX#7xLfs)^7}W*VZDR8W-G4!>9c2dkR)UKR`GG5q+Zmk z;~;ytf`S6WkfEdPK_{e7A%r@*|HScbBV-?}lGxXgaI|19EhVZ$J$o-P!+X7hH&sB& z;OIWZGUz`a%brC7H|{s_ZU}gSqPKU~w^RNV?C?KIe(N17FQcbEyxwAr4j3eBDr1q$pHjyH{#Hol-2;DOIH!x|+gCri=en&#pyJ&vPc>x@0mXNP2} zi?#&j3|*)ME}yERFl(^v@-!5Dc_nLZGoU&++23L5Z+!h*Hw@7}$)JhV){ z@H?;EFaa}M&hf}}VR5nV`Sa%o$-~3LTR%$Uj;Z0yTfrc^;r5Q&_PegGf6I`14XFAS z739NTi%zPA=cWC7_ukGvlDOWTR91#pQ&3R}=)GEG)fv6@iSJjHK_|F)CPiffgXGb= zD}WfOz$5#FPh9f}4p_uiBD_h(>1dOxr0?nYTHxfTgME`h-M zRJOlssGsz#iP&48uvO{#ILoA%_bW6m{QTt2_m&NMQScttXOLO3t0~_9WdiIfscUq2 z@Q2F)R*Q>w!so^mmR_}wyvxxwG&Ho2H_LDVA+2)t>`FY^>J#C?&;Re3-{FaPrr z_OsjLmv)9#lKw8XU#k8BJ%nW$=#CmL_%)a7m$1d~_>59!)rEU0DWUU|?=Oyy!JzwU zTEGE+E#*&cr<}5}wjTP}p8dBXK&-rR6Qc3fN{9PCW*stHHzV$%WbzPPfLIR8o`1mvrSn}Mk*Aqc}#lIlvM zMRoMV&gLqiVS2}QNHs)HP*M;?EP9aKN}c~X3Iw$R%0+)m!TCk*v6NJrl1s`R0_`n} zc|B72jwsUW=qB|?`S(Y12)$j{@lay*26N9C;qZgX*>d7?K+MYGz(g-OBd9hq_e!#` z@CacUn15PuaAVaU(UITLwN#6kFSot0b#-;MBr&$;`bI`ZUL#B3q5z{q-UoGgi($y4 zj|LQ}7rUkmw*E0X+A&_edS$;~eeoG~HrJ|!6JH2^q4hb#U^g@N3^JK))S>SEcobPH zWNT50Sy^owFkvI`pSQQSi<=vx0_C;zL0+a9-h%Mpj!~mJWUE!u&lPf|7rM*puL1ak z?&sCj6}x@t@@t*gu>04z{Rew8yDIqb`j#PjtosEjdnTflRiB6$sKrXrQ&U8iG%LU- z^8LkNFtrBC@S8naENd*<-0xYEa#=FU9b3^5qfcKS(Y2YWz z=0E4fVoIC)|c||{Fk>E~V@+8aO3#|=5-5i|=6Gg-Tw&rPg z@ObYpWy7D|a@A7mC}{WI*}(`xp%66LYK_?NfxEPUl{}N+6>JYI(xE*Df^tdIl(j;h zKVrJcKenaku>ro2_;p%FMsu>AnTyHw)vA{ZcH_Wo(Dv>k*lILJO-2m8aSjExeKiWY zjdm1zB)(?8Af zm6b@%Cj)pv=N(zU>?qy=5JF7my1gAq4taIbN$6?<_yJ~38?3PR3NRq=ym!uxw^FfT z%Vw-r)H#R!`Z$x>4hJ~C1T%sI>cNWy2Jm?;|FIOj-|LpX7=jygIrLiH zQqamUOwLj8;^Ji?Vr9u|ouly>T0~q~rt%rOIoA}+Z?e#L*yxS~#*;Y1vAwGd-U|D# zEaf0XqYD!>BK7?M-cwLNnE(pd`3(4U0t5M_S#G@DaxzWMkwmUcw~IwS?>(&$%IWLq z^}@7-mMq77>^)|LEJ$TM*+Q~W*ob_zoNO=*<~3#nQ8R!Wfq<0nrkQ^sLjXzZ=hueTU< zJ+XNURuS4Hm(I9m)Ao=d}4@bpNb zBmTGKzbf&ppPwe8Ewk~Z9Mp=YrFt#xT71|r>mPhGBV;$#u&y{PhJYL zkO4UcjOedRpAG@IrxZCYd;-!(&E@3DhKo`%V#lzrIK(=mfQ&bGTqkp(TI?Fb;6d}B zfHUWK{Cd?QCoK)TtQH_p+ESMoV%%_IZUCxai(Smz8S#*{tt}g1W;}*Zr~9D}HeKCr z@W88xiA12$`V>zc0Tb&iikkb;yR!ue5vSF0j~A-~p*0nr=@ z2>4z-t!!Y4-Of2R2SVMyMjU>da)!9N2-a+!h(yPE% zU%bqoM`W2VQci)i{FG|=uNm`)cUQ=%QanqzK(0KcHsfO4h1}~=50ypC-m=Yca8v=t z90w|}KPk1?Tg)%fc|af@r|V=&02Yw=gw`u`{~C))0)yX{cOppzTp%c0SQ0Bjd6Eq$ z>9R9>?+zI_uiOWL3eff;8ia)i1iWieX9X-~&;Dw;N5u$pPwIk9+a(BkAv0R;8)LeE ztqR;!>L@-SjRF`<{sMsc+iwu9?#(N=yt<&W;MrTCbO2=JnE@b=uYCTzdtzO~0V>U@ zC_#V=;Hnvx3V~3*Gsl*YUkWODZVq@u;GtyR=Cj<-?adoiNK#9yUN~IMY@4RRyc~5v z&|1-8D;R3IO6angn+(cK3Sa0&(x(U?()}JYk(?J7rBv*JBGnqqZb<`a@rc3XJ4W4t z`)c})90aOsi&{?zlityBqL)`$&zFSWoCDYcxXE%YrWBpnPjMya{9xHh!CfNKBa{QtotX7J)2YHUC>p~4*ARBPc-Dv{|s5P46Z5qW?Dslo4 zv(LbQQwI7P^cB#GfI|Q;Y6Qlkw+p?{`%@lGWT5o?Bz)ds@EVJhcE1WS_Jc~^($@C* z4hV|71Ev6;0wCoP6B#6Lf**>&ubeEcP&#u$>S$Tam|~XLw*8YekB$@|l$rmLZCVvoOQETYm zwr7)&__}|VrL*7b>3=_J#&|;2fx+v++t%{OK-?Y2#_(pw{2xP<;RZ delta 169 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 E0hXEHV*mgE literal 8190 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 diff --git a/packages/smooth_app/test/dialogs/generic_lib/goldens/user_preferences_page_dialogs_Software development-light.png b/packages/smooth_app/test/dialogs/generic_lib/goldens/user_preferences_page_dialogs_Software development-light.png index c56e946815115a66796e1c27774d7699a0fb2833..0947d71c7ee8885ff1fa4a486ae6684e96e16c58 100644 GIT binary patch delta 1047 zcmV+y1nB$eLGD4YBLM<1QnM%l(;AZy1qMY-G~ECIAMYn;PUlCjo*J-vDM_dAs?A&P z%R4`PduW#V=vN*es1ATy0tmnm_vI5O<0ofM=SQ!eEM4a2t@r1hpPnC@Wj^|qeQVqez;NnxZrR0e z)jof#nz=>*0RVsjwLO41ld%sRlRySke`#X?IdlDsQ>RWf)dv6o43$;(om;mv-NpcN z`uZ31^Ycyh0RR9)WtDyB*6mEUF@W4a0097i+cOON&TR}JC$E2T?AWoU`Tzicp|Z-p zbL)1dTOUA<9zEJr9{>O_R94w{KE2xKn$*Ssa>J~hK7HDS=l}rlF;1O2mD8thf5{uI z`>*+J3?TDKj$i+VqaXkP@X=P;XFi@5UWDFhx`7@JB>C3Li%pwgdnG z?X!pe*J`T6YMzrVqD005wU_V3?+ zbNEUWciGt)?W8nVFd!IB+2Q_U+3Tzxc)a&Hw;ljhs4lDo2kV?e&nsWI257f6elLs2>``7(kL_ zHp@?T?3prVXJ@l--@feKyEij4Gntv05lR36Xr)u9PGx?6KJ)YQId<$=jvhUl)2Bc3 za*k734j-!~lQtXH0Fop#Ne*25pU0yE05A?#9x~X_Ne7 RpOF9n002ovPDHLkV1kwG2m=5B delta 1051 zcmV+$1myefLFqxTBLM{f006)svn2u38b@ZL=>`D!ct1IFIzM{#)PU7XNjiO3ZQgoc z-udas4Sd%dpFq422 z5k*X==>}G@bi<3KrCy%{7#lx1b2>kI^s+KsZ&k$0RR9)WtDyB*6mEU zF@T)D{>A+Kd{cb@0KiaLW#74VJJW3pAU6;|007|j48y*28w1G6>t7r@cC4vB003a9 ztg`Rix}E9P2auyjk2ci@000b?RrZ}vulBhnwK0I)Fl(nzpLQWS004Z9Q>RYl^yyoF z@eNuEja^vVlIK>z^YRy~e>%w>6hf4X(rdITg{K3uf0@?w5|KKu9YZ?GKz0BE26 z`}f}*J{Ho#Q?FLs)pP?N;c}A6Bzsrh_~8$Km`-HIe;X~&jk4&Nw%%LaqQT!?A*CCyLazyt}6flXxLx>^ycfeDe9th9Q6?$+;wFlI*+w&11)o z<;re((2IyXGTVK4Yl0*L_@XSOQ40d_Bl5A>`!A zlX>pB=W^xBl|1y&LxKnZ03&5#VIklA<~Q@i6Hnyi$&4NW+n#?9LTC~xHnV+A}{QP{59XpnzM~~+8 z>5sge<5ZTz$EwMs&4x9AB*{#Y1K0lN@#p{mjDwYj47Tzq=eJ{+1IUV%Ao6t6jQ{|^ zI-1LJ_!zpQ9@iU%0J36AHp>^N?@O|$;a&g$U@aWa@}&nyGX%HTy&a=0!}*Z_004(c zL_t&(K(05F^;?Sgv9^=002ovPDHLkV1mOG4t@Xt diff --git a/packages/smooth_app/test/dialogs/generic_lib/goldens/user_preferences_page_dialogs_Translate-amoled.png b/packages/smooth_app/test/dialogs/generic_lib/goldens/user_preferences_page_dialogs_Translate-amoled.png index ad13bbf348c6577d151e80f9c693702bf7366a6b..23907ee8f1a895c355605098e00308f13d8c2da2 100644 GIT binary patch literal 7849 zcmeHMX;f2Ly1j^qf`HYEsL0S|6pK+nML-BjDMSRc7!?8z%tIJMn8C7?vX#M5Oaehg zK@tc80ul%)s1O+=icvp=iB@2 zZ|BxID>EsHJrWQENg>R?{SJael_6+@66m1aSp0EwiVGalQAwTA-%$Md4t`wBLls@8p(CS0d2DfYK%x6wpif(*< zhTO^A6n4prfGjFGC~4;rX2`-vn1)yL@w!?M-7$p^)e>zj6MVk8SXSXrld{=TRFNhj zQuTvh^A9_YyL1mcvI<5dlC?CY4;&N8p48{?qK&_MJe10BWgEr?QfX8AQ!o(Sf3AOh z2I^Fd?DPWfZaq+=LFs_$X*q?Nx+{o4FKUdk+?EsJN@o{NVp$qaRjA@Zs9cx%E+}eb zs{#bQYnMI{0b?FoIQg3Fyp8ea_^k)H7{s!}@MZ{d{+6G*8bMmco9l_EJRbX8sVCS9 zL5yKPEZjm){4PpL*)VmrI%f)()$3$Wa=N7VA@c_}v}9n9hb}ih9@Ey*!Jf`Pf5HiZ0)yJ9)T#Gn zSEnSucC}h4Y4k6-peL3h+tgg;KUnTd(|jok#iRW}6mTJzs%vCK?sCOgZk|bpf=#h` zx#Ymm(8Kxp`LfSMA*eSqGqdH@t5;{@mhOhW3@t`&RyORGR`Q(Vf*AWNeI39n?U4=; zbnY&NLfNYyJURQ#g$nP4l%#s?7}H*I44n2(f;Q_S6w1L zrhUAf?cI>VFU96?zPe~fUxXHxV0o_fmp}mf_U)6c1Oen;zH~_$p<~ETr(KIaMDg`* zI6>ZrUf5Cm61M%q(Iub3D*t|R6b23U*CZi=H&aLjA3jR)GFUuygAA%bF(9Ie+ZCe( zK`*kySR*mZ+b@fE8)wX!=NgFl&R9-)&b}|(mw^nsaEb{*CZ2RAv%RsgvEQZ)Wwqei zea+#7!IDG^vlXsR_SyzP;k6-kDg5QMdZ$X_X62DUX$YDMOLBcLsm$uSgw0OZ+NG#S zd?E`$)6!}=x}!h2b8InxvD&H}fbePe&|OB#LC6OU4e)jk_Uvl~jO?TBqAgA? z2GewL2&yww%Q0j*&qUeLUqQj_1sPLQQ@bS*FvI;u$W*oi&n3-3JHGBlHdO=~8=kot zG6mk9p(%VPCI1x!8N8I3>c}82l2y?k`q!jd;m<`BG?SQv)t=2s3TcV(W5+UaI9yv> z+pf`-H>Le6h~UNP&bpNkx6=}37`6nUu+KM48I%bFFpo7^uj z2$I+dK~Jr=D1$_4ZvYj2?hXW2vtwU8fcWdp|BjE(=F>OD`_#=hN=D3fDJ7Hq9MfseKR{hEqm*~&0!Ga;5H#^iJ=>9H|jSzJ3Gz8NBm#<79 zDE`VuPyzQd2aLrSRf8x3Nem2~jT+^<^lI2XtP*)tSXf908M+_lBX6P@F?kmcuoyoO zB=c{Osl#~GeTi(nfR6eYexGgB*o$j9$ATWVgc}(dA+WDszqX@kF4cHaaYMna8U$k8 z+7hkea?{PEQp4EQaK-5PmoUl*IVz<62(6em8qTbwbh)2$QL)I)YsSh^_RQ1R}!R@S?+a}7wPPURxQ`= z_mYy5Gfd=~Sa}yZ!#S9e1rHdlkFjJ#@)l?OhMorv_xXeS-Xj+1{nef`#+7fE{=YtCr!X@to2+k&VRfhE2F;}k1D&`oU~O+ss!(G>C)KOXwh@lN-HnK zgJ&LR5J|+&`M4;^j-48wX3VLf+6`|oVa5p9dDJuqml`^$yU^P82NdKeW%Km6%D8Ct z(ja2NOjXj~rp$Vg_qgwZ83R zhavhnyduUOlAAw>3~AjfReULkn^0C(hUbCpBI+6&$1XoiGMLg6ll-4B{!11M(v!!B ze@$G$07%v3t6SSoygGh6{~{N6u(Fu_Ptg5$)M zq7Na;F{}}1fE$89&n1dk2{KtSNSeY$X(k)MIbus+qBPEQP z?!tip_Vh0k`u8dOtcL5iD=zCt zBshr(_}#m9JvSc)`-1t(#C|3ukMG>80q$rzU!<|<^7 zB%;LtBNMiL`*z=pG*r;)%4glU*aeD8$cI?`n^Z1%d_dm zy=YACgr9qrg=Y`CHP+EL@9CpL`X>9Q&sUq?zjw5YS^x5GB_(*&d9z%0_7{cnyLH*L zHqWC*>h$@`OeZwb+L|x2;r8v@ta(c`qev4Wz4zEty4hYLXF|OU*@Ijqy$Z5#CcTO+ zy^1WaTC?I5xkEDy20(xl9(7%Fo%-lXKcbIy_{p6K%;`;CbFudAXN4;LO%(oobo?Hi zzkBR$J8U9rg*%?rlps?|B34)D(su6L+0*+((_2Z`x99@3`NEajC$%f+TNA}e=v!+p z&7j8lxpUn%Xi+ssXTfDZzhb;GID{B?l9ThuPx3psmM_5}{pAVvWf(;tuZHUdjO2i- zDIpOH3)i4);5fjn6d0g=OD(X!7Ciy~O^mb3aOYH{Yr`W$-m}=LDjbcve7qVpU9reJ zuT;5JIVL6s(7Q#i{|o&kP~|*vjBGQyda=fSxIA{aYwF^KhBRN2``Q^sIz&xni~jPSpF`9v=1wtdF4aB7zLYsLSi8bka_~XoCR}5|caGB9B|C{Bw`7_L77XQylb_xGm7Kx(JeZwuv zgm*Mr253KQhu@GuHK_pk)br#26MIUY%Xr2C6uWf373%V-TzF?HV>b+#xF_k41@t?} z{c}X&x}GDw27OdPVWF;}VK$7*42a9Fsj2x(?FQ(+1Q6H}qx_K!825#^ams@S4;DEb zhao%6Hj|G0ULW@>SH9NO)%C8tXjd%?x&=qU?dhznEEuAqzwO<-bEnPBy8Vt4d`c#^ zD63`W z-$^ST&lE1UC+HkGk_Nh=vsP9fzjQL*hjUPQC0~$N=Svk8m5|AnyP#83K?qg|9FI|@ zwew-IE12L#IkSaT-Gl{tTWPleTGd8NSnd@7L7_KG9GtU06k>A-uMAnx34^}-SC;k=xhWIQ!+npu{4jkxkURr5HVm=A@Eb6{aMu;?{;=}-bqT@$uNa3kUxmHfo9PxX)k4R z(hcjj%8yG;j-8$0e(KFAYHK1`N@UhvAMuI9CBO*@~ zxS=B! z92UA8_=xqdfE}nlKKX>`qhOM*v@tnZcqr9OW#PJ6gHsUbSBvG~;fu9d#|`eTM>E;( z8cVz2FWLe+MFbz0jC(CM4w51{C!QRumwm52npGQ@3k!(&;G@ucG=8sPm^z!y=C0>5 zUx^CGBy)-={b70d-?n!)449va+)+z$-z; zS4=c1bu`HsIif9|qH>O-RfX(;yn_axH1bGggg4HNTRHx|ZK};XOvV}`1X-pv?AshS zMqf$Ry?bu~K7r{$KoOn{SiZamY!2)YC#^OF6t?QzCMcd1A?P=)VX0wM5FQ>Ls&fT( z17azUbL%jyhC@pdQ2Ym6+^2J>dTs$MKoDGKIX{FqjDef1?Nqc^}P2U^9{w+WXXq#n0t|4E12hI(&M3)hzWCzi5bt6}v!O@)E)&|r2?+hbFw1<>5s4WD)g!QV_s zNQH^Z7~=@UL7N~wFreLz#-zNwo~#nV9(uOEzMD61Vqr3Z*LoFeO|`##q=r6V6fv(= zpEcPY(ro~uoMEx70a5kz*t+DbL^+%Qy7d#Du{_BYvi%AQ3cCD``bKPzT$_tT761cC-n47$Z%nSCASc4-gM^mjIBLa&JOlv4j(%(AC}i2WmX?KN=DH2 z*HjUac+@4a+pX|BiHXR0k&7kvxbP3RV3hS5V_OT=6JmL(lE%RHQ154#Sx@2_a4eye ztceJoNYukcoMhZM{8wpRI=rL!(b~ZgKqN4VKzw;BHILl8F9MXb*S+kcAHm%bzS8?V z80Y}V2gmc}dvxMql$I9rJ&C95*K!lsE6H!zR2GkBSG^H>VSsLyV^JpHd#Ke7>_9LC zTzFKGPNkG`;^}?0VU>B`qX!k@G8a)Tp35WWe+IbT`oe(f4&~?QQUERba5psW2NMwM z{HSYFW_)CsUvp*3%b3iOQJn*IxAdVqN~r8GySKgYO)MM{MehaXmg*e-Vx_b)C0qO@ zNPR44BClo4J!7gvYh(fk?0~-F8gCmxZ;bHh^$a9#bZtcikpEKpI-4*>&AaNiR_!=R ztY0P_=d7}8_}29}27LJz-U$eSR%and;2fMAiHoEcIma;3o{i02i$cIE6r5DnAK99W1;r=a&biLi6(XfpwK=yTPv@mvjghCad7_pz)x|Sns7R72MbUqhh|a&44ol#bd%|K3VQota~(_sp1-?!D2BO_q2s93mZ8=N1B^NHr|)?^E+IA zmEnG>IeJ{lWd^S;wk>|{(jW6Y{uj$G5ibvo<>un@sGUWwvI^{;neNJ6+vCeOZj0BP zr{A)PSb9|iY_WJw+uyRq{+MY0herdub1zbG8HFPL+|>|@1Lsz4Wn*%zRW_x_rN;r8 zR{FCUq6&;ts(oiOH}nb=A-V3{jpU+^Vdh>z3zG{nK=u7*qh7aL3^G0NSc+ZvpDCiPa?d5e zlK@PTYacvCx=zGsopZ;IZ|WZL%FxsR26D#|&D9lY27ZvZjEm*XRIr5MM<^YkV{1x? z@(1)y9rc8_q*+NTBlx+> zLUoFG#?H2mj)Hza;B?(55kY@=B{ek_xb-dlxAV>{a3uyJXa+{{&$_GvT&?&%=Gd^! zz@yLKwgEEH(72HdI{1&bT`hx62d3UB5K>tp7v^rl;D%A-)6-r+HmiAwLl9nDTl+4E zAx%Kv=S@|nd*#N8xl!OS{d<$kA0<6KJ-dA>bq*i?X=KDI=Dr+29tKFLh~<7y2htRn zu#5hlZ=B9ZS5vmA|7r3;h1}6Si2&_xZf>x|)A`?5LD1L-$H=xheHV+*KG@RzTzhUu zU%}u8^DbNx`cSJPwbt#M9|6`28yXs-J%Pl!*4Ezc9vR7tW;I0}VXC|dTYX0ONYajn zF{k#xv6D)93`t1)rL z%xK6ZN0iaVl>LU?v1j_22o(M~SpD;Diq`zT>t@)xb3s~iuOcOsTcrvVz6~od(nERo z>$7%)`4UEHdZm7Q&l>t2$7(hV03Z54*S|gkFHX%1MNaGvxrFc29$NoA;*{05#FLl4 F|1YV&m4W~O literal 7843 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 S-QwQX`j~TOUl7k;zxN;h0&W@r literal 7261 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 diff --git a/packages/smooth_app/test/dialogs/generic_lib/goldens/user_preferences_page_dialogs_Translate-light.png b/packages/smooth_app/test/dialogs/generic_lib/goldens/user_preferences_page_dialogs_Translate-light.png index 426852258591b7fc160847b458d701be126ec399..7169839eb5bb7902288a36bb6a74d22a1266b950 100644 GIT binary patch literal 7608 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 z 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