Añade traducción de textos con plantillas Fluent
This commit is contained in:
parent
96884cbbc0
commit
0e3300dc90
14 changed files with 149 additions and 53 deletions
3
src/base/mod.rs
Normal file
3
src/base/mod.rs
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
//! Temas, Módulos y Componentes base.
|
||||
|
||||
pub mod module;
|
||||
4
src/base/module/homepage/locales/en-US/homepage.ftl
Normal file
4
src/base/module/homepage/locales/en-US/homepage.ftl
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
module_name = Default homepage
|
||||
module_desc = Displays a default homepage when none is configured.
|
||||
|
||||
greeting = Hello { $name }!
|
||||
4
src/base/module/homepage/locales/es-ES/homepage.ftl
Normal file
4
src/base/module/homepage/locales/es-ES/homepage.ftl
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
module_name = Página de inicio predeterminada
|
||||
module_desc = Muestra una página de inicio predeterminada cuando no hay ninguna configurada.
|
||||
|
||||
greeting = Hola { $name }!
|
||||
39
src/base/module/homepage/mod.rs
Normal file
39
src/base/module/homepage/mod.rs
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
use crate::prelude::*;
|
||||
|
||||
localize!("en-US", "src/base/module/homepage/locales");
|
||||
|
||||
pub struct HomepageModule;
|
||||
|
||||
impl Module for HomepageModule {
|
||||
fn name(&self) -> String {
|
||||
l("module_name")
|
||||
}
|
||||
|
||||
fn description(&self) -> String {
|
||||
l("module_desc")
|
||||
}
|
||||
|
||||
fn configure_module(&self, cfg: &mut server::web::ServiceConfig) {
|
||||
cfg.service(
|
||||
server::web::resource("/")
|
||||
.route(server::web::get().to(greet))
|
||||
);
|
||||
cfg.service(
|
||||
server::web::resource("/{name}")
|
||||
.route(server::web::get().to(greet_with_param))
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
async fn greet() -> impl server::Responder {
|
||||
t("greeting", &args!["name" => config_get!("app.name")])
|
||||
}
|
||||
|
||||
async fn greet_with_param(req: server::HttpRequest) -> server::HttpResponse {
|
||||
let name: String = req.match_info().get("name").unwrap_or("World").into();
|
||||
let args = args!["name" => name];
|
||||
server::HttpResponse::Ok()
|
||||
.body(sycamore::render_to_string(|ctx| sycamore::view! { ctx,
|
||||
p { (t("greeting", &args)) }
|
||||
}))
|
||||
}
|
||||
1
src/base/module/mod.rs
Normal file
1
src/base/module/mod.rs
Normal file
|
|
@ -0,0 +1 @@
|
|||
pub mod homepage;
|
||||
Loading…
Add table
Add a link
Reference in a new issue