fune/third_party/rust/sys-locale/README.md
Alex Franchuk ac995d8c0d Bug 1873210 - Support langpacks in the crashreporter client a=RyanVM
This passes the profile directory as a crash annotation (which is not
sent in the crash report). The profile directory is already indirectly
passed to the crash reporter through
`MOZ_CRASHREPORTER_EVENTS_DIRECTORY`, however I don't think that's
something to rely upon.

The pref parsing and langpack extension search are done on a best-effort
basis; there may be some odd configurations for which it does not
account. However, it should cover the vast majority of cases. While we
don't want to underserve niche populations that may have an odd
configuration, we do always have fallback behaviors that are likely
still reasonable for most (like using the installation locale). We also
first try the `useragent_locale` annotation before getting locales from
the prefs.

This only looks in the profile and the installation for langpack
extensions. There are a few other system-wide locations that Firefox
looks in. However, the assumptions are:
1) overwhelmingly users install langpacks using the UI rather than
   manually downloading the file, and
2) if installed with a package manager (mostly applicable to linux),
   langpacks are put in the installation. This is the case for the few
   major linux distros I checked.

If we think this is not enough, I can also add the system-wide
directories.

Original Revision: https://phabricator.services.mozilla.com/D222356

Differential Revision: https://phabricator.services.mozilla.com/D234210
2025-01-15 02:58:47 +00:00

1.9 KiB

sys-locale

crates.io version crate documentation MSRV crates.io downloads CI

A small and lightweight Rust library to get the current active locale on the system.

sys-locale is small library to get the current locale set for the system or application with the relevant platform APIs. The library is also no_std compatible, relying only on alloc, except on Linux and BSD.

Platform support currently includes:

  • Android
  • iOS
  • macOS
  • Linux, BSD, and other UNIX variations
  • WebAssembly, for the following platforms:
    • Inside of a web browser (via the js feature)
    • Emscripten (via the UNIX backend) Further support for other WASM targets is dependent on upstream support in those target's runtimes and specifications.
  • Windows
use sys_locale::get_locale;

let locale = get_locale().unwrap_or_else(|| String::from("en-US"));

println!("The current locale is {}", locale);

MSRV

The Minimum Supported Rust Version is currently 1.48.0. This will be bumped to the latest stable version of Rust when needed.

Credits

Made with ❤️ by the 1Password team.

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.