pub fn translate_checked(
        &self,
        id: &str,
        args: Option<TranslationArgs>,
    ) -> Result<String, TranslatorError> {
        match self.translations.get(id) {
            Some(translation) => {
                let mut translation = translation.to_string();
                // Loop through each of the arguments and interpolate them
                if let Some(args) = args {
                    for (k, v) in args.0.iter() {
                        // Replace `${<k>}`, with `v`
                        translation = translation.replace(&format!("{{ ${} }}", k), v);
                    }
                }
                Ok(translation)
            }
            None => Err(TranslatorError::TranslationIdNotFound {
                locale: self.locale.to_string(),
                id: id.to_string(),
            }),
        }
    }
Translates the given ID, returning graceful errors. This additionally
takes any arguments that should be interpolated. If your i18n system
also has variants, they should be specified somehow in the ID.
packages/perseus/src/translator/lightweight.rs