feat(i18n): add French language support and enhance localization
All checks were successful
Deploy to production / deploy (push) Successful in 2m48s
All checks were successful
Deploy to production / deploy (push) Successful in 2m48s
- Introduced French as a supported language across the application, updating locale files and adding translations for various components. - Enhanced language handling logic to accommodate French, ensuring proper detection and fallback mechanisms. - Updated UI elements to include French language options, improving accessibility for French-speaking users. - Refactored SEO handling to include French in hreflang links, enhancing search engine indexing for multilingual content. - Added new scripts for managing French translations and ensuring consistency across language files.
This commit is contained in:
@@ -10,6 +10,16 @@
|
||||
"windy": "Windy",
|
||||
"clear": "Clear"
|
||||
},
|
||||
"conditionBand": {
|
||||
"excellent": "Excellent",
|
||||
"veryGood": "Very good",
|
||||
"good": "Good",
|
||||
"moderate": "Fair",
|
||||
"bad": "Poor",
|
||||
"veryBad": "Very poor",
|
||||
"catastrophic": "Critical",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"debtorsPrison": {
|
||||
"actionBlocked": "This action is blocked while you are in debtors' prison.",
|
||||
"globalWarning": "Your credit delinquency is already restricting your actions. Forced measures may follow soon.",
|
||||
@@ -110,7 +120,8 @@
|
||||
"loading": "Loading potential heirs…",
|
||||
"noHeirs": "No heirs available.",
|
||||
"select": "Select as play character",
|
||||
"error": "Error selecting heir."
|
||||
"error": "Error selecting heir.",
|
||||
"success": "You are now playing as the selected heir."
|
||||
},
|
||||
"metadata": {
|
||||
"title": "Personal",
|
||||
@@ -175,6 +186,32 @@
|
||||
"stock": "Storage positions",
|
||||
"stockHint": "Condensed view of goods across all regions.",
|
||||
"open": "Open"
|
||||
},
|
||||
"routine": {
|
||||
"branch": {
|
||||
"kicker": "Routine",
|
||||
"title": "Open a branch",
|
||||
"description": "The fastest route to production, storage, sales and transport.",
|
||||
"cta": "Go to operations"
|
||||
},
|
||||
"finance": {
|
||||
"kicker": "Overview",
|
||||
"title": "Review finances",
|
||||
"description": "Account balance, history and economic development without a long search.",
|
||||
"cta": "Money history"
|
||||
},
|
||||
"family": {
|
||||
"kicker": "Character",
|
||||
"title": "Family and succession",
|
||||
"description": "Important personal decisions and household status in one place.",
|
||||
"cta": "Open family"
|
||||
},
|
||||
"house": {
|
||||
"kicker": "Property",
|
||||
"title": "House and surroundings",
|
||||
"description": "Residence and everyday status as its own work area.",
|
||||
"cta": "Go to house"
|
||||
}
|
||||
}
|
||||
},
|
||||
"health": {
|
||||
@@ -464,20 +501,58 @@
|
||||
}
|
||||
},
|
||||
"nobility": {
|
||||
"title": "Noble status",
|
||||
"tabs": {
|
||||
"overview": "Overview",
|
||||
"advance": "Advance"
|
||||
},
|
||||
"highestPoliticalOffice": "Highest political office",
|
||||
"highestOfficeAny": "Highest office overall",
|
||||
"none": "none",
|
||||
"nextTitle": "Next possible title",
|
||||
"advanceNoNext": "Error: No information on the next title is available. Please reload the page.",
|
||||
"requirement": {
|
||||
"money": "Wealth at least {amount}",
|
||||
"cost": "Cost: {amount}",
|
||||
"branches": "At least {amount} branches",
|
||||
"reputation": "Popularity at least {amount}",
|
||||
"house_position": "House status at least level {amount}",
|
||||
"house_condition": "House condition at least {amount}",
|
||||
"house_position": "Household at least: {label}",
|
||||
"house_condition": "House condition at least {quality}",
|
||||
"office_rank_any": "Highest political or church office at least rank {amount}",
|
||||
"office_rank_political": "Highest political office at least rank {amount}",
|
||||
"lover_count_min": "At least {amount} lovers or favorites",
|
||||
"lover_count_max": "At most {amount} lovers or favorites"
|
||||
"lover_count_max": "At most {amount} lovers or favorites",
|
||||
"unknown": "{type}: {amount}"
|
||||
},
|
||||
"housePosition": {
|
||||
"1": "Living under a bridge",
|
||||
"2": "A straw hut",
|
||||
"3": "A wooden house",
|
||||
"4": "A backyard room",
|
||||
"5": "A small family house",
|
||||
"6": "A townhouse",
|
||||
"7": "A villa",
|
||||
"8": "A manor house",
|
||||
"9": "A castle",
|
||||
"fallback": "House tier {level}"
|
||||
},
|
||||
"houseConditionQuality": {
|
||||
"nearPerfect": "near-flawless",
|
||||
"veryGood": "very good",
|
||||
"good": "good",
|
||||
"decent": "decent",
|
||||
"usable": "adequate"
|
||||
},
|
||||
"houseConditionPercent": "{pct}%",
|
||||
"officeWithRank": "{label} (rank {rank})",
|
||||
"advance": {
|
||||
"confirm": "Request advancement",
|
||||
"processing": "Processing…"
|
||||
},
|
||||
"errors": {
|
||||
"tooSoon": "You cannot advance yet.",
|
||||
"unmet": "Requirements not yet met:",
|
||||
"generic": "Something went wrong."
|
||||
},
|
||||
"cooldown": "You can only advance again on {date}."
|
||||
},
|
||||
@@ -572,6 +647,9 @@
|
||||
"elections": "Elections"
|
||||
},
|
||||
"bookmarkCandidate": "Bookmark this candidacy",
|
||||
"voteSuccess": "Vote submitted successfully.",
|
||||
"voteAllSuccess": "All votes submitted successfully.",
|
||||
"applyBookmarkSuccess": "Candidacies saved successfully.",
|
||||
"voteError": "Error while submitting the vote",
|
||||
"voteAllError": "Error while submitting the votes",
|
||||
"applyError": "Application could not be submitted.",
|
||||
|
||||
Reference in New Issue
Block a user