Skip to main content

doido_generators/generators/
locale.rs

1//! `doido generate locale [code]` — a starter i18n locale file
2//! (`config/locales/<code>.yml`, default `en`), Rails-style.
3
4use crate::generator::{GeneratedFile, Generator};
5use doido_core::Result;
6
7pub struct LocaleGenerator;
8
9impl Generator for LocaleGenerator {
10    fn name(&self) -> &str {
11        "locale"
12    }
13
14    fn generate(&self, args: &[&str]) -> Result<Vec<GeneratedFile>> {
15        let code = args.first().copied().unwrap_or("en");
16        let content = format!(
17            "{code}:\n  hello: \"Hello world\"\n  # Add translations here, e.g.:\n  # greeting: \"Welcome, %{{name}}!\"\n"
18        );
19        Ok(vec![GeneratedFile {
20            path: format!("config/locales/{code}.yml"),
21            content,
22        }])
23    }
24}