(translations): added german

This commit is contained in:
j4n-e4t
2024-09-25 17:34:18 +02:00
committed by Guy Ben-Aharon
parent 0225e1f80e
commit 1bda522a33
3 changed files with 332 additions and 0 deletions

View File

@@ -3,11 +3,13 @@ import { initReactI18next } from 'react-i18next';
import { en, enMetadata } from './locales/en';
import { es } from './locales/es';
import { fr } from './locales/fr';
import { de } from './locales/de';
const resources = {
en,
es,
fr,
de,
};
i18n.use(initReactI18next).init({

318
src/i18n/locales/de.ts Normal file
View File

@@ -0,0 +1,318 @@
import type { LanguageMetadata, LanguageTranslation } from '../types';
export const de: LanguageTranslation = {
translation: {
menu: {
file: {
file: 'Datei',
new: 'Neu',
open: 'Öffnen',
save: 'Save',
import_database: 'Import Datenbank',
export_sql: 'SQL exportieren',
export_as: 'Exportieren als',
delete_diagram: 'Diagramm löschen',
exit: 'Beenden',
},
edit: {
edit: 'Bearbeiten',
undo: 'Rückgängig',
redo: 'Wiederholen',
clear: 'Leeren',
},
view: {
view: 'Ansicht',
show_sidebar: 'Seitenleiste anzeigen',
hide_sidebar: 'Seitenleiste ausblenden',
hide_cardinality: 'Kardinalität ausblenden',
show_cardinality: 'Kardinalität anzeigen',
zoom_on_scroll: 'Zoom beim Scrollen',
theme: 'Stil',
change_language: 'Sprache',
},
help: {
help: 'Hilfe',
visit_website: 'ChartDB Website',
join_discord: 'ChartDB Discord',
schedule_a_call: 'ChartDB kontaktieren',
},
},
delete_diagram_alert: {
title: 'Diagramm löschen',
description:
'Diese Aktion kann nicht rückgängig gemacht werden. Das Diagramm wird dauerhaft gelöscht.',
cancel: 'Abbrechen',
delete: 'Löschen',
},
clear_diagram_alert: {
title: 'Diagramm leeren',
description:
'Diese Aktion kann nicht rückgängig gemacht werden. Alle Daten im Diagramm werden dauerhaft gelöscht.',
cancel: 'Abbrechen',
clear: 'Löschen',
},
reorder_diagram_alert: {
title: 'Diagramm neu anordnen',
description:
'Diese Aktion wird alle Tabellen im Diagramm neu anordnen. Wollen Sie fortfahren?',
reorder: 'Neu anordnen',
cancel: 'Abbrechen',
},
multiple_schemas_alert: {
title: 'Multiple Schemas',
description:
'{{schemasCount}} Schemas in diesem Diagramm. Derzeit angezeigt: {{formattedSchemas}}.',
dont_show_again: 'Nicht wieder anzeigen',
change_schema: 'Ändern',
none: 'Keine',
},
theme: {
system: 'System',
light: 'Hell',
dark: 'Dunkel',
},
zoom: {
on: 'An',
off: 'Aus',
},
last_saved: 'Zuletzt gespeichert',
saved: 'Gespeichert',
diagrams: 'Diagramme',
loading_diagram: 'Diagramm laden...',
deselect_all: 'Alle auswählen',
select_all: 'Alle auswählen',
clear: 'Leeren',
show_more: 'Mehr anzeigen',
show_less: 'Weniger anzeigen',
side_panel: {
schema: 'Schema:',
filter_by_schema: 'Nach Schema filtern',
search_schema: 'Schema suchen...',
no_schemas_found: 'Keine Schemas gefunden.',
view_all_options: 'Alle Optionen anzeigen...',
tables_section: {
tables: 'Tabellen',
add_table: 'Tabelle hinzufügen',
filter: 'Filter',
collapse: 'Alle einklappen',
table: {
fields: 'Felder',
nullable: 'Nullable?',
primary_key: 'Primärschlüssel',
indexes: 'Indizes',
comments: 'Kommentare',
no_comments: 'Keine Kommentare',
add_field: 'Feld hinzufügen',
add_index: 'Index hinzufügen',
index_select_fields: 'Felder auswählen',
no_types_found: 'Keine Datentypen gefunden',
field_name: 'Name',
field_type: 'Datentyp',
field_actions: {
title: 'Feldattribute',
unique: 'Eindeutig',
comments: 'Kommentare',
no_comments: 'Keine Kommentare',
delete_field: 'Feld löschen',
},
index_actions: {
title: 'Indexattribute',
name: 'Name',
unique: 'Eindeutig',
delete_index: 'Index löschen',
},
table_actions: {
title: 'Tabellenattribute',
change_schema: 'Schema ändern',
add_field: 'Feld hinzufügen',
add_index: 'Index hinzufügen',
delete_table: 'Tabelle löschen',
},
},
empty_state: {
title: 'Keine Tabellen',
description: 'Erstellen Sie eine Tabelle, um zu beginnen',
},
},
relationships_section: {
relationships: 'Beziehungen',
filter: 'Filter',
add_relationship: 'Beziehung hinzufügen',
collapse: 'Alle einklappen',
relationship: {
primary: 'Primary Table',
foreign: 'Referenced Table',
cardinality: 'Kardinalität',
delete_relationship: 'Löschen',
relationship_actions: {
title: 'Aktionen',
delete_relationship: 'Beziehung löschen',
},
},
empty_state: {
title: 'Keine Beziehungen',
description:
'Erstellen Sie eine Beziehung, um Tabellen zu verbinden',
},
},
},
toolbar: {
zoom_in: 'Zoom In',
zoom_out: 'Zoom Out',
save: 'Speichern',
show_all: 'Alle anzeigen',
undo: 'Rückgängig',
redo: 'Wiederholen',
reorder_diagram: 'Diagramm neu anordnen',
},
new_diagram_dialog: {
database_selection: {
title: 'Datenbank auswählen',
description: 'Jede Datenbank wird unterschiedlich importiert.',
check_examples_long: 'Beispiele ansehen',
check_examples_short: 'Beispiele',
},
import_database: {
title: 'Datenbank importieren',
database_edition: 'Datenbank Edition:',
step_1: 'Führen Sie dieses Skript in Ihrer Datenbank aus:',
step_2: 'Fügen Sie das Skriptergebnis hier ein:',
script_results_placeholder: 'Skript hier...',
ssms_instructions: {
button_text: 'SSMS Anweisungen',
title: 'Anweisungen',
step_1: 'Gehen Sie zu Tools > Optionen > Abfrageergebnisse > SQL Server.',
step_2: 'Wenn Sie "Ergebnisse in Raster" verwenden, ändern Sie die Maximale Anzahl von Zeichen für Nicht-XML-Daten (auf 9999999 setzen).',
},
},
cancel: 'Abbrechen',
back: 'Zurück',
empty_diagram: 'Diagramm leeren',
continue: 'Weiter',
import: 'Importieren',
},
open_diagram_dialog: {
title: 'Diagramm öffnen',
description: 'Wählen Sie ein Diagramm aus der Liste unten aus.',
table_columns: {
name: 'Name',
created_at: 'Erstellt am',
last_modified: 'Zuletzt geändert',
tables_count: 'Tabellen',
},
cancel: 'Abbrechen',
open: 'Öffnen',
},
export_sql_dialog: {
title: 'SQL exportieren',
description:
'Exportieren Sie das Schema Ihres Diagramms in ein {{databaseType}} Skript',
close: 'Schließen',
loading: {
text: 'KI erstellt SQL für {{databaseType}}...',
description: 'Dies sollte unter 30 Sekunden dauern.',
},
error: {
message:
'Fehler beim Generieren des SQL-Skripts. Bitte versuchen Sie es später erneut oder <0>kontaktieren Sie uns</0>.',
description:
'Sie können Ihren OPENAI_TOKEN verwenden, siehe <0>hier</0>.',
},
},
create_relationship_dialog: {
title: 'Beziehung erstellen',
primary_table: 'Primäre Tabelle',
primary_field: 'Primäres Feld',
referenced_table: 'Referenzierte Tabelle',
referenced_field: 'Referenziertes Feld',
primary_table_placeholder: 'Tabelle auswählen',
primary_field_placeholder: 'Feld auswählen',
referenced_table_placeholder: 'Tabelle auswählen',
referenced_field_placeholder: 'Feld auswählen',
no_tables_found: 'Keine Tabellen gefunden',
no_fields_found: 'Keine Felder gefunden',
create: 'Erstellen',
cancel: 'Abbrechen',
},
import_database_dialog: {
title: 'Datenbank importieren',
override_alert: {
title: 'Datenbank importieren',
content: {
alert: 'Importieren Sie dieses Diagramm wird vorhandene Tabellen und Beziehungen beeinflussen.',
new_tables:
'<bold>{{newTablesNumber}}</bold> neue Tabellen werden hinzugefügt.',
new_relationships:
'<bold>{{newRelationshipsNumber}}</bold> neue Beziehungen werden erstellt.',
tables_override:
'<bold>{{tablesOverrideNumber}}</bold> Tabellen werden überschrieben.',
proceed: 'Wollen Sie fortfahren?',
},
import: 'Importieren',
cancel: 'Abbrechen',
},
},
new_table_schema_dialog: {
title: 'Schema auswählen',
description:
'Mehrere Schemas sind derzeit angezeigt. Wählen Sie eines für die neue Tabelle aus.',
cancel: 'Abbrechen',
confirm: 'Bestätigen',
},
update_table_schema_dialog: {
title: 'Schema ändern',
description: 'Schema der Tabelle "{{tableName}}" ändern',
cancel: 'Abbrechen',
confirm: 'Ändern',
},
star_us_dialog: {
title: 'Hilf uns, uns zu verbessern!',
description:
'Gefällt Ihnen ChartDB? Lassen Sie es uns wissen und helfen Sie uns, ChartDB zu verbessern!',
close: 'Nicht jetzt',
confirm: 'Natürlich!',
},
relationship_type: {
one_to_one: 'Ein zu Eins (1:1)',
one_to_many: 'Ein zu Viele (1:n)',
many_to_one: 'Viele zu Eins (n:1)',
many_to_many: 'Viele zu Viele (n:m)',
},
canvas_context_menu: {
new_table: 'Neue Tabelle',
new_relationship: 'Neue Beziehung',
},
table_node_context_menu: {
edit_table: 'Tabelle bearbeiten',
delete_table: 'Tabelle löschen',
},
},
};
export const deMetadata: LanguageMetadata = {
name: 'Deutsch',
code: 'de',
};

View File

@@ -45,6 +45,7 @@ import { useLayout } from '@/hooks/use-layout';
import { useTheme } from '@/hooks/use-theme';
import { enMetadata } from '@/i18n/locales/en';
import { esMetadata } from '@/i18n/locales/es';
import { deMetadata } from '@/i18n/locales/de';
import { useLocalConfig } from '@/hooks/use-local-config';
import { frMetadata } from '@/i18n/locales/fr';
@@ -658,6 +659,17 @@ export const TopNavbar: React.FC<TopNavbarProps> = () => {
{t('menu.view.change_language')}
</MenubarSubTrigger>
<MenubarSubContent>
<MenubarCheckboxItem
onClick={() =>
changeLanguage(deMetadata.code)
}
checked={
i18n.language ===
deMetadata.code
}
>
{deMetadata.name}
</MenubarCheckboxItem>
<MenubarCheckboxItem
onClick={() =>
changeLanguage(enMetadata.code)