feat(i18n): add French language support and enhance localization

- 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:
Torsten Schulz (local)
2026-04-07 18:04:03 +02:00
parent 545357e008
commit 3e74ae47f4
56 changed files with 5220 additions and 175 deletions

View File

@@ -149,7 +149,7 @@
:value="e.id"
:disabled="e.alreadyApplied || e.canApplyByAge === false"
/>
<span>Für diese Kandidatur vormerken</span>
<span>{{ $t('falukant.politics.bookmarkCandidate') }}</span>
</label>
</article>
</div>
@@ -552,10 +552,10 @@ export default {
{ votes: singlePayload }
);
await this.loadElections();
showSuccess(this, 'Stimme erfolgreich abgegeben.');
showSuccess(this, this.$t('falukant.politics.voteSuccess'));
} catch (err) {
console.error(`Error submitting vote for election ${electionId}`, err);
showApiError(this, err, 'Fehler beim Abgeben der Stimme');
showApiError(this, err, this.$t('falukant.politics.voteError'));
}
},
@@ -573,10 +573,10 @@ export default {
{ votes: payload }
);
await this.loadElections();
showSuccess(this, 'Alle Stimmen erfolgreich abgegeben.');
showSuccess(this, this.$t('falukant.politics.voteAllSuccess'));
} catch (err) {
console.error('Error submitting all votes', err);
showApiError(this, err, 'Fehler beim Abgeben der Stimmen');
showApiError(this, err, this.$t('falukant.politics.voteAllError'));
}
},
@@ -632,7 +632,7 @@ export default {
this.selectedApplications = this.openPolitics
.filter(e => e.alreadyApplied || appliedIds.includes(e.id))
.map(e => e.id);
showSuccess(this, 'Kandidatur erfolgreich vorgemerkt.');
showSuccess(this, this.$t('falukant.politics.applyBookmarkSuccess'));
} catch (err) {
console.error('Error submitting applications', err);
if (err?.response?.data?.error === 'too_young') {