correct type issues

This commit is contained in:
marlon-erler
2026-09-09 00:04:27 +02:00
parent 4631730f02
commit 839e887d85
24 changed files with 511 additions and 437 deletions
+1 -1
View File
@@ -169,7 +169,7 @@ function SettingsAppearancePane(
<h2>{coreViewModel.translations.settings.pages.appearance}</h2>
<hr></hr>
{OptionButtonList(
new React.ListState<[string, ThemeSettings]>([
new React.ListState<[string, string]>([
[
coreViewModel.translations.settings.themes.dark,
ThemeSettings.Dark,
+1
View File
@@ -10,6 +10,7 @@ export function SplitModal<T>(
navigationState?: React.State<T | undefined>,
) {
function closePage() {
if (!navigationState) return;
navigationState.value = undefined;
}
+382 -368
View File
@@ -435,13 +435,13 @@ export const allTranslations: {
importHeadline: "Daten importieren",
selectionDescription:
"Wähle die Daten aus, die du übertragen möchtest.",
exportSelectionDescription:
"Wähle die Daten aus, die du exportieren möchtest.",
dataEntryDescription:
"Gib diese Informationen auf dem anderen Gerät ein.",
dataEntryInputDescription:
"Gib die auf dem anderen Gerät angezeigten Informationen ein.",
notConnectedError: "Du bist mit keinem Server verbunden.",
fromThisDeviceButton: "An anderes Gerät senden",
toThisDeviceButton: "An dieses Gerät senden",
exportButton: "Als Datei exportieren",
@@ -463,448 +463,462 @@ export const allTranslations: {
filesSentCount: (count) => `Dateien gesendet: ${count}.`,
allFilesSent: "Fertig.",
filesReceivedCount: (count) => `Dateien empfangen: ${count}.`,
},
filesReceivedCount: (count) => `Dateien empfangen: ${count}.`,
storage: {
noItemSelected: "Kein Element ausgewählt",
notAFile: "(keine Datei)",
contentEmpty: "(leer)",
exportKey: "Schlüssel",
exportKeyConfirmation: "Schlüssel bestätigen",
downloadFileButton: "Herunterladen",
importFileButton: "Importieren",
decryptImportButton: "Entschlüsseln",
incorrectPassphraseError: "Der Schlüssel ist nicht korrekt"
},
path: "Pfad",
content: "Inhalt",
storage: {
noItemSelected: "Kein Element ausgewählt",
notAFile: "(keine Datei)",
contentEmpty: "(leer)",
deleteItem: "Element löschen",
path: "Pfad",
content: "Inhalt",
removeJunkButton: "Datenmüll löschen",
},
deleteItem: "Element löschen",
chatPage: {
closeChatAudioLabe: "Chat schließen",
chatSettingsAudioLabel: "Chateinstellungen",
removeJunkButton: "Datenmüll löschen",
},
pages: {
settings: "Einstellungen",
messages: "Nachrichten",
tasks: "Aufgaben",
calendar: "Kalender",
},
chatPage: {
closeChatAudioLabe: "Chat schließen",
chatSettingsAudioLabel: "Chateinstellungen",
settings: {
settingsHeadline: "Einstellungen",
pages: {
settings: "Einstellungen",
messages: "Nachrichten",
tasks: "Aufgaben",
calendar: "Kalender",
},
primaryChannelLabel: "Hauptkanal",
setPrimaryChannelButtonAudioLabel: "Hauptkanal festlegen",
settings: {
settingsHeadline: "Einstellungen",
namespaceLabel: "Namensraum",
namespacePlaceholder: "Ohne Namensraum",
setNamespaceButtonAudioLabel: "Namensraum festlegen",
primaryChannelLabel: "Hauptkanal",
setPrimaryChannelButtonAudioLabel: "Hauptkanal festlegen",
newSecondaryChannelPlaceholder: "Sekundären Kanal hinzufügen",
newSecondaryChannelAudioLabel:
"Name des neuen sekundären Kanals",
addSecondaryChannelButtonAudioLabel:
"Sekundären Kanal hinzufügen",
namespaceLabel: "Namensraum",
namespacePlaceholder: "Ohne Namensraum",
setNamespaceButtonAudioLabel: "Namensraum festlegen",
encryptionKeyLabel: "Schlüssel",
setEncryptionKeyButtonAudioLabel: "Schlüssel festlegen",
showEncryptionKey: "Schlüssel anzeigen",
newSecondaryChannelPlaceholder: "Sekundären Kanal hinzufügen",
newSecondaryChannelAudioLabel:
"Name des neuen sekundären Kanals",
addSecondaryChannelButtonAudioLabel:
"Sekundären Kanal hinzufügen",
deleteChatButton: "Gesamten Chat löschen",
},
encryptionKeyLabel: "Schlüssel",
setEncryptionKeyButtonAudioLabel: "Schlüssel festlegen",
showEncryptionKey: "Schlüssel anzeigen",
message: {
messagesHeadline: "Nachrichten",
deleteChatButton: "Gesamten Chat löschen",
},
messageFilterHeadline: "Nachrichten filtern",
messageFilterReactionsHadline: "Reaktionen",
messageFilterAllReactionsButton: "Alle anzeigen",
message: {
messagesHeadline: "Nachrichten",
composerInputPlaceholder: "Schreib eine Nachricht...",
sendMessageButtonAudioLabel: "nachricht senden",
filterMessagesButtonAudioLabel: "nachrichten filtern",
messageFilterHeadline: "Nachrichten filtern",
messageFilterReactionsHadline: "Reaktionen",
messageFilterAllReactionsButton: "Alle anzeigen",
showMessageInfoButtonAudioLabel: "nachrichteninfo anzeigen",
messageInfoHeadline: "Nachrichteninfo",
cancelReplyAudioLabel: "antwort abbrechen",
composerInputPlaceholder: "Schreib eine Nachricht...",
sendMessageButtonAudioLabel: "nachricht senden",
filterMessagesButtonAudioLabel: "nachrichten filtern",
sentBy: "Gesendet von",
timeSent: "Sendezeit",
channel: "Kanal",
messageContent: "Nachrichteninhalt",
showMessageInfoButtonAudioLabel: "nachrichteninfo anzeigen",
messageInfoHeadline: "Nachrichteninfo",
cancelReplyAudioLabel: "antwort abbrechen",
copyMessageButton: "Nachricht kopieren",
resendMessageButton: "Nachricht erneut senden",
decryptMessageButton: "Nachricht entschlüsseln",
replyToMessageButton: "Auf Nachricht antworten",
deleteMessageButton: "Nachricht löschen",
sentBy: "Gesendet von",
timeSent: "Sendezeit",
channel: "Kanal",
messageContent: "Nachrichteninhalt",
//
copyMessageButton: "Nachricht kopieren",
resendMessageButton: "Nachricht erneut senden",
decryptMessageButton: "Nachricht entschlüsseln",
replyToMessageButton: "Auf Nachricht antworten",
deleteMessageButton: "Nachricht löschen",
thumbsUpReaction: "Reaktion: Daumen hoch",
checkReaction: "Reaktion: Haken",
stopReaction: "Reaktion: Stopp",
attentionReaction: "Reaktion: Ausrufezeichen",
doubleAttentionReaction: "Reaktion: doppeltes Ausrufezeichen",
questionReaction: "Reaktion: Fragezeichen",
},
//
task: {
newBoardNamePlaceholder: "Board erstellen",
createBoardButtonAudioLabel: "board erstellen",
thumbsUpReaction: "Reaktion: Daumen hoch",
checkReaction: "Reaktion: Haken",
stopReaction: "Reaktion: Stopp",
attentionReaction: "Reaktion: Ausrufezeichen",
doubleAttentionReaction: "Reaktion: doppeltes Ausrufezeichen",
questionReaction: "Reaktion: Fragezeichen",
},
noBoardSelected: "Kein Board ausgewählt",
boardNotFound: "Board nicht gefunden",
task: {
newBoardNamePlaceholder: "Board erstellen",
createBoardButtonAudioLabel: "board erstellen",
closeBoardButtonAudioLabel: "board schließen",
toggleBoardButtonAudioLabel: "board-liste ein/ausblenden",
showBoardSettingsButtonAudioLabel:
"Board-Einstellungen anzeigen",
noBoardSelected: "Kein Board ausgewählt",
boardNotFound: "Board nicht gefunden",
listViewButtonAudioLabel: "Listenansicht",
kanbanViewButtonAudioLabel: "Kanban-Ansicht",
statusViewButtonAudioLabel: "Statusrasteransicht",
closeBoardButtonAudioLabel: "board schließen",
toggleBoardButtonAudioLabel: "board-liste ein/ausblenden",
showBoardSettingsButtonAudioLabel:
"Board-Einstellungen anzeigen",
filterTasksButtonAudioLabel: "Aufgaben filtern",
createTaskButtonAudioLabel: "Neue Aufgabe erstellen",
listViewButtonAudioLabel: "Listenansicht",
kanbanViewButtonAudioLabel: "Kanban-Ansicht",
statusViewButtonAudioLabel: "Statusrasteransicht",
boardSettingsHeadline: "Board-Einstellungen",
boardNameInputLabel: "Boardname",
deleteBoardButton: "Board und alle Aufgaben löschen",
filterTasksButtonAudioLabel: "Aufgaben filtern",
createTaskButtonAudioLabel: "Neue Aufgabe erstellen",
taskSettingsHeadline: "Aufgabe bearbeiten",
boardSettingsHeadline: "Board-Einstellungen",
boardNameInputLabel: "Boardname",
deleteBoardButton: "Board und alle Aufgaben löschen",
taskNameLabel: "Titel",
taskBoardLabel: "Board",
taskSettingsHeadline: "Aufgabe bearbeiten",
taskCategoryLabel: "Kategorie",
taskStatusLabel: "Status",
taskPriorityLabel: "Priorität",
taskNameLabel: "Titel",
taskBoardLabel: "Board",
taskDescriptionLabel: "Beschreibung",
taskCategoryLabel: "Kategorie",
taskStatusLabel: "Status",
taskPriorityLabel: "Priorität",
taskDateLabel: "Datum",
taskTimeLabel: "Uhrzeit",
taskDescriptionLabel: "Beschreibung",
deleteTaskButton: "Aufgabe löschen",
taskDateLabel: "Datum",
taskTimeLabel: "Uhrzeit",
filterTasksHeadline: "Aufgaben filtern",
deleteTaskButton: "Aufgabe löschen",
renameCategoryInputPlaceholder: "Kategorie umbenennen",
renameStatusInputPlaceholder: "Status umbenennen",
},
filterTasksHeadline: "Aufgaben filtern",
calendar: {
eventsBoard: "Ereignisse",
renameCategoryInputPlaceholder: "Kategorie umbenennen",
renameStatusInputPlaceholder: "Status umbenennen",
},
///
calendar: {
eventsBoard: "Ereignisse",
todayButtonAudioLabel: "gehe zu heute",
///
previousMonthButtonAudioLabel: "vorheriger monat",
nextMonthButtonAudioLabel: "nächster monat",
todayButtonAudioLabel: "gehe zu heute",
yearInputAudioLabel: "Jahr",
monthInputAudioLabel: "Monat",
previousMonthButtonAudioLabel: "vorheriger monat",
nextMonthButtonAudioLabel: "nächster monat",
yearInputPlaceholder: "2000",
monthInputPlaceholder: "01",
yearInputAudioLabel: "Jahr",
monthInputAudioLabel: "Monat",
searchEventsHeadline: "Ereignisse suchen",
yearInputPlaceholder: "2000",
monthInputPlaceholder: "01",
events: "Ereignisse",
noEvents: "Keine Ereignisse",
},
},
searchEventsHeadline: "Ereignisse suchen",
events: "Ereignisse",
noEvents: "Keine Ereignisse",
},
},
},
es: {
updater: {
migrated: "Migrado",
},
general: {
deleteItemButtonAudioLabel: "eliminar elemento",
searchButtonAudioLabel: "buscar",
abortButton: "Abortar",
cancelButton: "Cancelar",
closeButton: "Cerrar",
backButton: "Atrás",
continueButton: "Continuar",
confirmButton: "Confirmar",
saveButton: "Guardar",
setButton: "OK",
reloadAppButton: "Recargar app",
fileVersionLabel: "Versión",
searchLabel: "Buscar",
waitingLabel: "Esperando...",
restoreConnection: "Conectar de nuevo",
noPageSelected: "No página seleccionada",
},
regional: {
weekdays: {
full: [
"Domingo",
"Lunes",
"Martes",
"Miércoles",
"Jueves",
"Viernes",
"Sábado",
],
abbreviated: ["Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sáb"],
},
},
homePage: {
appName: "Comms",
overviewHeadline: "Resumen",
serverAddress: "Dirección del servidor",
serverAddressPlaceholder: "wss://192.168.0.69:3000",
connectAudioLabel: "conectar al servidor",
disconnectAudioLabel: "desconectar del servidor",
manageConnectionsAudioLabel: "gestionar conexiones",
yourNameLabel: "Tu nombre",
yourNamePlaceholder: "Juan Pérez",
setNameButtonAudioLabel: "establecer nombre",
settingsButton: "Ajustes",
manageStorageButton: "Gestionar almacenamiento",
transferDataButton: "Enviar o exportar archivos",
scrollToChatButton: "Chats",
backToOverviewAudioLabel: "volver al resumen",
chatsHeadline: "Chats",
addChatAudioLabel: "nombre del nuevo chat",
addChatPlaceholder: "Añadir chat",
addChatButton: "Añadir chat",
},
settings: {
pages: {
appearance: "Aspecto",
regional: "Idioma y Región",
info: "Sobre Comms",
},
themes: {
dark: "Oscuro",
light: "Claro",
system: "Según dispositivo",
},
version: "Versión",
language: "Idioma",
firstDayOfWeekLabel: "Primer día de la semana",
},
connectionModal: {
connectionModalHeadline: "Gestionar Conexiones",
connectButtonAudioLabel: "conectar",
},
dataTransferModal: {
transferDataHeadline: "Transferencia de datos",
sendHeadline: "Enviar a otro dispositivo",
receiveHeadline: "Enviar a este dispositivo",
exportHeadline: "Exportar archivo",
importHeadline: "Importar archivo",
selectionDescription:
"Selecciona los datos que quieres transferir.",
dataEntryDescription:
"Introduce estos datos en el otro dispositivo.",
dataEntryInputDescription:
"Introduce los datos mostrados en el otro dispositivo.",
notConnectedError: "No estás conectado a ningún servidor.",
fromThisDeviceButton: "Enviar a otro dispositivo",
toThisDeviceButton: "Enviar a este dispositivo",
exportButton: "Exportar archivo",
importButton: "Importar archivo",
generalHeadline: "General",
connectionData: "Datos de Conexión",
settingsData: "Datos de Configuración",
chatsHeadline: "Chats",
transferChannelHeadline: "Canal de Transferencia",
transferKeyHeadline: "Clave de Encriptación de Transferencia",
sendButton: "Enviar",
sendAgainButton: "Enviar otra vez",
filesSentCount: (count) => `Archivos enviados: ${count}.`,
allFilesSent: "Hecho.",
filesReceivedCount: (count) => `Archivos recibidos: ${count}.`,
},
storage: {
noItemSelected: "Ningún elemento seleccionado",
notAFile: "(no es un archivo)",
contentEmpty: "(vacío)",
path: "Ruta",
content: "Contenido",
deleteItem: "Eliminar elemento",
removeJunkButton: "Eliminar archivos basura",
},
chatPage: {
closeChatAudioLabe: "cerrar chat",
chatSettingsAudioLabel: "configuración del chat",
pages: {
settings: "Configuración",
messages: "Mensajes",
tasks: "Tareas",
calendar: "Calendario",
},
updater: {
migrated: "Migrado",
},
general: {
deleteItemButtonAudioLabel: "eliminar elemento",
searchButtonAudioLabel: "buscar",
abortButton: "Abortar",
cancelButton: "Cancelar",
closeButton: "Cerrar",
backButton: "Atrás",
continueButton: "Continuar",
confirmButton: "Confirmar",
saveButton: "Guardar",
setButton: "OK",
reloadAppButton: "Recargar app",
fileVersionLabel: "Versión",
searchLabel: "Buscar",
waitingLabel: "Esperando...",
restoreConnection: "Conectar de nuevo",
noPageSelected: "No página seleccionada",
},
regional: {
weekdays: {
full: [
"Domingo",
"Lunes",
"Martes",
"Miércoles",
"Jueves",
"Viernes",
"Sábado",
],
abbreviated: ["Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sáb"],
},
},
homePage: {
appName: "Comms",
overviewHeadline: "Resumen",
serverAddress: "Dirección del servidor",
serverAddressPlaceholder: "wss://192.168.0.69:3000",
connectAudioLabel: "conectar al servidor",
disconnectAudioLabel: "desconectar del servidor",
manageConnectionsAudioLabel: "gestionar conexiones",
yourNameLabel: "Tu nombre",
yourNamePlaceholder: "Juan Pérez",
setNameButtonAudioLabel: "establecer nombre",
settingsButton: "Ajustes",
manageStorageButton: "Gestionar almacenamiento",
transferDataButton: "Enviar o exportar archivos",
scrollToChatButton: "Chats",
backToOverviewAudioLabel: "volver al resumen",
chatsHeadline: "Chats",
addChatAudioLabel: "nombre del nuevo chat",
addChatPlaceholder: "Añadir chat",
addChatButton: "Añadir chat",
},
settings: {
pages: {
appearance: "Aspecto",
regional: "Idioma y Región",
info: "Sobre Comms",
},
themes: {
dark: "Oscuro",
light: "Claro",
system: "Según dispositivo",
},
version: "Versión",
language: "Idioma",
firstDayOfWeekLabel: "Primer día de la semana",
},
connectionModal: {
connectionModalHeadline: "Gestionar Conexiones",
connectButtonAudioLabel: "conectar",
},
dataTransferModal: {
transferDataHeadline: "Transferencia de datos",
sendHeadline: "Enviar a otro dispositivo",
receiveHeadline: "Enviar a este dispositivo",
exportHeadline: "Exportar archivo",
importHeadline: "Importar archivo",
selectionDescription:
"Selecciona los datos que quieres transferir.",
exportSelectionDescription:
"Selecciona los datos que quieres exportar.",
dataEntryDescription:
"Introduce estos datos en el otro dispositivo.",
dataEntryInputDescription:
"Introduce los datos mostrados en el otro dispositivo.",
fromThisDeviceButton: "Enviar a otro dispositivo",
toThisDeviceButton: "Enviar a este dispositivo",
exportButton: "Exportar archivo",
importButton: "Importar archivo",
generalHeadline: "General",
connectionData: "Datos de Conexión",
settingsData: "Datos de Configuración",
chatsHeadline: "Chats",
transferChannelHeadline: "Canal de Transferencia",
transferKeyHeadline: "Clave de encriptación de transferencia",
sendButton: "Enviar",
sendAgainButton: "Enviar otra vez",
filesSentCount: (count) => `Archivos enviados: ${count}.`,
allFilesSent: "Hecho.",
filesReceivedCount: (count) => `Archivos recibidos: ${count}.`,
exportKey: "Clave de encriptación",
exportKeyConfirmation: "Confirmar clave",
downloadFileButton: "Descargar",
importFileButton: "Importar",
decryptImportButton: "Descifrar",
incorrectPassphraseError: "La clave no es correcta"
},
storage: {
noItemSelected: "Ningún elemento seleccionado",
notAFile: "(no es un archivo)",
contentEmpty: "(vacío)",
path: "Ruta",
content: "Contenido",
deleteItem: "Eliminar elemento",
removeJunkButton: "Eliminar archivos basura",
},
chatPage: {
closeChatAudioLabe: "cerrar chat",
chatSettingsAudioLabel: "configuración del chat",
pages: {
settings: "Configuración",
messages: "Mensajes",
tasks: "Tareas",
calendar: "Calendario",
},
settings: {
settingsHeadline: "Configuración",
primaryChannelLabel: "Canal principal",
setPrimaryChannelButtonAudioLabel: "establecer canal principal",
namespaceLabel: "Espacio de nombres",
namespacePlaceholder: "Sin espacio de nombres",
setNamespaceButtonAudioLabel: "establecer espacio de nombres",
newSecondaryChannelPlaceholder: "Añadir canal secundario",
newSecondaryChannelAudioLabel:
"nombre del nuevo canal secundario",
addSecondaryChannelButtonAudioLabel: "añadir canal secundario",
settings: {
settingsHeadline: "Configuración",
encryptionKeyLabel: "Clave de encriptación",
setEncryptionKeyButtonAudioLabel:
"establecer clave de encriptación",
showEncryptionKey: "Mostrar clave de encriptación",
primaryChannelLabel: "Canal principal",
setPrimaryChannelButtonAudioLabel: "establecer canal principal",
deleteChatButton: "Eliminar todo el chat",
},
namespaceLabel: "Espacio de nombres",
namespacePlaceholder: "Sin espacio de nombres",
setNamespaceButtonAudioLabel: "establecer espacio de nombres",
message: {
messagesHeadline: "Mensajes",
newSecondaryChannelPlaceholder: "Añadir canal secundario",
newSecondaryChannelAudioLabel:
"nombre del nuevo canal secundario",
addSecondaryChannelButtonAudioLabel: "añadir canal secundario",
messageFilterHeadline: "Filtrar mensajes",
messageFilterReactionsHadline: "Reacciones",
messageFilterAllReactionsButton: "Mostrar todas",
encryptionKeyLabel: "Clave de encriptación",
setEncryptionKeyButtonAudioLabel:
"establecer clave de encriptación",
showEncryptionKey: "Mostrar clave de encriptación",
composerInputPlaceholder: "Escribe un mensaje...",
sendMessageButtonAudioLabel: "enviar mensaje",
filterMessagesButtonAudioLabel: "filtrar mensajes",
deleteChatButton: "Eliminar todo el chat",
},
showMessageInfoButtonAudioLabel:
"mostrar información del mensaje",
messageInfoHeadline: "Información del Mensaje",
cancelReplyAudioLabel: "abortar la respuesta",
message: {
messagesHeadline: "Mensajes",
sentBy: "Enviado por",
timeSent: "Hora de envío",
channel: "Canal",
messageContent: "Contenido del mensaje",
messageFilterHeadline: "Filtrar mensajes",
messageFilterReactionsHadline: "Reacciones",
messageFilterAllReactionsButton: "Mostrar todas",
copyMessageButton: "Copiar mensaje",
resendMessageButton: "Reenviar mensaje",
decryptMessageButton: "Desencriptar mensaje",
replyToMessageButton: "Responder al mensaje",
deleteMessageButton: "Eliminar mensaje",
composerInputPlaceholder: "Escribe un mensaje...",
sendMessageButtonAudioLabel: "enviar mensaje",
filterMessagesButtonAudioLabel: "filtrar mensajes",
//
showMessageInfoButtonAudioLabel:
"mostrar información del mensaje",
messageInfoHeadline: "Información del Mensaje",
cancelReplyAudioLabel: "abortar la respuesta",
thumbsUpReaction: "Reacción: pulgar hacia arriba",
checkReaction: "Reacción: marca de verificación",
stopReaction: "Reacción: signo de parada",
attentionReaction: "Reaccion: signo de atención",
doubleAttentionReaction: "Reaccion: signo de atención doble",
questionReaction: "Reaccion: signo de interrogación",
},
sentBy: "Enviado por",
timeSent: "Hora de envío",
channel: "Canal",
messageContent: "Contenido del mensaje",
task: {
newBoardNamePlaceholder: "Crear un tablero",
createBoardButtonAudioLabel: "crear tablero",
copyMessageButton: "Copiar mensaje",
resendMessageButton: "Reenviar mensaje",
decryptMessageButton: "Desencriptar mensaje",
replyToMessageButton: "Responder al mensaje",
deleteMessageButton: "Eliminar mensaje",
noBoardSelected: "Ningún tablero seleccionado",
boardNotFound: "Tablero no encontrado",
//
closeBoardButtonAudioLabel: "cerrar tablero",
toggleBoardButtonAudioLabel:
"mostrar o ocultar lista de tableros",
showBoardSettingsButtonAudioLabel:
"mostrar configuración del tablero",
thumbsUpReaction: "Reacción: pulgar hacia arriba",
checkReaction: "Reacción: marca de verificación",
stopReaction: "Reacción: signo de parada",
attentionReaction: "Reaccion: signo de atención",
doubleAttentionReaction: "Reaccion: signo de atención doble",
questionReaction: "Reaccion: signo de interrogación",
},
listViewButtonAudioLabel: "vista de lista",
kanbanViewButtonAudioLabel: "vista kanban",
statusViewButtonAudioLabel: "vista de cuadrícula de estado",
task: {
newBoardNamePlaceholder: "Crear un tablero",
createBoardButtonAudioLabel: "crear tablero",
filterTasksButtonAudioLabel: "filtrar tareas",
createTaskButtonAudioLabel: "crear nueva tarea",
noBoardSelected: "Ningún tablero seleccionado",
boardNotFound: "Tablero no encontrado",
boardSettingsHeadline: "Configuración del Tablero",
boardNameInputLabel: "Nombre del tablero",
deleteBoardButton: "Eliminar tablero y todas las tareas",
closeBoardButtonAudioLabel: "cerrar tablero",
toggleBoardButtonAudioLabel:
"mostrar o ocultar lista de tableros",
showBoardSettingsButtonAudioLabel:
"mostrar configuración del tablero",
taskSettingsHeadline: "Editar Tarea",
listViewButtonAudioLabel: "vista de lista",
kanbanViewButtonAudioLabel: "vista kanban",
statusViewButtonAudioLabel: "vista de cuadrícula de estado",
taskNameLabel: "Título",
taskBoardLabel: "Tablero",
filterTasksButtonAudioLabel: "filtrar tareas",
createTaskButtonAudioLabel: "crear nueva tarea",
taskCategoryLabel: "Categoría",
taskStatusLabel: "Estado",
taskPriorityLabel: "Prioridad",
boardSettingsHeadline: "Configuración del Tablero",
boardNameInputLabel: "Nombre del tablero",
deleteBoardButton: "Eliminar tablero y todas las tareas",
taskDescriptionLabel: "Descripción",
taskSettingsHeadline: "Editar Tarea",
taskDateLabel: "Fecha",
taskTimeLabel: "Hora",
taskNameLabel: "Título",
taskBoardLabel: "Tablero",
deleteTaskButton: "Eliminar tarea",
taskCategoryLabel: "Categoría",
taskStatusLabel: "Estado",
taskPriorityLabel: "Prioridad",
filterTasksHeadline: "Filtrar Tareas",
taskDescriptionLabel: "Descripción",
renameCategoryInputPlaceholder: "Renombrar categoría",
renameStatusInputPlaceholder: "Renombrar estado",
},
taskDateLabel: "Fecha",
taskTimeLabel: "Hora",
calendar: {
eventsBoard: "Eventos",
deleteTaskButton: "Eliminar tarea",
///
filterTasksHeadline: "Filtrar Tareas",
todayButtonAudioLabel: "ir a hoy",
renameCategoryInputPlaceholder: "Renombrar categoría",
renameStatusInputPlaceholder: "Renombrar estado",
},
previousMonthButtonAudioLabel: "mes anterior",
nextMonthButtonAudioLabel: "mes siguiente",
calendar: {
eventsBoard: "Eventos",
yearInputAudioLabel: "año",
monthInputAudioLabel: "mes",
///
yearInputPlaceholder: "2000",
monthInputPlaceholder: "01",
todayButtonAudioLabel: "ir a hoy",
searchEventsHeadline: "Buscar Eventos",
previousMonthButtonAudioLabel: "mes anterior",
nextMonthButtonAudioLabel: "mes siguiente",
yearInputAudioLabel: "año",
monthInputAudioLabel: "mes",
yearInputPlaceholder: "2000",
monthInputPlaceholder: "01",
searchEventsHeadline: "Buscar Eventos",
events: "Eventos",
noEvents: "No hay eventos",
},
},
events: "Eventos",
noEvents: "No hay eventos",
},
},
},
};
+3 -3
View File
@@ -7,9 +7,9 @@ class Tracker<T> {
class TrackerMap<T> {
trackers = new Map<string, Tracker<T>>();
private register = (key: string): Tracker<T> => {
private register = (key: string): Tracker<T>=> {
if (this.trackers.has(key)) {
return this.trackers.get(key);
return this.trackers.get(key)!;
}
const tracker = new Tracker<T>();
this.trackers.set(key, tracker);
@@ -19,7 +19,7 @@ class TrackerMap<T> {
setState = (
key: string,
stateBuilder: () => React.State<T>,
): React.State<T | undefined> | undefined => {
): React.State<T> | undefined => {
const tracker: Tracker<T> = this.register(key);
if (tracker.state != undefined) {