feat: add French localization support for character attributes and improve character display logic
All checks were successful
Build Docker Image / build (push) Successful in 1m18s

- Added optional French names, affiliations, origins, and epithets to character records.
- Updated character import logic to handle new French fields.
- Enhanced character search and display components to show French names and epithets based on selected language.
- Modified database schema to include French fields for characters.
- Improved error handling in daily character setup to check for existing characters.
- Refactored components to utilize helper functions for displaying names and attributes based on language.
This commit is contained in:
2026-03-15 22:00:19 +01:00
parent bd121b7d85
commit 997b2f1781
15 changed files with 655 additions and 236 deletions

View File

@@ -14,6 +14,7 @@ CREATE TABLE `character` (
`gender` text,
`age` integer,
`affiliations` text,
`fr_affiliations` text,
`devil_fruit_id` text,
`haki_observation` integer DEFAULT false,
`haki_armament` integer DEFAULT false,
@@ -52,6 +53,7 @@ CREATE TABLE `character_override` (
`gender` text,
`age` integer,
`affiliations` text,
`fr_affiliations` text,
`devil_fruit_id` text,
`haki_observation` integer,
`haki_armament` integer,
@@ -59,9 +61,11 @@ CREATE TABLE `character_override` (
`bounty` integer,
`height` real,
`origin` text,
`fr_origin` text,
`first_appearance` integer,
`picture_url` text,
`epithets` text,
`fr_epithets` text,
`status` text,
`arc_id` text,
`url` text,
@@ -79,6 +83,7 @@ CREATE TABLE `character_scrape_validation` (
`gender` text,
`age` integer,
`affiliations` text,
`fr_affiliations` text,
`devil_fruit_id` text,
`haki_observation` integer DEFAULT false,
`haki_armament` integer DEFAULT false,

View File

@@ -1,7 +1,7 @@
{
"version": "6",
"dialect": "sqlite",
"id": "8ffd14bd-bf33-410f-9778-92bc1abc8938",
"id": "4b4f14a1-b37b-44f4-aed3-7289bd8cb6a0",
"prevId": "00000000-0000-0000-0000-000000000000",
"tables": {
"arc": {
@@ -101,6 +101,13 @@
"notNull": false,
"autoincrement": false
},
"fr_affiliations": {
"name": "fr_affiliations",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"devil_fruit_id": {
"name": "devil_fruit_id",
"type": "text",
@@ -372,6 +379,13 @@
"notNull": false,
"autoincrement": false
},
"fr_affiliations": {
"name": "fr_affiliations",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"devil_fruit_id": {
"name": "devil_fruit_id",
"type": "text",
@@ -421,6 +435,13 @@
"notNull": false,
"autoincrement": false
},
"fr_origin": {
"name": "fr_origin",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"first_appearance": {
"name": "first_appearance",
"type": "integer",
@@ -442,6 +463,13 @@
"notNull": false,
"autoincrement": false
},
"fr_epithets": {
"name": "fr_epithets",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"status": {
"name": "status",
"type": "text",
@@ -569,6 +597,13 @@
"notNull": false,
"autoincrement": false
},
"fr_affiliations": {
"name": "fr_affiliations",
"type": "text",
"primaryKey": false,
"notNull": false,
"autoincrement": false
},
"devil_fruit_id": {
"name": "devil_fruit_id",
"type": "text",

View File

@@ -5,8 +5,8 @@
{
"idx": 0,
"version": "6",
"when": 1773447741334,
"tag": "0000_keen_rockslide",
"when": 1773602933375,
"tag": "0000_huge_doctor_octopus",
"breakpoints": true
}
]