Compare commits
10 Commits
1e6aeca05e
...
6b5e3580fb
Author | SHA1 | Date | |
---|---|---|---|
|
6b5e3580fb | ||
|
fa1e736436 | ||
|
6cc9942062 | ||
|
e1ca9b0cd6 | ||
|
885eb8298f | ||
|
8fe4ec5ac8 | ||
|
0e54dbed1b | ||
|
0d813fc0dd | ||
|
e3877ef982 | ||
|
799a79e8a8 |
2
.github/FUNDING.yml
vendored
2
.github/FUNDING.yml
vendored
@ -1,2 +0,0 @@
|
||||
open_collective: drawdb
|
||||
buy_me_a_coffee: drawdb
|
@ -15,9 +15,6 @@
|
||||
<a href="https://x.com/drawDB_" style="display: flex; align-items: center;">
|
||||
<img src="https://img.shields.io/badge/Follow%20us%20on%20X-blue?logo=X" alt="Follow us on X"/>
|
||||
</a>
|
||||
<a href="https://buymeacoffee.com/drawdb" style="display: flex; align-items: center;">
|
||||
<img src="https://img.shields.io/badge/Support%20us-grey?logo=buymeacoffee" alt="Support us"/>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<h3 align="center"><img width="700" style="border-radius:5px;" alt="demo" src="drawdb.png"></h3>
|
||||
|
89
package-lock.json
generated
89
package-lock.json
generated
@ -10,12 +10,14 @@
|
||||
"dependencies": {
|
||||
"@codemirror/lang-json": "^6.0.1",
|
||||
"@codemirror/lang-sql": "^6.6.3",
|
||||
"@dbml/core": "^3.9.7-alpha.0",
|
||||
"@douyinfe/semi-ui": "^2.51.3",
|
||||
"@lexical/react": "^0.12.5",
|
||||
"@uiw/codemirror-theme-github": "^4.21.25",
|
||||
"@uiw/codemirror-theme-vscode": "^4.21.25",
|
||||
"@uiw/react-codemirror": "^4.21.25",
|
||||
"@vercel/analytics": "^1.2.2",
|
||||
"@vercel/speed-insights": "^1.2.0",
|
||||
"axios": "^1.7.4",
|
||||
"classnames": "^2.5.1",
|
||||
"dexie": "^3.2.4",
|
||||
@ -536,6 +538,34 @@
|
||||
"w3c-keyname": "^2.2.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@dbml/core": {
|
||||
"version": "3.9.7-alpha.0",
|
||||
"resolved": "https://registry.npmjs.org/@dbml/core/-/core-3.9.7-alpha.0.tgz",
|
||||
"integrity": "sha512-KGXr7p80XuoqQJumOs2+RHRBBH703gNxM0uiEvT1FF945+H4LriNK4ZgbXqe2ObmRNbwF2/TYFou+lqkh+tbUw==",
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@dbml/parse": "^3.9.7-alpha.0",
|
||||
"antlr4": "^4.13.1",
|
||||
"lodash": "^4.17.15",
|
||||
"parsimmon": "^1.13.0",
|
||||
"pluralize": "^8.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16"
|
||||
}
|
||||
},
|
||||
"node_modules/@dbml/parse": {
|
||||
"version": "3.9.7-alpha.0",
|
||||
"resolved": "https://registry.npmjs.org/@dbml/parse/-/parse-3.9.7-alpha.0.tgz",
|
||||
"integrity": "sha512-QT0rmbbnjn6hKbGXMhvdw62Gn8YgXjvG5a+0+9EoZFpFdl/Y8VSPlHqpHbdMas2kOpusMgpa1YRFaTMApZM7Mw==",
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"lodash": "^4.17.21"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"lodash": "^4.17.21"
|
||||
}
|
||||
},
|
||||
"node_modules/@dnd-kit/accessibility": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@dnd-kit/accessibility/-/accessibility-3.1.0.tgz",
|
||||
@ -2274,6 +2304,41 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@vercel/speed-insights": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@vercel/speed-insights/-/speed-insights-1.2.0.tgz",
|
||||
"integrity": "sha512-y9GVzrUJ2xmgtQlzFP2KhVRoCglwfRQgjyfY607aU0hh0Un6d0OUyrJkjuAlsV18qR4zfoFPs/BiIj9YDS6Wzw==",
|
||||
"hasInstallScript": true,
|
||||
"license": "Apache-2.0",
|
||||
"peerDependencies": {
|
||||
"@sveltejs/kit": "^1 || ^2",
|
||||
"next": ">= 13",
|
||||
"react": "^18 || ^19 || ^19.0.0-rc",
|
||||
"svelte": ">= 4",
|
||||
"vue": "^3",
|
||||
"vue-router": "^4"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@sveltejs/kit": {
|
||||
"optional": true
|
||||
},
|
||||
"next": {
|
||||
"optional": true
|
||||
},
|
||||
"react": {
|
||||
"optional": true
|
||||
},
|
||||
"svelte": {
|
||||
"optional": true
|
||||
},
|
||||
"vue": {
|
||||
"optional": true
|
||||
},
|
||||
"vue-router": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@vitejs/plugin-react": {
|
||||
"version": "4.2.1",
|
||||
"resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.2.1.tgz",
|
||||
@ -2351,6 +2416,15 @@
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/antlr4": {
|
||||
"version": "4.13.2",
|
||||
"resolved": "https://registry.npmjs.org/antlr4/-/antlr4-4.13.2.tgz",
|
||||
"integrity": "sha512-QiVbZhyy4xAZ17UPEuG3YTOt8ZaoeOR1CvEAqrEsDBsOqINslaB147i9xqljZqoyf5S+EUlGStaj+t22LT9MOg==",
|
||||
"license": "BSD-3-Clause",
|
||||
"engines": {
|
||||
"node": ">=16"
|
||||
}
|
||||
},
|
||||
"node_modules/any-promise": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
|
||||
@ -5065,6 +5139,12 @@
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/parsimmon": {
|
||||
"version": "1.18.1",
|
||||
"resolved": "https://registry.npmjs.org/parsimmon/-/parsimmon-1.18.1.tgz",
|
||||
"integrity": "sha512-u7p959wLfGAhJpSDJVYXoyMCXWYwHia78HhRBWqk7AIbxdmlrfdp5wX0l3xv/iTSH5HvhN9K7o26hwwpgS5Nmw==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/path-exists": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
|
||||
@ -5139,6 +5219,15 @@
|
||||
"node": ">= 6"
|
||||
}
|
||||
},
|
||||
"node_modules/pluralize": {
|
||||
"version": "8.0.0",
|
||||
"resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz",
|
||||
"integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/postcss": {
|
||||
"version": "8.4.41",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz",
|
||||
|
@ -12,12 +12,14 @@
|
||||
"dependencies": {
|
||||
"@codemirror/lang-json": "^6.0.1",
|
||||
"@codemirror/lang-sql": "^6.6.3",
|
||||
"@dbml/core": "^3.9.7-alpha.0",
|
||||
"@douyinfe/semi-ui": "^2.51.3",
|
||||
"@lexical/react": "^0.12.5",
|
||||
"@uiw/codemirror-theme-github": "^4.21.25",
|
||||
"@uiw/codemirror-theme-vscode": "^4.21.25",
|
||||
"@uiw/react-codemirror": "^4.21.25",
|
||||
"@vercel/analytics": "^1.2.2",
|
||||
"@vercel/speed-insights": "^1.2.0",
|
||||
"axios": "^1.7.4",
|
||||
"classnames": "^2.5.1",
|
||||
"dexie": "^3.2.4",
|
||||
|
@ -450,7 +450,7 @@ export default function Canvas() {
|
||||
(e) => {
|
||||
e.preventDefault();
|
||||
|
||||
if (e.ctrlKey) {
|
||||
if (e.ctrlKey || e.metaKey) {
|
||||
// How "eager" the viewport is to
|
||||
// center the cursor's coordinates
|
||||
const eagernessFactor = 0.05;
|
||||
|
@ -24,7 +24,6 @@ import {
|
||||
Popconfirm,
|
||||
} from "@douyinfe/semi-ui";
|
||||
import { toPng, toJpeg, toSvg } from "html-to-image";
|
||||
import { saveAs } from "file-saver";
|
||||
import {
|
||||
jsonToMySQL,
|
||||
jsonToPostgreSQL,
|
||||
@ -40,6 +39,7 @@ import {
|
||||
MODAL,
|
||||
SIDESHEET,
|
||||
DB,
|
||||
IMPORT_FROM,
|
||||
} from "../../data/constants";
|
||||
import jsPDF from "jspdf";
|
||||
import { useHotkeys } from "react-hotkeys-hook";
|
||||
@ -74,6 +74,7 @@ import { isRtl } from "../../i18n/utils/rtl";
|
||||
import { jsonToDocumentation } from "../../utils/exportAs/documentation";
|
||||
import { IdContext } from "../Workspace";
|
||||
import { socials } from "../../data/socials";
|
||||
import { toDBML } from "../../utils/exportAs/dbml";
|
||||
|
||||
export default function ControlPanel({
|
||||
diagramId,
|
||||
@ -91,6 +92,7 @@ export default function ControlPanel({
|
||||
filename: `${title}_${new Date().toISOString()}`,
|
||||
extension: "",
|
||||
});
|
||||
const [importFrom, setImportFrom] = useState(IMPORT_FROM.JSON);
|
||||
const { saveState, setSaveState } = useSaveState();
|
||||
const { layout, setLayout } = useLayout();
|
||||
const { settings, setSettings } = useSettings();
|
||||
@ -788,9 +790,18 @@ export default function ControlPanel({
|
||||
.catch(() => Toast.error(t("oops_smth_went_wrong")));
|
||||
},
|
||||
},
|
||||
import_diagram: {
|
||||
function: fileImport,
|
||||
shortcut: "Ctrl+I",
|
||||
import_from: {
|
||||
children: [
|
||||
{
|
||||
JSON: fileImport,
|
||||
},
|
||||
{
|
||||
DBML: () => {
|
||||
setModal(MODAL.IMPORT);
|
||||
setImportFrom(IMPORT_FROM.DBML);
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
import_from_source: {
|
||||
...(database === DB.GENERIC && {
|
||||
@ -963,6 +974,21 @@ export default function ControlPanel({
|
||||
setModal(MODAL.IMG);
|
||||
},
|
||||
},
|
||||
{
|
||||
SVG: () => {
|
||||
const filter = (node) => node.tagName !== "i";
|
||||
toSvg(document.getElementById("canvas"), { filter: filter }).then(
|
||||
function (dataUrl) {
|
||||
setExportData((prev) => ({
|
||||
...prev,
|
||||
data: dataUrl,
|
||||
extension: "svg",
|
||||
}));
|
||||
},
|
||||
);
|
||||
setModal(MODAL.IMG);
|
||||
},
|
||||
},
|
||||
{
|
||||
JSON: () => {
|
||||
setModal(MODAL.CODE);
|
||||
@ -988,19 +1014,19 @@ export default function ControlPanel({
|
||||
},
|
||||
},
|
||||
{
|
||||
SVG: () => {
|
||||
const filter = (node) => node.tagName !== "i";
|
||||
toSvg(document.getElementById("canvas"), { filter: filter }).then(
|
||||
function (dataUrl) {
|
||||
DBML: () => {
|
||||
setModal(MODAL.CODE);
|
||||
const result = toDBML({
|
||||
tables,
|
||||
relationships,
|
||||
enums,
|
||||
});
|
||||
setExportData((prev) => ({
|
||||
...prev,
|
||||
data: dataUrl,
|
||||
extension: "svg",
|
||||
data: result,
|
||||
extension: "dbml",
|
||||
}));
|
||||
},
|
||||
);
|
||||
setModal(MODAL.IMG);
|
||||
},
|
||||
},
|
||||
{
|
||||
PDF: () => {
|
||||
@ -1022,30 +1048,6 @@ export default function ControlPanel({
|
||||
});
|
||||
},
|
||||
},
|
||||
{
|
||||
DRAWDB: () => {
|
||||
const result = JSON.stringify(
|
||||
{
|
||||
author: "Unnamed",
|
||||
title: title,
|
||||
date: new Date().toISOString(),
|
||||
tables: tables,
|
||||
relationships: relationships,
|
||||
notes: notes,
|
||||
subjectAreas: areas,
|
||||
database: database,
|
||||
...(databases[database].hasTypes && { types: types }),
|
||||
...(databases[database].hasEnums && { enums: enums }),
|
||||
},
|
||||
null,
|
||||
2,
|
||||
);
|
||||
const blob = new Blob([result], {
|
||||
type: "text/plain;charset=utf-8",
|
||||
});
|
||||
saveAs(blob, `${exportData.filename}.ddb`);
|
||||
},
|
||||
},
|
||||
{
|
||||
MERMAID: () => {
|
||||
setModal(MODAL.CODE);
|
||||
@ -1361,35 +1363,35 @@ export default function ControlPanel({
|
||||
},
|
||||
};
|
||||
|
||||
useHotkeys("ctrl+i, meta+i", fileImport, { preventDefault: true });
|
||||
useHotkeys("ctrl+z, meta+z", undo, { preventDefault: true });
|
||||
useHotkeys("ctrl+y, meta+y", redo, { preventDefault: true });
|
||||
useHotkeys("ctrl+s, meta+s", save, { preventDefault: true });
|
||||
useHotkeys("ctrl+o, meta+o", open, { preventDefault: true });
|
||||
useHotkeys("ctrl+e, meta+e", edit, { preventDefault: true });
|
||||
useHotkeys("ctrl+d, meta+d", duplicate, { preventDefault: true });
|
||||
useHotkeys("ctrl+c, meta+c", copy, { preventDefault: true });
|
||||
useHotkeys("ctrl+v, meta+v", paste, { preventDefault: true });
|
||||
useHotkeys("ctrl+x, meta+x", cut, { preventDefault: true });
|
||||
useHotkeys("mod+i", fileImport, { preventDefault: true });
|
||||
useHotkeys("mod+z", undo, { preventDefault: true });
|
||||
useHotkeys("mod+y", redo, { preventDefault: true });
|
||||
useHotkeys("mod+s", save, { preventDefault: true });
|
||||
useHotkeys("mod+o", open, { preventDefault: true });
|
||||
useHotkeys("mod+e", edit, { preventDefault: true });
|
||||
useHotkeys("mod+d", duplicate, { preventDefault: true });
|
||||
useHotkeys("mod+c", copy, { preventDefault: true });
|
||||
useHotkeys("mod+v", paste, { preventDefault: true });
|
||||
useHotkeys("mod+x", cut, { preventDefault: true });
|
||||
useHotkeys("delete", del, { preventDefault: true });
|
||||
useHotkeys("ctrl+shift+g, meta+shift+g", viewGrid, { preventDefault: true });
|
||||
useHotkeys("ctrl+up, meta+up", zoomIn, { preventDefault: true });
|
||||
useHotkeys("ctrl+down, meta+down", zoomOut, { preventDefault: true });
|
||||
useHotkeys("ctrl+shift+m, meta+shift+m", viewStrictMode, {
|
||||
useHotkeys("mod+shift+g", viewGrid, { preventDefault: true });
|
||||
useHotkeys("mod+up", zoomIn, { preventDefault: true });
|
||||
useHotkeys("mod+down", zoomOut, { preventDefault: true });
|
||||
useHotkeys("mod+shift+m", viewStrictMode, {
|
||||
preventDefault: true,
|
||||
});
|
||||
useHotkeys("ctrl+shift+f, meta+shift+f", viewFieldSummary, {
|
||||
useHotkeys("mod+shift+f", viewFieldSummary, {
|
||||
preventDefault: true,
|
||||
});
|
||||
useHotkeys("ctrl+shift+s, meta+shift+s", saveDiagramAs, {
|
||||
useHotkeys("mod+shift+s", saveDiagramAs, {
|
||||
preventDefault: true,
|
||||
});
|
||||
useHotkeys("ctrl+alt+c, meta+alt+c", copyAsImage, { preventDefault: true });
|
||||
useHotkeys("ctrl+r, meta+r", resetView, { preventDefault: true });
|
||||
useHotkeys("ctrl+h, meta+h", () => window.open(socials.docs, "_blank"), {
|
||||
useHotkeys("mod+alt+c", copyAsImage, { preventDefault: true });
|
||||
useHotkeys("mod+r", resetView, { preventDefault: true });
|
||||
useHotkeys("mod+h", () => window.open(socials.docs, "_blank"), {
|
||||
preventDefault: true,
|
||||
});
|
||||
useHotkeys("ctrl+alt+w, meta+alt+w", fitWindow, { preventDefault: true });
|
||||
useHotkeys("mod+alt+w", fitWindow, { preventDefault: true });
|
||||
|
||||
return (
|
||||
<>
|
||||
@ -1423,6 +1425,7 @@ export default function ControlPanel({
|
||||
setTitle={setTitle}
|
||||
setDiagramId={setDiagramId}
|
||||
setModal={setModal}
|
||||
importFrom={importFrom}
|
||||
importDb={importDb}
|
||||
/>
|
||||
<Sidesheet
|
||||
|
@ -3,7 +3,7 @@ import {
|
||||
jsonDiagramIsValid,
|
||||
} from "../../../utils/validateSchema";
|
||||
import { Upload, Banner } from "@douyinfe/semi-ui";
|
||||
import { DB, STATUS } from "../../../data/constants";
|
||||
import { DB, IMPORT_FROM, STATUS } from "../../../data/constants";
|
||||
import {
|
||||
useAreas,
|
||||
useEnums,
|
||||
@ -12,8 +12,14 @@ import {
|
||||
useTypes,
|
||||
} from "../../../hooks";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { fromDBML } from "../../../utils/importFrom/dbml";
|
||||
|
||||
export default function ImportDiagram({ setImportData, error, setError }) {
|
||||
export default function ImportDiagram({
|
||||
setImportData,
|
||||
error,
|
||||
setError,
|
||||
importFrom,
|
||||
}) {
|
||||
const { areas } = useAreas();
|
||||
const { notes } = useNotes();
|
||||
const { tables, relationships, database } = useDiagram();
|
||||
@ -32,17 +38,7 @@ export default function ImportDiagram({ setImportData, error, setError }) {
|
||||
);
|
||||
};
|
||||
|
||||
return (
|
||||
<div>
|
||||
<Upload
|
||||
action="#"
|
||||
beforeUpload={({ file, fileList }) => {
|
||||
const f = fileList[0].fileInstance;
|
||||
if (!f) {
|
||||
return;
|
||||
}
|
||||
const reader = new FileReader();
|
||||
reader.onload = async (e) => {
|
||||
const loadJsonData = (file, e) => {
|
||||
let jsonObject = null;
|
||||
try {
|
||||
jsonObject = JSON.parse(e.target.result);
|
||||
@ -53,21 +49,20 @@ export default function ImportDiagram({ setImportData, error, setError }) {
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (f.type === "application/json") {
|
||||
|
||||
if (file.type === "application/json") {
|
||||
if (!jsonDiagramIsValid(jsonObject)) {
|
||||
setError({
|
||||
type: STATUS.ERROR,
|
||||
message:
|
||||
"The file is missing necessary properties for a diagram.",
|
||||
message: "The file is missing necessary properties for a diagram.",
|
||||
});
|
||||
return;
|
||||
}
|
||||
} else if (f.name.split(".").pop() === "ddb") {
|
||||
} else if (file.name.split(".").pop() === "ddb") {
|
||||
if (!ddbDiagramIsValid(jsonObject)) {
|
||||
setError({
|
||||
type: STATUS.ERROR,
|
||||
message:
|
||||
"The file is missing necessary properties for a diagram.",
|
||||
message: "The file is missing necessary properties for a diagram.",
|
||||
});
|
||||
return;
|
||||
}
|
||||
@ -129,6 +124,53 @@ export default function ImportDiagram({ setImportData, error, setError }) {
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
const loadDBMLData = (e) => {
|
||||
try {
|
||||
setImportData(fromDBML(e.target.result));
|
||||
} catch (error) {
|
||||
const message = `${error.diags[0].name} [Ln ${error.diags[0].location.start.line}, Col ${error.diags[0].location.start.column}]: ${error.diags[0].message}`;
|
||||
|
||||
setError({ type: STATUS.ERROR, message });
|
||||
}
|
||||
};
|
||||
|
||||
const getAcceptableFileTypes = () => {
|
||||
switch (importFrom) {
|
||||
case IMPORT_FROM.JSON:
|
||||
return "application/json,.ddb";
|
||||
case IMPORT_FROM.DBML:
|
||||
return ".dbml";
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
};
|
||||
|
||||
const getDragSubText = () => {
|
||||
switch (importFrom) {
|
||||
case IMPORT_FROM.JSON:
|
||||
return `${t("supported_types")} JSON, DDB`;
|
||||
case IMPORT_FROM.DBML:
|
||||
return `${t("supported_types")} DBML`;
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<div>
|
||||
<Upload
|
||||
action="#"
|
||||
beforeUpload={({ file, fileList }) => {
|
||||
const f = fileList[0].fileInstance;
|
||||
if (!f) {
|
||||
return;
|
||||
}
|
||||
const reader = new FileReader();
|
||||
reader.onload = async (e) => {
|
||||
if (importFrom == IMPORT_FROM.JSON) loadJsonData(f, e);
|
||||
if (importFrom == IMPORT_FROM.DBML) loadDBMLData(e);
|
||||
};
|
||||
reader.readAsText(f);
|
||||
|
||||
return {
|
||||
@ -140,8 +182,8 @@ export default function ImportDiagram({ setImportData, error, setError }) {
|
||||
}}
|
||||
draggable={true}
|
||||
dragMainText={t("drag_and_drop_files")}
|
||||
dragSubText={t("support_json_and_ddb")}
|
||||
accept="application/json,.ddb"
|
||||
dragSubText={getDragSubText()}
|
||||
accept={getAcceptableFileTypes()}
|
||||
onRemove={() =>
|
||||
setError({
|
||||
type: STATUS.NONE,
|
||||
|
@ -48,6 +48,7 @@ export default function Modal({
|
||||
exportData,
|
||||
setExportData,
|
||||
importDb,
|
||||
importFrom,
|
||||
}) {
|
||||
const { t, i18n } = useTranslation();
|
||||
const { setTables, setRelationships, database, setDatabase } = useDiagram();
|
||||
@ -75,8 +76,8 @@ export default function Modal({
|
||||
const overwriteDiagram = () => {
|
||||
setTables(importData.tables);
|
||||
setRelationships(importData.relationships);
|
||||
setAreas(importData.subjectAreas);
|
||||
setNotes(importData.notes);
|
||||
setAreas(importData.subjectAreas ?? []);
|
||||
setNotes(importData.notes ?? []);
|
||||
if (importData.title) {
|
||||
setTitle(importData.title);
|
||||
}
|
||||
@ -247,6 +248,7 @@ export default function Modal({
|
||||
setImportData={setImportData}
|
||||
error={error}
|
||||
setError={setError}
|
||||
importFrom={importFrom}
|
||||
/>
|
||||
);
|
||||
case MODAL.IMPORT_SRC:
|
||||
|
@ -24,25 +24,25 @@ export default function Navbar() {
|
||||
.scrollIntoView({ behavior: "smooth" })
|
||||
}
|
||||
>
|
||||
Features
|
||||
功能
|
||||
</Link>
|
||||
<Link
|
||||
to="/editor"
|
||||
className="text-lg font-semibold hover:text-sky-800 transition-colors duration-300"
|
||||
>
|
||||
Editor
|
||||
编辑器
|
||||
</Link>
|
||||
<Link
|
||||
to="/templates"
|
||||
className="text-lg font-semibold hover:text-sky-800 transition-colors duration-300"
|
||||
>
|
||||
Templates
|
||||
模板
|
||||
</Link>
|
||||
<Link
|
||||
to={socials.docs}
|
||||
className="text-lg font-semibold hover:text-sky-800 transition-colors duration-300"
|
||||
>
|
||||
Docs
|
||||
文档
|
||||
</Link>
|
||||
</div>
|
||||
<div className="md:hidden block space-x-3 ms-12">
|
||||
@ -100,28 +100,28 @@ export default function Navbar() {
|
||||
setOpenMenu(false);
|
||||
}}
|
||||
>
|
||||
Features
|
||||
功能
|
||||
</Link>
|
||||
<hr />
|
||||
<Link
|
||||
to="/editor"
|
||||
className="hover:bg-zinc-100 block p-3 text-base font-semibold"
|
||||
>
|
||||
Editor
|
||||
编辑器
|
||||
</Link>
|
||||
<hr />
|
||||
<Link
|
||||
to="/templates"
|
||||
className="hover:bg-zinc-100 block p-3 text-base font-semibold"
|
||||
>
|
||||
Templates
|
||||
模板
|
||||
</Link>
|
||||
<hr />
|
||||
<Link
|
||||
to={socials.docs}
|
||||
className="hover:bg-zinc-100 block p-3 text-base font-semibold"
|
||||
>
|
||||
Docs
|
||||
文档
|
||||
</Link>
|
||||
</SideSheet>
|
||||
</>
|
||||
|
@ -115,3 +115,8 @@ export const DB = {
|
||||
MARIADB: "mariadb",
|
||||
GENERIC: "generic",
|
||||
};
|
||||
|
||||
export const IMPORT_FROM = {
|
||||
JSON: 0,
|
||||
DBML: 1,
|
||||
};
|
@ -12,6 +12,7 @@ import { fa, persian } from "./locales/fa";
|
||||
import { hi, hindi } from "./locales/hi";
|
||||
import { uk, ukrainian } from "./locales/uk";
|
||||
import { ru, russian } from "./locales/ru";
|
||||
import { ro, romanian } from "./locales/ro";
|
||||
import { tr, turkish } from "./locales/tr";
|
||||
import { mr, marathi } from "./locales/mr";
|
||||
import { fr, french } from "./locales/fr";
|
||||
@ -36,6 +37,7 @@ import { sv, swedish } from "./locales/sv-se";
|
||||
import { ur, urdu } from "./locales/ur";
|
||||
import { jp, japanese} from "./locales/jp"
|
||||
import {ne, nepali} from "./locales/ne"
|
||||
import {ug, uyghur} from "./locales/ug";
|
||||
|
||||
export const languages = [
|
||||
english,
|
||||
@ -50,6 +52,7 @@ export const languages = [
|
||||
marathi,
|
||||
ukrainian,
|
||||
russian,
|
||||
romanian,
|
||||
turkish,
|
||||
french,
|
||||
punjabi,
|
||||
@ -72,7 +75,8 @@ export const languages = [
|
||||
swedish,
|
||||
urdu,
|
||||
japanese,
|
||||
nepali
|
||||
nepali,
|
||||
uyghur
|
||||
].sort((a, b) => a.name.localeCompare(b.name));
|
||||
|
||||
i18n
|
||||
@ -97,6 +101,7 @@ i18n
|
||||
mr,
|
||||
uk,
|
||||
ru,
|
||||
ro,
|
||||
tr,
|
||||
fr,
|
||||
pa,
|
||||
@ -119,7 +124,8 @@ i18n
|
||||
sv,
|
||||
ur,
|
||||
jp,
|
||||
ne
|
||||
ne,
|
||||
ug
|
||||
},
|
||||
});
|
||||
|
||||
|
@ -7,6 +7,7 @@ const arabic = {
|
||||
const ar = {
|
||||
translation: {
|
||||
report_bug: "الإبلاغ عن خطأ",
|
||||
import_from: "استيراد",
|
||||
import: "استيراد",
|
||||
file: "ملف",
|
||||
new: "جديد",
|
||||
@ -105,8 +106,7 @@ const ar = {
|
||||
no_types: "لا توجد أنواع",
|
||||
no_types_text: "اصنع أنواع البيانات المخصصة الخاصة بك",
|
||||
no_issues: "لم يتم اكتشاف أي مشكلات.",
|
||||
strict_mode_is_on_no_issues:
|
||||
"وضع صارم معطل لذا لن يتم عرض أي مشكلات.",
|
||||
strict_mode_is_on_no_issues: "وضع صارم معطل لذا لن يتم عرض أي مشكلات.",
|
||||
name: "الاسم",
|
||||
type: "النوع",
|
||||
null: "فارغ",
|
||||
@ -157,12 +157,10 @@ const ar = {
|
||||
confirm: "تأكيد",
|
||||
last_modified: "آخر تعديل",
|
||||
drag_and_drop_files: "اسحب وأسقط الملف هنا أو انقر للتحميل.",
|
||||
support_json_and_ddb: "تدعم ملفات JSON و DDB",
|
||||
upload_sql_to_generate_diagrams:
|
||||
"قم بتحميل ملف SQL لتوليد الجداول والأعمدة تلقائيًا.",
|
||||
overwrite_existing_diagram: "الكتابة فوق المخطط الحالي",
|
||||
only_mysql_supported:
|
||||
"*في الوقت الحالي، يتم دعم تحميل نصوص MySQL فقط.",
|
||||
only_mysql_supported: "*في الوقت الحالي، يتم دعم تحميل نصوص MySQL فقط.",
|
||||
blank: "فارغ",
|
||||
filename: "اسم الملف",
|
||||
table_w_no_name: "تم إعلان جدول بدون اسم",
|
||||
|
@ -7,6 +7,7 @@ const bengali = {
|
||||
const bn = {
|
||||
translation: {
|
||||
report_bug: "বাগ রিপোর্ট করুন",
|
||||
import_from: "ইম্পোর্ট করুন",
|
||||
import: "ইম্পোর্ট করুন",
|
||||
file: "ফাইল",
|
||||
new: "নতুন",
|
||||
@ -160,7 +161,6 @@ const bn = {
|
||||
last_modified: "শেষ সংশোধন",
|
||||
drag_and_drop_files:
|
||||
"ফাইলটি এখানে ড্র্যাগ এবং ড্রপ করুন বা আপলোড করতে ক্লিক করুন।",
|
||||
support_json_and_ddb: "JSON এবং DDB ফাইলগুলি সমর্থিত",
|
||||
upload_sql_to_generate_diagrams:
|
||||
"আপনার টেবিল এবং কলামগুলি স্বয়ংক্রিয়ভাবে তৈরি করতে একটি SQL ফাইল আপলোড করুন।",
|
||||
overwrite_existing_diagram: "বিদ্যমান ডায়াগ্রামটি ওভাররাইট করুন",
|
||||
|
@ -7,6 +7,7 @@ const danish = {
|
||||
const da = {
|
||||
translation: {
|
||||
report_bug: "Rapportér en fejl",
|
||||
import_from: "Importér",
|
||||
import: "Importér",
|
||||
file: "Fil",
|
||||
new: "Ny",
|
||||
@ -109,7 +110,8 @@ const da = {
|
||||
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.",
|
||||
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",
|
||||
@ -150,7 +152,6 @@ const da = {
|
||||
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",
|
||||
|
@ -7,6 +7,7 @@ const german = {
|
||||
const de = {
|
||||
translation: {
|
||||
report_bug: "Einen Fehler melden",
|
||||
import_from: "Importieren",
|
||||
import: "Importieren",
|
||||
file: "Datei",
|
||||
new: "Neu",
|
||||
@ -153,7 +154,6 @@ const de = {
|
||||
confirm: "Bestätigen",
|
||||
last_modified: "Zuletzt geändert",
|
||||
drag_and_drop_files: "Ziehen Sie die Datei hierher oder klicken Sie, um sie hochzuladen.",
|
||||
support_json_and_ddb: "JSON- und DDB-Dateien werden unterstützt",
|
||||
upload_sql_to_generate_diagrams:
|
||||
"Laden Sie eine SQL-Datei hoch, um Ihre Tabellen und Spalten automatisch zu generieren.",
|
||||
overwrite_existing_diagram: "Vorhandenes Diagramm überschreiben",
|
||||
|
@ -8,6 +8,7 @@ const en = {
|
||||
translation: {
|
||||
report_bug: "Report a bug",
|
||||
import: "Import",
|
||||
import_from: "Import from",
|
||||
file: "File",
|
||||
new: "New",
|
||||
new_window: "New window",
|
||||
@ -157,7 +158,6 @@ const en = {
|
||||
confirm: "Confirm",
|
||||
last_modified: "Last modified",
|
||||
drag_and_drop_files: "Drag and drop the file here or click to upload.",
|
||||
support_json_and_ddb: "JSON and DDB files are supported",
|
||||
upload_sql_to_generate_diagrams:
|
||||
"Upload an sql file to autogenerate your tables and columns.",
|
||||
overwrite_existing_diagram: "Overwrite existing diagram",
|
||||
@ -245,6 +245,7 @@ const en = {
|
||||
"* Sharing this link will not create a live real-time collaboration session.",
|
||||
show_relationship_labels: "Show relationship labels",
|
||||
docs: "Docs",
|
||||
supported_types: "Supported file types:",
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -7,8 +7,9 @@ const spanish = {
|
||||
const es = {
|
||||
translation: {
|
||||
report_bug: "Reportar Error",
|
||||
import_from: "Importar",
|
||||
import: "Importar",
|
||||
file: "Archivo ",
|
||||
file: "Archivo",
|
||||
new: "Nuevo",
|
||||
new_window: "Nueva Ventana",
|
||||
open: "Abrir",
|
||||
@ -138,7 +139,8 @@ const es = {
|
||||
note_deleted: "Nota eliminada",
|
||||
relationship_deleted: "Relación eliminada",
|
||||
type_deleted: "Tipo eliminado",
|
||||
cannot_connect: "No se puede conectar, las columnas tienen diferentes tipos",
|
||||
cannot_connect:
|
||||
"No se puede conectar, las columnas tienen diferentes tipos",
|
||||
copied_to_clipboard: "Copiado al portapapeles",
|
||||
create_new_diagram: "Crear nuevo diagrama",
|
||||
cancel: "Cancelar",
|
||||
@ -149,8 +151,8 @@ const es = {
|
||||
create: "Crear",
|
||||
confirm: "Confirmar",
|
||||
last_modified: "Última modificación",
|
||||
drag_and_drop_files: "Arrastra y suelta el archivo aquí o haz clic para subir.",
|
||||
support_json_and_ddb: "Se admiten archivos JSON y DDB",
|
||||
drag_and_drop_files:
|
||||
"Arrastra y suelta el archivo aquí o haz clic para subir.",
|
||||
upload_sql_to_generate_diagrams:
|
||||
"Sube un archivo sql para autogenerar tus tablas y columnas.",
|
||||
overwrite_existing_diagram: "Sobrescribir diagrama existente",
|
||||
@ -184,7 +186,8 @@ const es = {
|
||||
duplicate_type_fields:
|
||||
"Campos de tipo duplicados por nombre '{{fieldName}}' en el tipo '{{typeName}}'",
|
||||
duplicate_reference: "Referencia duplicada con el nombre '{{refName}}'",
|
||||
circular_dependency: "Dependencia circular involucrando la tabla '{{refName}}'",
|
||||
circular_dependency:
|
||||
"Dependencia circular involucrando la tabla '{{refName}}'",
|
||||
timeline: "Linea del tiempo",
|
||||
priority: "Prioridad",
|
||||
none: "Ninguno",
|
||||
|
@ -7,6 +7,7 @@ const persian = {
|
||||
const fa = {
|
||||
translation: {
|
||||
report_bug: "گزارش خطا",
|
||||
import_from: "وارد کردن",
|
||||
import: "وارد کردن",
|
||||
file: "فایل",
|
||||
new: "جدید",
|
||||
@ -18,7 +19,8 @@ const fa = {
|
||||
template_saved: "الگو ذخیره شد!",
|
||||
rename: "تغییر نام",
|
||||
delete_diagram: "حذف نمودار",
|
||||
are_you_sure_delete_diagram: "آیا مطمئن هستید که میخواهید این نمودار را حذف کنید؟ این عملیات غیر قابل برگشت است.",
|
||||
are_you_sure_delete_diagram:
|
||||
"آیا مطمئن هستید که میخواهید این نمودار را حذف کنید؟ این عملیات غیر قابل برگشت است.",
|
||||
oops_smth_went_wrong: "اوه! مشکلی پیش آمد.",
|
||||
import_diagram: "وارد کردن نمودار",
|
||||
import_from_source: "وارد کردن از SQL",
|
||||
@ -30,7 +32,8 @@ const fa = {
|
||||
undo: "واگرد",
|
||||
redo: "از نو",
|
||||
clear: "پاک کردن",
|
||||
are_you_sure_clear: "آیا مطمئن هستید که میخواهید نمودار را پاک کنید؟ این عملیات غیر قابل برگشت است.",
|
||||
are_you_sure_clear:
|
||||
"آیا مطمئن هستید که میخواهید نمودار را پاک کنید؟ این عملیات غیر قابل برگشت است.",
|
||||
cut: "برش",
|
||||
copy: "کپی",
|
||||
paste: "چسباندن",
|
||||
@ -60,7 +63,8 @@ const fa = {
|
||||
table_width: "عرض جدول",
|
||||
language: "زبان",
|
||||
flush_storage: "پاک کردن حافظه",
|
||||
are_you_sure_flush_storage: "آیا مطمئن هستید که میخواهید حافظه را پاک کنید؟ این عمل تمام نمودارها و الگوهای سفارشی شما را به طور غیر قابل برگشت حذف میکند.",
|
||||
are_you_sure_flush_storage:
|
||||
"آیا مطمئن هستید که میخواهید حافظه را پاک کنید؟ این عمل تمام نمودارها و الگوهای سفارشی شما را به طور غیر قابل برگشت حذف میکند.",
|
||||
storage_flushed: "حافظه پاک شد",
|
||||
help: "راهنما",
|
||||
shortcuts: "میانبرها",
|
||||
@ -89,13 +93,15 @@ const fa = {
|
||||
no_relationships: "بدون رابطه",
|
||||
no_relationships_text: "برای اتصال فیلدها و تشکیل روابط بکشید!",
|
||||
no_subject_areas: "بدون ناحیه موضوعی",
|
||||
no_subject_areas_text: "ناحیههای موضوعی را برای گروهبندی جدولها اضافه کنید!",
|
||||
no_subject_areas_text:
|
||||
"ناحیههای موضوعی را برای گروهبندی جدولها اضافه کنید!",
|
||||
no_notes: "بدون یادداشت",
|
||||
no_notes_text: "از یادداشتها برای ثبت اطلاعات اضافی استفاده کنید",
|
||||
no_types: "بدون نوع",
|
||||
no_types_text: "نوع داده سفارشی خود را بسازید",
|
||||
no_issues: "هیچ مشکلی شناسایی نشد.",
|
||||
strict_mode_is_on_no_issues: "حالت سختگیرانه خاموش است بنابراین هیچ مشکلی نمایش داده نخواهد شد.",
|
||||
strict_mode_is_on_no_issues:
|
||||
"حالت سختگیرانه خاموش است بنابراین هیچ مشکلی نمایش داده نخواهد شد.",
|
||||
name: "نام",
|
||||
type: "نوع",
|
||||
null: "خالی",
|
||||
@ -105,7 +111,8 @@ const fa = {
|
||||
autoincrement: "افزایش خودکار",
|
||||
default_value: "پیشفرض",
|
||||
check: "عبارت بررسی",
|
||||
this_will_appear_as_is: "*این در اسکریپت تولید شده به همان صورت نمایش داده میشود.",
|
||||
this_will_appear_as_is:
|
||||
"*این در اسکریپت تولید شده به همان صورت نمایش داده میشود.",
|
||||
comment: "نظر",
|
||||
add_field: "افزودن فیلد",
|
||||
values: "مقادیر",
|
||||
@ -127,7 +134,8 @@ const fa = {
|
||||
one_to_many: "یک به چند",
|
||||
many_to_one: "چند به یک",
|
||||
content: "محتوا",
|
||||
types_info: "این ویژگی برای DBMSهای شیءگرا مانند PostgreSQL طراحی شده است.\nاگر برای MySQL یا MariaDB استفاده شود، نوع JSON با بررسی اعتبار json متناظر تولید میشود.\nاگر برای SQLite استفاده شود، به BLOB ترجمه میشود.\nاگر برای MSSQL استفاده شود، یک نام مستعار نوع برای فیلد اول تولید میشود.",
|
||||
types_info:
|
||||
"این ویژگی برای DBMSهای شیءگرا مانند PostgreSQL طراحی شده است.\nاگر برای MySQL یا MariaDB استفاده شود، نوع JSON با بررسی اعتبار json متناظر تولید میشود.\nاگر برای SQLite استفاده شود، به BLOB ترجمه میشود.\nاگر برای MSSQL استفاده شود، یک نام مستعار نوع برای فیلد اول تولید میشود.",
|
||||
table_deleted: "جدول حذف شد",
|
||||
area_deleted: "ناحیه حذف شد",
|
||||
note_deleted: "یادداشت حذف شد",
|
||||
@ -144,22 +152,29 @@ const fa = {
|
||||
create: "ایجاد",
|
||||
confirm: "تأیید",
|
||||
last_modified: "آخرین ویرایش",
|
||||
drag_and_drop_files: "فایل را اینجا بکشید و رها کنید یا کلیک کنید تا بارگذاری شود.",
|
||||
support_json_and_ddb: "فایلهای JSON و DDB پشتیبانی میشوند",
|
||||
upload_sql_to_generate_diagrams: "یک فایل sql را بارگذاری کنید تا جداول و ستونهایتان بهطور خودکار تولید شوند.",
|
||||
drag_and_drop_files:
|
||||
"فایل را اینجا بکشید و رها کنید یا کلیک کنید تا بارگذاری شود.",
|
||||
upload_sql_to_generate_diagrams:
|
||||
"یک فایل sql را بارگذاری کنید تا جداول و ستونهایتان بهطور خودکار تولید شوند.",
|
||||
overwrite_existing_diagram: "بازنویسی نمودار موجود",
|
||||
only_mysql_supported: "*در حال حاضر فقط بارگذاری اسکریپتهای MySQL پشتیبانی میشود.",
|
||||
only_mysql_supported:
|
||||
"*در حال حاضر فقط بارگذاری اسکریپتهای MySQL پشتیبانی میشود.",
|
||||
blank: "خالی",
|
||||
filename: "نام فایل",
|
||||
table_w_no_name: "جدولی بدون نام اعلام شد",
|
||||
duplicate_table_by_name: "جدول تکراری با نام '{{tableName}}'",
|
||||
empty_field_name: "فیلد خالی name در جدول '{{tableName}}'",
|
||||
empty_field_type: "فیلد خالی type در جدول '{{tableName}}'",
|
||||
no_values_for_field: "فیلد '{{fieldName}}' جدول '{{tableName}}' از نوع {{type}} است اما هیچ مقداری مشخص نشده است",
|
||||
default_doesnt_match_type: "مقدار پیشفرض برای فیلد '{{fieldName}}' در جدول '{{tableName}}' با نوع آن مطابقت ندارد",
|
||||
not_null_is_null: "فیلد '{{fieldName}}' جدول '{{tableName}}' غیر خالی است اما پیشفرض آن خالی است",
|
||||
duplicate_fields: "فیلدهای تکراری جدول به نام '{{fieldName}}' در جدول '{{tableName}}'",
|
||||
duplicate_index: "شاخص تکراری به نام '{{indexName}}' در جدول '{{tableName}}'",
|
||||
no_values_for_field:
|
||||
"فیلد '{{fieldName}}' جدول '{{tableName}}' از نوع {{type}} است اما هیچ مقداری مشخص نشده است",
|
||||
default_doesnt_match_type:
|
||||
"مقدار پیشفرض برای فیلد '{{fieldName}}' در جدول '{{tableName}}' با نوع آن مطابقت ندارد",
|
||||
not_null_is_null:
|
||||
"فیلد '{{fieldName}}' جدول '{{tableName}}' غیر خالی است اما پیشفرض آن خالی است",
|
||||
duplicate_fields:
|
||||
"فیلدهای تکراری جدول به نام '{{fieldName}}' در جدول '{{tableName}}'",
|
||||
duplicate_index:
|
||||
"شاخص تکراری به نام '{{indexName}}' در جدول '{{tableName}}'",
|
||||
empty_index: "شاخص در جدول '{{tableName}}' هیچ ستونی را شاخص نمیکند",
|
||||
no_primary_key: "جدول '{{tableName}}' کلید اصلی ندارد",
|
||||
type_with_no_name: "نوعی بدون نام اعلام شد",
|
||||
@ -167,8 +182,10 @@ const fa = {
|
||||
type_w_no_fields: "نوع خالی '{{typeName}}' بدون فیلد اعلام شد",
|
||||
empty_type_field_name: "فیلد `name` خالی در نوع '{{typeName}}'",
|
||||
empty_type_field_type: "فیلد `type` خالی در نوع '{{typeName}}'",
|
||||
no_values_for_type_field: "'{{fieldName}}' فیلد از نوع '{{typeName}}' از نوع `{{type}}` است اما هیچ مقداری مشخص نشده است",
|
||||
duplicate_type_fields: "فیلدهای تکراری نوع با نام '{{fieldName}}' در نوع '{{typeName}}'",
|
||||
no_values_for_type_field:
|
||||
"'{{fieldName}}' فیلد از نوع '{{typeName}}' از نوع `{{type}}` است اما هیچ مقداری مشخص نشده است",
|
||||
duplicate_type_fields:
|
||||
"فیلدهای تکراری نوع با نام '{{fieldName}}' در نوع '{{typeName}}'",
|
||||
duplicate_reference: "ارجاع تکراری به نام '{{refName}}'",
|
||||
circular_dependency: "وابستگی دورانی شامل جدول '{{refName}}'",
|
||||
timeline: "جدول زمانی",
|
||||
@ -197,10 +214,8 @@ const fa = {
|
||||
add_relationship: "اضافه کردن ارتباط",
|
||||
edit_relationship: "{{extra}} ویرایش ارتباط {{refName}}",
|
||||
delete_relationship: "حذف ارتباط {{refName}}",
|
||||
not_found: "یافت نشد"
|
||||
|
||||
not_found: "یافت نشد",
|
||||
},
|
||||
};
|
||||
|
||||
export { fa,persian };
|
||||
};
|
||||
|
||||
export { fa, persian };
|
||||
|
@ -7,6 +7,7 @@ const french = {
|
||||
const fr = {
|
||||
translation: {
|
||||
report_bug: "Signaler un bug",
|
||||
import_from: "Importer de",
|
||||
import: "Importer",
|
||||
file: "Fichier",
|
||||
new: "Nouveau",
|
||||
@ -155,7 +156,6 @@ const fr = {
|
||||
last_modified: "Dernière modification",
|
||||
drag_and_drop_files:
|
||||
"Glissez et déposez les fichiers ici ou cliquez pour les télécharger.",
|
||||
support_json_and_ddb: "Les fichiers JSON et DDB sont pris en charge",
|
||||
upload_sql_to_generate_diagrams:
|
||||
"Téléchargez un fichier SQL pour générer automatiquement vos tables et colonnes.",
|
||||
overwrite_existing_diagram: "Écraser le diagramme existant",
|
||||
|
@ -7,6 +7,7 @@ const gujarati = {
|
||||
const gu = {
|
||||
translation: {
|
||||
report_bug: "બગ રિપોર્ટ કરો",
|
||||
import_from: "આયાત",
|
||||
import: "આયાત",
|
||||
file: "ફાઇલ",
|
||||
new: "નવું",
|
||||
@ -149,8 +150,8 @@ const gu = {
|
||||
create: "બનાવો",
|
||||
confirm: "પુષ્ટિ કરો",
|
||||
last_modified: "છેલ્લે સુધારેલા",
|
||||
drag_and_drop_files: "ફાઇલને અહીં ખેંચો અને છોડો અથવા અપલોડ કરવા માટે ક્લિક કરો.",
|
||||
support_json_and_ddb: "JSON અને DDB ફાઇલો સપોર્ટેડ છે",
|
||||
drag_and_drop_files:
|
||||
"ફાઇલને અહીં ખેંચો અને છોડો અથવા અપલોડ કરવા માટે ક્લિક કરો.",
|
||||
upload_sql_to_generate_diagrams:
|
||||
"તમારી ટેબલ અને કોલમને આપમેળે જનરેટ કરવા માટે SQL ફાઇલ અપલોડ કરો.",
|
||||
overwrite_existing_diagram: "મોજુદા ડાયાગ્રામને ઓવરરાઈટ કરો",
|
||||
@ -172,11 +173,13 @@ const gu = {
|
||||
"ટેબલ '{{tableName}}' માં નામ '{{fieldName}}' વાળા ડુપ્લિકેટ ટેબલ ફીલ્ડ્સ",
|
||||
duplicate_index:
|
||||
"ટેબલ '{{tableName}}' માં નામ '{{indexName}}' વાળો ડુપ્લિકેટ ઈન્ડેક્સ",
|
||||
empty_index: "ટેબલ '{{tableName}}' માં ઈન્ડેક્સ કોઈ કૉલમ ઈન્ડેક્સ કરતું નથી",
|
||||
empty_index:
|
||||
"ટેબલ '{{tableName}}' માં ઈન્ડેક્સ કોઈ કૉલમ ઈન્ડેક્સ કરતું નથી",
|
||||
no_primary_key: "ટેબલ '{{tableName}}' માં કોઈ પ્રાથમિક કી નથી",
|
||||
type_with_no_name: "કોઈ નામ ન હોય તેવા પ્રકારને ઘોષિત કર્યું",
|
||||
duplicate_types: "નામ '{{typeName}}' વાળા ડુપ્લિકેટ પ્રકાર",
|
||||
type_w_no_fields: "કોઈ ફીલ્ડ્સ ન હોય તેવા પ્રકાર '{{typeName}}' ને ઘોષિત કર્યું",
|
||||
type_w_no_fields:
|
||||
"કોઈ ફીલ્ડ્સ ન હોય તેવા પ્રકાર '{{typeName}}' ને ઘોષિત કર્યું",
|
||||
empty_type_field_name: "પ્રકાર '{{typeName}}' માં ખાલી ફીલ્ડ `નામ`",
|
||||
empty_type_field_type: "પ્રકાર '{{typeName}}' માં ખાલી ફીલ્ડ `પ્રકાર`",
|
||||
no_values_for_type_field:
|
||||
|
@ -7,6 +7,7 @@ const hebrew = {
|
||||
const he = {
|
||||
translation: {
|
||||
report_bug: "דווח על באג",
|
||||
import_from: "ייבוא",
|
||||
import: "ייבוא",
|
||||
file: "קובץ",
|
||||
new: "חדש",
|
||||
@ -105,8 +106,7 @@ const he = {
|
||||
no_types: "אין סוגים",
|
||||
no_types_text: "צור סוגי נתונים מותאמים אישית",
|
||||
no_issues: "לא נמצאו בעיות.",
|
||||
strict_mode_is_on_no_issues:
|
||||
"מצב קפדני כבוי ולכן לא יוצגו בעיות.",
|
||||
strict_mode_is_on_no_issues: "מצב קפדני כבוי ולכן לא יוצגו בעיות.",
|
||||
name: "שם",
|
||||
type: "סוג",
|
||||
null: "ריק",
|
||||
@ -157,12 +157,10 @@ const he = {
|
||||
confirm: "אשר",
|
||||
last_modified: "נערך לאחרונה",
|
||||
drag_and_drop_files: "גרור ושחרר את הקובץ כאן או לחץ להעלאה.",
|
||||
support_json_and_ddb: "תומך בקבצי JSON ו-DDB",
|
||||
upload_sql_to_generate_diagrams:
|
||||
"העלה קובץ SQL כדי ליצור באופן אוטומטי את הטבלאות והעמודות שלך.",
|
||||
overwrite_existing_diagram: "דרוס דיאגרמה קיימת",
|
||||
only_mysql_supported:
|
||||
"*כרגע נתמך רק טעינת סקריפטים של MySQL.",
|
||||
only_mysql_supported: "*כרגע נתמך רק טעינת סקריפטים של MySQL.",
|
||||
blank: "ריק",
|
||||
filename: "שם קובץ",
|
||||
table_w_no_name: "הוכרז טבלה ללא שם",
|
||||
@ -177,8 +175,7 @@ const he = {
|
||||
"שדה '{{fieldName}}' בטבלה '{{tableName}}' אינו ריק אך ערך ברירת מחדל הוא NULL",
|
||||
duplicate_fields:
|
||||
"שדות טבלה כפולים בשם '{{fieldName}}' בטבלה '{{tableName}}'",
|
||||
duplicate_index:
|
||||
"אינדקס כפול בשם '{{indexName}}' בטבלה '{{tableName}}'",
|
||||
duplicate_index: "אינדקס כפול בשם '{{indexName}}' בטבלה '{{tableName}}'",
|
||||
empty_index: "אינדקס בטבלה '{{tableName}}' אינו מאנדקס שום עמודות",
|
||||
no_primary_key: "לטבלה '{{tableName}}' אין מפתח ראשי",
|
||||
type_with_no_name: "הוכרז סוג ללא שם",
|
||||
|
@ -2,11 +2,12 @@ const hindi = {
|
||||
name: "Hindi",
|
||||
native_name: "हिंदी",
|
||||
code: "hi",
|
||||
};
|
||||
};
|
||||
|
||||
const hi = {
|
||||
const hi = {
|
||||
translation: {
|
||||
report_bug: "बग रिपोर्ट करें",
|
||||
import_from: "इम्पोर्ट",
|
||||
import: "इम्पोर्ट",
|
||||
file: "फ़ाइल",
|
||||
new: "नया",
|
||||
@ -90,7 +91,8 @@ const hindi = {
|
||||
no_tables: "कोई टेबल्स नहीं",
|
||||
no_tables_text: "अपना डायग्राम बनाना शुरू करें!",
|
||||
no_relationships: "कोई संबंध नहीं",
|
||||
no_relationships_text: "फील्ड्स को कनेक्ट करने के लिए खींचें और संबंध बनाएं!",
|
||||
no_relationships_text:
|
||||
"फील्ड्स को कनेक्ट करने के लिए खींचें और संबंध बनाएं!",
|
||||
no_subject_areas: "कोई विषय एरियाज नहीं",
|
||||
no_subject_areas_text: "ग्रूप टेबल्स को सब्जेक्ट एरियाज जोड़ें!",
|
||||
no_notes: "कोई नोट्स नहीं",
|
||||
@ -109,7 +111,8 @@ const hindi = {
|
||||
autoincrement: "स्वतः वाढ",
|
||||
default_value: "डिफ़ॉल्ट",
|
||||
check: "चेक एक्सप्रेशन",
|
||||
this_will_appear_as_is: "*यह जेनरेटेड स्क्रिप्ट में जैसा है वैसा ही दिखेगा।",
|
||||
this_will_appear_as_is:
|
||||
"*यह जेनरेटेड स्क्रिप्ट में जैसा है वैसा ही दिखेगा।",
|
||||
comment: "टिप्पणी",
|
||||
add_field: "फ़ील्ड जोड़ें",
|
||||
values: "व्हॅल्यूज",
|
||||
@ -149,8 +152,8 @@ const hindi = {
|
||||
create: "बनाएं",
|
||||
confirm: "पुष्टि करें",
|
||||
last_modified: "अंतिम बार मॉडिफाइड",
|
||||
drag_and_drop_files: "फ़ाइल को यहां खींचें और छोड़ें या अपलोड करने के लिए क्लिक करें।",
|
||||
support_json_and_ddb: "JSON और DDB फ़ाइलें समर्थित हैं",
|
||||
drag_and_drop_files:
|
||||
"फ़ाइल को यहां खींचें और छोड़ें या अपलोड करने के लिए क्लिक करें।",
|
||||
upload_sql_to_generate_diagrams:
|
||||
"अपनी टेबल और कॉलम को स्वचालित रूप से जेनरेट करने के लिए एक sql फ़ाइल अपलोड करें।",
|
||||
overwrite_existing_diagram: "मौजूदा डायग्राम को अधिलेखित करें",
|
||||
@ -176,7 +179,8 @@ const hindi = {
|
||||
no_primary_key: "टेबल '{{tableName}}' में कोई प्राथमिक कुंजी नहीं है",
|
||||
type_with_no_name: "कोई नाम नहीं होने वाले प्रकार को घोषित किया",
|
||||
duplicate_types: "नाम '{{typeName}}' वाले डुप्लिकेट प्रकार",
|
||||
type_w_no_fields: "कोई फ़ील्ड्स नहीं होने वाले प्रकार '{{typeName}}' को घोषित किया",
|
||||
type_w_no_fields:
|
||||
"कोई फ़ील्ड्स नहीं होने वाले प्रकार '{{typeName}}' को घोषित किया",
|
||||
empty_type_field_name: "प्रकार '{{typeName}}' में खाली फ़ील्ड `नाम`",
|
||||
empty_type_field_type: "प्रकार '{{typeName}}' में खाली फ़ील्ड `प्रकार`",
|
||||
no_values_for_type_field:
|
||||
@ -213,7 +217,6 @@ const hindi = {
|
||||
delete_relationship: "संबंध हटाएं {{refName}}",
|
||||
not_found: "नहीं मिला",
|
||||
},
|
||||
};
|
||||
|
||||
export { hi, hindi };
|
||||
};
|
||||
|
||||
export { hi, hindi };
|
||||
|
@ -8,6 +8,7 @@ const hu = {
|
||||
translation: {
|
||||
report_bug: "Hiba jelentése",
|
||||
import: "Importálás",
|
||||
import_from: "Importálás innen",
|
||||
file: "Fájl",
|
||||
new: "Új",
|
||||
new_window: "Új ablak",
|
||||
@ -97,9 +98,11 @@ const hu = {
|
||||
no_tables: "Nincs tábla",
|
||||
no_tables_text: "Vágjon bele diagramja elkészítésébe!",
|
||||
no_relationships: "Nincs kapcsolat létrehozva",
|
||||
no_relationships_text: "Egérhúzással összeköthet mezőket kapcsolatok létrehozásához",
|
||||
no_relationships_text:
|
||||
"Egérhúzással összeköthet mezőket kapcsolatok létrehozásához",
|
||||
no_subject_areas: "Nincs terület hozzáadva",
|
||||
no_subject_areas_text: "Adjon hozzá területeket a táblák csoportosításához!",
|
||||
no_subject_areas_text:
|
||||
"Adjon hozzá területeket a táblák csoportosításához!",
|
||||
no_notes: "Nincs jegyzet",
|
||||
no_notes_text: "Használjon jegyzeteket további információk feljegyzéséhez",
|
||||
no_types: "Nincs típus",
|
||||
@ -116,7 +119,8 @@ const hu = {
|
||||
autoincrement: "Automatikus növelés",
|
||||
default_value: "Alapért.",
|
||||
check: "'Check' kifejezés",
|
||||
this_will_appear_as_is: "*Ez a generált parancsfájlban ugyanígy fog megjelenni.",
|
||||
this_will_appear_as_is:
|
||||
"*Ez a generált parancsfájlban ugyanígy fog megjelenni.",
|
||||
comment: "Megjegyzés",
|
||||
add_field: "Új mező",
|
||||
values: "Értékek",
|
||||
@ -145,7 +149,8 @@ const hu = {
|
||||
note_deleted: "A jegyzet törölve",
|
||||
relationship_deleted: "A kapcsolat törölve",
|
||||
type_deleted: "A típus törölve",
|
||||
cannot_connect: "A kapcsolatot nem lehet létrehozni, az oszlopok eltérő típusúak",
|
||||
cannot_connect:
|
||||
"A kapcsolatot nem lehet létrehozni, az oszlopok eltérő típusúak",
|
||||
copied_to_clipboard: "Másolva a vágólapra",
|
||||
create_new_diagram: "Új diagram létrehozása",
|
||||
cancel: "Mégse",
|
||||
@ -156,19 +161,21 @@ const hu = {
|
||||
create: "Létrehozás",
|
||||
confirm: "Megerősítés",
|
||||
last_modified: "Utoljára módosítva",
|
||||
drag_and_drop_files: "Húzzon ide egy fájlt vagy kattintson a feltöltendő fájl kiválasztásához.",
|
||||
support_json_and_ddb: "JSON és DDB fájlok támogatottak",
|
||||
drag_and_drop_files:
|
||||
"Húzzon ide egy fájlt vagy kattintson a feltöltendő fájl kiválasztásához.",
|
||||
upload_sql_to_generate_diagrams:
|
||||
"Töltsön fel egy sql fájlt a táblák és oszlopok automatikus generálásához.",
|
||||
overwrite_existing_diagram: "Meglévő diagram felülírása",
|
||||
only_mysql_supported:
|
||||
"*Jelenleg csak MySQL fájlok betöltése támogatott.",
|
||||
only_mysql_supported: "*Jelenleg csak MySQL fájlok betöltése támogatott.",
|
||||
blank: "Üres",
|
||||
filename: "Fájlnév",
|
||||
table_w_no_name: "Nincs megadva név egy táblának",
|
||||
duplicate_table_by_name: "Több tábla is létezik ezzel a névvel: '{{tableName}}'",
|
||||
empty_field_name: "Nincs megadva egy mező `neve` a(z) '{{tableName}}' táblában",
|
||||
empty_field_type: "Nincs megadva egy mező `típusa` a(z) '{{tableName}}' táblában",
|
||||
duplicate_table_by_name:
|
||||
"Több tábla is létezik ezzel a névvel: '{{tableName}}'",
|
||||
empty_field_name:
|
||||
"Nincs megadva egy mező `neve` a(z) '{{tableName}}' táblában",
|
||||
empty_field_type:
|
||||
"Nincs megadva egy mező `típusa` a(z) '{{tableName}}' táblában",
|
||||
no_values_for_field:
|
||||
"A(z) '{{tableName}}' tábla '{{fieldName}}' mezője `{{type}}` típusú, de nincs megadva érték",
|
||||
default_doesnt_match_type:
|
||||
@ -179,8 +186,10 @@ const hu = {
|
||||
"Több '{{fieldName}}' nevű mező is létezik a(z) '{{tableName}}' táblában",
|
||||
duplicate_index:
|
||||
"Több '{{indexName}}' nevű index is létezik a(z) '{{tableName}}' táblában",
|
||||
empty_index: "A(z) '{{tableName}}' táblában levő index egyetlen oszlopot sem indexel",
|
||||
no_primary_key: "A(z) '{{tableName}}' tábla nem rendelkezik elsődleges kulccsal",
|
||||
empty_index:
|
||||
"A(z) '{{tableName}}' táblában levő index egyetlen oszlopot sem indexel",
|
||||
no_primary_key:
|
||||
"A(z) '{{tableName}}' tábla nem rendelkezik elsődleges kulccsal",
|
||||
type_with_no_name: "Nincs megadva egy egyedi típus neve",
|
||||
duplicate_types: "Több típus is létezik a(z) '{{typeName}}' névvel",
|
||||
type_w_no_fields: "Nincs megadva mező a(z) '{{typeName}}' típusnak",
|
||||
@ -191,7 +200,8 @@ const hu = {
|
||||
duplicate_type_fields:
|
||||
"Több '{{fieldName}}' nevű mező is létezik a(z) '{{typeName}}' típussal",
|
||||
duplicate_reference: "Több hivatkozás is létezik a(z) '{{refName}}' névvel",
|
||||
circular_dependency: "Körkörös hivatkozás a(z) '{{refName}}' táblával kapcsolatban",
|
||||
circular_dependency:
|
||||
"Körkörös hivatkozás a(z) '{{refName}}' táblával kapcsolatban",
|
||||
timeline: "Előzmények",
|
||||
priority: "Prioritás",
|
||||
none: "Nincs",
|
||||
@ -233,16 +243,21 @@ const hu = {
|
||||
no_enums: "Nincs enum",
|
||||
no_enums_text: "Itt adhat meg enum-okat",
|
||||
declare_array: "Tömb megadása",
|
||||
empty_index_name: "A(z) '{{tableName}}' táblában egy indexnek nincs megadva név",
|
||||
empty_index_name:
|
||||
"A(z) '{{tableName}}' táblában egy indexnek nincs megadva név",
|
||||
didnt_find_diagram: "Hoppá! A diagram nem található.",
|
||||
unsigned: "Előjel nélküli",
|
||||
share: "Megosztás",
|
||||
unshare: "Megosztás megszüntetése",
|
||||
copy_link: "Hivatkozás másolása",
|
||||
readme: "OLVASS_EL",
|
||||
failed_to_load: "A betöltés sikertelen. Ellenőrizze a hivatkozás helyességét!",
|
||||
failed_to_load:
|
||||
"A betöltés sikertelen. Ellenőrizze a hivatkozás helyességét!",
|
||||
share_info:
|
||||
"* Ezen hivatkozás megosztása nem fog létrehozni élő, valósidejű együttműködési munkamenetet.",
|
||||
show_relationship_labels: "Kapcsolatcímkék",
|
||||
docs: "Dokumentáció",
|
||||
supported_types: "Támogatott fájltípusok:",
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -7,6 +7,7 @@ const armenian = {
|
||||
const hy = {
|
||||
translation: {
|
||||
report_bug: "Զեկուցել սխալի մասին",
|
||||
import_from: "Ներմուծել",
|
||||
import: "Ներմուծել",
|
||||
file: "Ֆայլ",
|
||||
new: "Նոր",
|
||||
@ -161,7 +162,6 @@ const hy = {
|
||||
last_modified: "Վերջին փոփոխությունը",
|
||||
drag_and_drop_files:
|
||||
"Քաշեք և թողեք ֆայլը այստեղ կամ սեղմեք բեռնելու համար։",
|
||||
support_json_and_ddb: "Աջակցվում են JSON և DDB ֆայլեր",
|
||||
upload_sql_to_generate_diagrams:
|
||||
"Վերբեռնեք sql ֆայլ՝ ձեր աղյուսակներն ու սյունակները ավտոմատ ստեղծելու համար։",
|
||||
overwrite_existing_diagram: "Փոխարինել առկա սխեման",
|
||||
|
@ -7,6 +7,7 @@ const indonesian = {
|
||||
const id = {
|
||||
translation: {
|
||||
report_bug: "Laporkan bug",
|
||||
import_from: "Impor",
|
||||
import: "Impor",
|
||||
file: "Berkas",
|
||||
new: "Baru",
|
||||
@ -31,7 +32,8 @@ const id = {
|
||||
undo: "Batalkan",
|
||||
redo: "Ulangi",
|
||||
clear: "Bersihkan",
|
||||
are_you_sure_clear: "Apakah Anda yakin ingin membersihkan diagram ini? Ini tidak bisa dibatalkan.",
|
||||
are_you_sure_clear:
|
||||
"Apakah Anda yakin ingin membersihkan diagram ini? Ini tidak bisa dibatalkan.",
|
||||
cut: "Potong",
|
||||
copy: "Salin",
|
||||
paste: "Tempel",
|
||||
@ -96,7 +98,8 @@ const id = {
|
||||
no_tables: "Tidak ada tabel",
|
||||
no_tables_text: "Mulai bangun diagram Anda!",
|
||||
no_relationships: "Tidak ada hubungan",
|
||||
no_relationships_text: "Seret untuk menghubungkan bidang dan membentuk hubungan!",
|
||||
no_relationships_text:
|
||||
"Seret untuk menghubungkan bidang dan membentuk hubungan!",
|
||||
no_subject_areas: "Tidak ada area subjek",
|
||||
no_subject_areas_text: "Tambahkan area subjek untuk mengelompokkan tabel!",
|
||||
no_notes: "Tidak ada catatan",
|
||||
@ -104,7 +107,8 @@ const id = {
|
||||
no_types: "Tidak ada tipe",
|
||||
no_types_text: "Buat tipe data kustom Anda sendiri",
|
||||
no_issues: "Tidak ada masalah yang terdeteksi.",
|
||||
strict_mode_is_on_no_issues: "Mode ketat dimatikan sehingga tidak ada masalah yang akan ditampilkan.",
|
||||
strict_mode_is_on_no_issues:
|
||||
"Mode ketat dimatikan sehingga tidak ada masalah yang akan ditampilkan.",
|
||||
name: "Nama",
|
||||
type: "Jenis",
|
||||
null: "Kosong",
|
||||
@ -114,7 +118,8 @@ const id = {
|
||||
autoincrement: "Autoincrement",
|
||||
default_value: "Nilai default",
|
||||
check: "Periksa ekspresi",
|
||||
this_will_appear_as_is: "*Ini akan muncul dalam skrip yang dihasilkan sebagaimana adanya.",
|
||||
this_will_appear_as_is:
|
||||
"*Ini akan muncul dalam skrip yang dihasilkan sebagaimana adanya.",
|
||||
comment: "Komentar",
|
||||
add_field: "Tambah bidang",
|
||||
values: "Nilai",
|
||||
@ -143,7 +148,8 @@ const id = {
|
||||
note_deleted: "Catatan dihapus",
|
||||
relationship_deleted: "Hubungan dihapus",
|
||||
type_deleted: "Jenis dihapus",
|
||||
cannot_connect: "Tidak dapat menghubungkan, kolom memiliki tipe yang berbeda",
|
||||
cannot_connect:
|
||||
"Tidak dapat menghubungkan, kolom memiliki tipe yang berbeda",
|
||||
copied_to_clipboard: "Disalin ke papan klip",
|
||||
create_new_diagram: "Buat diagram baru",
|
||||
cancel: "Batal",
|
||||
@ -154,9 +160,10 @@ const id = {
|
||||
create: "Buat",
|
||||
confirm: "Konfirmasi",
|
||||
last_modified: "Terakhir diubah",
|
||||
drag_and_drop_files: "Seret dan lepas file di sini atau klik untuk mengunggah.",
|
||||
support_json_and_ddb: "File JSON dan DDB didukung",
|
||||
upload_sql_to_generate_diagrams: "Unggah file SQL untuk mengotomatiskan tabel dan kolom Anda.",
|
||||
drag_and_drop_files:
|
||||
"Seret dan lepas file di sini atau klik untuk mengunggah.",
|
||||
upload_sql_to_generate_diagrams:
|
||||
"Unggah file SQL untuk mengotomatiskan tabel dan kolom Anda.",
|
||||
overwrite_existing_diagram: "Timpa diagram yang ada",
|
||||
only_mysql_supported: "*Saat ini hanya memuat skrip MySQL yang didukung.",
|
||||
blank: "Kosong",
|
||||
@ -171,20 +178,27 @@ const id = {
|
||||
"Nilai default untuk bidang '{{fieldName}}' dalam tabel '{{tableName}}' tidak sesuai dengan tipenya",
|
||||
not_null_is_null:
|
||||
"Bidang '{{fieldName}}' dalam tabel '{{tableName}}' adalah TIDAK NULL tetapi memiliki nilai default NULL",
|
||||
duplicate_fields: "Bidang tabel duplikat dengan nama '{{fieldName}}' dalam tabel '{{tableName}}'",
|
||||
duplicate_index: "Indeks duplikat dengan nama '{{indexName}}' dalam tabel '{{tableName}}'",
|
||||
empty_index: "Indeks dalam tabel '{{tableName}}' tidak mengindeks kolom apapun",
|
||||
duplicate_fields:
|
||||
"Bidang tabel duplikat dengan nama '{{fieldName}}' dalam tabel '{{tableName}}'",
|
||||
duplicate_index:
|
||||
"Indeks duplikat dengan nama '{{indexName}}' dalam tabel '{{tableName}}'",
|
||||
empty_index:
|
||||
"Indeks dalam tabel '{{tableName}}' tidak mengindeks kolom apapun",
|
||||
no_primary_key: "Tabel '{{tableName}}' tidak memiliki kunci utama",
|
||||
type_with_no_name: "Mendeklarasikan tipe tanpa nama",
|
||||
duplicate_types: "Tipe duplikat dengan nama '{{typeName}}'",
|
||||
type_w_no_fields: "Mendeklarasikan tipe '{{typeName}}' kosong tanpa bidang",
|
||||
empty_type_field_name: "Nama bidang `name` kosong dalam tipe '{{typeName}}'",
|
||||
empty_type_field_type: "Jenis bidang `type` kosong dalam tipe '{{typeName}}'",
|
||||
empty_type_field_name:
|
||||
"Nama bidang `name` kosong dalam tipe '{{typeName}}'",
|
||||
empty_type_field_type:
|
||||
"Jenis bidang `type` kosong dalam tipe '{{typeName}}'",
|
||||
no_values_for_type_field:
|
||||
"Bidang '{{fieldName}}' dalam tipe '{{typeName}}' adalah tipe `{{type}}` tetapi tidak ada nilai yang ditentukan",
|
||||
duplicate_type_fields: "Bidang tipe duplikat dengan nama '{{fieldName}}' dalam tipe '{{typeName}}'",
|
||||
duplicate_type_fields:
|
||||
"Bidang tipe duplikat dengan nama '{{fieldName}}' dalam tipe '{{typeName}}'",
|
||||
duplicate_reference: "Referensi duplikat dengan nama '{{refName}}'",
|
||||
circular_dependency: "Ketergantungan siklik yang melibatkan tabel '{{refName}}'",
|
||||
circular_dependency:
|
||||
"Ketergantungan siklik yang melibatkan tabel '{{refName}}'",
|
||||
timeline: "Garis waktu",
|
||||
priority: "Prioritas",
|
||||
none: "Tidak ada",
|
||||
@ -214,7 +228,8 @@ const id = {
|
||||
not_found: "Tidak ditemukan",
|
||||
pick_db: "Pilih basis data",
|
||||
generic: "Generik",
|
||||
generic_description: "Diagram generik dapat diekspor ke SQL mana pun tetapi mendukung sedikit tipe data.",
|
||||
generic_description:
|
||||
"Diagram generik dapat diekspor ke SQL mana pun tetapi mendukung sedikit tipe data.",
|
||||
enums: "Enums",
|
||||
add_enum: "Tambah enum",
|
||||
edit_enum: "{{extra}} Edit enum {{enumName}}",
|
||||
@ -225,7 +240,8 @@ const id = {
|
||||
no_enums: "Tidak ada enum",
|
||||
no_enums_text: "Definisikan enum di sini",
|
||||
declare_array: "Deklarasikan array",
|
||||
empty_index_name: "Mendeklarasikan indeks tanpa nama dalam tabel '{{tableName}}'",
|
||||
empty_index_name:
|
||||
"Mendeklarasikan indeks tanpa nama dalam tabel '{{tableName}}'",
|
||||
didnt_find_diagram: "Ups! Tidak menemukan diagram.",
|
||||
},
|
||||
};
|
||||
|
@ -7,8 +7,9 @@ const italian = {
|
||||
const it = {
|
||||
translation: {
|
||||
report_bug: "Segnalare un bug",
|
||||
import_from: "Importa",
|
||||
import: "Importa",
|
||||
file: "File ",
|
||||
file: "File",
|
||||
new: "Nuovo",
|
||||
new_window: "Nuova Finestra",
|
||||
open: "Apri",
|
||||
@ -156,8 +157,8 @@ const it = {
|
||||
create: "Crea",
|
||||
confirm: "Accetta",
|
||||
last_modified: "Ultima modifica",
|
||||
drag_and_drop_files: "Trascina e rilascia qui il file o clicca per caricarlo.",
|
||||
support_json_and_ddb: "I file JSON e DDB sono supportati",
|
||||
drag_and_drop_files:
|
||||
"Trascina e rilascia qui il file o clicca per caricarlo.",
|
||||
upload_sql_to_generate_diagrams:
|
||||
"Carica un file sql per autogenerare le tabelle e le colonne.",
|
||||
overwrite_existing_diagram: "Sovrascrivi il diagramma esistente",
|
||||
@ -179,11 +180,13 @@ const it = {
|
||||
"Campi della tabella duplicati con il nome '{{fieldName}}' nella tabella '{{tableName}}'",
|
||||
duplicate_index:
|
||||
"Indice duplicato con il nome '{{indexName}}' nella tabella '{{tableName}}'",
|
||||
empty_index: "L'indice nella tabella '{{tableName}}' non indicizza nessuna colonna",
|
||||
empty_index:
|
||||
"L'indice nella tabella '{{tableName}}' non indicizza nessuna colonna",
|
||||
no_primary_key: "La tabella '{{tableName}}' non ha una chiave primaria",
|
||||
type_with_no_name: "Dichiarato un tipo senza nome",
|
||||
duplicate_types: "Tipi duplicati con il nome '{{typeName}}'",
|
||||
type_w_no_fields: "Dichiarato un tipo vuoto '{{typeName}}' senza alcun campo",
|
||||
type_w_no_fields:
|
||||
"Dichiarato un tipo vuoto '{{typeName}}' senza alcun campo",
|
||||
empty_type_field_name: "Campo `name` vuoto nel tipo '{{typeName}}'",
|
||||
empty_type_field_type: "Campo `type` vuoto nel tipo '{{typeName}}'",
|
||||
no_values_for_type_field:
|
||||
@ -191,7 +194,8 @@ const it = {
|
||||
duplicate_type_fields:
|
||||
"Campi di tipo duplicati con il nome '{{fieldName}}' nel tipo '{{typeName}}'",
|
||||
duplicate_reference: "Riferimento duplicato con il nome '{{refName}}'",
|
||||
circular_dependency: "Dipendenza circolare riguardante la tabella '{{refName}}'",
|
||||
circular_dependency:
|
||||
"Dipendenza circolare riguardante la tabella '{{refName}}'",
|
||||
timeline: "Cronologia",
|
||||
priority: "Priorità",
|
||||
none: "Nessuna",
|
||||
@ -233,7 +237,8 @@ const it = {
|
||||
no_enums: "Nessun enum",
|
||||
no_enums_text: "Definisci qui gli enum",
|
||||
declare_array: "Dichiara array",
|
||||
empty_index_name: "Dichiarato un indice senza nome nella tabella '{{tableName}}'",
|
||||
empty_index_name:
|
||||
"Dichiarato un indice senza nome nella tabella '{{tableName}}'",
|
||||
didnt_find_diagram: "Ops! Impossibile trovare il diagramma.",
|
||||
unsigned: "Senza segno",
|
||||
},
|
||||
|
@ -2,11 +2,12 @@ const japanese = {
|
||||
name: "Japanese",
|
||||
native_name: "Japanese",
|
||||
code: "jp",
|
||||
};
|
||||
};
|
||||
|
||||
const jp = {
|
||||
const jp = {
|
||||
translation: {
|
||||
report_bug: "バグを報告",
|
||||
import_from: "インポート",
|
||||
import: "インポート",
|
||||
file: "ファイル",
|
||||
new: "新規",
|
||||
@ -18,7 +19,8 @@ const japanese = {
|
||||
template_saved: "テンプレートが保存されました!",
|
||||
rename: "名前を変更",
|
||||
delete_diagram: "ダイアグラムを削除",
|
||||
are_you_sure_delete_diagram: "このダイアグラムを削除してもよろしいですか? この操作は取り消せません。",
|
||||
are_you_sure_delete_diagram:
|
||||
"このダイアグラムを削除してもよろしいですか? この操作は取り消せません。",
|
||||
oops_smth_went_wrong: "おっと!何かがうまくいかなかった。",
|
||||
import_diagram: "ダイアグラムをインポート",
|
||||
import_from_source: "SQLからインポート",
|
||||
@ -30,7 +32,8 @@ const japanese = {
|
||||
undo: "元に戻す",
|
||||
redo: "やり直す",
|
||||
clear: "クリア",
|
||||
are_you_sure_clear: "ダイアグラムをクリアしてもよろしいですか? この操作は取り消せません。",
|
||||
are_you_sure_clear:
|
||||
"ダイアグラムをクリアしてもよろしいですか? この操作は取り消せません。",
|
||||
cut: "切り取り",
|
||||
copy: "コピー",
|
||||
paste: "貼り付け",
|
||||
@ -67,7 +70,8 @@ const japanese = {
|
||||
table_width: "テーブル幅",
|
||||
language: "言語",
|
||||
flush_storage: "ストレージを消去",
|
||||
are_you_sure_flush_storage: "ストレージを消去してもよろしいですか? これにより、すべてのダイアグラムとカスタムテンプレートが取り消し不能に削除されます。",
|
||||
are_you_sure_flush_storage:
|
||||
"ストレージを消去してもよろしいですか? これにより、すべてのダイアグラムとカスタムテンプレートが取り消し不能に削除されます。",
|
||||
storage_flushed: "ストレージが消去されました",
|
||||
help: "ヘルプ",
|
||||
shortcuts: "ショートカット",
|
||||
@ -102,7 +106,8 @@ const japanese = {
|
||||
no_types: "タイプがありません",
|
||||
no_types_text: "カスタムデータタイプを作成",
|
||||
no_issues: "問題は検出されていません。",
|
||||
strict_mode_is_on_no_issues: "厳格モードがオフになっているため、問題は表示されません。",
|
||||
strict_mode_is_on_no_issues:
|
||||
"厳格モードがオフになっているため、問題は表示されません。",
|
||||
name: "名前",
|
||||
type: "タイプ",
|
||||
null: "Null",
|
||||
@ -112,7 +117,8 @@ const japanese = {
|
||||
autoincrement: "オートインクリメント",
|
||||
default_value: "デフォルト",
|
||||
check: "チェック式",
|
||||
this_will_appear_as_is: "*これが生成されたスクリプトにそのまま表示されます。",
|
||||
this_will_appear_as_is:
|
||||
"*これが生成されたスクリプトにそのまま表示されます。",
|
||||
comment: "コメント",
|
||||
add_field: "フィールドを追加",
|
||||
values: "値",
|
||||
@ -134,7 +140,8 @@ const japanese = {
|
||||
one_to_many: "1対多",
|
||||
many_to_one: "多対1",
|
||||
content: "内容",
|
||||
types_info: "この機能はPostgreSQLのようなオブジェクトリレーショナルDBMS向けです。\nMySQLやMariaDBで使用した場合、対応するjsonの検証チェックと共にJSONタイプが生成されます。\nSQLiteで使用した場合、BLOBに変換されます。\nMSSQLで使用した場合、最初のフィールドへのタイプエイリアスが生成されます。",
|
||||
types_info:
|
||||
"この機能はPostgreSQLのようなオブジェクトリレーショナルDBMS向けです。\nMySQLやMariaDBで使用した場合、対応するjsonの検証チェックと共にJSONタイプが生成されます。\nSQLiteで使用した場合、BLOBに変換されます。\nMSSQLで使用した場合、最初のフィールドへのタイプエイリアスが生成されます。",
|
||||
table_deleted: "テーブルが削除されました",
|
||||
area_deleted: "エリアが削除されました",
|
||||
note_deleted: "ノートが削除されました",
|
||||
@ -151,33 +158,45 @@ const japanese = {
|
||||
create: "作成",
|
||||
confirm: "確認",
|
||||
last_modified: "最終更新",
|
||||
drag_and_drop_files: "ファイルをここにドラッグ&ドロップするかクリックしてアップロードします。",
|
||||
support_json_and_ddb: "JSONおよびDDBファイルがサポートされています",
|
||||
upload_sql_to_generate_diagrams: "SQLファイルをアップロードしてテーブルと列を自動生成します。",
|
||||
drag_and_drop_files:
|
||||
"ファイルをここにドラッグ&ドロップするかクリックしてアップロードします。",
|
||||
upload_sql_to_generate_diagrams:
|
||||
"SQLファイルをアップロードしてテーブルと列を自動生成します。",
|
||||
overwrite_existing_diagram: "既存のダイアグラムを上書きする",
|
||||
only_mysql_supported: "*現在のところMySQLスクリプトの読み込みのみサポートされています。",
|
||||
only_mysql_supported:
|
||||
"*現在のところMySQLスクリプトの読み込みのみサポートされています。",
|
||||
blank: "空白",
|
||||
filename: "ファイル名",
|
||||
table_w_no_name: "名前のないテーブルが宣言されました",
|
||||
duplicate_table_by_name: "名前 '{{tableName}}' のテーブルが重複しています",
|
||||
empty_field_name: "テーブル '{{tableName}}' のフィールド `name` が空です",
|
||||
empty_field_type: "テーブル '{{tableName}}' のフィールド `type` が空です",
|
||||
no_values_for_field: "テーブル '{{tableName}}' のフィールド '{{fieldName}}' はタイプ `{{type}}` ですが、値が指定されていません",
|
||||
default_doesnt_match_type: "テーブル '{{tableName}}' のフィールド '{{fieldName}}' のデフォルト値がタイプと一致しません",
|
||||
not_null_is_null: "テーブル '{{tableName}}' のフィールド '{{fieldName}}' はNOT NULLですが、デフォルトはNULLです",
|
||||
duplicate_fields: "テーブル '{{tableName}}' 内に名前 '{{fieldName}}' のフィールドが重複しています",
|
||||
duplicate_index: "テーブル '{{tableName}}' 内に名前 '{{indexName}}' のインデックスが重複しています",
|
||||
empty_index: "テーブル '{{tableName}}' のインデックスは列をインデックスしていません",
|
||||
no_values_for_field:
|
||||
"テーブル '{{tableName}}' のフィールド '{{fieldName}}' はタイプ `{{type}}` ですが、値が指定されていません",
|
||||
default_doesnt_match_type:
|
||||
"テーブル '{{tableName}}' のフィールド '{{fieldName}}' のデフォルト値がタイプと一致しません",
|
||||
not_null_is_null:
|
||||
"テーブル '{{tableName}}' のフィールド '{{fieldName}}' はNOT NULLですが、デフォルトはNULLです",
|
||||
duplicate_fields:
|
||||
"テーブル '{{tableName}}' 内に名前 '{{fieldName}}' のフィールドが重複しています",
|
||||
duplicate_index:
|
||||
"テーブル '{{tableName}}' 内に名前 '{{indexName}}' のインデックスが重複しています",
|
||||
empty_index:
|
||||
"テーブル '{{tableName}}' のインデックスは列をインデックスしていません",
|
||||
no_primary_key: "テーブル '{{tableName}}' に主キーがありません",
|
||||
type_with_no_name: "名前のないタイプが宣言されました",
|
||||
duplicate_types: "名前 '{{typeName}}' のタイプが重複しています",
|
||||
type_w_no_fields: "フィールドのない空のタイプ '{{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}}' のフィールドが重複しています",
|
||||
no_values_for_type_field:
|
||||
"タイプ '{{typeName}}' のフィールド '{{fieldName}}' はタイプ `{{type}}` ですが、値が指定されていません",
|
||||
duplicate_type_fields:
|
||||
"タイプ '{{typeName}}' 内に名前 '{{fieldName}}' のフィールドが重複しています",
|
||||
duplicate_reference: "名前 '{{refName}}' の参照が重複しています",
|
||||
circular_dependency: "テーブル '{{refName}}' を含む循環依存が検出されました",
|
||||
circular_dependency:
|
||||
"テーブル '{{refName}}' を含む循環依存が検出されました",
|
||||
timeline: "タイムライン",
|
||||
priority: "優先度",
|
||||
none: "なし",
|
||||
@ -207,7 +226,8 @@ const japanese = {
|
||||
not_found: "見つかりません",
|
||||
pick_db: "データベースを選択",
|
||||
generic: "一般",
|
||||
generic_description: "一般的なダイアグラムは任意のSQL方言にエクスポートできますが、データタイプのサポートは限定的です。",
|
||||
generic_description:
|
||||
"一般的なダイアグラムは任意のSQL方言にエクスポートできますが、データタイプのサポートは限定的です。",
|
||||
enums: "列挙型",
|
||||
add_enum: "列挙型を追加",
|
||||
edit_enum: "{{extra}} 列挙型 {{enumName}} を編集",
|
||||
@ -218,16 +238,18 @@ const japanese = {
|
||||
no_enums: "列挙型がありません",
|
||||
no_enums_text: "ここで列挙型を定義",
|
||||
declare_array: "配列を宣言",
|
||||
empty_index_name: "テーブル '{{tableName}}' 内で名前のないインデックスが宣言されました",
|
||||
empty_index_name:
|
||||
"テーブル '{{tableName}}' 内で名前のないインデックスが宣言されました",
|
||||
didnt_find_diagram: "おっと!ダイアグラムが見つかりませんでした。",
|
||||
unsigned: "符号なし",
|
||||
share: "共有",
|
||||
copy_link: "リンクをコピー",
|
||||
readme: "README",
|
||||
failed_to_load: "読み込みに失敗しました。リンクが正しいか確認してください。",
|
||||
share_info: "* このリンクを共有してもリアルタイムコラボレーションセッションは作成されません。"
|
||||
}
|
||||
failed_to_load:
|
||||
"読み込みに失敗しました。リンクが正しいか確認してください。",
|
||||
share_info:
|
||||
"* このリンクを共有してもリアルタイムコラボレーションセッションは作成されません。",
|
||||
},
|
||||
};
|
||||
|
||||
export { jp, japanese };
|
||||
|
||||
export { jp, japanese };
|
||||
|
@ -2,11 +2,12 @@ const kannada = {
|
||||
name: "Kannada",
|
||||
native_name: "ಕನ್ನಡ",
|
||||
code: "ka",
|
||||
}
|
||||
};
|
||||
|
||||
const ka = {
|
||||
translation: {
|
||||
report_bug: "ದೋಷವನ್ನು ವರದಿ ಮಾಡಿ",
|
||||
import_from: "ಆಮದು",
|
||||
import: "ಆಮದು",
|
||||
file: "ಫೈಲ್",
|
||||
new: "ಹೊಸ",
|
||||
@ -97,7 +98,8 @@ const ka = {
|
||||
no_tables: "ಯಾವುದೇ ಕೋಷ್ಟಕಗಳಿಲ್ಲ",
|
||||
no_tables_text: "ನಿಮ್ಮ ಚಿತ್ರವನ್ನು ನಿರ್ಮಿಸಲು ಪ್ರಾರಂಭಿಸಿ!",
|
||||
no_relationships: "ಯಾವುದೇ ಸಂಬಂಧಗಳಿಲ್ಲ",
|
||||
no_relationships_text: "ಕ್ಷೇತ್ರಗಳನ್ನು ಸಂಪರ್ಕಿಸಲು ಎಳೆಯಿರಿ ಮತ್ತು ಸಂಬಂಧಗಳನ್ನು ರೂಪಿಸಿ!",
|
||||
no_relationships_text:
|
||||
"ಕ್ಷೇತ್ರಗಳನ್ನು ಸಂಪರ್ಕಿಸಲು ಎಳೆಯಿರಿ ಮತ್ತು ಸಂಬಂಧಗಳನ್ನು ರೂಪಿಸಿ!",
|
||||
no_subject_areas: "ಯಾವುದೇ ವಿಷಯ ಪ್ರದೇಶಗಳಿಲ್ಲ",
|
||||
no_subject_areas_text: "ಕೋಷ್ಟಕಗಳನ್ನು ಗುಂಪು ಮಾಡಲು ವಿಷಯ ಪ್ರದೇಶಗಳನ್ನು ಸೇರಿಸಿ!",
|
||||
no_notes: "ಯಾವುದೇ ಟಿಪ್ಪಣಿಗಳಿಲ್ಲ",
|
||||
@ -116,7 +118,8 @@ const ka = {
|
||||
autoincrement: "ಸ್ವಯಂವೃದ್ಧಿ",
|
||||
default_value: "ಪೂರ್ವನಿಯೋಜಿತ",
|
||||
check: "ಪರಿಶೀಲನೆ",
|
||||
this_will_appear_as_is: "*ಇದು ತಯಾರಿಸಲಾದ ಸ್ಕ್ರಿಪ್ಟ್ನಲ್ಲಿ ಹಾಗೆಯೇ ಕಾಣಿಸುತ್ತದೆ.",
|
||||
this_will_appear_as_is:
|
||||
"*ಇದು ತಯಾರಿಸಲಾದ ಸ್ಕ್ರಿಪ್ಟ್ನಲ್ಲಿ ಹಾಗೆಯೇ ಕಾಣಿಸುತ್ತದೆ.",
|
||||
comment: "ಟಿಪ್ಪಣಿ",
|
||||
add_field: "ಕ್ಷೇತ್ರವನ್ನು ಸೇರಿಸಿ",
|
||||
values: "ಮೌಲ್ಯಗಳು",
|
||||
@ -156,8 +159,8 @@ const ka = {
|
||||
create: "ರಚಿಸಿ",
|
||||
confirm: "ದೃಢೀಕರಿಸಿ",
|
||||
last_modified: "ಕೊನೆಯದಾಗಿ ಬದಲಾಯಿಸಲಾಗಿದೆ",
|
||||
drag_and_drop_files: "ಫೈಲ್ ಅನ್ನು ಇಲ್ಲಿ ಎಳೆಯಿರಿ ಅಥವಾ ಅಪ್ಲೋಡ್ ಮಾಡಲು ಕ್ಲಿಕ್ ಮಾಡಿ.",
|
||||
support_json_and_ddb: "JSON ಮತ್ತು DDB ಫೈಲ್ಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ",
|
||||
drag_and_drop_files:
|
||||
"ಫೈಲ್ ಅನ್ನು ಇಲ್ಲಿ ಎಳೆಯಿರಿ ಅಥವಾ ಅಪ್ಲೋಡ್ ಮಾಡಲು ಕ್ಲಿಕ್ ಮಾಡಿ.",
|
||||
upload_sql_to_generate_diagrams:
|
||||
"ನಿಮ್ಮ ಕೋಷ್ಟಕಗಳು ಮತ್ತು ಕಂಬಿಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ತಯಾರಿಸಲು sql ಫೈಲ್ ಅನ್ನು ಅಪ್ಲೋಡ್ ಮಾಡಿ.",
|
||||
overwrite_existing_diagram: "ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಚಿತ್ರವನ್ನು ಮರುಬರೆಯಿರಿ",
|
||||
@ -179,11 +182,13 @@ const ka = {
|
||||
"ಕೋಷ್ಟಕ '{{tableName}}' ನಲ್ಲಿ ಹೆಸರಿನ ಮೂಲಕ ನಕಲು ಕೋಷ್ಟಕ ಕ್ಷೇತ್ರಗಳು '{{fieldName}}'",
|
||||
duplicate_index:
|
||||
"ಕೋಷ್ಟಕ '{{tableName}}' ನಲ್ಲಿ ಹೆಸರಿನ ಮೂಲಕ ನಕಲು ಸೂಚಿ '{{indexName}}'",
|
||||
empty_index: "ಕೋಷ್ಟಕ '{{tableName}}' ನಲ್ಲಿ ಸೂಚಿ ಯಾವುದೇ ಕಂಬಿಗಳನ್ನು ಸೂಚಿಸುತ್ತಿಲ್ಲ",
|
||||
empty_index:
|
||||
"ಕೋಷ್ಟಕ '{{tableName}}' ನಲ್ಲಿ ಸೂಚಿ ಯಾವುದೇ ಕಂಬಿಗಳನ್ನು ಸೂಚಿಸುತ್ತಿಲ್ಲ",
|
||||
no_primary_key: "ಕೋಷ್ಟಕ '{{tableName}}' ನಲ್ಲಿ ಪ್ರಾಥಮಿಕ ಕೀ ಇಲ್ಲ",
|
||||
type_with_no_name: "ಹೆಸರಿಲ್ಲದ ಪ್ರಕಾರವನ್ನು ಘೋಷಿಸಲಾಗಿದೆ",
|
||||
duplicate_types: "ಹೆಸರಿನ ಮೂಲಕ ನಕಲು ಪ್ರಕಾರಗಳು '{{typeName}}'",
|
||||
type_w_no_fields: "ಕ್ಷೇತ್ರಗಳಿಲ್ಲದ ಖಾಲಿ ಪ್ರಕಾರ '{{typeName}}' ಅನ್ನು ಘೋಷಿಸಲಾಗಿದೆ",
|
||||
type_w_no_fields:
|
||||
"ಕ್ಷೇತ್ರಗಳಿಲ್ಲದ ಖಾಲಿ ಪ್ರಕಾರ '{{typeName}}' ಅನ್ನು ಘೋಷಿಸಲಾಗಿದೆ",
|
||||
empty_type_field_name: "ಪ್ರಕಾರ '{{typeName}}' ನಲ್ಲಿ ಖಾಲಿ ಕ್ಷೇತ್ರ `ಹೆಸರು`",
|
||||
empty_type_field_type: "ಪ್ರಕಾರ '{{typeName}}' ನಲ್ಲಿ ಖಾಲಿ ಕ್ಷೇತ್ರ `ಪ್ರಕಾರ`",
|
||||
no_values_for_type_field:
|
||||
@ -233,13 +238,15 @@ const ka = {
|
||||
no_enums: "ಯಾವುದೇ ಎನಮ್ಗಳಿಲ್ಲ",
|
||||
no_enums_text: "ಇಲ್ಲಿ ಎನಮ್ಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಿ",
|
||||
declare_array: "ಅರೆ ಅನ್ನು ಘೋಷಿಸಿ",
|
||||
empty_index_name: "ಕೋಷ್ಟಕ '{{tableName}}' ನಲ್ಲಿ ಹೆಸರಿಲ್ಲದ ಸೂಚಿಯನ್ನು ಘೋಷಿಸಲಾಗಿದೆ",
|
||||
empty_index_name:
|
||||
"ಕೋಷ್ಟಕ '{{tableName}}' ನಲ್ಲಿ ಹೆಸರಿಲ್ಲದ ಸೂಚಿಯನ್ನು ಘೋಷಿಸಲಾಗಿದೆ",
|
||||
didnt_find_diagram: "ಅಯ್ಯೋ! ಚಿತ್ರವನ್ನು ಕಂಡುಹಿಡಿಯಲಿಲ್ಲ.",
|
||||
unsigned: "ಅನ್ಸೈನ್ ಮಾಡಲಾಗಿದೆ",
|
||||
share: "ಹಂಚಿಕೊಳ್ಳಿ",
|
||||
copy_link: "ಲಿಂಕ್ ನಕಲಿಸಿ",
|
||||
readme: "README",
|
||||
failed_to_load: "ಲೋಡ್ ಮಾಡಲು ವಿಫಲವಾಗಿದೆ. ಲಿಂಕ್ ಸರಿಯಾಗಿದೆಯೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.",
|
||||
failed_to_load:
|
||||
"ಲೋಡ್ ಮಾಡಲು ವಿಫಲವಾಗಿದೆ. ಲಿಂಕ್ ಸರಿಯಾಗಿದೆಯೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.",
|
||||
share_info:
|
||||
"* ಈ ಲಿಂಕ್ ಅನ್ನು ಹಂಚಿಕೊಳ್ಳುವುದರಿಂದ ಲೈವ್ ರಿಯಲ್-ಟೈಮ್ ಸಹಯೋಗ ಸೆಷನ್ ರಚಿಸಲಾಗುವುದಿಲ್ಲ.",
|
||||
},
|
||||
|
@ -7,6 +7,7 @@ const korean = {
|
||||
const ko = {
|
||||
translation: {
|
||||
report_bug: "문제 보고",
|
||||
import_from: "가져오기",
|
||||
import: "가져오기",
|
||||
file: "파일",
|
||||
new: "새로 만들기",
|
||||
@ -18,7 +19,8 @@ const ko = {
|
||||
template_saved: "템플릿이 저장되었습니다!",
|
||||
rename: "이름 변경",
|
||||
delete_diagram: "다이어그램 삭제",
|
||||
are_you_sure_delete_diagram: "이 다이어그램을 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.",
|
||||
are_you_sure_delete_diagram:
|
||||
"이 다이어그램을 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.",
|
||||
oops_smth_went_wrong: "이런! 문제가 발생했습니다.",
|
||||
import_diagram: "다이어그램 가져오기",
|
||||
import_from_source: "SQL에서 가져오기",
|
||||
@ -30,7 +32,8 @@ const ko = {
|
||||
undo: "실행 취소",
|
||||
redo: "다시 실행",
|
||||
clear: "지우기",
|
||||
are_you_sure_clear: "이 다이어그램을 지우시겠습니까? 이 작업은 되돌릴 수 없습니다.",
|
||||
are_you_sure_clear:
|
||||
"이 다이어그램을 지우시겠습니까? 이 작업은 되돌릴 수 없습니다.",
|
||||
cut: "잘라내기",
|
||||
copy: "복사",
|
||||
paste: "붙여넣기",
|
||||
@ -67,7 +70,8 @@ const ko = {
|
||||
table_width: "테이블 너비",
|
||||
language: "언어",
|
||||
flush_storage: "저장소 비우기",
|
||||
are_you_sure_flush_storage: "저장소를 비우시겠습니까? 이 작업은 되돌릴 수 없으며 모든 다이어그램과 사용자 정의 템플릿이 삭제됩니다.",
|
||||
are_you_sure_flush_storage:
|
||||
"저장소를 비우시겠습니까? 이 작업은 되돌릴 수 없으며 모든 다이어그램과 사용자 정의 템플릿이 삭제됩니다.",
|
||||
storage_flushed: "저장소가 비워졌습니다",
|
||||
help: "도움말",
|
||||
shortcuts: "단축키",
|
||||
@ -102,7 +106,8 @@ const ko = {
|
||||
no_types: "유형 없음",
|
||||
no_types_text: "사용자 정의 데이터 유형을 만드세요",
|
||||
no_issues: "감지된 이슈가 없습니다.",
|
||||
strict_mode_is_on_no_issues: "엄격 모드가 꺼져 있어 이슈가 표시되지 않습니다.",
|
||||
strict_mode_is_on_no_issues:
|
||||
"엄격 모드가 꺼져 있어 이슈가 표시되지 않습니다.",
|
||||
name: "이름",
|
||||
type: "유형",
|
||||
null: "널",
|
||||
@ -134,7 +139,8 @@ const ko = {
|
||||
one_to_many: "일 대 다",
|
||||
many_to_one: "다 대 일",
|
||||
content: "내용",
|
||||
types_info: "이 기능은 PostgreSQL과 같은 객체 관계형 데이터베이스 관리 시스템에 적합합니다.\nMySQL 또는 MariaDB에서는 해당 JSON 검사를 포함한 JSON 유형으로 생성됩니다.\nSQLite에서는 BLOB으로 변환됩니다.\nMSSQL에서는 첫 번째 필드의 유형 별칭이 생성됩니다.",
|
||||
types_info:
|
||||
"이 기능은 PostgreSQL과 같은 객체 관계형 데이터베이스 관리 시스템에 적합합니다.\nMySQL 또는 MariaDB에서는 해당 JSON 검사를 포함한 JSON 유형으로 생성됩니다.\nSQLite에서는 BLOB으로 변환됩니다.\nMSSQL에서는 첫 번째 필드의 유형 별칭이 생성됩니다.",
|
||||
table_deleted: "테이블이 삭제되었습니다",
|
||||
area_deleted: "영역이 삭제되었습니다",
|
||||
note_deleted: "노트가 삭제되었습니다",
|
||||
@ -152,30 +158,39 @@ const ko = {
|
||||
confirm: "확인",
|
||||
last_modified: "마지막 수정",
|
||||
drag_and_drop_files: "파일을 여기에 끌어다 놓거나 클릭하여 업로드하세요.",
|
||||
support_json_and_ddb: "JSON 및 DDB 파일을 지원합니다",
|
||||
upload_sql_to_generate_diagrams: "SQL 파일을 업로드하여 테이블과 열을 자동 생성하세요.",
|
||||
upload_sql_to_generate_diagrams:
|
||||
"SQL 파일을 업로드하여 테이블과 열을 자동 생성하세요.",
|
||||
overwrite_existing_diagram: "기존 다이어그램 덮어쓰기",
|
||||
only_mysql_supported: "현재는 MySQL 스크립트만 지원합니다.",
|
||||
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: "'{{tableName}}' 테이블의 '{{fieldName}}' 필드 유형이 '{{type}}'이지만 값이 지정되지 않았습니다",
|
||||
default_doesnt_match_type: "'{{tableName}}' 테이블의 '{{fieldName}}' 필드 기본값이 유형과 일치하지 않습니다",
|
||||
not_null_is_null: "'{{tableName}}' 테이블의 '{{fieldName}}' 필드가 NOT NULL이지만 기본값이 NULL입니다",
|
||||
duplicate_fields: "'{{tableName}}' 테이블에서 '{{fieldName}}' 필드가 중복 선언되었습니다",
|
||||
duplicate_index: "'{{tableName}}' 테이블에서 '{{indexName}}' 인덱스가 중복 선언되었습니다",
|
||||
no_values_for_field:
|
||||
"'{{tableName}}' 테이블의 '{{fieldName}}' 필드 유형이 '{{type}}'이지만 값이 지정되지 않았습니다",
|
||||
default_doesnt_match_type:
|
||||
"'{{tableName}}' 테이블의 '{{fieldName}}' 필드 기본값이 유형과 일치하지 않습니다",
|
||||
not_null_is_null:
|
||||
"'{{tableName}}' 테이블의 '{{fieldName}}' 필드가 NOT NULL이지만 기본값이 NULL입니다",
|
||||
duplicate_fields:
|
||||
"'{{tableName}}' 테이블에서 '{{fieldName}}' 필드가 중복 선언되었습니다",
|
||||
duplicate_index:
|
||||
"'{{tableName}}' 테이블에서 '{{indexName}}' 인덱스가 중복 선언되었습니다",
|
||||
empty_index: "'{{tableName}}' 테이블의 인덱스에 열이 지정되지 않았습니다",
|
||||
no_primary_key: "'{{tableName}}' 테이블에 기본 키가 없습니다",
|
||||
type_with_no_name: "이름이 없는 유형이 선언되었습니다",
|
||||
duplicate_types: "'{{typeName}}'라는 이름의 유형이 중복 선언되었습니다",
|
||||
type_w_no_fields: "'{{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}}' 필드가 중복 선언되었습니다",
|
||||
no_values_for_type_field:
|
||||
"'{{typeName}}' 유형의 '{{fieldName}}' 필드 유형이 '{{type}}'이지만 값이 지정되지 않았습니다",
|
||||
duplicate_type_fields:
|
||||
"'{{typeName}}' 사용자 정의 클래스에서 '{{fieldName}}' 필드가 중복 선언되었습니다",
|
||||
duplicate_reference: "'{{refName}}'라는 이름의 참조가 중복 선언되었습니다",
|
||||
circular_dependency: "'{{refName}}' 테이블을 포함한 순환 종속이 있습니다",
|
||||
timeline: "타임라인",
|
||||
@ -207,7 +222,8 @@ const ko = {
|
||||
not_found: "찾을 수 없음",
|
||||
pick_db: "데이터베이스 선택",
|
||||
generic: "일반",
|
||||
generic_description: "일반 다이어그램은 모든 SQL 유형으로 내보낼 수 있지만 지원하는 데이터 유형이 적습니다.",
|
||||
generic_description:
|
||||
"일반 다이어그램은 모든 SQL 유형으로 내보낼 수 있지만 지원하는 데이터 유형이 적습니다.",
|
||||
enums: "열거형",
|
||||
add_enum: "열거형 추가",
|
||||
edit_enum: "{{extra}} 열거형 {{enumName}} 수정",
|
||||
@ -218,7 +234,8 @@ const ko = {
|
||||
no_enums: "열거형 없음",
|
||||
no_enums_text: "여기에 열거형을 정의하세요",
|
||||
declare_array: "배열 선언",
|
||||
empty_index_name: "'{{tableName}}' 테이블에 이름 없는 인덱스가 선언되었습니다",
|
||||
empty_index_name:
|
||||
"'{{tableName}}' 테이블에 이름 없는 인덱스가 선언되었습니다",
|
||||
didnt_find_diagram: "이런! 다이어그램을 찾을 수 없습니다.",
|
||||
unsigned: "부호 없음",
|
||||
},
|
||||
|
@ -2,11 +2,12 @@ const marathi = {
|
||||
name: "Marathi",
|
||||
native_name: "मराठी",
|
||||
code: "mr",
|
||||
};
|
||||
};
|
||||
|
||||
const mr = {
|
||||
const mr = {
|
||||
translation: {
|
||||
report_bug: "बग रिपोर्ट करा",
|
||||
import_from: "आयात",
|
||||
import: "आयात",
|
||||
file: "फाइल",
|
||||
new: "नवीन",
|
||||
@ -149,13 +150,12 @@ const marathi = {
|
||||
create: "तयार करा",
|
||||
confirm: "पुष्टी करा",
|
||||
last_modified: "शेवटचे बदलले",
|
||||
drag_and_drop_files: "फाइल येथे खेचा आणि सोडा किंवा अपलोड करण्यासाठी क्लिक करा.",
|
||||
support_json_and_ddb: "JSON आणि DDB फाइल्स समर्थित आहेत",
|
||||
drag_and_drop_files:
|
||||
"फाइल येथे खेचा आणि सोडा किंवा अपलोड करण्यासाठी क्लिक करा.",
|
||||
upload_sql_to_generate_diagrams:
|
||||
"आपल्या टेबल आणि कॉलम स्वयंचलितपणे जेनरेट करण्यासाठी SQL फाइल अपलोड करा.",
|
||||
overwrite_existing_diagram: "मौजूदा डायग्राम अधिलेखित करा",
|
||||
only_mysql_supported:
|
||||
"*सध्या फक्त MySQL स्क्रिप्ट्स लोड करणे समर्थित आहे.",
|
||||
only_mysql_supported: "*सध्या फक्त MySQL स्क्रिप्ट्स लोड करणे समर्थित आहे.",
|
||||
blank: "रिक्त",
|
||||
filename: "फाइलनाम",
|
||||
table_w_no_name: "नाव नसलेल्या टेबलची घोषणा केली",
|
||||
@ -172,7 +172,8 @@ const marathi = {
|
||||
"टेबल '{{tableName}}' मध्ये नाव '{{fieldName}}' असलेले डुप्लिकेट टेबल फील्ड्स",
|
||||
duplicate_index:
|
||||
"टेबल '{{tableName}}' मध्ये नाव '{{indexName}}' असलेला डुप्लिकेट इंडेक्स",
|
||||
empty_index: "टेबल '{{tableName}}' मध्ये इंडेक्स कोणताही कॉलम इंडेक्स करत नाही",
|
||||
empty_index:
|
||||
"टेबल '{{tableName}}' मध्ये इंडेक्स कोणताही कॉलम इंडेक्स करत नाही",
|
||||
no_primary_key: "टेबल '{{tableName}}' मध्ये कोणतीही प्राथमिक कुंजी नाही",
|
||||
type_with_no_name: "नाव नसलेला प्रकार घोषित केला",
|
||||
duplicate_types: "नाव '{{typeName}}' असलेले डुप्लिकेट प्रकार",
|
||||
@ -213,7 +214,6 @@ const marathi = {
|
||||
delete_relationship: "संबंध हटवा {{refName}}",
|
||||
not_found: "सापडले नाही",
|
||||
},
|
||||
};
|
||||
|
||||
export { mr, marathi };
|
||||
};
|
||||
|
||||
export { mr, marathi };
|
||||
|
@ -2,11 +2,12 @@ const nepali = {
|
||||
name: "Nepali",
|
||||
native_name: "नेपाली",
|
||||
code: "ne",
|
||||
};
|
||||
};
|
||||
|
||||
const ne = {
|
||||
const ne = {
|
||||
translation: {
|
||||
report_bug: "बग रिपोर्ट गर्नुहोस्",
|
||||
import_from: "इम्पोर्ट गर्नुहोस्",
|
||||
import: "इम्पोर्ट गर्नुहोस्",
|
||||
file: "फाइल",
|
||||
new: "नयाँ",
|
||||
@ -109,7 +110,8 @@ const nepali = {
|
||||
autoincrement: "स्वतः वृद्धि",
|
||||
default_value: "डिफल्ट",
|
||||
check: "चेक अभिव्यक्ति",
|
||||
this_will_appear_as_is: "*यो जेनरेट गरिएको स्क्रिप्टमा जसरी हुन्छ त्यस्तै देखिनेछ।",
|
||||
this_will_appear_as_is:
|
||||
"*यो जेनरेट गरिएको स्क्रिप्टमा जसरी हुन्छ त्यस्तै देखिनेछ।",
|
||||
comment: "टिप्पणी",
|
||||
add_field: "फिल्ड थप्नुहोस्",
|
||||
values: "मानहरू",
|
||||
@ -149,8 +151,8 @@ const nepali = {
|
||||
create: "बनाउनुहोस्",
|
||||
confirm: "पुष्टि गर्नुहोस्",
|
||||
last_modified: "अन्तिम पटक संशोधित",
|
||||
drag_and_drop_files: "फाइललाई यहाँ तानेर छोड्नुहोस् वा अपलोड गर्न क्लिक गर्नुहोस्।",
|
||||
support_json_and_ddb: "JSON र DDB फाइलहरू समर्थित छन्",
|
||||
drag_and_drop_files:
|
||||
"फाइललाई यहाँ तानेर छोड्नुहोस् वा अपलोड गर्न क्लिक गर्नुहोस्।",
|
||||
upload_sql_to_generate_diagrams:
|
||||
"स्वचालित रूपमा डायग्राम सिर्जना गर्न SQL फाइल अपलोड गर्नुहोस्।",
|
||||
overwrite_existing_diagram: "मौजुदा डायग्रामलाई अधिलेखित गर्नुहोस्",
|
||||
@ -172,7 +174,8 @@ const nepali = {
|
||||
"तालिका '{{tableName}}' मा नाम '{{fieldName}}' भएका दोहोरो तालिका क्षेत्रहरू",
|
||||
duplicate_index:
|
||||
"तालिका '{{tableName}}' मा नाम '{{indexName}}' भएको दोहोरो सूची",
|
||||
empty_index: "तालिका '{{tableName}}' मा सूची कुनै पनि स्तम्भ सूची गरिरहेको छैन",
|
||||
empty_index:
|
||||
"तालिका '{{tableName}}' मा सूची कुनै पनि स्तम्भ सूची गरिरहेको छैन",
|
||||
no_primary_key: "तालिका '{{tableName}}' मा कुनै प्रमुख कुञ्जी छैन",
|
||||
type_with_no_name: "कुनै नाम नभएको प्रकार घोषण गरिएको छ",
|
||||
duplicate_types: "नाम '{{typeName}}' भएका दोहोरो प्रकार",
|
||||
@ -211,8 +214,8 @@ const nepali = {
|
||||
add_relationship: "संबन्ध थप्नुहोस्",
|
||||
edit_relationship: "{{extra}} सम्बन्ध सम्पादन गर्नुहोस् {{refName}}",
|
||||
delete_relationship: "संबन्ध मेटाउनुहोस् {{refName}}",
|
||||
not_found: "फेला परेन"
|
||||
not_found: "फेला परेन",
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
export { ne, nepali };
|
||||
export { ne, nepali };
|
||||
|
@ -2,11 +2,12 @@ const norwegian = {
|
||||
name: "Norwegian",
|
||||
native_name: "Norsk",
|
||||
code: "no",
|
||||
};
|
||||
};
|
||||
|
||||
const no = {
|
||||
const no = {
|
||||
translation: {
|
||||
report_bug: "Rapporter en feil",
|
||||
import_from: "Importer",
|
||||
import: "Importer",
|
||||
file: "Fil",
|
||||
new: "Ny",
|
||||
@ -116,7 +117,8 @@ const norwegian = {
|
||||
autoincrement: "Autoinkrement",
|
||||
default_value: "Standardverdi",
|
||||
check: "Sjekk uttrykk",
|
||||
this_will_appear_as_is: "*Dette vil vises i det genererte skriptet som det er.",
|
||||
this_will_appear_as_is:
|
||||
"*Dette vil vises i det genererte skriptet som det er.",
|
||||
comment: "Kommentar",
|
||||
add_field: "Legg til felt",
|
||||
values: "Verdier",
|
||||
@ -157,12 +159,10 @@ const norwegian = {
|
||||
confirm: "Bekreft",
|
||||
last_modified: "Sist endret",
|
||||
drag_and_drop_files: "Dra og slipp filen her eller klikk for å laste opp.",
|
||||
support_json_and_ddb: "JSON- og DDB-filer støttes",
|
||||
upload_sql_to_generate_diagrams:
|
||||
"Last opp en SQL-fil for å autogenerere dine tabeller og kolonner.",
|
||||
overwrite_existing_diagram: "Overskriv eksisterende diagram",
|
||||
only_mysql_supported:
|
||||
"*For tiden støttes kun lasting av MySQL-skript.",
|
||||
only_mysql_supported: "*For tiden støttes kun lasting av MySQL-skript.",
|
||||
blank: "Blank",
|
||||
filename: "Filnavn",
|
||||
table_w_no_name: "Deklarerte en tabell uten navn",
|
||||
@ -191,7 +191,8 @@ const norwegian = {
|
||||
duplicate_type_fields:
|
||||
"Duplikatfelter med navnet '{{fieldName}}' i type '{{typeName}}'",
|
||||
duplicate_reference: "Duplikatreferanse med navnet '{{refName}}'",
|
||||
circular_dependency: "Sirkulær avhengighet som involverer tabell '{{refName}}'",
|
||||
circular_dependency:
|
||||
"Sirkulær avhengighet som involverer tabell '{{refName}}'",
|
||||
timeline: "Tidslinje",
|
||||
priority: "Prioritet",
|
||||
none: "Ingen",
|
||||
@ -243,6 +244,6 @@ const norwegian = {
|
||||
share_info:
|
||||
"* Å dele denne lenken vil ikke opprette en live sanntidssamarbeidssession.",
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
export { no, norwegian };
|
||||
export { no, norwegian };
|
||||
|
@ -7,6 +7,7 @@ const odia = {
|
||||
const od = {
|
||||
translation: {
|
||||
report_bug: "ବଗ୍ ରିପୋର୍ଟ କରନ୍ତୁ",
|
||||
import_from: "ଆମଦାନି",
|
||||
import: "ଆମଦାନି",
|
||||
file: "ଫାଇଲ୍",
|
||||
new: "ନୂତନ",
|
||||
@ -152,7 +153,6 @@ const od = {
|
||||
last_modified: "ଶେଷ ସମୟରେ ସଂଶୋଧିତ",
|
||||
drag_and_drop_files:
|
||||
"ଫାଇଲ୍କୁ ଏଠାରେ ଟାଣନ୍ତୁ ଏବଂ ଛାଡନ୍ତୁ କିମ୍ବା ଅପଲୋଡ୍ କରିବାକୁ କ୍ଲିକ୍ କରନ୍ତୁ।",
|
||||
support_json_and_ddb: "JSON ଏବଂ DDB ଫାଇଲ୍ଗୁଡିକ ସମର୍ଥିତ",
|
||||
upload_sql_to_generate_diagrams:
|
||||
"ଆପଣଙ୍କର ଟେବଲ୍ ଏବଂ କଲମ୍ଗୁଡିକୁ ସ୍ୱୟଂଚାଳିତ ଭାବରେ ଜେନେରେଟ୍ କରିବାକୁ ଏକ sql ଫାଇଲ୍ ଅପଲୋଡ୍ କରନ୍ତୁ।",
|
||||
overwrite_existing_diagram: "ବର୍ତ୍ତମାନର ଡାୟାଗ୍ରାମ୍କୁ ଅଧିଲେଖନ କରନ୍ତୁ",
|
||||
|
@ -7,6 +7,7 @@ const punjabi = {
|
||||
const pa = {
|
||||
translation: {
|
||||
report_bug: "ਬੱਗ ਰਿਪੋਰਟ ਕਰੋ",
|
||||
import_from: "ਇੰਪੋਰਟ ਕਰੋ",
|
||||
import: "ਇੰਪੋਰਟ ਕਰੋ",
|
||||
file: "ਫਾਈਲ",
|
||||
new: "ਨਵਾਂ",
|
||||
@ -152,7 +153,6 @@ const pa = {
|
||||
last_modified: "ਆਖਰੀ ਵਾਰ ਬਦਲਿਆ ਗਿਆ",
|
||||
drag_and_drop_files:
|
||||
"ਫਾਈਲ ਨੂੰ ਇੱਥੇ ਖਿੱਚੋ ਅਤੇ ਛੱਡੋ ਜਾਂ ਅੱਪਲੋਡ ਕਰਨ ਲਈ ਕਲਿੱਕ ਕਰੋ।",
|
||||
support_json_and_ddb: "JSON ਅਤੇ DDB ਫਾਈਲਾਂ ਸਮਰਥਿਤ ਹਨ",
|
||||
upload_sql_to_generate_diagrams:
|
||||
"ਆਪਣੇ ਟੇਬਲਾਂ ਅਤੇ ਕਾਲਮਾਂ ਨੂੰ ਆਪਣੇ ਆਪ ਜਨਰੇਟ ਕਰਨ ਲਈ ਇੱਕ SQL ਫਾਈਲ ਅੱਪਲੋਡ ਕਰੋ।",
|
||||
overwrite_existing_diagram: "ਮੌਜੂਦਾ ਡਾਯਾਗ੍ਰਾਮ ਨੂੰ ਓਵਰਰਾਈਟ ਕਰੋ",
|
||||
|
@ -2,11 +2,12 @@ const polish = {
|
||||
name: "Polish",
|
||||
native_name: "Polski",
|
||||
code: "pl",
|
||||
};
|
||||
};
|
||||
|
||||
const pl = {
|
||||
const pl = {
|
||||
translation: {
|
||||
report_bug: "Zgłoś błąd",
|
||||
import_from: "Importuj",
|
||||
import: "Importuj",
|
||||
file: "Plik",
|
||||
new: "Nowy",
|
||||
@ -116,7 +117,8 @@ const polish = {
|
||||
autoincrement: "Autonumerowanie",
|
||||
default_value: "Wartość domyślna",
|
||||
check: "Wyrażenie sprawdzające",
|
||||
this_will_appear_as_is: "*To pojawi się w wygenerowanym skrypcie tak, jak jest.",
|
||||
this_will_appear_as_is:
|
||||
"*To pojawi się w wygenerowanym skrypcie tak, jak jest.",
|
||||
comment: "Komentarz",
|
||||
add_field: "Dodaj pole",
|
||||
values: "Wartości",
|
||||
@ -156,8 +158,8 @@ const polish = {
|
||||
create: "Utwórz",
|
||||
confirm: "Potwierdź",
|
||||
last_modified: "Ostatnio zmodyfikowano",
|
||||
drag_and_drop_files: "Przeciągnij i upuść plik tutaj lub kliknij, aby przesłać.",
|
||||
support_json_and_ddb: "Obsługiwane są pliki JSON i DDB",
|
||||
drag_and_drop_files:
|
||||
"Przeciągnij i upuść plik tutaj lub kliknij, aby przesłać.",
|
||||
upload_sql_to_generate_diagrams:
|
||||
"Prześlij plik SQL, aby automatycznie wygenerować tabele i kolumny.",
|
||||
overwrite_existing_diagram: "Nadpisz istniejący diagram",
|
||||
@ -239,11 +241,11 @@ const polish = {
|
||||
share: "Udostępnij",
|
||||
copy_link: "Kopiuj link",
|
||||
readme: "README",
|
||||
failed_to_load: "Nie udało się załadować. Upewnij się, że link jest poprawny.",
|
||||
failed_to_load:
|
||||
"Nie udało się załadować. Upewnij się, że link jest poprawny.",
|
||||
share_info:
|
||||
"* Udostępnienie tego linku nie utworzy sesji współpracy w czasie rzeczywistym.",
|
||||
},
|
||||
};
|
||||
|
||||
export { pl, polish };
|
||||
};
|
||||
|
||||
export { pl, polish };
|
||||
|
@ -7,6 +7,7 @@ const portuguese = {
|
||||
const pt = {
|
||||
translation: {
|
||||
report_bug: "Reportar um erro",
|
||||
import_from: "Importar",
|
||||
import: "Importar",
|
||||
file: "Arquivo",
|
||||
new: "Novo",
|
||||
@ -90,7 +91,8 @@ const pt = {
|
||||
no_tables: "Sem tabelas",
|
||||
no_tables_text: "Comece a construir seu diagrama!",
|
||||
no_relationships: "Sem relacionamentos",
|
||||
no_relationships_text: "Arraste para conectar campos e formar relacionamentos!",
|
||||
no_relationships_text:
|
||||
"Arraste para conectar campos e formar relacionamentos!",
|
||||
no_subject_areas: "Sem áreas de assunto",
|
||||
no_subject_areas_text: "Adicione áreas de assunto para agrupar tabelas!",
|
||||
no_notes: "Sem notas",
|
||||
@ -149,8 +151,8 @@ const pt = {
|
||||
create: "Criar",
|
||||
confirm: "Confirmar",
|
||||
last_modified: "Última modificação",
|
||||
drag_and_drop_files: "Arraste e solte o arquivo aqui ou clique para fazer upload.",
|
||||
support_json_and_ddb: "Arquivos JSON e DDB são suportados",
|
||||
drag_and_drop_files:
|
||||
"Arraste e solte o arquivo aqui ou clique para fazer upload.",
|
||||
upload_sql_to_generate_diagrams:
|
||||
"Faça o upload de um arquivo SQL para gerar automaticamente suas tabelas e colunas.",
|
||||
overwrite_existing_diagram: "Substituir diagrama existente",
|
||||
|
255
src/i18n/locales/ro.js
Normal file
255
src/i18n/locales/ro.js
Normal file
@ -0,0 +1,255 @@
|
||||
const romanian = {
|
||||
name: "Romanian",
|
||||
native_name: "Română",
|
||||
code: "ro",
|
||||
};
|
||||
|
||||
const ro = {
|
||||
translation: {
|
||||
report_bug: "Raportează o eroare",
|
||||
import_from: "Import",
|
||||
import: "Import",
|
||||
file: "Fișier",
|
||||
new: "Nou",
|
||||
new_window: "Fereastră nouă",
|
||||
open: "Deschide",
|
||||
save: "Salvează",
|
||||
save_as: "Salvează ca",
|
||||
save_as_template: "Salvează ca șablon",
|
||||
template_saved: "Șablon salvat!!",
|
||||
rename: "Redenumi",
|
||||
delete_diagram: "Șterge diagramă",
|
||||
are_you_sure_delete_diagram:
|
||||
"Ești sigur că vrei să ștergi această diagramă? Această operațiune este ireversibilă.",
|
||||
oops_smth_went_wrong: "Oops! A apărut o problemă",
|
||||
import_diagram: "Importă o diagramă",
|
||||
import_from_source: "Importă din SQL",
|
||||
export_as: "Exportă ca",
|
||||
export_source: "Exportă SQL",
|
||||
models: "Modele",
|
||||
exit: "Ieșire",
|
||||
edit: "Editează",
|
||||
undo: "Anulează",
|
||||
redo: "Refă",
|
||||
clear: "Șterge",
|
||||
are_you_sure_clear:
|
||||
"Ești sigur că vrei să cureți diagramă? Aceasta operațiune este ireversibilă.",
|
||||
cut: "Taie",
|
||||
copy: "Copiază",
|
||||
paste: "Lipește",
|
||||
duplicate: "Duplica",
|
||||
delete: "Șterge",
|
||||
copy_as_image: "Copiază ca imagine",
|
||||
view: "Vizualizează",
|
||||
header: "Bară de meniu",
|
||||
sidebar: "Bară laterală",
|
||||
issues: "Probleme",
|
||||
presentation_mode: "Mod prezentare",
|
||||
strict_mode: "Mod strict",
|
||||
field_details: "Detalii câmp",
|
||||
reset_view: "Resetează vizualizarea",
|
||||
show_grid: "Arată grilă",
|
||||
show_cardinality: "Arată cardinalitatea",
|
||||
theme: "Temă",
|
||||
light: "Luminos",
|
||||
dark: "Întunecat",
|
||||
zoom_in: "Măriți",
|
||||
zoom_out: "Micșora",
|
||||
fullscreen: "Ecran complet",
|
||||
settings: "Setări",
|
||||
show_timeline: "Arată cronologia",
|
||||
autosave: "Salvare automată",
|
||||
panning: "Panoramare",
|
||||
show_debug_coordinates: "Arată coordonatele de depanare",
|
||||
transform: "Transformă",
|
||||
viewbox: "Cutie de vizualizare",
|
||||
cursor_coordinates: "Coordonate cursorului",
|
||||
coordinate_space: "Spațiu",
|
||||
coordinate_space_screen: "Ecran",
|
||||
coordinate_space_diagram: "Diagramă",
|
||||
table_width: "Lățimea tabelului",
|
||||
language: "Limbă",
|
||||
flush_storage: "Golește depozitorea",
|
||||
are_you_sure_flush_storage:
|
||||
"Esti sigur că vrei să golesți depozitorea? Aceasta va șterge ireversibil toate diagramele și modelele personalizate.",
|
||||
storage_flushed: "Depozitorea a fost golită",
|
||||
help: "Ajutor",
|
||||
shortcuts: "Scurtături",
|
||||
ask_on_discord: "Întrebați-ne pe Discord",
|
||||
feedback: "Feedback",
|
||||
no_changes: "Nicio modificare",
|
||||
loading: "Se încarcă...",
|
||||
last_saved: "Ultima salvare",
|
||||
saving: "Se salvează...",
|
||||
failed_to_save: "Salvarea a eșuat",
|
||||
fit_window_reset: "Potrivește fereastra / Resetează",
|
||||
zoom: "Zoom",
|
||||
add_table: "Adaugă tabel",
|
||||
add_area: "Adaugă zonă",
|
||||
add_note: "Adaugă notă",
|
||||
add_type: "Adaugă tip",
|
||||
to_do: "De făcut",
|
||||
tables: "Tabele",
|
||||
relationships: "Relații",
|
||||
subject_areas: "Zonă subiectelor",
|
||||
notes: "Note",
|
||||
types: "Tipuri",
|
||||
search: "Căutare...",
|
||||
no_tables: "Fără tabele",
|
||||
no_tables_text: "Începe să construiești diagrama!",
|
||||
no_relationships: "Fără relații",
|
||||
no_relationships_text: "Trage pentru a conecta câmpuri și a forma relații!",
|
||||
no_subject_areas: "Fără zone de subiecte",
|
||||
no_subject_areas_text: "Adaugă zone de subiecte pentru a grupa tabelele!",
|
||||
no_notes: "Fără note",
|
||||
no_notes_text:
|
||||
"Folosește notele pentru a înregistra informații suplimentare",
|
||||
no_types: "Fără tipuri",
|
||||
no_types_text: "Creează-ți propriile tipuri de date personalizate",
|
||||
no_issues: "Nu au fost detectate probleme.",
|
||||
strict_mode_is_on_no_issues:
|
||||
"Modul strict este dezactivat, așa că nu vor fi afișate probleme.",
|
||||
name: "Nume",
|
||||
type: "Tip",
|
||||
null: "Null",
|
||||
not_null: "Nu este null",
|
||||
primary: "Primar",
|
||||
unique: "Unic",
|
||||
autoincrement: "Increment automat",
|
||||
default_value: "Implicit",
|
||||
check: "Verifică expresia",
|
||||
this_will_appear_as_is:
|
||||
"*Aceasta va apărea așa cum este în scriptul generat.",
|
||||
comment: "Comentariu",
|
||||
add_field: "Adaugă câmp",
|
||||
values: "Valori",
|
||||
size: "Mărime",
|
||||
precision: "Precizie",
|
||||
set_precision: "Setează precizia: 'mărime, cifre'",
|
||||
use_for_batch_input: "Folosește , pentru input în masă",
|
||||
indices: "Indici",
|
||||
add_index: "Adaugă index",
|
||||
select_fields: "Selectează câmpuri",
|
||||
title: "Titlu",
|
||||
not_set: "Necompletat",
|
||||
foreign: "Străin",
|
||||
cardinality: "Cardinalitate",
|
||||
on_update: "La actualizare",
|
||||
on_delete: "La ștergere",
|
||||
swap: "Schimbă",
|
||||
one_to_one: "Unul la unul",
|
||||
one_to_many: "Unul la mulți",
|
||||
many_to_one: "Mulți la unul",
|
||||
content: "Conținut",
|
||||
types_info:
|
||||
"Această caracteristică este destinată DBMS-urilor obiect-relaționale precum PostgreSQL.\nDacă este folosită pentru MySQL sau MariaDB, un tip JSON va fi generat cu validarea corespunzătoare a json.\nDacă este folosită pentru SQLite, va fi tradusă într-un BLOB.\nDacă este folosită pentru MSSQL, va fi generat un alias de tip pentru primul câmp.",
|
||||
table_deleted: "Tabel șters",
|
||||
area_deleted: "Zonă ștearsă",
|
||||
note_deleted: "Notă ștearsă",
|
||||
relationship_deleted: "Relație ștearsă",
|
||||
type_deleted: "Tip șters",
|
||||
cannot_connect: "Nu se poate conecta, coloanele au tipuri diferite",
|
||||
copied_to_clipboard: "Copiat în clipboard",
|
||||
create_new_diagram: "Creează diagramă nouă",
|
||||
cancel: "Anulează",
|
||||
open_diagram: "Deschide diagrama",
|
||||
rename_diagram: "Redenumește diagrama",
|
||||
export: "Exportă",
|
||||
export_image: "Exportă imagine",
|
||||
create: "Creează",
|
||||
confirm: "Confirmați",
|
||||
last_modified: "Ultima modificare",
|
||||
drag_and_drop_files:
|
||||
"Trageți și plasați fișierul aici sau faceți clic pentru a încărca.",
|
||||
upload_sql_to_generate_diagrams:
|
||||
"Încărcați un fișier SQL pentru a genera automat tabelele și coloanele.",
|
||||
overwrite_existing_diagram: "Suprascrie diagrama existentă",
|
||||
only_mysql_supported:
|
||||
"*Deocamdată, este acceptat doar încărcarea scripturilor MySQL.",
|
||||
blank: "Gol",
|
||||
filename: "Nume fișier",
|
||||
table_w_no_name: "A fost declarat un tabel fără nume",
|
||||
duplicate_table_by_name: "Tabel duplicat cu numele '{{tableName}}'",
|
||||
empty_field_name: "Nume câmp gol `nume` în tabelul '{{tableName}}'",
|
||||
empty_field_type: "Tip câmp gol `tip` în tabelul '{{tableName}}'",
|
||||
no_values_for_field:
|
||||
"'{{fieldName}}' câmp din tabelul '{{tableName}}' este de tip `{{type}}` dar nu au fost specificate valori",
|
||||
default_doesnt_match_type:
|
||||
"Valoarea implicită pentru câmpul '{{fieldName}}' din tabelul '{{tableName}}' nu se potrivește cu tipul său",
|
||||
not_null_is_null:
|
||||
"'{{fieldName}}' câmp din tabelul '{{tableName}}' NU ESTE NULL dar are valoarea implicită NULL",
|
||||
duplicate_fields:
|
||||
"Câmpuri duplicate în tabelul '{{tableName}}' cu numele '{{fieldName}}'",
|
||||
duplicate_index:
|
||||
"Index duplicat cu numele '{{indexName}}' în tabelul '{{tableName}}'",
|
||||
empty_index: "Index în tabelul '{{tableName}}' nu indexează nici o coloană",
|
||||
no_primary_key: "Tabelul '{{tableName}}' nu are cheie primară",
|
||||
type_with_no_name: "A fost declarat un tip fără nume",
|
||||
duplicate_types: "Tipuri duplicate cu numele '{{typeName}}'",
|
||||
type_w_no_fields: "A fost declarat un tip gol '{{typeName}}' fără câmpuri",
|
||||
empty_type_field_name: "Nume câmp gol `nume` în tipul '{{typeName}}'",
|
||||
empty_type_field_type: "Tip câmp gol `tip` în tipul '{{typeName}}'",
|
||||
no_values_for_type_field:
|
||||
"'{{fieldName}}' câmp din tipul '{{typeName}}' este de tip `{{type}}` dar nu au fost specificate valori",
|
||||
duplicate_type_fields:
|
||||
"Câmpuri duplicate în tipul '{{typeName}}' cu numele '{{fieldName}}'",
|
||||
duplicate_reference: "Referință duplicată cu numele '{{refName}}'",
|
||||
circular_dependency: "Dependență circulară implicând tabelul '{{refName}}'",
|
||||
timeline: "Cronologie",
|
||||
priority: "Prioritate",
|
||||
none: "Nimic",
|
||||
low: "Scăzut",
|
||||
medium: "Mediu",
|
||||
high: "Ridicat",
|
||||
sort_by: "Sortează după",
|
||||
my_order: "Comanda mea",
|
||||
completed: "Completat",
|
||||
alphabetically: "Alfabetic",
|
||||
add_task: "Adaugă sarcină",
|
||||
details: "Detalii",
|
||||
no_tasks: "Nu aveți sarcini încă.",
|
||||
no_activity: "Nu aveți activitate încă.",
|
||||
move_element: "Mută {{name}} la {{coords}}",
|
||||
edit_area: "{{extra}} Editează zona {{areaName}}",
|
||||
delete_area: "Șterge zona {{areaName}}",
|
||||
edit_note: "{{extra}} Editează nota {{noteTitle}}",
|
||||
delete_note: "Șterge nota {{noteTitle}}",
|
||||
edit_table: "{{extra}} Editează tabelul {{tableName}}",
|
||||
delete_table: "Șterge tabelul {{tableName}}",
|
||||
edit_type: "{{extra}} Editează tipul {{typeName}}",
|
||||
delete_type: "Șterge tipul {{typeName}}",
|
||||
add_relationship: "Adaugă relație",
|
||||
edit_relationship: "{{extra}} Editează relația {{refName}}",
|
||||
delete_relationship: "Șterge relația {{refName}}",
|
||||
not_found: "Nu a fost găsit",
|
||||
pick_db: "Alege o bază de date",
|
||||
generic: "General",
|
||||
generic_description:
|
||||
"Diagramele generale pot fi exportate în orice tip de SQL, dar susțin câteva tipuri de date.",
|
||||
enums: "Enumerații",
|
||||
add_enum: "Adaugă enumerație",
|
||||
edit_enum: "{{extra}} Editează enumerația {{enumName}}",
|
||||
delete_enum: "Șterge enumerația",
|
||||
enum_w_no_name: "Enumerație găsită fără nume",
|
||||
enum_w_no_values: "Enumerația '{{enumName}}' nu conține valori",
|
||||
duplicate_enums: "Enumerații duplicate cu numele '{{enumName}}'",
|
||||
no_enums: "Fără enumerații",
|
||||
no_enums_text: "Definiți enumerații aici",
|
||||
declare_array: "Declarați un array",
|
||||
empty_index_name:
|
||||
"A fost declarat un index fără nume în tabelul '{{tableName}}'",
|
||||
didnt_find_diagram: "Oops! Nu am găsit diagrama.",
|
||||
unsigned: "Fără semn",
|
||||
share: "Împărtășește",
|
||||
unshare: "Nu mai împărtăși",
|
||||
copy_link: "Copiază linkul",
|
||||
readme: "README",
|
||||
failed_to_load: "Eșec la încărcare. Asigurați-vă că linkul este corect.",
|
||||
share_info:
|
||||
"*Împărtășirea acestui link nu va crea o sesiune de colaborare în timp real.",
|
||||
show_relationship_labels: "Arată etichetele relațiilor",
|
||||
docs: "Documentație",
|
||||
},
|
||||
};
|
||||
|
||||
export { ro, romanian };
|
@ -7,6 +7,7 @@ const russian = {
|
||||
const ru = {
|
||||
translation: {
|
||||
report_bug: "Сообщить об ошибке",
|
||||
import_from: "Импорт",
|
||||
import: "Импорт",
|
||||
file: "Файл",
|
||||
new: "Новый",
|
||||
@ -90,9 +91,11 @@ const ru = {
|
||||
no_tables: "Нет таблиц",
|
||||
no_tables_text: "Начните создавать свою диаграмму!",
|
||||
no_relationships: "Нет отношений",
|
||||
no_relationships_text: "Перетащите, чтобы соединить поля и формировать отношения!",
|
||||
no_relationships_text:
|
||||
"Перетащите, чтобы соединить поля и формировать отношения!",
|
||||
no_subject_areas: "Нет предметных областей",
|
||||
no_subject_areas_text: "Добавьте предметные области для группировки таблиц!",
|
||||
no_subject_areas_text:
|
||||
"Добавьте предметные области для группировки таблиц!",
|
||||
no_notes: "Нет заметок",
|
||||
no_notes_text: "Используйте заметки для записи дополнительной информации",
|
||||
no_types: "Нет типов",
|
||||
@ -109,7 +112,8 @@ const ru = {
|
||||
autoincrement: "Автоувеличение",
|
||||
default_value: "Значение по умолчанию",
|
||||
check: "Проверка выражения",
|
||||
this_will_appear_as_is: "*Это будет отображаться в сгенерированном скрипте как есть.",
|
||||
this_will_appear_as_is:
|
||||
"*Это будет отображаться в сгенерированном скрипте как есть.",
|
||||
comment: "Комментарий",
|
||||
add_field: "Добавить поле",
|
||||
values: "значения",
|
||||
@ -150,7 +154,6 @@ const ru = {
|
||||
confirm: "Подтвердить",
|
||||
last_modified: "Последнее изменение",
|
||||
drag_and_drop_files: "Перетащите файл сюда или нажмите, чтобы загрузить.",
|
||||
support_json_and_ddb: "Поддерживаются файлы JSON и DDB",
|
||||
upload_sql_to_generate_diagrams:
|
||||
"Загрузите файл sql для автогенерации ваших таблиц и колонок.",
|
||||
overwrite_existing_diagram: "Перезаписать существующую диаграмму",
|
||||
@ -184,7 +187,8 @@ const ru = {
|
||||
duplicate_type_fields:
|
||||
"Дублирование полей типа по имени '{{fieldName}}' в типе '{{typeName}}'",
|
||||
duplicate_reference: "Дублирование ссылки по имени '{{refName}}'",
|
||||
circular_dependency: "Циклическая зависимость, вовлекающая таблицу '{{refName}}'",
|
||||
circular_dependency:
|
||||
"Циклическая зависимость, вовлекающая таблицу '{{refName}}'",
|
||||
timeline: "Временная шкала",
|
||||
priority: "Приоритет",
|
||||
none: "Нет",
|
||||
@ -221,7 +225,8 @@ const ru = {
|
||||
edit_enum: "{{extra}} Изменить перечисление {{enumName}}",
|
||||
delete_enum: "Удалить перечисление",
|
||||
enum_w_no_name: "Найдено перечисление без имени",
|
||||
enum_w_no_values: "Найдено перечисление '{{enumName}}' без каких-либо значений",
|
||||
enum_w_no_values:
|
||||
"Найдено перечисление '{{enumName}}' без каких-либо значений",
|
||||
duplicate_enums: "Повторяющиеся перечисления с именем '{{enumName}}'",
|
||||
no_enums: "Никаких перечислений",
|
||||
no_enums_text: "Определите перечисления здесь",
|
||||
@ -233,7 +238,8 @@ const ru = {
|
||||
unshare: "Не делиться",
|
||||
copy_link: "Скопировать ссылку",
|
||||
readme: "README",
|
||||
failed_to_load: "Не удалось загрузить. Убедитесь, что ссылка указана правильно.",
|
||||
failed_to_load:
|
||||
"Не удалось загрузить. Убедитесь, что ссылка указана правильно.",
|
||||
share_info:
|
||||
"* Поделившись этой ссылкой, не будет создано сеанса совместной работы в режиме реального времени.",
|
||||
},
|
||||
|
@ -7,6 +7,7 @@ const swedish = {
|
||||
const sv = {
|
||||
translation: {
|
||||
report_bug: "Rapportera ett fel",
|
||||
import_from: "Importera",
|
||||
import: "Importera",
|
||||
file: "Fil",
|
||||
new: "Ny",
|
||||
@ -159,7 +160,6 @@ const sv = {
|
||||
last_modified: "Senast ändrad",
|
||||
drag_and_drop_files:
|
||||
"Dra och släpp filen här eller klicka för att ladda upp.",
|
||||
support_json_and_ddb: "JSON- och DDB-filer stöds",
|
||||
upload_sql_to_generate_diagrams:
|
||||
"Ladda upp en SQL-fil för att auto-generera dina tabeller och kolumner.",
|
||||
overwrite_existing_diagram: "Skriv över befintligt diagram",
|
||||
|
@ -2,11 +2,12 @@ const telugu = {
|
||||
name: "Telugu",
|
||||
native_name: "తెలుగు",
|
||||
code: "te",
|
||||
};
|
||||
};
|
||||
|
||||
const te = {
|
||||
const te = {
|
||||
translation: {
|
||||
report_bug: "బగ్ నివేదించండి",
|
||||
import_from: "దిగుమతి",
|
||||
import: "దిగుమతి",
|
||||
file: "ఫైల్",
|
||||
new: "క్రొత్త",
|
||||
@ -90,7 +91,8 @@ const telugu = {
|
||||
no_tables: "ఏ పట్టికలు లేవు",
|
||||
no_tables_text: "మీ డయాగ్రామ్ ను ప్రారంభించండి!",
|
||||
no_relationships: "ఏ సంబంధాలు లేవు",
|
||||
no_relationships_text: "ఫీల్డ్స్ కలుపుకోవడానికి డ్రాగ్ చేసి సంబంధం ఏర్పాటు చేయండి!",
|
||||
no_relationships_text:
|
||||
"ఫీల్డ్స్ కలుపుకోవడానికి డ్రాగ్ చేసి సంబంధం ఏర్పాటు చేయండి!",
|
||||
no_subject_areas: "ఏ విషయ ప్రాంతాలు లేవు",
|
||||
no_subject_areas_text: "పట్టికలను సమూహంగా సబ్జెక్ట్ ప్రాంతాలకు చేర్చండి!",
|
||||
no_notes: "ఏ గమనికలు లేవు",
|
||||
@ -109,7 +111,8 @@ const telugu = {
|
||||
autoincrement: "స్వీయ వృద్ధి",
|
||||
default_value: "మూల్యాన్ని అప్రమేయంగా చేయి",
|
||||
check: "తనిఖీ",
|
||||
this_will_appear_as_is: "*ఇది ఉత్పత్తి చేయబడిన స్క్రిప్ట్లో వంటి ప్రదర్శితం అవుతుంది.",
|
||||
this_will_appear_as_is:
|
||||
"*ఇది ఉత్పత్తి చేయబడిన స్క్రిప్ట్లో వంటి ప్రదర్శితం అవుతుంది.",
|
||||
comment: "వ్యాఖ్య",
|
||||
add_field: "ఫీల్డ్ చేర్చండి",
|
||||
values: "విలువలు",
|
||||
@ -149,11 +152,12 @@ const telugu = {
|
||||
create: "సృష్టించండి",
|
||||
confirm: "నిర్ధారించండి",
|
||||
last_modified: "చివరిగా సవరించబడింది",
|
||||
drag_and_drop_files: "ఫైల్స్ను ఇక్కడికి లాగి వదిలివేయండి లేదా అప్లోడ్ చేయడానికి క్లిక్ చేయండి.",
|
||||
support_json_and_ddb: "JSON మరియు DDB ఫైల్స్ మద్దతు",
|
||||
drag_and_drop_files:
|
||||
"ఫైల్స్ను ఇక్కడికి లాగి వదిలివేయండి లేదా అప్లోడ్ చేయడానికి క్లిక్ చేయండి.",
|
||||
upload_sql_to_generate_diagrams:
|
||||
"మీ టేబుల్ మరియు కాలమ్స్ను స్వయంచాలకంగా ఉత్పత్తి చేయడానికి SQL ఫైల్ను అప్లోడ్ చేయండి.",
|
||||
overwrite_existing_diagram: "అన్నిప్రతుల మునుపటి ఆర్కెంట్ అంబి అవరు ఆర్కెదాన్ని చర్",
|
||||
overwrite_existing_diagram:
|
||||
"అన్నిప్రతుల మునుపటి ఆర్కెంట్ అంబి అవరు ఆర్కెదాన్ని చర్",
|
||||
only_mysql_supported:
|
||||
"*ప్రస్తుతం MySQL స్క్రిప్ట్స్ మాత్రమే లోడ్ చేయడానికి మద్దతు ఉంది.",
|
||||
blank: "ఖాళీ",
|
||||
@ -213,6 +217,6 @@ const telugu = {
|
||||
delete_relationship: "సంబంధం తొలగించండి {{refName}}",
|
||||
not_found: "దొరకలేదు",
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
export { te, telugu };
|
||||
export { te, telugu };
|
||||
|
@ -2,11 +2,12 @@ const tamil = {
|
||||
name: "Tamil",
|
||||
native_name: "தமிழ்",
|
||||
code: "tm",
|
||||
};
|
||||
};
|
||||
|
||||
const tm = {
|
||||
const tm = {
|
||||
translation: {
|
||||
report_bug: "பிழையைப் புகாரளிக்கவும்",
|
||||
import_from: "இறக்குமதி",
|
||||
import: "இறக்குமதி",
|
||||
file: "கோப்பு",
|
||||
new: "புதியது",
|
||||
@ -18,7 +19,8 @@ const tamil = {
|
||||
template_saved: "வார்ப்புரை சேமிக்கப்பட்டது!",
|
||||
rename: "பெயர் மாற்ற",
|
||||
delete_diagram: "வரைவைப் அழிக்க",
|
||||
are_you_sure_delete_diagram: "இந்த வரைவைக் கணியலை நீக்க விரும்புகிறீர்களா? இந்த செயல்பாடு மாற்றமுடியாதது.",
|
||||
are_you_sure_delete_diagram:
|
||||
"இந்த வரைவைக் கணியலை நீக்க விரும்புகிறீர்களா? இந்த செயல்பாடு மாற்றமுடியாதது.",
|
||||
oops_smth_went_wrong: "ஓப்பஸ்! ஏதோ தவறானது.",
|
||||
import_diagram: "வரைவைக் கணியம் செய்ய",
|
||||
import_from_source: "SQL-இலிருந்து இறக்குமதி செய்ய",
|
||||
@ -30,7 +32,8 @@ const tamil = {
|
||||
undo: "திரும்பெடு",
|
||||
redo: "மீண்டும் செய்",
|
||||
clear: "அழிக்க",
|
||||
are_you_sure_clear: "இந்த வரைவைக் கணியலை அகற்ற விரும்புகிறீர்களா? இது மாற்றமுடியாதது.",
|
||||
are_you_sure_clear:
|
||||
"இந்த வரைவைக் கணியலை அகற்ற விரும்புகிறீர்களா? இது மாற்றமுடியாதது.",
|
||||
cut: "வெட்டு",
|
||||
copy: "நகலெடு",
|
||||
paste: "ஒட்டு",
|
||||
@ -67,7 +70,8 @@ const tamil = {
|
||||
table_width: "அட்டவணை அகலம்",
|
||||
language: "மொழி",
|
||||
flush_storage: "சேமிப்பை கழிக்க",
|
||||
are_you_sure_flush_storage: "சேமிப்பை அழிக்க விரும்புகிறீர்களா? இது உங்கள் அனைத்து வரைவுகளையும் தனிப்பயனாக்கிய வார்ப்புருக்களை நீக்கும்.",
|
||||
are_you_sure_flush_storage:
|
||||
"சேமிப்பை அழிக்க விரும்புகிறீர்களா? இது உங்கள் அனைத்து வரைவுகளையும் தனிப்பயனாக்கிய வார்ப்புருக்களை நீக்கும்.",
|
||||
storage_flushed: "சேமிப்பு கழிக்கப்பட்டது",
|
||||
help: "உதவி",
|
||||
shortcuts: "குறுக்குவழிகள்",
|
||||
@ -94,15 +98,18 @@ const tamil = {
|
||||
no_tables: "அட்டவணைகள் இல்லை",
|
||||
no_tables_text: "உங்கள் வரைவைக் கணியம் தொடங்குங்கள்!",
|
||||
no_relationships: "தொடர்புகள் இல்லை",
|
||||
no_relationships_text: "புலங்களை இணைக்க இழுத்து விடுங்கள் மற்றும் தொடர்புகளை உருவாக்குங்கள்!",
|
||||
no_relationships_text:
|
||||
"புலங்களை இணைக்க இழுத்து விடுங்கள் மற்றும் தொடர்புகளை உருவாக்குங்கள்!",
|
||||
no_subject_areas: "பொருள் பகுதிகள் இல்லை",
|
||||
no_subject_areas_text: "அட்டவணைகளை குழுவாகச் சேர்க்க பொருள் பகுதிகளைச் சேர்க்கவும்!",
|
||||
no_subject_areas_text:
|
||||
"அட்டவணைகளை குழுவாகச் சேர்க்க பொருள் பகுதிகளைச் சேர்க்கவும்!",
|
||||
no_notes: "குறிப்புகள் இல்லை",
|
||||
no_notes_text: "கூடுதல் தகவலைப் பதிவு செய்ய குறிப்புகளைப் பயன்படுத்துங்கள்",
|
||||
no_types: "வகைகள் இல்லை",
|
||||
no_types_text: "உங்கள் சொந்த தனிப்பயன் தரவுப் வகைகளை உருவாக்குங்கள்",
|
||||
no_issues: "சிக்கல்கள் கண்டுபிடிக்கவில்லை.",
|
||||
strict_mode_is_on_no_issues: "கடுமையான முறை அணைக்கப்பட்டுள்ளது எனவே சிக்கல்கள் காண்பிக்கப்படாது.",
|
||||
strict_mode_is_on_no_issues:
|
||||
"கடுமையான முறை அணைக்கப்பட்டுள்ளது எனவே சிக்கல்கள் காண்பிக்கப்படாது.",
|
||||
name: "பெயர்",
|
||||
type: "வகை",
|
||||
null: "சுழி",
|
||||
@ -112,7 +119,8 @@ const tamil = {
|
||||
autoincrement: "தானியங்கி அதிகரிப்பு",
|
||||
default_value: "இயல்புநிலை",
|
||||
check: "சரிபார்",
|
||||
this_will_appear_as_is: "*இது உருவாக்கப்பட்ட ஸ்கிரிப்டில் உள்ளபடியே தோன்றும்.",
|
||||
this_will_appear_as_is:
|
||||
"*இது உருவாக்கப்பட்ட ஸ்கிரிப்டில் உள்ளபடியே தோன்றும்.",
|
||||
comment: "கருத்து",
|
||||
add_field: "புலம் சேர்க்க",
|
||||
values: "மதிப்புகள்",
|
||||
@ -134,7 +142,8 @@ const tamil = {
|
||||
one_to_many: "ஒன்றுக்கு பல",
|
||||
many_to_one: "பலக்கு ஒன்று",
|
||||
content: "உள்ளடக்கம்",
|
||||
types_info: "இந்த அம்சம் PostgreSQL போன்ற பொருள் தொடர்புடைய DBMS-களுக்காகவே. MySQL அல்லது MariaDB க்கு பயன்படுத்தப்படும் போது JSON வகை உருவாக்கப்படும் அதற்கான json சரிபார்ப்பு ஆய்வுடன். SQLite க்கு பயன்படுத்தப்படும் போது இது BLOB ஆக மாற்றப்படும். MSSQL க்கு பயன்படுத்தப்படும் போது முதற்கொண்டு கணியலுக்கு ஒரே வகை மாற்றம் உருவாக்கப்படும்.",
|
||||
types_info:
|
||||
"இந்த அம்சம் PostgreSQL போன்ற பொருள் தொடர்புடைய DBMS-களுக்காகவே. MySQL அல்லது MariaDB க்கு பயன்படுத்தப்படும் போது JSON வகை உருவாக்கப்படும் அதற்கான json சரிபார்ப்பு ஆய்வுடன். SQLite க்கு பயன்படுத்தப்படும் போது இது BLOB ஆக மாற்றப்படும். MSSQL க்கு பயன்படுத்தப்படும் போது முதற்கொண்டு கணியலுக்கு ஒரே வகை மாற்றம் உருவாக்கப்படும்.",
|
||||
table_deleted: "அட்டவணை அழிக்கப்பட்டது",
|
||||
area_deleted: "பகுதி அழிக்கப்பட்டது",
|
||||
note_deleted: "குறிப்பு அழிக்கப்பட்டது",
|
||||
@ -151,31 +160,46 @@ const tamil = {
|
||||
create: "உருவாக்கு",
|
||||
confirm: "உறுதிப்படுத்து",
|
||||
last_modified: "கடைசியாக மாற்றப்பட்டது",
|
||||
drag_and_drop_files: "கோப்புகளை இங்கு இழுத்து விடவும் அல்லது கிளிக்கி பதிவேற்றவும்.",
|
||||
support_json_and_ddb: "JSON மற்றும் DDB கோப்புகள் ஆதரிக்கப்படுகின்றன",
|
||||
upload_sql_to_generate_diagrams: "sql கோப்பை பதிவேற்றம் செய்து உங்கள் அட்டவணைகளையும் புலங்களையும் தானாக உருவாக்குங்கள்.",
|
||||
drag_and_drop_files:
|
||||
"கோப்புகளை இங்கு இழுத்து விடவும் அல்லது கிளிக்கி பதிவேற்றவும்.",
|
||||
upload_sql_to_generate_diagrams:
|
||||
"sql கோப்பை பதிவேற்றம் செய்து உங்கள் அட்டவணைகளையும் புலங்களையும் தானாக உருவாக்குங்கள்.",
|
||||
overwrite_existing_diagram: "ஏற்கனவே உள்ள வரைவைக் கணியலை மீட்டமைக்க",
|
||||
only_mysql_supported: "*தற்காலிகமாக மட்டும் MySQL ஸ்கிரிப்ட்கள் மட்டுமே ஆதரிக்கப்படும்.",
|
||||
only_mysql_supported:
|
||||
"*தற்காலிகமாக மட்டும் MySQL ஸ்கிரிப்ட்கள் மட்டுமே ஆதரிக்கப்படும்.",
|
||||
blank: "வெற்று",
|
||||
filename: "கோப்புப்பெயர்",
|
||||
table_w_no_name: "பெயர் இல்லாத அட்டவணை அறிவிக்கப்பட்டது",
|
||||
duplicate_table_by_name: "'{{tableName}}' என்ற பெயரில் நகல் அட்டவணை",
|
||||
empty_field_name: "'{{tableName}}' அட்டவணையில் `name` புலம் வெறுமையாக உள்ளது",
|
||||
empty_field_type: "'{{tableName}}' அட்டவணையில் `type` புலம் வெறுமையாக உள்ளது",
|
||||
no_values_for_field: "'{{tableName}}' அட்டவணையில் '{{fieldName}}' புலம் `{{type}}` வகையில் உள்ளது ஆனால் மதிப்புகள் குறிப்பிடப்படவில்லை",
|
||||
default_doesnt_match_type: "'{{tableName}}' அட்டவணையில் '{{fieldName}}' புலத்திற்கு இயல்புநிலை மதிப்பு அதன் வகையுடன் பொருந்தவில்லை",
|
||||
not_null_is_null: "'{{tableName}}' அட்டவணையில் '{{fieldName}}' புலம் சுழியல்ல ஆனால் இயல்புநிலை சுழி உள்ளது",
|
||||
duplicate_fields: "'{{tableName}}' அட்டவணையில் '{{fieldName}}' என்ற பெயரில் நகல் புலங்கள்",
|
||||
duplicate_index: "'{{tableName}}' அட்டவணையில் '{{indexName}}' என்ற பெயரில் நகல் சுட்டி",
|
||||
empty_index: "'{{tableName}}' அட்டவணையில் சுட்டி எந்த புலங்களையும் குறிப்பிடவில்லை",
|
||||
empty_field_name:
|
||||
"'{{tableName}}' அட்டவணையில் `name` புலம் வெறுமையாக உள்ளது",
|
||||
empty_field_type:
|
||||
"'{{tableName}}' அட்டவணையில் `type` புலம் வெறுமையாக உள்ளது",
|
||||
no_values_for_field:
|
||||
"'{{tableName}}' அட்டவணையில் '{{fieldName}}' புலம் `{{type}}` வகையில் உள்ளது ஆனால் மதிப்புகள் குறிப்பிடப்படவில்லை",
|
||||
default_doesnt_match_type:
|
||||
"'{{tableName}}' அட்டவணையில் '{{fieldName}}' புலத்திற்கு இயல்புநிலை மதிப்பு அதன் வகையுடன் பொருந்தவில்லை",
|
||||
not_null_is_null:
|
||||
"'{{tableName}}' அட்டவணையில் '{{fieldName}}' புலம் சுழியல்ல ஆனால் இயல்புநிலை சுழி உள்ளது",
|
||||
duplicate_fields:
|
||||
"'{{tableName}}' அட்டவணையில் '{{fieldName}}' என்ற பெயரில் நகல் புலங்கள்",
|
||||
duplicate_index:
|
||||
"'{{tableName}}' அட்டவணையில் '{{indexName}}' என்ற பெயரில் நகல் சுட்டி",
|
||||
empty_index:
|
||||
"'{{tableName}}' அட்டவணையில் சுட்டி எந்த புலங்களையும் குறிப்பிடவில்லை",
|
||||
no_primary_key: "'{{tableName}}' அட்டவணையில் முதன்மை விசை இல்லை",
|
||||
type_with_no_name: "பெயர் இல்லாத வகை அறிவிக்கப்பட்டது",
|
||||
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}}' என்ற பெயரில் நகல் புலங்கள்",
|
||||
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}}' என்ற பெயரில் நகல் குறிப்பு",
|
||||
circular_dependency: "'{{refName}}' அட்டவணை குறித்த சுழற்சி சார்பு",
|
||||
timeline: "நேரவரிசை",
|
||||
@ -207,7 +231,8 @@ const tamil = {
|
||||
not_found: "கண்டுபிடிக்கவில்லை",
|
||||
pick_db: "தரவுத்தொகுப்பைத் தேர்ந்தெடு",
|
||||
generic: "பொது",
|
||||
generic_description: "பொது வரைவை எந்த SQL வகைக்கும் ஏற்றexport செய்யலாம், ஆனால் சில தரவுவகைகளை மட்டுமே ஆதரிக்கும்.",
|
||||
generic_description:
|
||||
"பொது வரைவை எந்த SQL வகைக்கும் ஏற்றexport செய்யலாம், ஆனால் சில தரவுவகைகளை மட்டுமே ஆதரிக்கும்.",
|
||||
enums: "எனம்கள்",
|
||||
add_enum: "எனத்தைச் சேர்க்க",
|
||||
edit_enum: "{{extra}} எனத்தைத் திருத்து {{enumName}}",
|
||||
@ -218,11 +243,10 @@ const tamil = {
|
||||
no_enums: "எனங்கள் இல்லை",
|
||||
no_enums_text: "இங்கே எனங்களை வரையறுக்கவும்",
|
||||
declare_array: "வரிசையாக அறிவி",
|
||||
empty_index_name: "'{{tableName}}' அட்டவணையில் பெயர் இல்லாத சுட்டி அறிவிக்கப்பட்டது",
|
||||
empty_index_name:
|
||||
"'{{tableName}}' அட்டவணையில் பெயர் இல்லாத சுட்டி அறிவிக்கப்பட்டது",
|
||||
didnt_find_diagram: "ஓப்பஸ்! வரைவை கண்டுபிடிக்க முடியவில்லை.",
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
export { tm, tamil };
|
||||
|
||||
export { tm, tamil };
|
||||
|
@ -7,6 +7,7 @@ const turkish = {
|
||||
const tr = {
|
||||
translation: {
|
||||
report_bug: "Hata bildir",
|
||||
import_from: "İçe aktar",
|
||||
import: "İçe aktar",
|
||||
file: "Dosya",
|
||||
new: "Yeni",
|
||||
@ -97,7 +98,8 @@ const tr = {
|
||||
no_tables: "Tablo yok",
|
||||
no_tables_text: "Diagram oluşturmaya başlayın",
|
||||
no_relationships: "İlişki yok",
|
||||
no_relationships_text: "Alanları bağlamak ve ilişkiler oluşturmak için sürükleyin",
|
||||
no_relationships_text:
|
||||
"Alanları bağlamak ve ilişkiler oluşturmak için sürükleyin",
|
||||
no_subject_areas: "Konu alanı yok",
|
||||
no_subject_areas_text: "Grup tablolarına konu alanları ekleyin!",
|
||||
no_notes: "Not yok",
|
||||
@ -105,8 +107,7 @@ const tr = {
|
||||
no_types: "Tip yok",
|
||||
no_types_text: "Kendi özel veri türlerinizi tanımlayın",
|
||||
no_issues: "Hiçbir sorun bulunamadı",
|
||||
strict_mode_is_on_no_issues:
|
||||
"Sabit mod açık iken hatalar görüntülenmez",
|
||||
strict_mode_is_on_no_issues: "Sabit mod açık iken hatalar görüntülenmez",
|
||||
name: "",
|
||||
type: "Tip",
|
||||
null: "Boş",
|
||||
@ -138,7 +139,8 @@ const tr = {
|
||||
one_to_many: "Bire çok",
|
||||
many_to_one: "Çoktan bire",
|
||||
content: "İçerik",
|
||||
types_info:"Bu özellik PostgreSQL gibi nesne-ilişkisel DBMS'ler içindir.\nMySQL veya MariaDB için kullanılırsa, ilgili json doğrulama kontrolüyle birlikte bir JSON türü oluşturulacaktır.\nSQLite için kullanılırsa, bir BLOB'a çevrilecektir.\nMSQL için kullanılırsa, ilk alana bir tür takma adı oluşturulacaktır.",
|
||||
types_info:
|
||||
"Bu özellik PostgreSQL gibi nesne-ilişkisel DBMS'ler içindir.\nMySQL veya MariaDB için kullanılırsa, ilgili json doğrulama kontrolüyle birlikte bir JSON türü oluşturulacaktır.\nSQLite için kullanılırsa, bir BLOB'a çevrilecektir.\nMSQL için kullanılırsa, ilk alana bir tür takma adı oluşturulacaktır.",
|
||||
table_deleted: "Tablo silindi",
|
||||
area_deleted: "Alan silindi",
|
||||
note_deleted: "Not silindi",
|
||||
@ -155,8 +157,8 @@ const tr = {
|
||||
create: "Oluştur",
|
||||
confirm: "Onayla",
|
||||
last_modified: "Son değişiklik",
|
||||
drag_and_drop_files: "Dosyayı buraya sürükleyip bırakın veya yüklemek için tıklayın.",
|
||||
support_json_and_ddb: "JSON ve DDB dosya türleri desteklenir",
|
||||
drag_and_drop_files:
|
||||
"Dosyayı buraya sürükleyip bırakın veya yüklemek için tıklayın.",
|
||||
upload_sql_to_generate_diagrams:
|
||||
"Tablolarınızı ve sütunlarınızı otomatik olarak oluşturmak için bir sql dosyası yükleyin.",
|
||||
overwrite_existing_diagram: "Mevcut diyagramı üzerine yaz",
|
||||
@ -168,20 +170,28 @@ const tr = {
|
||||
duplicate_table_by_name: "Tekrar eden tablo adı '{{tableName}}'",
|
||||
empty_field_name: "'{{tableName}} tablosunda boş alan `name`",
|
||||
empty_field_type: "'{{tableName}} tablosunda boş tip `type`",
|
||||
no_values_for_field:"'{{tableName}}' tablosunun '{{fieldName}}' alanı `{{type}}` türündedir ancak hiçbir değer belirtilmemiştir",
|
||||
default_doesnt_match_type:"{{tableName}} tablosundaki '{{fieldName}}' alanı için varsayılan değer türüyle eşleşmiyor",
|
||||
not_null_is_null:"'{{tableName}}' tablosunun '{{fieldName}}' alanı NULL DEĞİL ancak varsayılan olarak NULL",
|
||||
duplicate_fields:"Tablo '{{tableName}}' içinde '{{fieldName}}' adıyla yinelenen tablo alanları",
|
||||
duplicate_index: "'{{tableName}}' tablosunda '{{indexName}}' adına göre yinelenen dizin",
|
||||
empty_index: "'{{tableName}}' tablosundaki dizin hiçbir sütunu indexlemiyor",
|
||||
no_values_for_field:
|
||||
"'{{tableName}}' tablosunun '{{fieldName}}' alanı `{{type}}` türündedir ancak hiçbir değer belirtilmemiştir",
|
||||
default_doesnt_match_type:
|
||||
"{{tableName}} tablosundaki '{{fieldName}}' alanı için varsayılan değer türüyle eşleşmiyor",
|
||||
not_null_is_null:
|
||||
"'{{tableName}}' tablosunun '{{fieldName}}' alanı NULL DEĞİL ancak varsayılan olarak NULL",
|
||||
duplicate_fields:
|
||||
"Tablo '{{tableName}}' içinde '{{fieldName}}' adıyla yinelenen tablo alanları",
|
||||
duplicate_index:
|
||||
"'{{tableName}}' tablosunda '{{indexName}}' adına göre yinelenen dizin",
|
||||
empty_index:
|
||||
"'{{tableName}}' tablosundaki dizin hiçbir sütunu indexlemiyor",
|
||||
no_primary_key: "'{{tableName}} tablosunun birincil anahtarı yok",
|
||||
type_with_no_name: "Adı olmayan bir tür bildirilmiş",
|
||||
duplicate_types: "'{{typeName}}' adına göre yinelenen türler",
|
||||
type_w_no_fields: "Alanı olmayan boş bir '{{typeName}}' türü bildirilmiş",
|
||||
empty_type_field_name: "Boş alan `name` in type '{{typeName}}'",
|
||||
empty_type_field_type: "Boş alan `type` '{{typeName}}' türünde",
|
||||
no_values_for_type_field:"'{{typeName}}' türündeki '{{fieldName}}' alanı `{{type}}` türündedir ancak hiçbir değer belirtilmemiştir",
|
||||
duplicate_type_fields:"'{{typeName}}' türünde '{{fieldName}}' adına göre yinelenen tür alanları",
|
||||
no_values_for_type_field:
|
||||
"'{{typeName}}' türündeki '{{fieldName}}' alanı `{{type}}` türündedir ancak hiçbir değer belirtilmemiştir",
|
||||
duplicate_type_fields:
|
||||
"'{{typeName}}' türünde '{{fieldName}}' adına göre yinelenen tür alanları",
|
||||
duplicate_reference: "'{{refName}}' adıyla yinelenen referans",
|
||||
circular_dependency: "Tablo '{{refName}}' içeren döngüsel bağımlılık",
|
||||
timeline: "Zaman çizelgesi",
|
||||
@ -213,7 +223,8 @@ const tr = {
|
||||
not_found: "Bulunamadı",
|
||||
pick_db: "Veritabanı seç",
|
||||
generic: "Genel",
|
||||
generic_description: "Genel diyagramlar herhangi bir SQL türüne dışa aktarılabilir ancak az sayıda veri türünü destekler.",
|
||||
generic_description:
|
||||
"Genel diyagramlar herhangi bir SQL türüne dışa aktarılabilir ancak az sayıda veri türünü destekler.",
|
||||
enums: "Enums",
|
||||
add_enum: "Enum ekle",
|
||||
edit_enum: "{{extra}} Enum'u düzenle {{enumName}}",
|
||||
@ -225,7 +236,7 @@ const tr = {
|
||||
no_enums_text: "Burada enum tanımlayın",
|
||||
declare_array: "Dizi bildir",
|
||||
empty_index_name: "'{{tableName}}' tablosunda isimsiz bir dizin bildirildi",
|
||||
didnt_find_diagram: "Oops! Diyagram bulunamadı."
|
||||
didnt_find_diagram: "Oops! Diyagram bulunamadı.",
|
||||
},
|
||||
};
|
||||
|
||||
|
218
src/i18n/locales/ug.js
Normal file
218
src/i18n/locales/ug.js
Normal file
@ -0,0 +1,218 @@
|
||||
const uyghur = {
|
||||
name: "Uyghur",
|
||||
native_name: "ئۇيغۇرچە",
|
||||
code: "ug",
|
||||
};
|
||||
|
||||
const ug = {
|
||||
translation: {
|
||||
report_bug: "بۇغ رېپورت قىلىڭ",
|
||||
import_from: "ئېكىر",
|
||||
import: "ئېكىر",
|
||||
file: "ھۆججەت",
|
||||
new: "يېڭى",
|
||||
new_window: "يېڭى دەرۋازا",
|
||||
open: "ئېچىش",
|
||||
save: "ساقلاش",
|
||||
save_as: "دەپ ساقلاش",
|
||||
save_as_template: "شablon دەپ ساقلاش",
|
||||
template_saved: "شablon ساقلانغان!",
|
||||
rename: "ئادىنى ئۆزگەرتىش",
|
||||
delete_diagram: "رەسمنى ئۆچۈرۈش",
|
||||
are_you_sure_delete_diagram:
|
||||
"سىز ھەقىقەتەن بۇ رەسمنى ئۆچۈرۈشنى خالايمسىز؟ بۇ ھەرىكەت قايتا قۇرغىلى بولمايدۇ.",
|
||||
oops_smth_went_wrong: "ئوپ! بىر نەرسە خاتا بولدى.",
|
||||
import_diagram: "رەسمنى ئېكىر",
|
||||
import_from_source: "SQL دىن ئېكىر",
|
||||
export_as: "دەپ ئېكسپورت قىلىش",
|
||||
export_source: "SQL ئېكسپورت",
|
||||
models: "مودېللار",
|
||||
exit: "چىقىش",
|
||||
edit: "تەھرىرلاش",
|
||||
undo: "قايتۇرۇش",
|
||||
redo: "يېڭىدىن قىلىش",
|
||||
clear: "تازىلاش",
|
||||
are_you_sure_clear:
|
||||
"سىز ھەقىقەتەن بۇ رەسمنى تازىلاشنى خالايمسىز؟ بۇ قايتا قۇرغىلى بولمايدۇ.",
|
||||
cut: "كېسىش",
|
||||
copy: "نۇسخا ئېلىش",
|
||||
paste: "قويۇش",
|
||||
duplicate: "نۇسخىسىنى ياساش",
|
||||
delete: "ئۆچۈرۈش",
|
||||
copy_as_image: "رەسىم سۈپىتىدە نۇسخا ئېلىش",
|
||||
view: "كۆرۈش",
|
||||
header: "مېنۇ بار",
|
||||
sidebar: "يانتۇ بار",
|
||||
issues: "مەسىلىلەر",
|
||||
presentation_mode: "تەqdimات رېژىمى",
|
||||
strict_mode: "تىزىملىك رېژىمى",
|
||||
field_details: "ئالاقە تەپسىلاتلىرى",
|
||||
reset_view: "كۆرۈشنى قايتا قۇرۇش",
|
||||
show_grid: "تارماقنى كۆرسىتىش",
|
||||
show_cardinality: "كارتىنالىتىنى كۆرسىتىش",
|
||||
theme: "تېما",
|
||||
light: "يېنىق",
|
||||
dark: "قارا",
|
||||
zoom_in: "زوم قىلىش",
|
||||
zoom_out: "زومنى تۆۋەنلىتىش",
|
||||
fullscreen: "تولۇق ئېكران",
|
||||
settings: "تەڭشەك",
|
||||
show_timeline: "ۋاقىت جەدۋىلىنى كۆرسىتىش",
|
||||
autosave: "ئۆز-ئۆزىگە ساقلاش",
|
||||
panning: "پانننگ",
|
||||
table_width: "جەدۋەل كەڭلىكى",
|
||||
language: "تىل",
|
||||
flush_storage: "ساقلاشنى تازىلاش",
|
||||
are_you_sure_flush_storage:
|
||||
"سىز ھەقىقەتەن ساقلاشنى تازىلاشنى خالايمسىز؟ بۇ سىزنىڭ بارلىق رەسملەرنى ۋە خاس شablونلارنى قايتا قۇرغىلى بولمايدۇ.",
|
||||
storage_flushed: "ساقلاش تازىلاندى",
|
||||
help: "ياردەم",
|
||||
shortcuts: "قىسقا يوللار",
|
||||
ask_on_discord: "بىز بىلەن Discord دا سوراڭ",
|
||||
feedback: "پىكىر",
|
||||
no_changes: "بىرەر ئۆزگىرىش يوق",
|
||||
loading: "يۈكلەش...",
|
||||
last_saved: "ئاخىرىدا ساقلانغان",
|
||||
saving: "ساقلاۋاتىدۇ...",
|
||||
failed_to_save: "ساقلاشقا مەغلۇپ بولدى",
|
||||
fit_window_reset: "دەرۋازىنى ماسلاشتۇرۇش / قايتا قۇرۇش",
|
||||
zoom: "زوم",
|
||||
add_table: "جەدۋەل قوشۇش",
|
||||
add_area: "ئارالۇق قوشۇش",
|
||||
add_note: "بەلگە قوشۇش",
|
||||
add_type: "تۈر قوشۇش",
|
||||
to_do: "ئورۇنلىشىش",
|
||||
tables: "جەدۋەللەر",
|
||||
relationships: "مۇناسىۋەتلەر",
|
||||
subject_areas: "مەزمۇن بۆلەكلىرى",
|
||||
notes: "بەلگىلەر",
|
||||
types: "تۈرلەر",
|
||||
search: "ئىزدەش...",
|
||||
no_tables: "جەدۋەل يوق",
|
||||
no_tables_text: "رەسمنى ياساشنى باشلاڭ!",
|
||||
no_relationships: "مۇناسىۋەت يوق",
|
||||
no_relationships_text: "ئالاقە قۇرۇش ئۈچۈن بۆلەكلىرىنى تارتىڭ!",
|
||||
no_subject_areas: "مەزمۇن بۆلەكلىرى يوق",
|
||||
no_subject_areas_text: "جەدۋەللەرنى مەزمۇن بۆلەكلىرىگە قوشۇڭ!",
|
||||
no_notes: "بەلگىلەر يوق",
|
||||
no_notes_text: "قوشۇمچە ئۇچۇرنى خاتىرىلەش ئۈچۈن بەلگىلەرنى ئىشلىتىڭ",
|
||||
no_types: "تۈرلەر يوق",
|
||||
no_types_text: "خاس سانلىق مەلۇمات تۈرلىرىنى ياساڭ",
|
||||
no_issues: "مەسىلىلەر تېپىلمىدى.",
|
||||
strict_mode_is_on_no_issues:
|
||||
"تىزىملىك رېژىمى قوزغىتىلغان، شۇڭا مەسىلىلەر كۆرۈلمەيدۇ.",
|
||||
name: "ئاد",
|
||||
type: "تۈر",
|
||||
null: "Null",
|
||||
not_null: "Null ئەمەس",
|
||||
primary: "بىرلەشمىسى",
|
||||
unique: "يەككە",
|
||||
autoincrement: "ئۆز-ئۆزىگە قوشۇش",
|
||||
default_value: "ئادەتتىكى قىممەت",
|
||||
check: "تەكشۈرۈش ئىپادىسى",
|
||||
this_will_appear_as_is: "*بۇ ياسالغان سكرىپتتە شۇنداقلا كۆرۈنىدۇ.",
|
||||
comment: "ئىزاھات",
|
||||
add_field: "بۆلەك قوشۇش",
|
||||
values: "قىممەتلەر",
|
||||
size: "ئۆلچەم",
|
||||
precision: "دۇرۇسلىق",
|
||||
set_precision: "دۇرۇسلىقىنى بەلگىلەش: (ئۆلچەم، رەقەم)",
|
||||
use_for_batch_input: "بىر قېتىملىق كىرگۈزۈش ئۈچۈن ئىشلىتىش",
|
||||
indices: "ئىنكس",
|
||||
add_index: "ئىنكس قوشۇش",
|
||||
select_fields: "بۆلەكلىرىنى تاللاش",
|
||||
title: "باشلىق",
|
||||
not_set: "بەلگىلەلمىگەن",
|
||||
foreign: "تاشقى",
|
||||
cardinality: "كارتىنالىتى",
|
||||
on_update: "يېڭىلانغاندا",
|
||||
on_delete: "ئۆچۈرۈلگەندە",
|
||||
swap: "ئۆزگەرتىش",
|
||||
one_to_one: "بىر-بىرگە",
|
||||
one_to_many: "بىر-كۆپكە",
|
||||
many_to_one: "كۆپ-بىرگە",
|
||||
content: "مەزمۇن",
|
||||
types_info:
|
||||
"بۇ ئىقتىدار object-relational DBMS لىرىگە، PostgreSQL غا خاس.\nئەگەر MySQL ياكى MariaDB غا ئىشلىتىلسە، مۇناسىۋەتلىك json توغرا تەكشۈرۈش بىلەن بىر JSON تۈرى ياسىلىدۇ.\nئەگەر SQLite غا ئىشلىتىلسە، بۇ BLOB غا ئۆزگەرتىلىدۇ.\nئەگەر MSSQL غا ئىشلىتىلسە، بىرىنچى بۆلەك ئۈچۈن بىر تۈر لەۋھەسى ياسىلىدۇ.",
|
||||
table_deleted: "جەدۋەل ئۆچۈرۈلدى",
|
||||
area_deleted: "ئارالۇق ئۆچۈرۈلدى",
|
||||
note_deleted: "بەلگە ئۆچۈرۈلدى",
|
||||
relationship_deleted: "مۇناسىۋەت ئۆچۈرۈلدى",
|
||||
type_deleted: "تۈر ئۆچۈرۈلدى",
|
||||
cannot_connect: "باغلىنىشقا بولمايدۇ، بۆلەك تۈرى پەرقلىق",
|
||||
copied_to_clipboard: "كلىپبوردقا نۇسخا ئېلىندى",
|
||||
create_new_diagram: "يېڭى رەسمنى ياساش",
|
||||
cancel: "بەجىرىش",
|
||||
open_diagram: "رەسمنى ئېچىش",
|
||||
rename_diagram: "رەسمنىڭ نامىنى ئۆزگەرتىش",
|
||||
export: "ئېكسپورت",
|
||||
export_image: "رەسىمنى ئېكسپورت",
|
||||
create: "ياساش",
|
||||
confirm: "تاسدىقلاش",
|
||||
last_modified: "ئاخىرىدا ئۆزگەرتىلگەن",
|
||||
drag_and_drop_files:
|
||||
"ھۆججەتلەرنى بۇ يەرگە تارتىپ قويۇڭ ياكى يۈكلەش ئۈچۈن بېسىڭ.",
|
||||
upload_sql_to_generate_diagrams:
|
||||
"جەدۋەل ۋە بۆلەكلىرىڭىزنى ئاپتوماتىك ياساش ئۈچۈن SQL ھۆججىتىنى يۈكلەڭ.",
|
||||
overwrite_existing_diagram: "بار بولغان رەسمنى يېڭىدىن يازماق",
|
||||
only_mysql_supported: "*ھازىرچە پەقەت MySQL سكرىپتلىرىنى يۈكلەش قوللايدۇ.",
|
||||
blank: "بوش",
|
||||
filename: "ھۆججەت نامى",
|
||||
table_w_no_name: "ئادسىز جەدۋەل ئېلان قىلىندى",
|
||||
duplicate_table_by_name: "ئاد بىلەن نۇسخا جەدۋەل '{{tableName}}'",
|
||||
empty_field_name: "جەدۋەل '{{tableName}}' دا بوش بۆلەك نامى",
|
||||
empty_field_type: "جەدۋەل '{{tableName}}' دا بوش بۆلەك تۈرى",
|
||||
no_values_for_field:
|
||||
"جەدۋەل '{{tableName}}' نىڭ بۆلەك '{{fieldName}}' نىڭ تۈرى {{type}}، ئەمما قىممەت بەلگىلەلمىدى",
|
||||
default_doesnt_match_type:
|
||||
"جەدۋەل '{{tableName}}' دا بۆلەك '{{fieldName}}' نىڭ ئادىتتىكى قىممىتى تۈرىگە ماس كەلمەيدۇ",
|
||||
not_null_is_null:
|
||||
"جەدۋەل '{{tableName}}' نىڭ بۆلەك '{{fieldName}}' نىڭ قىممىتى NOT NULL، ئەمما ئادىتتىكى NULL",
|
||||
duplicate_fields:
|
||||
"جەدۋەل '{{tableName}}' دا نام '{{fieldName}}' بولغان نۇسخا بۆلەك",
|
||||
duplicate_index:
|
||||
"جەدۋەل '{{tableName}}' دا نام '{{indexName}}' بولغان نۇسخا ئىنكس",
|
||||
empty_index: "جەدۋەل '{{tableName}}' دا ئىنكس بۆلەك ئىنكس قىلمايدۇ",
|
||||
no_primary_key: "جەدۋەل '{{tableName}}' دا بىرلەشمىسى يوق",
|
||||
type_with_no_name: "نامسىز تۈر ئېلان قىلىندى",
|
||||
duplicate_types: "نام '{{typeName}}' بولغان نۇسخا تۈرلەر",
|
||||
type_w_no_fields: "بۆلەكلىرى يوق تۈر '{{typeName}}' ئېلان قىلىندى",
|
||||
empty_type_field_name: "تۈر '{{typeName}}' دا بوش بۆلەك نامى",
|
||||
empty_type_field_type: "تۈر '{{typeName}}' دا بوش بۆلەك تۈرى",
|
||||
no_values_for_type_field:
|
||||
"تۈر '{{typeName}}' نىڭ بۆلەك '{{fieldName}}' نىڭ تۈرى {{type}}، ئەمما قىممەت بەلگىلەلمىدى",
|
||||
duplicate_type_fields:
|
||||
"تۈر '{{typeName}}' دا نام '{{fieldName}}' بولغان نۇسخا تۈر بۆلەكلىرى",
|
||||
duplicate_reference: "نام '{{refName}}' بولغان نۇسخا نىشان",
|
||||
circular_dependency: "جەدۋەل '{{refName}}' دا دائىرىلىك باغلىقلىق",
|
||||
timeline: "ۋاقىت جەدۋىلى",
|
||||
priority: "ئالاھىدىلىك",
|
||||
none: "يوق",
|
||||
low: "تۆۋەن",
|
||||
medium: "ئوتتۇرا",
|
||||
high: "يۇقىرى",
|
||||
sort_by: "بويىچە تىزىش",
|
||||
my_order: "مەننىڭ تىزىم",
|
||||
completed: "تاماملاندى",
|
||||
alphabetically: "ئەپبە بويىچە",
|
||||
add_task: "ۋەزىپە قوشۇش",
|
||||
details: "تەپسىلاتلار",
|
||||
no_tasks: "سىزنىڭ ھازىرچە ھېچقانداق ۋەزىپەڭىز يوق.",
|
||||
no_activity: "سىزنىڭ ھازىرچە ھېچقانداق پائالىيىتىڭىز يوق.",
|
||||
move_element: "{{name}} نى {{coords}} غا يۆتكىڭ",
|
||||
edit_area: "{{extra}} ئارالۇقنى تەھرىرلىڭ {{areaName}}",
|
||||
delete_area: "ئارالۇقنى ئۆچۈرۈڭ {{areaName}}",
|
||||
edit_note: "{{extra}} بەلگىنى تەھرىرلىڭ {{noteTitle}}",
|
||||
delete_note: "بەلگىنى ئۆچۈرۈڭ {{noteTitle}}",
|
||||
edit_table: "{{extra}} جەدۋەلنى تەھرىرلىڭ {{tableName}}",
|
||||
delete_table: "جەدۋەلنى ئۆچۈرۈڭ {{tableName}}",
|
||||
edit_type: "{{extra}} تۈرنى تەھرىرلىڭ {{typeName}}",
|
||||
delete_type: "تۈرنى ئۆچۈرۈڭ {{typeName}}",
|
||||
add_relationship: "مۇناسىۋەت قوشۇڭ",
|
||||
edit_relationship: "{{extra}} مۇناسىۋەتنى تەھرىرلىڭ {{refName}}",
|
||||
delete_relationship: "مۇناسىۋەتنى ئۆچۈرۈڭ {{refName}}",
|
||||
not_found: "تەپىلمايدۇ",
|
||||
},
|
||||
};
|
||||
|
||||
export { ug, uyghur };
|
@ -7,6 +7,7 @@ const ukrainian = {
|
||||
const uk = {
|
||||
translation: {
|
||||
report_bug: "Повідомити про помилку",
|
||||
import_from: "Імпортувати",
|
||||
import: "Імпортувати",
|
||||
file: "Файл",
|
||||
new: "Новий",
|
||||
@ -18,7 +19,8 @@ const uk = {
|
||||
template_saved: "Шаблон збережено!",
|
||||
rename: "Перейменувати",
|
||||
delete_diagram: "Видалити діаграму",
|
||||
are_you_sure_delete_diagram: "Ви впевнені, що хочете видалити цю діаграму? Ця операція є незворотною.",
|
||||
are_you_sure_delete_diagram:
|
||||
"Ви впевнені, що хочете видалити цю діаграму? Ця операція є незворотною.",
|
||||
oops_smth_went_wrong: "Упс! Щось пішло не так.",
|
||||
import_diagram: "Імпортувати діаграму",
|
||||
import_from_source: "Імпортувати з SQL",
|
||||
@ -30,7 +32,8 @@ const uk = {
|
||||
undo: "Скасувати",
|
||||
redo: "Повторити",
|
||||
clear: "Очистити",
|
||||
are_you_sure_clear: "Ви впевнені, що хочете очистити діаграму? Це незворотно.",
|
||||
are_you_sure_clear:
|
||||
"Ви впевнені, що хочете очистити діаграму? Це незворотно.",
|
||||
cut: "Вирізати",
|
||||
copy: "Копіювати",
|
||||
paste: "Вставити",
|
||||
@ -60,7 +63,8 @@ const uk = {
|
||||
table_width: "Ширина таблиці",
|
||||
language: "Мова",
|
||||
flush_storage: "Очистити сховище",
|
||||
are_you_sure_flush_storage: "Ви впевнені, що хочете очистити сховище? Це незворотно видалить всі ваші діаграми та користувацькі шаблони.",
|
||||
are_you_sure_flush_storage:
|
||||
"Ви впевнені, що хочете очистити сховище? Це незворотно видалить всі ваші діаграми та користувацькі шаблони.",
|
||||
storage_flushed: "Сховище очищено",
|
||||
help: "Допомога",
|
||||
shortcuts: "Гарячі клавіші",
|
||||
@ -87,7 +91,8 @@ const uk = {
|
||||
no_tables: "Немає таблиць",
|
||||
no_tables_text: "Почніть створювати вашу діаграму!",
|
||||
no_relationships: "Немає зв'язків",
|
||||
no_relationships_text: "Перетягніть, щоб з'єднати поля та створити зв'язки!",
|
||||
no_relationships_text:
|
||||
"Перетягніть, щоб з'єднати поля та створити зв'язки!",
|
||||
no_subject_areas: "Немає тематичних областей",
|
||||
no_subject_areas_text: "Додайте тематичні області для групування таблиць!",
|
||||
no_notes: "Немає нотаток",
|
||||
@ -95,7 +100,8 @@ const uk = {
|
||||
no_types: "Немає типів",
|
||||
no_types_text: "Створіть власні користувацькі типи даних",
|
||||
no_issues: "Проблем не виявлено.",
|
||||
strict_mode_is_on_no_issues: "Строгий режим вимкнено, тому проблеми не будуть відображатися.",
|
||||
strict_mode_is_on_no_issues:
|
||||
"Строгий режим вимкнено, тому проблеми не будуть відображатися.",
|
||||
name: "Назва",
|
||||
type: "Тип",
|
||||
null: "Null",
|
||||
@ -127,7 +133,8 @@ const uk = {
|
||||
one_to_many: "Один до багатьох",
|
||||
many_to_one: "Багато до одного",
|
||||
content: "Зміст",
|
||||
types_info: "Ця функція призначена для об'єктно-реляційних СУБД, таких як PostgreSQL.\nЯкщо використовується для MySQL або MariaDB, буде згенерований тип JSON з відповідною перевіркою JSON.\nЯкщо використовується для SQLite, буде перетворено на BLOB.\nЯкщо використовується для MSSQL, буде згенеровано тип-аліас для першого поля.",
|
||||
types_info:
|
||||
"Ця функція призначена для об'єктно-реляційних СУБД, таких як PostgreSQL.\nЯкщо використовується для MySQL або MariaDB, буде згенерований тип JSON з відповідною перевіркою JSON.\nЯкщо використовується для SQLite, буде перетворено на BLOB.\nЯкщо використовується для MSSQL, буде згенеровано тип-аліас для першого поля.",
|
||||
table_deleted: "Таблицю видалено",
|
||||
area_deleted: "Область видалено",
|
||||
note_deleted: "Нотатку видалено",
|
||||
@ -144,22 +151,29 @@ const uk = {
|
||||
create: "Створити",
|
||||
confirm: "Підтвердити",
|
||||
last_modified: "Остання зміна",
|
||||
drag_and_drop_files: "Перетягніть файл сюди або натисніть для завантаження.",
|
||||
support_json_and_ddb: "Підтримуються файли JSON та DDB",
|
||||
upload_sql_to_generate_diagrams: "Завантажте SQL файл для автоматичного створення ваших таблиць та стовпців.",
|
||||
drag_and_drop_files:
|
||||
"Перетягніть файл сюди або натисніть для завантаження.",
|
||||
upload_sql_to_generate_diagrams:
|
||||
"Завантажте SQL файл для автоматичного створення ваших таблиць та стовпців.",
|
||||
overwrite_existing_diagram: "Перезаписати існуючу діаграму",
|
||||
only_mysql_supported: "*На даний момент підтримується завантаження лише MySQL скриптів.",
|
||||
only_mysql_supported:
|
||||
"*На даний момент підтримується завантаження лише MySQL скриптів.",
|
||||
blank: "Порожній",
|
||||
filename: "Назва файлу",
|
||||
table_w_no_name: "Оголошено таблицю без назви",
|
||||
duplicate_table_by_name: "Дубльована таблиця з назвою '{{tableName}}'",
|
||||
empty_field_name: "Порожнє поле `name` в таблиці '{{tableName}}'",
|
||||
empty_field_type: "Порожнє поле `type` в таблиці '{{tableName}}'",
|
||||
no_values_for_field: "'{{fieldName}}' поле в таблиці '{{tableName}}' має тип `{{type}}`, але значення не вказані",
|
||||
default_doesnt_match_type: "Значення за замовчуванням для поля '{{fieldName}}' в таблиці '{{tableName}}' не відповідає його типу",
|
||||
not_null_is_null: "'{{fieldName}}' поле в таблиці '{{tableName}}' є NOT NULL, але має значення за замовчуванням NULL",
|
||||
duplicate_fields: "Дубльовані поля таблиці з назвою '{{fieldName}}' в таблиці '{{tableName}}'",
|
||||
duplicate_index: "Дубльований індекс з назвою '{{indexName}}' в таблиці '{{tableName}}'",
|
||||
no_values_for_field:
|
||||
"'{{fieldName}}' поле в таблиці '{{tableName}}' має тип `{{type}}`, але значення не вказані",
|
||||
default_doesnt_match_type:
|
||||
"Значення за замовчуванням для поля '{{fieldName}}' в таблиці '{{tableName}}' не відповідає його типу",
|
||||
not_null_is_null:
|
||||
"'{{fieldName}}' поле в таблиці '{{tableName}}' є NOT NULL, але має значення за замовчуванням NULL",
|
||||
duplicate_fields:
|
||||
"Дубльовані поля таблиці з назвою '{{fieldName}}' в таблиці '{{tableName}}'",
|
||||
duplicate_index:
|
||||
"Дубльований індекс з назвою '{{indexName}}' в таблиці '{{tableName}}'",
|
||||
empty_index: "Індекс в таблиці '{{tableName}}' не індексує жодного стовпця",
|
||||
no_primary_key: "Таблиця '{{tableName}}' не має первинного ключа",
|
||||
type_with_no_name: "Оголошено тип без назви",
|
||||
@ -167,10 +181,13 @@ const uk = {
|
||||
type_w_no_fields: "Оголошено порожній тип '{{typeName}}' без полів",
|
||||
empty_type_field_name: "Порожнє поле `name` в типі '{{typeName}}'",
|
||||
empty_type_field_type: "Порожнє поле `type` в типі '{{typeName}}'",
|
||||
no_values_for_type_field: "'{{fieldName}}' поле в типі '{{typeName}}' має тип `{{type}}`, але значення не вказані",
|
||||
duplicate_type_fields: "Дубльовані поля типу з назвою '{{fieldName}}' в типі '{{typeName}}'",
|
||||
no_values_for_type_field:
|
||||
"'{{fieldName}}' поле в типі '{{typeName}}' має тип `{{type}}`, але значення не вказані",
|
||||
duplicate_type_fields:
|
||||
"Дубльовані поля типу з назвою '{{fieldName}}' в типі '{{typeName}}'",
|
||||
duplicate_reference: "Дубльована посилання з назвою '{{refName}}'",
|
||||
circular_dependency: "Циклічна залежність, що стосується таблиці '{{refName}}'",
|
||||
circular_dependency:
|
||||
"Циклічна залежність, що стосується таблиці '{{refName}}'",
|
||||
timeline: "Хронологія",
|
||||
priority: "Пріоритет",
|
||||
none: "Жодний",
|
||||
|
@ -2,11 +2,12 @@ const urdu = {
|
||||
name: "Urdu",
|
||||
native_name: "اردو",
|
||||
code: "ur",
|
||||
};
|
||||
};
|
||||
|
||||
const ur = {
|
||||
const ur = {
|
||||
translation: {
|
||||
report_bug: "بگ رپورٹ کریں",
|
||||
import_from: "درآمد کریں",
|
||||
import: "درآمد کریں",
|
||||
file: "فائل",
|
||||
new: "نیا",
|
||||
@ -18,7 +19,8 @@ const urdu = {
|
||||
template_saved: "ٹیمپلیٹ محفوظ ہو گیا!",
|
||||
rename: "نام تبدیل کریں",
|
||||
delete_diagram: "ڈایاگرام حذف کریں",
|
||||
are_you_sure_delete_diagram: "کیا آپ واقعی اس ڈایاگرام کو حذف کرنا چاہتے ہیں؟ یہ عمل ناقابل واپسی ہے۔",
|
||||
are_you_sure_delete_diagram:
|
||||
"کیا آپ واقعی اس ڈایاگرام کو حذف کرنا چاہتے ہیں؟ یہ عمل ناقابل واپسی ہے۔",
|
||||
oops_smth_went_wrong: "اوہ! کچھ غلط ہو گیا۔",
|
||||
import_diagram: "ڈایاگرام درآمد کریں",
|
||||
import_from_source: "ماخذ سے درآمد کریں",
|
||||
@ -30,7 +32,8 @@ const urdu = {
|
||||
undo: "واپس",
|
||||
redo: "دوبارہ کریں",
|
||||
clear: "صاف کریں",
|
||||
are_you_sure_clear: "کیا آپ واقعی اس ڈایاگرام کو صاف کرنا چاہتے ہیں؟ یہ ناقابل واپسی ہے۔",
|
||||
are_you_sure_clear:
|
||||
"کیا آپ واقعی اس ڈایاگرام کو صاف کرنا چاہتے ہیں؟ یہ ناقابل واپسی ہے۔",
|
||||
cut: "کٹ",
|
||||
copy: "کاپی",
|
||||
paste: "پیسٹ",
|
||||
@ -60,7 +63,8 @@ const urdu = {
|
||||
table_width: "ٹیبل کی چوڑائی",
|
||||
language: "زبان",
|
||||
flush_storage: "اسٹوریج صاف کریں",
|
||||
are_you_sure_flush_storage: "کیا آپ واقعی اسٹوریج کو صاف کرنا چاہتے ہیں؟ یہ آپ کے تمام ڈایاگرام اور کسٹم ٹیمپلیٹس کو ناقابل واپسی طور پر حذف کر دے گا۔",
|
||||
are_you_sure_flush_storage:
|
||||
"کیا آپ واقعی اسٹوریج کو صاف کرنا چاہتے ہیں؟ یہ آپ کے تمام ڈایاگرام اور کسٹم ٹیمپلیٹس کو ناقابل واپسی طور پر حذف کر دے گا۔",
|
||||
storage_flushed: "اسٹوریج صاف کر دیا گیا",
|
||||
help: "مدد",
|
||||
shortcuts: "شارٹ کٹس",
|
||||
@ -95,7 +99,8 @@ const urdu = {
|
||||
no_types: "کوئی قسم نہیں",
|
||||
no_types_text: "اپنے کسٹم ڈیٹا کی اقسام بنائیں",
|
||||
no_issues: "کوئی مسائل نہیں ملے",
|
||||
strict_mode_is_on_no_issues: "سخت موڈ بند ہے اس لئے کوئی مسائل نہیں دکھائے جا رہے ہیں۔",
|
||||
strict_mode_is_on_no_issues:
|
||||
"سخت موڈ بند ہے اس لئے کوئی مسائل نہیں دکھائے جا رہے ہیں۔",
|
||||
name: "نام",
|
||||
type: "قسم",
|
||||
null: "نل",
|
||||
@ -142,7 +147,6 @@ const urdu = {
|
||||
no_tasks: "آپ کے پاس ابھی تک کوئی کام نہیں ہے۔",
|
||||
no_activity: "آپ کے پاس ابھی تک کوئی سرگرمی نہیں ہے۔",
|
||||
},
|
||||
};
|
||||
|
||||
export { ur, urdu };
|
||||
};
|
||||
|
||||
export { ur, urdu };
|
||||
|
@ -7,6 +7,7 @@ const vietnamese = {
|
||||
const vi = {
|
||||
translation: {
|
||||
report_bug: "Báo cáo lỗi",
|
||||
import_from: "Nhập",
|
||||
import: "Nhập",
|
||||
file: "Tệp",
|
||||
new: "Tạo mới",
|
||||
@ -18,7 +19,8 @@ const vi = {
|
||||
template_saved: "Mẫu được lưu!",
|
||||
rename: "Đổi tên",
|
||||
delete_diagram: "Xoá sơ đồ",
|
||||
are_you_sure_delete_diagram: "Bạn muốn xoá sơ đồ này không? Hành động này không thể phục hồi.",
|
||||
are_you_sure_delete_diagram:
|
||||
"Bạn muốn xoá sơ đồ này không? Hành động này không thể phục hồi.",
|
||||
oops_smth_went_wrong: "Có cái gì đó bị sai.",
|
||||
import_diagram: "Nhập sơ đồ",
|
||||
import_from_source: "Nhập từ SQL",
|
||||
@ -30,7 +32,8 @@ const vi = {
|
||||
undo: "Quay lại",
|
||||
redo: "Làm lại",
|
||||
clear: "Xóa",
|
||||
are_you_sure_clear: "Bạn có chắc chắn muốn xóa sơ đồ không? Điều này là không thể phục hồi.",
|
||||
are_you_sure_clear:
|
||||
"Bạn có chắc chắn muốn xóa sơ đồ không? Điều này là không thể phục hồi.",
|
||||
cut: "Cắt",
|
||||
copy: "Sao chép",
|
||||
paste: "Dán",
|
||||
@ -60,7 +63,8 @@ const vi = {
|
||||
table_width: "Chiều rộng của bảng",
|
||||
language: "Ngôn ngữ",
|
||||
flush_storage: "Xoá bộ nhớ",
|
||||
are_you_sure_flush_storage: "Bạn có chắc chắn muốn xóa bộ nhớ không? Thao tác này sẽ xóa vĩnh viễn tất cả sơ đồ và mẫu tùy chỉnh của bạn.",
|
||||
are_you_sure_flush_storage:
|
||||
"Bạn có chắc chắn muốn xóa bộ nhớ không? Thao tác này sẽ xóa vĩnh viễn tất cả sơ đồ và mẫu tùy chỉnh của bạn.",
|
||||
storage_flushed: "Bộ nhớ đã được xoá",
|
||||
help: "Giúp đỡ",
|
||||
shortcuts: "Phím tắt",
|
||||
@ -87,7 +91,8 @@ const vi = {
|
||||
no_tables: "Không có bảng",
|
||||
no_tables_text: "Bắt đầu xây dựng sơ đồ của bạn!",
|
||||
no_relationships: "Không có quan hệ",
|
||||
no_relationships_text: "Kéo để kết nối các trường và hình thành các quan hệ!",
|
||||
no_relationships_text:
|
||||
"Kéo để kết nối các trường và hình thành các quan hệ!",
|
||||
no_subject_areas: "Không có vùng",
|
||||
no_subject_areas_text: "Thêm vùng vào nhóm các bảng!",
|
||||
no_notes: "Không có ghi chú",
|
||||
@ -95,7 +100,8 @@ const vi = {
|
||||
no_types: "Không có loại",
|
||||
no_types_text: "Tạo các loại dữ liệu tùy chỉnh của riêng bạn",
|
||||
no_issues: "Không có vấn đề nào được phát hiện.",
|
||||
strict_mode_is_on_no_issues: "Chế độ nghiêm ngặt bị tắt nên sẽ không có vấn đề nào được hiển thị.",
|
||||
strict_mode_is_on_no_issues:
|
||||
"Chế độ nghiêm ngặt bị tắt nên sẽ không có vấn đề nào được hiển thị.",
|
||||
name: "Tên",
|
||||
type: "Kiểu",
|
||||
null: "Không có giá trị",
|
||||
@ -105,7 +111,8 @@ const vi = {
|
||||
autoincrement: "Tự động tăng",
|
||||
default_value: "Giá trị mặc định",
|
||||
check: "Kiểm tra biểu thức",
|
||||
this_will_appear_as_is: "*Điều này sẽ xuất hiện trong đoạn lệnh được tạo như hiện tại.",
|
||||
this_will_appear_as_is:
|
||||
"*Điều này sẽ xuất hiện trong đoạn lệnh được tạo như hiện tại.",
|
||||
comment: "Bình luận",
|
||||
add_field: "Thêm trường",
|
||||
values: "Giá trị",
|
||||
@ -127,7 +134,8 @@ const vi = {
|
||||
one_to_many: "Một đến nhiều",
|
||||
many_to_one: "Nhiều thành một",
|
||||
content: "Nội dung",
|
||||
types_info: "Tính năng này dành cho các DBMS quan hệ đối tượng như PostgreSQL.\nNếu được sử dụng cho MySQL hoặc MariaDB, loại JSON sẽ được tạo bằng kiểm tra xác thực json tương ứng.\nNếu được sử dụng cho SQLite, nó sẽ được dịch sang BLOB.\nNếu được sử dụng cho MSSQL một bí danh loại cho trường đầu tiên sẽ được tạo.",
|
||||
types_info:
|
||||
"Tính năng này dành cho các DBMS quan hệ đối tượng như PostgreSQL.\nNếu được sử dụng cho MySQL hoặc MariaDB, loại JSON sẽ được tạo bằng kiểm tra xác thực json tương ứng.\nNếu được sử dụng cho SQLite, nó sẽ được dịch sang BLOB.\nNếu được sử dụng cho MSSQL một bí danh loại cho trường đầu tiên sẽ được tạo.",
|
||||
table_deleted: "Đã xóa bảng",
|
||||
area_deleted: "Khu vực bị xóa",
|
||||
note_deleted: "Đã xóa ghi chú",
|
||||
@ -145,8 +153,8 @@ const vi = {
|
||||
confirm: "Xác nhận",
|
||||
last_modified: "Sửa đổi lần cuối",
|
||||
drag_and_drop_files: "Kéo và thả tệp vào đây hoặc nhấp để tải lên.",
|
||||
support_json_and_ddb: "Các tệp JSON và DDB được hỗ trợ",
|
||||
upload_sql_to_generate_diagrams: "Tải tệp sql lên để tự động tạo bảng và cột của bạn.",
|
||||
upload_sql_to_generate_diagrams:
|
||||
"Tải tệp sql lên để tự động tạo bảng và cột của bạn.",
|
||||
overwrite_existing_diagram: "Ghi đè sơ đồ hiện có",
|
||||
only_mysql_supported: "*Hiện tại, chỉ hỗ trợ tải các tập lệnh MySQL.",
|
||||
blank: "Trống",
|
||||
@ -155,20 +163,28 @@ const vi = {
|
||||
duplicate_table_by_name: "Bảng trùng lặp theo tên '{{tableName}}'",
|
||||
empty_field_name: "Trường trống `name` trong bảng '{{tableName}}'",
|
||||
empty_field_type: "Trường trống `loại` trong bảng '{{tableName}}'",
|
||||
no_values_for_field: "Trường '{{fieldName}}' của bảng '{{tableName}}' thuộc loại `{{type}}` nhưng không có giá trị nào được chỉ định",
|
||||
default_doesnt_match_type: "Giá trị mặc định cho trường '{{fieldName}}' trong bảng '{{tableName}}' không khớp với loại của nó",
|
||||
not_null_is_null: "Trường '{{fieldName}}' của bảng '{{tableName}}' là NOT NULL nhưng đang là NULL",
|
||||
duplicate_fields: "Các trường bảng trùng lặp theo tên '{{fieldName}}' trong bảng '{{tableName}}'",
|
||||
duplicate_index: "Chỉ mục trùng lặp theo tên '{{indexName}}' trong bảng '{{tableName}}'",
|
||||
no_values_for_field:
|
||||
"Trường '{{fieldName}}' của bảng '{{tableName}}' thuộc loại `{{type}}` nhưng không có giá trị nào được chỉ định",
|
||||
default_doesnt_match_type:
|
||||
"Giá trị mặc định cho trường '{{fieldName}}' trong bảng '{{tableName}}' không khớp với loại của nó",
|
||||
not_null_is_null:
|
||||
"Trường '{{fieldName}}' của bảng '{{tableName}}' là NOT NULL nhưng đang là NULL",
|
||||
duplicate_fields:
|
||||
"Các trường bảng trùng lặp theo tên '{{fieldName}}' trong bảng '{{tableName}}'",
|
||||
duplicate_index:
|
||||
"Chỉ mục trùng lặp theo tên '{{indexName}}' trong bảng '{{tableName}}'",
|
||||
empty_index: "Chỉ mục trong bảng '{{tableName}}' chỉ mục không có cột",
|
||||
no_primary_key: "Bảng '{{tableName}}' không có khóa chính",
|
||||
type_with_no_name: "Khai báo một loại không có tên",
|
||||
duplicate_types: "Các loại trùng lặp theo tên '{{typeName}}'",
|
||||
type_w_no_fields: "Đã khai báo một loại trống '{{typeName}}'không có trường nào",
|
||||
type_w_no_fields:
|
||||
"Đã khai báo một loại trống '{{typeName}}'không có trường nào",
|
||||
empty_type_field_name: "Trường trống `name` trong loại '{{typeName}}'",
|
||||
empty_type_field_type: "Trường trống `type` trong loại '{{typeName}}'",
|
||||
no_values_for_type_field: "Trường '{{fieldName}}' thuộc loại '{{typeName}}' thuộc loại `{{type}}` nhưng không có giá trị nào được chỉ định",
|
||||
duplicate_type_fields: "Các trường loại trùng lặp theo tên '{{fieldName}}' trong loại '{{typeName}}'",
|
||||
no_values_for_type_field:
|
||||
"Trường '{{fieldName}}' thuộc loại '{{typeName}}' thuộc loại `{{type}}` nhưng không có giá trị nào được chỉ định",
|
||||
duplicate_type_fields:
|
||||
"Các trường loại trùng lặp theo tên '{{fieldName}}' trong loại '{{typeName}}'",
|
||||
duplicate_reference: "Tham chiếu trùng lặp theo tên '{{refName}}'",
|
||||
circular_dependency: "Bảng phụ thuộc vòng tròn liên quan đến '{{refName}}'",
|
||||
timeline: "Dòng thời gian",
|
||||
|
@ -7,6 +7,7 @@ const traditionalChinese = {
|
||||
const zh_tw = {
|
||||
translation: {
|
||||
report_bug: "回報錯誤",
|
||||
import_from: "匯入",
|
||||
import: "匯入",
|
||||
file: "檔案",
|
||||
new: "新增",
|
||||
@ -18,8 +19,7 @@ const zh_tw = {
|
||||
template_saved: "範本已儲存!",
|
||||
rename: "重新命名",
|
||||
delete_diagram: "刪除圖表",
|
||||
are_you_sure_delete_diagram:
|
||||
"您確定要刪除此圖表嗎?此操作無法復原。",
|
||||
are_you_sure_delete_diagram: "您確定要刪除此圖表嗎?此操作無法復原。",
|
||||
oops_smth_went_wrong: "糟糕!發生錯誤。",
|
||||
import_diagram: "匯入圖表",
|
||||
import_from_source: "從 SQL 匯入",
|
||||
@ -31,8 +31,7 @@ const zh_tw = {
|
||||
undo: "復原",
|
||||
redo: "重做",
|
||||
clear: "清除",
|
||||
are_you_sure_clear:
|
||||
"您確定要清除圖表嗎?此操作無法復原。",
|
||||
are_you_sure_clear: "您確定要清除圖表嗎?此操作無法復原。",
|
||||
cut: "剪下",
|
||||
copy: "複製",
|
||||
paste: "貼上",
|
||||
@ -105,8 +104,7 @@ const zh_tw = {
|
||||
no_types: "沒有型別",
|
||||
no_types_text: "建立您自己的自訂資料型別",
|
||||
no_issues: "未偵測到問題。",
|
||||
strict_mode_is_on_no_issues:
|
||||
"嚴謹模式已關閉,因此不會顯示任何問題。",
|
||||
strict_mode_is_on_no_issues: "嚴謹模式已關閉,因此不會顯示任何問題。",
|
||||
name: "名稱",
|
||||
type: "型別",
|
||||
null: "允許空值",
|
||||
@ -157,12 +155,9 @@ const zh_tw = {
|
||||
confirm: "確認",
|
||||
last_modified: "上次修改時間",
|
||||
drag_and_drop_files: "拖曳檔案到此處或點選上傳。",
|
||||
support_json_and_ddb: "支援 JSON 和 DDB 檔案",
|
||||
upload_sql_to_generate_diagrams:
|
||||
"上傳 SQL 檔案以自動產生表格和欄位。",
|
||||
upload_sql_to_generate_diagrams: "上傳 SQL 檔案以自動產生表格和欄位。",
|
||||
overwrite_existing_diagram: "覆寫現有圖表",
|
||||
only_mysql_supported:
|
||||
"*目前僅支援載入 MySQL 指令碼。",
|
||||
only_mysql_supported: "*目前僅支援載入 MySQL 指令碼。",
|
||||
blank: "空白",
|
||||
filename: "檔案名稱",
|
||||
table_w_no_name: "宣告了一個沒有名稱的表格",
|
||||
@ -175,10 +170,8 @@ const zh_tw = {
|
||||
"表格 '{{tableName}}' 中欄位 '{{fieldName}}' 的預設值與其型別不符",
|
||||
not_null_is_null:
|
||||
"表格 '{{tableName}}' 中的 '{{fieldName}}' 欄位為 NOT NULL,但預設值為 NULL",
|
||||
duplicate_fields:
|
||||
"表格 '{{tableName}}' 中的欄位名稱 '{{fieldName}}' 重複",
|
||||
duplicate_index:
|
||||
"表格 '{{tableName}}' 中的索引名稱 '{{indexName}}' 重複",
|
||||
duplicate_fields: "表格 '{{tableName}}' 中的欄位名稱 '{{fieldName}}' 重複",
|
||||
duplicate_index: "表格 '{{tableName}}' 中的索引名稱 '{{indexName}}' 重複",
|
||||
empty_index: "表格 '{{tableName}}' 中的索引未指定任何欄位",
|
||||
no_primary_key: "表格 '{{tableName}}' 沒有主鍵",
|
||||
type_with_no_name: "宣告了一個沒有名稱的型別",
|
||||
|
@ -7,6 +7,7 @@ const chinese = {
|
||||
const zh = {
|
||||
translation: {
|
||||
report_bug: "报告问题",
|
||||
import_from: "导入",
|
||||
import: "导入",
|
||||
file: "文件",
|
||||
new: "新建",
|
||||
@ -147,7 +148,6 @@ const zh = {
|
||||
confirm: "确认",
|
||||
last_modified: "最后修改",
|
||||
drag_and_drop_files: "拖放文件到此处或点击上传。",
|
||||
support_json_and_ddb: "支持 JSON 和 DDB 文件",
|
||||
upload_sql_to_generate_diagrams: "上传 SQL 文件以自动生成表和列。",
|
||||
overwrite_existing_diagram: "覆盖现有图表",
|
||||
only_mysql_supported: "目前仅支持加载 MySQL 脚本。",
|
||||
|
@ -1,15 +1,18 @@
|
||||
import ReactDOM from "react-dom/client";
|
||||
import { LocaleProvider } from "@douyinfe/semi-ui";
|
||||
import { Analytics } from "@vercel/analytics/react";
|
||||
import { SpeedInsights } from "@vercel/speed-insights/react";
|
||||
import App from "./App.jsx";
|
||||
import en_US from "@douyinfe/semi-ui/lib/es/locale/source/en_US";
|
||||
// import en_US from "@douyinfe/semi-ui/lib/es/locale/source/en_US";
|
||||
import "./index.css";
|
||||
import "./i18n/i18n.js";
|
||||
import { zh } from "./i18n/locales/zh.js";
|
||||
|
||||
const root = ReactDOM.createRoot(document.getElementById("root"));
|
||||
root.render(
|
||||
<LocaleProvider locale={en_US}>
|
||||
<LocaleProvider locale={zh}>
|
||||
<App />
|
||||
<Analytics />
|
||||
<SpeedInsights />
|
||||
</LocaleProvider>,
|
||||
);
|
||||
|
@ -9,13 +9,13 @@ import postgres_icon from "../assets/postgres.png";
|
||||
import sqlite_icon from "../assets/sqlite.png";
|
||||
import mariadb_icon from "../assets/mariadb.png";
|
||||
import sql_server_icon from "../assets/sql-server.png";
|
||||
import discord from "../assets/discord.png";
|
||||
import github from "../assets/github.png";
|
||||
// import discord from "../assets/discord.png";
|
||||
// import github from "../assets/github.png";
|
||||
import screenshot from "../assets/screenshot.png";
|
||||
import FadeIn from "../animations/FadeIn";
|
||||
import axios from "axios";
|
||||
import { languages } from "../i18n/i18n";
|
||||
import { Tweet } from "react-tweet";
|
||||
// import { Tweet } from "react-tweet";
|
||||
import { socials } from "../data/socials";
|
||||
|
||||
function shortenNumber(number) {
|
||||
@ -49,7 +49,7 @@ export default function LandingPage() {
|
||||
{showSurvey && (
|
||||
<div className="text-white font-semibold py-1.5 px-4 text-sm text-center bg-gradient-to-r from-[#12495e] from-10% via-slate-500 to-[#12495e]">
|
||||
<Link to="/survey" className="hover:underline">
|
||||
Help us improve! Share your feedback.
|
||||
帮助我们改进!分享您的反馈。
|
||||
</Link>
|
||||
<div className="float-right">
|
||||
<button onClick={() => setShowSurvey(false)}>
|
||||
@ -72,19 +72,18 @@ export default function LandingPage() {
|
||||
<FadeIn duration={0.75}>
|
||||
<div className="md:px-3">
|
||||
<h1 className="text-[42px] md:text-3xl font-bold tracking-wide bg-gradient-to-r from-sky-900 from-10% via-slate-500 to-[#12495e] inline-block text-transparent bg-clip-text">
|
||||
Draw, Copy, and Paste
|
||||
描绘, 复制, 和 粘贴
|
||||
</h1>
|
||||
<div className="text-lg font-medium mt-1 sliding-vertical">
|
||||
Free and open source, simple, and intuitive database design
|
||||
editor, data-modeler, and SQL generator.{" "}
|
||||
免费开源,简单易用的数据库设计编辑器、数据建模器和 SQL 生成器。{" "}
|
||||
<span className="ms-2 sm:block sm:ms-0 text-slate-500 bg-white font-bold whitespace-nowrap">
|
||||
No sign up
|
||||
无需登录
|
||||
</span>
|
||||
<span className="ms-2 sm:block sm:ms-0 text-slate-500 bg-white font-bold whitespace-nowrap">
|
||||
Free of charge
|
||||
免费
|
||||
</span>
|
||||
<span className="ms-2 sm:block sm:ms-0 text-slate-500 bg-white font-bold whitespace-nowrap">
|
||||
Quick and easy
|
||||
快速且容易
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
@ -98,13 +97,13 @@ export default function LandingPage() {
|
||||
.scrollIntoView({ behavior: "smooth" })
|
||||
}
|
||||
>
|
||||
Learn more
|
||||
查看更多
|
||||
</button>
|
||||
<Link
|
||||
to="/editor"
|
||||
className="inline-block py-3 text-white transition-all duration-300 rounded-full shadow-lg bg-sky-900 ps-7 pe-6 hover:bg-sky-800"
|
||||
>
|
||||
Try it for yourself <i className="bi bi-arrow-right ms-1"></i>
|
||||
自行尝试 <i className="bi bi-arrow-right ms-1"></i>
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
@ -120,7 +119,7 @@ export default function LandingPage() {
|
||||
{shortenNumber(stats.stars)}
|
||||
</div>
|
||||
<div className="ms-1 mt-1 font-medium tracking-wide">
|
||||
GitHub stars
|
||||
GitHub 星标
|
||||
</div>
|
||||
</div>
|
||||
<div className="text-center mb-4">
|
||||
@ -128,7 +127,7 @@ export default function LandingPage() {
|
||||
{shortenNumber(stats.forks)}
|
||||
</div>
|
||||
<div className="ms-1 mt-1 font-medium tracking-wide">
|
||||
GitHub forks
|
||||
GitHub 收藏
|
||||
</div>
|
||||
</div>
|
||||
<div className="text-center mb-4">
|
||||
@ -136,32 +135,18 @@ export default function LandingPage() {
|
||||
{shortenNumber(languages.length)}
|
||||
</div>
|
||||
<div className="ms-1 mt-1 font-medium tracking-wide">
|
||||
Languages
|
||||
语言
|
||||
</div>
|
||||
</div>
|
||||
<div className="w-96 md:w-full h-full md:text-center">
|
||||
<div>
|
||||
Join our community, become one of us. Help us become bigger and
|
||||
better, support us by donating.
|
||||
</div>
|
||||
<a
|
||||
href="https://buymeacoffee.com/drawdb"
|
||||
className="inline-block bg-white hover:bg-zinc-50 transition-all duration-300 rounded-full px-9 py-2.5 shadow mt-2"
|
||||
>
|
||||
Support us{" "}
|
||||
<i className="ms-2 text-rose-600 fa-regular fa-heart"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div className="mt-16 w-[75%] text-center sm:w-full mx-auto shadow-sm rounded-2xl border p-6 bg-white space-y-3">
|
||||
<div className="text-lg font-medium">
|
||||
Build diagrams with a few clicks, see the full picture, export SQL
|
||||
scripts, customize your editor, and more.
|
||||
用几下点击构建图表,全面了解,导出 SQL 脚本,自定义你的编辑器,更多功能。
|
||||
</div>
|
||||
<img src={screenshot} className="mx-auto" />
|
||||
</div>
|
||||
<div className="text-lg font-medium text-center mt-12 mb-6">
|
||||
Design for your database
|
||||
设计你的数据库
|
||||
</div>
|
||||
<div className="flex justify-center items-center gap-8 md:block">
|
||||
{dbs.map((s, i) => (
|
||||
@ -192,10 +177,10 @@ export default function LandingPage() {
|
||||
<div id="features" className="py-8 px-36 md:px-8">
|
||||
<FadeIn duration={1}>
|
||||
<div className="text-base font-medium text-center text-sky-900">
|
||||
More than just an editor
|
||||
不仅仅是一个编辑器
|
||||
</div>
|
||||
<div className="text-2xl mt-1 font-medium text-center">
|
||||
What drawDB has to offer
|
||||
drawDB 的功能介绍
|
||||
</div>
|
||||
<div className="grid grid-cols-3 gap-8 mt-10 md:grid-cols-2 sm:grid-cols-1">
|
||||
{features.map((f, i) => (
|
||||
@ -216,9 +201,9 @@ export default function LandingPage() {
|
||||
</div>
|
||||
|
||||
{/* Tweets */}
|
||||
<div className="px-40 mt-6 md:px-8">
|
||||
{/* <div className="px-40 mt-6 md:px-8">
|
||||
<div className="text-center text-2xl md:text-xl font-medium">
|
||||
What the internet says about us
|
||||
网上关于我们的说法
|
||||
</div>
|
||||
<div
|
||||
data-theme="light"
|
||||
@ -229,10 +214,10 @@ export default function LandingPage() {
|
||||
<Tweet id="1785457354777006524" />
|
||||
<Tweet id="1776842268042756248" />
|
||||
</div>
|
||||
</div>
|
||||
</div> */}
|
||||
|
||||
{/* Contact us */}
|
||||
<svg
|
||||
{/* <svg
|
||||
viewBox="0 0 1440 54"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
@ -246,11 +231,10 @@ export default function LandingPage() {
|
||||
</svg>
|
||||
<div className="bg-zinc-100 py-8 px-32 md:px-8">
|
||||
<div className="mt-4 mb-2 text-2xl font-bold text-center">
|
||||
Reach out to us
|
||||
联系我们
|
||||
</div>
|
||||
<div className="text-lg text-center mb-4">
|
||||
We love hearing from you. Join our community on Discord, GitHub, and
|
||||
X.
|
||||
我们很乐意听到您的声音。加入我们在 Discord、GitHub 和 X 上的社区。
|
||||
</div>
|
||||
<div className="px-36 text-center md:px-8">
|
||||
<div className="md:block md:space-y-3 flex gap-3 justify-center">
|
||||
@ -263,7 +247,7 @@ export default function LandingPage() {
|
||||
<div className="bg-zinc-800 hover:opacity-90 transition-all duration-300 flex items-center gap-4 px-14 py-4 rounded-lg">
|
||||
<img src={github} className="h-8" />
|
||||
<div className="text-lg text-white font-bold">
|
||||
See the source
|
||||
查看源代码
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
@ -276,7 +260,7 @@ export default function LandingPage() {
|
||||
<div className="bg-[#5865f2] hover:opacity-90 transition-all duration-300 flex items-center gap-4 px-8 py-4 rounded-lg">
|
||||
<img src={discord} className="h-8" />
|
||||
<div className="text-lg text-white font-bold">
|
||||
Join us on Discord
|
||||
在 Discord 加入我们
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
@ -288,34 +272,19 @@ export default function LandingPage() {
|
||||
>
|
||||
<div className="text-white bg-zinc-800 hover:opacity-90 transition-all duration-300 flex items-center gap-4 px-12 py-4 rounded-lg">
|
||||
<i className="text-2xl bi bi-twitter-x" />
|
||||
<div className="text-lg font-bold">Follow us on X</div>
|
||||
<div className="text-lg font-bold">在 X 上关注我们</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div className="my-8">
|
||||
<div>
|
||||
If you're finding drawDB useful and would like to help us in
|
||||
improving and adding new features, consider making a donation.
|
||||
</div>
|
||||
<div>Your support means a lot to us!</div>
|
||||
<a
|
||||
href="https://buymeacoffee.com/drawdb"
|
||||
className="inline-block bg-white hover:bg-zinc-50 transition-all duration-300 rounded-full px-16 py-2.5 shadow mt-2"
|
||||
>
|
||||
Support us{" "}
|
||||
<i className="ms-2 text-rose-600 fa-regular fa-heart"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> */}
|
||||
|
||||
<div className="bg-red-700 py-1 text-center text-white text-xs font-semibold px-3">
|
||||
Attention! The diagrams are saved in your browser. Before clearing the
|
||||
browser make sure to back up your data.
|
||||
<div className="bg-red-700 py-1 text-center text-white text-xs font-semibold px-3 mt-5">
|
||||
注意!图表会在您的浏览器中保存。在清除浏览器之前,请确保备份您的数据。
|
||||
</div>
|
||||
<hr className="border-zinc-300" />
|
||||
<div className="text-center text-sm py-3">
|
||||
© 2024 <strong>drawDB</strong> - All right reserved.
|
||||
© 2024 <strong>drawDB</strong> - 保留所有权利。
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
@ -331,123 +300,113 @@ const dbs = [
|
||||
|
||||
const features = [
|
||||
{
|
||||
title: "Export",
|
||||
title: "导出",
|
||||
content: (
|
||||
<div>
|
||||
Export the DDL script to run on your database or export the diagram as a
|
||||
JSON or an image.
|
||||
导出 DDL 脚本以在您的数据库中运行或将图表导出为 JSON 或图像。
|
||||
</div>
|
||||
),
|
||||
footer: "",
|
||||
},
|
||||
{
|
||||
title: "Reverse engineer",
|
||||
title: "反向工程",
|
||||
content: (
|
||||
<div>
|
||||
Already have a schema? Import a DDL script to generate a diagram.
|
||||
已经有模式了吗?导入 DDL 脚本来生成图表。
|
||||
</div>
|
||||
),
|
||||
footer: "",
|
||||
},
|
||||
{
|
||||
title: "Customizable workspace",
|
||||
title: "可定制的工作区",
|
||||
content: (
|
||||
<div>
|
||||
Customize the UI to fit your preferences. Select the components you want
|
||||
in your view.
|
||||
自定义界面以符合您的偏好。选择您想要在视图中显示的组件。
|
||||
</div>
|
||||
),
|
||||
footer: "",
|
||||
},
|
||||
{
|
||||
title: "Keyboard shortcuts",
|
||||
title: "键盘快捷键",
|
||||
content: (
|
||||
<div>
|
||||
Speed up development with keyboard shortuts. See all available shortcuts
|
||||
使用键盘快捷键加快开发速度。在
|
||||
<Link
|
||||
to={`${socials.docs}/shortcuts`}
|
||||
className="ms-1.5 text-blue-500 hover:underline"
|
||||
>
|
||||
here
|
||||
</Link>
|
||||
.
|
||||
>这里</Link>查看所有可用的快捷键。
|
||||
</div>
|
||||
),
|
||||
footer: "",
|
||||
},
|
||||
{
|
||||
title: "Templates",
|
||||
title: "模板",
|
||||
content: (
|
||||
<div>
|
||||
Start off with pre-built templates. Get a quick start or get inspirition
|
||||
for your design.
|
||||
使用预建模板开始。快速入门或为您的设计获取灵感。
|
||||
</div>
|
||||
),
|
||||
footer: "",
|
||||
},
|
||||
{
|
||||
title: "Custom Templates",
|
||||
title: "自定义模板",
|
||||
content: (
|
||||
<div>
|
||||
Have boilerplate structures? Save time by saving them as templates and
|
||||
load them when needed.
|
||||
有模板结构?通过保存它们作为模板来节省时间,在需要时加载它们。
|
||||
</div>
|
||||
),
|
||||
footer: "",
|
||||
},
|
||||
{
|
||||
title: "Robust editor",
|
||||
title: "强大的编辑器",
|
||||
content: (
|
||||
<div>
|
||||
Undo, redo, copy, paste, duplacate and more. Add tables, subject areas,
|
||||
and notes.
|
||||
撤销、重做、复制、粘贴、复制更多。添加表、主题区域和注释。
|
||||
</div>
|
||||
),
|
||||
footer: "",
|
||||
},
|
||||
{
|
||||
title: "Issue detection",
|
||||
title: "问题检测",
|
||||
content: (
|
||||
<div>
|
||||
Detect and tackle errors in the diagram to make sure the scripts are
|
||||
correct.
|
||||
检测并解决图中的错误,确保脚本正确。
|
||||
</div>
|
||||
),
|
||||
footer: "",
|
||||
},
|
||||
{
|
||||
title: "Relational databases",
|
||||
title: "关系型数据库",
|
||||
content: (
|
||||
<div>
|
||||
We support 5 relational databases - MySQL, PostgreSQL, SQLite, MariaDB,
|
||||
SQL Server.
|
||||
我们支持 5 种关系型数据库 - MySQL、PostgreSQL、SQLite、MariaDB、SQL Server。
|
||||
</div>
|
||||
),
|
||||
footer: "",
|
||||
},
|
||||
{
|
||||
title: "Object-Relational databases",
|
||||
title: "对象关系型数据库",
|
||||
content: (
|
||||
<div>
|
||||
Add custom types for object-relational databases, or create custom JSON
|
||||
schemes.
|
||||
为对象关系型数据库添加自定义类型,或创建自定义 JSON 方案。
|
||||
</div>
|
||||
),
|
||||
footer: "",
|
||||
},
|
||||
{
|
||||
title: "Presentation mode",
|
||||
title: "演示模式",
|
||||
content: (
|
||||
<div>
|
||||
Present your diagrams on a big screen during team meetings and
|
||||
discussions.
|
||||
在团队会议和讨论中,在大屏幕上展示您的图表。
|
||||
</div>
|
||||
),
|
||||
footer: "",
|
||||
},
|
||||
{
|
||||
title: "Track todos",
|
||||
content: <div>Keep track of tasks and mark them done when finished.</div>,
|
||||
title: "跟踪待办事项",
|
||||
content: (
|
||||
<div>用于跟踪任务并在完成时标记为已完成。</div>
|
||||
),
|
||||
footer: "",
|
||||
},
|
||||
];
|
||||
|
@ -48,7 +48,7 @@ export default function Templates() {
|
||||
/>
|
||||
</Link>
|
||||
<div className="ms-4 sm:text-sm xl:text-xl text-xl font-semibold">
|
||||
Templates
|
||||
模板
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -56,16 +56,15 @@ export default function Templates() {
|
||||
<div className="xl:px-20 sm:px-6 px-12 py-6">
|
||||
<div className="w-full md:w-[75%] xl:w-[50%] mb-2">
|
||||
<div className="text-2xl sm:text-lg font-semibold mb-2 text-neutral-800">
|
||||
Database schema templates
|
||||
数据库模式模板
|
||||
</div>
|
||||
<div className="text-sm text-neutral-700">
|
||||
A compilation of database entity relationship diagrams to give you
|
||||
a quick start or inspire your application's architecture.
|
||||
一个数据库实体关系图的集合,帮助你快速开始或启发你的应用程序架构。
|
||||
</div>
|
||||
</div>
|
||||
<Tabs>
|
||||
<TabPane
|
||||
tab={<span className="mx-2">Default templates</span>}
|
||||
tab={<span className="mx-2">默认模板</span>}
|
||||
itemKey="1"
|
||||
>
|
||||
<div className="grid xl:grid-cols-3 grid-cols-2 sm:grid-cols-1 gap-10 my-6">
|
||||
@ -101,7 +100,7 @@ export default function Templates() {
|
||||
</div>
|
||||
</TabPane>
|
||||
<TabPane
|
||||
tab={<span className="mx-2">Your templates</span>}
|
||||
tab={<span className="mx-2">你的模板</span>}
|
||||
itemKey="2"
|
||||
>
|
||||
{customTemplates?.length > 0 ? (
|
||||
@ -134,7 +133,7 @@ export default function Templates() {
|
||||
onClick={() => editTemplate(c.id)}
|
||||
>
|
||||
<i className="bi bi-pencil-fill"></i>
|
||||
<div className="ms-1.5 font-semibold">Edit</div>
|
||||
<div className="ms-1.5 font-semibold">编辑</div>
|
||||
</button>
|
||||
<div className="border-l border-gray-300 mx-2" />
|
||||
<button
|
||||
@ -142,7 +141,7 @@ export default function Templates() {
|
||||
onClick={() => deleteTemplate(c.id)}
|
||||
>
|
||||
<IconDeleteStroked />
|
||||
<div className="ms-1.5 font-semibold">Delete</div>
|
||||
<div className="ms-1.5 font-semibold">删除</div>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
@ -157,7 +156,7 @@ export default function Templates() {
|
||||
bordered
|
||||
icon={null}
|
||||
closeIcon={null}
|
||||
description={<div>You have no custom templates saved.</div>}
|
||||
description={<div>您还没有保存自定义模板。</div>}
|
||||
/>
|
||||
<div className="grid grid-cols-5 sm:grid-cols-1 gap-4 place-content-center my-4">
|
||||
<img
|
||||
@ -166,20 +165,20 @@ export default function Templates() {
|
||||
/>
|
||||
<div className="col-span-2 sm:cols-span-1">
|
||||
<div className="text-xl font-bold my-4">
|
||||
How to save a template
|
||||
如何保存模板?
|
||||
</div>
|
||||
<Steps direction="vertical" style={{ margin: "12px" }}>
|
||||
<Steps.Step
|
||||
title="Build a diagram"
|
||||
description="Build the template in the editor"
|
||||
title="建立图表"
|
||||
description="在编辑器中构建模板"
|
||||
/>
|
||||
<Steps.Step
|
||||
title="Save as template"
|
||||
description="Editor > File > Save as template"
|
||||
title="保存为模板"
|
||||
description="编辑 > 文件 > 保存为模板"
|
||||
/>
|
||||
<Steps.Step
|
||||
title="Load a template"
|
||||
description="Fork a template to build on"
|
||||
title="加载一个模板"
|
||||
description="Fork一个模板以进行构建"
|
||||
/>
|
||||
</Steps>
|
||||
</div>
|
||||
|
@ -342,8 +342,8 @@ export const template1 = {
|
||||
notes: [],
|
||||
subjectAreas: [],
|
||||
types: [],
|
||||
title: "Blog database schema",
|
||||
title: "博客数据库模式",
|
||||
description:
|
||||
"A blog database including tables such as posts, users, comments, and tags to facilitate the storage and retrieval of blog-related information.",
|
||||
"一个博客数据库,包括帖子、用户、评论和标签等表,以方便存储和检索博客相关信息。",
|
||||
custom: 0,
|
||||
};
|
||||
|
@ -346,8 +346,8 @@ export const template2 = {
|
||||
notes: [],
|
||||
subjectAreas: [],
|
||||
types: [],
|
||||
title: "Human resources schema",
|
||||
title: "人力资源方案",
|
||||
description:
|
||||
"A Human Resources (HR) schema designed to manage employee and project related information within an organization.",
|
||||
"一个旨在管理组织内员工和项目相关信息的人力资源(HR)方案。",
|
||||
custom: 0,
|
||||
};
|
||||
|
@ -418,8 +418,8 @@ export const template3 = {
|
||||
notes: [],
|
||||
subjectAreas: [],
|
||||
types: [],
|
||||
title: "E-commerce schema",
|
||||
title: "电子商务方案",
|
||||
description:
|
||||
"An e-commerce schema designed to manage various aspects of an online store, including products, orders, and customers.",
|
||||
'一个电子商务架构,用于管理在线商店的各种方面,包括产品、订单和客户。',
|
||||
custom: 0,
|
||||
};
|
||||
|
@ -358,8 +358,8 @@ export const template4 = {
|
||||
notes: [],
|
||||
subjectAreas: [],
|
||||
types: [],
|
||||
title: "Library schema",
|
||||
title: "图书馆架构",
|
||||
description:
|
||||
"A library schema designed to manage the books, genres, reservations, and other aspects of a library system",
|
||||
'一个图书馆架构,用于管理书籍、类型、预订以及其他图书馆系统方面的内容。',
|
||||
custom: 0,
|
||||
};
|
||||
|
@ -629,8 +629,8 @@ export const template5 = {
|
||||
notes: [],
|
||||
subjectAreas: [],
|
||||
types: [],
|
||||
title: "Bank schema",
|
||||
title: "银行方案",
|
||||
description:
|
||||
"A financial schema designed to manage financial transactions, accounts, customers, and other aspects of financial data.",
|
||||
'一个用于管理金融交易、账户、客户及其他金融数据的金融方案设计。',
|
||||
custom: 0,
|
||||
};
|
||||
|
@ -453,8 +453,8 @@ export const template6 = {
|
||||
notes: [],
|
||||
subjectAreas: [],
|
||||
types: [],
|
||||
title: "University schema",
|
||||
title: "大学方案",
|
||||
description:
|
||||
"A university schema designed to manage information about students, courses, instructors, and other aspects of university-related data.",
|
||||
'一个用于管理学生、课程、教师及其他大学相关数据信息的大学模式。',
|
||||
custom: 0,
|
||||
};
|
||||
|
27
src/utils/arrangeTables.js
Normal file
27
src/utils/arrangeTables.js
Normal file
@ -0,0 +1,27 @@
|
||||
import {
|
||||
tableColorStripHeight,
|
||||
tableFieldHeight,
|
||||
tableHeaderHeight,
|
||||
} from "../data/constants";
|
||||
|
||||
export function arrangeTables(diagram) {
|
||||
let maxHeight = -1;
|
||||
const tableWidth = 200;
|
||||
const gapX = 54;
|
||||
const gapY = 40;
|
||||
diagram.tables.forEach((table, i) => {
|
||||
if (i < diagram.tables.length / 2) {
|
||||
table.x = i * tableWidth + (i + 1) * gapX;
|
||||
table.y = gapY;
|
||||
const height =
|
||||
table.fields.length * tableFieldHeight +
|
||||
tableHeaderHeight +
|
||||
tableColorStripHeight;
|
||||
maxHeight = Math.max(height, maxHeight);
|
||||
} else {
|
||||
const index = diagram.tables.length - i - 1;
|
||||
table.x = index * tableWidth + (index + 1) * gapX;
|
||||
table.y = maxHeight + 2 * gapY;
|
||||
}
|
||||
});
|
||||
}
|
102
src/utils/exportAs/dbml.js
Normal file
102
src/utils/exportAs/dbml.js
Normal file
@ -0,0 +1,102 @@
|
||||
import { Cardinality } from "../../data/constants";
|
||||
import { parseDefault } from "../exportSQL/shared";
|
||||
|
||||
function hasColumnSettings(field) {
|
||||
return (
|
||||
field.primary ||
|
||||
field.notNull ||
|
||||
field.increment ||
|
||||
field.unique ||
|
||||
(field.comment && field.comment.trim() != "") ||
|
||||
(field.default && field.default.trim() != "")
|
||||
);
|
||||
}
|
||||
|
||||
function columnDefault(field, database) {
|
||||
if (!field.default || field.default.trim() === "") {
|
||||
return "";
|
||||
}
|
||||
|
||||
return `default: ${parseDefault(field, database)}`;
|
||||
}
|
||||
|
||||
function columnComment(field) {
|
||||
if (!field.comment || field.comment.trim() === "") {
|
||||
return "";
|
||||
}
|
||||
|
||||
return `note: '${field.comment}'`;
|
||||
}
|
||||
|
||||
function columnSettings(field, database) {
|
||||
if (!hasColumnSettings(field)) {
|
||||
return "";
|
||||
}
|
||||
|
||||
return ` [ ${field.primary ? "pk " : ""}${
|
||||
field.increment ? "increment " : ""
|
||||
}${field.notNull ? "not null " : ""}${
|
||||
field.unique ? "unique " : ""
|
||||
}${columnDefault(field, database)}${columnComment(field, database)}]`;
|
||||
}
|
||||
|
||||
function cardinality(rel) {
|
||||
switch (rel.cardinality) {
|
||||
case Cardinality.ONE_TO_ONE:
|
||||
return "-";
|
||||
case Cardinality.ONE_TO_MANY:
|
||||
return "<";
|
||||
case Cardinality.MANY_TO_ONE:
|
||||
return ">";
|
||||
}
|
||||
}
|
||||
|
||||
export function toDBML(diagram) {
|
||||
return `${diagram.enums
|
||||
.map(
|
||||
(en) =>
|
||||
`enum ${en.name} {\n${en.values.map((v) => `\t${v}`).join("\n")}\n}\n\n`,
|
||||
)
|
||||
.join("\n\n")}${diagram.tables
|
||||
.map(
|
||||
(table) =>
|
||||
`Table ${table.name} {\n${table.fields
|
||||
.map(
|
||||
(field) =>
|
||||
`\t${field.name} ${field.type.toLowerCase()}${columnSettings(
|
||||
field,
|
||||
diagram.database,
|
||||
)}`,
|
||||
)
|
||||
.join("\n")}${
|
||||
table.indices.length > 0
|
||||
? "\n\n\tindexes {\n" +
|
||||
table.indices
|
||||
.map(
|
||||
(index) =>
|
||||
`\t\t(${index.fields.join(", ")}) [ name: '${
|
||||
index.name
|
||||
}'${index.unique ? " unique" : ""} ]`,
|
||||
)
|
||||
.join("\n") +
|
||||
"\n\t}"
|
||||
: ""
|
||||
}${
|
||||
table.comment && table.comment.trim() !== ""
|
||||
? `\n\n\tNote: '${table.comment}'`
|
||||
: ""
|
||||
}\n}`,
|
||||
)
|
||||
.join("\n\n")}\n\n${diagram.relationships
|
||||
.map(
|
||||
(rel) =>
|
||||
`Ref ${rel.name} {\n\t${
|
||||
diagram.tables[rel.startTableId].name
|
||||
}.${diagram.tables[rel.startTableId].fields[rel.startFieldId].name} ${cardinality(
|
||||
rel,
|
||||
)} ${diagram.tables[rel.endTableId].name}.${
|
||||
diagram.tables[rel.endTableId].fields[rel.endFieldId].name
|
||||
} [ delete: ${rel.deleteConstraint.toLowerCase()}, on update: ${rel.updateConstraint.toLowerCase()} ]\n}`,
|
||||
)
|
||||
.join("\n\n")}`;
|
||||
}
|
128
src/utils/importFrom/dbml.js
Normal file
128
src/utils/importFrom/dbml.js
Normal file
@ -0,0 +1,128 @@
|
||||
import { Parser } from "@dbml/core";
|
||||
import { arrangeTables } from "../arrangeTables";
|
||||
import { Cardinality, Constraint } from "../../data/constants";
|
||||
|
||||
const parser = new Parser();
|
||||
|
||||
export function fromDBML(src) {
|
||||
const ast = parser.parse(src, "dbml");
|
||||
|
||||
const tables = [];
|
||||
const enums = [];
|
||||
const relationships = [];
|
||||
|
||||
for (const schema of ast.schemas) {
|
||||
for (const table of schema.tables) {
|
||||
let parsedTable = {};
|
||||
parsedTable.id = tables.length;
|
||||
parsedTable.name = table.name;
|
||||
parsedTable.comment = table.note ?? "";
|
||||
parsedTable.color = "#175e7a";
|
||||
parsedTable.fields = [];
|
||||
parsedTable.indices = [];
|
||||
|
||||
for (const column of table.fields) {
|
||||
const field = {};
|
||||
|
||||
field.id = parsedTable.fields.length;
|
||||
field.name = column.name;
|
||||
field.type = column.type.type_name.toUpperCase();
|
||||
field.default = column.dbdefault ?? "";
|
||||
field.check = "";
|
||||
field.primary = !!column.pk;
|
||||
field.unique = !!column.pk;
|
||||
field.notNull = !!column.not_null;
|
||||
field.increment = !!column.increment;
|
||||
field.comment = column.note ?? "";
|
||||
|
||||
parsedTable.fields.push(field);
|
||||
}
|
||||
|
||||
for (const idx of table.indexes) {
|
||||
const parsedIndex = {};
|
||||
|
||||
parsedIndex.id = idx.id - 1;
|
||||
parsedIndex.fields = idx.columns.map((x) => x.value);
|
||||
parsedIndex.name =
|
||||
idx.name ?? `${parsedTable.name}_index_${parsedIndex.id}`;
|
||||
parsedIndex.unique = !!idx.unique;
|
||||
|
||||
parsedTable.indices.push(parsedIndex);
|
||||
}
|
||||
|
||||
tables.push(parsedTable);
|
||||
}
|
||||
|
||||
for (const ref of schema.refs) {
|
||||
const startTable = ref.endpoints[0].tableName;
|
||||
const endTable = ref.endpoints[1].tableName;
|
||||
const startField = ref.endpoints[0].fieldNames[0];
|
||||
const endField = ref.endpoints[1].fieldNames[0];
|
||||
|
||||
const startTableId = tables.findIndex((t) => t.name === startTable);
|
||||
if (startTableId === -1) continue;
|
||||
|
||||
const endTableId = tables.findIndex((t) => t.name === endTable);
|
||||
if (endTableId === -1) continue;
|
||||
|
||||
const endFieldId = tables[endTableId].fields.findIndex(
|
||||
(f) => f.name === endField,
|
||||
);
|
||||
if (endFieldId === -1) continue;
|
||||
|
||||
const startFieldId = tables[startTableId].fields.findIndex(
|
||||
(f) => f.name === startField,
|
||||
);
|
||||
if (startFieldId === -1) continue;
|
||||
|
||||
const relationship = {};
|
||||
|
||||
relationship.name =
|
||||
"fk_" + startTable + "_" + startField + "_" + endTable;
|
||||
relationship.startTableId = startTableId;
|
||||
relationship.endTableId = endTableId;
|
||||
relationship.endFieldId = endFieldId;
|
||||
relationship.startFieldId = startFieldId;
|
||||
relationship.id = relationships.length;
|
||||
|
||||
relationship.updateConstraint = ref.onDelete
|
||||
? ref.onDelete[0].toUpperCase() + ref.onDelete.substring(1)
|
||||
: Constraint.NONE;
|
||||
relationship.deleteConstraint = ref.onUpdate
|
||||
? ref.onUpdate[0].toUpperCase() + ref.onUpdate.substring(1)
|
||||
: Constraint.NONE;
|
||||
|
||||
const startRelation = ref.endpoints[0].relation;
|
||||
const endRelation = ref.endpoints[1].relation;
|
||||
|
||||
if (startRelation === "*" && endRelation === "1") {
|
||||
relationship.cardinality = Cardinality.MANY_TO_ONE;
|
||||
}
|
||||
|
||||
if (startRelation === "1" && endRelation === "*") {
|
||||
relationship.cardinality = Cardinality.ONE_TO_MANY;
|
||||
}
|
||||
|
||||
if (startRelation === "1" && endRelation === "1") {
|
||||
relationship.cardinality = Cardinality.ONE_TO_ONE;
|
||||
}
|
||||
|
||||
relationships.push(relationship);
|
||||
}
|
||||
|
||||
for (const schemaEnum of schema.enums) {
|
||||
const parsedEnum = {};
|
||||
|
||||
parsedEnum.name = schemaEnum.name;
|
||||
parsedEnum.values = schemaEnum.values.map((x) => x.name);
|
||||
|
||||
enums.push(parsedEnum);
|
||||
}
|
||||
}
|
||||
|
||||
const diagram = { tables, enums, relationships };
|
||||
|
||||
arrangeTables(diagram);
|
||||
|
||||
return diagram;
|
||||
}
|
@ -1,9 +1,5 @@
|
||||
import {
|
||||
DB,
|
||||
tableColorStripHeight,
|
||||
tableFieldHeight,
|
||||
tableHeaderHeight,
|
||||
} from "../../data/constants";
|
||||
import { DB } from "../../data/constants";
|
||||
import { arrangeTables } from "../arrangeTables";
|
||||
import { fromMariaDB } from "./mariadb";
|
||||
import { fromMSSQL } from "./mssql";
|
||||
import { fromMySQL } from "./mysql";
|
||||
@ -33,25 +29,7 @@ export function importSQL(ast, toDb = DB.MYSQL, diagramDb = DB.GENERIC) {
|
||||
break;
|
||||
}
|
||||
|
||||
let maxHeight = -1;
|
||||
const tableWidth = 200;
|
||||
const gapX = 54;
|
||||
const gapY = 40;
|
||||
diagram.tables.forEach((table, i) => {
|
||||
if (i < diagram.tables.length / 2) {
|
||||
table.x = i * tableWidth + (i + 1) * gapX;
|
||||
table.y = gapY;
|
||||
const height =
|
||||
table.fields.length * tableFieldHeight +
|
||||
tableHeaderHeight +
|
||||
tableColorStripHeight;
|
||||
maxHeight = Math.max(height, maxHeight);
|
||||
} else {
|
||||
const index = diagram.tables.length - i - 1;
|
||||
table.x = index * tableWidth + (index + 1) * gapX;
|
||||
table.y = maxHeight + 2 * gapY;
|
||||
}
|
||||
});
|
||||
arrangeTables(diagram);
|
||||
|
||||
return diagram;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user