Expand description
§anycms-i18n-sqlx
SQLx database backend for [anycms-i18n].
Loads translations from any SQLx-supported database (PostgreSQL, MySQL, SQLite)
into an in-memory cache at startup, then serves translations synchronously
via the Backend trait.
§Quick Start
ⓘ
use anycms_i18n_sqlx::SqlxBackend;
// PostgreSQL
let pool = sqlx::PgPool::connect("postgres://...").await?;
let backend = SqlxBackend::from_postgres(&pool).await?;
// MySQL
let pool = sqlx::MySqlPool::connect("mysql://...").await?;
let backend = SqlxBackend::from_mysql(&pool).await?;
// SQLite
let pool = sqlx::SqlitePool::connect("sqlite:translations.db").await?;
let backend = SqlxBackend::from_sqlite(&pool).await?;
// Use as a Backend
use anycms_i18n::Backend;
assert!(backend.has_locale("en"));§Custom Table / Column Names
Use SqlxBackendBuilder to customize the table and column names:
ⓘ
let backend = SqlxBackendBuilder::new()
.table("my_translations")
.locale_col("lang")
.key_col("msg_key")
.value_col("msg_value")
.build_postgres(&pool)
.await?;Structs§
- Sqlx
Backend - Database-backed translation backend powered by SQLx.
- Sqlx
Backend Builder - Builder for
SqlxBackendwith custom table and column names.