diff --git a/.github/labeler.yml b/.github/labeler.yml
index ef2529df32f..3c7e884149a 100644
--- a/.github/labeler.yml
+++ b/.github/labeler.yml
@@ -11,6 +11,9 @@ dependancies:
ios:
- packages/smooth_app/ios/**/*
+asset cache:
+- packages/smooth_app/assets/cache/**/*
+
web:
- packages/smooth_app/web/**/*
@@ -61,6 +64,14 @@ knowledge panels:
robotoff:
- packages/smooth_app/lib/database/robotoff_questions_query.dart
+- packages/smooth_app/lib/cards/product_cards/question_card.dart
+
+summary card:
+- packages/smooth_app/lib/pages/product/summary_card.dart
+
+analytics:
+- packages/smooth_app/lib/pages/onboarding/consent_analytics_page.dart
+- packages/smooth_app/assets/onboarding/analytics.svg
goldens:
- packages/smooth_app/test/pages/goldens
diff --git a/.github/workflows/android-release.yml b/.github/workflows/android-release.yml
index 0327fd9ea33..ca9c692135a 100644
--- a/.github/workflows/android-release.yml
+++ b/.github/workflows/android-release.yml
@@ -18,11 +18,11 @@ jobs:
- name: Version
run: echo ${{ env.RELEASE_VERSION }}
- - name: Setup Java jdk
- uses: actions/setup-java@v3.0.0
+ - name: Setup Java JDK
+ uses: actions/setup-java@v3.1.0
with:
distribution: 'zulu'
- java-version: 12.x
+ java-version: 11
- name: Setup Ruby
uses: ruby/setup-ruby@v1
diff --git a/.github/workflows/ios-release.yml b/.github/workflows/ios-release.yml
index 7442e965889..5a4deb96ff8 100644
--- a/.github/workflows/ios-release.yml
+++ b/.github/workflows/ios-release.yml
@@ -25,11 +25,11 @@ jobs:
bundler-cache: true
ruby-version: 3.0.2
- - name: Setup Java jdk
- uses: actions/setup-java@v3.0.0
+ - name: Setup Java JDK
+ uses: actions/setup-java@v3.1.0
with:
distribution: 'zulu'
- java-version: "12.x"
+ java-version: 11
- name: Setup Flutter
uses: subosito/flutter-action@v2
diff --git a/.github/workflows/merge-conflict-autolabel.yml b/.github/workflows/merge-conflict-autolabel.yml
new file mode 100644
index 00000000000..b8bf2db7371
--- /dev/null
+++ b/.github/workflows/merge-conflict-autolabel.yml
@@ -0,0 +1,14 @@
+on:
+ push:
+ branches:
+ - develop
+jobs:
+ triage:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: mschilde/auto-label-merge-conflicts@master
+ with:
+ CONFLICT_LABEL_NAME: "merge conflicts"
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ MAX_RETRIES: 5
+ WAIT_MS: 5000
diff --git a/.github/workflows/postsubmit.yml b/.github/workflows/postsubmit.yml
index a25969bb757..1cab3cfedf8 100644
--- a/.github/workflows/postsubmit.yml
+++ b/.github/workflows/postsubmit.yml
@@ -12,25 +12,24 @@ jobs:
- name: "Checkout code"
uses: actions/checkout@v3
- # Setup Java
- - name: "Setup Java jdk"
- uses: actions/setup-java@v3.0.0
+ - name: Setup Java JDK
+ uses: actions/setup-java@v3.1.0
with:
distribution: 'zulu'
- java-version: '14.x'
+ java-version: 11
- # Setup flutter
- - uses: actions/checkout@v3
+ # Setup flutter
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
channel: stable
cache: true
cache-key: flutter2.10 #change this to force refresh cache
+
- run: flutter --version
# Get dependencies.
- - name: "Get dependencies"
+ - name: Get dependencies
run: ci/pub_upgrade.sh
# Check for formatting issues
@@ -38,20 +37,26 @@ jobs:
run: flutter format --set-exit-if-changed .
# analyze Dart for errors
- - name: "Analyze code"
+ - name: Analyze code
run: flutter analyze --fatal-infos --fatal-warnings .
# Run tests
- - name: "Run Tests"
+ - name: Run Tests with coverage
run: ci/testing.sh
+ - name: Upload coverage to codecov
+ uses: codecov/codecov-action@v2
+ with:
+ fail_ci_if_error: true
+ verbose: true
+
# Build apk.
- - name: "Build apk"
+ - name: Build APK
run: flutter build apk --debug
working-directory: ./packages/smooth_app
# Upload generated apk to the artifacts.
- - name: "Upload APK"
+ - name: Upload APK
uses: actions/upload-artifact@v3
with:
name: release-apk
diff --git a/.github/workflows/presubmit.yml b/.github/workflows/presubmit.yml
index ddff85f7bb6..879a5b5bcc5 100644
--- a/.github/workflows/presubmit.yml
+++ b/.github/workflows/presubmit.yml
@@ -1,4 +1,4 @@
-name: SmoothApp Presubmit Tests
+name: SmoothApp Pre-Submit Tests
on: pull_request
@@ -8,22 +8,22 @@ jobs:
defaults:
run:
shell: bash
+
steps:
- - name: "Checkout code"
+ - name: Checkout code
uses: actions/checkout@v3
- # Setup flutter
- - uses: actions/checkout@v3
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
channel: stable
cache: true
cache-key: flutter2.10 #change this to force refresh cache
+
- run: flutter --version
# Get dependencies.
- - name: "Get dependencies"
+ - name: Get dependencies
run: ci/pub_upgrade.sh
# Check for formatting issues
@@ -31,9 +31,16 @@ jobs:
run: flutter format --set-exit-if-changed .
# analyze Dart for errors
- - name: "Analyze code"
+ - name: Analyze code
run: flutter analyze --fatal-infos --fatal-warnings .
# Run tests
- - name: "Run Tests"
+ - name: Run Tests with coverage
run: ci/testing.sh
+
+ - name: Upload coverage to codecov
+ uses: codecov/codecov-action@v2
+ with:
+ fail_ci_if_error: true
+ verbose: true
+
diff --git a/.github/workflows/semantic-pr.yml b/.github/workflows/semantic-pr.yml
new file mode 100644
index 00000000000..3513db27ec5
--- /dev/null
+++ b/.github/workflows/semantic-pr.yml
@@ -0,0 +1,17 @@
+name: "Semantic PRs"
+
+on:
+ pull_request_target:
+ types:
+ - opened
+ - edited
+ - synchronize
+
+jobs:
+ main:
+ name: Validate PR title
+ runs-on: ubuntu-latest
+ steps:
+ - uses: amannn/action-semantic-pull-request@v4
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/ci/testing.sh b/ci/testing.sh
index c61523a1236..a6700b322d1 100755
--- a/ci/testing.sh
+++ b/ci/testing.sh
@@ -20,7 +20,7 @@ if [[ "$SHARD" == "test" ]]; then
echo "Running tests."
for file in "$REPO_DIR/packages/"*; do
if [[ -d $file ]]; then
- (cd "$file" && flutter test)
+ (cd "$file" && flutter test --coverage)
fi
done
fi
diff --git a/packages/smooth_app/android/app/src/main/AndroidManifest.xml b/packages/smooth_app/android/app/src/main/AndroidManifest.xml
index 0f5b3628cb8..a960ca2050d 100644
--- a/packages/smooth_app/android/app/src/main/AndroidManifest.xml
+++ b/packages/smooth_app/android/app/src/main/AndroidManifest.xml
@@ -54,5 +54,9 @@
+
diff --git a/packages/smooth_app/assets/cache/agriculture.svg b/packages/smooth_app/assets/cache/agriculture.svg
new file mode 100644
index 00000000000..ee8e0e9d98a
--- /dev/null
+++ b/packages/smooth_app/assets/cache/agriculture.svg
@@ -0,0 +1 @@
+
diff --git a/packages/smooth_app/assets/cache/palm-oil.svg b/packages/smooth_app/assets/cache/palm-oil.svg
new file mode 100644
index 00000000000..e4046c77fb5
--- /dev/null
+++ b/packages/smooth_app/assets/cache/palm-oil.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/packages/smooth_app/assets/metadata/init_attribute_groups_en.json b/packages/smooth_app/assets/metadata/init_attribute_groups_en.json
index 0cd8cc9ee29..aff888aa1ef 100644
--- a/packages/smooth_app/assets/metadata/init_attribute_groups_en.json
+++ b/packages/smooth_app/assets/metadata/init_attribute_groups_en.json
@@ -151,7 +151,7 @@
"setting_name": "Organic farming",
"id": "labels_organic"
}, {
- "description_short": "Fair trade products help producers in developping countries.",
+ "description_short": "Fair trade products help producers in developing countries.",
"icon_url": "https://static.openfoodfacts.org/images/attributes/fair-trade.svg",
"name": "Fair trade",
"description": "When you buy fair trade products, producers in developing countries are paid an higher and fairer price, which helps them improve and sustain higher social and often environmental standards.",
diff --git a/packages/smooth_app/assets/onboarding/analytics.svg b/packages/smooth_app/assets/onboarding/analytics.svg
new file mode 100644
index 00000000000..74fdc378216
--- /dev/null
+++ b/packages/smooth_app/assets/onboarding/analytics.svg
@@ -0,0 +1,92 @@
+
+
+
diff --git a/packages/smooth_app/ios/Podfile.lock b/packages/smooth_app/ios/Podfile.lock
index 567672d3420..e17824ecbba 100644
--- a/packages/smooth_app/ios/Podfile.lock
+++ b/packages/smooth_app/ios/Podfile.lock
@@ -195,4 +195,4 @@ SPEC CHECKSUMS:
PODFILE CHECKSUM: e1ffd3daa5042cd516081f94f61b857c0deb822d
-COCOAPODS: 1.11.3
+COCOAPODS: 1.11.2
diff --git a/packages/smooth_app/lib/cards/product_cards/knowledge_panels/knowledge_panel_card.dart b/packages/smooth_app/lib/cards/product_cards/knowledge_panels/knowledge_panel_card.dart
index cb51c6fd487..45e98ce08b0 100644
--- a/packages/smooth_app/lib/cards/product_cards/knowledge_panels/knowledge_panel_card.dart
+++ b/packages/smooth_app/lib/cards/product_cards/knowledge_panels/knowledge_panel_card.dart
@@ -1,14 +1,12 @@
import 'package:flutter/material.dart';
import 'package:openfoodfacts/model/KnowledgePanel.dart';
import 'package:openfoodfacts/model/KnowledgePanels.dart';
-import 'package:provider/provider.dart';
import 'package:smooth_app/cards/product_cards/knowledge_panels/knowledge_panel_expanded_card.dart';
import 'package:smooth_app/cards/product_cards/knowledge_panels/knowledge_panel_summary_card.dart';
import 'package:smooth_app/generic_lib/design_constants.dart';
import 'package:smooth_app/generic_lib/widgets/smooth_card.dart';
import 'package:smooth_app/helpers/analytics_helper.dart';
import 'package:smooth_app/themes/smooth_theme.dart';
-import 'package:smooth_app/themes/theme_provider.dart';
class KnowledgePanelCard extends StatelessWidget {
const KnowledgePanelCard({
@@ -21,7 +19,6 @@ class KnowledgePanelCard extends StatelessWidget {
@override
Widget build(BuildContext context) {
- final ThemeProvider themeProvider = context.watch();
final ThemeData themeData = Theme.of(context);
// If [expanded] = true, render all panel elements (including summary), otherwise just renders panel summary.
if (panel.expanded ?? false) {
@@ -42,7 +39,7 @@ class KnowledgePanelCard extends StatelessWidget {
builder: (BuildContext context) => Scaffold(
backgroundColor: SmoothTheme.getColor(
themeData.colorScheme,
- SmoothTheme.getMaterialColor(themeProvider),
+ SmoothTheme.getMaterialColor(context),
ColorDestination.SURFACE_BACKGROUND,
),
appBar: AppBar(),
diff --git a/packages/smooth_app/lib/cards/product_cards/knowledge_panels/knowledge_panel_element_card.dart b/packages/smooth_app/lib/cards/product_cards/knowledge_panels/knowledge_panel_element_card.dart
index adec011715d..db0be3b7c12 100644
--- a/packages/smooth_app/lib/cards/product_cards/knowledge_panels/knowledge_panel_element_card.dart
+++ b/packages/smooth_app/lib/cards/product_cards/knowledge_panels/knowledge_panel_element_card.dart
@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
+import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:openfoodfacts/model/KnowledgePanelElement.dart';
import 'package:openfoodfacts/model/KnowledgePanels.dart';
import 'package:smooth_app/cards/product_cards/knowledge_panels/knowledge_panel_card.dart';
@@ -7,6 +8,8 @@ import 'package:smooth_app/cards/product_cards/knowledge_panels/knowledge_panel_
import 'package:smooth_app/cards/product_cards/knowledge_panels/knowledge_panel_world_map_card.dart';
import 'package:smooth_app/generic_lib/design_constants.dart';
import 'package:smooth_app/generic_lib/smooth_html_widget.dart';
+import 'package:smooth_app/helpers/launch_url_helper.dart';
+import 'package:smooth_app/helpers/product_cards_helper.dart';
class KnowledgePanelElementCard extends StatelessWidget {
const KnowledgePanelElementCard({
@@ -21,8 +24,8 @@ class KnowledgePanelElementCard extends StatelessWidget {
Widget build(BuildContext context) {
switch (knowledgePanelElement.elementType) {
case KnowledgePanelElementType.TEXT:
- return SmoothHtmlWidget(
- knowledgePanelElement.textElement!.html,
+ return _KnowledgePanelTextElementCard(
+ textElement: knowledgePanelElement.textElement!,
);
case KnowledgePanelElementType.IMAGE:
return Image.network(
@@ -51,3 +54,60 @@ class KnowledgePanelElementCard extends StatelessWidget {
}
}
}
+
+/// A Knowledge Panel Text element may contain a source.
+/// This widget add this information if needed and allows to open the url
+/// (if provided)
+class _KnowledgePanelTextElementCard extends StatelessWidget {
+ const _KnowledgePanelTextElementCard({
+ required this.textElement,
+ Key? key,
+ }) : super(key: key);
+
+ final KnowledgePanelTextElement textElement;
+
+ @override
+ Widget build(BuildContext context) {
+ final AppLocalizations appLocalizations = AppLocalizations.of(context)!;
+
+ Widget text = SmoothHtmlWidget(
+ textElement.html,
+ );
+
+ if (hasSource) {
+ text = Column(
+ mainAxisSize: MainAxisSize.min,
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ text,
+ const SizedBox(
+ height: MEDIUM_SPACE,
+ ),
+ // Remove Icon
+ IconTheme.merge(
+ data: const IconThemeData(
+ size: 0.0,
+ ),
+ child: addPanelButton(
+ appLocalizations
+ .knowledge_panel_text_source(textElement.sourceText!),
+ iconData: null,
+ onPressed: () {
+ LaunchUrlHelper.launchURL(
+ textElement.sourceUrl!,
+ false,
+ );
+ },
+ ),
+ ),
+ ],
+ );
+ }
+
+ return text;
+ }
+
+ bool get hasSource =>
+ textElement.sourceText?.isNotEmpty == true &&
+ textElement.sourceUrl?.isNotEmpty == true;
+}
diff --git a/packages/smooth_app/lib/cards/product_cards/knowledge_panels/knowledge_panel_summary_card.dart b/packages/smooth_app/lib/cards/product_cards/knowledge_panels/knowledge_panel_summary_card.dart
index afab4e911f9..42d72dc98e4 100644
--- a/packages/smooth_app/lib/cards/product_cards/knowledge_panels/knowledge_panel_summary_card.dart
+++ b/packages/smooth_app/lib/cards/product_cards/knowledge_panels/knowledge_panel_summary_card.dart
@@ -15,14 +15,28 @@ class KnowledgePanelSummaryCard extends StatelessWidget {
if (knowledgePanel.titleElement == null) {
return EMPTY_WIDGET;
}
+ final ThemeData themeData = Theme.of(context);
switch (knowledgePanel.titleElement!.type) {
case TitleElementType.GRADE:
- return ScoreCard(
- iconUrl: knowledgePanel.titleElement!.iconUrl,
- description: knowledgePanel.titleElement!.title,
- cardEvaluation: getCardEvaluationFromKnowledgePanelTitleElement(
- knowledgePanel.titleElement!,
- ),
+ return Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Padding(
+ padding: const EdgeInsets.symmetric(vertical: VERY_SMALL_SPACE),
+ child: Text(
+ knowledgePanel.topics!.first.substring(0, 1).toUpperCase() +
+ knowledgePanel.topics!.first.substring(1),
+ style: themeData.textTheme.headline3,
+ ),
+ ),
+ ScoreCard(
+ iconUrl: knowledgePanel.titleElement!.iconUrl,
+ description: knowledgePanel.titleElement!.title,
+ cardEvaluation: getCardEvaluationFromKnowledgePanelTitleElement(
+ knowledgePanel.titleElement!,
+ ),
+ ),
+ ],
);
case null:
case TitleElementType.UNKNOWN:
diff --git a/packages/smooth_app/lib/cards/product_cards/knowledge_panels/knowledge_panel_title_card.dart b/packages/smooth_app/lib/cards/product_cards/knowledge_panels/knowledge_panel_title_card.dart
index 757cd6f3431..ad5ed5fe867 100644
--- a/packages/smooth_app/lib/cards/product_cards/knowledge_panels/knowledge_panel_title_card.dart
+++ b/packages/smooth_app/lib/cards/product_cards/knowledge_panels/knowledge_panel_title_card.dart
@@ -63,7 +63,7 @@ class KnowledgePanelTitleCard extends StatelessWidget {
child: Text(
knowledgePanelTitleElement.title,
style: TextStyle(color: colorFromEvaluation),
- ).selectable(),
+ ),
),
if (knowledgePanelTitleElement.subtitle != null)
SizedBox(
diff --git a/packages/smooth_app/lib/cards/product_cards/knowledge_panels/knowledge_panels_builder.dart b/packages/smooth_app/lib/cards/product_cards/knowledge_panels/knowledge_panels_builder.dart
index 09ddf8fa4a2..ab96ebe516a 100644
--- a/packages/smooth_app/lib/cards/product_cards/knowledge_panels/knowledge_panels_builder.dart
+++ b/packages/smooth_app/lib/cards/product_cards/knowledge_panels/knowledge_panels_builder.dart
@@ -4,10 +4,14 @@ import 'package:openfoodfacts/model/KnowledgePanel.dart';
import 'package:openfoodfacts/model/KnowledgePanelElement.dart';
import 'package:openfoodfacts/model/KnowledgePanels.dart';
import 'package:openfoodfacts/openfoodfacts.dart';
+import 'package:provider/provider.dart';
import 'package:smooth_app/cards/product_cards/knowledge_panels/knowledge_panel_element_card.dart';
+import 'package:smooth_app/data_models/user_preferences.dart';
import 'package:smooth_app/helpers/product_cards_helper.dart';
+import 'package:smooth_app/pages/product/edit_ingredients_page.dart';
import 'package:smooth_app/pages/product/nutrition_page_loaded.dart';
import 'package:smooth_app/pages/product/ordered_nutrients_cache.dart';
+import 'package:smooth_app/pages/user_preferences_dev_mode.dart';
/// Builds "knowledge panels" panels.
///
@@ -128,12 +132,23 @@ class KnowledgePanelsBuilder {
},
),
);
- if (product.statesTags?.contains('en:ingredients-to-be-completed') ??
+ if (context.read().getFlag(
+ UserPreferencesDevMode.userPreferencesFlagEditIngredients) ??
false) {
+ // When the flag is removed, this should be the following:
+ // if (product.statesTags?.contains('en:ingredients-to-be-completed') ?? false) {
knowledgePanelElementWidgets.add(
addPanelButton(
appLocalizations.score_add_missing_ingredients,
- onPressed: () {},
+ onPressed: () async => Navigator.push(
+ context,
+ MaterialPageRoute(
+ builder: (BuildContext context) => EditIngredientsPage(
+ product: product,
+ imageIngredientsUrl: product.imageIngredientsUrl,
+ ),
+ ),
+ ),
),
);
}
diff --git a/packages/smooth_app/lib/cards/product_cards/product_title_card.dart b/packages/smooth_app/lib/cards/product_cards/product_title_card.dart
index 04813a3b963..dc9b2543175 100644
--- a/packages/smooth_app/lib/cards/product_cards/product_title_card.dart
+++ b/packages/smooth_app/lib/cards/product_cards/product_title_card.dart
@@ -4,10 +4,11 @@ import 'package:openfoodfacts/model/Product.dart';
import 'package:smooth_app/helpers/extension_on_text_helper.dart';
class ProductTitleCard extends StatelessWidget {
- const ProductTitleCard(this.product, {this.dense = false});
+ const ProductTitleCard(this.product, this.isSelectable, {this.dense = false});
final Product product;
final bool dense;
+ final bool isSelectable;
@override
Widget build(BuildContext context) {
@@ -21,12 +22,12 @@ class ProductTitleCard extends StatelessWidget {
title: Text(
_getProductName(appLocalizations),
style: themeData.textTheme.headline4,
- ).selectable(),
+ ).selectable(isSelectable: isSelectable),
subtitle: Text(product.brands ?? appLocalizations.unknownBrand),
trailing: Text(
product.quantity ?? '',
style: themeData.textTheme.headline3,
- ).selectable(),
+ ).selectable(isSelectable: isSelectable),
),
);
}
diff --git a/packages/smooth_app/lib/cards/product_cards/question_card.dart b/packages/smooth_app/lib/cards/product_cards/question_card.dart
index b34b8602211..a41d456b513 100644
--- a/packages/smooth_app/lib/cards/product_cards/question_card.dart
+++ b/packages/smooth_app/lib/cards/product_cards/question_card.dart
@@ -31,6 +31,10 @@ class _QuestionCardState extends State
int _currentQuestionIndex = 0;
InsightAnnotation? _lastAnswer;
+ static const Color _noBackground = Colors.redAccent;
+ static const Color _yesBackground = Colors.lightGreen;
+ static const Color _yesNoTextColor = Colors.white;
+
@override
Widget build(BuildContext context) {
return WillPopScope(
@@ -41,7 +45,7 @@ class _QuestionCardState extends State
return true;
},
child: Scaffold(
- backgroundColor: const Color(0xff4f4f4f),
+ backgroundColor: Theme.of(context).colorScheme.background,
appBar: AppBar(),
body: _buildAnimationSwitcher(),
),
@@ -149,7 +153,11 @@ class _QuestionCardState extends State
padding: const EdgeInsets.symmetric(horizontal: SMALL_SPACE),
child: Column(
children: [
- ProductTitleCard(widget.product, dense: true),
+ ProductTitleCard(
+ widget.product,
+ true,
+ dense: true,
+ ),
],
),
),
@@ -170,7 +178,10 @@ class _QuestionCardState extends State
padding: const EdgeInsets.only(bottom: SMALL_SPACE),
child: Text(
question.question!,
- style: Theme.of(context).textTheme.headline4,
+ style: Theme.of(context)
+ .textTheme
+ .headline4!
+ .apply(color: Colors.black),
),
),
Container(
@@ -195,58 +206,64 @@ class _QuestionCardState extends State
Widget _buildAnswerOptions(
BuildContext context, List questions,
{required int currentQuestionIndex}) {
- final double yesNoButtonWidth = MediaQuery.of(context).size.width / 3;
+ final double yesNoHeight = MediaQuery.of(context).size.width / (3 * 1.25);
final RobotoffQuestion question = questions[currentQuestionIndex];
+
return Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
- SizedBox(
- width: yesNoButtonWidth,
- height: yesNoButtonWidth / 1.25,
- child: _buildAnswerButton(
- insightId: question.insightId,
- insightAnnotation: InsightAnnotation.NO,
- backgroundColor: Colors.redAccent,
- contentColor: Colors.white,
- currentQuestionIndex: currentQuestionIndex,
+ Expanded(
+ child: SizedBox(
+ height: yesNoHeight,
+ child: _buildAnswerButton(
+ insightId: question.insightId,
+ insightAnnotation: InsightAnnotation.NO,
+ backgroundColor: _noBackground,
+ contentColor: _yesNoTextColor,
+ currentQuestionIndex: currentQuestionIndex,
+ ),
+ ),
+ ),
+ Expanded(
+ child: SizedBox(
+ height: yesNoHeight,
+ child: _buildAnswerButton(
+ insightId: question.insightId,
+ insightAnnotation: InsightAnnotation.YES,
+ backgroundColor: _yesBackground,
+ contentColor: _yesNoTextColor,
+ currentQuestionIndex: currentQuestionIndex,
+ ),
),
),
- SizedBox(
- width: yesNoButtonWidth,
- height: yesNoButtonWidth / 1.25,
+ ],
+ ),
+ Row(
+ children: [
+ Expanded(
child: _buildAnswerButton(
insightId: question.insightId,
- insightAnnotation: InsightAnnotation.YES,
- backgroundColor: Colors.lightGreen,
- contentColor: Colors.white,
+ insightAnnotation: InsightAnnotation.MAYBE,
+ backgroundColor: const Color(0xFFFFEFB7),
+ contentColor: Colors.black,
currentQuestionIndex: currentQuestionIndex,
),
),
],
),
- AspectRatio(
- aspectRatio: 8,
- child: _buildAnswerButton(
- insightId: question.insightId,
- insightAnnotation: InsightAnnotation.MAYBE,
- backgroundColor: Colors.white,
- contentColor: Colors.grey,
- currentQuestionIndex: currentQuestionIndex,
- ),
- ),
],
);
}
- Widget _buildAnswerButton({
- required String? insightId,
- required InsightAnnotation insightAnnotation,
- required Color backgroundColor,
- required Color contentColor,
- required int currentQuestionIndex,
- }) {
+ Widget _buildAnswerButton(
+ {required String? insightId,
+ required InsightAnnotation insightAnnotation,
+ required Color backgroundColor,
+ required Color contentColor,
+ required int currentQuestionIndex,
+ EdgeInsets padding = const EdgeInsets.all(4)}) {
final AppLocalizations appLocalizations = AppLocalizations.of(context)!;
String buttonText;
IconData? icon;
@@ -262,28 +279,29 @@ class _QuestionCardState extends State
case InsightAnnotation.MAYBE:
buttonText = appLocalizations.skip;
}
- return GestureDetector(
- onTap: () async {
- try {
- await saveAnswer(
- context,
- insightId: insightId,
- insightAnnotation: insightAnnotation,
- );
- } catch (e) {
- await LoadingDialog.error(
- context: context,
- title: appLocalizations.error_occurred,
- );
- Navigator.of(context).pop();
- return;
- }
- setState(() {
- _lastAnswer = insightAnnotation;
- _currentQuestionIndex++;
- });
- },
- child: Card(
+ return Padding(
+ padding: padding,
+ child: MaterialButton(
+ onPressed: () async {
+ try {
+ await _saveAnswer(
+ context,
+ insightId: insightId,
+ insightAnnotation: insightAnnotation,
+ );
+ } catch (e) {
+ await LoadingDialog.error(
+ context: context,
+ title: appLocalizations.error_occurred,
+ );
+ Navigator.of(context).pop();
+ return;
+ }
+ setState(() {
+ _lastAnswer = insightAnnotation;
+ _currentQuestionIndex++;
+ });
+ },
elevation: 4,
color: backgroundColor,
shape: const RoundedRectangleBorder(
@@ -312,7 +330,7 @@ class _QuestionCardState extends State
}
}
-Future saveAnswer(
+Future _saveAnswer(
BuildContext context, {
required String? insightId,
required InsightAnnotation insightAnnotation,
@@ -320,12 +338,12 @@ Future saveAnswer(
final AppLocalizations appLocalizations = AppLocalizations.of(context)!;
await LoadingDialog.run(
context: context,
+ title: appLocalizations.saving_answer,
future: OpenFoodAPIClient.postInsightAnnotation(
insightId,
insightAnnotation,
deviceId: OpenFoodAPIConfiguration.uuid,
),
- title: appLocalizations.saving_answer,
);
}
@@ -334,8 +352,6 @@ class CongratsWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
- final TextStyle bodyTextStyle =
- Theme.of(context).textTheme.bodyText2!.apply(color: Colors.white);
final AppLocalizations appLocalizations = AppLocalizations.of(context)!;
final UserManagementProvider userManagementProvider =
context.watch();
@@ -345,14 +361,14 @@ class CongratsWidget extends StatelessWidget {
children: [
const Icon(
Icons.grade,
- color: Colors.white,
- size: 72,
+ color: Colors.amber,
+ size: 100,
),
Padding(
padding: const EdgeInsets.symmetric(vertical: MEDIUM_SPACE),
child: Text(
appLocalizations.thanks_for_contributing,
- style: bodyTextStyle,
+ style: Theme.of(context).textTheme.bodyText1,
),
),
FutureBuilder(
@@ -366,38 +382,24 @@ class CongratsWidget extends StatelessWidget {
}
return Column(
children: [
- InkWell(
- onTap: () async {
+ SmoothActionButton(
+ text: appLocalizations.sign_in,
+ onPressed: () async {
Navigator.pop(context);
await Navigator.push(
context,
MaterialPageRoute(
- builder: (BuildContext context) =>
- const LoginPage(),
+ builder: (_) => const LoginPage(),
),
);
},
- child: Container(
- decoration: const BoxDecoration(
- borderRadius: BorderRadius.all(ANGULAR_RADIUS),
- color: Colors.grey,
- ),
- width: 150,
- padding: const EdgeInsets.all(MEDIUM_SPACE),
- child: Center(
- child: Text(
- appLocalizations.sign_in,
- style: Theme.of(context).textTheme.headline3,
- ),
- ),
- ),
),
Padding(
padding:
const EdgeInsets.symmetric(vertical: MEDIUM_SPACE),
child: Text(
appLocalizations.sign_in_text,
- style: bodyTextStyle,
+ style: Theme.of(context).textTheme.bodyText2,
textAlign: TextAlign.center,
),
),
@@ -407,8 +409,8 @@ class CongratsWidget extends StatelessWidget {
return EMPTY_WIDGET;
}
}),
- SmoothActionButton(
- text: appLocalizations.close,
+ TextButton(
+ child: Text(appLocalizations.close),
onPressed: () => Navigator.pop(context),
),
],
diff --git a/packages/smooth_app/lib/cards/product_cards/smooth_product_card_not_found.dart b/packages/smooth_app/lib/cards/product_cards/smooth_product_card_not_found.dart
index 91e675b4ef2..728d93fb6c2 100644
--- a/packages/smooth_app/lib/cards/product_cards/smooth_product_card_not_found.dart
+++ b/packages/smooth_app/lib/cards/product_cards/smooth_product_card_not_found.dart
@@ -1,11 +1,9 @@
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
-import 'package:provider/provider.dart';
import 'package:smooth_app/generic_lib/buttons/smooth_large_button_with_icon.dart';
import 'package:smooth_app/generic_lib/design_constants.dart';
import 'package:smooth_app/generic_lib/widgets/smooth_card.dart';
import 'package:smooth_app/pages/product/add_new_product_page.dart';
-import 'package:smooth_app/themes/theme_provider.dart';
class SmoothProductCardNotFound extends StatelessWidget {
const SmoothProductCardNotFound({
@@ -21,7 +19,6 @@ class SmoothProductCardNotFound extends StatelessWidget {
@override
Widget build(BuildContext context) {
final AppLocalizations appLocalizations = AppLocalizations.of(context)!;
- final ThemeProvider themeProvider = context.watch();
return LayoutBuilder(
builder: (BuildContext context, BoxConstraints constraints) {
return SmoothCard(
@@ -51,7 +48,6 @@ class SmoothProductCardNotFound extends StatelessWidget {
text: appLocalizations.add_product_information_button_label,
icon: Icons.add,
padding: const EdgeInsets.symmetric(vertical: LARGE_SPACE),
- isDarkMode: themeProvider.darkTheme,
onPressed: () {
Navigator.push(
context,
diff --git a/packages/smooth_app/lib/data_models/onboarding_loader.dart b/packages/smooth_app/lib/data_models/onboarding_loader.dart
index 5a4227534c6..a1d34a23377 100644
--- a/packages/smooth_app/lib/data_models/onboarding_loader.dart
+++ b/packages/smooth_app/lib/data_models/onboarding_loader.dart
@@ -29,6 +29,7 @@ class OnboardingLoader {
case OnboardingPage.HEALTH_CARD_EXAMPLE:
case OnboardingPage.ECO_CARD_EXAMPLE:
case OnboardingPage.PREFERENCES_PAGE:
+ case OnboardingPage.CONSENT_PAGE:
return;
case OnboardingPage.ONBOARDING_COMPLETE:
await _unloadData();
diff --git a/packages/smooth_app/lib/data_models/product_preferences.dart b/packages/smooth_app/lib/data_models/product_preferences.dart
index b259d7f58f0..ddeba010688 100644
--- a/packages/smooth_app/lib/data_models/product_preferences.dart
+++ b/packages/smooth_app/lib/data_models/product_preferences.dart
@@ -43,22 +43,6 @@ class ProductPreferences extends ProductPreferencesManager with ChangeNotifier {
static String _getAttributeAssetPath(final String languageCode) =>
'assets/metadata/init_attribute_groups_$languageCode.json';
- static const List _DEFAULT_ATTRIBUTES = [
- Attribute.ATTRIBUTE_NUTRISCORE,
- Attribute.ATTRIBUTE_ECOSCORE,
- Attribute.ATTRIBUTE_NOVA,
- Attribute.ATTRIBUTE_VEGETARIAN,
- Attribute.ATTRIBUTE_VEGAN,
- Attribute.ATTRIBUTE_PALM_OIL_FREE,
- Attribute.ATTRIBUTE_LOW_SALT,
- Attribute.ATTRIBUTE_LOW_SUGARS,
- Attribute.ATTRIBUTE_LOW_FAT,
- Attribute.ATTRIBUTE_LOW_SATURATED_FAT,
- Attribute.ATTRIBUTE_LABELS_ORGANIC,
- Attribute.ATTRIBUTE_LABELS_FAIR_TRADE,
- Attribute.ATTRIBUTE_FOREST_FOOTPRINT,
- ];
-
/// Inits with the best available not-network references.
///
/// That means trying with assets and local database.
@@ -198,17 +182,34 @@ class ProductPreferences extends ProductPreferencesManager with ChangeNotifier {
availableProductPreferences = myAvailableProductPreferences;
}
+ @override
+ String getImportanceIdForAttributeId(String attributeId) =>
+ _getRefinedImportanceId(super.getImportanceIdForAttributeId(attributeId));
+
+ /// Downgrades "very important" to "important" (from 4 to 3 choices, simpler).
+ static String _getRefinedImportanceId(final String importanceId) =>
+ importanceId == PreferenceImportance.ID_VERY_IMPORTANT
+ ? PreferenceImportance.ID_IMPORTANT
+ : importanceId;
+
Future resetImportances() async {
await clearImportances(notifyListeners: false);
- await Future.wait(
- _DEFAULT_ATTRIBUTES.map(
- (String attributeId) => setImportance(
- attributeId,
- PreferenceImportance.ID_IMPORTANT,
- notifyListeners: false,
- ),
- ),
- );
+ if (attributeGroups != null) {
+ for (final AttributeGroup attributeGroup in attributeGroups!) {
+ if (attributeGroup.attributes != null) {
+ for (final Attribute attribute in attributeGroup.attributes!) {
+ final String? defaultF = attribute.defaultF;
+ if (attribute.id != null && defaultF != null) {
+ await setImportance(
+ attribute.id!,
+ _getRefinedImportanceId(defaultF),
+ notifyListeners: false,
+ );
+ }
+ }
+ }
+ }
+ }
notify();
}
diff --git a/packages/smooth_app/lib/data_models/user_management_provider.dart b/packages/smooth_app/lib/data_models/user_management_provider.dart
index 27295fc057a..cf22d3d60f2 100644
--- a/packages/smooth_app/lib/data_models/user_management_provider.dart
+++ b/packages/smooth_app/lib/data_models/user_management_provider.dart
@@ -3,7 +3,7 @@ import 'package:openfoodfacts/openfoodfacts.dart';
import 'package:openfoodfacts/utils/OpenFoodAPIConfiguration.dart';
import 'package:smooth_app/database/dao_secured_string.dart';
-class UserManagementProvider extends ChangeNotifier {
+class UserManagementProvider with ChangeNotifier {
static const String _USER_ID = 'user_id';
static const String _PASSWORD = 'pasword';
@@ -64,6 +64,7 @@ class UserManagementProvider extends ChangeNotifier {
/// Saves user to storage
Future putUser(User user) async {
+ OpenFoodAPIConfiguration.globalUser = user;
await DaoSecuredString.put(
key: _USER_ID,
value: user.userId,
diff --git a/packages/smooth_app/lib/data_models/user_preferences.dart b/packages/smooth_app/lib/data_models/user_preferences.dart
index 7f03e1af599..ca4c0f47cfb 100644
--- a/packages/smooth_app/lib/data_models/user_preferences.dart
+++ b/packages/smooth_app/lib/data_models/user_preferences.dart
@@ -17,7 +17,7 @@ class UserPreferences extends ChangeNotifier {
static const String _TAG_PREFIX_IMPORTANCE = 'IMPORTANCE_AS_STRING';
static const String _TAG_INIT = 'init';
- static const String _TAG_THEME_DARK = 'themeDark';
+ static const String _TAG_CURRENT_THEME_MODE = 'currentThemeMode';
static const String _TAG_THEME_COLOR_TAG = 'themeColorTag';
static const String _TAG_USER_COUNTRY_CODE = 'userCountry';
static const String _TAG_LAST_VISITED_ONBOARDING_PAGE =
@@ -50,15 +50,8 @@ class UserPreferences extends ChangeNotifier {
_sharedPreferences.getString(_getImportanceTag(attributeId)) ??
PreferenceImportance.ID_NOT_IMPORTANT;
- Future resetImportances(
- final ProductPreferences productPreferences,
- ) async =>
- productPreferences.resetImportances();
-
- Future setThemeDark(final bool state) async =>
- _sharedPreferences.setBool(_TAG_THEME_DARK, state);
-
- bool get isThemeDark => _sharedPreferences.getBool(_TAG_THEME_DARK) ?? false;
+ Future setTheme(final String theme) async =>
+ _sharedPreferences.setString(_TAG_CURRENT_THEME_MODE, theme);
Future setCrashReports(final bool state) async =>
_sharedPreferences.setBool(_TAG_CRASH_REPORTS, state);
@@ -77,7 +70,8 @@ class UserPreferences extends ChangeNotifier {
String get themeColorTag =>
_sharedPreferences.getString(_TAG_THEME_COLOR_TAG) ?? 'COLOR_TAG_BLUE';
-
+ String get currentTheme =>
+ _sharedPreferences.getString(_TAG_CURRENT_THEME_MODE) ?? 'System Default';
Future setUserCountry(final String countryCode) async =>
_sharedPreferences.setString(_TAG_USER_COUNTRY_CODE, countryCode);
diff --git a/packages/smooth_app/lib/generic_lib/buttons/smooth_large_button_with_icon.dart b/packages/smooth_app/lib/generic_lib/buttons/smooth_large_button_with_icon.dart
index 558fef2744d..933622edaf6 100644
--- a/packages/smooth_app/lib/generic_lib/buttons/smooth_large_button_with_icon.dart
+++ b/packages/smooth_app/lib/generic_lib/buttons/smooth_large_button_with_icon.dart
@@ -1,24 +1,26 @@
import 'package:flutter/material.dart';
+import 'package:provider/provider.dart';
import 'package:smooth_app/generic_lib/buttons/smooth_simple_button.dart';
+import 'package:smooth_app/themes/theme_provider.dart';
class SmoothLargeButtonWithIcon extends StatelessWidget {
const SmoothLargeButtonWithIcon({
required this.text,
required this.icon,
required this.onPressed,
- required this.isDarkMode,
this.padding,
});
final String text;
final IconData icon;
final VoidCallback onPressed;
- final bool isDarkMode;
final EdgeInsets? padding;
@override
Widget build(BuildContext context) {
final ThemeData themeData = Theme.of(context);
+ final bool isDarkMode =
+ Provider.of(context, listen: false).isDarkMode(context);
return SmoothSimpleButton(
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
diff --git a/packages/smooth_app/lib/generic_lib/dialogs/smooth_alert_dialog.dart b/packages/smooth_app/lib/generic_lib/dialogs/smooth_alert_dialog.dart
index a0d82d8d5b8..4edc35d22f6 100644
--- a/packages/smooth_app/lib/generic_lib/dialogs/smooth_alert_dialog.dart
+++ b/packages/smooth_app/lib/generic_lib/dialogs/smooth_alert_dialog.dart
@@ -82,6 +82,9 @@ class SmoothAlertDialog extends StatelessWidget {
style: Theme.of(context).textTheme.headline2,
),
),
+ const SizedBox(
+ width: 10,
+ ),
_buildCross(false, context),
],
),
diff --git a/packages/smooth_app/lib/generic_lib/loading_dialog.dart b/packages/smooth_app/lib/generic_lib/loading_dialog.dart
index c87f99fa4a0..5b0a531c2cf 100644
--- a/packages/smooth_app/lib/generic_lib/loading_dialog.dart
+++ b/packages/smooth_app/lib/generic_lib/loading_dialog.dart
@@ -1,5 +1,4 @@
import 'package:flutter/material.dart';
-import 'package:flutter/scheduler.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:smooth_app/generic_lib/buttons/smooth_action_button.dart';
import 'package:smooth_app/generic_lib/dialogs/smooth_alert_dialog.dart';
@@ -62,6 +61,7 @@ class LoadingDialog {
future.then(
(final T value) => _popDialog(context, value),
);
+ // TODO(monsieurtanuki): is that safe? If the future finishes before the "return" call?
return _getDialog(context, title);
},
);
@@ -72,11 +72,8 @@ class LoadingDialog {
return;
}
_popEd = true;
- // To avoid returning before the alertDialog is build
- SchedulerBinding.instance?.addPostFrameCallback((_) {
- // Here we use the root navigator so that we can pop dialog while using multiple navigators.
- Navigator.of(context, rootNavigator: true).pop(value);
- });
+ // Here we use the root navigator so that we can pop dialog while using multiple navigators.
+ Navigator.of(context, rootNavigator: true).pop(value);
}
/// Displayed dialog during future.
diff --git a/packages/smooth_app/lib/helpers/extension_on_text_helper.dart b/packages/smooth_app/lib/helpers/extension_on_text_helper.dart
index 91800b39130..5687c9e6f35 100644
--- a/packages/smooth_app/lib/helpers/extension_on_text_helper.dart
+++ b/packages/smooth_app/lib/helpers/extension_on_text_helper.dart
@@ -1,14 +1,19 @@
import 'package:flutter/material.dart';
extension Selectable on Text {
- Widget selectable() {
- return SelectableText(
- data!,
- style: style,
- toolbarOptions: const ToolbarOptions(
- copy: true,
- selectAll: true,
- ),
- );
+ Widget selectable({bool isSelectable = true}) {
+ return isSelectable
+ ? SelectableText(
+ data!,
+ style: style,
+ toolbarOptions: const ToolbarOptions(
+ copy: true,
+ selectAll: true,
+ ),
+ )
+ : Text(
+ data!,
+ style: style,
+ );
}
}
diff --git a/packages/smooth_app/lib/helpers/smooth_matched_product.dart b/packages/smooth_app/lib/helpers/smooth_matched_product.dart
index dfd494cadeb..5cd5cdbb3ea 100644
--- a/packages/smooth_app/lib/helpers/smooth_matched_product.dart
+++ b/packages/smooth_app/lib/helpers/smooth_matched_product.dart
@@ -117,7 +117,6 @@ class _StrongMatchedProduct extends MatchedProduct {
const Map _attributeImportanceWeight = {
PreferenceImportance.ID_MANDATORY: 4,
- PreferenceImportance.ID_VERY_IMPORTANT: 1, // same as important from now on
PreferenceImportance.ID_IMPORTANT: 1,
PreferenceImportance.ID_NOT_IMPORTANT: 0,
};
diff --git a/packages/smooth_app/lib/l10n/app_aa.arb b/packages/smooth_app/lib/l10n/app_aa.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_aa.arb
+++ b/packages/smooth_app/lib/l10n/app_aa.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_af.arb b/packages/smooth_app/lib/l10n/app_af.arb
index 91c3e81fdea..b9048584bde 100644
--- a/packages/smooth_app/lib/l10n/app_af.arb
+++ b/packages/smooth_app/lib/l10n/app_af.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Soek",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Probeer weer",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_ak.arb b/packages/smooth_app/lib/l10n/app_ak.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_ak.arb
+++ b/packages/smooth_app/lib/l10n/app_ak.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_am.arb b/packages/smooth_app/lib/l10n/app_am.arb
index cd597c97e0f..1130de6acb7 100644
--- a/packages/smooth_app/lib/l10n/app_am.arb
+++ b/packages/smooth_app/lib/l10n/app_am.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_ar.arb b/packages/smooth_app/lib/l10n/app_ar.arb
index 04a739934f4..2ac965b7ee5 100644
--- a/packages/smooth_app/lib/l10n/app_ar.arb
+++ b/packages/smooth_app/lib/l10n/app_ar.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "برجاء إخال كلمة مرور",
"create_account": "إنشاء حساب",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "تهانينا! تم إنشاء حسابك للتو.",
- "sign_up_page_display_name_hint": "اسم العرض",
+ "sign_up_page_display_name_hint": "اﻹسم",
"sign_up_page_display_name_error_empty": "يرجاء إدخال الإسم العرض الذي تود استخدامه",
"sign_up_page_email_hint": "البريد الإلكتروني",
"sign_up_page_email_error_empty": "البريد الإلكتروني مطلوب",
@@ -276,7 +278,7 @@
"description": "When you press this button, all products (in list or category) are sorted according to your preferences."
},
"ranking_tab_all": "الكل",
- "ranking_subtitle_match_yes": "",
+ "ranking_subtitle_match_yes": "A great match for you",
"ranking_subtitle_match_no": "تطابُق ضعيف جداً",
"ranking_subtitle_match_maybe": "تطابق غير معروف",
"reloaded_with_new_preferences": "تم التحميل مع تفضيلات جديدة",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "الملف الشخصي",
+ "scan_navbar_label": "بحث",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "الملف الشخصي",
+ "history_navbar_label": "السجل",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "فرز حسب الفئة",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "مكونات",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "صورة المكونات",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,9 +360,9 @@
"@packaging_information_photo": {},
"missing_product": "لقد وجدت منتجا جديدا!",
"@missing_product": {},
- "add_product_take_photos": "التقط صورًا للعبوة لإضافة هذا المنتج إلى قاعدة بياناتنا.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
- "add_product_take_photos_descriptive": "يرجى التقاط الصور التالية ويمكن لمحرك الحقائق الغذائية المفتوحة أن يعمل على الباقي!",
+ "add_product_take_photos_descriptive": "يرجى التقاط الصور التالية ويمكن لمحرك Open Food Facts أن يعمل على الباقي!",
"@add_product_take_photos_descriptive": {},
"add_product_information_button_label": "إضافة معلومات عن المنتج",
"@add_product_information_button_label": {},
@@ -414,7 +420,7 @@
"@uploading_image": {
"description": "Message when a new picture is uploading to the server"
},
- "score_add_missing_ingredients": "Add missing ingredients",
+ "score_add_missing_ingredients": "أضف المكونات المفقودة",
"score_add_missing_nutrition_facts": "Add missing nutrition facts",
"score_add_missing_product_category": "Add missing product category",
"score_update_nutrition_facts": "Update nutrition facts",
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "إعادة المحاولة",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "إكتشف",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "إرسال تحليلات مجهولة",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
-}
+}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_as.arb b/packages/smooth_app/lib/l10n/app_as.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_as.arb
+++ b/packages/smooth_app/lib/l10n/app_as.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_az.arb b/packages/smooth_app/lib/l10n/app_az.arb
index 6e1541ea6ca..d6c16020333 100644
--- a/packages/smooth_app/lib/l10n/app_az.arb
+++ b/packages/smooth_app/lib/l10n/app_az.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Ad",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Axtar",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "Tarixçə",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Tərkibi",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Yenidən sına",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Kəşf et",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_be.arb b/packages/smooth_app/lib/l10n/app_be.arb
index 0e34fbd950e..77bf6aa99b5 100644
--- a/packages/smooth_app/lib/l10n/app_be.arb
+++ b/packages/smooth_app/lib/l10n/app_be.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Пошук",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Паўтарыць",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_bg.arb b/packages/smooth_app/lib/l10n/app_bg.arb
index c98ec4b0194..10f2f682213 100644
--- a/packages/smooth_app/lib/l10n/app_bg.arb
+++ b/packages/smooth_app/lib/l10n/app_bg.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Моля, въведи парола",
"create_account": "Създаване на акаунт",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -115,7 +117,7 @@
"@reset_password": {
"description": "Forgot password page title"
},
- "reset_password_explanation_text": "В случай на забравена парола, въведете Вашето потребителско име или емайл адрес, за да получите инструкции за нулиране на паролата. Също така, не забравяйте да проверите папката Спам.",
+ "reset_password_explanation_text": "В случай на забравена парола, въведи твоето потребителско име или емайл адрес, за да получиш инструкции за нулиране на паролата. Също така, не забравяй да провериш папка Спам.",
"username_or_email": "Потребителско име или е-мейл адрес",
"@username_or_email": {
"description": "Text field hint for password reset"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Честито! Твоят акаунт току-що бе създаден.",
- "sign_up_page_display_name_hint": "Екранно име",
+ "sign_up_page_display_name_hint": "Име",
"sign_up_page_display_name_error_empty": "Моля, въведи екранно име, което искаш да използваш",
"sign_up_page_email_hint": "Имейл",
"sign_up_page_email_error_empty": "Изисква се имейл",
@@ -165,14 +167,14 @@
"@donate_url": {
"description": "Please insert the right url from the website here."
},
- "sign_up_page_agree_error_invalid": "Когато създавате нов профил, приемането на Условията за ползване е задължително, въпреки това, анонимни приноси могат да се правят чрез приложението",
+ "sign_up_page_agree_error_invalid": "Когато създаваш нов профил, приемането на Условията за ползване е задължително, въпреки това, анонимни приноси могат да се правят чрез приложението",
"@sign_up_page_agree_error_invalid": {
"description": "Error message: You have to agree to the terms-of-use (A checkbox to do so is above this error message)"
},
"sign_up_page_producer_checkbox": "Аз съм производител на храни",
"sign_up_page_producer_hint": "Производител/марка",
"sign_up_page_producer_error_empty": "Моля, въведи производител или марка",
- "sign_up_page_subscribe_checkbox": "Бих искал да се абонирам за бюлетина Open Food Facts (Забележка: Можеш да се отпишеш от него по всяко време)",
+ "sign_up_page_subscribe_checkbox": "Бих искал да се абонирам за бюлетина на Open Food Facts (Забележка: Можеш да се отпишеш от него по всяко време)",
"@Settings": {},
"settingsTitle": "Настройки",
"@settingsTitle": {
@@ -199,7 +201,7 @@
"@support": {
"description": "Button label: Opens a pop up window where all ways to get support are shown"
},
- "support_join_slack": "Помоли за помощ в нашият Slack канал",
+ "support_join_slack": "Поискай помощ в нашият Slack канал",
"support_via_email": "Изпрати ни имейл",
"termsOfUse": "Условия за ползване",
"@termsOfUse": {},
@@ -267,7 +269,7 @@
"myPreferences_settings_subtitle": "Тъмен режим, Тема, ...",
"myPreferences_food_title": "Хранителни предпочитания",
"myPreferences_food_subtitle": "Избери каква информация за храната е най-важна за теб.",
- "confirmResetPreferences": "Нулирай твоите хранителни предпочитания?",
+ "confirmResetPreferences": "Нулиране на твоите хранителни предпочитания?",
"@confirmResetPreferences": {
"description": "Pop up title: Reassuring if the food preferences should really be reset"
},
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Профил",
+ "scan_navbar_label": "Търсене",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Профил",
+ "history_navbar_label": "История",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Филтър по категория",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Съставки",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Снимка на съставките",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "Откри нов продукт!",
"@missing_product": {},
- "add_product_take_photos": "Направи снимки на опаковката, за да добавиш този продукт към нашата база данни.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Моля, направи следните снимки и Open Food Facts ще направи останалото!",
"@add_product_take_photos_descriptive": {},
@@ -400,13 +406,13 @@
"@confirm_other_interesting_photo_button_label": {
"description": "Button clicking on which confirms a miscellaneous photo of the product."
},
- "other_photo_uploaded": "Miscellaneous photo uploaded",
+ "other_photo_uploaded": "Качена е различна снимка",
"@other_photo_uploaded": {},
"retake_photo_button_label": "Направи отново",
"@retake_photo_button_label": {
"description": "Button clicking on which allows users to retake the last photo they took."
},
- "selecting_photo": "Selecting photo",
+ "selecting_photo": "Избор на снимката",
"@selecting_photo": {
"description": "Progress indicator when the users takes a photo"
},
@@ -458,7 +464,7 @@
"@Product Addition": {},
"added_product_thanks": "Благодарим, че добави този продукт!",
"@added_product_thanks": {},
- "product_search_same_category": "Compare to Category",
+ "product_search_same_category": "Сравни с категорията",
"@product_search_same_category": {
"description": "Button looking for the other products within the same category. Less than 30 characters"
},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Продуктът е премахнат",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Продуктът не можа да бъде премахнат",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Повторен опит",
- "main_app_color": "Main color of the app",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Открий",
+ "how_to_contribute": "How to Contribute",
+ "main_app_color": "Основен цвят на приложението",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Анонимно споделяне на статистики",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_bm.arb b/packages/smooth_app/lib/l10n/app_bm.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_bm.arb
+++ b/packages/smooth_app/lib/l10n/app_bm.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_bn.arb b/packages/smooth_app/lib/l10n/app_bn.arb
index 01d1ea511e5..05962391d64 100644
--- a/packages/smooth_app/lib/l10n/app_bn.arb
+++ b/packages/smooth_app/lib/l10n/app_bn.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "নাম",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "অনুসন্ধান",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "ইতিহাস",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "উপকরণসমূহ",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "পুনরায় চেষ্টা করুন",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "খুঁজুন",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_bo.arb b/packages/smooth_app/lib/l10n/app_bo.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_bo.arb
+++ b/packages/smooth_app/lib/l10n/app_bo.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_br.arb b/packages/smooth_app/lib/l10n/app_br.arb
index 832e6638e04..14b54918cf7 100644
--- a/packages/smooth_app/lib/l10n/app_br.arb
+++ b/packages/smooth_app/lib/l10n/app_br.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Anv",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Klask",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Aozennoù",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Klask en-dro",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Dizoleiñ",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_bs.arb b/packages/smooth_app/lib/l10n/app_bs.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_bs.arb
+++ b/packages/smooth_app/lib/l10n/app_bs.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_ca.arb b/packages/smooth_app/lib/l10n/app_ca.arb
index 0eab022b7aa..e5ac6a7b605 100644
--- a/packages/smooth_app/lib/l10n/app_ca.arb
+++ b/packages/smooth_app/lib/l10n/app_ca.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Nom",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Cerca",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "Historial",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Foto dels ingredients",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Torna a provar",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Descobrir",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_ce.arb b/packages/smooth_app/lib/l10n/app_ce.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_ce.arb
+++ b/packages/smooth_app/lib/l10n/app_ce.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_co.arb b/packages/smooth_app/lib/l10n/app_co.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_co.arb
+++ b/packages/smooth_app/lib/l10n/app_co.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_cs.arb b/packages/smooth_app/lib/l10n/app_cs.arb
index ecd00ede156..873a4827cb7 100644
--- a/packages/smooth_app/lib/l10n/app_cs.arb
+++ b/packages/smooth_app/lib/l10n/app_cs.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Zadejte heslo",
"create_account": "Vytvořit účet",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Gratulujeme! Váš účet byl vytvořen.",
- "sign_up_page_display_name_hint": "Zobrazované jméno",
+ "sign_up_page_display_name_hint": "Jméno",
"sign_up_page_display_name_error_empty": "Zadejte zobrazované jméno, které chcete používat",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail je povinný",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Vyhledat",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "Historie",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Složení",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Opakovat",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Zjistit víc",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_cv.arb b/packages/smooth_app/lib/l10n/app_cv.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_cv.arb
+++ b/packages/smooth_app/lib/l10n/app_cv.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_cy.arb b/packages/smooth_app/lib/l10n/app_cy.arb
index 71a2c854db7..7a60cea42e2 100644
--- a/packages/smooth_app/lib/l10n/app_cy.arb
+++ b/packages/smooth_app/lib/l10n/app_cy.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Cynhwysion",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_da.arb b/packages/smooth_app/lib/l10n/app_da.arb
index caa8e5e649e..3549387a1ad 100644
--- a/packages/smooth_app/lib/l10n/app_da.arb
+++ b/packages/smooth_app/lib/l10n/app_da.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Angiv adgangskode",
"create_account": "Opret konto",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Din konto er nu oprettet.",
- "sign_up_page_display_name_hint": "Visningsnavn",
+ "sign_up_page_display_name_hint": "Navn",
"sign_up_page_display_name_error_empty": "Angiv det navn, der ønskes vist",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail er obligatorisk",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profil",
+ "scan_navbar_label": "Søg",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profil",
+ "history_navbar_label": "Historik",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filtrér efter kategori",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredienser",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingrediensfoto",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "Nyt produkt blev fundet!",
"@missing_product": {},
- "add_product_take_photos": "Tag fotos af emballagen for at føje produktet til OFF-databasen.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Tag flg. fotos, hvorefter OFF-motoren klarer resten!",
"@add_product_take_photos_descriptive": {},
@@ -424,7 +430,7 @@
"nutrition_page_per_serving": "per portion",
"nutrition_page_add_nutrient": "Tilføj et næringsstof",
"nutrition_page_serving_size": "Portionsstørrelse",
- "nutrition_page_invalid_number": "Invalid number",
+ "nutrition_page_invalid_number": "Ugyldigt nummer",
"nutrition_page_update_running": "Opdaterer produktet på serveren...",
"nutrition_page_update_done": "Produkt opdateret!",
"more_photos": "Flere interessante fotos",
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Produkt fjernet",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Produkt kunne ikke fjernes",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Forsøg igen",
- "main_app_color": "Main color of the app",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Opdag",
+ "how_to_contribute": "How to Contribute",
+ "main_app_color": "Appens basisfarve",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Indsend anonyme analysedata",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_de.arb b/packages/smooth_app/lib/l10n/app_de.arb
index 619b179dd95..aa10784c230 100644
--- a/packages/smooth_app/lib/l10n/app_de.arb
+++ b/packages/smooth_app/lib/l10n/app_de.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Bitte Passwort eingeben",
"create_account": "Konto erstellen",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Herzlichen Glückwunsch! Ihr Benutzerkonto wurde erstellt.",
- "sign_up_page_display_name_hint": "Anzeigename",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Bitte geben Sie den zu verwendenden Anzeigenamen ein",
"sign_up_page_email_hint": "E-Mail-Adresse",
"sign_up_page_email_error_empty": "E-Mail-Adresse erforderlich",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profil",
+ "scan_navbar_label": "Suchen",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profil",
+ "history_navbar_label": "Verlauf",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Nach Kategorie filtern",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Zutaten",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Foto der Zutatenliste",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "Sie haben eine neues Produkt gefunden!",
"@missing_product": {},
- "add_product_take_photos": "Fotografieren Sie die Verpackung, um dieses Produkt in unsere Datenbank aufzunehmen.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Bitte fotografieren Sie das Folgende und die Open Food Facts Engine erledigt den Rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Produkt entfernt",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Produkt konnte nicht entfernt werden",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Wiederholen",
- "main_app_color": "Main color of the app",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Entdecken",
+ "how_to_contribute": "How to Contribute",
+ "main_app_color": "Hauptfarbe der App",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Anonymisierte Analysedaten senden",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_el.arb b/packages/smooth_app/lib/l10n/app_el.arb
index 74b717fa403..e9343feb09a 100644
--- a/packages/smooth_app/lib/l10n/app_el.arb
+++ b/packages/smooth_app/lib/l10n/app_el.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Πληκτρολογήστε τον κωδικό σας",
"create_account": "Δημιουργήστε λογαριασμό",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Συγχαρητήρια! Ο λογαριασμός σας μόλις δημιουργήθηκε.",
- "sign_up_page_display_name_hint": "Εμφανιζόμενο Όνομα",
+ "sign_up_page_display_name_hint": "Όνομα",
"sign_up_page_display_name_error_empty": "Παρακαλώ εισάγετε το όνομα εμφάνισης που θέλετε να χρησιμοποιήσετε",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "Απαιτείται e-mail",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Αναζήτηση",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "Ιστορικό",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Συστατικά",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Προσπαθήστε ξανά",
- "main_app_color": "Main color of the app",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Ανακαλύψτε",
+ "how_to_contribute": "How to Contribute",
+ "main_app_color": "Το κύριο χρώμα της εφαρμογής",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
-}
+}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_en.arb b/packages/smooth_app/lib/l10n/app_en.arb
index e33ebfeb613..c02eac60610 100644
--- a/packages/smooth_app/lib/l10n/app_en.arb
+++ b/packages/smooth_app/lib/l10n/app_en.arb
@@ -57,7 +57,7 @@
"description": "Looking for: ${BARCODE}"
},
"@Introduction screen": {},
- "welcomeToOpenFoodFacts": "Welcome to Open Food Facts",
+ "welcomeToOpenFoodFacts": "Welcome to Open\u00A0Food\u00A0Facts",
"@welcomeToOpenFoodFacts": {},
"whatIsOff": "Open Food Facts is a global non-profit powered by local communities.",
"@whatIsOff": {
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -172,7 +174,7 @@
"sign_up_page_producer_checkbox": "I am a food producer",
"sign_up_page_producer_hint": "Producer/brand",
"sign_up_page_producer_error_empty": "Please enter a producer or a brand name",
- "sign_up_page_subscribe_checkbox": "I'd like to subscribe to the Open Food Facts newsletter (You can unsubscribe from it at all time)",
+ "sign_up_page_subscribe_checkbox": "I'd like to subscribe to the Open Food Facts newsletter (You can unsubscribe from it at any time)",
"@Settings": {},
"settingsTitle": "Settings",
"@settingsTitle": {
@@ -200,7 +202,7 @@
"description": "Button label: Opens a pop up window where all ways to get support are shown"
},
"support_join_slack": "Ask for help in our Slack channel",
- "support_via_email": "Send us a e-mail",
+ "support_via_email": "Send us an e-mail",
"termsOfUse": "Terms of use",
"@termsOfUse": {},
"about_this_app": "About this app",
@@ -252,7 +254,7 @@
"@saving_answer": {
"description": "Dialog shown to users after they have answered a question, while the answer is being saved in the BE."
},
- "contribute_to_get_rewards": "Help food transparency and get reward badges",
+ "contribute_to_get_rewards": "Help improve food transparency and get rewards",
"@contribute_to_get_rewards": {
"description": "Button description shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards."
},
@@ -262,7 +264,7 @@
"description": "Page title: Page where the ranking preferences can be changed"
},
"myPreferences_profile_title": "Your Profile",
- "myPreferences_profile_subtitle": "Set app settings and find out advices.",
+ "myPreferences_profile_subtitle": "Change app settings and get advice.",
"myPreferences_settings_title": "App Settings",
"myPreferences_settings_subtitle": "Dark mode, Theme, ...",
"myPreferences_food_title": "Food Preferences",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,9 +360,9 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
- "add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
+ "add_product_take_photos_descriptive": "Please take some photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
"add_product_information_button_label": "Add product information",
"@add_product_information_button_label": {},
@@ -451,7 +457,7 @@
"description": "Confirmation, that the product data got canceled by the user"
},
"product_internet_error": "Impossible to fetch information about this product due to a network error.",
- "cached_results_from": "Cached results from:",
+ "cached_results_from": "Show results from:",
"@cached_results_from": {
"description": "Cached results from: x time ago (time ago should not be added to the string)"
},
@@ -482,7 +488,7 @@
"@product_improvement_obsolete_nutrition_image": {
"description": "Message for ProductImprovement.OBSOLETE_NUTRITION_IMAGE"
},
- "product_improvement_origins_to_be_completed": "The Eco-Score takes into account the origins of the ingredients. Please take a photo of them (ingredient list and/or any geographic claim or edit the product) so that they can be taken into account.",
+ "product_improvement_origins_to_be_completed": "The Eco-Score takes into account the origins of the ingredients. Please take a photo of the ingredient list and/or any geographic claim or edit the product, so they can be taken into account.",
"@product_improvement_origins_to_be_completed": {
"description": "Message for ProductImprovement.ORIGINS_TO_BE_COMPLETED"
},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -510,12 +520,12 @@
"@clear": {
"description": "Clears a product list"
},
- "really_clear": "Do you really want to clear this list?",
- "product_compatibility_unknown": "Product Compatibility Unknown",
+ "really_clear": "Do you really want to delete this list?",
+ "product_compatibility_unknown": "Compatibility Unknown",
"@product_compatibility_unknown": {
"description": "Product compatibility summary title"
},
- "product_compatibility_incompatible": "Does not match",
+ "product_compatibility_incompatible": "Doesn't match",
"@product_compatibility_incompatible": {
"description": "Product compatibility summary title"
},
@@ -531,35 +541,35 @@
"percent": {}
}
},
- "plural_ago_days": "{count,plural, =1{one day ago} other{{count} days ago}}",
+ "plural_ago_days": "{count,plural, one {} =1{one day ago} other{{count} days ago}}",
"@plural_ago_days": {
"description": "Cached results from: x days ago",
"placeholders": {
"count": {}
}
},
- "plural_ago_hours": "{count,plural, =1{one hour ago} other{{count} hours ago}}",
+ "plural_ago_hours": "{count,plural, one {} =1{one hour ago} other{{count} hours ago}}",
"@plural_ago_hours": {
"description": "Cached results from: x hours ago",
"placeholders": {
"count": {}
}
},
- "plural_ago_minutes": "{count,plural, =0{less than a minute ago} =1{one minute ago} other{{count} minutes ago}}",
+ "plural_ago_minutes": "{count,plural, one {} =0{less than a minute ago} =1{one minute ago} other{{count} minutes ago}}",
"@plural_ago_minutes": {
"description": "Cached results from: x minutes ago",
"placeholders": {
"count": {}
}
},
- "plural_ago_months": "{count,plural, =1{one month ago} other{{count} months ago}}",
+ "plural_ago_months": "{count,plural, one {} =1{one month ago} other{{count} months ago}}",
"@plural_ago_months": {
"description": "Cached results from: x months ago",
"placeholders": {
"count": {}
}
},
- "plural_ago_weeks": "{count,plural, =1{one week ago} other{{count} weeks ago}}",
+ "plural_ago_weeks": "{count,plural, one {} =1{one week ago} other{{count} weeks ago}}",
"@plural_ago_weeks": {
"description": "Cached results from: x weeks ago",
"placeholders": {
@@ -573,13 +583,53 @@
"count": {}
}
},
- "compare_products_mode": "Compare Mode",
+ "compare_products_mode": "Compare",
"@compare_products_mode": {
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
- "main_app_color": "Main color of the app",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
+ "main_app_color": "Theme",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "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": {
+ "description": "Hint popup indicating the card is clickable during onboarding"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app. You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
+ },
+ "knowledge_panel_text_source": "Go further on {source_name}",
+ "@knowledge_panel_text_source": {
+ "description": "Source field within a text knowledge panel.",
+ "placeholders": {
+ "source_name": {
+ "type": "String"
+ }
+ }
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_eo.arb b/packages/smooth_app/lib/l10n/app_eo.arb
index ba7cd592368..4f42f64857a 100644
--- a/packages/smooth_app/lib/l10n/app_eo.arb
+++ b/packages/smooth_app/lib/l10n/app_eo.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Nomo",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingrediencoj",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Esploru",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_es.arb b/packages/smooth_app/lib/l10n/app_es.arb
index 53fafda8ba3..bd1a4c504f2 100644
--- a/packages/smooth_app/lib/l10n/app_es.arb
+++ b/packages/smooth_app/lib/l10n/app_es.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Por favor, introduzca una contraseña",
"create_account": "Crear una cuenta",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "¡Felicidades! Su cuenta acaba de ser creada.",
- "sign_up_page_display_name_hint": "Mostrar Nombre",
+ "sign_up_page_display_name_hint": "Nombre",
"sign_up_page_display_name_error_empty": "Ingrese el nombre para mostrar que desea usar",
"sign_up_page_email_hint": "E-mail de contacto",
"sign_up_page_email_error_empty": "Se requiere un correo electrónico",
@@ -157,7 +159,7 @@
"sign_up_page_confirm_password_hint": "Confirmar Contraseña",
"sign_up_page_confirm_password_error_empty": "Por favor confirme la contraseña",
"sign_up_page_confirm_password_error_invalid": "Las contraseñas no coinciden",
- "sign_up_page_agree_url": "https://es.openfoodfacts.org/terms-of-use",
+ "sign_up_page_agree_url": "https://world-es.openfoodfacts.org/terms-of-use",
"@sign_up_page_agree_url": {
"description": "Please insert the right url here. Go to the openfoodfacts homepage, switch to your country and then on the bottom left footer is Terms of use from which the url should be taken"
},
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Perfil",
+ "scan_navbar_label": "Buscar",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Perfil",
+ "history_navbar_label": "Historial",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filtrar por categoría",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredientes",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Foto de ingredientes",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "¡Has encontrado un nuevo producto!",
"@missing_product": {},
- "add_product_take_photos": "Tome fotos del embalaje para añadir este producto a nuestra base de datos.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Por favor, tome las siguientes fotos y el motor Open Food Facts puede resolver el resto!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Producto eliminado",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "No se pudo eliminar el producto",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Reintentar",
- "main_app_color": "Main color of the app",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Descubrir",
+ "how_to_contribute": "How to Contribute",
+ "main_app_color": "Color principal de la aplicación",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Enviar análisis anónimos",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
-}
+}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_et.arb b/packages/smooth_app/lib/l10n/app_et.arb
index af7450a6777..bb56f7d5796 100644
--- a/packages/smooth_app/lib/l10n/app_et.arb
+++ b/packages/smooth_app/lib/l10n/app_et.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Palun sisesta salasõna",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-posti aadress",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Otsi",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Koostisosad",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Koostisosade foto",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Proovi uuesti",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Avasta",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_eu.arb b/packages/smooth_app/lib/l10n/app_eu.arb
index c8877f1f3db..e026cdf894e 100644
--- a/packages/smooth_app/lib/l10n/app_eu.arb
+++ b/packages/smooth_app/lib/l10n/app_eu.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Izena",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Bilatu",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "Historiala",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Osagaiak",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Berriro saiatu",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Ohartu",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_fa.arb b/packages/smooth_app/lib/l10n/app_fa.arb
index 1855ebc66a3..ac420c394d0 100644
--- a/packages/smooth_app/lib/l10n/app_fa.arb
+++ b/packages/smooth_app/lib/l10n/app_fa.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "نام",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "جستجو",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "تاریخچه",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "مواد تشکیل دهنده",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "پیدا کردن",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_fi.arb b/packages/smooth_app/lib/l10n/app_fi.arb
index a00d24c4072..3c5076b7537 100644
--- a/packages/smooth_app/lib/l10n/app_fi.arb
+++ b/packages/smooth_app/lib/l10n/app_fi.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Nimi",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Etsi",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "Historia",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ainesosat",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Yritä uudelleen",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Tutustu",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_fil.arb b/packages/smooth_app/lib/l10n/app_fil.arb
index dbb5e0338ba..826a06b2c54 100644
--- a/packages/smooth_app/lib/l10n/app_fil.arb
+++ b/packages/smooth_app/lib/l10n/app_fil.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Pangalan",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Hanapin",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "Kasaysayan",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Mga sangkap",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Tuklasin",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_fo.arb b/packages/smooth_app/lib/l10n/app_fo.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_fo.arb
+++ b/packages/smooth_app/lib/l10n/app_fo.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_fr.arb b/packages/smooth_app/lib/l10n/app_fr.arb
index be45cfb7501..bb7d200da1a 100644
--- a/packages/smooth_app/lib/l10n/app_fr.arb
+++ b/packages/smooth_app/lib/l10n/app_fr.arb
@@ -57,7 +57,7 @@
"description": "Looking for: ${BARCODE}"
},
"@Introduction screen": {},
- "welcomeToOpenFoodFacts": "Bienvenue sur Open Food Facts",
+ "welcomeToOpenFoodFacts": "Bienvenue sur Open\u00A0Food\u00A0Facts",
"@welcomeToOpenFoodFacts": {},
"whatIsOff": "Open Food Facts est une organisation mondiale à but non lucratif alimentée par les communautés locales.",
"@whatIsOff": {
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Veuillez saisir un mot de passe",
"create_account": "Créer un compte",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Toutes nos félicitations! Votre compte vient d'être créé.",
- "sign_up_page_display_name_hint": "Nom d’affichage",
+ "sign_up_page_display_name_hint": "Nom",
"sign_up_page_display_name_error_empty": "Veuillez saisir le nom d'affichage que vous souhaitez utiliser",
"sign_up_page_email_hint": "Courriel",
"sign_up_page_email_error_empty": "Une adresse est requise",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profil",
+ "scan_navbar_label": "Rechercher",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profil",
+ "history_navbar_label": "Historique",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filtrer par catégorie",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingrédients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Photo des ingrédients",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "Vous avez trouvé un nouveau produit !",
"@missing_product": {},
- "add_product_take_photos": "Prenez des photos de l'emballage pour ajouter ce produit à notre base de données.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Veuillez prendre les photos suivantes et le moteur Open Food Facts s'occupera du reste !",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Produit supprimé",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Impossible de supprimer le produit",
"@product_could_not_remove": {
@@ -578,8 +588,44 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Réessayer",
- "main_app_color": "Main color of the app",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Découvrir",
+ "how_to_contribute": "How to Contribute",
+ "main_app_color": "Couleur principale de l'application",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Partager anonymement les statistiques",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
+ },
+ "knowledge_panel_text_source": "En savoir plus sur {source_,ame}",
+ "@knowledge_panel_text_source": {
+ "description": "Source field within a text knowledge panel.",
+ "placeholders": {
+ "source_name": {
+ "type": "String"
+ }
+ }
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_ga.arb b/packages/smooth_app/lib/l10n/app_ga.arb
index dd4928361f5..d21b6e9ea75 100644
--- a/packages/smooth_app/lib/l10n/app_ga.arb
+++ b/packages/smooth_app/lib/l10n/app_ga.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Ainm",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Cuardaigh",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "Stair",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Comhábhair",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Faigh amach",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_gd.arb b/packages/smooth_app/lib/l10n/app_gd.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_gd.arb
+++ b/packages/smooth_app/lib/l10n/app_gd.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_gl.arb b/packages/smooth_app/lib/l10n/app_gl.arb
index 997dd4ba259..be431785f32 100644
--- a/packages/smooth_app/lib/l10n/app_gl.arb
+++ b/packages/smooth_app/lib/l10n/app_gl.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Nome",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Buscar",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "Historial",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredientes",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Tentar de novo",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Descubrir",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_gu.arb b/packages/smooth_app/lib/l10n/app_gu.arb
index 4b6209a7f61..0fa088614b4 100644
--- a/packages/smooth_app/lib/l10n/app_gu.arb
+++ b/packages/smooth_app/lib/l10n/app_gu.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_ha.arb b/packages/smooth_app/lib/l10n/app_ha.arb
index d83e398df9d..ccd02d312b2 100644
--- a/packages/smooth_app/lib/l10n/app_ha.arb
+++ b/packages/smooth_app/lib/l10n/app_ha.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Bincika",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Kayan mahadi",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Sake gwadawa",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_he.arb b/packages/smooth_app/lib/l10n/app_he.arb
index 2d2fb12973e..355f2872b93 100644
--- a/packages/smooth_app/lib/l10n/app_he.arb
+++ b/packages/smooth_app/lib/l10n/app_he.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "נא למלא סיסמה",
"create_account": "יצירת חשבון",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "מזל טוב! החשבון שלך נוצר.",
- "sign_up_page_display_name_hint": "שם תצוגה",
+ "sign_up_page_display_name_hint": "שם",
"sign_up_page_display_name_error_empty": "נא למלא את שם התצוגה המיועד",
"sign_up_page_email_hint": "דוא״ל",
"sign_up_page_email_error_empty": "צריך דוא״ל",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "פרופיל",
+ "scan_navbar_label": "חיפוש",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "פרופיל",
+ "history_navbar_label": "היסטוריה",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "סינון לפי קטגוריה",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "רכיבים",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "תמונת רכיבים",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "מצאת מוצר חדש!",
"@missing_product": {},
- "add_product_take_photos": "יש לצלם את האריזה כדי להוסיף את המוצר הזה למסד הנתונים שלנו.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "נא לצלם את התמונות הבאות והמנוע של Open Food Facts ידאג לשאר!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "המוצר הוסר",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "לא ניתן להסיר מוצר",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "ניסיון חוזר",
- "main_app_color": "Main color of the app",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "טוויטר",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "לגלות",
+ "how_to_contribute": "How to Contribute",
+ "main_app_color": "הצבע הראשי של היישומון",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "שליחת ניתוח נתונים אלמוני",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_hi.arb b/packages/smooth_app/lib/l10n/app_hi.arb
index 875609a7ea1..9a27edecb51 100644
--- a/packages/smooth_app/lib/l10n/app_hi.arb
+++ b/packages/smooth_app/lib/l10n/app_hi.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "नाम",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "ढूंढें",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "वृत्तांत",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "सामग्री",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "फिर कोशिश करें ।",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "तलाश करें",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_hr.arb b/packages/smooth_app/lib/l10n/app_hr.arb
index d65e020c4d1..13558642bed 100644
--- a/packages/smooth_app/lib/l10n/app_hr.arb
+++ b/packages/smooth_app/lib/l10n/app_hr.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Pretraži",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Sastojci",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Pokušaj ponovno",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_ht.arb b/packages/smooth_app/lib/l10n/app_ht.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_ht.arb
+++ b/packages/smooth_app/lib/l10n/app_ht.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_hu.arb b/packages/smooth_app/lib/l10n/app_hu.arb
index b4546cfdd6e..cad0ea2fcf2 100644
--- a/packages/smooth_app/lib/l10n/app_hu.arb
+++ b/packages/smooth_app/lib/l10n/app_hu.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Fiók létrehozása",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Név",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Keresés",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "Előzmények",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Összetevők",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Összetevők fényképe",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Újra",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Felfedezés",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_hy.arb b/packages/smooth_app/lib/l10n/app_hy.arb
index cbc0591ebb4..a3b97352249 100644
--- a/packages/smooth_app/lib/l10n/app_hy.arb
+++ b/packages/smooth_app/lib/l10n/app_hy.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Անվանում",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Որոնել",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Բաղադրամասեր",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Նախագծի մասին",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_id.arb b/packages/smooth_app/lib/l10n/app_id.arb
index c54c340328b..c33dc1bf7e5 100644
--- a/packages/smooth_app/lib/l10n/app_id.arb
+++ b/packages/smooth_app/lib/l10n/app_id.arb
@@ -4,7 +4,7 @@
"@yes": {},
"add": "Tambahkan",
"@add": {},
- "okay": "Oke",
+ "okay": "Baik",
"@okay": {},
"applyButtonText": "Terapkan",
"@applyButtonText": {},
@@ -24,7 +24,7 @@
"@stop": {},
"finish": "Finish",
"@finish": {},
- "reset_food_prefs": "Reset food preferences",
+ "reset_food_prefs": "Atur ulang preferensi makanan Anda",
"@reset": {
"description": "Button label, clicking on the button will reset user's food preferences."
},
@@ -42,7 +42,7 @@
"@incompatible": {
"description": "Short label for product list view: the product is incompatible with your preferences"
},
- "compatible": "Compatible",
+ "compatible": "Cocok",
"@compatible": {
"description": "Short label for product list view: the product is compatible with your preferences"
},
@@ -59,34 +59,36 @@
"@Introduction screen": {},
"welcomeToOpenFoodFacts": "Welcome to Open Food Facts",
"@welcomeToOpenFoodFacts": {},
- "whatIsOff": "Open Food Facts is a global non-profit powered by local communities.",
+ "whatIsOff": "Open Food Facts adalah organisasi nirlaba global yang didukung oleh komunitas lokal.",
"@whatIsOff": {
"description": "Description of Open Food Facts organization."
},
- "offUtility": "Choose foods that are good for you and the planet.",
+ "offUtility": "Pilih makanan yang baik bagi Anda dan planet Anda.",
"@offUtility": {
"description": "Description of what a user can use Open Food Facts for."
},
- "productDataUtility": "See the food data relevant to your preferences.",
+ "productDataUtility": "Lihat data makanan yang cocok dengan preferensi Anda.",
"@productDataUtility": {
"description": "Description of what a user can use the product data for."
},
- "healthCardUtility": "Choose foods that are good for you.",
+ "healthCardUtility": "Pilih makanan yang baik bagi Anda.",
"@healthCardUtility": {
"description": "Description of what a user can use the health data in a product for."
},
- "ecoCardUtility": "Choose foods that are good for the planet.",
+ "ecoCardUtility": "Pilih makanan yang baik bagi planet Anda.",
"@ecoCardUtility": {
"description": "Description of what a user can use the Eco data in a product for."
},
"@user_management": {},
- "sign_in_text": "Sign in to your Open Food Facts account to save your contributions",
- "incorrect_credentials": "Incorrect username or password.",
+ "sign_in_text": "Masuk ke akun Open Food Facts untuk menyimpan kontribusi Anda",
+ "incorrect_credentials": "Nama pengguna atau kata sandi Anda salah.",
"login": "Masuk",
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
- "create_account": "Create account",
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Silakan masukkan kata sandi",
+ "create_account": "Buat akun",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
},
@@ -94,20 +96,20 @@
"@sign_in": {
"description": "Button label: For sign in"
},
- "sign_out": "Sign out",
+ "sign_out": "Keluar",
"@sign_out": {
"description": "Button label: For sign out"
},
- "sign_out_confirmation": "Are you sure you want to sign out?",
+ "sign_out_confirmation": "Apa Anda yakin Anda ingin keluar?",
"@sign_out_confirmation": {
"description": "Pop up title: Reassuring if the user really want to sign out"
},
"password": "Kata sandi",
- "forgot_password": "Forgot password",
+ "forgot_password": "Lupa kata sandi",
"@forgot_password": {
"description": "Button label: Opens a page where a password reset e-mail can be requested"
},
- "view_profile": "View profile",
+ "view_profile": "Lihat profil",
"@view_profile": {
"description": "Button label: For to show your account"
},
@@ -115,49 +117,49 @@
"@reset_password": {
"description": "Forgot password page title"
},
- "reset_password_explanation_text": "In case of a forgotten password, enter your username or e-mail address to receive instructions for a password reset. Also, remember to check the Spam folder.",
- "username_or_email": "Username or e-mail",
+ "reset_password_explanation_text": "Jika Anda lupa kata sandi, masukkan nama pengguna atau alamat email Anda untuk menerima instruksi untuk mengatur ulang kata sandi. Jangan lupa memeriksa folder Spam.",
+ "username_or_email": "Nama pengguna atau alamat e-mail",
"@username_or_email": {
"description": "Text field hint for password reset"
},
- "reset_password_done": "An e-mail with a link to reset your password has been sent to the e-mail address associated with your account. Also check your spam",
- "send_reset_password_mail": "Change password",
+ "reset_password_done": "E-mail dengan link untuk mengatur ulang kata sandi telah dikirim ke alamat e-mail yang terhubung dengan akun Anda. Periksa folder Spam Anda",
+ "send_reset_password_mail": "Ubah kata sandi",
"@send_reset_password_mail": {
"description": "Button label: Submit the password reset e-mail request"
},
- "enter_some_text": "Please enter some text",
+ "enter_some_text": "Harap masukkan teks",
"@enter_some_text": {
"description": "Error when a required text field is empty"
},
- "sign_up_page_title": "Sign Up",
+ "sign_up_page_title": "Daftar",
"@sign_up_page_title": {
"description": "Header"
},
- "sign_up_page_action_button": "Sign Up",
+ "sign_up_page_action_button": "Daftar",
"@sign_up_page_action_button": {
"description": "Button for signing up"
},
- "sign_up_page_action_doing_it": "Signing up...",
+ "sign_up_page_action_doing_it": "Mendaftarkan...",
"@sign_up_page_action_doing_it": {
"description": "Progress indicator dialog during the actual signing up process"
},
- "sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
- "sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
+ "sign_up_page_action_ok": "Selamat! Akun Anda baru saja dibuat.",
+ "sign_up_page_display_name_hint": "Nama",
+ "sign_up_page_display_name_error_empty": "Silakan masukkan nama panggilan yang Anda inginkan",
"sign_up_page_email_hint": "E-mail",
- "sign_up_page_email_error_empty": "E-mail is required",
- "sign_up_page_email_error_invalid": "This e-mail is invalid",
+ "sign_up_page_email_error_empty": "E-mail diperlukan",
+ "sign_up_page_email_error_invalid": "E-mail ini tidak sah",
"sign_up_page_username_hint": "Nama pengguna",
- "sign_up_page_username_error_empty": "Please enter a username",
- "sign_up_page_username_error_invalid": "Please enter a valid username",
- "sign_up_page_username_description": "Username cannot contains spaces, caps or special characters",
+ "sign_up_page_username_error_empty": "Silakan masukkan nama pengguna Anda",
+ "sign_up_page_username_error_invalid": "Silakan masukkan nama pengguna yang sah",
+ "sign_up_page_username_description": "Nama pengguna tidak dapat mengandung spasi, huruf besar ataupun karakter khusus",
"sign_up_page_password_hint": "Kata sandi",
- "sign_up_page_password_error_empty": "Please enter a password",
- "sign_up_page_password_error_invalid": "Please enter a valid password (at least 6 characters)",
- "sign_up_page_confirm_password_hint": "Confirm Password",
- "sign_up_page_confirm_password_error_empty": "Please confirm the password",
- "sign_up_page_confirm_password_error_invalid": "Passwords don't match",
- "sign_up_page_agree_url": "https://world-en.openfoodfacts.org/terms-of-use",
+ "sign_up_page_password_error_empty": "Silakan masukkan kata sandi",
+ "sign_up_page_password_error_invalid": "Silakan masukkan kata sandi yang sah (paling sedikit 6 karakter)",
+ "sign_up_page_confirm_password_hint": "Konfirmasi kata sandi",
+ "sign_up_page_confirm_password_error_empty": "Harap konfirmasi kata sandi",
+ "sign_up_page_confirm_password_error_invalid": "Kata sandi tidak cocok",
+ "sign_up_page_agree_url": "https://world.openfoodfacts.org/terms-of-use",
"@sign_up_page_agree_url": {
"description": "Please insert the right url here. Go to the openfoodfacts homepage, switch to your country and then on the bottom left footer is Terms of use from which the url should be taken"
},
@@ -165,32 +167,32 @@
"@donate_url": {
"description": "Please insert the right url from the website here."
},
- "sign_up_page_agree_error_invalid": "When creating an account, agreeing to the Terms of Use is mandatory, however, anonymous contributions can still be made through the app",
+ "sign_up_page_agree_error_invalid": "Anda wajib menyetujui Persyaratan Penggunaan saat menggunakan akun, akan tetapi kontribusi anonim masih dapat dilakukan melalui aplikasi",
"@sign_up_page_agree_error_invalid": {
"description": "Error message: You have to agree to the terms-of-use (A checkbox to do so is above this error message)"
},
- "sign_up_page_producer_checkbox": "I am a food producer",
- "sign_up_page_producer_hint": "Producer/brand",
- "sign_up_page_producer_error_empty": "Please enter a producer or a brand name",
- "sign_up_page_subscribe_checkbox": "I'd like to subscribe to the Open Food Facts newsletter (You can unsubscribe from it at all time)",
+ "sign_up_page_producer_checkbox": "Saya seorang produsen makanan",
+ "sign_up_page_producer_hint": "Produsen/merek",
+ "sign_up_page_producer_error_empty": "Silakan masukkan nama produsen atau merek",
+ "sign_up_page_subscribe_checkbox": "Saya ingin berlangganan buletin Open Food Facts (Anda dapat berhenti berlangganan setiap saat)",
"@Settings": {},
"settingsTitle": "Pengaturan",
"@settingsTitle": {
"description": "The title of the Settings page"
},
- "darkmode": "Modegelap",
+ "darkmode": "Mode gelap",
"@darkmode": {
"description": "The name of the darkmode on off switch"
},
- "darkmode_dark": "Dark",
+ "darkmode_dark": "Gelap",
"@darkmode_dark": {
"description": "Indicator inside the darkmode switch"
},
- "darkmode_light": "Light",
+ "darkmode_light": "Terang",
"@darkmode_light": {
"description": "Indicator inside the darkmode switch"
},
- "thanks_for_contributing": "Thanks for contributing",
+ "thanks_for_contributing": "Terima kasih atas kontribusi Anda",
"@contributors": {
"description": "Button label: Opens a pop up window where all contributors of this app are shown"
},
@@ -199,11 +201,11 @@
"@support": {
"description": "Button label: Opens a pop up window where all ways to get support are shown"
},
- "support_join_slack": "Ask for help in our Slack channel",
- "support_via_email": "Send us a e-mail",
+ "support_join_slack": "Minta bantuan di saluran Slack kami",
+ "support_via_email": "Kirimi kami e-mail",
"termsOfUse": "Syarat Penggunaan",
"@termsOfUse": {},
- "about_this_app": "About this app",
+ "about_this_app": "Tentang aplikasi ini",
"@about_this_app": {
"description": "Button label: Opens a pop up window which shows information about the app"
},
@@ -212,11 +214,11 @@
"@contribute": {
"description": "Button label: Shows multiple ways how users can contribute to OFF"
},
- "contribute_sw_development": "Software development",
+ "contribute_sw_development": "Pengembangan perangkat lunak",
"@contribute_sw_development": {
"description": "Button label + page title: Ways to help"
},
- "contribute_develop_text": "Kode untuk setiap produk Open Food Facts tersedia di GitHub. Anda dipersilahkan untuk menggunakan kode tersebut kembali (ia merupakan sumber terbuka) dan bantu kami memperbaikinya untuk semua orang di seluruh planet.",
+ "contribute_develop_text": "Kode untuk setiap produk Open Food Facts tersedia di GitHub. Anda dipersilahkan untuk menggunakan kode tersebut kembali (bersifat open-source) dan bantu kami memperbaikinya untuk semua orang di seluruh planet.",
"@contribute_develop_text": {},
"contribute_develop_text_2": "Anda dapat bergabung dengan ruang obrolan Slack Open Food Facts yang juga merupakan cara yang lebih disukai untuk mengajukan pertanyaan.",
"@contribute_develop_text_2": {},
@@ -226,11 +228,11 @@
"@contribute_improve_ProductsToBeCompleted": {
"description": "Button label: Shows a list of products which aren't completed"
},
- "contribute_improve_header": "Peningkatan",
+ "contribute_improve_header": "Meningkatkan",
"@contribute_improve_header": {
"description": "Button label + page title: Ways to improve the database"
},
- "contribute_improve_text": "Basis data adalah inti dari proyek ini. Ia membantu dengan mudah dan sangat cepat. Anda bisa mengunduh aplikasi seluler untuk ponsel Anda, dan mulai menambahkan atau meningkatkan produk.\n\nDi sisi lain, situs web Open Food Facts menyediakan banyak cara untuk berkontribusi: ",
+ "contribute_improve_text": "Pembangunan database adalah inti dari proyek ini. Kontribusi dapat dilakukan dengan mudah dan cepat. Anda dapat mengunduh aplikasi seluler untuk ponsel Anda dan mulai menambahkan atau meningkatkan produk.\n\nDi sisi lain, situs web Open Food Facts menyediakan banyak cara untuk berkontribusi: ",
"@contribute_improve_text": {},
"contribute_translate_header": "Terjemahkan",
"@contribute_translate_header": {
@@ -240,11 +242,11 @@
"@contribute_translate_link_text": {
"description": "Button label: Opens the Crowdin translation portal"
},
- "contribute_translate_text": "Open Food Facts adalah proyek global, yang berisi produk dari lebih dari 160 negara. Open Food Facts diterjemahkan ke dalam berbagai bahasa, dengan konten yang terus dikembangkan.",
+ "contribute_translate_text": "Open Food Facts adalah proyek global yang berisi produk dari lebih dari 160 negara. Open Food Facts diterjemahkan ke dalam berbagai bahasa, dengan konten yang terus dikembangkan.",
"@contribute_translate_text": {},
"contribute_translate_text_2": "Penerjemahan adalah salah satu tugas utama dari proyek ini",
"@contribute_translate_text_2": {},
- "tap_to_answer": "Tap here to answer questions",
+ "tap_to_answer": "Ketuk di sini untuk menjawab pertanyaan",
"@tap_to_answer": {
"description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards."
},
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Cari",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "Riwayat",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -334,13 +336,17 @@
"@front_photo": {
"description": "Button label: For adding a picture of the front of a product"
},
- "ingredients": "Kandungan bahan",
+ "ingredients": "Komposisi",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Foto kandungan bahan",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
},
- "nutrition": "kandungan nutrisi",
+ "nutrition": "Kandungan nutrisi",
"@nutrition": {},
"nutrition_facts_photo": "Foto kandungan gizi",
"@nutrition_facts_photo": {
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -450,7 +456,7 @@
"@product_internet_cancel": {
"description": "Confirmation, that the product data got canceled by the user"
},
- "product_internet_error": "Gagal mengambil informasi tentang produk ini karena kesalahan jaringan.",
+ "product_internet_error": "Pengambilan informasi tentang produk ini gagal karena kesalahan jaringan.",
"cached_results_from": "Cached results from:",
"@cached_results_from": {
"description": "Cached results from: x time ago (time ago should not be added to the string)"
@@ -466,39 +472,43 @@
"@product_improvement_add_category": {
"description": "Message for ProductImprovement.ADD_CATEGORY"
},
- "product_improvement_add_nutrition_facts": "Add nutrition facts to calculate the Nutri-Score.",
+ "product_improvement_add_nutrition_facts": "Tambahkan informasi nilai gizi untuk menghitung Nutri-Score.",
"@product_improvement_add_nutrition_facts": {
"description": "Message for ProductImprovement.ADD_NUTRITION_FACTS"
},
- "product_improvement_add_nutrition_facts_and_category": "Add nutrition facts and a category to calculate the Nutri-Score.",
+ "product_improvement_add_nutrition_facts_and_category": "Tambahkan informasi nilai gizi dan kategori untuk menghitung Nutri-Score.",
"@product_improvement_add_nutrition_facts_and_category": {
"description": "Message for ProductImprovement.ADD_NUTRITION_FACTS_AND_CATEGORY"
},
- "product_improvement_categories_but_no_nutriscore": "The Nutri-Score for this product can't be calculated, which may be due to e.g. a non-standard category. If this is considered an error, please contact us.",
+ "product_improvement_categories_but_no_nutriscore": "Nutri-Score untuk produk ini tidak dapat dihitung, kemungkinan disebabkan oleh kategori non-standar. Jika ini dianggap sebagai kesalahan, silakan hubungi kami.",
"@product_improvement_categories_but_no_nutriscore": {
"description": "Message for ProductImprovement.CATEGORIES_BUT_NO_NUTRISCORE"
},
- "product_improvement_obsolete_nutrition_image": "Gambar nutrisi sudah usang: harap segarkan.",
+ "product_improvement_obsolete_nutrition_image": "Gambar nutrisi sudah tidak berlaku: harap perbaharui.",
"@product_improvement_obsolete_nutrition_image": {
"description": "Message for ProductImprovement.OBSOLETE_NUTRITION_IMAGE"
},
- "product_improvement_origins_to_be_completed": "The Eco-Score takes into account the origins of the ingredients. Please take a photo of them (ingredient list and/or any geographic claim or edit the product) so that they can be taken into account.",
+ "product_improvement_origins_to_be_completed": "Eco-Score memperhitungkan asal-usul bahan. Harap ambil fotonya (daftar bahan dan/atau klaim geografis atau edit produk) agar faktor tersebut dapat diperhitungkan.",
"@product_improvement_origins_to_be_completed": {
"description": "Message for ProductImprovement.ORIGINS_TO_BE_COMPLETED"
},
- "country_chooser_label": "Please choose a country",
+ "country_chooser_label": "Silakan pilih negara",
"@country_chooser_label": {
"description": "Label shown above a selector where the user can select their country"
},
- "country_selection_explanation": "Some environmental features are location-specific",
+ "country_selection_explanation": "Beberapa fitur lingkungan bersifat khusus tergantung lokasi",
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
},
- "product_could_not_remove": "Could not remove product",
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
+ },
+ "product_could_not_remove": "Tidak dapat menghapus produk",
"@product_could_not_remove": {
"description": "Could not remove product from a list"
},
@@ -510,76 +520,103 @@
"@clear": {
"description": "Clears a product list"
},
- "really_clear": "Do you really want to clear this list?",
- "product_compatibility_unknown": "Product Compatibility Unknown",
+ "really_clear": "Apakah Anda benar-benar ingin menghapus daftar ini?",
+ "product_compatibility_unknown": "Kompatibilitas Produk Tidak Diketahui",
"@product_compatibility_unknown": {
"description": "Product compatibility summary title"
},
- "product_compatibility_incompatible": "Does not match",
+ "product_compatibility_incompatible": "Tidak sesuai",
"@product_compatibility_incompatible": {
"description": "Product compatibility summary title"
},
- "product_compatibility_good": "Good Match",
+ "product_compatibility_good": "Sesuai",
"@product_compatibility_good": {
"description": "Product compatibility summary title"
},
"@Plural": {},
- "pct_match": "{percent}% match",
+ "pct_match": "{percent}% cocok",
"@pct_match": {
"description": "This product has a x percent match with your preferences",
"placeholders": {
"percent": {}
}
},
- "plural_ago_days": "{count,plural, =1{one day ago} other{{count} days ago}}",
+ "plural_ago_days": "{count,plural, =1{satu hari yang lalu} other{{count} hari yang lalu}}",
"@plural_ago_days": {
"description": "Cached results from: x days ago",
"placeholders": {
"count": {}
}
},
- "plural_ago_hours": "{count,plural, =1{one hour ago} other{{count} hours ago}}",
+ "plural_ago_hours": "{count,plural, =1{jam yang lalu} other{{count} jam yang lalu}}",
"@plural_ago_hours": {
"description": "Cached results from: x hours ago",
"placeholders": {
"count": {}
}
},
- "plural_ago_minutes": "{count,plural, =0{less than a minute ago} =1{one minute ago} other{{count} minutes ago}}",
+ "plural_ago_minutes": "{count,plural, =0{kurang dari satu menit yang lalu} =1{satu menit yang lalu} other{{count} menit yang lalu}}",
"@plural_ago_minutes": {
"description": "Cached results from: x minutes ago",
"placeholders": {
"count": {}
}
},
- "plural_ago_months": "{count,plural, =1{one month ago} other{{count} months ago}}",
+ "plural_ago_months": "{count,plural, =1{satu bulan yang lalu} other{{count} bulan yang lalu}}",
"@plural_ago_months": {
"description": "Cached results from: x months ago",
"placeholders": {
"count": {}
}
},
- "plural_ago_weeks": "{count,plural, =1{one week ago} other{{count} weeks ago}}",
+ "plural_ago_weeks": "{count,plural, =1{satu minggu yang lalu} other{{count} minggu yang lalu}}",
"@plural_ago_weeks": {
"description": "Cached results from: x weeks ago",
"placeholders": {
"count": {}
}
},
- "plural_compare_x_products": "{count,plural, other{Compare {count} Products}",
+ "plural_compare_x_products": "{count,plural, other{Bandingkan {count} Produk}",
"@plural_compare_x_products": {
"description": "Button label",
"placeholders": {
"count": {}
}
},
- "compare_products_mode": "Compare Mode",
+ "compare_products_mode": "Mode Perbandingan",
"@compare_products_mode": {
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Coba lagi",
- "main_app_color": "Main color of the app",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Temukan",
+ "how_to_contribute": "How to Contribute",
+ "main_app_color": "Warna utama aplikasi",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Kirim analitik anonim",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_ii.arb b/packages/smooth_app/lib/l10n/app_ii.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_ii.arb
+++ b/packages/smooth_app/lib/l10n/app_ii.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_is.arb b/packages/smooth_app/lib/l10n/app_is.arb
index 3e2a2554599..3cefc1c608b 100644
--- a/packages/smooth_app/lib/l10n/app_is.arb
+++ b/packages/smooth_app/lib/l10n/app_is.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Innihald",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Uppgötva",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_it.arb b/packages/smooth_app/lib/l10n/app_it.arb
index 6a34ce3dda3..c34bcfd1ce9 100644
--- a/packages/smooth_app/lib/l10n/app_it.arb
+++ b/packages/smooth_app/lib/l10n/app_it.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Sei pregato di inserire una password",
"create_account": "Crea il profilo",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulazioni! Il tuo profilo è appena stato creato.",
- "sign_up_page_display_name_hint": "Nome Visualizzato",
+ "sign_up_page_display_name_hint": "Nome",
"sign_up_page_display_name_error_empty": "Sei pregato di inserire il nome visualizzato che desideri usare",
"sign_up_page_email_hint": "Email",
"sign_up_page_email_error_empty": "L'email è necessaria",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profilo",
+ "scan_navbar_label": "Cerca",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profilo",
+ "history_navbar_label": "Cronologia",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filtra per categoria",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredienti",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Foto degli ingredienti",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "Hai trovato un nuovo prodotto!",
"@missing_product": {},
- "add_product_take_photos": "Scatta foto della confezione per aggiungere questo prodotto al nostro database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Si prega di scattare le seguenti foto e il motore Open Food Facts può allenare il resto!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Prodotto rimosso",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Impossibile rimuovere il prodotto",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Riprova",
- "main_app_color": "Main color of the app",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Scopri",
+ "how_to_contribute": "How to Contribute",
+ "main_app_color": "Colore principale dell'app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Invia analitiche anonime",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_iu.arb b/packages/smooth_app/lib/l10n/app_iu.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_iu.arb
+++ b/packages/smooth_app/lib/l10n/app_iu.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_ja.arb b/packages/smooth_app/lib/l10n/app_ja.arb
index be3ff2a9c84..340151ed75c 100644
--- a/packages/smooth_app/lib/l10n/app_ja.arb
+++ b/packages/smooth_app/lib/l10n/app_ja.arb
@@ -24,7 +24,7 @@
"@stop": {},
"finish": "Finish",
"@finish": {},
- "reset_food_prefs": "Reset food preferences",
+ "reset_food_prefs": "食品の個人設定をリセット",
"@reset": {
"description": "Button label, clicking on the button will reset user's food preferences."
},
@@ -34,15 +34,15 @@
"@error_occurred": {},
"featureInProgress": "この機能はまだ調整中です。ご期待ください。",
"@featureInProgress": {},
- "label_web": "View on the Web",
+ "label_web": "Web 上で見る",
"@label_web": {},
"learnMore": "詳細",
"@learnMore": {},
- "incompatible": "Incompatible",
+ "incompatible": "非互換",
"@incompatible": {
"description": "Short label for product list view: the product is incompatible with your preferences"
},
- "compatible": "Compatible",
+ "compatible": "互換",
"@compatible": {
"description": "Short label for product list view: the product is compatible with your preferences"
},
@@ -59,34 +59,36 @@
"@Introduction screen": {},
"welcomeToOpenFoodFacts": "Welcome to Open Food Facts",
"@welcomeToOpenFoodFacts": {},
- "whatIsOff": "Open Food Facts is a global non-profit powered by local communities.",
+ "whatIsOff": "Open Food Factsは、地域コミュニティによって運営されているグローバルな非営利団体です。",
"@whatIsOff": {
"description": "Description of Open Food Facts organization."
},
- "offUtility": "Choose foods that are good for you and the planet.",
+ "offUtility": "あなたと地球のために良い食品を選んでください。",
"@offUtility": {
"description": "Description of what a user can use Open Food Facts for."
},
- "productDataUtility": "See the food data relevant to your preferences.",
+ "productDataUtility": "あなたの個人設定に関連する食品データを参照してください。",
"@productDataUtility": {
"description": "Description of what a user can use the product data for."
},
- "healthCardUtility": "Choose foods that are good for you.",
+ "healthCardUtility": "あなたにぴったりの食品を選んでください。",
"@healthCardUtility": {
"description": "Description of what a user can use the health data in a product for."
},
- "ecoCardUtility": "Choose foods that are good for the planet.",
+ "ecoCardUtility": "地球に良い食品を選んでください。",
"@ecoCardUtility": {
"description": "Description of what a user can use the Eco data in a product for."
},
"@user_management": {},
- "sign_in_text": "Sign in to your Open Food Facts account to save your contributions",
- "incorrect_credentials": "Incorrect username or password.",
+ "sign_in_text": "Open Food Factsアカウントにサインインして、投稿を保存します",
+ "incorrect_credentials": "ユーザー名またはパスワードが間違っています。",
"login": "ユーザー名",
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
- "create_account": "Create account",
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "パスワードを入力してください",
+ "create_account": "アカウント作成",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
},
@@ -94,20 +96,20 @@
"@sign_in": {
"description": "Button label: For sign in"
},
- "sign_out": "Sign out",
+ "sign_out": "サインアウト",
"@sign_out": {
"description": "Button label: For sign out"
},
- "sign_out_confirmation": "Are you sure you want to sign out?",
+ "sign_out_confirmation": "サインアウトしてもよろしいですか?",
"@sign_out_confirmation": {
"description": "Pop up title: Reassuring if the user really want to sign out"
},
"password": "パスワード",
- "forgot_password": "Forgot password",
+ "forgot_password": "パスワードを忘れた場合",
"@forgot_password": {
"description": "Button label: Opens a page where a password reset e-mail can be requested"
},
- "view_profile": "View profile",
+ "view_profile": "プロフィールを表示",
"@view_profile": {
"description": "Button label: For to show your account"
},
@@ -115,49 +117,49 @@
"@reset_password": {
"description": "Forgot password page title"
},
- "reset_password_explanation_text": "In case of a forgotten password, enter your username or e-mail address to receive instructions for a password reset. Also, remember to check the Spam folder.",
- "username_or_email": "Username or e-mail",
+ "reset_password_explanation_text": "パスワードを忘れた場合は、ユーザー名または電子メールアドレスを入力して、パスワードのリセット手順を受け取ります。また、スパムフォルダを確認することを忘れないでください。",
+ "username_or_email": "ユーザー名またはメールアドレス",
"@username_or_email": {
"description": "Text field hint for password reset"
},
- "reset_password_done": "An e-mail with a link to reset your password has been sent to the e-mail address associated with your account. Also check your spam",
- "send_reset_password_mail": "Change password",
+ "reset_password_done": "パスワードをリセットするためのリンクが記載された電子メールが、アカウントに関連付けられた電子メールアドレスに送信されました。スパムもチェックしてください",
+ "send_reset_password_mail": "パスワードを変更",
"@send_reset_password_mail": {
"description": "Button label: Submit the password reset e-mail request"
},
- "enter_some_text": "Please enter some text",
+ "enter_some_text": "テキストを入力してください",
"@enter_some_text": {
"description": "Error when a required text field is empty"
},
- "sign_up_page_title": "Sign Up",
+ "sign_up_page_title": "サインアップ",
"@sign_up_page_title": {
"description": "Header"
},
- "sign_up_page_action_button": "Sign Up",
+ "sign_up_page_action_button": "サインアップ",
"@sign_up_page_action_button": {
"description": "Button for signing up"
},
- "sign_up_page_action_doing_it": "Signing up...",
+ "sign_up_page_action_doing_it": "サインアップ中",
"@sign_up_page_action_doing_it": {
"description": "Progress indicator dialog during the actual signing up process"
},
- "sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
- "sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
- "sign_up_page_email_hint": "E-mail",
- "sign_up_page_email_error_empty": "E-mail is required",
- "sign_up_page_email_error_invalid": "This e-mail is invalid",
+ "sign_up_page_action_ok": "おめでとうございます!あなたのアカウントが作成されました。",
+ "sign_up_page_display_name_hint": "名前",
+ "sign_up_page_display_name_error_empty": "使用したい表示名を入力してください",
+ "sign_up_page_email_hint": "メールアドレス",
+ "sign_up_page_email_error_empty": "メールアドレスは必須です",
+ "sign_up_page_email_error_invalid": "このメールアドレスは無効です",
"sign_up_page_username_hint": "ユーザー名",
- "sign_up_page_username_error_empty": "Please enter a username",
- "sign_up_page_username_error_invalid": "Please enter a valid username",
- "sign_up_page_username_description": "Username cannot contains spaces, caps or special characters",
+ "sign_up_page_username_error_empty": "ユーザー名を入力してください",
+ "sign_up_page_username_error_invalid": "有効なユーザー名を入力してください",
+ "sign_up_page_username_description": "ユーザー名にスペース、大文字、または特殊文字を含めることはできません",
"sign_up_page_password_hint": "パスワード",
- "sign_up_page_password_error_empty": "Please enter a password",
- "sign_up_page_password_error_invalid": "Please enter a valid password (at least 6 characters)",
- "sign_up_page_confirm_password_hint": "Confirm Password",
- "sign_up_page_confirm_password_error_empty": "Please confirm the password",
- "sign_up_page_confirm_password_error_invalid": "Passwords don't match",
- "sign_up_page_agree_url": "https://world-en.openfoodfacts.org/terms-of-use",
+ "sign_up_page_password_error_empty": "パスワードを入力してください",
+ "sign_up_page_password_error_invalid": "パスワードは6文字以上で入力してください",
+ "sign_up_page_confirm_password_hint": "パスワード再確認",
+ "sign_up_page_confirm_password_error_empty": "パスワードの確認入力をします",
+ "sign_up_page_confirm_password_error_invalid": "パスワードが一致しません",
+ "sign_up_page_agree_url": "https://world-ja.openfoodfacts.org/terms-of-use",
"@sign_up_page_agree_url": {
"description": "Please insert the right url here. Go to the openfoodfacts homepage, switch to your country and then on the bottom left footer is Terms of use from which the url should be taken"
},
@@ -165,14 +167,14 @@
"@donate_url": {
"description": "Please insert the right url from the website here."
},
- "sign_up_page_agree_error_invalid": "When creating an account, agreeing to the Terms of Use is mandatory, however, anonymous contributions can still be made through the app",
+ "sign_up_page_agree_error_invalid": "アカウントを作成する場合、利用規約への同意は必須ですが、アプリを使って匿名で投稿することもできます",
"@sign_up_page_agree_error_invalid": {
"description": "Error message: You have to agree to the terms-of-use (A checkbox to do so is above this error message)"
},
- "sign_up_page_producer_checkbox": "I am a food producer",
- "sign_up_page_producer_hint": "Producer/brand",
- "sign_up_page_producer_error_empty": "Please enter a producer or a brand name",
- "sign_up_page_subscribe_checkbox": "I'd like to subscribe to the Open Food Facts newsletter (You can unsubscribe from it at all time)",
+ "sign_up_page_producer_checkbox": "私は食品生産者です",
+ "sign_up_page_producer_hint": "生産者/ブランド",
+ "sign_up_page_producer_error_empty": "生産者またはブランド名を入力してください",
+ "sign_up_page_subscribe_checkbox": "Open Food Factsニュースレターを購読したい(いつでも購読を解除できます)",
"@Settings": {},
"settingsTitle": "設定",
"@settingsTitle": {
@@ -182,15 +184,15 @@
"@darkmode": {
"description": "The name of the darkmode on off switch"
},
- "darkmode_dark": "Dark",
+ "darkmode_dark": "暗め",
"@darkmode_dark": {
"description": "Indicator inside the darkmode switch"
},
- "darkmode_light": "Light",
+ "darkmode_light": "明るめ",
"@darkmode_light": {
"description": "Indicator inside the darkmode switch"
},
- "thanks_for_contributing": "Thanks for contributing",
+ "thanks_for_contributing": "ご協力ありがとうございます!",
"@contributors": {
"description": "Button label: Opens a pop up window where all contributors of this app are shown"
},
@@ -199,11 +201,11 @@
"@support": {
"description": "Button label: Opens a pop up window where all ways to get support are shown"
},
- "support_join_slack": "Ask for help in our Slack channel",
- "support_via_email": "Send us a e-mail",
+ "support_join_slack": "不明点はSlackチャンネルで",
+ "support_via_email": "私たちにメールを送信",
"termsOfUse": "利用規約",
"@termsOfUse": {},
- "about_this_app": "About this app",
+ "about_this_app": "このアプリについて",
"@about_this_app": {
"description": "Button label: Opens a pop up window which shows information about the app"
},
@@ -212,7 +214,7 @@
"@contribute": {
"description": "Button label: Shows multiple ways how users can contribute to OFF"
},
- "contribute_sw_development": "Software development",
+ "contribute_sw_development": "ソフトウェア開発",
"@contribute_sw_development": {
"description": "Button label + page title: Ways to help"
},
@@ -244,15 +246,15 @@
"@contribute_translate_text": {},
"contribute_translate_text_2": "翻訳はプロジェクトの重要なタスクの1つです",
"@contribute_translate_text_2": {},
- "tap_to_answer": "Tap here to answer questions",
+ "tap_to_answer": "質問に答えるにはここをタップ",
"@tap_to_answer": {
"description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards."
},
- "saving_answer": "Saving your answer",
+ "saving_answer": "回答を保存しています",
"@saving_answer": {
"description": "Dialog shown to users after they have answered a question, while the answer is being saved in the BE."
},
- "contribute_to_get_rewards": "Help food transparency and get reward badges",
+ "contribute_to_get_rewards": "食品の透明性を高め、報酬バッジを手に入れましょう",
"@contribute_to_get_rewards": {
"description": "Button description shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards."
},
@@ -261,13 +263,13 @@
"@myPreferences": {
"description": "Page title: Page where the ranking preferences can be changed"
},
- "myPreferences_profile_title": "Your Profile",
- "myPreferences_profile_subtitle": "Set app settings and find out advices.",
- "myPreferences_settings_title": "App Settings",
- "myPreferences_settings_subtitle": "Dark mode, Theme, ...",
- "myPreferences_food_title": "Food Preferences",
- "myPreferences_food_subtitle": "Choose what information about food matters most to you.",
- "confirmResetPreferences": "Reset your food preferences?",
+ "myPreferences_profile_title": "あなたのプロフィール",
+ "myPreferences_profile_subtitle": "アプリの設定を行い、アドバイスを見つけてください。",
+ "myPreferences_settings_title": "アプリ設定",
+ "myPreferences_settings_subtitle": "ダークモード、テーマ...",
+ "myPreferences_food_title": "食品設定",
+ "myPreferences_food_subtitle": "あなたにとって最も重要な食品に関する情報を選択してください。",
+ "confirmResetPreferences": "食品の設定をリセットしますか?",
"@confirmResetPreferences": {
"description": "Pop up title: Reassuring if the food preferences should really be reset"
},
@@ -276,27 +278,27 @@
"description": "When you press this button, all products (in list or category) are sorted according to your preferences."
},
"ranking_tab_all": "全て",
- "ranking_subtitle_match_yes": "A great match for you",
- "ranking_subtitle_match_no": "Very poor match",
- "ranking_subtitle_match_maybe": "Unknown match",
+ "ranking_subtitle_match_yes": "あなたにぴったり",
+ "ranking_subtitle_match_no": "非常に相性が悪い",
+ "ranking_subtitle_match_maybe": "一致度は不明",
"reloaded_with_new_preferences": "設定を再読み込みしました",
"@reloaded_with_new_preferences": {
"description": "Snackbar title: Shows that the modified settings have been applied"
},
"@other": {},
- "profile_navbar_label": "Profile",
+ "profile_navbar_label": "プロフィール",
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "検索",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "履歴",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
- "category": "Filter by category",
+ "category": "カテゴリーでフィルター",
"@category": {
"description": "From a product list, there's a category filter: this is its title"
},
@@ -317,7 +319,7 @@
"@search": {
"description": "Hint text of a search text input field"
},
- "tab_for_more": "Tap to see more info...",
+ "tab_for_more": "タップして詳細を確認...",
"@Product": {},
"product": "製品",
"@product": {},
@@ -325,17 +327,21 @@
"@unknownBrand": {},
"unknownProductName": "不明な製品名",
"@unknownProductName": {},
- "label_refresh": "Refresh",
+ "label_refresh": "リフレッシュ",
"@label_refresh": {
"description": "Refresh the cached product"
},
- "image": "Image",
+ "image": "画像",
"front_photo": "正面",
"@front_photo": {
"description": "Button label: For adding a picture of the front of a product"
},
"ingredients": "原材料",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "原材料一覧",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -352,87 +358,87 @@
},
"packaging_information_photo": "パッケージ情報",
"@packaging_information_photo": {},
- "missing_product": "You found a new product!",
+ "missing_product": "新製品を見つけました!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
- "add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
+ "add_product_take_photos_descriptive": "次の写真を撮ってください。そうするとOpenFoodFactsエンジンが残りを解決できます!",
"@add_product_take_photos_descriptive": {},
"add_product_information_button_label": "Add product information",
"@add_product_information_button_label": {},
- "new_product": "New Product",
+ "new_product": "新しい製品",
"@new_product": {},
- "front_packaging_photo_button_label": "Front packaging photo",
+ "front_packaging_photo_button_label": "前面のパッケージ写真",
"@front_packaging_photo_button_label": {},
- "confirm_front_packaging_photo_button_label": "Confirm Front packaging photo",
+ "confirm_front_packaging_photo_button_label": "前面のパッケージ写真を確認",
"@confirm_front_packaging_photo_button_label": {
"description": "Button clicking on which confirms the picture of the front packaging that user just took."
},
- "front_photo_uploaded": "Front photo uploaded",
+ "front_photo_uploaded": "前面の写真をアップロードしました",
"@front_photo_uploaded": {},
"ingredients_photo_button_label": "原材料一覧",
"@ingredients_photo_button_label": {},
- "confirm_ingredients_photo_button_label": "Confirm Ingredients photo",
+ "confirm_ingredients_photo_button_label": "原材料の写真を確認",
"@confirm_ingredients_photo_button_label": {
"description": "Button clicking on which confirms the picture of ingredients that user just took."
},
- "ingredients_photo_uploaded": "Ingredients photo uploaded",
+ "ingredients_photo_uploaded": "原材料の写真がアップロードされました",
"@ingredients_photo_uploaded": {},
- "nutritional_facts_photo_button_label": "Nutritional facts photo",
+ "nutritional_facts_photo_button_label": "栄養成分の写真",
"@nutritional_facts_photo_button_label": {},
- "confirm_nutritional_facts_photo_button_label": "Confirm Nutritional facts photo",
+ "confirm_nutritional_facts_photo_button_label": "栄養成分の写真を確認",
"@confirm_nutritional_facts_photo_button_label": {
"description": "Button clicking on which confirms the picture of nutritional facts that user just took."
},
- "nutritional_facts_photo_uploaded": "Nutritional facts photo uploaded",
+ "nutritional_facts_photo_uploaded": "栄養成分の写真がアップロードされました",
"@nutritional_facts_photo_uploaded": {},
- "recycling_photo_button_label": "Recycling information photo",
+ "recycling_photo_button_label": "リサイクル情報の写真",
"@recycling_photo_button_label": {},
- "confirm_recycling_photo_button_label": "Confirm Recycling information photo",
+ "confirm_recycling_photo_button_label": "リサイクル情報の写真を確認",
"@confirm_recycling_photo_button_label": {
"description": "Button clicking on which confirms the picture of recycling information that user just took."
},
- "recycling_photo_uploaded": "Recycling photo uploaded",
+ "recycling_photo_uploaded": "リサイクル写真がアップロードされました",
"@recycling_photo_uploaded": {},
- "other_interesting_photo_button_label": "Other interesting photos",
+ "other_interesting_photo_button_label": "その他の興味深い写真",
"@other_interesting_photo_button_label": {},
- "confirm_other_interesting_photo_button_label": "Confirm photo",
+ "confirm_other_interesting_photo_button_label": "写真を確認",
"@confirm_other_interesting_photo_button_label": {
"description": "Button clicking on which confirms a miscellaneous photo of the product."
},
- "other_photo_uploaded": "Miscellaneous photo uploaded",
+ "other_photo_uploaded": "その他の写真がアップロードされました",
"@other_photo_uploaded": {},
- "retake_photo_button_label": "Retake",
+ "retake_photo_button_label": "撮り直し",
"@retake_photo_button_label": {
"description": "Button clicking on which allows users to retake the last photo they took."
},
- "selecting_photo": "Selecting photo",
+ "selecting_photo": "写真を選択",
"@selecting_photo": {
"description": "Progress indicator when the users takes a photo"
},
- "uploading_image": "Uploading Image to the server",
+ "uploading_image": "サーバーに画像をアップロードしています",
"@uploading_image": {
"description": "Message when a new picture is uploading to the server"
},
- "score_add_missing_ingredients": "Add missing ingredients",
- "score_add_missing_nutrition_facts": "Add missing nutrition facts",
- "score_add_missing_product_category": "Add missing product category",
- "score_update_nutrition_facts": "Update nutrition facts",
- "nutrition_page_title": "Product Nutrition Facts",
- "nutrition_page_unspecified": "Nutrition facts are not specified on the product",
- "nutrition_page_per_100g": "per 100g",
+ "score_add_missing_ingredients": "不足している原材料を追加",
+ "score_add_missing_nutrition_facts": "不足している栄養成分を追加",
+ "score_add_missing_product_category": "不足している製品カテゴリを追加",
+ "score_update_nutrition_facts": "栄養成分を更新",
+ "nutrition_page_title": "製品の栄養成分",
+ "nutrition_page_unspecified": "栄養成分データが製品に表示されていません",
+ "nutrition_page_per_100g": "100 g 当たり",
"nutrition_page_per_serving": "一食当たり",
"nutrition_page_add_nutrient": "栄養成分を追加",
"nutrition_page_serving_size": "一人前の分量",
- "nutrition_page_invalid_number": "Invalid number",
- "nutrition_page_update_running": "Updating the product on the server...",
- "nutrition_page_update_done": "Product updated!",
+ "nutrition_page_invalid_number": "無効な数字",
+ "nutrition_page_update_running": "サーバー上の製品を更新しています...",
+ "nutrition_page_update_done": "製品が更新されました!",
"more_photos": "より興味深い画像",
"@more_photos": {},
"no_product_found": "製品が見つかりません",
"@no_product_found": {},
"not_found": "見つかりません:",
- "searchPanelHeader": "Search or scan your first product",
+ "searchPanelHeader": "最初の製品を検索またはスキャン",
"@Product query status": {},
"refreshing_product": "製品を更新中",
"@refreshing_product": {
@@ -446,59 +452,63 @@
"@could_not_refresh": {
"description": "The product data couldn't be refreshed"
},
- "product_internet_cancel": "Canceled by user.",
+ "product_internet_cancel": "ユーザーによって取り消されました。",
"@product_internet_cancel": {
"description": "Confirmation, that the product data got canceled by the user"
},
- "product_internet_error": "Impossible to fetch information about this product due to a network error.",
- "cached_results_from": "Cached results from:",
+ "product_internet_error": "ネットワークエラーのため、この製品に関する情報を取得できません。",
+ "cached_results_from": "キャッシュされた結果:",
"@cached_results_from": {
"description": "Cached results from: x time ago (time ago should not be added to the string)"
},
"@Product Addition": {},
"added_product_thanks": "この製品を追加していただきありがとうございます!",
"@added_product_thanks": {},
- "product_search_same_category": "Compare to Category",
+ "product_search_same_category": "カテゴリと比較",
"@product_search_same_category": {
"description": "Button looking for the other products within the same category. Less than 30 characters"
},
- "product_improvement_add_category": "Add a category to calculate the Nutri-Score.",
+ "product_improvement_add_category": "Nutri-Score(栄養スコア)を計算するカテゴリを追加します。",
"@product_improvement_add_category": {
"description": "Message for ProductImprovement.ADD_CATEGORY"
},
- "product_improvement_add_nutrition_facts": "Add nutrition facts to calculate the Nutri-Score.",
+ "product_improvement_add_nutrition_facts": "Nutri-Score(栄養スコア)を計算するために栄養成分を追加します。",
"@product_improvement_add_nutrition_facts": {
"description": "Message for ProductImprovement.ADD_NUTRITION_FACTS"
},
- "product_improvement_add_nutrition_facts_and_category": "Add nutrition facts and a category to calculate the Nutri-Score.",
+ "product_improvement_add_nutrition_facts_and_category": "栄養成分とカテゴリーを追加して、Nutri-Score(栄養スコア)を計算します。",
"@product_improvement_add_nutrition_facts_and_category": {
"description": "Message for ProductImprovement.ADD_NUTRITION_FACTS_AND_CATEGORY"
},
- "product_improvement_categories_but_no_nutriscore": "The Nutri-Score for this product can't be calculated, which may be due to e.g. a non-standard category. If this is considered an error, please contact us.",
+ "product_improvement_categories_but_no_nutriscore": "この製品のNutri-Score(栄養スコア)は計算できません。これは、たとえば非標準のカテゴリが原因である可能性があります。これがエラーと見なされる場合は、お問い合わせください。",
"@product_improvement_categories_but_no_nutriscore": {
"description": "Message for ProductImprovement.CATEGORIES_BUT_NO_NUTRISCORE"
},
- "product_improvement_obsolete_nutrition_image": "The nutrition image is obsolete: please refresh it.",
+ "product_improvement_obsolete_nutrition_image": "栄養成分画像が古くなっています: 更新してください。",
"@product_improvement_obsolete_nutrition_image": {
"description": "Message for ProductImprovement.OBSOLETE_NUTRITION_IMAGE"
},
- "product_improvement_origins_to_be_completed": "The Eco-Score takes into account the origins of the ingredients. Please take a photo of them (ingredient list and/or any geographic claim or edit the product) so that they can be taken into account.",
+ "product_improvement_origins_to_be_completed": "Eco-Score(エコスコア)は、成分の原産国を考慮に入れています。それらを考慮に入れることができるように、写真(成分リストおよび/または地理的主張または製品の編集)を撮ってください。",
"@product_improvement_origins_to_be_completed": {
"description": "Message for ProductImprovement.ORIGINS_TO_BE_COMPLETED"
},
- "country_chooser_label": "Please choose a country",
+ "country_chooser_label": "国を選んでください",
"@country_chooser_label": {
"description": "Label shown above a selector where the user can select their country"
},
- "country_selection_explanation": "Some environmental features are location-specific",
+ "country_selection_explanation": "環境特有の特徴の中には場所に固有のものがあります",
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
},
- "product_could_not_remove": "Could not remove product",
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
+ },
+ "product_could_not_remove": "製品を削除できませんでした",
"@product_could_not_remove": {
"description": "Could not remove product from a list"
},
@@ -510,76 +520,103 @@
"@clear": {
"description": "Clears a product list"
},
- "really_clear": "Do you really want to clear this list?",
- "product_compatibility_unknown": "Product Compatibility Unknown",
+ "really_clear": "このリストを本当にクリアしますか?",
+ "product_compatibility_unknown": "製品の互換性は不明",
"@product_compatibility_unknown": {
"description": "Product compatibility summary title"
},
- "product_compatibility_incompatible": "Does not match",
+ "product_compatibility_incompatible": "一致しない",
"@product_compatibility_incompatible": {
"description": "Product compatibility summary title"
},
- "product_compatibility_good": "Good Match",
+ "product_compatibility_good": "良好な一致",
"@product_compatibility_good": {
"description": "Product compatibility summary title"
},
"@Plural": {},
- "pct_match": "{percent}% match",
+ "pct_match": "{percent}% 一致",
"@pct_match": {
"description": "This product has a x percent match with your preferences",
"placeholders": {
"percent": {}
}
},
- "plural_ago_days": "{count,plural, =1{one day ago} other{{count} days ago}}",
+ "plural_ago_days": "{count,plural, =1{1 日前} other{{count} 日前}}",
"@plural_ago_days": {
"description": "Cached results from: x days ago",
"placeholders": {
"count": {}
}
},
- "plural_ago_hours": "{count,plural, =1{one hour ago} other{{count} hours ago}}",
+ "plural_ago_hours": "{count,plural, =1{1 時間前} other{{count} 時間前}}",
"@plural_ago_hours": {
"description": "Cached results from: x hours ago",
"placeholders": {
"count": {}
}
},
- "plural_ago_minutes": "{count,plural, =0{less than a minute ago} =1{one minute ago} other{{count} minutes ago}}",
+ "plural_ago_minutes": "{count,plural, =0{1分未満} =1{1分後} other{{count} 分後}}",
"@plural_ago_minutes": {
"description": "Cached results from: x minutes ago",
"placeholders": {
"count": {}
}
},
- "plural_ago_months": "{count,plural, =1{one month ago} other{{count} months ago}}",
+ "plural_ago_months": "{count,plural, =1{1 ヶ月後} other{{count} ヶ月後}}",
"@plural_ago_months": {
"description": "Cached results from: x months ago",
"placeholders": {
"count": {}
}
},
- "plural_ago_weeks": "{count,plural, =1{one week ago} other{{count} weeks ago}}",
+ "plural_ago_weeks": "{count,plural, =1{1 週間後} other{{count} 週間後}}",
"@plural_ago_weeks": {
"description": "Cached results from: x weeks ago",
"placeholders": {
"count": {}
}
},
- "plural_compare_x_products": "{count,plural, other{Compare {count} Products}",
+ "plural_compare_x_products": "{count,plural, other{{count} 製品を比較}",
"@plural_compare_x_products": {
"description": "Button label",
"placeholders": {
"count": {}
}
},
- "compare_products_mode": "Compare Mode",
+ "compare_products_mode": "比較モード",
"@compare_products_mode": {
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "再試行",
- "main_app_color": "Main color of the app",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "見つける",
+ "how_to_contribute": "How to Contribute",
+ "main_app_color": "アプリのメインカラー",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_jv.arb b/packages/smooth_app/lib/l10n/app_jv.arb
index 7dd231749f9..af16980def4 100644
--- a/packages/smooth_app/lib/l10n/app_jv.arb
+++ b/packages/smooth_app/lib/l10n/app_jv.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Jeneng",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_ka.arb b/packages/smooth_app/lib/l10n/app_ka.arb
index b2836439be7..9474197a27a 100644
--- a/packages/smooth_app/lib/l10n/app_ka.arb
+++ b/packages/smooth_app/lib/l10n/app_ka.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "სახელი",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "ძებნა",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_kk.arb b/packages/smooth_app/lib/l10n/app_kk.arb
index fe1b4328ed6..d4166f0d37e 100644
--- a/packages/smooth_app/lib/l10n/app_kk.arb
+++ b/packages/smooth_app/lib/l10n/app_kk.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Атауы",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Іздеу",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ингредиенттер",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_km.arb b/packages/smooth_app/lib/l10n/app_km.arb
index ede6407d52a..b60954e04db 100644
--- a/packages/smooth_app/lib/l10n/app_km.arb
+++ b/packages/smooth_app/lib/l10n/app_km.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "ស្វែងរក",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "គ្រឿងផ្សំ",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "ស្វែងរក",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_kn.arb b/packages/smooth_app/lib/l10n/app_kn.arb
index 678955e46fc..4d7a9bbbc3b 100644
--- a/packages/smooth_app/lib/l10n/app_kn.arb
+++ b/packages/smooth_app/lib/l10n/app_kn.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "ಹೆಸರು",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "ಹುಡುಕಿ",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "ಇತಿಹಾಸ",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "ಪದಾರ್ಥಗಳು",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "ಅನ್ವೇಷಿಸಿ",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_ko.arb b/packages/smooth_app/lib/l10n/app_ko.arb
index 13295a9145d..d08482e5450 100644
--- a/packages/smooth_app/lib/l10n/app_ko.arb
+++ b/packages/smooth_app/lib/l10n/app_ko.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "비밀번호를 입력하십시오",
"create_account": "계정 생성",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -94,7 +96,7 @@
"@sign_in": {
"description": "Button label: For sign in"
},
- "sign_out": "Sign out",
+ "sign_out": "로그아웃",
"@sign_out": {
"description": "Button label: For sign out"
},
@@ -107,7 +109,7 @@
"@forgot_password": {
"description": "Button label: Opens a page where a password reset e-mail can be requested"
},
- "view_profile": "View profile",
+ "view_profile": "프로필 보기",
"@view_profile": {
"description": "Button label: For to show your account"
},
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "축하합니다! 귀하의 계정이 방금 생성되었습니다.",
- "sign_up_page_display_name_hint": "표시할 이름",
+ "sign_up_page_display_name_hint": "이름",
"sign_up_page_display_name_error_empty": "사용하고자 하는 이름을 입력하십시오",
"sign_up_page_email_hint": "이메일",
"sign_up_page_email_error_empty": "이메일이 필요합니다",
@@ -277,7 +279,7 @@
},
"ranking_tab_all": "모두",
"ranking_subtitle_match_yes": "A great match for you",
- "ranking_subtitle_match_no": "Very poor match",
+ "ranking_subtitle_match_no": "호환성 매우 낮음",
"ranking_subtitle_match_maybe": "호환성 알 수 없음",
"reloaded_with_new_preferences": "새 설정으로 다시 불러옴",
"@reloaded_with_new_preferences": {
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "프로필",
+ "scan_navbar_label": "검색",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "프로필",
+ "history_navbar_label": "최근 기록",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "카테고리로 필터",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "성분",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "재료 사진",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "새 상품을 찾았습니다!",
"@missing_product": {},
- "add_product_take_photos": "이 상품을 데이터베이스에 추가하려면 포장 사진을 찍으십시오.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "사진만 찍어주시면 나머지는 Open Food Facts 엔진이 알아서 해결합니다!",
"@add_product_take_photos_descriptive": {},
@@ -424,9 +430,9 @@
"nutrition_page_per_serving": "인분",
"nutrition_page_add_nutrient": "영양소 추가하기",
"nutrition_page_serving_size": "서빙 사이즈",
- "nutrition_page_invalid_number": "Invalid number",
+ "nutrition_page_invalid_number": "잘못된 번호",
"nutrition_page_update_running": "Updating the product on the server...",
- "nutrition_page_update_done": "Product updated!",
+ "nutrition_page_update_done": "제품 업데이트됨",
"more_photos": "기타 흥미로운 사진",
"@more_photos": {},
"no_product_found": "상품 없음",
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "상품 제거됨",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "상품을 제거할 수 없음",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "다시 시도",
- "main_app_color": "Main color of the app",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "둘러보기",
+ "how_to_contribute": "How to Contribute",
+ "main_app_color": "응용 프로그램의 주요 테마",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_ku.arb b/packages/smooth_app/lib/l10n/app_ku.arb
index 3a713d88f75..303297c08b4 100644
--- a/packages/smooth_app/lib/l10n/app_ku.arb
+++ b/packages/smooth_app/lib/l10n/app_ku.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Nav",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Lêgerîn",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "Dîrok",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Materyalên",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Ce_sûsîya",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_kw.arb b/packages/smooth_app/lib/l10n/app_kw.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_kw.arb
+++ b/packages/smooth_app/lib/l10n/app_kw.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_ky.arb b/packages/smooth_app/lib/l10n/app_ky.arb
index 746394a3ff3..5273fe0ae17 100644
--- a/packages/smooth_app/lib/l10n/app_ky.arb
+++ b/packages/smooth_app/lib/l10n/app_ky.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Издөө",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Кайталоо",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_la.arb b/packages/smooth_app/lib/l10n/app_la.arb
index de37ccafa62..103647c5963 100644
--- a/packages/smooth_app/lib/l10n/app_la.arb
+++ b/packages/smooth_app/lib/l10n/app_la.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_lb.arb b/packages/smooth_app/lib/l10n/app_lb.arb
index 438f7d6d5a8..930befcd237 100644
--- a/packages/smooth_app/lib/l10n/app_lb.arb
+++ b/packages/smooth_app/lib/l10n/app_lb.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Inhaltstoffer",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_lo.arb b/packages/smooth_app/lib/l10n/app_lo.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_lo.arb
+++ b/packages/smooth_app/lib/l10n/app_lo.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_lt.arb b/packages/smooth_app/lib/l10n/app_lt.arb
index 11c7833634c..806418cafc5 100644
--- a/packages/smooth_app/lib/l10n/app_lt.arb
+++ b/packages/smooth_app/lib/l10n/app_lt.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Įveskite slaptažodį",
"create_account": "Sukurti paskyrą",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Sveikiname! Jūsų paskyra ką tik sukurta.",
- "sign_up_page_display_name_hint": "Rodomas vardas",
+ "sign_up_page_display_name_hint": "Vardas",
"sign_up_page_display_name_error_empty": "Įveskite rodomą pavadinimą, kurį norite naudoti",
"sign_up_page_email_hint": "El. paštas",
"sign_up_page_email_error_empty": "El. pašto adresas yra privalomas",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profilis",
+ "scan_navbar_label": "Paieška",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profilis",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filtruoti pagal kategoriją",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Sudėtis",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Sudėties nuotrauka",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "Radote naują produktą!",
"@missing_product": {},
- "add_product_take_photos": "Nufotografuokite pakuotę, kad įtrauktumėte šį produktą į mūsų duomenų bazę.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Nufotografuokite šias nuotraukas, o „Open Food Facts“ variklis galės išspręsti visa kita!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Produktas pašalintas",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Nepavyko pašalinti produkto",
"@product_could_not_remove": {
@@ -531,42 +541,42 @@
"percent": {}
}
},
- "plural_ago_days": "{count,plural, =1{one day ago} other{{count} days ago}}",
+ "plural_ago_days": "{count,plural, few {{count} prieš dienas} many {{count} prieš dienas} =1{prieš vieną dieną} other{{count} prieš dienas}}",
"@plural_ago_days": {
"description": "Cached results from: x days ago",
"placeholders": {
"count": {}
}
},
- "plural_ago_hours": "{count,plural, =1{one hour ago} other{{count} hours ago}}",
+ "plural_ago_hours": "{count,plural, few {{count} prieš valandas} many {{count} prieš valandas} =1{prieš valandą} other{{count} prieš valandas}}",
"@plural_ago_hours": {
"description": "Cached results from: x hours ago",
"placeholders": {
"count": {}
}
},
- "plural_ago_minutes": "{count,plural, =0{less than a minute ago} =1{one minute ago} other{{count} minutes ago}}",
+ "plural_ago_minutes": "{count,plural, few {{count} Prieš minutę} many {{count} Prieš minutę} =0{mažiau nei prieš minutę} =1{prieš minutę} other{{count} Prieš minutę}}",
"@plural_ago_minutes": {
"description": "Cached results from: x minutes ago",
"placeholders": {
"count": {}
}
},
- "plural_ago_months": "{count,plural, =1{one month ago} other{{count} months ago}}",
+ "plural_ago_months": "{count,plural, few {{count} prieš kelis mėnesius} many {{count} prieš kelis mėnesius} =1{prieš vieną mėnesį} other{{count} prieš kelis mėnesius}}",
"@plural_ago_months": {
"description": "Cached results from: x months ago",
"placeholders": {
"count": {}
}
},
- "plural_ago_weeks": "{count,plural, =1{one week ago} other{{count} weeks ago}}",
+ "plural_ago_weeks": "{count,plural, few {{count} prieš kelias savaites} many {{count} prieš kelias savaites} =1{prieš savaitę} other{{count} prieš kelias savaites}}",
"@plural_ago_weeks": {
"description": "Cached results from: x weeks ago",
"placeholders": {
"count": {}
}
},
- "plural_compare_x_products": "{count,plural, other{Compare {count} Products}",
+ "plural_compare_x_products": "{count,plural, other{Palyginkite {count} Produktai}",
"@plural_compare_x_products": {
"description": "Button label",
"placeholders": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Bandyti dar kartą",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Atrasti",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Siųsti anoniminę analizę",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
-}
+}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_lv.arb b/packages/smooth_app/lib/l10n/app_lv.arb
index 4880ccb843e..c6c82bf9f16 100644
--- a/packages/smooth_app/lib/l10n/app_lv.arb
+++ b/packages/smooth_app/lib/l10n/app_lv.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Nosaukums",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Meklēt",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "Vēsture",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Sastāvdaļas",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Atkārtot",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Atklāj",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_mg.arb b/packages/smooth_app/lib/l10n/app_mg.arb
index 877f02a93b6..669c1c39e1c 100644
--- a/packages/smooth_app/lib/l10n/app_mg.arb
+++ b/packages/smooth_app/lib/l10n/app_mg.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_mi.arb b/packages/smooth_app/lib/l10n/app_mi.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_mi.arb
+++ b/packages/smooth_app/lib/l10n/app_mi.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_ml.arb b/packages/smooth_app/lib/l10n/app_ml.arb
index de37ccafa62..103647c5963 100644
--- a/packages/smooth_app/lib/l10n/app_ml.arb
+++ b/packages/smooth_app/lib/l10n/app_ml.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_mn.arb b/packages/smooth_app/lib/l10n/app_mn.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_mn.arb
+++ b/packages/smooth_app/lib/l10n/app_mn.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_mr.arb b/packages/smooth_app/lib/l10n/app_mr.arb
index e0b1066c4a6..e4db21821b9 100644
--- a/packages/smooth_app/lib/l10n/app_mr.arb
+++ b/packages/smooth_app/lib/l10n/app_mr.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "शोध",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "साहित्य",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "शोध",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_ms.arb b/packages/smooth_app/lib/l10n/app_ms.arb
index e345dd28970..290b338b78e 100644
--- a/packages/smooth_app/lib/l10n/app_ms.arb
+++ b/packages/smooth_app/lib/l10n/app_ms.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Nama",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Gelintar",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Bahan-bahan",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Foto ramuan",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "Anda telah menemui produk baharu!",
"@missing_product": {},
- "add_product_take_photos": "Ambil gambar pembungkusan untuk menambah produk ini ke pangkalan data kami.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Sila ambil gambar berikut dan enjin Fakta Makanan Terbuka boleh menyelesaikan selebihnya!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Cuba lagi",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Temui",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_mt.arb b/packages/smooth_app/lib/l10n/app_mt.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_mt.arb
+++ b/packages/smooth_app/lib/l10n/app_mt.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_my.arb b/packages/smooth_app/lib/l10n/app_my.arb
index 9ffbf723666..229198c0e8d 100644
--- a/packages/smooth_app/lib/l10n/app_my.arb
+++ b/packages/smooth_app/lib/l10n/app_my.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "အမည္",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "ရွာေဖြမည္",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "မှတ်တမ်း",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "ပါဝင္မႈမ်ား",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_nb.arb b/packages/smooth_app/lib/l10n/app_nb.arb
index 00b821cfda8..11fecba1f0b 100644
--- a/packages/smooth_app/lib/l10n/app_nb.arb
+++ b/packages/smooth_app/lib/l10n/app_nb.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Navn",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Søk",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "Historikk",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredienser",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Prøv på nytt",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Oppdag",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_ne.arb b/packages/smooth_app/lib/l10n/app_ne.arb
index 4e71b9eec3f..fb699d2bc91 100644
--- a/packages/smooth_app/lib/l10n/app_ne.arb
+++ b/packages/smooth_app/lib/l10n/app_ne.arb
@@ -1,12 +1,12 @@
{
"@Utils": {},
- "yes": "Yes",
+ "yes": "हाे",
"@yes": {},
"add": "Add",
"@add": {},
- "okay": "Okay",
+ "okay": "ल",
"@okay": {},
- "applyButtonText": "Apply",
+ "applyButtonText": "लागू गर्नुहोस्",
"@applyButtonText": {},
"next_label": "Next",
"@next_label": {
@@ -18,9 +18,9 @@
"@cancel": {},
"close": "बन्द गर्नुहोस्",
"@close": {},
- "no": "No",
+ "no": "होइन",
"@no": {},
- "stop": "Stop",
+ "stop": "रोक",
"@stop": {},
"finish": "Finish",
"@finish": {},
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "खोज्नुहोस्",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "आवश्यक सामग्रीहरू",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "पुन: प्रयास गर्नुहोस्",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "अन्वेषण गर्नुहोस्",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_nl.arb b/packages/smooth_app/lib/l10n/app_nl.arb
index b2d8edcf06c..6751c85ab36 100644
--- a/packages/smooth_app/lib/l10n/app_nl.arb
+++ b/packages/smooth_app/lib/l10n/app_nl.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Naam:",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Zoeken",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "Geschiedenis",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingrediënten",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingrediënten foto",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "Je hebt een nieuw product gevonden!",
"@missing_product": {},
- "add_product_take_photos": "Neem foto's van de verpakking om dit product toe te voegen aan onze database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Neem de volgende foto's en de Open Food Facts-engine kan de rest uitwerken!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Opnieuw proberen",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter @",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Ontdek",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Stuur anonieme analyses",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_nn.arb b/packages/smooth_app/lib/l10n/app_nn.arb
index fafadbafad5..64c9d723cd6 100644
--- a/packages/smooth_app/lib/l10n/app_nn.arb
+++ b/packages/smooth_app/lib/l10n/app_nn.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Navn",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Søk",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "Logg",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredienser",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Utforsk",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_no.arb b/packages/smooth_app/lib/l10n/app_no.arb
index fafadbafad5..64c9d723cd6 100644
--- a/packages/smooth_app/lib/l10n/app_no.arb
+++ b/packages/smooth_app/lib/l10n/app_no.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Navn",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Søk",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "Logg",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredienser",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Utforsk",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_nr.arb b/packages/smooth_app/lib/l10n/app_nr.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_nr.arb
+++ b/packages/smooth_app/lib/l10n/app_nr.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_oc.arb b/packages/smooth_app/lib/l10n/app_oc.arb
index 0ec3c5a99ca..dfc87553f7d 100644
--- a/packages/smooth_app/lib/l10n/app_oc.arb
+++ b/packages/smooth_app/lib/l10n/app_oc.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Nom",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Recercar",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "Istoric",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_pa.arb b/packages/smooth_app/lib/l10n/app_pa.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_pa.arb
+++ b/packages/smooth_app/lib/l10n/app_pa.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_pl.arb b/packages/smooth_app/lib/l10n/app_pl.arb
index d3622a99352..022bebe4d7d 100644
--- a/packages/smooth_app/lib/l10n/app_pl.arb
+++ b/packages/smooth_app/lib/l10n/app_pl.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Proszę wpisać hasło",
"create_account": "Utwórz konto",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profil",
+ "scan_navbar_label": "Wyszukiwanie",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profil",
+ "history_navbar_label": "Historia",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filtruj według kategorii",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Składniki",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Zdjęcie listy składników",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Towar usunięty",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Nie udało się usunąć produktu",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Ponów próbę",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Odkryj",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_pt.arb b/packages/smooth_app/lib/l10n/app_pt.arb
index d727e9b7c74..af6474482c5 100644
--- a/packages/smooth_app/lib/l10n/app_pt.arb
+++ b/packages/smooth_app/lib/l10n/app_pt.arb
@@ -24,7 +24,7 @@
"@stop": {},
"finish": "Terminar",
"@finish": {},
- "reset_food_prefs": "Reset food preferences",
+ "reset_food_prefs": "Resetar preferências alimentares",
"@reset": {
"description": "Button label, clicking on the button will reset user's food preferences."
},
@@ -42,7 +42,7 @@
"@incompatible": {
"description": "Short label for product list view: the product is incompatible with your preferences"
},
- "compatible": "Compatible",
+ "compatible": "Compatível",
"@compatible": {
"description": "Short label for product list view: the product is compatible with your preferences"
},
@@ -59,11 +59,11 @@
"@Introduction screen": {},
"welcomeToOpenFoodFacts": "Bem-vindo ao Open Food Facts",
"@welcomeToOpenFoodFacts": {},
- "whatIsOff": "Open Food Facts is a global non-profit powered by local communities.",
+ "whatIsOff": "Open Food Facts é uma organização global sem fins lucrativos desenvolvida por comunidades locais.",
"@whatIsOff": {
"description": "Description of Open Food Facts organization."
},
- "offUtility": "Choose foods that are good for you and the planet.",
+ "offUtility": "Escolha alimentos que são bons para você e para o planeta.",
"@offUtility": {
"description": "Description of what a user can use Open Food Facts for."
},
@@ -80,12 +80,14 @@
"description": "Description of what a user can use the Eco data in a product for."
},
"@user_management": {},
- "sign_in_text": "Sign in to your Open Food Facts account to save your contributions",
+ "sign_in_text": "Faça login na sua conta Open Food Facts para salvar suas contribuções",
"incorrect_credentials": "Nome do usuário ou senha incorretos.",
"login": "Nome de Utilizador",
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Por favor, insira uma senha",
"create_account": "Criar uma conta",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -98,7 +100,7 @@
"@sign_out": {
"description": "Button label: For sign out"
},
- "sign_out_confirmation": "Are you sure you want to sign out?",
+ "sign_out_confirmation": "Você tem certeza que deseja sair?",
"@sign_out_confirmation": {
"description": "Pop up title: Reassuring if the user really want to sign out"
},
@@ -107,7 +109,7 @@
"@forgot_password": {
"description": "Button label: Opens a page where a password reset e-mail can be requested"
},
- "view_profile": "View profile",
+ "view_profile": "Ver perfil",
"@view_profile": {
"description": "Button label: For to show your account"
},
@@ -115,47 +117,47 @@
"@reset_password": {
"description": "Forgot password page title"
},
- "reset_password_explanation_text": "In case of a forgotten password, enter your username or e-mail address to receive instructions for a password reset. Also, remember to check the Spam folder.",
- "username_or_email": "Username or e-mail",
+ "reset_password_explanation_text": "Em caso de esquecimento de senha, digite seu nome de usuário ou e-mail para receber instruções para redefinir a senha. Não se esqueça de verificar também a pasta Spam.",
+ "username_or_email": "Nome de usuário ou e-mail",
"@username_or_email": {
"description": "Text field hint for password reset"
},
- "reset_password_done": "An e-mail with a link to reset your password has been sent to the e-mail address associated with your account. Also check your spam",
- "send_reset_password_mail": "Change password",
+ "reset_password_done": "Um e-mail com um link para redefinir sua senha foi enviado para o endereço de e-mail associado à sua conta. Não se esqueça de checar também a sua pasta Spam",
+ "send_reset_password_mail": "Alterar senha",
"@send_reset_password_mail": {
"description": "Button label: Submit the password reset e-mail request"
},
- "enter_some_text": "Please enter some text",
+ "enter_some_text": "Por favor, insira algum texto",
"@enter_some_text": {
"description": "Error when a required text field is empty"
},
- "sign_up_page_title": "Sign Up",
+ "sign_up_page_title": "Cadastrar-se",
"@sign_up_page_title": {
"description": "Header"
},
- "sign_up_page_action_button": "Sign Up",
+ "sign_up_page_action_button": "Cadastrar-se",
"@sign_up_page_action_button": {
"description": "Button for signing up"
},
- "sign_up_page_action_doing_it": "Signing up...",
+ "sign_up_page_action_doing_it": "Registrando...",
"@sign_up_page_action_doing_it": {
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Parabéns! Sua conta acabou de ser criada.",
- "sign_up_page_display_name_hint": "Display Name",
- "sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
+ "sign_up_page_display_name_hint": "Nome",
+ "sign_up_page_display_name_error_empty": "Por favor, digite o nome de exibição que você deseja usar",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "O e-mail é obrigatório",
"sign_up_page_email_error_invalid": "E-mail inválido",
"sign_up_page_username_hint": "Nome de Utilizador",
- "sign_up_page_username_error_empty": "Please enter a username",
- "sign_up_page_username_error_invalid": "Please enter a valid username",
- "sign_up_page_username_description": "Username cannot contains spaces, caps or special characters",
+ "sign_up_page_username_error_empty": "Por favor, insira um nome de usuário",
+ "sign_up_page_username_error_invalid": "Por favor, insira um nome de usuário valido",
+ "sign_up_page_username_description": "O nome de usuário não pode conter espaços, letras maiúsculas ou caracteres especiais",
"sign_up_page_password_hint": "Palavra-passe",
- "sign_up_page_password_error_empty": "Please enter a password",
- "sign_up_page_password_error_invalid": "Please enter a valid password (at least 6 characters)",
- "sign_up_page_confirm_password_hint": "Confirm Password",
- "sign_up_page_confirm_password_error_empty": "Please confirm the password",
+ "sign_up_page_password_error_empty": "Por favor, insira uma senha",
+ "sign_up_page_password_error_invalid": "Por favor, insira uma senha válida (pelo menos 6 caracteres)",
+ "sign_up_page_confirm_password_hint": "Confirmar senha",
+ "sign_up_page_confirm_password_error_empty": "Por favor, confirme a senha",
"sign_up_page_confirm_password_error_invalid": "As senhas não conferem",
"sign_up_page_agree_url": "https://world-pt.openfoodfacts.org/terms-of-use",
"@sign_up_page_agree_url": {
@@ -165,13 +167,13 @@
"@donate_url": {
"description": "Please insert the right url from the website here."
},
- "sign_up_page_agree_error_invalid": "When creating an account, agreeing to the Terms of Use is mandatory, however, anonymous contributions can still be made through the app",
+ "sign_up_page_agree_error_invalid": "Ao criar uma conta, é obrigatório concordar com os Termos de Uso, porém, contribuições anônimas ainda podem ser feitas através do app",
"@sign_up_page_agree_error_invalid": {
"description": "Error message: You have to agree to the terms-of-use (A checkbox to do so is above this error message)"
},
- "sign_up_page_producer_checkbox": "I am a food producer",
- "sign_up_page_producer_hint": "Producer/brand",
- "sign_up_page_producer_error_empty": "Please enter a producer or a brand name",
+ "sign_up_page_producer_checkbox": "Sou um produtor de alimentos",
+ "sign_up_page_producer_hint": "Produtor/marca",
+ "sign_up_page_producer_error_empty": "Por favor, insira um nome de um produtor ou marca",
"sign_up_page_subscribe_checkbox": "Eu gostaria de assinar a newsletter do Open Food Facts (você pode cancelar a assinatura a qualquer momento)",
"@Settings": {},
"settingsTitle": "Definições",
@@ -190,7 +192,7 @@
"@darkmode_light": {
"description": "Indicator inside the darkmode switch"
},
- "thanks_for_contributing": "Thanks for contributing",
+ "thanks_for_contributing": "Obrigada pela sua contribuição",
"@contributors": {
"description": "Button label: Opens a pop up window where all contributors of this app are shown"
},
@@ -199,8 +201,8 @@
"@support": {
"description": "Button label: Opens a pop up window where all ways to get support are shown"
},
- "support_join_slack": "Ask for help in our Slack channel",
- "support_via_email": "Send us a e-mail",
+ "support_join_slack": "Peça ajuda em nosso canal no Slack",
+ "support_via_email": "Envie-nos um e-mail",
"termsOfUse": "Termos de uso",
"@termsOfUse": {},
"about_this_app": "Sobre este aplicativo",
@@ -212,7 +214,7 @@
"@contribute": {
"description": "Button label: Shows multiple ways how users can contribute to OFF"
},
- "contribute_sw_development": "Software development",
+ "contribute_sw_development": "Desenvolvimento de software",
"@contribute_sw_development": {
"description": "Button label + page title: Ways to help"
},
@@ -244,15 +246,15 @@
"@contribute_translate_text": {},
"contribute_translate_text_2": "A tradução é uma das principais tarefas do projeto",
"@contribute_translate_text_2": {},
- "tap_to_answer": "Tap here to answer questions",
+ "tap_to_answer": "Toque aqui para responder a perguntas",
"@tap_to_answer": {
"description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards."
},
- "saving_answer": "Saving your answer",
+ "saving_answer": "Salvando sua resposta",
"@saving_answer": {
"description": "Dialog shown to users after they have answered a question, while the answer is being saved in the BE."
},
- "contribute_to_get_rewards": "Help food transparency and get reward badges",
+ "contribute_to_get_rewards": "Ajude a transparência alimentar e ganhe medalhas de recompensa",
"@contribute_to_get_rewards": {
"description": "Button description shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards."
},
@@ -261,13 +263,13 @@
"@myPreferences": {
"description": "Page title: Page where the ranking preferences can be changed"
},
- "myPreferences_profile_title": "Your Profile",
- "myPreferences_profile_subtitle": "Set app settings and find out advices.",
- "myPreferences_settings_title": "App Settings",
- "myPreferences_settings_subtitle": "Dark mode, Theme, ...",
- "myPreferences_food_title": "Food Preferences",
- "myPreferences_food_subtitle": "Choose what information about food matters most to you.",
- "confirmResetPreferences": "Reset your food preferences?",
+ "myPreferences_profile_title": "Seu Perfil",
+ "myPreferences_profile_subtitle": "Defina as configurações do aplicativo e informe-se sobre os conselhos.",
+ "myPreferences_settings_title": "Configurações do Aplicativo",
+ "myPreferences_settings_subtitle": "Modo escuro, Tema, ...",
+ "myPreferences_food_title": "Preferências alimentares",
+ "myPreferences_food_subtitle": "Escolha quais informações sobre alimentos são mais importantes para você.",
+ "confirmResetPreferences": "Redefinir suas preferências alimentares?",
"@confirmResetPreferences": {
"description": "Pop up title: Reassuring if the food preferences should really be reset"
},
@@ -276,9 +278,9 @@
"description": "When you press this button, all products (in list or category) are sorted according to your preferences."
},
"ranking_tab_all": "Todos",
- "ranking_subtitle_match_yes": "A great match for you",
- "ranking_subtitle_match_no": "Very poor match",
- "ranking_subtitle_match_maybe": "Unknown match",
+ "ranking_subtitle_match_yes": "Uma ótima combinação para você",
+ "ranking_subtitle_match_no": "Uma combinação muita pobre",
+ "ranking_subtitle_match_maybe": "Combinação desconhecida",
"reloaded_with_new_preferences": "Recarregado com novas preferências",
"@reloaded_with_new_preferences": {
"description": "Snackbar title: Shows that the modified settings have been applied"
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Perfil",
+ "scan_navbar_label": "Procurar",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Perfil",
+ "history_navbar_label": "Histórico",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filtrar por categoria",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredientes",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Foto de ingredientes",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -352,65 +358,65 @@
},
"packaging_information_photo": "Foto de informações da embalagem",
"@packaging_information_photo": {},
- "missing_product": "You found a new product!",
+ "missing_product": "Você encontrou um novo produto!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
- "add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
+ "add_product_take_photos_descriptive": "Por favor, tire as seguintes fotos e o mecanismo Open Food Facts pode resolver o resto!",
"@add_product_take_photos_descriptive": {},
"add_product_information_button_label": "Adicione informações sobre o produto",
"@add_product_information_button_label": {},
- "new_product": "New Product",
+ "new_product": "Novo produto",
"@new_product": {},
- "front_packaging_photo_button_label": "Front packaging photo",
+ "front_packaging_photo_button_label": "Foto frontal da embalagem",
"@front_packaging_photo_button_label": {},
- "confirm_front_packaging_photo_button_label": "Confirm Front packaging photo",
+ "confirm_front_packaging_photo_button_label": "Confirme a Foto frontal da embalagem",
"@confirm_front_packaging_photo_button_label": {
"description": "Button clicking on which confirms the picture of the front packaging that user just took."
},
- "front_photo_uploaded": "Front photo uploaded",
+ "front_photo_uploaded": "Foto inicial enviada",
"@front_photo_uploaded": {},
"ingredients_photo_button_label": "Foto de ingredientes",
"@ingredients_photo_button_label": {},
- "confirm_ingredients_photo_button_label": "Confirm Ingredients photo",
+ "confirm_ingredients_photo_button_label": "Confirme a foto dos Ingredientes",
"@confirm_ingredients_photo_button_label": {
"description": "Button clicking on which confirms the picture of ingredients that user just took."
},
- "ingredients_photo_uploaded": "Ingredients photo uploaded",
+ "ingredients_photo_uploaded": "Foto dos ingredientes enviada",
"@ingredients_photo_uploaded": {},
- "nutritional_facts_photo_button_label": "Nutritional facts photo",
+ "nutritional_facts_photo_button_label": "Foto das informações nutricionais",
"@nutritional_facts_photo_button_label": {},
- "confirm_nutritional_facts_photo_button_label": "Confirm Nutritional facts photo",
+ "confirm_nutritional_facts_photo_button_label": "Confirme a Foto das informações nutricionais",
"@confirm_nutritional_facts_photo_button_label": {
"description": "Button clicking on which confirms the picture of nutritional facts that user just took."
},
- "nutritional_facts_photo_uploaded": "Nutritional facts photo uploaded",
+ "nutritional_facts_photo_uploaded": "Foto das Informações nutricionais enviada",
"@nutritional_facts_photo_uploaded": {},
- "recycling_photo_button_label": "Recycling information photo",
+ "recycling_photo_button_label": "Foto de informações sobre reciclagem",
"@recycling_photo_button_label": {},
- "confirm_recycling_photo_button_label": "Confirm Recycling information photo",
+ "confirm_recycling_photo_button_label": "Confirme a foto das Informações de reciclagem",
"@confirm_recycling_photo_button_label": {
"description": "Button clicking on which confirms the picture of recycling information that user just took."
},
- "recycling_photo_uploaded": "Recycling photo uploaded",
+ "recycling_photo_uploaded": "Foto de Reciclagem enviada",
"@recycling_photo_uploaded": {},
- "other_interesting_photo_button_label": "Other interesting photos",
+ "other_interesting_photo_button_label": "Mais fotos interessantes",
"@other_interesting_photo_button_label": {},
- "confirm_other_interesting_photo_button_label": "Confirm photo",
+ "confirm_other_interesting_photo_button_label": "Confirmar foto",
"@confirm_other_interesting_photo_button_label": {
"description": "Button clicking on which confirms a miscellaneous photo of the product."
},
- "other_photo_uploaded": "Miscellaneous photo uploaded",
+ "other_photo_uploaded": "Fotos diversas enviadas",
"@other_photo_uploaded": {},
"retake_photo_button_label": "Tirar novamente",
"@retake_photo_button_label": {
"description": "Button clicking on which allows users to retake the last photo they took."
},
- "selecting_photo": "Selecting photo",
+ "selecting_photo": "Selecionando foto",
"@selecting_photo": {
"description": "Progress indicator when the users takes a photo"
},
- "uploading_image": "Uploading Image to the server",
+ "uploading_image": "Carregando imagem para o servidor",
"@uploading_image": {
"description": "Message when a new picture is uploading to the server"
},
@@ -419,14 +425,14 @@
"score_add_missing_product_category": "Adicionar categoria de produto ausente",
"score_update_nutrition_facts": "Atualizar informações nutricionais",
"nutrition_page_title": "Informações Nutricionais do Produto",
- "nutrition_page_unspecified": "Nutrition facts are not specified on the product",
- "nutrition_page_per_100g": "per 100g",
+ "nutrition_page_unspecified": "A informação nutricional não é está presente no produto",
+ "nutrition_page_per_100g": "por 100g",
"nutrition_page_per_serving": "por porção",
"nutrition_page_add_nutrient": "Adicionar um nutriente",
"nutrition_page_serving_size": "Tamanho da porção",
- "nutrition_page_invalid_number": "Invalid number",
- "nutrition_page_update_running": "Updating the product on the server...",
- "nutrition_page_update_done": "Product updated!",
+ "nutrition_page_invalid_number": "Número inválido",
+ "nutrition_page_update_running": "Atualizando o produto no servidor...",
+ "nutrition_page_update_done": "Produto atualizado!",
"more_photos": "Mais fotos interessantes",
"@more_photos": {},
"no_product_found": "Nenhum produto encontrado",
@@ -446,11 +452,11 @@
"@could_not_refresh": {
"description": "The product data couldn't be refreshed"
},
- "product_internet_cancel": "Canceled by user.",
+ "product_internet_cancel": "Cancelado pelo usuário.",
"@product_internet_cancel": {
"description": "Confirmation, that the product data got canceled by the user"
},
- "product_internet_error": "Impossible to fetch information about this product due to a network error.",
+ "product_internet_error": "Impossível obter informações sobre este produto devido a um erro de rede.",
"cached_results_from": "Cached results from:",
"@cached_results_from": {
"description": "Cached results from: x time ago (time ago should not be added to the string)"
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Repetir",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Descubra",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Compartilhar dados anônimos",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_qu.arb b/packages/smooth_app/lib/l10n/app_qu.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_qu.arb
+++ b/packages/smooth_app/lib/l10n/app_qu.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_rm.arb b/packages/smooth_app/lib/l10n/app_rm.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_rm.arb
+++ b/packages/smooth_app/lib/l10n/app_rm.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_ro.arb b/packages/smooth_app/lib/l10n/app_ro.arb
index 663c3a7b64e..400b6deb287 100644
--- a/packages/smooth_app/lib/l10n/app_ro.arb
+++ b/packages/smooth_app/lib/l10n/app_ro.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Vă rugăm să introduceți o parolă",
"create_account": "Creare cont",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Felicitări! Contul dvs. tocmai a fost creat.",
- "sign_up_page_display_name_hint": "Nume afișat",
+ "sign_up_page_display_name_hint": "Nume",
"sign_up_page_display_name_error_empty": "Vă rugăm să introduceți numele afișat pe care doriți să îl utilizați",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mailul este necesar",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profil",
+ "scan_navbar_label": "Caută",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profil",
+ "history_navbar_label": "Istoric",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filtrare după categorie",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingrediente",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Foto ingrediente",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Produs eliminat",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Produsul nu a putut fi eliminat",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Reîncercați",
- "main_app_color": "Main color of the app",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Descoperiți",
+ "how_to_contribute": "How to Contribute",
+ "main_app_color": "Culoarea principală a aplicației",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Trimiteți analize anonime",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_ru.arb b/packages/smooth_app/lib/l10n/app_ru.arb
index 36ce3a37e1d..4f02dae10d6 100644
--- a/packages/smooth_app/lib/l10n/app_ru.arb
+++ b/packages/smooth_app/lib/l10n/app_ru.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Название",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Поиск",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "История",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Состав",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Фото состава",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "Вы нашли новый продукт!",
"@missing_product": {},
- "add_product_take_photos": "Сфотографируйте упаковку, чтобы добавить этот продукт в нашу базу данных.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Пожалуйста, сделайте следующие фотографии, а движок Open Food Facts сделает все остальное!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Повтор",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "О проекте",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Отправлять анонимную статистику",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_sa.arb b/packages/smooth_app/lib/l10n/app_sa.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_sa.arb
+++ b/packages/smooth_app/lib/l10n/app_sa.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_sc.arb b/packages/smooth_app/lib/l10n/app_sc.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_sc.arb
+++ b/packages/smooth_app/lib/l10n/app_sc.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_sd.arb b/packages/smooth_app/lib/l10n/app_sd.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_sd.arb
+++ b/packages/smooth_app/lib/l10n/app_sd.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_sg.arb b/packages/smooth_app/lib/l10n/app_sg.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_sg.arb
+++ b/packages/smooth_app/lib/l10n/app_sg.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_si.arb b/packages/smooth_app/lib/l10n/app_si.arb
index e0d308407e1..64ced34dec2 100644
--- a/packages/smooth_app/lib/l10n/app_si.arb
+++ b/packages/smooth_app/lib/l10n/app_si.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "අමුද්රව්ය",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_sk.arb b/packages/smooth_app/lib/l10n/app_sk.arb
index 8463e8afcaf..fad37831484 100644
--- a/packages/smooth_app/lib/l10n/app_sk.arb
+++ b/packages/smooth_app/lib/l10n/app_sk.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Prosím, zadajte heslo",
"create_account": "Vytvoriť účet",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Gratulujeme! Váš účet bol práve vytvorený.",
- "sign_up_page_display_name_hint": "Zobrazované meno",
+ "sign_up_page_display_name_hint": "Názov",
"sign_up_page_display_name_error_empty": "Zadajte zobrazované meno, ktoré chcete použiť",
"sign_up_page_email_hint": "Emailová adresa",
"sign_up_page_email_error_empty": "E-mail je povinný",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profil",
+ "scan_navbar_label": "Vyhľadať",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profil",
+ "history_navbar_label": "História",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filtrovať podľa kategórie",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingrediencie",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Fotografia ingrediencií",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Produkt bol odstránený",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Produkt sa nepodarilo odstrániť",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Skúsiť znova",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Objaviť",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_sl.arb b/packages/smooth_app/lib/l10n/app_sl.arb
index d9ea205ef4d..58b792e407c 100644
--- a/packages/smooth_app/lib/l10n/app_sl.arb
+++ b/packages/smooth_app/lib/l10n/app_sl.arb
@@ -4,7 +4,7 @@
"@yes": {},
"add": "Dodaj",
"@add": {},
- "okay": "Okay",
+ "okay": "V redu",
"@okay": {},
"applyButtonText": "Uporabi",
"@applyButtonText": {},
@@ -20,17 +20,17 @@
"@close": {},
"no": "Ne",
"@no": {},
- "stop": "Stop",
+ "stop": "Ustavi",
"@stop": {},
"finish": "Finish",
"@finish": {},
- "reset_food_prefs": "Reset food preferences",
+ "reset_food_prefs": "Ponastavite nastavitve hrane",
"@reset": {
"description": "Button label, clicking on the button will reset user's food preferences."
},
"error": "Nekaj je šlo narobe",
"@error": {},
- "error_occurred": "An error occurred",
+ "error_occurred": "Prišlo je do napake",
"@error_occurred": {},
"featureInProgress": "We're still working on this feature, stay tuned",
"@featureInProgress": {},
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Ime",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Iskanje",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "Zgodovina",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Sestavine",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Poskusi znova",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Odkritje",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Pošljite anonimno analitiko",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_sn.arb b/packages/smooth_app/lib/l10n/app_sn.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_sn.arb
+++ b/packages/smooth_app/lib/l10n/app_sn.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_so.arb b/packages/smooth_app/lib/l10n/app_so.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_so.arb
+++ b/packages/smooth_app/lib/l10n/app_so.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_sq.arb b/packages/smooth_app/lib/l10n/app_sq.arb
index 11a1a88f807..8e7dfc9b707 100644
--- a/packages/smooth_app/lib/l10n/app_sq.arb
+++ b/packages/smooth_app/lib/l10n/app_sq.arb
@@ -1,12 +1,12 @@
{
"@Utils": {},
- "yes": "Po",
+ "yes": "Po ",
"@yes": {},
"add": "Shto",
"@add": {},
- "okay": "Okay",
+ "okay": "Ne rregull",
"@okay": {},
- "applyButtonText": "Apply",
+ "applyButtonText": "Apliko",
"@applyButtonText": {},
"next_label": "Next",
"@next_label": {
@@ -18,31 +18,31 @@
"@cancel": {},
"close": "Close",
"@close": {},
- "no": "No",
+ "no": "Jo",
"@no": {},
- "stop": "Stop",
+ "stop": "Ndalo",
"@stop": {},
"finish": "Finish",
"@finish": {},
- "reset_food_prefs": "Reset food preferences",
+ "reset_food_prefs": "Rinis, rivendos preferencat ushqimore",
"@reset": {
"description": "Button label, clicking on the button will reset user's food preferences."
},
"error": "Something went wrong",
"@error": {},
- "error_occurred": "An error occurred",
+ "error_occurred": "Nje gabim ka ndodhur",
"@error_occurred": {},
- "featureInProgress": "We're still working on this feature, stay tuned",
+ "featureInProgress": "Ne jemi ende duke punuar mbi kete funksion, vecori, qendroni vigjilent, ne sinkron",
"@featureInProgress": {},
- "label_web": "View on the Web",
+ "label_web": "Shiko ne web",
"@label_web": {},
"learnMore": "Learn more",
"@learnMore": {},
- "incompatible": "Incompatible",
+ "incompatible": "E papajtueshme",
"@incompatible": {
"description": "Short label for product list view: the product is incompatible with your preferences"
},
- "compatible": "Compatible",
+ "compatible": "E perputhshme",
"@compatible": {
"description": "Short label for product list view: the product is compatible with your preferences"
},
@@ -52,41 +52,43 @@
},
"licenses": "Licences",
"@licenses": {},
- "looking_for": "Looking for",
+ "looking_for": "Ne kerkim te",
"@looking_for": {
"description": "Looking for: ${BARCODE}"
},
"@Introduction screen": {},
"welcomeToOpenFoodFacts": "Welcome to Open Food Facts",
"@welcomeToOpenFoodFacts": {},
- "whatIsOff": "Open Food Facts is a global non-profit powered by local communities.",
+ "whatIsOff": "Open Food Facts eshte nje organizate jo fitimprurese globale e fuqizuar dhe mundesuar nga komunitete lokale.",
"@whatIsOff": {
"description": "Description of Open Food Facts organization."
},
- "offUtility": "Choose foods that are good for you and the planet.",
+ "offUtility": "Perzgjidh ushqime qe jane te mira per ty dhe planetin.",
"@offUtility": {
"description": "Description of what a user can use Open Food Facts for."
},
- "productDataUtility": "See the food data relevant to your preferences.",
+ "productDataUtility": "Shihni te dhenat ushqimore qe jane te rendesishme lidhur me pelqyeshmerite tuaja.",
"@productDataUtility": {
"description": "Description of what a user can use the product data for."
},
- "healthCardUtility": "Choose foods that are good for you.",
+ "healthCardUtility": "Perzgjidh ushqime qe jane te mira per ty.\n",
"@healthCardUtility": {
"description": "Description of what a user can use the health data in a product for."
},
- "ecoCardUtility": "Choose foods that are good for the planet.",
+ "ecoCardUtility": "Perzgjidh ushqime qe jane te mira per planetin.",
"@ecoCardUtility": {
"description": "Description of what a user can use the Eco data in a product for."
},
"@user_management": {},
- "sign_in_text": "Sign in to your Open Food Facts account to save your contributions",
- "incorrect_credentials": "Incorrect username or password.",
+ "sign_in_text": "Hyni ne llogarine tuaj ne Open Food Facts per te ruajtur kontributet, ndihmesat tuaja. ",
+ "incorrect_credentials": "Emri i perdoruesit ose fjalekalimi i pasakte",
"login": "Login",
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
- "create_account": "Create account",
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Ju lutem vendosni nje fjalekalim.",
+ "create_account": "Krijo nje llogari",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
},
@@ -94,20 +96,20 @@
"@sign_in": {
"description": "Button label: For sign in"
},
- "sign_out": "Sign out",
+ "sign_out": "Dilni",
"@sign_out": {
"description": "Button label: For sign out"
},
- "sign_out_confirmation": "Are you sure you want to sign out?",
+ "sign_out_confirmation": "Jeni te sigurt qe doni te dilni?",
"@sign_out_confirmation": {
"description": "Pop up title: Reassuring if the user really want to sign out"
},
"password": "Password",
- "forgot_password": "Forgot password",
+ "forgot_password": "Keni harruar fjalekalimin",
"@forgot_password": {
"description": "Button label: Opens a page where a password reset e-mail can be requested"
},
- "view_profile": "View profile",
+ "view_profile": "Shiko profilin",
"@view_profile": {
"description": "Button label: For to show your account"
},
@@ -115,48 +117,48 @@
"@reset_password": {
"description": "Forgot password page title"
},
- "reset_password_explanation_text": "In case of a forgotten password, enter your username or e-mail address to receive instructions for a password reset. Also, remember to check the Spam folder.",
- "username_or_email": "Username or e-mail",
+ "reset_password_explanation_text": "Ne rast te nje fjalekalimi te harruar, vendosni emrin tuaj te perdoruesit ose adresen e emailit per te marre udhezime per nje rivendosje te fjalekalimit.Gjithashtu, kini parasysh te kontrolloni kartelen spam.",
+ "username_or_email": "Emri i perdoruesit ose adresa e email-it",
"@username_or_email": {
"description": "Text field hint for password reset"
},
- "reset_password_done": "An e-mail with a link to reset your password has been sent to the e-mail address associated with your account. Also check your spam",
- "send_reset_password_mail": "Change password",
+ "reset_password_done": "Nje email me nje link per te rivendosur fjalekalimin tuaj eshte derguar ne adresen tuaj te email-it te lidhur me llogarine tuaj. Kontrolloni gjithashtu edhe kartelen spam",
+ "send_reset_password_mail": "Ndrysho fjalekalimin",
"@send_reset_password_mail": {
"description": "Button label: Submit the password reset e-mail request"
},
- "enter_some_text": "Please enter some text",
+ "enter_some_text": "Ju lutem vendosni tekstin ",
"@enter_some_text": {
"description": "Error when a required text field is empty"
},
- "sign_up_page_title": "Sign Up",
+ "sign_up_page_title": "Regjistrohu",
"@sign_up_page_title": {
"description": "Header"
},
- "sign_up_page_action_button": "Sign Up",
+ "sign_up_page_action_button": "Regjistrohu",
"@sign_up_page_action_button": {
"description": "Button for signing up"
},
- "sign_up_page_action_doing_it": "Signing up...",
+ "sign_up_page_action_doing_it": "Duke u regjistruar...",
"@sign_up_page_action_doing_it": {
"description": "Progress indicator dialog during the actual signing up process"
},
- "sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_action_ok": "Pergezime{ urime}! Llogaria juaj sapo eshte krijuar.",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
- "sign_up_page_email_error_empty": "E-mail is required",
- "sign_up_page_email_error_invalid": "This e-mail is invalid",
+ "sign_up_page_email_error_empty": "Adresa e postes elektronike kerkohet, eshte e detyrueshme te paraqitet.",
+ "sign_up_page_email_error_invalid": "Kjo adrese email-i eshte e pavlefshme, pasakte.",
"sign_up_page_username_hint": "Username",
- "sign_up_page_username_error_empty": "Please enter a username",
- "sign_up_page_username_error_invalid": "Please enter a valid username",
- "sign_up_page_username_description": "Username cannot contains spaces, caps or special characters",
+ "sign_up_page_username_error_empty": "Ju lutem vendosni emrin e perdoruesit",
+ "sign_up_page_username_error_invalid": "Ju lutem vendsoni nje emer perdoruesi te vlefshem , te sakte.",
+ "sign_up_page_username_description": "Emri i perdoruesit nuk duhet te permbaje hapesira, germa te medha apo karaktere te vecanta.",
"sign_up_page_password_hint": "Password",
- "sign_up_page_password_error_empty": "Please enter a password",
- "sign_up_page_password_error_invalid": "Please enter a valid password (at least 6 characters)",
- "sign_up_page_confirm_password_hint": "Confirm Password",
- "sign_up_page_confirm_password_error_empty": "Please confirm the password",
- "sign_up_page_confirm_password_error_invalid": "Passwords don't match",
+ "sign_up_page_password_error_empty": "Ju lutem vendosni nje fjalekalim.",
+ "sign_up_page_password_error_invalid": "Ju lutem vendosni nje fjalekalim te vlefshem { me te pakten gjashte {6} shkronja ose karaktere",
+ "sign_up_page_confirm_password_hint": "Konfirmoni fjalekalimin.",
+ "sign_up_page_confirm_password_error_empty": "Ju lutem konfirmoni fjalekalimin.",
+ "sign_up_page_confirm_password_error_invalid": "Fjalekalimet nuk perputhen",
"sign_up_page_agree_url": "https://world-en.openfoodfacts.org/terms-of-use",
"@sign_up_page_agree_url": {
"description": "Please insert the right url here. Go to the openfoodfacts homepage, switch to your country and then on the bottom left footer is Terms of use from which the url should be taken"
@@ -165,32 +167,32 @@
"@donate_url": {
"description": "Please insert the right url from the website here."
},
- "sign_up_page_agree_error_invalid": "When creating an account, agreeing to the Terms of Use is mandatory, however, anonymous contributions can still be made through the app",
+ "sign_up_page_agree_error_invalid": "Nderkohe qe krijohet nje llogari, te pranosh kushtet e perdorimit eshte e detyrueshme, megjithate, ndihmesat {kontributet} anonime{ te pacilesuara} mund te behen ende nepermjet aplikacionit.",
"@sign_up_page_agree_error_invalid": {
"description": "Error message: You have to agree to the terms-of-use (A checkbox to do so is above this error message)"
},
- "sign_up_page_producer_checkbox": "I am a food producer",
- "sign_up_page_producer_hint": "Producer/brand",
- "sign_up_page_producer_error_empty": "Please enter a producer or a brand name",
- "sign_up_page_subscribe_checkbox": "I'd like to subscribe to the Open Food Facts newsletter (You can unsubscribe from it at all time)",
+ "sign_up_page_producer_checkbox": "Une jam nje prodhues ushqimor.",
+ "sign_up_page_producer_hint": "Prodhues/marka{firma}",
+ "sign_up_page_producer_error_empty": "Ju lutem vendosni emrin e nje prodhuesi ose marke{firme}.",
+ "sign_up_page_subscribe_checkbox": "Une do te doja te abonohesha{behesha pjese} e buletinit te Open Food Facts{ Ju mund te fshini abonimin prej tij ne cdo kohe}.",
"@Settings": {},
"settingsTitle": "Settings",
"@settingsTitle": {
"description": "The title of the Settings page"
},
- "darkmode": "Darkmode",
+ "darkmode": "Modalitet i erresuar.",
"@darkmode": {
"description": "The name of the darkmode on off switch"
},
- "darkmode_dark": "Dark",
+ "darkmode_dark": "I erret.",
"@darkmode_dark": {
"description": "Indicator inside the darkmode switch"
},
- "darkmode_light": "Light",
+ "darkmode_light": "Drite { e ndezur. e ndricuar}",
"@darkmode_light": {
"description": "Indicator inside the darkmode switch"
},
- "thanks_for_contributing": "Thanks for contributing",
+ "thanks_for_contributing": "Ju faleminderit per kontributin.",
"@contributors": {
"description": "Button label: Opens a pop up window where all contributors of this app are shown"
},
@@ -199,11 +201,11 @@
"@support": {
"description": "Button label: Opens a pop up window where all ways to get support are shown"
},
- "support_join_slack": "Ask for help in our Slack channel",
- "support_via_email": "Send us a e-mail",
+ "support_join_slack": "Kerkoni ndihme ne kanalin tone Slack.",
+ "support_via_email": "Na dergoni nje e-mail",
"termsOfUse": "Terms of use",
"@termsOfUse": {},
- "about_this_app": "About this app",
+ "about_this_app": "Mbi kete aplikacion",
"@about_this_app": {
"description": "Button label: Opens a pop up window which shows information about the app"
},
@@ -212,13 +214,13 @@
"@contribute": {
"description": "Button label: Shows multiple ways how users can contribute to OFF"
},
- "contribute_sw_development": "Software development",
+ "contribute_sw_development": "Zhvillim software-i",
"@contribute_sw_development": {
"description": "Button label + page title: Ways to help"
},
- "contribute_develop_text": "The code for every Open Food Facts product is available on GitHub. You are welcome to reuse the code (it's open source) and help us improve it, for everyone, on all the planet.",
+ "contribute_develop_text": "Kodi per cdo produkt te Open Food Facts eshte i disponueshem ne GitHub. Jeni te mirepritur ta riperdorni kodin{ eshte burim i hapur{aksesueshem}} dhe na ndihmoni ta permiresojme ate, per te gjithe , ne mbare planetin. ",
"@contribute_develop_text": {},
- "contribute_develop_text_2": "You can join the Open Food Facts Slack chatroom which is the preferred way to ask questions.",
+ "contribute_develop_text_2": "Ju mund te beheni pjese e dhomes se bisedes Open Food Facts Slack, e cila eshte menyra me e preferuar per te bere ,adresuar pyetje.",
"@contribute_develop_text_2": {},
"contribute_donate_header": "Donate to Open Food Facts",
"@contribute_donate_header": {},
@@ -226,77 +228,77 @@
"@contribute_improve_ProductsToBeCompleted": {
"description": "Button label: Shows a list of products which aren't completed"
},
- "contribute_improve_header": "Improving",
+ "contribute_improve_header": "Duke u permiresuar.\n",
"@contribute_improve_header": {
"description": "Button label + page title: Ways to improve the database"
},
- "contribute_improve_text": "The database is the core of the project. It's easy and very quick to help. You can download the mobile app for your phone, and start adding or improving products.\n\nOn the other hand, Open Food Facts website offers many ways to contribute: ",
+ "contribute_improve_text": "Baza e te dhenave eshte thelbi i projektit. Eshte e thjeshte dhe shume e shpejte per t'ju ardhur ne ndihme. Ju mund te shkarkoni aplikacionin celular per telefonin tuaj dhe te filloni te shtoni ose permiresoni, produktet.",
"@contribute_improve_text": {},
- "contribute_translate_header": "Translate",
+ "contribute_translate_header": "PERKTHE",
"@contribute_translate_header": {
"description": "Button label + pop up window title: Shows information about helping by translating"
},
- "contribute_translate_link_text": "Start Translating",
+ "contribute_translate_link_text": "Filloni te perktheni",
"@contribute_translate_link_text": {
"description": "Button label: Opens the Crowdin translation portal"
},
- "contribute_translate_text": "Open Food Facts is a global project, containing products from more than 160 countries. Open Food Facts is translated into dozens of languages, with constantly evolving content.",
+ "contribute_translate_text": "Open Food Facts eshte nje projekt global, qe permban produkte nga me shume se 160 vende te botes. Open Food Facts eshte perkthyer ne me shume se dhjetera gjuhe, me permbajtje qe zhvillohet vazhdimisht.",
"@contribute_translate_text": {},
- "contribute_translate_text_2": "Translations is one of the key tasks of the project",
+ "contribute_translate_text_2": "Perkthimet jane nje nga detyrat kyce te projektit.",
"@contribute_translate_text_2": {},
- "tap_to_answer": "Tap here to answer questions",
+ "tap_to_answer": "Trokisni ketu per t'ju pergjigjur pyetjeve.",
"@tap_to_answer": {
"description": "Button label shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards."
},
- "saving_answer": "Saving your answer",
+ "saving_answer": "Duke ruajtur pergjigjen tuaj.",
"@saving_answer": {
"description": "Dialog shown to users after they have answered a question, while the answer is being saved in the BE."
},
- "contribute_to_get_rewards": "Help food transparency and get reward badges",
+ "contribute_to_get_rewards": "Ndihmoni ne transparencen ushqimore dhe merrni tituj shperblyes.",
"@contribute_to_get_rewards": {
"description": "Button description shown on a product, clicking the button opens a card with unanswered product questions, users can answer these to contribute to Open food facts and gain rewards."
},
"@Personal preferences": {},
- "myPreferences": "My preferences",
+ "myPreferences": "Parapelqimet e mia",
"@myPreferences": {
"description": "Page title: Page where the ranking preferences can be changed"
},
- "myPreferences_profile_title": "Your Profile",
- "myPreferences_profile_subtitle": "Set app settings and find out advices.",
- "myPreferences_settings_title": "App Settings",
- "myPreferences_settings_subtitle": "Dark mode, Theme, ...",
- "myPreferences_food_title": "Food Preferences",
- "myPreferences_food_subtitle": "Choose what information about food matters most to you.",
- "confirmResetPreferences": "Reset your food preferences?",
+ "myPreferences_profile_title": "Profili juaj",
+ "myPreferences_profile_subtitle": "Vendosni parametrat e aplikacionit dhe gjeni keshilla.",
+ "myPreferences_settings_title": "Parametrat e aplikacionit",
+ "myPreferences_settings_subtitle": "Modalitet i erresuar, Tema{ subjekti}",
+ "myPreferences_food_title": "Preferencat ushqimore",
+ "myPreferences_food_subtitle": "Zgjidhni cfare informacioni rreth ushqimit eshte me i rendesishmi per ju.",
+ "confirmResetPreferences": "Rinis, rivendos preferencat ushqimore?",
"@confirmResetPreferences": {
"description": "Pop up title: Reassuring if the food preferences should really be reset"
},
- "myPersonalizedRanking": "My personalized ranking",
+ "myPersonalizedRanking": "Renditja ime e personalizuar",
"@myPersonalizedRanking": {
"description": "When you press this button, all products (in list or category) are sorted according to your preferences."
},
"ranking_tab_all": "All",
- "ranking_subtitle_match_yes": "A great match for you",
- "ranking_subtitle_match_no": "Very poor match",
- "ranking_subtitle_match_maybe": "Unknown match",
- "reloaded_with_new_preferences": "Reloaded with new preferences",
+ "ranking_subtitle_match_yes": "Nje pershtatje, perputhje e madhe per ju.",
+ "ranking_subtitle_match_no": "Nje pershtatje shume e dobet ",
+ "ranking_subtitle_match_maybe": "Nje pershtatje e panjohur",
+ "reloaded_with_new_preferences": "E rimbushur me preferenca te reja",
"@reloaded_with_new_preferences": {
"description": "Snackbar title: Shows that the modified settings have been applied"
},
"@other": {},
- "profile_navbar_label": "Profile",
+ "profile_navbar_label": "Profili",
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
- "category": "Filter by category",
+ "category": "Filtruar sipas kategorise",
"@category": {
"description": "From a product list, there's a category filter: this is its title"
},
@@ -304,8 +306,8 @@
"@category_al": {
"description": "Top meta-entry on a category filter"
},
- "category_search": "(category search)",
- "filter": "Filter",
+ "category_search": "{kerkimi i kategorise}",
+ "filter": "Filtro",
"@filter": {
"description": "A button that opens a menu where you can filter within categories. Juices => Apple juices/Orange juices"
},
@@ -317,214 +319,222 @@
"@search": {
"description": "Hint text of a search text input field"
},
- "tab_for_more": "Tap to see more info...",
+ "tab_for_more": "Trokit per te pare me shume informacion",
"@Product": {},
"product": "Product",
"@product": {},
- "unknownBrand": "Unknown brand",
+ "unknownBrand": "Marke{firme} e panjohur.",
"@unknownBrand": {},
- "unknownProductName": "Unknown product name",
+ "unknownProductName": "Emer i panjohur produkti.",
"@unknownProductName": {},
- "label_refresh": "Refresh",
+ "label_refresh": "Rifresko.",
"@label_refresh": {
"description": "Refresh the cached product"
},
- "image": "Image",
- "front_photo": "Front photo",
+ "image": "Figura, imazhi",
+ "front_photo": "Fotoja ballore",
"@front_photo": {
"description": "Button label: For adding a picture of the front of a product"
},
"ingredients": "Përbërësit",
"@ingredients": {},
- "ingredients_photo": "Ingredients photo",
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
+ "ingredients_photo": "Foto e perberesve",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
},
- "nutrition": "Nutrition",
+ "nutrition": "Vlerat ushqyese",
"@nutrition": {},
- "nutrition_facts_photo": "Nutrition facts photo",
+ "nutrition_facts_photo": "Foto e fakteve ushqyese",
"@nutrition_facts_photo": {
"description": "Button label: For adding a picture of the nutrition facts of a product"
},
- "packaging_information": "Packaging information",
+ "packaging_information": "Informacion i paketimit",
"@packaging_information": {
"description": "Button label: For adding a picture of the packaging of a product"
},
- "packaging_information_photo": "Packaging information photo",
+ "packaging_information_photo": "Foto e informacionit te paketimit.",
"@packaging_information_photo": {},
- "missing_product": "You found a new product!",
+ "missing_product": "Ju gjetet nje produkt te ri!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
- "add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
+ "add_product_take_photos_descriptive": "Ju lutem te beni fotot e meposhtme dhe {opsioni, sherbimi} kerkuesi i Open Food Facts do te perpunoje pjesen e mbetur!",
"@add_product_take_photos_descriptive": {},
"add_product_information_button_label": "Add product information",
"@add_product_information_button_label": {},
- "new_product": "New Product",
+ "new_product": "Nje produkt i ri.",
"@new_product": {},
- "front_packaging_photo_button_label": "Front packaging photo",
+ "front_packaging_photo_button_label": "Foto e paketimit te perparme, ballor.",
"@front_packaging_photo_button_label": {},
- "confirm_front_packaging_photo_button_label": "Confirm Front packaging photo",
+ "confirm_front_packaging_photo_button_label": "Konfirmoni foton e paketimit, ambalazhimit ballor.",
"@confirm_front_packaging_photo_button_label": {
"description": "Button clicking on which confirms the picture of the front packaging that user just took."
},
- "front_photo_uploaded": "Front photo uploaded",
+ "front_photo_uploaded": "Fotoja e perparme, ballore u ngarkua.",
"@front_photo_uploaded": {},
- "ingredients_photo_button_label": "Ingredients photo",
+ "ingredients_photo_button_label": "Foto e perberesve",
"@ingredients_photo_button_label": {},
- "confirm_ingredients_photo_button_label": "Confirm Ingredients photo",
+ "confirm_ingredients_photo_button_label": "Konfirmoni foton e perberesve.",
"@confirm_ingredients_photo_button_label": {
"description": "Button clicking on which confirms the picture of ingredients that user just took."
},
- "ingredients_photo_uploaded": "Ingredients photo uploaded",
+ "ingredients_photo_uploaded": "Fotoja e perberesve u ngarkua.",
"@ingredients_photo_uploaded": {},
- "nutritional_facts_photo_button_label": "Nutritional facts photo",
+ "nutritional_facts_photo_button_label": "Foto e fakteve ushqyese",
"@nutritional_facts_photo_button_label": {},
- "confirm_nutritional_facts_photo_button_label": "Confirm Nutritional facts photo",
+ "confirm_nutritional_facts_photo_button_label": "Konfirmoni foton e fakteve ushqyese.",
"@confirm_nutritional_facts_photo_button_label": {
"description": "Button clicking on which confirms the picture of nutritional facts that user just took."
},
- "nutritional_facts_photo_uploaded": "Nutritional facts photo uploaded",
+ "nutritional_facts_photo_uploaded": "Fotoja e fakteve ushqyese u ngarkua.",
"@nutritional_facts_photo_uploaded": {},
- "recycling_photo_button_label": "Recycling information photo",
+ "recycling_photo_button_label": "Foto e informacionit te riciklimit.",
"@recycling_photo_button_label": {},
- "confirm_recycling_photo_button_label": "Confirm Recycling information photo",
+ "confirm_recycling_photo_button_label": "Konfirmoni foton e informacionit te riciklimit.",
"@confirm_recycling_photo_button_label": {
"description": "Button clicking on which confirms the picture of recycling information that user just took."
},
- "recycling_photo_uploaded": "Recycling photo uploaded",
+ "recycling_photo_uploaded": "Fotoja e ricklimit u ngarkua",
"@recycling_photo_uploaded": {},
- "other_interesting_photo_button_label": "Other interesting photos",
+ "other_interesting_photo_button_label": "Foto te tjera interesante",
"@other_interesting_photo_button_label": {},
- "confirm_other_interesting_photo_button_label": "Confirm photo",
+ "confirm_other_interesting_photo_button_label": "Konfirmoni foton.",
"@confirm_other_interesting_photo_button_label": {
"description": "Button clicking on which confirms a miscellaneous photo of the product."
},
- "other_photo_uploaded": "Miscellaneous photo uploaded",
+ "other_photo_uploaded": "Foto te ndryshme{ te marra nga burime te ndryshme} u ngarkuan.",
"@other_photo_uploaded": {},
"retake_photo_button_label": "Retake",
"@retake_photo_button_label": {
"description": "Button clicking on which allows users to retake the last photo they took."
},
- "selecting_photo": "Selecting photo",
+ "selecting_photo": "Duke zgjedhur foton",
"@selecting_photo": {
"description": "Progress indicator when the users takes a photo"
},
- "uploading_image": "Uploading Image to the server",
+ "uploading_image": "Duke ngarkuar imazhin ne server.",
"@uploading_image": {
"description": "Message when a new picture is uploading to the server"
},
- "score_add_missing_ingredients": "Add missing ingredients",
- "score_add_missing_nutrition_facts": "Add missing nutrition facts",
- "score_add_missing_product_category": "Add missing product category",
- "score_update_nutrition_facts": "Update nutrition facts",
- "nutrition_page_title": "Product Nutrition Facts",
- "nutrition_page_unspecified": "Nutrition facts are not specified on the product",
- "nutrition_page_per_100g": "per 100g",
+ "score_add_missing_ingredients": "Shto perberesit e munguar.",
+ "score_add_missing_nutrition_facts": "Shto faktet ushqyese te munguara",
+ "score_add_missing_product_category": "Shto kategorine e munguar te produktit.",
+ "score_update_nutrition_facts": "Perditesoni faktet ushqyese.",
+ "nutrition_page_title": "Faktet ushqyese te produktit.",
+ "nutrition_page_unspecified": "Faktet ushqyese nuk jane te specifikuara ne produkt.",
+ "nutrition_page_per_100g": "për 100 g",
"nutrition_page_per_serving": "per serving",
"nutrition_page_add_nutrient": "Add a nutrient",
"nutrition_page_serving_size": "Serving size",
- "nutrition_page_invalid_number": "Invalid number",
- "nutrition_page_update_running": "Updating the product on the server...",
- "nutrition_page_update_done": "Product updated!",
- "more_photos": "More interesting photos",
+ "nutrition_page_invalid_number": "Numer i pavlefshem, jo i sakte.",
+ "nutrition_page_update_running": "Duke perditesuar produktin ne server",
+ "nutrition_page_update_done": "Produkti u perditesua.",
+ "more_photos": "Me shume foto interesante",
"@more_photos": {},
- "no_product_found": "No product found",
+ "no_product_found": "Nuk u gjet asnje produkt",
"@no_product_found": {},
- "not_found": "not found:",
- "searchPanelHeader": "Search or scan your first product",
+ "not_found": "Nuk u gjet, nuk rezultoi ",
+ "searchPanelHeader": "Kerkoni ose skanoni produktin tuaj te pare",
"@Product query status": {},
- "refreshing_product": "Refreshing product",
+ "refreshing_product": "Duke rifreskuar{ duke i shtuar te dhenat e sakta plus te rejat e fundit} produktin.",
"@refreshing_product": {
"description": "Confirmation, that the product data of a cached product is queried again"
},
- "product_refreshed": "Product refreshed",
+ "product_refreshed": "Produkti u rifreskua.",
"@product_refreshed": {
"description": "Confirmation, that the product data refresh is done"
},
- "could_not_refresh": "Could not refresh product",
+ "could_not_refresh": "Produkti nuk mund te rifreskohej.",
"@could_not_refresh": {
"description": "The product data couldn't be refreshed"
},
- "product_internet_cancel": "Canceled by user.",
+ "product_internet_cancel": "U anullua nga perdoruesi.",
"@product_internet_cancel": {
"description": "Confirmation, that the product data got canceled by the user"
},
- "product_internet_error": "Impossible to fetch information about this product due to a network error.",
- "cached_results_from": "Cached results from:",
+ "product_internet_error": "Eshte e pamundur te merret informacion ne lidhje me kete produkt per shkak te nje gabimi ne rrjet.",
+ "cached_results_from": "Rezultat e ruajtura{ perkohesisht ne server} nga:",
"@cached_results_from": {
"description": "Cached results from: x time ago (time ago should not be added to the string)"
},
"@Product Addition": {},
- "added_product_thanks": "Thank you for adding this product!",
+ "added_product_thanks": "Ju faleminderit per shtimin e ketij produkti.",
"@added_product_thanks": {},
- "product_search_same_category": "Compare to Category",
+ "product_search_same_category": "Krahasoni me kategorine.",
"@product_search_same_category": {
"description": "Button looking for the other products within the same category. Less than 30 characters"
},
- "product_improvement_add_category": "Add a category to calculate the Nutri-Score.",
+ "product_improvement_add_category": "Shtoni nje kategori per te llogaritur nutri-score{ piket ushqyese}.",
"@product_improvement_add_category": {
"description": "Message for ProductImprovement.ADD_CATEGORY"
},
- "product_improvement_add_nutrition_facts": "Add nutrition facts to calculate the Nutri-Score.",
+ "product_improvement_add_nutrition_facts": "Shtoni faktet ushqyese per te llogaritur nutri-score{ piket ushqyese}.",
"@product_improvement_add_nutrition_facts": {
"description": "Message for ProductImprovement.ADD_NUTRITION_FACTS"
},
- "product_improvement_add_nutrition_facts_and_category": "Add nutrition facts and a category to calculate the Nutri-Score.",
+ "product_improvement_add_nutrition_facts_and_category": "Shtoni faktet ushqyese dhe nje kategori per te llogaritur piket-ushqyese.",
"@product_improvement_add_nutrition_facts_and_category": {
"description": "Message for ProductImprovement.ADD_NUTRITION_FACTS_AND_CATEGORY"
},
- "product_improvement_categories_but_no_nutriscore": "The Nutri-Score for this product can't be calculated, which may be due to e.g. a non-standard category. If this is considered an error, please contact us.",
+ "product_improvement_categories_but_no_nutriscore": "Piket ushqyese per kete produkt nuk mund te llogariten, gje qe mund te ndodhe per shkak te p.sh nje kategorie jo standarde{ fikse}. Ne qofte se ky konsiderohet nje gabim, ju lutem te na kontaktoni.",
"@product_improvement_categories_but_no_nutriscore": {
"description": "Message for ProductImprovement.CATEGORIES_BUT_NO_NUTRISCORE"
},
- "product_improvement_obsolete_nutrition_image": "The nutrition image is obsolete: please refresh it.",
+ "product_improvement_obsolete_nutrition_image": "Imazhi i ushqimit eshte i vjeteruar: ju lutem rifreskojeni ate.",
"@product_improvement_obsolete_nutrition_image": {
"description": "Message for ProductImprovement.OBSOLETE_NUTRITION_IMAGE"
},
- "product_improvement_origins_to_be_completed": "The Eco-Score takes into account the origins of the ingredients. Please take a photo of them (ingredient list and/or any geographic claim or edit the product) so that they can be taken into account.",
+ "product_improvement_origins_to_be_completed": "Piket Eko marrin ne konsiderate, shqyrtim origjinen e perberesve. Ju lutemi beni nje foto te tyre{ listen e perberesve dhe\\ose ndonje pretendim gjeografik ose modifikoni produktin} qe te mund te merren parasysh.",
"@product_improvement_origins_to_be_completed": {
"description": "Message for ProductImprovement.ORIGINS_TO_BE_COMPLETED"
},
- "country_chooser_label": "Please choose a country",
+ "country_chooser_label": "Ju lutem zgjidhni nje shtet",
"@country_chooser_label": {
"description": "Label shown above a selector where the user can select their country"
},
- "country_selection_explanation": "Some environmental features are location-specific",
+ "country_selection_explanation": "Disa vecori mjedisore jane specifike per vendndodhjen.",
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
- "product_could_not_remove": "Could not remove product",
+ "product_could_not_remove": "Produkti nuk mund te hiqej.",
"@product_could_not_remove": {
"description": "Could not remove product from a list"
},
"@Lists": {},
- "no_prodcut_in_list": "There is no product in this list",
- "no_product_in_section": "There is no product in this section",
+ "no_prodcut_in_list": "Nuk ka produkte ne kete list.",
+ "no_product_in_section": "Nuk ka produkte ne kete seksion.",
"recently_seen_products": "History",
"clear": "Clear",
"@clear": {
"description": "Clears a product list"
},
- "really_clear": "Do you really want to clear this list?",
- "product_compatibility_unknown": "Product Compatibility Unknown",
+ "really_clear": "Deshironi vertete ta fshini kete liste?",
+ "product_compatibility_unknown": "Perputhshmeria e produktit e panjohur",
"@product_compatibility_unknown": {
"description": "Product compatibility summary title"
},
- "product_compatibility_incompatible": "Does not match",
+ "product_compatibility_incompatible": "Nuk perputhet, pershtatet.",
"@product_compatibility_incompatible": {
"description": "Product compatibility summary title"
},
- "product_compatibility_good": "Good Match",
+ "product_compatibility_good": "Perputhje, pershtatje e mire.",
"@product_compatibility_good": {
"description": "Product compatibility summary title"
},
"@Plural": {},
- "pct_match": "{percent}% match",
+ "pct_match": "{percent}% e perputhshmerise",
"@pct_match": {
"description": "This product has a x percent match with your preferences",
"placeholders": {
@@ -566,16 +576,47 @@
"count": {}
}
},
- "plural_compare_x_products": "{count,plural, other{Compare {count} Products}",
+ "plural_compare_x_products": "{count,plural, other{Krahaso {count} produktet}",
"@plural_compare_x_products": {
"description": "Button label",
"placeholders": {
"count": {}
}
},
- "compare_products_mode": "Compare Mode",
+ "compare_products_mode": "Krahaso modalitetin",
"@compare_products_mode": {
"description": "Button to switch to 'compare products mode'"
},
- "retry_button_label": "Retry"
-}
+ "retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Zbulo",
+ "how_to_contribute": "How to Contribute",
+ "main_app_color": "Main color of the app",
+ "@main_app_color": {
+ "description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
+ }
+}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_sr.arb b/packages/smooth_app/lib/l10n/app_sr.arb
index 9d0b704d498..28b0f44bf2e 100644
--- a/packages/smooth_app/lib/l10n/app_sr.arb
+++ b/packages/smooth_app/lib/l10n/app_sr.arb
@@ -4,7 +4,7 @@
"@yes": {},
"add": "Dodajte",
"@add": {},
- "okay": "Okay",
+ "okay": "U redu",
"@okay": {},
"applyButtonText": "Primeni",
"@applyButtonText": {},
@@ -20,29 +20,29 @@
"@close": {},
"no": "Ne",
"@no": {},
- "stop": "Stop",
+ "stop": "Stani",
"@stop": {},
"finish": "Finish",
"@finish": {},
- "reset_food_prefs": "Reset food preferences",
+ "reset_food_prefs": "Resetujte preferencije hrane",
"@reset": {
"description": "Button label, clicking on the button will reset user's food preferences."
},
"error": "Something went wrong",
"@error": {},
- "error_occurred": "An error occurred",
+ "error_occurred": "Došlo je do greške",
"@error_occurred": {},
"featureInProgress": "I dalje radimo na ovoj funkciji, budite u toku",
"@featureInProgress": {},
- "label_web": "View on the Web",
+ "label_web": "Pogledaj na webu",
"@label_web": {},
- "learnMore": "Learn more",
+ "learnMore": "Saznajte Više",
"@learnMore": {},
- "incompatible": "Incompatible",
+ "incompatible": "Nekompatibilno",
"@incompatible": {
"description": "Short label for product list view: the product is incompatible with your preferences"
},
- "compatible": "Compatible",
+ "compatible": "Kompatibilan",
"@compatible": {
"description": "Short label for product list view: the product is compatible with your preferences"
},
@@ -52,26 +52,26 @@
},
"licenses": "Licences",
"@licenses": {},
- "looking_for": "Looking for",
+ "looking_for": "Tražimo",
"@looking_for": {
"description": "Looking for: ${BARCODE}"
},
"@Introduction screen": {},
"welcomeToOpenFoodFacts": "Welcome to Open Food Facts",
"@welcomeToOpenFoodFacts": {},
- "whatIsOff": "Open Food Facts is a global non-profit powered by local communities.",
+ "whatIsOff": "Open Food Facts je globalna neprofitna organizacija koju pokreću lokalne zajednice.",
"@whatIsOff": {
"description": "Description of Open Food Facts organization."
},
- "offUtility": "Choose foods that are good for you and the planet.",
+ "offUtility": "Birajte hranu koja je dobra za vas i planetu.",
"@offUtility": {
"description": "Description of what a user can use Open Food Facts for."
},
- "productDataUtility": "See the food data relevant to your preferences.",
+ "productDataUtility": "Pogledajte podatke o hrani koji su relevantni za vaše preferencije.",
"@productDataUtility": {
"description": "Description of what a user can use the product data for."
},
- "healthCardUtility": "Choose foods that are good for you.",
+ "healthCardUtility": "Birajte hranu koja je dobra za vas.",
"@healthCardUtility": {
"description": "Description of what a user can use the health data in a product for."
},
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Naziv",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Pretraživanje",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "Istorija",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Sastojci",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Pokušaj ponovo",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Otkrij",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_ss.arb b/packages/smooth_app/lib/l10n/app_ss.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_ss.arb
+++ b/packages/smooth_app/lib/l10n/app_ss.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_st.arb b/packages/smooth_app/lib/l10n/app_st.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_st.arb
+++ b/packages/smooth_app/lib/l10n/app_st.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_sv.arb b/packages/smooth_app/lib/l10n/app_sv.arb
index ab7be16b25b..e81b4632a1f 100644
--- a/packages/smooth_app/lib/l10n/app_sv.arb
+++ b/packages/smooth_app/lib/l10n/app_sv.arb
@@ -24,7 +24,7 @@
"@stop": {},
"finish": "Finish",
"@finish": {},
- "reset_food_prefs": "Reset food preferences",
+ "reset_food_prefs": "Återställ matpreferenser",
"@reset": {
"description": "Button label, clicking on the button will reset user's food preferences."
},
@@ -34,15 +34,15 @@
"@error_occurred": {},
"featureInProgress": "Vi arbetar fortfarande med den här funktionen, håll ögonen öppna",
"@featureInProgress": {},
- "label_web": "View on the Web",
+ "label_web": "Visa på webben",
"@label_web": {},
"learnMore": "Läs mer",
"@learnMore": {},
- "incompatible": "Incompatible",
+ "incompatible": "Inkompatibel",
"@incompatible": {
"description": "Short label for product list view: the product is incompatible with your preferences"
},
- "compatible": "Compatible",
+ "compatible": "Kompatibel",
"@compatible": {
"description": "Short label for product list view: the product is compatible with your preferences"
},
@@ -59,33 +59,35 @@
"@Introduction screen": {},
"welcomeToOpenFoodFacts": "Valkommen till Open Food Facts",
"@welcomeToOpenFoodFacts": {},
- "whatIsOff": "Open Food Facts is a global non-profit powered by local communities.",
+ "whatIsOff": "Open Food Facts är en global ideell verksamhet som drivs av lokala intressegrupper.",
"@whatIsOff": {
"description": "Description of Open Food Facts organization."
},
- "offUtility": "Choose foods that are good for you and the planet.",
+ "offUtility": "Välj mat som är bra för dig och planeten.",
"@offUtility": {
"description": "Description of what a user can use Open Food Facts for."
},
- "productDataUtility": "See the food data relevant to your preferences.",
+ "productDataUtility": "Se de matdata som är relevanta för dina önskemål.",
"@productDataUtility": {
"description": "Description of what a user can use the product data for."
},
- "healthCardUtility": "Choose foods that are good for you.",
+ "healthCardUtility": "Välj mat som är bra för dig.",
"@healthCardUtility": {
"description": "Description of what a user can use the health data in a product for."
},
- "ecoCardUtility": "Choose foods that are good for the planet.",
+ "ecoCardUtility": "Välj mat som är bra för planeten.",
"@ecoCardUtility": {
"description": "Description of what a user can use the Eco data in a product for."
},
"@user_management": {},
- "sign_in_text": "Sign in to your Open Food Facts account to save your contributions",
+ "sign_in_text": "Logga in på ditt Open Food Fact-konto för att spara dina bidrag",
"incorrect_credentials": "Felaktigt användarnamn eller lösenord.",
"login": "Användarnamn",
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Vänligen ange ett lösenord",
"create_account": "Skapa konto",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -115,17 +117,17 @@
"@reset_password": {
"description": "Forgot password page title"
},
- "reset_password_explanation_text": "In case of a forgotten password, enter your username or e-mail address to receive instructions for a password reset. Also, remember to check the Spam folder.",
+ "reset_password_explanation_text": "Om du har glömt lösenordet, skriv in ditt användarnamn eller e-postadress för att få instruktioner om lösenordsåterställning. Kom också ihåg att kontrollera skräppostmappen.",
"username_or_email": "Användarnamn eller e-postadress",
"@username_or_email": {
"description": "Text field hint for password reset"
},
- "reset_password_done": "An e-mail with a link to reset your password has been sent to the e-mail address associated with your account. Also check your spam",
+ "reset_password_done": "Ett e-postmeddelande med en länk för att återställa ditt lösenord har skickats till e-postadressen som är kopplad till ditt konto. Kontrollera även din skräppost",
"send_reset_password_mail": "Ändra lösenord",
"@send_reset_password_mail": {
"description": "Button label: Submit the password reset e-mail request"
},
- "enter_some_text": "Please enter some text",
+ "enter_some_text": "Skriv in lite text",
"@enter_some_text": {
"description": "Error when a required text field is empty"
},
@@ -137,19 +139,19 @@
"@sign_up_page_action_button": {
"description": "Button for signing up"
},
- "sign_up_page_action_doing_it": "Signing up...",
+ "sign_up_page_action_doing_it": "Registrerar...",
"@sign_up_page_action_doing_it": {
"description": "Progress indicator dialog during the actual signing up process"
},
- "sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Visningsnamn",
- "sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
+ "sign_up_page_action_ok": "Grattis! Ditt konto har just skapats.",
+ "sign_up_page_display_name_hint": "Namn",
+ "sign_up_page_display_name_error_empty": "Ange det visningsnamn du vill använda",
"sign_up_page_email_hint": "E-post",
- "sign_up_page_email_error_empty": "E-mail is required",
- "sign_up_page_email_error_invalid": "This e-mail is invalid",
+ "sign_up_page_email_error_empty": "E-post krävs",
+ "sign_up_page_email_error_invalid": "Den här e-postadressen är ogiltig",
"sign_up_page_username_hint": "Användarnamn",
- "sign_up_page_username_error_empty": "Please enter a username",
- "sign_up_page_username_error_invalid": "Please enter a valid username",
+ "sign_up_page_username_error_empty": "Ange ett användarnamn",
+ "sign_up_page_username_error_invalid": "Ange ett giltigt användarnamn",
"sign_up_page_username_description": "Username cannot contains spaces, caps or special characters",
"sign_up_page_password_hint": "Lösenord",
"sign_up_page_password_error_empty": "Vänligen ange ett lösenord",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profil",
+ "scan_navbar_label": "Sök",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profil",
+ "history_navbar_label": "Historik",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filtrera efter kategori",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredienser",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Foto på ingredienser",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Försök igen",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Upptäck",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_sw.arb b/packages/smooth_app/lib/l10n/app_sw.arb
index 830b836cd19..2dbcfe3fe0b 100644
--- a/packages/smooth_app/lib/l10n/app_sw.arb
+++ b/packages/smooth_app/lib/l10n/app_sw.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Tafuta",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Viungo",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Gundua",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_ta.arb b/packages/smooth_app/lib/l10n/app_ta.arb
index 4f3032d9ab0..bbbd28cfdba 100644
--- a/packages/smooth_app/lib/l10n/app_ta.arb
+++ b/packages/smooth_app/lib/l10n/app_ta.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "தேடுக",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "வரலாறு",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "மீண்டும் முயல்க",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_te.arb b/packages/smooth_app/lib/l10n/app_te.arb
index 5462e76274b..a9a3d42cb27 100644
--- a/packages/smooth_app/lib/l10n/app_te.arb
+++ b/packages/smooth_app/lib/l10n/app_te.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "చరిత్ర",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "కనుగొనండి",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_tg.arb b/packages/smooth_app/lib/l10n/app_tg.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_tg.arb
+++ b/packages/smooth_app/lib/l10n/app_tg.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_th.arb b/packages/smooth_app/lib/l10n/app_th.arb
index 6924b24a3df..04c9e52946d 100644
--- a/packages/smooth_app/lib/l10n/app_th.arb
+++ b/packages/smooth_app/lib/l10n/app_th.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "ชื่อ",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "ค้นหา",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "ประวัติการเข้าใช้",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "ส่วนผสม",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "ลองใหม่อีกครั้ง",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "ค้นพบ",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_ti.arb b/packages/smooth_app/lib/l10n/app_ti.arb
index 23ec6de607a..0c7d582e693 100644
--- a/packages/smooth_app/lib/l10n/app_ti.arb
+++ b/packages/smooth_app/lib/l10n/app_ti.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_tl.arb b/packages/smooth_app/lib/l10n/app_tl.arb
index 2739bc12fa1..b4c0ae31e67 100644
--- a/packages/smooth_app/lib/l10n/app_tl.arb
+++ b/packages/smooth_app/lib/l10n/app_tl.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Pangalan",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Maghanap",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "Kasaysayan",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Mga Sangkap",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Subukang muli",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Tuklasin",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_tn.arb b/packages/smooth_app/lib/l10n/app_tn.arb
index de37ccafa62..103647c5963 100644
--- a/packages/smooth_app/lib/l10n/app_tn.arb
+++ b/packages/smooth_app/lib/l10n/app_tn.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_tr.arb b/packages/smooth_app/lib/l10n/app_tr.arb
index 8f5cd2aeed2..13b99a042cb 100644
--- a/packages/smooth_app/lib/l10n/app_tr.arb
+++ b/packages/smooth_app/lib/l10n/app_tr.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Lütfen bir şifre girin",
"create_account": "Hesap oluştur",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Tebrikler! Hesabınız başarıyla oluşturuldu.",
- "sign_up_page_display_name_hint": "Görünen Ad",
+ "sign_up_page_display_name_hint": "İsim",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-posta",
"sign_up_page_email_error_empty": "E-mail gereklidir",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profil",
+ "scan_navbar_label": "Ara",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profil",
+ "history_navbar_label": "Geçmiş",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Kategoriye göre ayır",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "İçindekiler",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "İçindekiler fotoğarafı",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "Yeni bir ürün buldun!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Ürün kaldırılamadı",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Tekrar dene",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Keşfet",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_ts.arb b/packages/smooth_app/lib/l10n/app_ts.arb
index de37ccafa62..103647c5963 100644
--- a/packages/smooth_app/lib/l10n/app_ts.arb
+++ b/packages/smooth_app/lib/l10n/app_ts.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_tt.arb b/packages/smooth_app/lib/l10n/app_tt.arb
index c2c82af7afa..2d3052f8ca4 100644
--- a/packages/smooth_app/lib/l10n/app_tt.arb
+++ b/packages/smooth_app/lib/l10n/app_tt.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Исем",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Эзлә",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "Тарих",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Кабатла",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_tw.arb b/packages/smooth_app/lib/l10n/app_tw.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_tw.arb
+++ b/packages/smooth_app/lib/l10n/app_tw.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_ty.arb b/packages/smooth_app/lib/l10n/app_ty.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_ty.arb
+++ b/packages/smooth_app/lib/l10n/app_ty.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_ug.arb b/packages/smooth_app/lib/l10n/app_ug.arb
index d4a1eb3cb34..3bfabb89178 100644
--- a/packages/smooth_app/lib/l10n/app_ug.arb
+++ b/packages/smooth_app/lib/l10n/app_ug.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "نامى",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "تارىخ",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "بايقاش",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_uk.arb b/packages/smooth_app/lib/l10n/app_uk.arb
index f3316e0cbc1..ae8b0566d96 100644
--- a/packages/smooth_app/lib/l10n/app_uk.arb
+++ b/packages/smooth_app/lib/l10n/app_uk.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Будь ласка, введіть пароль",
"create_account": "Створіть обліковий запис",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Вітаємо! Ваш обліковий створено.",
- "sign_up_page_display_name_hint": "Показувати ім'я",
+ "sign_up_page_display_name_hint": "Ім’я",
"sign_up_page_display_name_error_empty": "Будь ласка, введіть відображуване ім'я, яке ви хочете використовувати.",
"sign_up_page_email_hint": "Електронна пошта",
"sign_up_page_email_error_empty": "Необхідно заповнити поле електронної адреси",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Профіль",
+ "scan_navbar_label": "Пошук",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Профіль",
+ "history_navbar_label": "Історія",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Фільтр за категорією",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Інгредієнти",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Фото інгредієнтів",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "Ви знайшли новий продукт!",
"@missing_product": {},
- "add_product_take_photos": "Зробіть фотографії пакування, щоб додати цей продукт до Вашої бази даних.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Будь ласка, зробіть наступні фотографії та система Open Food Facts допрацює те, що залишилось!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Продукт видалено",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Неможливо видалити продукт",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Повторити спробу",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Дізнатись більше",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Відправити статистику анонімно",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_ur.arb b/packages/smooth_app/lib/l10n/app_ur.arb
index 5fe58a32d17..f1ef1640fdc 100644
--- a/packages/smooth_app/lib/l10n/app_ur.arb
+++ b/packages/smooth_app/lib/l10n/app_ur.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "تلاش کریں",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "جزو ترکیبی",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "دوبارہ کوشش کریں",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "انکشاف کریں",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_uz.arb b/packages/smooth_app/lib/l10n/app_uz.arb
index 13cd2539c7e..8569371db82 100644
--- a/packages/smooth_app/lib/l10n/app_uz.arb
+++ b/packages/smooth_app/lib/l10n/app_uz.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Qidirish",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Qayta urinish",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_ve.arb b/packages/smooth_app/lib/l10n/app_ve.arb
index de37ccafa62..103647c5963 100644
--- a/packages/smooth_app/lib/l10n/app_ve.arb
+++ b/packages/smooth_app/lib/l10n/app_ve.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_vi.arb b/packages/smooth_app/lib/l10n/app_vi.arb
index b6d2c26a6f5..b7ed2c96d5d 100644
--- a/packages/smooth_app/lib/l10n/app_vi.arb
+++ b/packages/smooth_app/lib/l10n/app_vi.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Vui lòng nhập mật khẩu",
"create_account": "Tạo tài khoản",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Chúc mừng! Tài khoản của bạn vừa được tạo.",
- "sign_up_page_display_name_hint": "Tên hiển thị",
+ "sign_up_page_display_name_hint": "Tên",
"sign_up_page_display_name_error_empty": "Vui lòng nhập tên hiển thị bạn muốn sử dụng",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "Email là bắt buộc",
@@ -276,9 +278,9 @@
"description": "When you press this button, all products (in list or category) are sorted according to your preferences."
},
"ranking_tab_all": "Tất cả",
- "ranking_subtitle_match_yes": "A great match for you",
- "ranking_subtitle_match_no": "Very poor match",
- "ranking_subtitle_match_maybe": "Unknown match",
+ "ranking_subtitle_match_yes": "Phù hợp nhất cho bạn",
+ "ranking_subtitle_match_no": "Độ phù hợp thấp",
+ "ranking_subtitle_match_maybe": "Độ phù hợp không xác định",
"reloaded_with_new_preferences": "Đã tải lại với các tùy chọn mới",
"@reloaded_with_new_preferences": {
"description": "Snackbar title: Shows that the modified settings have been applied"
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Hồ sơ",
+ "scan_navbar_label": "Tìm kiếm",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Hồ sơ",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Lọc theo danh mục",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Thành phần",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ảnh chụp thành phần",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "Bạn đã tìm thấy một sản phẩm mới!",
"@missing_product": {},
- "add_product_take_photos": "Chụp ảnh bao bì để thêm sản phẩm này vào cơ sở dữ liệu của chúng tôi.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Vui lòng chụp các ảnh sau và Open Food Facts có thể xử lý các phần còn lại!",
"@add_product_take_photos_descriptive": {},
@@ -451,7 +457,7 @@
"description": "Confirmation, that the product data got canceled by the user"
},
"product_internet_error": "Không thể nạp thông tin về sản phẩm này do lỗi kết nối mạng.",
- "cached_results_from": "Cached results from:",
+ "cached_results_from": "Kết quả được lưu vào bộ nhớ cache từ:",
"@cached_results_from": {
"description": "Cached results from: x time ago (time ago should not be added to the string)"
},
@@ -462,43 +468,47 @@
"@product_search_same_category": {
"description": "Button looking for the other products within the same category. Less than 30 characters"
},
- "product_improvement_add_category": "Add a category to calculate the Nutri-Score.",
+ "product_improvement_add_category": "Thêm danh mục để tính Điểm dinh dưỡng.",
"@product_improvement_add_category": {
"description": "Message for ProductImprovement.ADD_CATEGORY"
},
- "product_improvement_add_nutrition_facts": "Add nutrition facts to calculate the Nutri-Score.",
+ "product_improvement_add_nutrition_facts": "Thêm thông tin dinh dưỡng để tính Điểm dinh dưỡng.",
"@product_improvement_add_nutrition_facts": {
"description": "Message for ProductImprovement.ADD_NUTRITION_FACTS"
},
- "product_improvement_add_nutrition_facts_and_category": "Add nutrition facts and a category to calculate the Nutri-Score.",
+ "product_improvement_add_nutrition_facts_and_category": "Thêm thông tin dinh dưỡng và danh mục để tính Điểm dinh dưỡng.",
"@product_improvement_add_nutrition_facts_and_category": {
"description": "Message for ProductImprovement.ADD_NUTRITION_FACTS_AND_CATEGORY"
},
- "product_improvement_categories_but_no_nutriscore": "The Nutri-Score for this product can't be calculated, which may be due to e.g. a non-standard category. If this is considered an error, please contact us.",
+ "product_improvement_categories_but_no_nutriscore": "Không thể tính được Nutri-Score cho sản phẩm này, có thể do danh mục không đạt tiêu chuẩn. Nếu đây là lỗi, vui lòng liên hệ với chúng tôi.",
"@product_improvement_categories_but_no_nutriscore": {
"description": "Message for ProductImprovement.CATEGORIES_BUT_NO_NUTRISCORE"
},
- "product_improvement_obsolete_nutrition_image": "The nutrition image is obsolete: please refresh it.",
+ "product_improvement_obsolete_nutrition_image": "Hình ảnh dinh dưỡng đã quá hạn: vui lòng cập nhật.",
"@product_improvement_obsolete_nutrition_image": {
"description": "Message for ProductImprovement.OBSOLETE_NUTRITION_IMAGE"
},
- "product_improvement_origins_to_be_completed": "The Eco-Score takes into account the origins of the ingredients. Please take a photo of them (ingredient list and/or any geographic claim or edit the product) so that they can be taken into account.",
+ "product_improvement_origins_to_be_completed": "Điểm số sinh thái tính đến nguồn gốc của các thành phần. Vui lòng chụp ảnh chúng (danh sách thành phần và / hoặc bất kỳ yêu cầu địa lý nào hoặc chỉnh sửa sản phẩm) để các thông tin có thể được xem xét.",
"@product_improvement_origins_to_be_completed": {
"description": "Message for ProductImprovement.ORIGINS_TO_BE_COMPLETED"
},
- "country_chooser_label": "Please choose a country",
+ "country_chooser_label": "Vui lòng chọn quốc gia",
"@country_chooser_label": {
"description": "Label shown above a selector where the user can select their country"
},
- "country_selection_explanation": "Some environmental features are location-specific",
+ "country_selection_explanation": "Một số đặc điểm môi trường là đặc thù địa lý",
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
},
- "product_could_not_remove": "Could not remove product",
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
+ },
+ "product_could_not_remove": "Không thể loại bỏ sản phẩm",
"@product_could_not_remove": {
"description": "Could not remove product from a list"
},
@@ -510,8 +520,8 @@
"@clear": {
"description": "Clears a product list"
},
- "really_clear": "Do you really want to clear this list?",
- "product_compatibility_unknown": "Product Compatibility Unknown",
+ "really_clear": "Bạn có thực sự muốn xoá danh sách này không?",
+ "product_compatibility_unknown": "Khả năng tương thích của sản phẩm không xác định",
"@product_compatibility_unknown": {
"description": "Product compatibility summary title"
},
@@ -524,49 +534,49 @@
"description": "Product compatibility summary title"
},
"@Plural": {},
- "pct_match": "{percent}% match",
+ "pct_match": "{percent}% phù hợp",
"@pct_match": {
"description": "This product has a x percent match with your preferences",
"placeholders": {
"percent": {}
}
},
- "plural_ago_days": "{count,plural, =1{one day ago} other{{count} days ago}}",
+ "plural_ago_days": "{count,plural, =1{một ngày trước} other{{count} ngày trước}}",
"@plural_ago_days": {
"description": "Cached results from: x days ago",
"placeholders": {
"count": {}
}
},
- "plural_ago_hours": "{count,plural, =1{one hour ago} other{{count} hours ago}}",
+ "plural_ago_hours": "{count,plural, =1{một giờ trước} other{{count} giờ trước}}",
"@plural_ago_hours": {
"description": "Cached results from: x hours ago",
"placeholders": {
"count": {}
}
},
- "plural_ago_minutes": "{count,plural, =0{less than a minute ago} =1{one minute ago} other{{count} minutes ago}}",
+ "plural_ago_minutes": "{count,plural, =0{gần một phút trước} =1{một phút trước} other{{count} phút trước}}",
"@plural_ago_minutes": {
"description": "Cached results from: x minutes ago",
"placeholders": {
"count": {}
}
},
- "plural_ago_months": "{count,plural, =1{one month ago} other{{count} months ago}}",
+ "plural_ago_months": "{count,plural, =1{một tháng trước} other{{count} tháng trước}}",
"@plural_ago_months": {
"description": "Cached results from: x months ago",
"placeholders": {
"count": {}
}
},
- "plural_ago_weeks": "{count,plural, =1{one week ago} other{{count} weeks ago}}",
+ "plural_ago_weeks": "{count,plural, =1{một tuần trước} other{{count} tuần trước}}",
"@plural_ago_weeks": {
"description": "Cached results from: x weeks ago",
"placeholders": {
"count": {}
}
},
- "plural_compare_x_products": "{count,plural, other{Compare {count} Products}",
+ "plural_compare_x_products": "{count,plural, other{So sánh {count} sản phẩm}",
"@plural_compare_x_products": {
"description": "Button label",
"placeholders": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Thử lại",
- "main_app_color": "Main color of the app",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Khám phá",
+ "how_to_contribute": "How to Contribute",
+ "main_app_color": "Màu sắc chủ đạo của ứng dụng",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_wa.arb b/packages/smooth_app/lib/l10n/app_wa.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_wa.arb
+++ b/packages/smooth_app/lib/l10n/app_wa.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_wo.arb b/packages/smooth_app/lib/l10n/app_wo.arb
index de37ccafa62..103647c5963 100644
--- a/packages/smooth_app/lib/l10n/app_wo.arb
+++ b/packages/smooth_app/lib/l10n/app_wo.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_xh.arb b/packages/smooth_app/lib/l10n/app_xh.arb
index e33ebfeb613..6c6217783d8 100644
--- a/packages/smooth_app/lib/l10n/app_xh.arb
+++ b/packages/smooth_app/lib/l10n/app_xh.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_yo.arb b/packages/smooth_app/lib/l10n/app_yo.arb
index 7777abad3bd..ae2a3da9bd1 100644
--- a/packages/smooth_app/lib/l10n/app_yo.arb
+++ b/packages/smooth_app/lib/l10n/app_yo.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Search",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Retry",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Iwari",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_zh.arb b/packages/smooth_app/lib/l10n/app_zh.arb
index 72b8bbb7e4d..5c7c48ee0e7 100644
--- a/packages/smooth_app/lib/l10n/app_zh.arb
+++ b/packages/smooth_app/lib/l10n/app_zh.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "名稱",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "搜尋",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "查看紀錄",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "成分",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "重試",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "探索",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/l10n/app_zu.arb b/packages/smooth_app/lib/l10n/app_zu.arb
index b3d4b430dbd..0e4a06619e0 100644
--- a/packages/smooth_app/lib/l10n/app_zu.arb
+++ b/packages/smooth_app/lib/l10n/app_zu.arb
@@ -86,6 +86,8 @@
"@login": {
"description": "Text field hint: unified name for either username or e-mail address"
},
+ "login_page_username_or_email": "Please enter username or e-mail",
+ "login_page_password_error_empty": "Please enter a password",
"create_account": "Create account",
"@create_account": {
"description": "Button label: Opens a page where a new user can register"
@@ -142,7 +144,7 @@
"description": "Progress indicator dialog during the actual signing up process"
},
"sign_up_page_action_ok": "Congratulations! Your account has just been created.",
- "sign_up_page_display_name_hint": "Display Name",
+ "sign_up_page_display_name_hint": "Name",
"sign_up_page_display_name_error_empty": "Please enter the display name you want to use",
"sign_up_page_email_hint": "E-mail",
"sign_up_page_email_error_empty": "E-mail is required",
@@ -288,13 +290,13 @@
"@profile_navbar_label": {
"description": "BottomNavigationBarLabel: For the profile and personal preferences page"
},
- "scan_navbar_label": "Profile",
+ "scan_navbar_label": "Sesha",
"@scan_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the searching of products"
},
- "history_navbar_label": "Profile",
+ "history_navbar_label": "History",
"@history_navbar_label": {
- "description": "BottomNavigationBarLabel: For the profile and personal preferences page"
+ "description": "BottomNavigationBarLabel: For the history and compare mode"
},
"category": "Filter by category",
"@category": {
@@ -336,6 +338,10 @@
},
"ingredients": "Ingredients",
"@ingredients": {},
+ "ingredients_editing_instructions": "Keep the original order. Indicate the percentage when specified. Separate with a comma or hyphen, use parentheses for ingredients of an ingredient, and indicate allergens between underscores.",
+ "ingredients_editing_error": "Failed to save the ingredients.",
+ "ingredients_editing_image_error": "Failed to get a new ingredients image.",
+ "ingredients_editing_title": "Edit Ingredients",
"ingredients_photo": "Ingredients photo",
"@ingredients_photo": {
"description": "Button label: For adding a picture of the Ingredients of a product"
@@ -354,7 +360,7 @@
"@packaging_information_photo": {},
"missing_product": "You found a new product!",
"@missing_product": {},
- "add_product_take_photos": "Take photos of the packaging to add this product to our database.",
+ "add_product_take_photos": "Take photos of the packaging to add this product to Open Food Facts",
"@add_product_take_photos": {},
"add_product_take_photos_descriptive": "Please take the following photos and the Open Food Facts engine can work out the rest!",
"@add_product_take_photos_descriptive": {},
@@ -494,9 +500,13 @@
"@country_label": {
"description": "Explanation as to why users should select their country."
},
- "product_removed": "Product removed",
- "@product_removed": {
- "description": "Product got removed from a list"
+ "product_removed_comparison": "Product removed from comparison",
+ "@product_removed_comparison": {
+ "description": "Product got removed from comparison list"
+ },
+ "product_removed_history": "Product removed from history",
+ "@product_removed_history": {
+ "description": "Product got removed from history"
},
"product_could_not_remove": "Could not remove product",
"@product_could_not_remove": {
@@ -578,8 +588,35 @@
"description": "Button to switch to 'compare products mode'"
},
"retry_button_label": "Zama futhi",
+ "connect_with_us": "Connect with us",
+ "instagram": "Instagram",
+ "twitter": "Twitter",
+ "blog": "Blog",
+ "faq": "FAQ",
+ "discover": "Discover",
+ "how_to_contribute": "How to Contribute",
"main_app_color": "Main color of the app",
"@main_app_color": {
"description": "Heading for the section to pick the main app color"
+ },
+ "consent_analytics_title": "Send anonymous analytics",
+ "@consent_analytics_title": {
+ "description": "Title for the consent analytics UI Page"
+ },
+ "consent_analytics_body1": "Help the Open Food Facts volunteer to improve the app.You decide if you want to send anonymous analytics.",
+ "@conset_analytics_body1": {
+ "description": "first paragraph for the consent analytics UI Page"
+ },
+ "consent_analytics_body2": "If you change your mind this option can be enabled and disabled at any time from the settings.",
+ "@consent_analytics_body2": {
+ "description": "second paragraph for the consent analytics UI Page"
+ },
+ "authorize_button_label": "Authorize",
+ "@authorize": {
+ "description": "Button to accept the request of sending the anonymous analytics"
+ },
+ "refuse_button_label": "Refuse",
+ "@refuse": {
+ "description": "Button to decline the request of sending the anonymous analytics"
}
}
\ No newline at end of file
diff --git a/packages/smooth_app/lib/main.dart b/packages/smooth_app/lib/main.dart
index de02686907c..18a64c62898 100644
--- a/packages/smooth_app/lib/main.dart
+++ b/packages/smooth_app/lib/main.dart
@@ -151,7 +151,7 @@ class _SmoothAppState extends State {
Brightness.dark,
themeProvider.colorTag,
),
- themeMode: themeProvider.darkTheme ? ThemeMode.dark : ThemeMode.light,
+ themeMode: themeProvider.currentThemeMode,
home: SmoothAppGetLanguage(appWidget),
);
}
diff --git a/packages/smooth_app/lib/pages/image_crop_page.dart b/packages/smooth_app/lib/pages/image_crop_page.dart
index 5c563421b5e..07cfdfa8764 100644
--- a/packages/smooth_app/lib/pages/image_crop_page.dart
+++ b/packages/smooth_app/lib/pages/image_crop_page.dart
@@ -1,109 +1,45 @@
import 'dart:io';
-import 'dart:typed_data';
-
-import 'package:crop_your_image/crop_your_image.dart';
import 'package:flutter/material.dart';
+import 'package:image_cropper/image_cropper.dart';
import 'package:image_picker/image_picker.dart';
-import 'package:path_provider/path_provider.dart';
import 'package:provider/provider.dart';
import 'package:smooth_app/themes/theme_provider.dart';
Future startImageCropping(BuildContext context) async {
- final Uint8List? bytes = await pickImage();
-
- if (bytes == null) {
- return null;
- }
-
- return Navigator.push(
- context,
- MaterialPageRoute(
- builder: (BuildContext context) => ImageCropPage(imageBytes: bytes),
- ),
- );
-}
-
-Future pickImage() async {
+ final bool isDarktheme =
+ Provider.of(context, listen: false).isDarkMode(context);
+ final Color? themeColor = isDarktheme
+ ? Colors.black
+ : Theme.of(context).appBarTheme.backgroundColor;
final ImagePicker picker = ImagePicker();
-
final XFile? pickedXFile = await picker.pickImage(
source: ImageSource.camera,
);
if (pickedXFile == null) {
- // User didn't pick any image.
return null;
}
-
- return pickedXFile.readAsBytes();
-}
-
-// build circular progress bar widget
-Widget buildCircularProgressBar() {
- return const Center(
- child: CircularProgressIndicator(),
+ final File? croppedFile = await ImageCropper().cropImage(
+ sourcePath: pickedXFile.path,
+ aspectRatioPresets: [
+ CropAspectRatioPreset.square,
+ CropAspectRatioPreset.ratio3x2,
+ CropAspectRatioPreset.original,
+ CropAspectRatioPreset.ratio4x3,
+ CropAspectRatioPreset.ratio16x9
+ ],
+ androidUiSettings: AndroidUiSettings(
+ toolbarTitle: 'Edit Photo', // TODO(ashaan): Localize
+ initAspectRatio: CropAspectRatioPreset.original,
+ lockAspectRatio: false,
+ statusBarColor: themeColor,
+ toolbarColor: themeColor,
+ toolbarWidgetColor: Colors.white,
+ activeControlsWidgetColor: Theme.of(context).colorScheme.primary,
+ backgroundColor: themeColor,
+ ),
+ iosUiSettings: const IOSUiSettings(
+ minimumAspectRatio: 1.0,
+ ),
);
-}
-
-class ImageCropPage extends StatefulWidget {
- const ImageCropPage({Key? key, required this.imageBytes}) : super(key: key);
-
- final Uint8List imageBytes;
-
- @override
- State createState() => _ImageCropPageState();
-}
-
-class _ImageCropPageState extends State {
- bool isCropping = false;
- @override
- Widget build(BuildContext context) {
- final CropController _controller = CropController();
- final ThemeData theme = Theme.of(context);
- context.watch();
- return Scaffold(
- body: isCropping
- ? buildCircularProgressBar()
- : Crop(
- image: widget.imageBytes,
- controller: _controller,
- onCropped: (Uint8List image) async {
- final Directory tempDir = await getTemporaryDirectory();
- final String tempPath = tempDir.path;
- final String filePath = '$tempPath/upload_img_file.tmp';
- final File file = await File(filePath).writeAsBytes(image);
- setState(() {
- isCropping = false;
- });
- Navigator.pop(context, file);
- },
- initialSize: 0.5,
- baseColor: theme.colorScheme.primary,
- maskColor: Colors.white.withAlpha(100),
- cornerDotBuilder: (double size, EdgeAlignment edgeAlignment) =>
- DotControl(color: theme.colorScheme.primary),
- ),
- bottomNavigationBar: BottomAppBar(
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- IconButton(
- icon: const Icon(Icons.cancel_outlined),
- onPressed: () {
- Navigator.pop(context);
- },
- ),
- IconButton(
- icon: const Icon(Icons.done),
- onPressed: () {
- _controller.crop();
- setState(() {
- isCropping = true;
- });
- },
- )
- ],
- ),
- ),
- );
- }
+ return croppedFile;
}
diff --git a/packages/smooth_app/lib/pages/onboarding/common/tooltip_shape_border.dart b/packages/smooth_app/lib/pages/onboarding/common/tooltip_shape_border.dart
new file mode 100644
index 00000000000..ba8875544f5
--- /dev/null
+++ b/packages/smooth_app/lib/pages/onboarding/common/tooltip_shape_border.dart
@@ -0,0 +1,40 @@
+import 'package:flutter/cupertino.dart';
+
+class TooltipShapeBorder extends ShapeBorder {
+ const TooltipShapeBorder({
+ this.radius = 10.0,
+ this.arrowWidth = 20.0,
+ this.arrowHeight = 20.0,
+ this.arrowArc = 0.0,
+ }) : assert(arrowArc <= 1.0 && arrowArc >= 0.0);
+ final double arrowWidth;
+ final double arrowHeight;
+ final double arrowArc;
+ final double radius;
+
+ @override
+ EdgeInsetsGeometry get dimensions => EdgeInsets.only(top: arrowHeight);
+
+ @override
+ Path getOuterPath(Rect rect, {TextDirection? textDirection}) {
+ rect = Rect.fromPoints(rect.topLeft, rect.bottomRight);
+ final double x = arrowWidth, y = arrowHeight, r = 1 - arrowArc;
+ return Path()
+ ..addRRect(RRect.fromRectAndRadius(rect, Radius.circular(radius)))
+ ..moveTo(rect.topCenter.dx, rect.topCenter.dy)
+ ..relativeLineTo(x / 2 * r, -y * r)
+ ..relativeQuadraticBezierTo(x / 2 * (1 - r), -y * (1 - r), x * (1 - r), 0)
+ ..relativeLineTo(x / 2 * r, y * r);
+ }
+
+ @override
+ void paint(Canvas canvas, Rect rect, {TextDirection? textDirection}) {}
+
+ @override
+ ShapeBorder scale(double t) => this;
+
+ @override
+ Path getInnerPath(Rect rect, {TextDirection? textDirection}) {
+ return Path();
+ }
+}
diff --git a/packages/smooth_app/lib/pages/onboarding/consent_analytics_page.dart b/packages/smooth_app/lib/pages/onboarding/consent_analytics_page.dart
new file mode 100644
index 00000000000..69c3a98467d
--- /dev/null
+++ b/packages/smooth_app/lib/pages/onboarding/consent_analytics_page.dart
@@ -0,0 +1,185 @@
+import 'package:flutter/material.dart';
+import 'package:flutter_gen/gen_l10n/app_localizations.dart';
+import 'package:flutter_svg/flutter_svg.dart';
+import 'package:provider/provider.dart';
+import 'package:smooth_app/data_models/onboarding_loader.dart';
+import 'package:smooth_app/data_models/user_preferences.dart';
+import 'package:smooth_app/database/local_database.dart';
+import 'package:smooth_app/generic_lib/design_constants.dart';
+import 'package:smooth_app/pages/onboarding/onboarding_flow_navigator.dart';
+
+class ConsentAnalytics extends StatelessWidget {
+ const ConsentAnalytics({Key? key}) : super(key: key);
+
+ @override
+ Widget build(BuildContext context) {
+ final Size size = MediaQuery.of(context).size;
+ final LocalDatabase localDatabase = context.watch();
+ final UserPreferences userPreferences = context.watch();
+ final AppLocalizations appLocalizations = AppLocalizations.of(context)!;
+ const Color shadowColor = Color.fromARGB(144, 0, 0, 0);
+ const String assetName = 'assets/onboarding/analytics.svg';
+ return Scaffold(
+ body: Column(
+ mainAxisAlignment: MainAxisAlignment.center,
+ children: [
+ SizedBox(
+ height: size.height * 0.2,
+ width: size.width * 0.45,
+ child: SvgPicture.asset(
+ assetName,
+ semanticsLabel: 'Analytics Icons',
+ fit: BoxFit.contain,
+ ),
+ ),
+
+ SizedBox(height: size.height * 0.01),
+
+ Align(
+ alignment: Alignment.center,
+ child: Text(
+ appLocalizations.consent_analytics_title,
+ style: Theme.of(context).textTheme.displayMedium,
+ ),
+ ),
+
+ SizedBox(height: size.height * 0.034),
+
+ ConstrainedBox(
+ constraints: BoxConstraints(
+ maxWidth: size.width * 0.8,
+ ),
+ child: Text(
+ appLocalizations.consent_analytics_body1,
+ textAlign: TextAlign.center,
+ style: Theme.of(context).textTheme.displaySmall,
+ ),
+ ),
+
+ SizedBox(height: size.height * 0.03),
+
+ ConstrainedBox(
+ constraints: BoxConstraints(
+ maxWidth: size.width * 0.8,
+ ),
+ child: Text(
+ appLocalizations.consent_analytics_body2,
+ textAlign: TextAlign.center,
+ style: Theme.of(context).textTheme.displaySmall,
+ ),
+ ),
+
+ SizedBox(height: size.height * 0.02),
+
+ // Authorize Button
+ InkWell(
+ borderRadius: CIRCULAR_BORDER_RADIUS,
+ onTap: () {
+ _analyticsLogic(true, userPreferences, localDatabase, context);
+ },
+ child: Ink(
+ height: size.height * 0.06,
+ width: size.width * 0.7,
+ decoration: BoxDecoration(
+ color: LIGHT_GREEN_COLOR,
+ borderRadius: CIRCULAR_BORDER_RADIUS,
+ boxShadow: [
+ BoxShadow(
+ blurRadius: 3.0,
+ color: shadowColor,
+ offset: Offset(size.width * 0.004, size.height * 0.004),
+ )
+ ],
+ ),
+ child: Row(
+ crossAxisAlignment: CrossAxisAlignment.center,
+ mainAxisAlignment: MainAxisAlignment.center,
+ children: [
+ Text(
+ appLocalizations.authorize_button_label,
+ style: TextStyle(
+ fontWeight: FontWeight.bold,
+ color: WHITE_COLOR,
+ fontSize: size.height * 0.025),
+ ),
+ Padding(
+ padding: EdgeInsets.only(left: size.width * 0.02),
+ child: Icon(
+ Icons.check,
+ color: WHITE_COLOR,
+ size: size.height * 0.04,
+ ),
+ )
+ ],
+ ),
+ ),
+ ),
+
+ SizedBox(height: size.height * 0.02),
+
+ // Refuse Button
+ InkWell(
+ borderRadius: CIRCULAR_BORDER_RADIUS,
+ onTap: () {
+ _analyticsLogic(false, userPreferences, localDatabase, context);
+ },
+ child: Ink(
+ height: size.height * 0.06,
+ width: size.width * 0.7,
+ decoration: BoxDecoration(
+ color: RED_COLOR,
+ borderRadius: CIRCULAR_BORDER_RADIUS,
+ boxShadow: [
+ BoxShadow(
+ blurRadius: 3.0,
+ color: shadowColor,
+ offset: Offset(size.width * 0.004, size.height * 0.004),
+ ),
+ ],
+ ),
+ child: Row(
+ crossAxisAlignment: CrossAxisAlignment.center,
+ mainAxisAlignment: MainAxisAlignment.center,
+ children: [
+ Text(
+ appLocalizations.refuse_button_label,
+ style: TextStyle(
+ fontWeight: FontWeight.bold,
+ color: WHITE_COLOR,
+ fontSize: size.height * 0.025),
+ ),
+ Padding(
+ padding: EdgeInsets.only(left: size.width * 0.02),
+ child: Icon(
+ Icons.close,
+ color: WHITE_COLOR,
+ size: size.height * 0.04,
+ ),
+ )
+ ],
+ ),
+ ),
+ ),
+ ],
+ ),
+ );
+ }
+
+ Future _analyticsLogic(
+ bool accept,
+ UserPreferences userPreferences,
+ LocalDatabase localDatabase,
+ BuildContext context,
+ ) async {
+ await userPreferences.setCrashReports(accept);
+ await userPreferences.setAnalyticsReports(accept);
+ await OnboardingLoader(localDatabase).runAtNextTime(
+ OnboardingPage.CONSENT_PAGE,
+ context,
+ );
+ OnboardingFlowNavigator(userPreferences).navigateToPage(
+ context,
+ OnboardingFlowNavigator.getNextPage(OnboardingPage.CONSENT_PAGE),
+ );
+ }
+}
diff --git a/packages/smooth_app/lib/pages/onboarding/knowledge_panel_page_template.dart b/packages/smooth_app/lib/pages/onboarding/knowledge_panel_page_template.dart
index c6721412047..b166f9a58c6 100644
--- a/packages/smooth_app/lib/pages/onboarding/knowledge_panel_page_template.dart
+++ b/packages/smooth_app/lib/pages/onboarding/knowledge_panel_page_template.dart
@@ -1,16 +1,16 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
+import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:openfoodfacts/model/KnowledgePanels.dart';
-import 'package:provider/provider.dart';
import 'package:smooth_app/cards/product_cards/knowledge_panels/knowledge_panels_builder.dart';
import 'package:smooth_app/data_models/onboarding_data_knowledge_panels.dart';
import 'package:smooth_app/database/local_database.dart';
import 'package:smooth_app/generic_lib/design_constants.dart';
+import 'package:smooth_app/pages/onboarding/common/tooltip_shape_border.dart';
import 'package:smooth_app/pages/onboarding/next_button.dart';
import 'package:smooth_app/pages/onboarding/onboarding_flow_navigator.dart';
import 'package:smooth_app/pages/product/knowledge_panel_product_cards.dart';
import 'package:smooth_app/themes/smooth_theme.dart';
-import 'package:smooth_app/themes/theme_provider.dart';
class KnowledgePanelPageTemplate extends StatefulWidget {
const KnowledgePanelPageTemplate({
@@ -37,6 +37,8 @@ class _KnowledgePanelPageTemplateState
extends State {
late Future _initFuture;
late KnowledgePanels _knowledgePanels;
+ bool _isHintDismissed = false;
+ late final AppLocalizations appLocalizations = AppLocalizations.of(context)!;
@override
void initState() {
@@ -50,8 +52,7 @@ class _KnowledgePanelPageTemplateState
@override
Widget build(BuildContext context) {
- final MaterialColor materialColor =
- SmoothTheme.getMaterialColor(context.read());
+ final MaterialColor materialColor = SmoothTheme.getMaterialColor(context);
return FutureBuilder(
future: _initFuture,
builder: (BuildContext context, AsyncSnapshot snapshot) {
@@ -85,14 +86,13 @@ class _KnowledgePanelPageTemplateState
),
child: Text(
widget.headerTitle,
- style: Theme.of(context).textTheme.headline2!.apply(
- color: Colors.black,
- ),
+ style: Theme.of(context).textTheme.displayMedium,
),
),
KnowledgePanelProductCards([knowledgePanelWidget]),
],
),
+ ..._buildHintPopup(),
Positioned(
child: Align(
alignment: Alignment.bottomCenter,
@@ -100,6 +100,7 @@ class _KnowledgePanelPageTemplateState
),
),
],
+ fit: StackFit.expand,
),
backgroundColor: SmoothTheme.getColor(
Theme.of(context).colorScheme,
@@ -109,4 +110,47 @@ class _KnowledgePanelPageTemplateState
);
});
}
+
+ List _buildHintPopup() {
+ final Widget hintPopup = InkWell(
+ child: Card(
+ child: Container(
+ margin: const EdgeInsets.fromLTRB(20, 10, 20, 10),
+ child: Text(
+ appLocalizations.hint_knowledge_panel_message,
+ style: TextStyle(color: Theme.of(context).cardColor),
+ ),
+ ),
+ margin: const EdgeInsets.symmetric(horizontal: 30),
+ color: Theme.of(context).hintColor.withOpacity(0.9),
+ shape: const TooltipShapeBorder(arrowArc: 0.5),
+ ),
+ onTap: () {
+ setState(() {
+ _isHintDismissed = true;
+ });
+ },
+ );
+ final List hitPopup = [];
+ if (!_isHintDismissed &&
+ !OnboardingFlowNavigator.isOnboradingPagedInHistory(
+ OnboardingPage.HEALTH_CARD_EXAMPLE) &&
+ !OnboardingFlowNavigator.isOnboradingPagedInHistory(
+ OnboardingPage.ECO_CARD_EXAMPLE)) {
+ hitPopup.add(InkWell(
+ child: const DecoratedBox(
+ decoration: BoxDecoration(color: Colors.transparent),
+ ),
+ onTap: () {
+ setState(() {
+ _isHintDismissed = true;
+ });
+ },
+ ));
+ hitPopup.add(Positioned(
+ child: Align(alignment: Alignment.center, child: hintPopup),
+ ));
+ }
+ return hitPopup;
+ }
}
diff --git a/packages/smooth_app/lib/pages/onboarding/next_button.dart b/packages/smooth_app/lib/pages/onboarding/next_button.dart
index 6da4346fe03..1b73d965a06 100644
--- a/packages/smooth_app/lib/pages/onboarding/next_button.dart
+++ b/packages/smooth_app/lib/pages/onboarding/next_button.dart
@@ -6,7 +6,7 @@ import 'package:smooth_app/data_models/user_preferences.dart';
import 'package:smooth_app/database/local_database.dart';
import 'package:smooth_app/generic_lib/design_constants.dart';
import 'package:smooth_app/pages/onboarding/onboarding_flow_navigator.dart';
-import 'package:smooth_app/themes/smooth_theme.dart';
+import 'package:smooth_app/themes/theme_provider.dart';
/// Next button showed at the bottom of the onboarding flow.
class NextButton extends StatelessWidget {
@@ -20,10 +20,12 @@ class NextButton extends StatelessWidget {
final AppLocalizations appLocalizations = AppLocalizations.of(context)!;
final UserPreferences userPreferences = context.watch();
final LocalDatabase localDatabase = context.watch();
- // Side padding is 8% of total widtha.
+ // Side padding is 8% of total width.
final double sidePadding = screenSize.width * .08;
return Container(
- color: Theme.of(context).appBarTheme.backgroundColor,
+ color: ThemeProvider(userPreferences).isDarkMode(context)
+ ? Theme.of(context).backgroundColor
+ : Theme.of(context).appBarTheme.backgroundColor,
padding: EdgeInsets.symmetric(
vertical: VERY_LARGE_SPACE,
horizontal: sidePadding,
@@ -32,11 +34,7 @@ class NextButton extends StatelessWidget {
Expanded(
child: TextButton(
style: TextButton.styleFrom(
- backgroundColor: SmoothTheme.getColor(
- Theme.of(context).colorScheme,
- SmoothTheme.MATERIAL_COLORS[SmoothTheme.COLOR_TAG_BLUE]!,
- ColorDestination.BUTTON_BACKGROUND,
- ),
+ backgroundColor: Theme.of(context).cardColor,
shape: const RoundedRectangleBorder(
borderRadius: ANGULAR_BORDER_RADIUS),
primary: Colors.white,
@@ -49,10 +47,7 @@ class NextButton extends StatelessWidget {
},
child: Text(
appLocalizations.next_label,
- style: Theme.of(context)
- .textTheme
- .headline3!
- .apply(color: Colors.white),
+ style: Theme.of(context).textTheme.headline3,
),
),
),
diff --git a/packages/smooth_app/lib/pages/onboarding/onboarding_flow_navigator.dart b/packages/smooth_app/lib/pages/onboarding/onboarding_flow_navigator.dart
index c53dab373eb..71f60572ba2 100644
--- a/packages/smooth_app/lib/pages/onboarding/onboarding_flow_navigator.dart
+++ b/packages/smooth_app/lib/pages/onboarding/onboarding_flow_navigator.dart
@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:smooth_app/data_models/user_preferences.dart';
import 'package:smooth_app/database/local_database.dart';
+import 'package:smooth_app/pages/onboarding/consent_analytics_page.dart';
import 'package:smooth_app/pages/onboarding/preferences_page.dart';
import 'package:smooth_app/pages/onboarding/sample_eco_card_page.dart';
import 'package:smooth_app/pages/onboarding/sample_health_card_page.dart';
@@ -16,15 +17,23 @@ enum OnboardingPage {
HEALTH_CARD_EXAMPLE,
ECO_CARD_EXAMPLE,
PREFERENCES_PAGE,
+ CONSENT_PAGE,
ONBOARDING_COMPLETE,
}
/// Decide which page to take the user to.
class OnboardingFlowNavigator {
- OnboardingFlowNavigator(this._userPreferences);
+ OnboardingFlowNavigator(this._userPreferences) {
+ if (_historyOnboardingNav.isEmpty) {
+ _historyOnboardingNav.add(_userPreferences.lastVisitedOnboardingPage);
+ }
+ }
final UserPreferences _userPreferences;
+ //used for recording history of onboarding pages navigated
+ static final List _historyOnboardingNav = [];
+
static OnboardingPage getNextPage(OnboardingPage currentPage) {
switch (currentPage) {
case OnboardingPage.NOT_STARTED:
@@ -38,6 +47,8 @@ class OnboardingFlowNavigator {
case OnboardingPage.ECO_CARD_EXAMPLE:
return OnboardingPage.PREFERENCES_PAGE;
case OnboardingPage.PREFERENCES_PAGE:
+ return OnboardingPage.CONSENT_PAGE;
+ case OnboardingPage.CONSENT_PAGE:
return OnboardingPage.ONBOARDING_COMPLETE;
case OnboardingPage.ONBOARDING_COMPLETE:
return OnboardingPage.ONBOARDING_COMPLETE;
@@ -57,13 +68,16 @@ class OnboardingFlowNavigator {
return OnboardingPage.HEALTH_CARD_EXAMPLE;
case OnboardingPage.PREFERENCES_PAGE:
return OnboardingPage.ECO_CARD_EXAMPLE;
- case OnboardingPage.ONBOARDING_COMPLETE:
+ case OnboardingPage.CONSENT_PAGE:
return OnboardingPage.PREFERENCES_PAGE;
+ case OnboardingPage.ONBOARDING_COMPLETE:
+ return OnboardingPage.CONSENT_PAGE;
}
}
void navigateToPage(BuildContext context, OnboardingPage page) {
_userPreferences.setLastVisitedOnboardingPage(page);
+ _historyOnboardingNav.add(page);
Navigator.push(
context,
MaterialPageRoute(
@@ -90,6 +104,9 @@ class OnboardingFlowNavigator {
case OnboardingPage.PREFERENCES_PAGE:
return _wrapWidgetInCustomBackNavigator(
context, page, PreferencesPage(localDatabase));
+ case OnboardingPage.CONSENT_PAGE:
+ return _wrapWidgetInCustomBackNavigator(
+ context, page, const ConsentAnalytics());
case OnboardingPage.ONBOARDING_COMPLETE:
return PageManager();
}
@@ -114,4 +131,13 @@ class OnboardingFlowNavigator {
),
);
}
+
+ static bool isOnboradingPagedInHistory(OnboardingPage page) {
+ bool exists = false;
+ if (_historyOnboardingNav.isNotEmpty) {
+ final int indexPage = _historyOnboardingNav.indexOf(page);
+ exists = indexPage >= 0 && indexPage < (_historyOnboardingNav.length - 1);
+ }
+ return exists;
+ }
}
diff --git a/packages/smooth_app/lib/pages/onboarding/preferences_page.dart b/packages/smooth_app/lib/pages/onboarding/preferences_page.dart
index beadc15396e..41be362a5b5 100644
--- a/packages/smooth_app/lib/pages/onboarding/preferences_page.dart
+++ b/packages/smooth_app/lib/pages/onboarding/preferences_page.dart
@@ -79,9 +79,7 @@ class _HelperState extends State<_Helper> {
),
child: Text(
appLocalizations.productDataUtility,
- style: Theme.of(context).textTheme.headline2!.apply(
- color: Colors.black,
- ),
+ style: Theme.of(context).textTheme.displayMedium,
),
),
Container(
diff --git a/packages/smooth_app/lib/pages/page_manager.dart b/packages/smooth_app/lib/pages/page_manager.dart
index e469e47edab..9d277889b48 100644
--- a/packages/smooth_app/lib/pages/page_manager.dart
+++ b/packages/smooth_app/lib/pages/page_manager.dart
@@ -70,6 +70,7 @@ class PageManagerState extends State {
_buildOffstageNavigator(BottomNavigationTab.History),
]),
bottomNavigationBar: BottomNavigationBar(
+ unselectedItemColor: Theme.of(context).primaryColorLight,
showSelectedLabels: false,
showUnselectedLabels: false,
selectedItemColor: Colors.white,
diff --git a/packages/smooth_app/lib/pages/personalized_ranking_page.dart b/packages/smooth_app/lib/pages/personalized_ranking_page.dart
index 838af776266..83af14529f7 100644
--- a/packages/smooth_app/lib/pages/personalized_ranking_page.dart
+++ b/packages/smooth_app/lib/pages/personalized_ranking_page.dart
@@ -164,7 +164,7 @@ class _PersonalizedRankingPageState extends State {
SnackBar(
content: Text(
removed
- ? appLocalizations.product_removed
+ ? appLocalizations.product_removed_comparison
: appLocalizations.product_could_not_remove,
),
duration: const Duration(seconds: 3),
diff --git a/packages/smooth_app/lib/pages/product/add_new_product_page.dart b/packages/smooth_app/lib/pages/product/add_new_product_page.dart
index 0a7837267d7..16ad53d5183 100644
--- a/packages/smooth_app/lib/pages/product/add_new_product_page.dart
+++ b/packages/smooth_app/lib/pages/product/add_new_product_page.dart
@@ -3,13 +3,11 @@ import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:openfoodfacts/model/ProductImage.dart';
-import 'package:provider/provider.dart';
import 'package:smooth_app/generic_lib/buttons/smooth_action_button.dart';
import 'package:smooth_app/generic_lib/buttons/smooth_large_button_with_icon.dart';
import 'package:smooth_app/generic_lib/design_constants.dart';
import 'package:smooth_app/pages/image_crop_page.dart';
import 'package:smooth_app/pages/product/confirm_and_upload_picture.dart';
-import 'package:smooth_app/themes/theme_provider.dart';
const EdgeInsets _ROW_PADDING_TOP = EdgeInsets.only(top: VERY_LARGE_SPACE);
@@ -115,13 +113,11 @@ class _AddNewProductPageState extends State {
}
Widget _buildAddImageButton(BuildContext context, ImageField imageType) {
- final ThemeProvider themeProvider = context.watch();
return Padding(
padding: _ROW_PADDING_TOP,
child: SmoothLargeButtonWithIcon(
text: _getAddPhotoButtonText(context, imageType),
icon: Icons.camera_alt,
- isDarkMode: themeProvider.darkTheme,
onPressed: () async {
final File? initialPhoto = await startImageCropping(context);
if (initialPhoto == null) {
diff --git a/packages/smooth_app/lib/pages/product/common/product_list_page.dart b/packages/smooth_app/lib/pages/product/common/product_list_page.dart
index 04603a01782..4211dbbe336 100644
--- a/packages/smooth_app/lib/pages/product/common/product_list_page.dart
+++ b/packages/smooth_app/lib/pages/product/common/product_list_page.dart
@@ -106,14 +106,6 @@ class _ProductListPageState extends State {
overflow: TextOverflow.fade,
),
),
- if ((!_selectionMode) && products.isNotEmpty)
- IconButton(
- icon: const Icon(Icons.refresh),
- onPressed: () async => _refreshListProducts(
- products,
- localDatabase,
- ),
- ),
if ((!_selectionMode) && products.isNotEmpty)
Flexible(
child: ElevatedButton(
@@ -150,80 +142,100 @@ class _ProductListPageState extends State {
)
],
)
- : ListView.builder(
- itemCount: products.length,
- itemBuilder: (BuildContext context, int index) {
- final Product product = products[index];
- final String barcode = product.barcode!;
- final bool selected = _selectedBarcodes.contains(barcode);
- void onTap() => setState(
- () {
- if (selected) {
- _selectedBarcodes.remove(barcode);
- } else {
- _selectedBarcodes.add(barcode);
+ : RefreshIndicator(
+ //if it is in selectmode then refresh indicator is not shown
+ notificationPredicate:
+ _selectionMode ? (_) => false : (_) => true,
+ onRefresh: () async => _refreshListProducts(
+ products,
+ localDatabase,
+ ),
+ child: ListView.builder(
+ itemCount: products.length,
+ itemBuilder: (BuildContext context, int index) {
+ final Product product = products[index];
+ final String barcode = product.barcode!;
+ final bool selected = _selectedBarcodes.contains(barcode);
+ void onTap() => setState(
+ () {
+ if (selected) {
+ _selectedBarcodes.remove(barcode);
+ } else {
+ _selectedBarcodes.add(barcode);
+ }
+ },
+ );
+ final Widget child = GestureDetector(
+ onTap: _selectionMode ? onTap : null,
+ child: Container(
+ padding: EdgeInsets.symmetric(
+ horizontal: _selectionMode ? 0 : 12.0,
+ vertical: 8.0,
+ ),
+ child: Row(
+ children: [
+ if (_selectionMode)
+ Icon(
+ selected
+ ? Icons.check_box
+ : Icons.check_box_outline_blank,
+ ),
+ Expanded(
+ child: ProductListItemSimple(
+ product: product,
+ onTap: _selectionMode ? onTap : null,
+ onLongPress: !_selectionMode
+ ? () => setState(() => _selectionMode = true)
+ : null,
+ ),
+ ),
+ ],
+ ),
+ ),
+ );
+ if (dismissible) {
+ return Dismissible(
+ direction: DismissDirection.endToStart,
+ background: Container(
+ alignment: Alignment.centerRight,
+ margin: const EdgeInsets.symmetric(vertical: 14),
+ color: RED_COLOR,
+ padding: const EdgeInsets.only(right: 30),
+ child: const Icon(
+ Icons.delete,
+ color: Colors.white,
+ ),
+ ),
+ key: Key(product.barcode!),
+ onDismissed: (final DismissDirection direction) async {
+ final bool removed =
+ productList.remove(product.barcode!);
+ if (removed) {
+ await daoProductList.put(productList);
+ _selectedBarcodes.remove(product.barcode);
+ setState(() => products.removeAt(index));
}
+ ScaffoldMessenger.of(context).showSnackBar(
+ SnackBar(
+ content: Text(
+ removed
+ ? appLocalizations.product_removed_history
+ : appLocalizations.product_could_not_remove,
+ ),
+ duration: const Duration(seconds: 3),
+ ),
+ );
+ // TODO(monsieurtanuki): add a snackbar ("put back the food")
},
+ child: child,
);
- final Widget child = GestureDetector(
- onTap: _selectionMode ? onTap : null,
- child: Container(
- padding: EdgeInsets.symmetric(
- horizontal: _selectionMode ? 0 : 12.0,
- vertical: 8.0,
- ),
- child: Row(
- children: [
- if (_selectionMode)
- Icon(
- selected
- ? Icons.check_box
- : Icons.check_box_outline_blank,
- ),
- Expanded(
- child: ProductListItemSimple(
- product: product,
- onTap: _selectionMode ? onTap : null,
- onLongPress: !_selectionMode
- ? () => setState(() => _selectionMode = true)
- : null,
- ),
- ),
- ],
- ),
- ),
- );
- if (dismissible) {
- return Dismissible(
- background: Container(color: colorScheme.background),
+ }
+ return Container(
key: Key(product.barcode!),
- onDismissed: (final DismissDirection direction) async {
- final bool removed = productList.remove(product.barcode!);
- if (removed) {
- await daoProductList.put(productList);
- _selectedBarcodes.remove(product.barcode);
- setState(() => products.removeAt(index));
- }
- ScaffoldMessenger.of(context).showSnackBar(
- SnackBar(
- content: Text(
- removed
- ? appLocalizations.product_removed
- : appLocalizations.product_could_not_remove,
- ),
- duration: const Duration(seconds: 3),
- ),
- );
- // TODO(monsieurtanuki): add a snackbar ("put back the food")
- },
child: child,
);
- }
- return Container(
- key: Key(product.barcode!),
- child: child,
- );
- },
+ },
+ ),
),
);
}
diff --git a/packages/smooth_app/lib/pages/product/common/product_query_page.dart b/packages/smooth_app/lib/pages/product/common/product_query_page.dart
index a6107078fb3..92a6437d2ad 100644
--- a/packages/smooth_app/lib/pages/product/common/product_query_page.dart
+++ b/packages/smooth_app/lib/pages/product/common/product_query_page.dart
@@ -7,6 +7,7 @@ import 'package:provider/provider.dart';
import 'package:smooth_app/cards/product_cards/smooth_product_card_found.dart';
import 'package:smooth_app/data_models/product_list_supplier.dart';
import 'package:smooth_app/data_models/product_query_model.dart';
+import 'package:smooth_app/generic_lib/animations/smooth_reveal_animation.dart';
import 'package:smooth_app/helpers/analytics_helper.dart';
import 'package:smooth_app/pages/personalized_ranking_page.dart';
import 'package:smooth_app/pages/product/common/product_query_page_helper.dart';
@@ -34,33 +35,39 @@ class ProductQueryPage extends StatefulWidget {
}
class _ProductQueryPageState extends State {
- final GlobalKey _scaffoldKeyEmpty = GlobalKey();
- final GlobalKey _scaffoldKeyNotEmpty =
- GlobalKey();
+ // we have to use GlobalKey's for SnackBar's because of nested Scaffold's:
+ // not the 2 Scaffold's here but one of them and the one on top (PageManager)
+ final GlobalKey _scaffoldKeyEmpty =
+ GlobalKey();
+ final GlobalKey _scaffoldKeyNotEmpty =
+ GlobalKey();
+ bool _showBackToTopButton = false;
+ late ScrollController _scrollController;
late ProductQueryModel _model;
int? _lastUpdate;
- final ScrollController _scrollController = ScrollController();
- bool _showTitle = true;
@override
void initState() {
super.initState();
_lastUpdate = widget.lastUpdate;
_model = ProductQueryModel(widget.productListSupplier);
- _scrollController.addListener(() {
- if (_scrollController.offset <=
- _scrollController.position.minScrollExtent &&
- !_scrollController.position.outOfRange) {
- if (!_showTitle) {
- setState(() => _showTitle = true);
- }
- } else {
- if (_showTitle) {
- setState(() => _showTitle = false);
- }
- }
- });
+ _scrollController = ScrollController()
+ ..addListener(() {
+ setState(() {
+ if (_scrollController.offset >= 400) {
+ _showBackToTopButton = true;
+ } else {
+ _showBackToTopButton = false;
+ }
+ });
+ });
+ }
+
+ @override
+ void dispose() {
+ _scrollController.dispose();
+ super.dispose();
}
@override
@@ -126,151 +133,201 @@ class _ProductQueryPageState extends State {
final ThemeData themeData,
final Widget emptiness,
) =>
- Scaffold(
- key: _scaffoldKeyEmpty,
+ ScaffoldMessenger(
+ key: _scaffoldKeyEmpty,
+ child: Scaffold(
body: Stack(
children: [
_getHero(screenSize, themeData),
Center(child: emptiness),
- AnimatedOpacity(
- opacity: _showTitle ? 1.0 : 0.0,
- duration: const Duration(milliseconds: 250),
- child: Row(
- mainAxisSize: MainAxisSize.max,
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- getBackArrow(context, widget.mainColor),
- ],
- ),
+ CustomScrollView(
+ slivers: [
+ SliverAppBar(
+ backgroundColor: themeData.scaffoldBackgroundColor,
+ expandedHeight: screenSize.height * 0.15,
+ collapsedHeight: screenSize.height * 0.09,
+ pinned: true,
+ elevation: 0,
+ automaticallyImplyLeading: false,
+ title: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ getBackArrow(context, widget.mainColor),
+ ]),
+ flexibleSpace: LayoutBuilder(builder:
+ (BuildContext context, BoxConstraints constraints) {
+ return FlexibleSpaceBar(
+ centerTitle: true,
+ title: Text(
+ widget.name,
+ textAlign: TextAlign.center,
+ style: themeData.textTheme.headline1!
+ .copyWith(color: widget.mainColor),
+ ),
+ background: _getHero(screenSize, themeData));
+ })),
+ ],
),
],
- ));
+ ),
+ ),
+ );
Widget _getNotEmptyScreen(
final Size screenSize,
final ThemeData themeData,
) =>
- Scaffold(
- key: _scaffoldKeyNotEmpty,
- floatingActionButton: RankingFloatingActionButton(
- color: widget.mainColor,
- onPressed: () => Navigator.push(
- context,
- MaterialPageRoute(
- builder: (BuildContext context) => PersonalizedRankingPage(
- productList: _model.supplier.getProductList(),
- title: widget.name,
+ ScaffoldMessenger(
+ key: _scaffoldKeyNotEmpty,
+ child: Scaffold(
+ floatingActionButton: Row(
+ mainAxisAlignment: _showBackToTopButton
+ ? MainAxisAlignment.spaceBetween
+ : MainAxisAlignment.center,
+ children: [
+ RankingFloatingActionButton(
+ color: widget.mainColor,
+ onPressed: () => Navigator.push(
+ context,
+ MaterialPageRoute(
+ builder: (BuildContext context) => PersonalizedRankingPage(
+ productList: _model.supplier.getProductList(),
+ title: widget.name,
+ ),
+ ),
),
),
- ),
+ Visibility(
+ visible: _showBackToTopButton,
+ child: AnimatedOpacity(
+ duration: const Duration(milliseconds: 200),
+ opacity: _showBackToTopButton ? 1.0 : 0.0,
+ child: SmoothRevealAnimation(
+ animationCurve: Curves.easeInOutBack,
+ startOffset: const Offset(0.0, 1.0),
+ child: Padding(
+ padding: const EdgeInsets.only(left: 8.0),
+ child: FloatingActionButton(
+ backgroundColor: Colors.white,
+ onPressed: () {
+ _scrollToTop();
+ },
+ child: Icon(
+ Icons.arrow_upward,
+ color: widget.mainColor,
+ ),
+ ),
+ ),
+ ),
+ ),
+ ),
+ ],
),
body: Stack(
children: [
_getHero(screenSize, themeData),
- ListView.builder(
- itemCount: _model.displayProducts!.length,
- itemBuilder: (BuildContext context, int index) {
- return Padding(
- padding: const EdgeInsets.symmetric(
- horizontal: 12.0, vertical: 8.0),
- child: SmoothProductCardFound(
- heroTag: _model.displayProducts![index].barcode!,
- product: _model.displayProducts![index],
- elevation:
- Theme.of(context).brightness == Brightness.light
- ? 0.0
- : 4.0,
- ).build(context),
- );
- },
- padding: EdgeInsets.only(
- top: screenSize.height * 0.25, bottom: 80.0),
- controller: _scrollController,
- ),
- AnimatedOpacity(
- opacity: _showTitle ? 1.0 : 0.0,
- duration: const Duration(milliseconds: 250),
- child: Row(
- mainAxisSize: MainAxisSize.max,
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- getBackArrow(context, widget.mainColor),
- Padding(
- padding: const EdgeInsets.only(top: 24.0),
- child: TextButton.icon(
- icon: Icon(
- Icons.filter_list,
- color: widget.mainColor,
- ),
- label: Text(AppLocalizations.of(context)!.filter),
- style: TextButton.styleFrom(
- textStyle: TextStyle(
- color: widget.mainColor,
- ),
- ),
- onPressed: () {
- showCupertinoModalBottomSheet(
- expand: false,
- context: context,
- backgroundColor: Colors.transparent,
- bounce: true,
- builder: (BuildContext context) =>
- GroupQueryFilterView(
- categories: _model.categories,
- categoriesList: _model.sortedCategories,
- callback: (String category) {
- _model.selectCategory(category);
- setState(() {});
- },
+ RefreshIndicator(
+ onRefresh: () => refreshlist(),
+ child: CustomScrollView(
+ controller: _scrollController,
+ slivers: [
+ SliverAppBar(
+ backgroundColor: themeData.scaffoldBackgroundColor,
+ expandedHeight: screenSize.height * 0.15,
+ collapsedHeight: screenSize.height * 0.09,
+ pinned: true,
+ elevation: 0,
+ automaticallyImplyLeading: false,
+ title: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ getBackArrow(context, widget.mainColor),
+ Padding(
+ padding: const EdgeInsets.only(top: 24.0),
+ child: TextButton.icon(
+ icon: Icon(
+ Icons.filter_list,
+ color: widget.mainColor,
+ ),
+ label: Text(
+ AppLocalizations.of(context)!.filter,
+ style: themeData.textTheme.subtitle1!
+ .copyWith(color: widget.mainColor)),
+ style: TextButton.styleFrom(
+ textStyle: TextStyle(
+ color: widget.mainColor,
+ ),
+ ),
+ onPressed: () {
+ showCupertinoModalBottomSheet(
+ expand: false,
+ context: context,
+ backgroundColor: Colors.transparent,
+ bounce: true,
+ builder: (BuildContext context) =>
+ GroupQueryFilterView(
+ categories: _model.categories,
+ categoriesList: _model.sortedCategories,
+ callback: (String category) {
+ _model.selectCategory(category);
+ setState(() {});
+ },
+ ),
+ );
+ },
+ ),
+ )
+ ]),
+ flexibleSpace: LayoutBuilder(builder:
+ (BuildContext context, BoxConstraints constraints) {
+ return FlexibleSpaceBar(
+ centerTitle: true,
+ title: Text(
+ widget.name,
+ textAlign: TextAlign.center,
+ style: themeData.textTheme.headline1!
+ .copyWith(color: widget.mainColor),
),
+ background: _getHero(screenSize, themeData));
+ }),
+ ),
+ SliverList(
+ delegate: SliverChildBuilderDelegate(
+ (_, int index) {
+ return Padding(
+ padding: const EdgeInsets.symmetric(
+ horizontal: 12.0, vertical: 8.0),
+ child: SmoothProductCardFound(
+ heroTag: _model.displayProducts![index].barcode!,
+ product: _model.displayProducts![index],
+ elevation: Theme.of(context).brightness ==
+ Brightness.light
+ ? 0.0
+ : 4.0,
+ ).build(context),
);
},
+ childCount: _model.displayProducts!.length,
),
),
],
),
),
],
- ));
+ ),
+ ),
+ );
Widget _getHero(final Size screenSize, final ThemeData themeData) => Hero(
- tag: widget.heroTag,
- child: Container(
- width: screenSize.width,
- height: screenSize.height,
- decoration: BoxDecoration(
- color: widget.mainColor.withAlpha(32),
- borderRadius: const BorderRadius.only(
- bottomLeft: Radius.circular(20.0),
- bottomRight: Radius.circular(20.0)),
- ),
- padding: const EdgeInsets.only(left: 10.0, right: 10.0, top: 96.0),
- child: Column(
- children: [
- SizedBox(
- height: 80.0,
- child: Row(
- mainAxisSize: MainAxisSize.max,
- mainAxisAlignment: MainAxisAlignment.center,
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Flexible(
- child: AnimatedOpacity(
- opacity: _showTitle ? 1.0 : 0.0,
- duration: const Duration(milliseconds: 250),
- child: Text(
- widget.name,
- textAlign: TextAlign.center,
- style: themeData.textTheme.headline1!
- .copyWith(color: widget.mainColor),
- )),
- ),
- ],
- ),
- ),
- ],
- )),
- );
+ tag: widget.heroTag,
+ child: Container(
+ width: screenSize.width,
+ height: screenSize.height,
+ decoration: BoxDecoration(
+ color: widget.mainColor.withAlpha(32),
+ ),
+ padding: const EdgeInsets.only(left: 10.0, right: 10.0, top: 96.0),
+ ));
Widget _getEmptyText(
final ThemeData themeData,
@@ -290,7 +347,9 @@ class _ProductQueryPageState extends State {
],
);
- void _showRefreshSnackBar(final GlobalKey scaffoldKey) {
+ void _showRefreshSnackBar(
+ final GlobalKey scaffoldKey,
+ ) {
if (_lastUpdate == null) {
return;
}
@@ -308,7 +367,7 @@ class _ProductQueryPageState extends State {
Future.delayed(
Duration.zero,
- () => ScaffoldMessenger.of(context).showSnackBar(
+ () => scaffoldKey.currentState?.showSnackBar(
SnackBar(
content: Text(message),
duration: const Duration(seconds: 5),
@@ -335,4 +394,18 @@ class _ProductQueryPageState extends State {
onPressed: () => Navigator.pop(context),
),
);
+
+ Future refreshlist() async {
+ final ProductListSupplier? refreshSupplier =
+ widget.productListSupplier.getRefreshSupplier();
+ setState(
+ () => _model = ProductQueryModel(refreshSupplier!),
+ );
+ return;
+ }
+
+ void _scrollToTop() {
+ _scrollController.animateTo(0,
+ duration: const Duration(seconds: 3), curve: Curves.linear);
+ }
}
diff --git a/packages/smooth_app/lib/pages/product/edit_ingredients_page.dart b/packages/smooth_app/lib/pages/product/edit_ingredients_page.dart
new file mode 100644
index 00000000000..8655ae4477f
--- /dev/null
+++ b/packages/smooth_app/lib/pages/product/edit_ingredients_page.dart
@@ -0,0 +1,370 @@
+import 'dart:io';
+import 'dart:ui' show ImageFilter;
+
+import 'package:flutter/material.dart';
+import 'package:flutter_gen/gen_l10n/app_localizations.dart';
+import 'package:openfoodfacts/model/OcrIngredientsResult.dart';
+import 'package:openfoodfacts/openfoodfacts.dart';
+import 'package:provider/provider.dart';
+import 'package:smooth_app/database/local_database.dart';
+import 'package:smooth_app/database/product_query.dart';
+import 'package:smooth_app/generic_lib/design_constants.dart';
+import 'package:smooth_app/helpers/picture_capture_helper.dart';
+import 'package:smooth_app/pages/image_crop_page.dart';
+import 'package:smooth_app/pages/product/common/product_refresher.dart';
+import 'package:smooth_app/themes/smooth_theme.dart';
+import 'package:smooth_app/themes/theme_provider.dart';
+
+/// Page for editing the ingredients of a product and the image of the
+/// ingredients.
+class EditIngredientsPage extends StatefulWidget {
+ const EditIngredientsPage({
+ Key? key,
+ this.imageIngredientsUrl,
+ required this.product,
+ }) : super(key: key);
+
+ final Product product;
+ final String? imageIngredientsUrl;
+
+ @override
+ State createState() => _EditIngredientsPageState();
+}
+
+class _EditIngredientsPageState extends State {
+ final TextEditingController _controller = TextEditingController();
+ ImageProvider? _imageProvider;
+ bool _updatingImage = false;
+ bool _updatingIngredients = false;
+
+ static String _getIngredientsString(List? ingredients) {
+ return ingredients == null ? '' : ingredients.join(', ');
+ }
+
+ @override
+ void initState() {
+ super.initState();
+ _controller.text = _getIngredientsString(widget.product.ingredients);
+ }
+
+ @override
+ void didUpdateWidget(EditIngredientsPage oldWidget) {
+ super.didUpdateWidget(oldWidget);
+ final String productIngredients =
+ _getIngredientsString(widget.product.ingredients);
+ if (productIngredients != _controller.text) {
+ _controller.text = productIngredients;
+ }
+ }
+
+ Future _onSubmitField(String string) async {
+ final User user = ProductQuery.getUser();
+
+ setState(() {
+ _updatingIngredients = true;
+ });
+
+ try {
+ await _updateIngredientsText(string, user);
+ } catch (error) {
+ final AppLocalizations appLocalizations = AppLocalizations.of(context)!;
+ _showError(appLocalizations.ingredients_editing_error);
+ }
+
+ setState(() {
+ _updatingIngredients = false;
+ });
+ }
+
+ Future _onTapGetImage() async {
+ setState(() {
+ _updatingImage = true;
+ });
+
+ try {
+ await _getImage();
+ } catch (error) {
+ final AppLocalizations appLocalizations = AppLocalizations.of(context)!;
+ _showError(appLocalizations.ingredients_editing_image_error);
+ }
+
+ setState(() {
+ _updatingImage = false;
+ });
+ }
+
+ // Show the given error message to the user in a SnackBar.
+ void _showError(String error) {
+ ScaffoldMessenger.of(context).showSnackBar(
+ SnackBar(
+ content: Text(error),
+ duration: const Duration(seconds: 3),
+ ),
+ );
+ }
+
+ // Get an image from the camera, run OCR on it, and update the product's
+ // ingredients.
+ //
+ // Returns a Future that resolves successfully only if everything succeeds,
+ // otherwise it will resolve with the relevant error.
+ Future _getImage() async {
+ final File? croppedImageFile = await startImageCropping(context);
+
+ // If the user cancels.
+ if (croppedImageFile == null) {
+ return;
+ }
+
+ // Update the image to load the new image file.
+ setState(() {
+ _imageProvider = FileImage(croppedImageFile);
+ });
+
+ final bool isUploaded = await uploadCapturedPicture(
+ context,
+ barcode: widget.product.barcode!,
+ imageField: ImageField.INGREDIENTS,
+ imageUri: croppedImageFile.uri,
+ );
+ croppedImageFile.delete();
+
+ if (!isUploaded) {
+ throw Exception('Image could not be uploaded.');
+ }
+
+ final OpenFoodFactsLanguage? language = ProductQuery.getLanguage();
+
+ final User user = ProductQuery.getUser();
+
+ // Get the ingredients from the image.
+ final OcrIngredientsResult ingredientsResult =
+ await OpenFoodAPIClient.extractIngredients(
+ user, widget.product.barcode!, language!);
+
+ final String? nextIngredients = ingredientsResult.ingredientsTextFromImage;
+ if (nextIngredients == null || nextIngredients.isEmpty) {
+ throw Exception('Failed to detect ingredients text in image.');
+ }
+
+ // Save the product's ingredients if needed.
+ if (_controller.text != nextIngredients) {
+ setState(() {
+ _controller.text = nextIngredients;
+ });
+
+ await _updateIngredientsText(nextIngredients, user);
+ }
+ }
+
+ Future _updateIngredientsText(String ingredientsText, User user) async {
+ widget.product.ingredientsText = ingredientsText;
+ final LocalDatabase localDatabase = context.read();
+ final bool savedAndRefreshed = await ProductRefresher().saveAndRefresh(
+ context: context,
+ localDatabase: localDatabase,
+ product: widget.product,
+ );
+ if (!savedAndRefreshed) {
+ throw Exception("Couldn't save the product.");
+ }
+ }
+
+ @override
+ Widget build(BuildContext context) {
+ final AppLocalizations appLocalizations = AppLocalizations.of(context)!;
+
+ final List children = [];
+
+ if (_imageProvider != null) {
+ children.add(ConstrainedBox(
+ constraints: const BoxConstraints.expand(),
+ child: Image(
+ image: _imageProvider!,
+ fit: BoxFit.cover,
+ ),
+ ));
+ } else {
+ if (widget.imageIngredientsUrl != null) {
+ children.add(ConstrainedBox(
+ constraints: const BoxConstraints.expand(),
+ child: Image(
+ fit: BoxFit.cover,
+ image: NetworkImage(widget.imageIngredientsUrl!),
+ ),
+ ));
+ } else {
+ children.add(Container(color: Colors.white));
+ }
+ }
+
+ if (_updatingImage) {
+ children.add(const Center(
+ child: CircularProgressIndicator(),
+ ));
+ } else {
+ children.add(_EditIngredientsBody(
+ controller: _controller,
+ imageIngredientsUrl: widget.imageIngredientsUrl,
+ onTapGetImage: _onTapGetImage,
+ onSubmitField: _onSubmitField,
+ updatingIngredients: _updatingIngredients,
+ ));
+ }
+
+ return Scaffold(
+ extendBodyBehindAppBar: true,
+ appBar: AppBar(
+ title: Text(appLocalizations.ingredients_editing_title),
+ backgroundColor: Colors.transparent,
+ flexibleSpace: ClipRect(
+ child: BackdropFilter(
+ filter: ImageFilter.blur(sigmaX: 5.0, sigmaY: 5.0),
+ child: Container(
+ color: Colors.transparent,
+ ),
+ ),
+ ),
+ ),
+ body: Stack(
+ children: children,
+ ),
+ );
+ }
+}
+
+class _EditIngredientsBody extends StatelessWidget {
+ const _EditIngredientsBody({
+ Key? key,
+ required this.controller,
+ required this.imageIngredientsUrl,
+ required this.onSubmitField,
+ required this.onTapGetImage,
+ required this.updatingIngredients,
+ }) : super(key: key);
+
+ final TextEditingController controller;
+ final bool updatingIngredients;
+ final String? imageIngredientsUrl;
+ final Future Function() onTapGetImage;
+ final Future Function(String) onSubmitField;
+
+ @override
+ Widget build(BuildContext context) {
+ final ThemeProvider themeProvider = context.watch();
+ final ThemeData darkTheme = SmoothTheme.getThemeData(
+ Brightness.dark,
+ themeProvider.colorTag,
+ );
+ final AppLocalizations appLocalizations = AppLocalizations.of(context)!;
+
+ return Align(
+ alignment: Alignment.bottomLeft,
+ child: Padding(
+ padding: const EdgeInsets.symmetric(horizontal: LARGE_SPACE),
+ child: Column(
+ mainAxisAlignment: MainAxisAlignment.end,
+ children: [
+ Flexible(
+ flex: 1,
+ child: Align(
+ alignment: Alignment.bottomRight,
+ child: Padding(
+ padding: const EdgeInsets.only(bottom: LARGE_SPACE),
+ child: _ActionButtons(
+ getImage: onTapGetImage,
+ hasImage: imageIngredientsUrl != null,
+ ),
+ ),
+ ),
+ ),
+ Flexible(
+ flex: 1,
+ child: Container(
+ color: Colors.black,
+ child: Theme(
+ data: darkTheme,
+ child: DefaultTextStyle(
+ style: const TextStyle(color: Colors.white),
+ child: Padding(
+ padding: const EdgeInsets.all(LARGE_SPACE),
+ child: Column(
+ children: [
+ TextField(
+ enabled: !updatingIngredients,
+ controller: controller,
+ decoration: const InputDecoration(
+ border: OutlineInputBorder(
+ borderRadius: ANGULAR_BORDER_RADIUS,
+ ),
+ ),
+ maxLines: null,
+ textInputAction: TextInputAction.done,
+ onSubmitted: onSubmitField,
+ ),
+ Text(appLocalizations
+ .ingredients_editing_instructions),
+ ],
+ ),
+ ),
+ ),
+ ),
+ ),
+ ),
+ ],
+ ),
+ ),
+ );
+ }
+}
+
+/// The actions for the page in a row of FloatingActionButtons.
+class _ActionButtons extends StatelessWidget {
+ const _ActionButtons({
+ Key? key,
+ required this.hasImage,
+ required this.getImage,
+ }) : super(key: key);
+
+ final bool hasImage;
+ final VoidCallback getImage;
+
+ @override
+ Widget build(BuildContext context) {
+ final ColorScheme colorScheme = Theme.of(context).buttonTheme.colorScheme!;
+ final List children = hasImage
+ ? [
+ FloatingActionButton.small(
+ tooltip: 'Retake photo',
+ backgroundColor: colorScheme.background,
+ foregroundColor: colorScheme.onBackground,
+ onPressed: getImage,
+ child: const Icon(Icons.refresh),
+ ),
+ const SizedBox(width: MEDIUM_SPACE),
+ FloatingActionButton.small(
+ tooltip: 'Confirm',
+ backgroundColor: colorScheme.primary,
+ foregroundColor: colorScheme.onPrimary,
+ onPressed: () {
+ Navigator.pop(context);
+ },
+ child: const Icon(Icons.check),
+ ),
+ ]
+ : [
+ FloatingActionButton.small(
+ tooltip: 'Take photo',
+ backgroundColor: colorScheme.background,
+ foregroundColor: colorScheme.onBackground,
+ onPressed: getImage,
+ child: const Icon(Icons.camera_alt),
+ ),
+ ];
+
+ return Row(
+ mainAxisAlignment: MainAxisAlignment.end,
+ children: children,
+ );
+ }
+}
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 b652f0d06dd..ae7a2ca5bda 100644
--- a/packages/smooth_app/lib/pages/product/new_product_page.dart
+++ b/packages/smooth_app/lib/pages/product/new_product_page.dart
@@ -26,7 +26,6 @@ import 'package:smooth_app/pages/product/knowledge_panel_product_cards.dart';
import 'package:smooth_app/pages/product/summary_card.dart';
import 'package:smooth_app/pages/user_preferences_dev_mode.dart';
import 'package:smooth_app/themes/smooth_theme.dart';
-import 'package:smooth_app/themes/theme_provider.dart';
class ProductPage extends StatefulWidget {
const ProductPage(this.product);
@@ -58,15 +57,11 @@ class _ProductPageState extends State {
Widget build(BuildContext context) {
// All watchers defined here:
_productPreferences = context.watch();
- final ThemeProvider themeProvider = context.watch();
final AppLocalizations appLocalizations = AppLocalizations.of(context)!;
final ThemeData themeData = Theme.of(context);
final ColorScheme colorScheme = themeData.colorScheme;
- final MaterialColor materialColor =
- SmoothTheme.getMaterialColor(themeProvider);
-
+ final MaterialColor materialColor = SmoothTheme.getMaterialColor(context);
final Size size = MediaQuery.of(context).size;
-
return Scaffold(
backgroundColor: SmoothTheme.getColor(
colorScheme,
@@ -183,91 +178,97 @@ class _ProductPageState extends State {
}
Widget _buildProductBody(BuildContext context) {
- return ListView(children: [
- Align(
- heightFactor: 0.7,
- alignment: Alignment.topLeft,
- child: ProductImageCarousel(
- _product,
- height: 200,
- onUpload: _refreshProduct,
- ),
- ),
- Padding(
- padding: const EdgeInsets.symmetric(
- horizontal: SMALL_SPACE,
- ),
- child: SummaryCard(
- _product,
- _productPreferences,
- isFullVersion: true,
- showUnansweredQuestions: true,
- refreshProductCallback: _refreshProduct,
+ return RefreshIndicator(
+ onRefresh: () => _refreshProduct(context),
+ child: ListView(children: [
+ Align(
+ heightFactor: 0.7,
+ alignment: Alignment.topLeft,
+ child: ProductImageCarousel(
+ _product,
+ height: 200,
+ onUpload: _refreshProduct,
+ ),
),
- ),
- _buildKnowledgePanelCards(),
- Padding(
- padding: const EdgeInsets.all(SMALL_SPACE),
- child: SmoothActionButton(
- text: 'Edit product', // TODO(monsieurtanuki): translations
- onPressed: () async {
- final bool? refreshed = await Navigator.push(
- context,
- MaterialPageRoute(
- builder: (BuildContext context) => EditProductPage(_product),
- ),
- );
- if (refreshed ?? false) {
- setState(() {});
- }
- },
+ Padding(
+ padding: const EdgeInsets.symmetric(
+ horizontal: SMALL_SPACE,
+ ),
+ child: Hero(
+ tag: _product.barcode ?? '',
+ child: SummaryCard(
+ _product,
+ _productPreferences,
+ isFullVersion: true,
+ showUnansweredQuestions: true,
+ refreshProductCallback: _refreshProduct,
+ ),
+ ),
),
- ),
- if (context.read().getFlag(
- UserPreferencesDevMode.userPreferencesFlagAdditionalButton) ??
- false)
- ElevatedButton(
- onPressed: () async {
- if (_product.categoriesTags == null) {
- // TODO(monsieurtanuki): that's another story: how to set an initial category?
- return;
- }
- if (_product.categoriesTags!.length < 2) {
- // TODO(monsieurtanuki): no father, we need to do something with roots
- return;
- }
- final String currentTag =
- _product.categoriesTags![_product.categoriesTags!.length - 1];
- final String fatherTag =
- _product.categoriesTags![_product.categoriesTags!.length - 2];
- final CategoryCache categoryCache =
- CategoryCache(ProductQuery.getLanguage()!);
- final Map? siblingsData =
- await categoryCache.getCategorySiblingsAndFather(
- fatherTag: fatherTag,
- );
- if (siblingsData == null) {
- // TODO(monsieurtanuki): what shall we do?
- return;
- }
- final String? newTag = await Navigator.push(
- context,
- MaterialPageRoute(
- builder: (BuildContext context) => CategoryPickerPage(
- barcode: _product.barcode!,
- initialMap: siblingsData,
- initialTree: _product.categoriesTags!,
- categoryCache: categoryCache,
+ _buildKnowledgePanelCards(),
+ Padding(
+ padding: const EdgeInsets.all(SMALL_SPACE),
+ child: SmoothActionButton(
+ text: 'Edit product', // TODO(monsieurtanuki): translations
+ onPressed: () async {
+ final bool? refreshed = await Navigator.push(
+ context,
+ MaterialPageRoute(
+ builder: (BuildContext context) => EditProductPage(_product),
),
- ),
- );
- if (newTag != null && newTag != currentTag) {
- setState(() {});
- }
- },
- child: const Text('Additional Button'),
+ );
+ if (refreshed ?? false) {
+ setState(() {});
+ }
+ },
+ ),
),
- ]);
+ if (context.read().getFlag(
+ UserPreferencesDevMode.userPreferencesFlagAdditionalButton) ??
+ false)
+ ElevatedButton(
+ onPressed: () async {
+ if (_product.categoriesTags == null) {
+ // TODO(monsieurtanuki): that's another story: how to set an initial category?
+ return;
+ }
+ if (_product.categoriesTags!.length < 2) {
+ // TODO(monsieurtanuki): no father, we need to do something with roots
+ return;
+ }
+ final String currentTag =
+ _product.categoriesTags![_product.categoriesTags!.length - 1];
+ final String fatherTag =
+ _product.categoriesTags![_product.categoriesTags!.length - 2];
+ final CategoryCache categoryCache =
+ CategoryCache(ProductQuery.getLanguage()!);
+ final Map? siblingsData =
+ await categoryCache.getCategorySiblingsAndFather(
+ fatherTag: fatherTag,
+ );
+ if (siblingsData == null) {
+ // TODO(monsieurtanuki): what shall we do?
+ return;
+ }
+ final String? newTag = await Navigator.push(
+ context,
+ MaterialPageRoute(
+ builder: (BuildContext context) => CategoryPickerPage(
+ barcode: _product.barcode!,
+ initialMap: siblingsData,
+ initialTree: _product.categoriesTags!,
+ categoryCache: categoryCache,
+ ),
+ ),
+ );
+ if (newTag != null && newTag != currentTag) {
+ setState(() {});
+ }
+ },
+ child: const Text('Additional Button'),
+ ),
+ ]),
+ );
}
FutureBuilder _buildKnowledgePanelCards() {
@@ -287,8 +288,8 @@ class _ProductPageState extends State {
KnowledgePanelsBuilder(setState: () => setState(() {}))
.buildAll(
snapshot.data!,
- product: _product,
context: context,
+ product: _product,
);
} else if (snapshot.hasError) {
// TODO(jasmeet): Retry the request.
diff --git a/packages/smooth_app/lib/pages/product/nutrition_page_loaded.dart b/packages/smooth_app/lib/pages/product/nutrition_page_loaded.dart
index 9bd86c849ae..ecf27b0f183 100644
--- a/packages/smooth_app/lib/pages/product/nutrition_page_loaded.dart
+++ b/packages/smooth_app/lib/pages/product/nutrition_page_loaded.dart
@@ -33,9 +33,13 @@ class _NutritionPageLoadedState extends State {
// If true then serving, if false then 100g.
bool _servingOr100g = false;
- static const double _columnSize1 = 250; // TODO(monsieurtanuki): proper size
- static const double _columnSize2 =
- 100; // TODO(monsieurtanuki): anyway, should fit the largest text, probably 'mcg/µg'
+ double getColumnSizeFromContext(
+ BuildContext context,
+ double adjustmentFactor,
+ ) {
+ final double _columnSize = MediaQuery.of(context).size.width;
+ return _columnSize * adjustmentFactor;
+ }
final Map _controllers =
{};
@@ -74,10 +78,7 @@ class _NutritionPageLoadedState extends State {
for (final OrderedNutrient orderedNutrient
in _nutritionContainer.getDisplayableNutrients()) {
children.add(
- _getNutrientRow(
- appLocalizations,
- orderedNutrient,
- ),
+ _getNutrientRow(appLocalizations, orderedNutrient),
);
}
children.add(_addNutrientButton(appLocalizations));
@@ -108,7 +109,7 @@ class _NutritionPageLoadedState extends State {
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SizedBox(
- width: _columnSize1,
+ width: getColumnSizeFromContext(context, 0.6),
child: _getNutrientCell(
appLocalizations,
orderedNutrient,
@@ -116,7 +117,7 @@ class _NutritionPageLoadedState extends State {
),
),
SizedBox(
- width: _columnSize2,
+ width: getColumnSizeFromContext(context, 0.3),
child: _getUnitCell(orderedNutrient),
),
],
@@ -232,7 +233,7 @@ class _NutritionPageLoadedState extends State {
Container(
color: Theme.of(context).colorScheme.primary,
child: Row(
- mainAxisAlignment: MainAxisAlignment.end,
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Switch(
@@ -241,7 +242,7 @@ class _NutritionPageLoadedState extends State {
setState(() => _unspecified = !_unspecified),
),
SizedBox(
- width: 300, // TODO(monsieurtanuki): proper size
+ width: getColumnSizeFromContext(context, 0.6),
child: Text(
appLocalizations.nutrition_page_unspecified,
style: const TextStyle(color: Colors.white),
diff --git a/packages/smooth_app/lib/pages/product/summary_card.dart b/packages/smooth_app/lib/pages/product/summary_card.dart
index b79bdf31322..1f205a3d274 100644
--- a/packages/smooth_app/lib/pages/product/summary_card.dart
+++ b/packages/smooth_app/lib/pages/product/summary_card.dart
@@ -133,9 +133,10 @@ class _SummaryCardState extends State {
padding: const EdgeInsets.symmetric(
vertical: SMALL_SPACE,
),
- decoration: const BoxDecoration(
- color: Colors.white,
- borderRadius: BorderRadius.vertical(bottom: ROUNDED_RADIUS),
+ decoration: BoxDecoration(
+ color: Theme.of(context).cardColor,
+ borderRadius:
+ const BorderRadius.vertical(bottom: ROUNDED_RADIUS),
),
child: Center(
child: Text(
@@ -236,7 +237,7 @@ class _SummaryCardState extends State {
}
return Column(
children: [
- ProductTitleCard(widget._product),
+ ProductTitleCard(widget._product, widget.isFullVersion),
for (final Attribute attribute in scoreAttributes)
ScoreCard(
iconUrl: attribute.iconUrl,
@@ -251,22 +252,23 @@ class _SummaryCardState extends State {
false)
addPanelButton(appLocalizations.score_add_missing_product_category,
onPressed: () {}),
- if (categoryTag != null && categoryLabel != null)
- addPanelButton(
- appLocalizations.product_search_same_category,
- iconData: Icons.leaderboard,
- onPressed: () async => ProductQueryPageHelper().openBestChoice(
- color: Colors.deepPurple,
- heroTag: 'search_bar',
- name: categoryLabel!,
- localDatabase: localDatabase,
- productQuery: CategoryProductQuery(
- categoryTag: widget._product.categoriesTags!.last,
- size: 500,
+ if (widget.isFullVersion)
+ if (categoryTag != null && categoryLabel != null)
+ addPanelButton(
+ appLocalizations.product_search_same_category,
+ iconData: Icons.leaderboard,
+ onPressed: () async => ProductQueryPageHelper().openBestChoice(
+ color: Colors.deepPurple,
+ heroTag: 'search_bar',
+ name: categoryLabel!,
+ localDatabase: localDatabase,
+ productQuery: CategoryProductQuery(
+ categoryTag: widget._product.categoriesTags!.last,
+ size: 500,
+ ),
+ context: context,
),
- context: context,
),
- ),
if ((widget._product.statesTags
?.contains('en:product-name-to-be-completed') ??
false) ||
@@ -481,7 +483,7 @@ class _SummaryCardState extends State {
},
child: SmoothCard(
margin: EdgeInsets.zero,
- color: const Color(0xfff5f6fa),
+ color: Theme.of(context).colorScheme.primary,
elevation: 0,
padding: const EdgeInsets.all(
SMALL_SPACE,
@@ -491,10 +493,16 @@ class _SummaryCardState extends State {
child: Column(
children: [
// TODO(jasmeet): Use Material icon or SVG (after consulting UX).
- Text('🏅 ${appLocalizations.tap_to_answer}'),
+ Text(
+ '🏅 ${appLocalizations.tap_to_answer}',
+ style: Theme.of(context).primaryTextTheme.bodyLarge,
+ ),
Container(
padding: const EdgeInsets.only(top: SMALL_SPACE),
- child: Text(appLocalizations.contribute_to_get_rewards),
+ child: Text(
+ appLocalizations.contribute_to_get_rewards,
+ style: Theme.of(context).primaryTextTheme.bodyText2,
+ ),
),
],
),
diff --git a/packages/smooth_app/lib/pages/scan/scan_product_card.dart b/packages/smooth_app/lib/pages/scan/scan_product_card.dart
index b3f8cad929c..6d0ff8d5b5f 100644
--- a/packages/smooth_app/lib/pages/scan/scan_product_card.dart
+++ b/packages/smooth_app/lib/pages/scan/scan_product_card.dart
@@ -24,7 +24,10 @@ class ScanProductCard extends StatelessWidget {
_openProductPage(context);
}
},
- child: SummaryCard(product, productPreferences),
+ child: Hero(
+ tag: product.barcode ?? '',
+ child: SummaryCard(product, productPreferences),
+ ),
);
}
diff --git a/packages/smooth_app/lib/pages/scan/scanner_overlay.dart b/packages/smooth_app/lib/pages/scan/scanner_overlay.dart
index cf8759454fa..3659858c566 100644
--- a/packages/smooth_app/lib/pages/scan/scanner_overlay.dart
+++ b/packages/smooth_app/lib/pages/scan/scanner_overlay.dart
@@ -86,9 +86,12 @@ class ScannerOverlay extends StatelessWidget {
children: [
const SafeArea(top: true, child: ScanHeader()),
const Spacer(),
- SmoothProductCarousel(
- showSearchCard: true,
- height: carouselHeight,
+ Padding(
+ padding: const EdgeInsets.only(bottom: 10.0),
+ child: SmoothProductCarousel(
+ showSearchCard: true,
+ height: carouselHeight,
+ ),
),
],
),
diff --git a/packages/smooth_app/lib/pages/user_management/forgot_password_page.dart b/packages/smooth_app/lib/pages/user_management/forgot_password_page.dart
index c3af22b3682..ccb08dcc7b8 100644
--- a/packages/smooth_app/lib/pages/user_management/forgot_password_page.dart
+++ b/packages/smooth_app/lib/pages/user_management/forgot_password_page.dart
@@ -67,13 +67,14 @@ class _ForgotPasswordPageState extends State {
@override
Widget build(BuildContext context) {
final ThemeData theme = Theme.of(context);
- final ThemeProvider themeProvider = context.watch();
final AppLocalizations appLocalizations = AppLocalizations.of(context)!;
final UserPreferences userPreferences = context.watch();
final Size size = MediaQuery.of(context).size;
+ final bool isDarkMode =
+ Provider.of(context, listen: false).isDarkMode(context);
// Needs to be changed
- if (themeProvider.darkTheme) {
+ if (isDarkMode) {
_textFieldBackgroundColor = Colors.white10;
}
diff --git a/packages/smooth_app/lib/pages/user_management/login_page.dart b/packages/smooth_app/lib/pages/user_management/login_page.dart
index e917d2f1fc9..00331bab46e 100644
--- a/packages/smooth_app/lib/pages/user_management/login_page.dart
+++ b/packages/smooth_app/lib/pages/user_management/login_page.dart
@@ -71,12 +71,13 @@ class _LoginPageState extends State {
@override
Widget build(BuildContext context) {
final ThemeData theme = Theme.of(context);
- final ThemeProvider themeProvider = context.watch();
final AppLocalizations appLocalizations = AppLocalizations.of(context)!;
final Size size = MediaQuery.of(context).size;
+ final bool isDarkMode =
+ Provider.of(context, listen: false).isDarkMode(context);
// Needs to be changed
- if (themeProvider.darkTheme) {
+ if (isDarkMode) {
_textFieldBackgroundColor = Colors.white10;
}
@@ -128,7 +129,7 @@ class _LoginPageState extends State {
SmoothTextFormField(
type: TextFieldTypes.PLAIN_TEXT,
controller: userIdController,
- hintText: appLocalizations.login,
+ hintText: appLocalizations.username_or_email,
textColor: _customGrey,
backgroundColor: _textFieldBackgroundColor,
prefixIcon: const Icon(Icons.person),
@@ -141,7 +142,7 @@ class _LoginPageState extends State {
],
validator: (String? value) {
if (value == null || value.isEmpty) {
- return appLocalizations.enter_some_text;
+ return appLocalizations.login_page_username_or_email;
}
return null;
},
@@ -164,7 +165,7 @@ class _LoginPageState extends State {
],
validator: (String? value) {
if (value == null || value.isEmpty) {
- return appLocalizations.enter_some_text;
+ return appLocalizations.login_page_password_error_empty;
}
return null;
},
diff --git a/packages/smooth_app/lib/pages/user_management/sign_up_page.dart b/packages/smooth_app/lib/pages/user_management/sign_up_page.dart
index 0c06259d9d0..925f9ea2bde 100644
--- a/packages/smooth_app/lib/pages/user_management/sign_up_page.dart
+++ b/packages/smooth_app/lib/pages/user_management/sign_up_page.dart
@@ -265,6 +265,7 @@ class _SignUpPageState extends State {
),
),
),
+ const SizedBox(height: space),
],
),
),
diff --git a/packages/smooth_app/lib/pages/user_preferences_dev_mode.dart b/packages/smooth_app/lib/pages/user_preferences_dev_mode.dart
index e060abcbf12..d4f1d81ea1e 100644
--- a/packages/smooth_app/lib/pages/user_preferences_dev_mode.dart
+++ b/packages/smooth_app/lib/pages/user_preferences_dev_mode.dart
@@ -40,6 +40,7 @@ class UserPreferencesDevMode extends AbstractUserPreferences {
static const String userPreferencesFlagLenientMatching = '__lenientMatching';
static const String userPreferencesFlagAdditionalButton =
'__additionalButtonOnProductPage';
+ static const String userPreferencesFlagEditIngredients = '__editIngredients';
static const String userPreferencesEnumScanMode = '__scanMode';
final TextEditingController _textFieldController = TextEditingController();
@@ -127,6 +128,17 @@ class UserPreferencesDevMode extends AbstractUserPreferences {
.showSnackBar(const SnackBar(content: Text('Ok')));
},
),
+ SwitchListTile(
+ title: const Text('Edit ingredients via a knowledge panel button'),
+ value: userPreferences.getFlag(userPreferencesFlagEditIngredients) ??
+ false,
+ onChanged: (bool value) async {
+ await userPreferences.setFlag(
+ userPreferencesFlagEditIngredients, value);
+ ScaffoldMessenger.of(context)
+ .showSnackBar(const SnackBar(content: Text('Ok')));
+ },
+ ),
ListTile(
title: const Text('Export History'),
onTap: () async {
diff --git a/packages/smooth_app/lib/pages/user_preferences_page.dart b/packages/smooth_app/lib/pages/user_preferences_page.dart
index 0ec9b4c234e..0f38698a2b3 100644
--- a/packages/smooth_app/lib/pages/user_preferences_page.dart
+++ b/packages/smooth_app/lib/pages/user_preferences_page.dart
@@ -71,9 +71,9 @@ class _UserPreferencesPageState extends State {
}
return Scaffold(
appBar: AppBar(title: Text(appLocalizations.myPreferences)),
- body: Padding(
+ body: ListView(
padding: const EdgeInsets.fromLTRB(0.0, MEDIUM_SPACE, 0.0, 0.0),
- child: ListView(children: children),
+ children: children,
),
);
}
diff --git a/packages/smooth_app/lib/pages/user_preferences_profile.dart b/packages/smooth_app/lib/pages/user_preferences_profile.dart
index f94059e6f8c..5aa5d096c7e 100644
--- a/packages/smooth_app/lib/pages/user_preferences_profile.dart
+++ b/packages/smooth_app/lib/pages/user_preferences_profile.dart
@@ -79,7 +79,6 @@ class UserPreferencesSection extends StatefulWidget {
class _UserPreferencesPageState extends State {
void _confirmLogout(BuildContext context) {
final AppLocalizations localizations = AppLocalizations.of(context)!;
-
showDialog(
context: context,
builder: (BuildContext context) {
diff --git a/packages/smooth_app/lib/pages/user_preferences_settings.dart b/packages/smooth_app/lib/pages/user_preferences_settings.dart
index ee5f362e58e..2630808ddf2 100644
--- a/packages/smooth_app/lib/pages/user_preferences_settings.dart
+++ b/packages/smooth_app/lib/pages/user_preferences_settings.dart
@@ -11,11 +11,12 @@ import 'package:smooth_app/generic_lib/buttons/smooth_main_button.dart';
import 'package:smooth_app/generic_lib/design_constants.dart';
import 'package:smooth_app/generic_lib/dialogs/smooth_alert_dialog.dart';
import 'package:smooth_app/generic_lib/widgets/smooth_list_tile.dart';
-import 'package:smooth_app/generic_lib/widgets/smooth_toggle.dart';
import 'package:smooth_app/helpers/launch_url_helper.dart';
import 'package:smooth_app/pages/abstract_user_preferences.dart';
import 'package:smooth_app/themes/smooth_theme.dart';
import 'package:smooth_app/themes/theme_provider.dart';
+import 'package:smooth_app/views/bottom_sheet_views/faq_handle_view.dart';
+import 'package:smooth_app/views/bottom_sheet_views/social_handle_view.dart';
import 'package:smooth_app/views/bottom_sheet_views/user_contribution_view.dart';
import 'package:url_launcher/url_launcher.dart';
@@ -59,7 +60,6 @@ class UserPreferencesSettings extends AbstractUserPreferences {
@override
Widget? getSubtitle() =>
Text(appLocalizations.myPreferences_settings_subtitle);
-
@override
List getBody() => [
Padding(
@@ -74,21 +74,27 @@ class UserPreferencesSettings extends AbstractUserPreferences {
appLocalizations.darkmode,
style: themeData.textTheme.headline4,
),
- SmoothToggle(
- value: themeProvider.darkTheme,
- width: 85.0,
- height: 38.0,
- textRight: appLocalizations.darkmode_light,
- textLeft: appLocalizations.darkmode_dark,
- colorRight: Colors.blue,
- colorLeft: Colors.blueGrey.shade700,
- iconRight: const Icon(Icons.wb_sunny_rounded),
- iconLeft: const Icon(
- Icons.nightlight_round,
- color: Colors.black,
- ),
- onChanged: (bool newValue) async =>
- themeProvider.setDarkTheme(newValue),
+ DropdownButton(
+ value: themeProvider.currentTheme,
+ elevation: 16,
+ onChanged: (String? newValue) {
+ themeProvider.setTheme(newValue!);
+ },
+ items: >[
+ const DropdownMenuItem(
+ // TODO(aman): translations
+ child: Text('System Default'),
+ value: THEME_SYSTEM_DEFAULT,
+ ),
+ DropdownMenuItem(
+ child: Text(appLocalizations.darkmode_light),
+ value: THEME_LIGHT,
+ ),
+ DropdownMenuItem(
+ child: Text(appLocalizations.darkmode_dark),
+ value: THEME_DARK,
+ )
+ ],
),
],
),
@@ -248,6 +254,26 @@ class UserPreferencesSettings extends AbstractUserPreferences {
);
},
),
+ SmoothListTile(
+ text: AppLocalizations.of(context)!.connect_with_us,
+ onPressed: () => showCupertinoModalBottomSheet(
+ expand: false,
+ context: context,
+ backgroundColor: Colors.transparent,
+ bounce: true,
+ builder: (BuildContext context) => SocialHandleView(),
+ ),
+ ),
+ SmoothListTile(
+ text: appLocalizations.faq,
+ onPressed: () => showCupertinoModalBottomSheet(
+ expand: false,
+ context: context,
+ backgroundColor: Colors.transparent,
+ bounce: true,
+ builder: (BuildContext context) => FaqHandleView(),
+ ),
+ ),
];
Widget _getColorButton(
diff --git a/packages/smooth_app/lib/themes/smooth_theme.dart b/packages/smooth_app/lib/themes/smooth_theme.dart
index 4823eba4bb8..c614c6bcfd0 100644
--- a/packages/smooth_app/lib/themes/smooth_theme.dart
+++ b/packages/smooth_app/lib/themes/smooth_theme.dart
@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
+import 'package:provider/provider.dart';
import 'package:smooth_app/themes/theme_provider.dart';
/// Color destination
@@ -44,11 +45,10 @@ class SmoothTheme {
final ColorDestination colorDestination,
) =>
instance.getColorImpl(colorScheme, materialColor, colorDestination);
-
static MaterialColor getMaterialColor(
- final ThemeProvider themeProvider,
+ final BuildContext context,
) =>
- instance.getMaterialColorImpl(themeProvider);
+ instance.getMaterialColorImpl(context);
/// Returns a shade of a [materialColor]
///
@@ -89,8 +89,9 @@ class SmoothTheme {
}
@protected
- MaterialColor getMaterialColorImpl(final ThemeProvider themeProvider) {
- if (themeProvider.darkTheme) {
+ MaterialColor getMaterialColorImpl(final BuildContext context) {
+ final ThemeProvider themeProvider = context.watch();
+ if (MediaQuery.platformBrightnessOf(context) == Brightness.dark) {
return Colors.grey;
}
return MATERIAL_COLORS[themeProvider.colorTag] ??
diff --git a/packages/smooth_app/lib/themes/theme_provider.dart b/packages/smooth_app/lib/themes/theme_provider.dart
index 919bc4d2038..24271a954fe 100644
--- a/packages/smooth_app/lib/themes/theme_provider.dart
+++ b/packages/smooth_app/lib/themes/theme_provider.dart
@@ -2,18 +2,27 @@ import 'package:flutter/material.dart';
import 'package:smooth_app/data_models/user_preferences.dart';
import 'package:smooth_app/themes/smooth_theme.dart';
+const String THEME_SYSTEM_DEFAULT = 'System Default';
+const String THEME_LIGHT = 'Light';
+const String THEME_DARK = 'Dark';
+
class ThemeProvider with ChangeNotifier {
ThemeProvider(this._userPreferences);
final UserPreferences _userPreferences;
-
- bool get darkTheme => _userPreferences.isThemeDark;
-
- Future setDarkTheme(bool value) async {
- if (darkTheme == value) {
- return;
+ String get currentTheme => _userPreferences.currentTheme;
+ ThemeMode get currentThemeMode {
+ if (_userPreferences.currentTheme == THEME_SYSTEM_DEFAULT) {
+ return ThemeMode.system;
+ } else if (_userPreferences.currentTheme == THEME_LIGHT) {
+ return ThemeMode.light;
+ } else {
+ return ThemeMode.dark;
}
- await _userPreferences.setThemeDark(value);
+ }
+
+ Future setTheme(String value) async {
+ await _userPreferences.setTheme(value);
notifyListeners();
}
@@ -27,7 +36,11 @@ class ThemeProvider with ChangeNotifier {
notifyListeners();
}
- MaterialColor get materialColor => darkTheme
+ bool isDarkMode(BuildContext context) {
+ return MediaQuery.platformBrightnessOf(context) == Brightness.dark;
+ }
+
+ MaterialColor materialColor(BuildContext context) => isDarkMode(context)
? Colors.grey
: SmoothTheme.MATERIAL_COLORS[colorTag] ??
SmoothTheme.MATERIAL_COLORS[SmoothTheme.COLOR_TAG_BLUE]!;
diff --git a/packages/smooth_app/lib/views/bottom_sheet_views/faq_handle_view.dart b/packages/smooth_app/lib/views/bottom_sheet_views/faq_handle_view.dart
new file mode 100644
index 00000000000..d698a6907cd
--- /dev/null
+++ b/packages/smooth_app/lib/views/bottom_sheet_views/faq_handle_view.dart
@@ -0,0 +1,54 @@
+import 'package:flutter/material.dart';
+import 'package:flutter_gen/gen_l10n/app_localizations.dart';
+import 'package:smooth_app/generic_lib/widgets/smooth_list_tile.dart';
+import 'package:smooth_app/helpers/launch_url_helper.dart';
+import 'package:smooth_app/widgets/modal_bottomsheet_header.dart';
+
+class FaqHandleView extends StatelessWidget {
+ @override
+ Widget build(BuildContext context) {
+ return Material(
+ child: SizedBox(
+ height: MediaQuery.of(context).size.height * 0.8,
+ child: ListView(
+ shrinkWrap: true,
+ scrollDirection: Axis.vertical,
+ children: [
+ ModalBottomSheetHeader(title: AppLocalizations.of(context)!.faq),
+ SmoothListTile(
+ text: AppLocalizations.of(context)!.faq,
+ leadingWidget: const Icon(Icons.open_in_new),
+ onPressed: () =>
+ _launchUrl(context, 'https://world.openfoodfacts.org/faq'),
+ ),
+ SmoothListTile(
+ text: AppLocalizations.of(context)!.discover,
+ leadingWidget: const Icon(Icons.open_in_new),
+ onPressed: () => _launchUrl(
+ context, 'https://world.openfoodfacts.org/discover'),
+ ),
+ SmoothListTile(
+ text: AppLocalizations.of(context)!.how_to_contribute,
+ leadingWidget: const Icon(Icons.open_in_new),
+ onPressed: () => _launchUrl(
+ context, 'https://world.openfoodfacts.org/contribute'),
+ ),
+ SmoothListTile(
+ text: AppLocalizations.of(context)!.support,
+ leadingWidget: const Icon(Icons.open_in_new),
+ onPressed: () =>
+ _launchUrl(context, 'https://support.openfoodfacts.org/help'),
+ ),
+ ],
+ ),
+ ),
+ );
+ }
+
+ Future _launchUrl(BuildContext context, String url) async {
+ await LaunchUrlHelper.launchURL(
+ url,
+ false,
+ );
+ }
+}
diff --git a/packages/smooth_app/lib/views/bottom_sheet_views/social_handle_view.dart b/packages/smooth_app/lib/views/bottom_sheet_views/social_handle_view.dart
new file mode 100644
index 00000000000..bb2921892fd
--- /dev/null
+++ b/packages/smooth_app/lib/views/bottom_sheet_views/social_handle_view.dart
@@ -0,0 +1,53 @@
+import 'package:flutter/material.dart';
+import 'package:flutter_gen/gen_l10n/app_localizations.dart';
+import 'package:smooth_app/generic_lib/widgets/smooth_list_tile.dart';
+import 'package:smooth_app/helpers/launch_url_helper.dart';
+import 'package:smooth_app/widgets/modal_bottomsheet_header.dart';
+
+class SocialHandleView extends StatelessWidget {
+ @override
+ Widget build(BuildContext context) {
+ return Material(
+ child: SizedBox(
+ height: MediaQuery.of(context).size.height * 0.8,
+ child: ListView(
+ shrinkWrap: true,
+ scrollDirection: Axis.vertical,
+ children: [
+ ModalBottomSheetHeader(
+ title: AppLocalizations.of(context)!.connect_with_us),
+ // Instagram
+ SmoothListTile(
+ text: AppLocalizations.of(context)!.instagram,
+ leadingWidget: const Icon(Icons.open_in_new),
+ onPressed: () => _launchUrl(
+ context, 'https://instagram.com/open.food.facts')),
+
+ //Twitter
+ SmoothListTile(
+ text: AppLocalizations.of(context)!.twitter,
+ leadingWidget: const Icon(Icons.open_in_new),
+ onPressed: () =>
+ _launchUrl(context, 'https://www.twitter.com/openfoodfacts'),
+ ),
+
+ //Blog
+ SmoothListTile(
+ text: AppLocalizations.of(context)!.blog,
+ leadingWidget: const Icon(Icons.open_in_new),
+ onPressed: () =>
+ _launchUrl(context, 'https://en.blog.openfoodfacts.org'),
+ ),
+ ],
+ ),
+ ),
+ );
+ }
+
+ Future _launchUrl(BuildContext context, String url) async {
+ await LaunchUrlHelper.launchURL(
+ url,
+ false,
+ );
+ }
+}
diff --git a/packages/smooth_app/lib/views/bottom_sheet_views/user_contribution_view.dart b/packages/smooth_app/lib/views/bottom_sheet_views/user_contribution_view.dart
index 5e76d364f80..536b38b0b56 100644
--- a/packages/smooth_app/lib/views/bottom_sheet_views/user_contribution_view.dart
+++ b/packages/smooth_app/lib/views/bottom_sheet_views/user_contribution_view.dart
@@ -7,6 +7,7 @@ import 'package:smooth_app/generic_lib/buttons/smooth_action_button.dart';
import 'package:smooth_app/generic_lib/dialogs/smooth_alert_dialog.dart';
import 'package:smooth_app/generic_lib/widgets/smooth_list_tile.dart';
import 'package:smooth_app/helpers/launch_url_helper.dart';
+import 'package:smooth_app/widgets/modal_bottomsheet_header.dart';
class UserContributionView extends StatelessWidget {
@override
@@ -18,17 +19,12 @@ class UserContributionView extends StatelessWidget {
shrinkWrap: true,
scrollDirection: Axis.vertical,
children: [
- Container(
- padding: const EdgeInsets.symmetric(horizontal: 20.0),
- margin: const EdgeInsets.only(top: 20.0, bottom: 24.0),
- child: Text(
- AppLocalizations.of(context)!.contribute,
- style: Theme.of(context).textTheme.headline1,
- ),
- ),
+ ModalBottomSheetHeader(
+ title: AppLocalizations.of(context)!.contribute),
SmoothListTile(
- text: AppLocalizations.of(context)!.contribute_improve_header,
- onPressed: () => _contribute(context)),
+ text: AppLocalizations.of(context)!.contribute_improve_header,
+ onPressed: () => _contribute(context),
+ ),
//Develop
SmoothListTile(
@@ -65,7 +61,7 @@ class UserContributionView extends StatelessWidget {
context: context,
builder: (BuildContext context) {
return SmoothAlertDialog(
- close: false,
+ close: true,
title: AppLocalizations.of(context)!.contribute_improve_header,
body: Column(
children: [
diff --git a/packages/smooth_app/lib/widgets/attribute_button.dart b/packages/smooth_app/lib/widgets/attribute_button.dart
index bcaa6f095c8..c74e2db2ca2 100644
--- a/packages/smooth_app/lib/widgets/attribute_button.dart
+++ b/packages/smooth_app/lib/widgets/attribute_button.dart
@@ -1,3 +1,4 @@
+import 'package:auto_size_text/auto_size_text.dart';
import 'package:flutter/material.dart';
import 'package:openfoodfacts/model/Attribute.dart';
import 'package:openfoodfacts/personalized_search/preference_importance.dart';
@@ -52,11 +53,12 @@ class AttributeButton extends StatelessWidget {
SizedBox(
width: screenWidth * .45,
child: ElevatedButton(
- child: Text(
+ child: AutoSizeText(
productPreferences
.getPreferenceImportanceFromImportanceId(importanceId)!
.name!,
style: style.copyWith(color: Colors.white),
+ maxLines: 1,
),
style: ElevatedButton.styleFrom(
primary: _colors[importanceId],
diff --git a/packages/smooth_app/lib/widgets/modal_bottomsheet_header.dart b/packages/smooth_app/lib/widgets/modal_bottomsheet_header.dart
new file mode 100644
index 00000000000..dc92720f11c
--- /dev/null
+++ b/packages/smooth_app/lib/widgets/modal_bottomsheet_header.dart
@@ -0,0 +1,21 @@
+import 'package:flutter/material.dart';
+
+class ModalBottomSheetHeader extends StatelessWidget {
+ const ModalBottomSheetHeader({
+ required this.title,
+ });
+
+ final String title;
+
+ @override
+ Widget build(BuildContext context) {
+ return Container(
+ padding: const EdgeInsets.symmetric(horizontal: 20.0),
+ margin: const EdgeInsets.only(top: 20.0, bottom: 24.0),
+ child: Text(
+ title,
+ style: Theme.of(context).textTheme.headline1,
+ ),
+ );
+ }
+}
diff --git a/packages/smooth_app/lib/widgets/smooth_product_carousel.dart b/packages/smooth_app/lib/widgets/smooth_product_carousel.dart
index 0b03d6ed957..db872b56f93 100644
--- a/packages/smooth_app/lib/widgets/smooth_product_carousel.dart
+++ b/packages/smooth_app/lib/widgets/smooth_product_carousel.dart
@@ -1,3 +1,4 @@
+import 'package:auto_size_text/auto_size_text.dart';
import 'package:carousel_slider/carousel_slider.dart';
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
@@ -106,12 +107,12 @@ class SearchCard extends StatelessWidget {
const SearchCard({required this.height});
final double height;
+
@override
Widget build(BuildContext context) {
final AppLocalizations localizations = AppLocalizations.of(context)!;
return SmoothCard(
color: Theme.of(context).colorScheme.background.withOpacity(0.85),
- margin: EdgeInsets.only(bottom: height * 0.05),
elevation: 0,
padding: const EdgeInsets.symmetric(horizontal: 20.0),
child: SizedBox(
@@ -120,13 +121,14 @@ class SearchCard extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
- Text(
+ AutoSizeText(
localizations.welcomeToOpenFoodFacts,
textAlign: TextAlign.center,
style: const TextStyle(
fontSize: 36.0,
fontWeight: FontWeight.bold,
),
+ maxLines: 2,
),
Text(
localizations.searchPanelHeader,
@@ -147,7 +149,7 @@ class SearchCard extends StatelessWidget {
Navigator.push(
context,
MaterialPageRoute(
- builder: (BuildContext context) => SearchPage(),
+ builder: (_) => SearchPage(),
),
);
}
diff --git a/packages/smooth_app/pubspec.lock b/packages/smooth_app/pubspec.lock
index 914458946dd..7721df3dda7 100644
--- a/packages/smooth_app/pubspec.lock
+++ b/packages/smooth_app/pubspec.lock
@@ -28,7 +28,7 @@ packages:
name: archive
url: "https://pub.dartlang.org"
source: hosted
- version: "3.2.2"
+ version: "3.2.1"
args:
dependency: transitive
description:
@@ -43,6 +43,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "2.8.2"
+ auto_size_text:
+ dependency: "direct main"
+ description:
+ name: auto_size_text
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "3.0.0"
boolean_selector:
dependency: transitive
description:
@@ -141,13 +148,6 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.1"
- crop_your_image:
- dependency: "direct main"
- description:
- name: crop_your_image
- url: "https://pub.dartlang.org"
- source: hosted
- version: "0.7.2"
cross_file:
dependency: transitive
description:
@@ -262,7 +262,7 @@ packages:
name: flutter_native_splash
url: "https://pub.dartlang.org"
source: hosted
- version: "2.1.1"
+ version: "2.1.2+1"
flutter_plugin_android_lifecycle:
dependency: transitive
description:
@@ -379,7 +379,7 @@ packages:
name: hive
url: "https://pub.dartlang.org"
source: hosted
- version: "2.1.0"
+ version: "2.0.6"
hive_flutter:
dependency: "direct main"
description:
@@ -415,6 +415,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "3.1.3"
+ image_cropper:
+ dependency: "direct main"
+ description:
+ name: image_cropper
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.5.0"
image_picker:
dependency: "direct main"
description:
@@ -1063,7 +1070,7 @@ packages:
name: win32
url: "https://pub.dartlang.org"
source: hosted
- version: "2.4.2"
+ version: "2.4.1"
wkt_parser:
dependency: transitive
description:
diff --git a/packages/smooth_app/pubspec.yaml b/packages/smooth_app/pubspec.yaml
index 8e122c6de47..1d0a961253b 100644
--- a/packages/smooth_app/pubspec.yaml
+++ b/packages/smooth_app/pubspec.yaml
@@ -29,8 +29,8 @@ dependencies:
matomo_forever: ^1.0.0+1
modal_bottom_sheet: ^2.0.1
openfoodfacts: ^1.14.0
-# openfoodfacts:
-# path: ../../../openfoodfacts-dart
+ # openfoodfacts:
+ # path: ../../../openfoodfacts-dart
package_info_plus: ^1.4.0
permission_handler: ^9.2.0
photo_view: ^0.13.0
@@ -43,7 +43,6 @@ dependencies:
visibility_detector: ^0.2.2
camera: ^0.9.4+16
percent_indicator: ^4.0.0
- crop_your_image: ^0.7.2
mailto: ^2.0.0
flutter_native_splash: ^2.1.1
# Fork from cli1005 with iOS fix cf: https://github.com/openfoodfacts/smooth-app/issues/1155
@@ -51,9 +50,9 @@ dependencies:
git:
url: https://github.com/cli1005/google_ml_barcode_scanner.git
ref: master
+ image_cropper: ^1.5.0
+ auto_size_text: ^3.0.0
-
-
dev_dependencies:
flutter_launcher_icons: ^0.9.2
flutter_test:
diff --git a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-blue-dark_isolatedDiff.png b/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-blue-dark_isolatedDiff.png
deleted file mode 100644
index 3e0bad9f3ed..00000000000
Binary files a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-blue-dark_isolatedDiff.png and /dev/null differ
diff --git a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-blue-dark_maskedDiff.png b/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-blue-dark_maskedDiff.png
deleted file mode 100644
index 672d9427c54..00000000000
Binary files a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-blue-dark_maskedDiff.png and /dev/null differ
diff --git a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-blue-dark_masterImage.png b/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-blue-dark_masterImage.png
deleted file mode 100644
index 755acf5d347..00000000000
Binary files a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-blue-dark_masterImage.png and /dev/null differ
diff --git a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-blue-dark_testImage.png b/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-blue-dark_testImage.png
deleted file mode 100644
index f39dc9fe6c6..00000000000
Binary files a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-blue-dark_testImage.png and /dev/null differ
diff --git a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-blue-light_isolatedDiff.png b/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-blue-light_isolatedDiff.png
deleted file mode 100644
index 6c501509808..00000000000
Binary files a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-blue-light_isolatedDiff.png and /dev/null differ
diff --git a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-blue-light_maskedDiff.png b/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-blue-light_maskedDiff.png
deleted file mode 100644
index 692e7ced61e..00000000000
Binary files a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-blue-light_maskedDiff.png and /dev/null differ
diff --git a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-blue-light_masterImage.png b/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-blue-light_masterImage.png
deleted file mode 100644
index f4453c86140..00000000000
Binary files a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-blue-light_masterImage.png and /dev/null differ
diff --git a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-blue-light_testImage.png b/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-blue-light_testImage.png
deleted file mode 100644
index 748f22af9fd..00000000000
Binary files a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-blue-light_testImage.png and /dev/null differ
diff --git a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-brown-dark_isolatedDiff.png b/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-brown-dark_isolatedDiff.png
deleted file mode 100644
index 3e0bad9f3ed..00000000000
Binary files a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-brown-dark_isolatedDiff.png and /dev/null differ
diff --git a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-brown-dark_maskedDiff.png b/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-brown-dark_maskedDiff.png
deleted file mode 100644
index 672d9427c54..00000000000
Binary files a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-brown-dark_maskedDiff.png and /dev/null differ
diff --git a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-brown-dark_masterImage.png b/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-brown-dark_masterImage.png
deleted file mode 100644
index 755acf5d347..00000000000
Binary files a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-brown-dark_masterImage.png and /dev/null differ
diff --git a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-brown-dark_testImage.png b/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-brown-dark_testImage.png
deleted file mode 100644
index f39dc9fe6c6..00000000000
Binary files a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-brown-dark_testImage.png and /dev/null differ
diff --git a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-brown-light_isolatedDiff.png b/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-brown-light_isolatedDiff.png
deleted file mode 100644
index e04a2b2a9e7..00000000000
Binary files a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-brown-light_isolatedDiff.png and /dev/null differ
diff --git a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-brown-light_maskedDiff.png b/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-brown-light_maskedDiff.png
deleted file mode 100644
index 759fe78a5e1..00000000000
Binary files a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-brown-light_maskedDiff.png and /dev/null differ
diff --git a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-brown-light_masterImage.png b/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-brown-light_masterImage.png
deleted file mode 100644
index b704b373afe..00000000000
Binary files a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-brown-light_masterImage.png and /dev/null differ
diff --git a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-brown-light_testImage.png b/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-brown-light_testImage.png
deleted file mode 100644
index 204fdb0cb97..00000000000
Binary files a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-brown-light_testImage.png and /dev/null differ
diff --git a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-green-dark_isolatedDiff.png b/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-green-dark_isolatedDiff.png
deleted file mode 100644
index 3e0bad9f3ed..00000000000
Binary files a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-green-dark_isolatedDiff.png and /dev/null differ
diff --git a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-green-dark_maskedDiff.png b/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-green-dark_maskedDiff.png
deleted file mode 100644
index 672d9427c54..00000000000
Binary files a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-green-dark_maskedDiff.png and /dev/null differ
diff --git a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-green-dark_masterImage.png b/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-green-dark_masterImage.png
deleted file mode 100644
index 755acf5d347..00000000000
Binary files a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-green-dark_masterImage.png and /dev/null differ
diff --git a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-green-dark_testImage.png b/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-green-dark_testImage.png
deleted file mode 100644
index f39dc9fe6c6..00000000000
Binary files a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-green-dark_testImage.png and /dev/null differ
diff --git a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-green-light_isolatedDiff.png b/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-green-light_isolatedDiff.png
deleted file mode 100644
index 38cdcf40be8..00000000000
Binary files a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-green-light_isolatedDiff.png and /dev/null differ
diff --git a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-green-light_maskedDiff.png b/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-green-light_maskedDiff.png
deleted file mode 100644
index ca6c79174ed..00000000000
Binary files a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-green-light_maskedDiff.png and /dev/null differ
diff --git a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-green-light_masterImage.png b/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-green-light_masterImage.png
deleted file mode 100644
index 3aa903d83b1..00000000000
Binary files a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-green-light_masterImage.png and /dev/null differ
diff --git a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-green-light_testImage.png b/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-green-light_testImage.png
deleted file mode 100644
index 4d08aef80db..00000000000
Binary files a/packages/smooth_app/test/pages/failures/goldens/user_preferences_page-green-light_testImage.png and /dev/null differ
diff --git a/packages/smooth_app/test/pages/goldens/user_preferences_page-blue-dark.png b/packages/smooth_app/test/pages/goldens/user_preferences_page-blue-dark.png
index 69692b55469..83e045c356e 100644
Binary files a/packages/smooth_app/test/pages/goldens/user_preferences_page-blue-dark.png and b/packages/smooth_app/test/pages/goldens/user_preferences_page-blue-dark.png differ
diff --git a/packages/smooth_app/test/pages/goldens/user_preferences_page-blue-light.png b/packages/smooth_app/test/pages/goldens/user_preferences_page-blue-light.png
index 68161bc08b2..c254af1367c 100644
Binary files a/packages/smooth_app/test/pages/goldens/user_preferences_page-blue-light.png and b/packages/smooth_app/test/pages/goldens/user_preferences_page-blue-light.png differ
diff --git a/packages/smooth_app/test/pages/goldens/user_preferences_page-brown-dark.png b/packages/smooth_app/test/pages/goldens/user_preferences_page-brown-dark.png
index 69692b55469..83e045c356e 100644
Binary files a/packages/smooth_app/test/pages/goldens/user_preferences_page-brown-dark.png and b/packages/smooth_app/test/pages/goldens/user_preferences_page-brown-dark.png differ
diff --git a/packages/smooth_app/test/pages/goldens/user_preferences_page-brown-light.png b/packages/smooth_app/test/pages/goldens/user_preferences_page-brown-light.png
index 2cb02c38b99..ed1e87a7631 100644
Binary files a/packages/smooth_app/test/pages/goldens/user_preferences_page-brown-light.png and b/packages/smooth_app/test/pages/goldens/user_preferences_page-brown-light.png differ
diff --git a/packages/smooth_app/test/pages/goldens/user_preferences_page-green-dark.png b/packages/smooth_app/test/pages/goldens/user_preferences_page-green-dark.png
index 69692b55469..83e045c356e 100644
Binary files a/packages/smooth_app/test/pages/goldens/user_preferences_page-green-dark.png and b/packages/smooth_app/test/pages/goldens/user_preferences_page-green-dark.png differ
diff --git a/packages/smooth_app/test/pages/goldens/user_preferences_page-green-light.png b/packages/smooth_app/test/pages/goldens/user_preferences_page-green-light.png
index 0bc940b6dd6..1ac8bff9f19 100644
Binary files a/packages/smooth_app/test/pages/goldens/user_preferences_page-green-light.png and b/packages/smooth_app/test/pages/goldens/user_preferences_page-green-light.png differ
diff --git a/packages/smooth_app/test/utils/mocks.dart b/packages/smooth_app/test/utils/mocks.dart
index 8a941214df8..b059ec82e32 100644
--- a/packages/smooth_app/test/utils/mocks.dart
+++ b/packages/smooth_app/test/utils/mocks.dart
@@ -46,7 +46,7 @@ class MockSmoothApp extends StatelessWidget {
Brightness.dark,
themeProvider.colorTag,
),
- themeMode: themeProvider.darkTheme ? ThemeMode.dark : ThemeMode.light,
+ themeMode: themeProvider.currentThemeMode,
home: child,
));
}
@@ -61,7 +61,7 @@ Map mockSharedPreferences({
// Configured by test
'init': init,
'themeColorTag': colorTag,
- 'themeDark': themeDark,
+ 'currentThemeMode': themeDark ? 'Dark' : 'Light',
// Very important by default
'IMPORTANCE_AS_STRINGnutriscore': 'very_important',