Part of making the Localize
trait dyn-compatible, also allows a default implementation so generic formatters (such as numbers and strings) don't have to explicitly set their own canonical locale.
5I5NR4DQA6SGUUJXCDBGATRVT2US6HMCCRFJB2YF2YG7ZZKSZHKQC
RUFPE6OOIM52WE3EQWYPQQ2DTHGYLNRO6EN3I5UETJW6MDW5AG7AC
QM64L3XOUB74M2D7TXDJWXGJNQN46IMF22Y24VNFQ5FEWODLVBLAC
7JPOCQEISAIOD7LV4JYBE6NNUWUKKNE73MEPQYTIZ7PP44ZAD2RAC
CESJ4CTO26X4GBZBPXRXLOJT3JQJOGFN5EJSNAAZELNQRZF7QSYAC
NEBSVXIASWSJO2CVU3VWRONIWJJDLL3VDS6WNKQBWQBRUUI7RSYAC
LU6IFZFGPIKF3CBWZWITWVBSCYWF7Q4UXJDXVRWZ4XV7PKE5RSTQC
7M4UI3TWQIAA333GQ577HDWDWZPSZKWCYG556L6SBRLB6SZDQYPAC
4BMW4JJOJ3XKMSUXDGOG4QC6QPDBC4PBOD3M2RAQQPRAF3CSGXUQC
JWZT34UC7OTMMUZKGYFF6NDGIFNOA6TYXAZ6K66ELM3ZW7ZM7I5AC
3NMKD6I57ONAGHEN4PZIAV2KPYESVR4JL3DTWSHXKCMVJBEQ4GIQC
7U2DXFMPZO4P53AMWYCVXG3EPB7UIAPEY4PDDINX4TTABHD5NGMQC
XGNME3WRU3MJDTFHUFJYARLVXWBZIH5ODBOIIFTXHNCBTZQH2R7QC
O77KA6C4UJGZXVGPEA7WCRQH6XYQJPWETSPDXI3VOKOSRQND7JEQC
73C6NOJ7W7ZCQ2THEZ4HXNZF3734VIPHI5VKQ2CCPLOA4L3JFIIQC
BFL2Y7GN6NBXXNAUSD4M6T6CIVQ2OLERPE2CAFSLRF377WFFTVCQC
QJC4IQITOQP65AFLA5CMH2EXHB6B3SOLW2XBV72U5ZQU2KOR2EIAC
CFJKYXUX4FF2DVAOJ3RRTI4JZPP5GMMDTJCEYM2IS57SCRKGZI6AC
IRW6JACS3KVVA6HW5SBNBOHOQ2WRBHYGDND3FUWJYKJC7ZMOAVOQC
WWDZWJTRJWSLVFMQFHS7JMDPK5VNDIQ6IHSMES7BVKYHZY6WRYKAC
HHJDRLLNN36UNIA7STAXEEVBCEMPJNB7SJQOS3TJLLYN4AEZ4MHQC
GJMBIJOE47X7DKZDHIY6VQ2ISC52XAVAV46L6PJQZTV7L7DDSWOAC
C6W7N6N57UCNHEV55HEZ3G7WN2ZOBGMFBB5M5ZPDB2HNNHHTOPBQC
let attribute: syn::LitStr = syn::parse2(attribute_stream)
.map_err(ParseError::InvalidAttribute)?;
let derive_input: syn::DeriveInput = syn::parse2(derive_input_stream)
.map_err(ParseError::InvalidDeriveInput)?;
let attribute: syn::LitStr =
syn::parse2(attribute_stream).map_err(ParseError::InvalidAttribute)?;
let derive_input: syn::DeriveInput =
syn::parse2(derive_input_stream).map_err(ParseError::InvalidDeriveInput)?;
const CANONICAL_LOCALE: ::fluent_embed::icu_locale::LanguageIdentifier =
::fluent_embed::icu_locale::langid!(#canonical_locale);
fn canonical_locale(&self) -> ::fluent_embed::icu_locale::LanguageIdentifier {
::fluent_embed::icu_locale::langid!(#canonical_locale)
}
const CANONICAL_LOCALE: ::fluent_embed::icu_locale::LanguageIdentifier =
::fluent_embed::icu_locale::langid!("en-US");
fn canonical_locale(&self) -> ::fluent_embed::icu_locale::LanguageIdentifier {
::fluent_embed::icu_locale::langid!("en-US")
}
const CANONICAL_LOCALE: LanguageIdentifier = langid!("en-US");
fn available_locales(&self) -> Vec<LanguageIdentifier> {
// TODO: keep track of all locales with Fluent data, and return only those
vec![Self::CANONICAL_LOCALE]
}
const CANONICAL_LOCALE: LanguageIdentifier = langid!("en-US");
fn available_locales(&self) -> Vec<LanguageIdentifier> {
// TODO: keep track of all locales with Fluent data, and return only those
vec![Self::CANONICAL_LOCALE]
}
// TODO: this should be project-wide and tracked at build time
const CANONICAL_LOCALE: LanguageIdentifier;
fn message_for_locale(&self, locale: &LanguageIdentifier) -> String;
fn canonical_locale(&self) -> LanguageIdentifier {
langid!("en-US")
}
fn available_locales(&self) -> Vec<LanguageIdentifier>;
fn message_for_locale(&self, locale: &LanguageIdentifier) -> String;
fn available_locales(&self) -> Vec<LanguageIdentifier> {
// TODO: keep track of all locales with Fluent data, and return only those
vec![self.canonical_locale()]
}
const CANONICAL_LOCALE: LanguageIdentifier = langid!("en-US");
fn available_locales(&self) -> Vec<LanguageIdentifier> {
// TODO: keep track of all locales with Fluent data, and return only those
vec![Self::CANONICAL_LOCALE]
}
const CANONICAL_LOCALE: LanguageIdentifier = langid!("en-US");
fn available_locales(&self) -> Vec<LanguageIdentifier> {
// TODO: keep track of all locales with Fluent data, and return only those
vec![Self::CANONICAL_LOCALE]
}
const CANONICAL_LOCALE: LanguageIdentifier = langid!("en-US");
fn available_locales(&self) -> Vec<LanguageIdentifier> {
// TODO: keep track of all locales with Fluent data, and return only those
vec![Self::CANONICAL_LOCALE]
}