feat(app): Noto Sans and Noto Sans JP, bundled, the same on every device

The app brought no fonts: text took each device's own, a minimal Linux
showed Japanese as boxes, and kanji could take Chinese shapes. Now Noto
Sans is the app's font everywhere (Latin, Greek with polytonic,
Cyrillic), and Noto Sans JP fills in kana and kanji in their Japanese
shapes. Noto Sans JP alone wouldn't do: it lacks accented and polytonic
Greek. Both come with the app and are never fetched; scripts neither
covers fall back to the device's own fonts.

Each family is one variable font holding every weight (Flutter sets the
weight axis from the requested weight; a test checks bold inks more):
0.7 MB Noto Sans, 0.7 MB its italic, 8.1 MB Noto Sans JP, from Noto's own
GitHub releases (assets/fonts/ATTRIBUTION.md). Their SIL Open Font
License texts join the app's licence list.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MMm7usAo6q9ZZRoPkWjoxi
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-10-08 23:02:08 +02:00
commit 4345741646
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -147,26 +147,22 @@ flutter:
- assets/icon/halkyon_icon.png
# Region maps for map questions (see assets/maps/ATTRIBUTION.md).
- assets/maps/japan_prefectures.geojson
# The bundled fonts' licences, for the licence list (see assets/fonts/ATTRIBUTION.md).
- assets/fonts/OFL-NotoSans.txt
- assets/fonts/OFL-NotoSansJP.txt
# To add custom fonts to your application, add a fonts section here,
# in this "flutter" section. Each entry in this list should have a
# "family" key with the font family name, and a "fonts" key with a
# list giving the asset and other descriptors for the font. For
# example:
# fonts:
# - family: Schyler
# fonts:
# - asset: fonts/Schyler-Regular.ttf
# - asset: fonts/Schyler-Italic.ttf
# style: italic
# - family: Trajan Pro
# fonts:
# - asset: fonts/TrajanPro.ttf
# - asset: fonts/TrajanPro_Bold.ttf
# weight: 700
#
# For details regarding fonts from package dependencies,
# see https://flutter.dev/custom-fonts/#from-packages
# The app's own fonts, the same on every device and never fetched: Noto Sans for
# Latin, Greek and Cyrillic, Noto Sans JP behind it for kana and kanji
# (core/theme/app_fonts.dart). Each file holds every weight (variable fonts).
fonts:
- family: Noto Sans
fonts:
- asset: assets/fonts/NotoSans-Variable.ttf
- asset: assets/fonts/NotoSans-Italic-Variable.ttf
style: italic
- family: Noto Sans JP
fonts:
- asset: assets/fonts/NotoSansJP-Variable.otf
# The app's icons, written by tool/app_icons.py: it prepares the images derived from
# the kingfisher in build/icons/ first, then runs `dart run flutter_launcher_icons`