chinese localization!!

This commit is contained in:
2026-09-03 16:21:01 +08:00
parent 34f35ef208
commit b731ec50d0
49 changed files with 1404 additions and 295 deletions
+18 -32
View File
@@ -4,13 +4,7 @@ use tauri::{AppHandle, State};
use tauri_specta::Event;
use crate::db::{self, AppDatabase};
const SETTINGS_ID: i64 = 1;
#[derive(Debug, Clone, PartialEq, Eq, sqlx::FromRow)]
pub struct AppSettings {
pub onboarding_done: bool,
}
use crate::settings::AppSettings;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Type, Event)]
#[serde(rename_all = "camelCase")]
@@ -32,30 +26,16 @@ impl OnboardingStatus {
}
}
pub async fn get(database: &AppDatabase) -> Result<AppSettings, sqlx::Error> {
sqlx::query_as::<_, AppSettings>("SELECT onboarding_done FROM app_settings WHERE id = ?1")
.bind(SETTINGS_ID)
.fetch_one(database.pool())
.await
}
async fn set_onboarding_done(
database: &AppDatabase,
onboarding_done: bool,
) -> Result<(), sqlx::Error> {
sqlx::query("UPDATE app_settings SET onboarding_done = ?1 WHERE id = ?2")
.bind(onboarding_done)
.bind(SETTINGS_ID)
.execute(database.pool())
.await?;
Ok(())
}
pub(crate) async fn emit_status(
handle: &AppHandle,
database: &AppDatabase,
) -> Result<OnboardingStatus, String> {
let status = OnboardingStatus::new(handle, get(database).await.map_err(db::command_error)?);
let status = OnboardingStatus::new(
handle,
crate::settings::get(database)
.await
.map_err(db::command_error)?,
);
status.clone().emit(handle).map_err(db::command_error)?;
Ok(status)
}
@@ -66,7 +46,9 @@ pub async fn get_onboarding_status(
handle: AppHandle,
database: State<'_, AppDatabase>,
) -> Result<OnboardingStatus, String> {
let settings = get(&database).await.map_err(db::command_error)?;
let settings = crate::settings::get(&database)
.await
.map_err(db::command_error)?;
Ok(OnboardingStatus::new(&handle, settings))
}
@@ -80,7 +62,7 @@ pub async fn complete_onboarding(
return Err("Accessibility access must be granted before setup can finish.".to_owned());
}
set_onboarding_done(&database, true)
crate::settings::set_onboarding_done(&database, true)
.await
.map_err(db::command_error)?;
emit_status(&handle, &database).await?;
@@ -111,17 +93,21 @@ mod tests {
async fn onboarding_completion_is_persisted() {
let database = database().await;
assert_eq!(
get(&database).await.unwrap(),
crate::settings::get(&database).await.unwrap(),
AppSettings {
onboarding_done: false,
locale_preference: "system".to_owned(),
}
);
set_onboarding_done(&database, true).await.unwrap();
crate::settings::set_onboarding_done(&database, true)
.await
.unwrap();
assert_eq!(
get(&database).await.unwrap(),
crate::settings::get(&database).await.unwrap(),
AppSettings {
onboarding_done: true,
locale_preference: "system".to_owned(),
}
);
}