diff --git a/README.md b/README.md index d6ff839..656afd5 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,21 @@ # Conduit +
+ @@ -13,12 +23,43 @@
-
-
+
-
-
-
-
-
-
|
|
|
|
## Requirements
@@ -110,67 +148,20 @@ The app will request permissions for:
## Localization (i18n)
-- Supported locales: `en`, `de`, `fr`, `it`.
-- Uses Flutter's `gen_l10n` with ARB files and the `intl` package for date/number formatting.
+See the dedicated documentation: [docs/localization.md](docs/localization.md)
-### Install & Generate
+## Compatibility
-- Install packages:
- - `flutter_localizations` (Flutter SDK)
- - `intl: ^0.20.2`
-- Files are under `lib/l10n/*.arb`. The template is `app_en.arb`.
-- Generate localizations:
- - `flutter gen-l10n`
- - or run a full build: `flutter pub get && flutter gen-l10n`
+| Conduit App | Open‑WebUI | Notes |
+| --- | --- | --- |
+| 1.x | 0.3.x+ | Uses OpenAPI schema at `assets/openapi.json` |
-### Usage Examples
+## Docs
-- Basic text:
- - `Text(AppLocalizations.of(context)!.appTitle)`
-- With placeholder:
- - `Text(AppLocalizations.of(context)!.dynamicContentWithPlaceholder('Alex'))`
-- Pluralization:
- - `Text(AppLocalizations.of(context)!.itemsCount(3))`
-- Date/time formatting:
- - `final dateText = DateFormat.yMMMMEEEEd(Localizations.localeOf(context).toString()).format(DateTime.now());`
- - `Text(dateText)`
-- Number formatting:
- - `final price = NumberFormat.currency(locale: Localizations.localeOf(context).toString(), symbol: '€').format(1234.56);`
- - `Text(price)`
-
-### Add a New Language
-
-- Create a new ARB file in `lib/l10n/`, e.g. `app_es.arb`.
-- Copy keys from `app_en.arb` and provide translated values.
-- Ensure placeholders and plural rules match the template.
-- Add the locale to `supportedLocales` in `MaterialApp` (see `lib/main.dart`).
-- Regenerate: `flutter gen-l10n`.
-
-### Best Practices
-
-- Key naming: use lowerCamelCase (e.g., `loginButton`, `errorMessage`).
-- Include `@` metadata with `description` for context and `placeholders` with examples.
-- Prefer ICU plural/select syntax in ARB for quantities and genders.
-- Avoid concatenating strings at runtime; use placeholders in ARB.
-
-### In‑App Locale Switching
-
-- Open the Profile page → Settings tile → choose `System`, `English`, `Deutsch`, `Français`, or `Italiano`.
-- Selection persists across app launches.
-
-### Troubleshooting
-
-- Build fails with ARB placeholder errors:
- - Ensure every placeholder has an example string and correct type.
-- Missing translation at runtime:
- - Flutter falls back to English; search for hard‑coded strings and replace with `AppLocalizations`.
-- iOS strings not changing:
- - Restart the app after changing system language or use the in‑app language selector.
-
-### References
-
-- Flutter localization: https://docs.flutter.dev/ui/accessibility-and-localization/internationalization
-- Intl package: https://pub.dev/packages/intl
+- Localization: `docs/localization.md`
+- Architecture (planned): `docs/architecture.md`
+- Theming (planned): `docs/theming.md`
+- Release Process (planned): `docs/release.md`
## Architecture
@@ -203,12 +194,32 @@ lib/
Contributions are welcome! Please feel free to submit a Pull Request.
+Developer workflow:
+
+```bash
+flutter analyze
+flutter pub run build_runner build --delete-conflicting-outputs
+# flutter test # add when tests are available
+```
+
1. Fork the project
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request
+## Troubleshooting
+
+- iOS: ensure recent Xcode, run `cd ios && pod install`, set signing team in Xcode if building on device.
+- Android: minSdk 23+, ensure correct Java and Gradle; if builds fail, try `flutter clean`.
+- Codegen conflicts: `flutter pub run build_runner build --delete-conflicting-outputs`.
+
+## Security & Privacy
+
+- Credentials are stored using platform secure storage (Keychain/Keystore).
+- No analytics or telemetry are collected.
+- Network calls are only made to your configured Open‑WebUI server.
+
## License
This project is licensed under the GPL3 License - see the LICENSE file for details.
diff --git a/docs/localization.md b/docs/localization.md
new file mode 100644
index 0000000..2107a74
--- /dev/null
+++ b/docs/localization.md
@@ -0,0 +1,65 @@
+## Localization (i18n)
+
+- Supported locales: `en`, `de`, `fr`, `it`.
+- Uses Flutter's `gen_l10n` with ARB files and the `intl` package for date/number formatting.
+
+### Install & Generate
+
+- Install packages:
+ - `flutter_localizations` (Flutter SDK)
+ - `intl: ^0.20.2`
+- Files are under `lib/l10n/*.arb`. The template is `app_en.arb`.
+- Generate localizations:
+ - `flutter gen-l10n`
+ - or run a full build: `flutter pub get && flutter gen-l10n`
+
+### Usage Examples
+
+- Basic text:
+ - `Text(AppLocalizations.of(context)!.appTitle)`
+- With placeholder:
+ - `Text(AppLocalizations.of(context)!.dynamicContentWithPlaceholder('Alex'))`
+- Pluralization:
+ - `Text(AppLocalizations.of(context)!.itemsCount(3))`
+- Date/time formatting:
+ - `final dateText = DateFormat.yMMMMEEEEd(Localizations.localeOf(context).toString()).format(DateTime.now());`
+ - `Text(dateText)`
+- Number formatting:
+ - `final price = NumberFormat.currency(locale: Localizations.localeOf(context).toString(), symbol: '€').format(1234.56);`
+ - `Text(price)`
+
+### Add a New Language
+
+- Create a new ARB file in `lib/l10n/`, e.g. `app_es.arb`.
+- Copy keys from `app_en.arb` and provide translated values.
+- Ensure placeholders and plural rules match the template.
+- Add the locale to `supportedLocales` in `MaterialApp` (see `lib/main.dart`).
+- Regenerate: `flutter gen-l10n`.
+
+### Best Practices
+
+- Key naming: use lowerCamelCase (e.g., `loginButton`, `errorMessage`).
+- Include `@` metadata with `description` for context and `placeholders` with examples.
+- Prefer ICU plural/select syntax for quantities and genders.
+- Avoid concatenating strings at runtime; use placeholders in ARB.
+
+### In‑App Locale Switching
+
+- Open the Profile page → Settings tile → choose `System`, `English`, `Deutsch`, `Français`, or `Italiano`.
+- Selection persists across app launches.
+
+### Troubleshooting
+
+- Build fails with ARB placeholder errors:
+ - Ensure every placeholder has an example string and correct type.
+- Missing translation at runtime:
+ - Flutter falls back to English; search for hard‑coded strings and replace with `AppLocalizations`.
+- iOS strings not changing:
+ - Restart the app after changing system language or use the in‑app language selector.
+
+### References
+
+- Flutter localization: https://docs.flutter.dev/ui/accessibility-and-localization/internationalization
+- Intl package: https://pub.dev/packages/intl
+
+
diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png
index 1f7e857..0dbf0b7 100644
Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png differ
diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png
index 5331fe3..ee8af58 100644
Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png differ
diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png
index b2b11fd..68f1afe 100644
Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png differ
diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png
index 5d43ada..60944bc 100644
Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png differ
diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png
index 7f5390d..4401e5e 100644
Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png differ
diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/6.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/6.png
deleted file mode 100644
index fa4b509..0000000
Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/6.png and /dev/null differ
diff --git a/fastlane/metadata/android/en-US/videos/conduit-demo.mp4 b/fastlane/metadata/android/en-US/videos/conduit-demo.mp4
new file mode 100644
index 0000000..de09b88
Binary files /dev/null and b/fastlane/metadata/android/en-US/videos/conduit-demo.mp4 differ