feat: i18n

This commit is contained in:
2023-07-26 23:41:13 +02:00
parent 6b09cbfbec
commit 88c7f057c9
24 changed files with 473 additions and 309 deletions

1
src/i18n/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
i18n-*.ts

53
src/i18n/de/index.ts Normal file
View File

@@ -0,0 +1,53 @@
import type {Translation} from "../i18n-types"
const de = {
TITLE: "amaCC1ng",
backup: {
TITLE: "Sicherungskopie",
DISCLAIMER:
"Sicherungskopien verlassen unter keinen Umständen diesen Computer und werden nie mit uns geteilt oder auf Server hochgeladen.",
DOWNLOAD: "Kopie Speichern",
RESTORE: "Wiederherstellen",
},
deviceManager: {
TITLE: "Gerät",
AUTO_CONNECT: "Automatisch Verbinden",
CONNECT: "Verbinden",
DISCONNECT: "Entfernen",
TERMINAL: "Konsole",
bootMenu: {
TITLE: "Bootmenü",
REBOOT: "Neustarten",
BOOTLOADER: "Bootloader",
},
},
browserWarning: {
TITLE: "Warnung",
INFO_SERIAL_PREFIX:
"Der aktuell genutzte Browser wird aufgrund der speziellen Voraussetzung für Kommunikation über die ",
INFO_SERIAL_INFIX: "serielle Schnittstelle",
INFO_SERIAL_SUFFIX: " nicht unterstützt.",
INFO_BROWSER_PREFIX:
"Auch wenn alle Chromium-basieren Desktop Browser diese Voraussetzung grundsätzlich erfüllen, haben einige Browser ",
INFO_BROWSER_INFIX: "wie zum Beispiel Brave",
INFO_BROWSER_SUFFIX: " sich bewusst dazu entschieden die API zu deaktivieren.",
DOWNLOAD_CHROMIUM: "Chromium herunterladen",
OTHER_OPTIONS: "Andere häufig genutzte Alternativen",
},
configure: {
chords: {
TITLE: "Akkorde",
search: {
PLACEHOLDER: "{0} Akkord{{|e}} durchsuchen",
},
},
layout: {
TITLE: "Layout",
},
settings: {
TITLE: "Einstellungen",
},
},
} satisfies Translation
export default de

51
src/i18n/en/index.ts Normal file
View File

@@ -0,0 +1,51 @@
import type {BaseTranslation} from "../i18n-types"
const en = {
TITLE: "amaCC1ng",
backup: {
TITLE: "Local Backup",
DISCLAIMER: "Backups remain on your computer and are never shared with us or uploaded to our servers.",
DOWNLOAD: "Download Backup",
RESTORE: "Restore",
},
deviceManager: {
TITLE: "Device",
AUTO_CONNECT: "Auto-connect",
CONNECT: "Connect",
DISCONNECT: "Disconnect",
TERMINAL: "Terminal",
bootMenu: {
TITLE: "Boot Menu",
REBOOT: "Reboot",
BOOTLOADER: "Bootloader",
},
},
browserWarning: {
TITLE: "Warning",
INFO_SERIAL_PREFIX: "Your current browser is not supported due to this site's unique requirement for ",
INFO_SERIAL_INFIX: "serial connections",
INFO_SERIAL_SUFFIX: ".",
INFO_BROWSER_PREFIX:
"Though all chromium-based desktop browsers fulfill this requirement, some derivations such as Brave ",
INFO_BROWSER_INFIX: "have been known to disable the API intentionally",
INFO_BROWSER_SUFFIX: ".",
DOWNLOAD_CHROMIUM: "Download Chromium",
OTHER_OPTIONS: "Other popular options include",
},
configure: {
chords: {
TITLE: "Chords",
search: {
PLACEHOLDER: "Search {0} chord{{|s}}",
},
},
layout: {
TITLE: "Layout",
},
settings: {
TITLE: "Settings",
},
},
} satisfies BaseTranslation
export default en

11
src/i18n/formatters.ts Normal file
View File

@@ -0,0 +1,11 @@
import type { FormattersInitializer } from 'typesafe-i18n'
import type { Locales, Formatters } from './i18n-types'
export const initFormatters: FormattersInitializer<Locales, Formatters> = (locale: Locales) => {
const formatters: Formatters = {
// add your formatter functions here
}
return formatters
}