diff --git a/src/i18n/i18n.js b/src/i18n/i18n.js index b7af0f7..8ae9696 100644 --- a/src/i18n/i18n.js +++ b/src/i18n/i18n.js @@ -4,9 +4,9 @@ import LanguageDetector from "i18next-browser-languagedetector"; import { en, english } from "./locales/en"; import { zh, chinese } from "./locales/zh"; import { es, spanish } from "./locales/es"; +import { da, danish } from "./locales/da"; - -export const languages = [english, chinese, spanish]; +export const languages = [english, chinese, danish, spanish]; i18n .use(LanguageDetector) @@ -21,6 +21,7 @@ i18n en, zh, es, + da, }, }); diff --git a/src/i18n/locales/da.js b/src/i18n/locales/da.js new file mode 100644 index 0000000..baca4f5 --- /dev/null +++ b/src/i18n/locales/da.js @@ -0,0 +1,218 @@ +const danish = { + name: "Danish", + native_name: "Dansk", + code: "da", +}; + +const da = { + translation: { + report_bug: "Rapportér en fejl", + import: "Importér", + file: "Fil", + new: "Ny", + new_window: "Nyt vindue", + open: "Åben", + save: "Gem", + save_as: "Gem som", + save_as_template: "Gem som skabelon", + template_saved: "Skabelon gemt!", + rename: "Omdøb", + delete_diagram: "Slet diagram", + are_you_sure_delete_diagram: + "Er du sikker på at du vil slette dette diagram? Denne handling er irreversibel.", + oops_smth_went_wrong: "Ups! Noget gik galt.", + import_diagram: "Importér diagram", + import_from_source: "Importér fra kilde", + export_as: "Eksportér som", + export_source: "Eksportér kilde", + models: "Modeller", + exit: "Afslut", + edit: "Redigér", + undo: "Fortryd", + redo: "Gentag", + clear: "Ryd", + are_you_sure_clear: + "Er du sikker på at du vil rydde diagrammet? Denne handling er irreversibel.", + cut: "Klip", + copy: "Kopiér", + paste: "Indsæt", + duplicate: "Duplikér", + delete: "Slet", + copy_as_image: "Kopiér som billede", + view: "Visning", + header: "Hoved", + sidebar: "Sidebar", + issues: "Problemer", + presentation_mode: "Præsentations tilstand", + strict_mode: "Streng tilstand", + field_details: "Felt detaljer", + reset_view: "Nulstil visning", + show_grid: "Vis gitter", + show_cardinality: "Vis kardinalitet", + theme: "Tema", + light: "Lyst", + dark: "Mørkt", + zoom_in: "Zoom ind", + zoom_out: "Zoom ud", + fullscreen: "Fuld skærm", + settings: "Indstillinger", + show_timeline: "Vis tidslinje", + autosave: "Gem automatisk", + panning: "Panorering", + table_width: "Tabel bredde", + language: "Sprog", + flush_storage: "Tøm lagring", + are_you_sure_flush_storage: + "Er du sikker på at du vil tømme lagringen? Dette gør at alle dine diagrammer og individuelle skabeloner bliver slettet irreversibelt", + storage_flushed: "Lagring tømt", + help: "Hjælp", + shortcuts: "Genveje", + ask_on_discord: "Spørg os på Discord", + feedback: "Feedback", + no_changes: "Ingen ændringer", + loading: "Loader...", + last_saved: "Sidst gemt", + saving: "Gemmer...", + failed_to_save: "Gem fejlede", + fit_window_reset: "Tilpas vindue / Nulstil", + zoom: "Zoom", + add_table: "Tilføj tabel", + add_area: "Tilføj område", + add_note: "Tilføj note", + add_type: "Tilføj type", + to_do: "To-do", + tables: "Tabeller", + relationships: "Forhold", + subject_areas: "Emne områder", + notes: "Noter", + types: "Typer", + search: "Søg...", + no_tables: "Ingen tabeller", + no_tables_text: "Begynd at bygge dit diagram!", + no_relationships: "Ingen forhold", + no_relationships_text: "Træk for at forbinde felter og dan forhold!", + no_subject_areas: "Ingen emne områder", + no_subject_areas_text: "Tilføj emne områder for at gruppere tabeller!", + no_notes: "Ingen noter", + no_notes_text: "Brug noter for at registrere ekstra info", + no_types: "Ingen typer", + no_types_text: "Lav dine egne tilpassede data typer", + no_issues: "Ingen problemer blev opdaget.", + strict_mode_is_on_no_issues: + "Streng tilstand er slået fra, så ingen problemer vil blive vist.", + name: "Navn", + type: "Type", + null: "Nul", + not_null: "Ikke nul", + primary: "Primær", + unique: "Unik", + autoincrement: "Auto-inkrementel", + default_value: "Standardværdi", + check: "Tjek udtryk", + this_will_appear_as_is: "*Dette vil fremstå i det generede script som det er.", + comment: "Kommentar", + add_field: "Tilføj felt", + values: "værdier", + size: "Størrelse", + precision: "Præcision", + set_precision: "Sæt præcision: (størrelse, cifre)", + use_for_batch_input: "Brug , for samlet indtastning", + indices: "Indekser", + add_index: "Tilføj indeks", + select_fields: "Vælg felter", + title: "Titel", + not_set: "Ikke sat", + foreign: "Fremmed", + cardinality: "Kardinalitet", + on_update: "På opdater", + on_delete: "På slet", + swap: "Swap", + one_to_one: "En til en", + one_to_many: "En til mange", + many_to_one: "Mange til en", + content: "Indhold", + types_info: + "Denne feature er ment til objekt-relationelle DBMSer ligesom PostgreSQL.\nHvis brugt til MySQL eller MariaDB, vil en JSON type blive genereret med tilsvarende JSON validerings-tjek.\nHvis brugt til SQLite, vil det blive oversat til en BLOB.\nHvis brugt til MSSQL vil et type-alias til det første felt blive genereret.", + table_deleted: "Tabel slettet", + area_deleted: "Område slettet", + note_deleted: "Note slettet", + relationship_deleted: "Forhold slettet", + type_deleted: "Type slettet", + cannot_connect: "Kan ikke forbinde, kolonnerne har forskellige typer", + copied_to_clipboard: "Kopiér til clipboard", + create_new_diagram: "Opret nyt diagram", + cancel: "Afbryd", + open_diagram: "Åben diagram", + rename_diagram: "Omdøb diagram", + export: "Eksportér", + export_image: "Eksportér billede", + create: "Opret", + confirm: "Bekræft", + last_modified: "Sidst ændret", + drag_and_drop_files: "Træk og drop filen her eller klik for at uploade.", + support_json_and_ddb: "JSON og DDB filer er understøttet", + upload_sql_to_generate_diagrams: + "Upload en sql fil for at auto-generere dine tabeller og kolonner.", + overwrite_existing_diagram: "Overskriv eksisterende diagram", + only_mysql_supported: + "*For tiden er det kun MySQL scripts der er understøttet.", + blank: "Blank", + filename: "Filnavn", + table_w_no_name: "Erklærede en tabel med intet navn", + duplicate_table_by_name: "Dupliker tabellen med navnet '{{tableName}}'", + empty_field_name: "Tomt felt `navn` i tabellen '{{tableName}}'", + empty_field_type: "Tomt felt `type` i tabellen '{{tableName}}'", + no_values_for_field: + "'{{fieldName}}' felt fra tabellen '{{tableName}}' er af type `{{type}}` men ingen værdi er blevet specificeret", + default_doesnt_match_type: + "Standardværdien for feltet '{{fieldName}}' i tabellen '{{table.name}}' stemmer ikke overens med dens type", + not_null_is_null: + "'{{fieldName}}' felt fra tabellen '{{tableName}}' er IKKE NUL, men har standardværdien NUL", + duplicate_fields: + "Duplikat tabel felter med navn '{{fieldName}}' på tabellen '{{tableName}}'", + duplicate_index: + "Duplikat indeks med navn '{{indexName}}' på tabellen '{{tableName}}'", + empty_index: "Indeks på tabel '{{tableName}}' indekser ingen kolonner", + no_primary_key: "Tabel '{{tableName}}' har ingen primær nøgle", + type_with_no_name: "Erklæret en type med intet navn", + duplicate_types: "Duplikat typer med navnet '{{typeName}}'", + type_w_no_fields: "Erklæret en tom type '{{typeName}}' med ingen felter", + empty_type_field_name: "Tomt felt `navn` på typen '{{typeName}}'", + empty_type_field_type: "Tomt felt `type` på typen '{{typeName}}'", + no_values_for_type_field: + "'{{fieldName}}' felt af typen '{{typeName}}' er af typen `{{type}}` men ingen værdier er blevet specificeret", + duplicate_type_fields: + "Duplikat type felter med navnet '{{fieldName}}' på typen '{{typeName}}'", + duplicate_reference: "Duplikat reference med navnet '{{refName}}'", + circular_dependency: "Cirkulær afhængighed involveret tabel '{{refName}}'", + timeline: "Tidslinje", + priority: "Prioritet", + none: "Ingen", + low: "Lav", + medium: "Middel", + high: "Høj", + sort_by: "Sortér på", + my_order: "Min prioritering", + completed: "Færdiggjort", + alphabetically: "Alfabetisk", + add_task: "Tilføj opgave", + details: "Detaljer", + no_tasks: "Du har ingen opgaver endnu.", + no_activity: "Du har ingen aktivitet endnu.", + move_element: "Flyt {{name}} til {{coords}}", + edit_area: "{{extra}} Redigér område {{areaName}}", + delete_area: "Slet område {{areaName}}", + edit_note: "{{extra}} Redigér note {{noteTitle}}", + delete_note: "Slet note {{noteTitle}}", + edit_table: "{{extra}} Redigér tabel {{tableName}}", + delete_table: "Slet tabel {{tableName}}", + edit_type: "{{extra}} Redigér type {{typeName}}", + delete_type: "Slet type {{typeName}}", + add_relationship: "Tilføj forhold", + edit_relationship: "{{extra}} Redigér forhold {{refName}}", + delete_relationship: "Slet forhold {{refName}}", + not_found: "Ikke fundet", + }, +}; + +export { da, danish }; diff --git a/src/i18n/locales/en.js b/src/i18n/locales/en.js index 7daf6a3..0c5d1d5 100644 --- a/src/i18n/locales/en.js +++ b/src/i18n/locales/en.js @@ -22,9 +22,9 @@ const en = { "Are you sure you want to delete this diagram? This operation is irreversible.", oops_smth_went_wrong: "Oops! Something went wrong.", import_diagram: "Import diagram", - import_from_source: "Import from source", + import_from_source: "Import from SQL", export_as: "Export as", - export_source: "Export source", + export_source: "Export SQL", models: "Models", exit: "Exit", edit: "Edit", @@ -40,7 +40,7 @@ const en = { delete: "Delete", copy_as_image: "Copy as image", view: "View", - header: "Header", + header: "Menubar", sidebar: "Sidebar", issues: "Issues", presentation_mode: "Presentation mode", diff --git a/src/i18n/locales/zh.js b/src/i18n/locales/zh.js index d791931..5683ac9 100644 --- a/src/i18n/locales/zh.js +++ b/src/i18n/locales/zh.js @@ -10,7 +10,7 @@ const zh = { import: "导入", file: "文件", new: "新建", - new_window: "新窗口", + new_window: "在新标签中打开", open: "打开", save: "保存", save_as: "另存为", @@ -21,24 +21,24 @@ const zh = { are_you_sure_delete_diagram: "确定要删除此图表吗?此操作不可逆转。", oops_smth_went_wrong: "糟糕!出了些问题。", import_diagram: "导入图表", - import_from_source: "从源导入", + import_from_source: "导入 SQL 源代码", export_as: "导出为", - export_source: "导出源", + export_source: "导出为 SQL 源代码", models: "模型", exit: "退出", edit: "编辑", undo: "撤销", - redo: "重做", + redo: "恢复", clear: "清除", are_you_sure_clear: "确定要清除图表吗?此操作不可逆转。", cut: "剪切", copy: "复制", paste: "粘贴", - duplicate: "复制", + duplicate: "克隆", delete: "删除", - copy_as_image: "复制为图像", + copy_as_image: "复制画布为图片", view: "视图", - header: "标题", + header: "菜单栏", sidebar: "侧边栏", issues: "问题", presentation_mode: "演示模式", @@ -46,26 +46,26 @@ const zh = { field_details: "字段详情", reset_view: "重置视图", show_grid: "显示网格", - show_cardinality: "显示基数", + show_cardinality: "显示关系", theme: "主题", - light: "明亮", - dark: "暗黑", + light: "浅色", + dark: "深色", zoom_in: "放大", zoom_out: "缩小", fullscreen: "全屏", settings: "设置", - show_timeline: "显示时间轴", + show_timeline: "修改记录", autosave: "自动保存", - panning: "平移", + panning: "画布可拖动", table_width: "表格宽度", language: "语言", flush_storage: "清除存储", are_you_sure_flush_storage: - "确定要清除存储吗?这将不可逆地删除所有您的图表和自定义模板。", - storage_flushed: "存储已清除", + "您确定要清除存储吗?此操作将无法恢复地删除您所有的图表和自定义模板。", + storage_flushed: "存储已清空", help: "帮助", shortcuts: "快捷键", - ask_on_discord: "在 Discord 上问我们", + ask_on_discord: "在 Discord 联系我们", feedback: "反馈", no_changes: "没有更改", loading: "加载中...", @@ -85,15 +85,15 @@ const zh = { notes: "注释", types: "类型", search: "搜索...", - no_tables: "没有表", + no_tables: "空空如也", no_tables_text: "开始构建您的图表!", - no_relationships: "没有关系", + no_relationships: "空空如也", no_relationships_text: "拖动以连接字段并形成关系!", - no_subject_areas: "没有主题区域", + no_subject_areas: "空空如也", no_subject_areas_text: "添加主题区域以分组表!", - no_notes: "没有注释", + no_notes: "空空如也", no_notes_text: "使用注释记录额外信息", - no_types: "没有类型", + no_types: "空空如也", no_types_text: "制作您自己的自定义数据类型", no_issues: "未检测到问题。", strict_mode_is_on_no_issues: "严格模式已关闭,因此不会显示任何问题。", @@ -104,7 +104,7 @@ const zh = { primary: "主键", unique: "唯一", autoincrement: "自增", - default_value: "默认", + default_value: "默认值", check: "检查表达式", this_will_appear_as_is: "*此内容将按原样显示在生成的脚本中。", comment: "评论", @@ -120,7 +120,7 @@ const zh = { title: "标题", not_set: "未设置", foreign: "外键", - cardinality: "基数", + cardinality: "关系映射", on_update: "更新时", on_delete: "删除时", swap: "交换", @@ -154,7 +154,7 @@ const zh = { blank: "空", filename: "文件名", table_w_no_name: "声明了一个没有名称的表", - duplicate_table_by_name: "通过名称 '{{tableName}}' 重复声明了一个表", + duplicate_table_by_name: "重复声明了名为 '{{tableName}}' 的表", empty_field_name: "表 '{{tableName}}' 中的字段 `name` 为空", empty_field_type: "表 '{{tableName}}' 中的字段 `type` 为空", no_values_for_field: @@ -164,21 +164,21 @@ const zh = { not_null_is_null: "表 '{{tableName}}' 中的 '{{fieldName}}' 字段为 NOT NULL,但默认值为 NULL", duplicate_fields: - "在表 '{{tableName}}' 中通过名称 '{{fieldName}}' 重复声明了字段", + "在表 '{{tableName}}' 中重复声明了名为 '{{fieldName}}' 的字段", duplicate_index: - "在表 '{{tableName}}' 中通过名称 '{{indexName}}' 重复声明了索引", + "在表 '{{tableName}}' 中重复声明了名为 '{{indexName}}' 的索引", empty_index: "在表 '{{tableName}}' 中的索引未指定任何列", no_primary_key: "表 '{{tableName}}' 没有主键", type_with_no_name: "声明了一个没有名称的类型", - duplicate_types: "通过名称 '{{typeName}}' 重复声明了类型", + duplicate_types: "重复声明了名为 '{{typeName}}' 的类型", type_w_no_fields: "声明了一个没有字段的空类型 '{{typeName}}'", empty_type_field_name: "类型 '{{typeName}}' 中的字段 `name` 为空", empty_type_field_type: "类型 '{{typeName}}' 中的字段 `type` 为空", no_values_for_type_field: "类型 '{{typeName}}' 的 '{{fieldName}}' 字段类型为 `{{type}}`,但未指定任何值", duplicate_type_fields: - "在类型 '{{typeName}}' 中通过名称 '{{fieldName}}' 重复声明了字段", - duplicate_reference: "通过名称 '{{refName}}' 重复声明了引用", + "在自定义类 '{{typeName}}' 中重复声明了名为 '{{fieldName}}' 的字段", + duplicate_reference: "重复声明了名为 '{{refName}}' 的引用", circular_dependency: "涉及到表 '{{refName}}' 的循环依赖", timeline: "时间轴", priority: "优先级",