Boorusphere was supposed to be a simple booru viewer, but due to lack of interest, especially in flutter, it was shut down on July 19, 2024. It remains here for history's sake, although it serves no inherent purpose.
Simple, content-focused booru viewer for Android
Simple and intuitive UI
Support various booru-based imageboards
Support playing videos and animated images (GIF, WEBM)
Save favorites content
Search with tag suggestion
Download images and videos
Block tags from search result
Backup and restore data
and many more ...
Install Flutter SDK, visit flutter.dev for more information.
Fetch latest source code
git clone https://github.com/nullxception/boorusphere.gitcd boorusphere
Sync dependencies
flutter pub get
Run code generator
dart run build_runner build --delete-conflicting-outputs
Generate translation
dart run slang
Run the app with your favorite IDE/PDE. or from shell:
flutter run
Run build_runner after editing some areas that needs a code generator such as entities and routing.
Run slang after editing translation files (*.i18n.json).
build_runner and slang has some features that will be helpful during development such as auto-rebuild and translation analysis, so it's highly recommended to check the documentations and familiarize yourself with it.
Run slang analyzer to check for missing translations
dart run slang analyze --outdir=i18n
Open i18n/_missing_translations.json and then translate your language of choice.
After editing the file, you can apply it to the actual json translation file by running:
dart run slang apply --outdir=i18n dart run slang analyze --outdir=i18n # update analyzation result files
You can leave untranslated strings on i18n/_missing_translations.json.
It's perfectly fine and recommended to leave it unchanged rather than adding it on the actual translation json but leaving it untranslated.
You can copy i18n/strings_en.i18n.json to i18n/strings_
.
At this point, feel free to pull request your new language here and we'll take care of adapting to the app code.
Or if you want to build and test yourself, then:
Run slang to generate the strings.g.dart
dart run slang
Run slang analyzer to check for missing translations
dart run slang analyze --outdir=i18n
Build and run the app as usual