Skip to content

Locale-related codes/identifiers and any standards-based information concerning them

License

Notifications You must be signed in to change notification settings

johnstonskj/locale-codes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Crate locale-codes

mit License Minimum Rust Version crates.io docs.rs Build Audit GitHub stars

This crate provides locale-related codes/identifiers and any standards-based information concerning them. For example, ISO-639 language identifiers, or ISO-3166 country identifiers.

Example

use locale_codes::{country, currency, region};

let mexico = country::lookup_country("MEX").unwrap();
println!("{:?}", mexico);

let mexico_region = country::lookup_region(mexico.country_code).unwrap();
println!("{:?}", mexico_region);

let currencies = currency::currencies_for_country_name(mexico_region.name.as_str());
println!("{:?}", currencies);

Pre-Build Process

The following describe two code generation steps that are executed outside the normal build process as the output is stored in Git and versioned based on external factors.

JSON Data Files

The script create-data-modules on the other hand is used to process files downloaded, or scraped, from standards web sites to create data used by the library. This data is generated as JSON files in the src/codes/data folder and read as a part of the build for codes modules using the Rust include! macro.

Currently data is generated for the following standards:

  • ISO 639 Codes for the representation of names of languages; Parts 1-4, 2-character and 3-character codes supported.
  • ISO 3166 Codes for the representation of names of countries and their subdivisions; Both 2- and 3-character codes are supported.
  • ISO 4217 Codes for the representation of currencies; alphabetic and numeric codes supported.
  • ISO 15924 Codes for the representation of names of scripts; alphabetic and numeric codes supported.

History

  • 0.3.0 - collapsed module hierarchy.
  • 0.2.0 - extracted from simple-locale.

TODO

  • Determine naming convention between the names in the codes and settings crates.
    • Expect that the names in code modules will be changed to reflect those in the settings.

About

Locale-related codes/identifiers and any standards-based information concerning them

Resources

License

Stars

Watchers

Forks

Packages

No packages published