Force dynamic content to English + rename app to Akiora#2
Merged
Conversation
Force English (dynamic content): - Add TranslationService: on-device machine translation (keyless endpoint) with in-memory + Hive-persistent caching, proxy-aware Dio, graceful fallback - Add TranslatedText widget that translates at display time (data untouched) - Translate anime titles in popular/search/collect grids, info page, history, and timeline cards; translate the info-page summary - Add 'Force English' toggle in Interface settings (default on) - Underlying nameCn/name kept intact so plugin search & storage still work Rename app to Akiora (display name only): - Dart: window/app title, app bar, exit dialog, tray tooltip/menu, X11 and shortcut prompts, audio notification channel, plugin version message - Native: Android label, iOS/macOS display name, Windows window title + resource metadata, Linux .desktop Name, web title/manifest - Kept functional identifiers unchanged: Kazumi package name, KazumiLogger/ KazumiDialog classes, update asset prefix (matches upstream releases), Linux tray icon id, bundle/application ids
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request was created by @kiro-agent on behalf of @Deadendev 👻
Comment with /kiro fix to address specific feedback or /kiro all to address everything.
Learn about Kiro autonomous agent
Summary
Two requested changes:
1. Force English
Bangumi provides only
name(original, usually Japanese) andname_cn(Chinese) — there is no English field. So the app now translates at display time:TranslationService(lib/services/translation/translation_service.dart): translates non-Latin text to English using a keyless translation endpoint, with an in-memory + Hive-persistent cache (each unique string translated once), request de-duplication, a dedicated proxy-aware Dio client, and graceful fallback to the original text on any failure.TranslatedTextwidget (lib/bean/widget/translated_text.dart): a drop-inTextreplacement that shows the original immediately, then swaps in the cached English translation. The underlying data model is never mutated.BangumiContent), the info page title, watch-history cards, timeline cards, and the info-page summary.forceEnglishTranslation).Why display-time translation:
name_cnis also used as the plugin search keyword and as storage identifiers/folder names. Translating the data would break plugin search and downloads, so only the displayed text is translated.2. Rename to Akiora
Changed user-visible names to Akiora:
android:label, iOSCFBundleDisplayName, macOSCFBundleDisplayName, Windows window title (+FindWindowsingle-instance match kept consistent) andRunner.rcProductName/FileDescription, Linux.desktopName=, web<title>/manifest.Intentionally kept unchanged (renaming would break things):
kazumiand allpackage:kazumi/...imports;KazumiLogger/KazumiDialog/KazumiCaptchaidentifiers.Kazumi-$version(must match the upstream GitHub release asset names).io.github.Predidit.Kazumi, bundle/application ids, executable/binary names.Testing / Limitations
flutter analyze/build was not run — please run them before merging.CFBundleDisplayNamewhile keepingPRODUCT_NAME(bundle/output name) stable.