🚧 Simplifica localización para "src/locale"

This commit is contained in:
Manuel Cillero 2023-06-23 13:38:15 +02:00
parent bcf403ab50
commit 97b520340a
9 changed files with 36 additions and 12 deletions

View file

@ -2,7 +2,7 @@ use pagetop::prelude::*;
use_handle!(MODULE_ADMIN);
use_locale!(LOCALE_ADMIN, "src/locale");
use_locale!(LOCALE_ADMIN);
mod summary;

View file

@ -2,7 +2,7 @@ use pagetop::prelude::*;
use_handle!(THEME_BOOTSIER);
use_locale!(LOCALE_BOOTSIER, "src/locale");
use_locale!(LOCALE_BOOTSIER);
use_static!(bootsier);

View file

@ -3,7 +3,7 @@ use pagetop_minimal::component::*;
use_handle!(MODULE_DEMOHOME);
use_locale!(LOCALE_DEMOHOME, "src/locale");
use_locale!(LOCALE_DEMOHOME);
use_static!(homedemo);

View file

@ -2,7 +2,7 @@ use pagetop::prelude::*;
use_handle!(MODULE_MENU);
use_locale!(LOCALE_MENU, "src/module/menu/locales");
use_locale!(LOCALE_MENU["src/module/menu/locales"]);
pub struct Menu;

View file

@ -2,7 +2,7 @@ use pagetop::prelude::*;
use_handle!(MODULE_NODE);
use_locale!(LOCALE_NODE, "src/locale");
use_locale!(LOCALE_NODE);
//mod entity;
mod migration;

View file

@ -3,7 +3,7 @@ use pagetop_minimal::component::*;
use_handle!(MODULE_USER);
use_locale!(LOCALE_USER, "src/locale");
use_locale!(LOCALE_USER);
mod migration;

View file

@ -117,7 +117,7 @@ pub type HashMapResources = std::collections::HashMap<&'static str, StaticResour
pub type Handle = u64;
use_locale!(LOCALE_PAGETOP, "src/locale");
use_locale!(LOCALE_PAGETOP);
// *************************************************************************************************
// APIs PÚBLICAS.

View file

@ -70,15 +70,25 @@
//! # Cómo aplicar la localización en tu código
//!
//! Una vez hayas creado tu directorio de recursos FTL usa la macro
//! [`use_locale!`](crate::use_locale) para integrarlos en tu módulo o aplicación.
//! [`use_locale!`](crate::use_locale) para integrarlos en tu módulo o aplicación. Si tus recursos
//! se encuentran en el directorio `"src/locale"` bastará con declarar:
//!
//! ```
//! use pagetop::prelude::*;
//!
//! use_locale!(LOCALE_SAMPLE, "src/locale");
//! use_locale!(LOCALE_SAMPLE);
//! ```
//! Y usa el componente [L10n](crate::base::component::L10n) para incluir en las respuestas a
//! peticiones web, textos y contenidos opcionalmente traducibles según el contexto de renderizado.
//!
//! Y si están en otro directorio, entonces puedes usar:
//!
//! ```
//! use pagetop::prelude::*;
//!
//! use_locale!(LOCALE_SAMPLE["path/to/locale"]);
//! ```
//!
//! Usa el componente [L10n](crate::base::component::L10n) para incluir textos y contenidos
//! opcionalmente traducibles según el contexto de renderizado.
use crate::{args, config, trace, LazyStatic};

View file

@ -91,7 +91,21 @@ macro_rules! use_handle {
#[macro_export]
/// Define un conjunto de elementos de localización y funciones locales de traducción.
macro_rules! use_locale {
( $LOCALES:ident, $dir_locales:literal $(, $core_locales:literal)? ) => {
( $LOCALES:ident $(, $core_locales:literal)? ) => {
use $crate::locale::*;
fluent_templates::static_loader! {
pub static $LOCALES = {
locales: "src/locale",
$( core_locales: $core_locales, )?
fallback_language: "en-US",
// Elimina las marcas Unicode que delimitan los argumentos.
customise: |bundle| bundle.set_use_isolating(false),
};
}
};
( $LOCALES:ident[$dir_locales:literal] $(, $core_locales:literal)? ) => {
use $crate::locale::*;
fluent_templates::static_loader! {