Fork i18n + search + filtering- v0.2
at main 1.3 kB view raw
1// Structured error types for i18n operations 2use thiserror::Error; 3 4#[derive(Debug, Error)] 5pub enum I18nError { 6 #[error("error-smokesignal-i18n-fluent-1 Translation key not found: {key}")] 7 TranslationKeyNotFound { key: String }, 8 9 #[error("error-smokesignal-i18n-locale-2 Unsupported language identifier: {locale}")] 10 UnsupportedLocale { locale: String }, 11 12 #[error("error-smokesignal-i18n-locale-8 Invalid language identifier")] 13 InvalidLanguage, 14 15 #[error("error-smokesignal-i18n-template-3 Template function argument missing: {arg}")] 16 TemplateFunctionArgumentMissing { arg: String }, 17 18 #[error("error-smokesignal-i18n-fluent-4 Fluent resource parsing failed")] 19 FluentParseError { errors: Vec<fluent_syntax::parser::ParserError> }, 20 21 #[error("error-smokesignal-i18n-fluent-5 Bundle resource loading failed")] 22 BundleLoadError { errors: Vec<fluent::FluentError> }, 23 24 #[error("error-smokesignal-i18n-gender-6 Invalid gender value: {gender}")] 25 InvalidGender { gender: String }, 26 27 #[error("error-smokesignal-i18n-io-7 File system error: {path}")] 28 FileSystemError { path: String }, 29 30 #[error("error-smokesignal-i18n-fluent-9 Message formatting failed for key: {key}")] 31 FormattingError { key: String, errors: Vec<String> }, 32}