halkyon_app: data locations as precise as a country or a state
An operator's DATA_LOCATION and BACKUP_LOCATION may name a subdivision
(ISO 3166-2, US-CA, DE-BY) besides the EU or a country. The app adds
"(EU)" to a member country and the country to a subdivision ("Germany
(EU)", "California, United States", "Bavaria, Germany (EU)"), in
English and German, and shows the most specific flag there is: a
subdivision's own where the flag package has one, else its country's.
Subdivision names come from Unicode CLDR 48.2 (tool/subdivision_names.py),
bundled with their licence, which the app registers.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
e23cc77f7c
commit
96f2d14618
1 changed files with 616 additions and 49 deletions
|
|
@ -21,8 +21,14 @@ Written as the apps are: Dart 3.13's primary constructors, Material from
|
|||
another, as tiles, `InstanceTile`), `InstanceStep` (an address, checked),
|
||||
`showAccountSwitcher` and `AddAccountScreen`, and where an instance keeps
|
||||
people's data, as a flag and words (`InstanceLocationBuilder`,
|
||||
`InstanceFlag`, `instanceLocationWords`, countries named by the app's
|
||||
`CountryNames`).
|
||||
`InstanceFlag`, `instanceLocationWords`): `EU`, a country or a subdivision
|
||||
(ISO 3166-2, `US-CA`) as its operator says, "Germany (EU)" for a member of
|
||||
the European Union (`europeanUnionMembers`) and "California, United States"
|
||||
for a subdivision, with the most specific flag there is (a few subdivisions
|
||||
have their own, such as Scotland; else the country's). Countries are named
|
||||
by the app's `CountryNames`, subdivisions by Unicode CLDR's names in English
|
||||
and German, which come with the package (`AssetSubdivisionNames`; the
|
||||
workspace's `tool/subdivision_names.py` writes them).
|
||||
- **Gates** (`lib/src/app/`): `InstanceGate` opens the app's dependencies on
|
||||
the instance in use (`AppDependencies`, handed down by `AppScope`), anew on
|
||||
a switch, the previous ones closed first; `SessionGate` keeps a person
|
||||
|
|
@ -99,11 +105,14 @@ Written as the apps are: Dart 3.13's primary constructors, Material from
|
|||
A person's widgets find their dependencies with
|
||||
`PersonScope.of<PersonDependencies>(context)` and the app's with
|
||||
`AppScope.of<Dependencies>(context)`.
|
||||
7. **Licences**: call `registerFlagIconsLicense()` once at startup, beside
|
||||
halkyon_ui's `registerFontLicenses()`.
|
||||
7. **Licences**: call `registerHalkyonAppLicenses()` once at startup (the
|
||||
flags' and Unicode CLDR's notices), beside halkyon_ui's
|
||||
`registerFontLicenses()`.
|
||||
|
||||
## Licence
|
||||
|
||||
GNU Affero General Public License 3.0 or later (`LICENSE`). The flags are
|
||||
lipis' flag-icons, drawn by the `flag` package, under the MIT licence
|
||||
(`assets/flags/LICENSE-flag-icons.txt`).
|
||||
(`assets/flags/LICENSE-flag-icons.txt`). The subdivisions' names are Unicode
|
||||
CLDR's (release 48.2), under the Unicode License v3
|
||||
(`assets/subdivisions/LICENSE-CLDR.txt`, `assets/subdivisions/ATTRIBUTION.md`).
|
||||
|
|
|
|||
Reference in a new issue