feat(SPA): i18n internationzalization, english and french

This commit is contained in:
fsylvain committed 2026-10-03 01:53:49 +02:00
1 parent 7f1e8e572d
commit 721311a643
88 files changed
+4438 -1148

No files matched your search

+17 -5
View File
@@ -1,3 +1,4 @@
import { t, locale, formatNumber } from '@/i18n'
export const MAX_IMAGE_BYTES = 10 * 1024 * 1024
export const ALLOWED_IMAGE_MIME_TYPES = ['image/png', 'image/jpeg', 'image/webp', 'image/svg+xml']
@@ -39,7 +40,13 @@ export function extensionMatchesType(file: File) {
}
export function formatMegabytes(bytes: number) {
return (bytes / (1024 * 1024)).toFixed(1)
const value = bytes / (1024 * 1024)
return locale.value === 'fr'
? formatNumber(value, {
minimumFractionDigits: 1,
maximumFractionDigits: 1,
})
: value.toFixed(1)
}
export function isSizeRejectionBody(body: string) {
@@ -47,16 +54,21 @@ export function isSizeRejectionBody(body: string) {
}
export function rejectionTitle(filename: string) {
return `"${filename}" can't be used`
return t("\u0022{0}\u0022 can't be used", [filename])
}
export function sizeRejectionText(filename: string, bytes: number) {
return `${filename} is ${formatMegabytes(bytes)} MB. Images can be up to 10 MB.`
return t('{0} is {1} MB. Images can be up to 10 MB.', [filename, formatMegabytes(bytes)])
}
export function formatWholeKB(bytes: number): string {
const kb = bytes / 1024
const rounded = Math.round(kb * 10) / 10
if (locale.value === 'fr')
return formatNumber(rounded, {
minimumFractionDigits: rounded === 0 ? 1 : 0,
maximumFractionDigits: 1,
})
if (rounded === 0) {
return '0.0'
}
@@ -65,7 +77,7 @@ export function formatWholeKB(bytes: number): string {
export function formatUploadProgress(loadedBytes: number, totalBytes: number): string {
if (totalBytes < 1024 * 1024) {
return `Uploading ${formatWholeKB(loadedBytes)} of ${formatWholeKB(totalBytes)} KB`
return t('Uploading {0} of {1} KB', [formatWholeKB(loadedBytes), formatWholeKB(totalBytes)])
}
return `Uploading ${formatMegabytes(loadedBytes)} of ${formatMegabytes(totalBytes)} MB`
return t('Uploading {0} of {1} MB', [formatMegabytes(loadedBytes), formatMegabytes(totalBytes)])
}