blob: 1efd25a3c7298cd78f1922b24193419ad6c18d86 [file] [log] [blame] [view] [edit]
# Future work
## Localization
For information about the future work related to localization, see
[Future work](./localization/future_work.md).
## Internationalization preferences
- Migrate `fuchsia.intl.PropertyProvider` change watcher API to a
[hanging get](/docs/concepts/api/fidl.md#hanging-get) design and migrate all
existing clients.
- Instead of having a single `fuchsia.intl.PropertyProvider` implemented by
`intl_services`, demonstrate best practices for embedding custom
`PropertyProvider`s in [Session](/docs/concepts/session/introduction.md)
implementations, ideally with multi-user use cases.
- Wire up Dart's `Platform.localeName` (blocked by Dart SDK
[#37586](https://github.com/dart-lang/sdk/issues/37586)).
- Wire up and verify Chromium's
[`navigator.language` and `navigator.languages`][navigator-languages].
## Internationalization UI
- For the workstation product, design and implement an i18n settings UI.
## Fonts
- Complete support for ephemeral fonts, i.e. loading fonts as ephemeral
packages that are temporarily cached. This requires production support for
ephemeral packages in Fuchsia.
- Configure a set of ephemeral fonts to cover all common scripts supported
by Unicode. (On target devices with lots of storage space, these don't
necessarily need to be ephemeral.)
- Add support for font subsetting by allowing single typefaces to be split
across multiple files, with metadata mapping code point ranges to files. For
large fonts, this would improve loading performance.
- Make font service multi-threaded to better handle workloads where a single
component is displaying text in many fonts at once, or when multiple
components are being displayed side by side.
- Use ICU4X to implement real language and script ID matching in font service.
- Implement support for async local font loading in Flutter.
- Implement support for async local font loading in Chromium.
- For workstation product, design and implement a font management UI for
reviewing and testing out fonts available in a given build.
## Time zones
- Finish removing `fuchsia.deprecatedtimezone.Timezone`.
- Implement a FIDL service that provides a listing of time zone IDs and
localized display names. This will initially be used in the workstation
product's settings UI.
## Input methods
- Design and implement APIs for switching keyboard layouts.
- For workstation product, design and implement UI for switching keyboard
layouts.
<!--xrefs-->
[navigator-languages]: https://developer.mozilla.org/en-US/docs/Web/API/NavigatorLanguage/languages