Configure i18n and add simplified chinese (#99)

This commit is contained in:
1ilit
2024-05-16 06:44:39 +03:00
parent 9de091c990
commit 2b4b01c358
52 changed files with 1339 additions and 528 deletions
+8 -4
View File
@@ -3,10 +3,13 @@ import { Action, ObjectType, defaultBlue } from "../data/constants";
import useUndoRedo from "../hooks/useUndoRedo";
import useTransform from "../hooks/useTransform";
import useSelect from "../hooks/useSelect";
import { Toast } from "@douyinfe/semi-ui";
import { useTranslation } from "react-i18next";
export const AreasContext = createContext(null);
export default function AreasContextProvider({ children }) {
const { t } = useTranslation();
const [areas, setAreas] = useState([]);
const { transform } = useTransform();
const { selectedElement, setSelectedElement } = useSelect();
@@ -39,7 +42,7 @@ export default function AreasContextProvider({ children }) {
{
action: Action.ADD,
element: ObjectType.AREA,
message: `Add new subject area`,
message: t("add_area"),
},
]);
setRedoStack([]);
@@ -48,19 +51,20 @@ export default function AreasContextProvider({ children }) {
const deleteArea = (id, addToHistory = true) => {
if (addToHistory) {
Toast.success(t("area_deleted"));
setUndoStack((prev) => [
...prev,
{
action: Action.DELETE,
element: ObjectType.AREA,
data: areas[id],
message: `Delete subject area`,
message: t("delete_area", areas[id].name),
},
]);
setRedoStack([]);
}
setAreas((prev) =>
prev.filter((e) => e.id !== id).map((e, i) => ({ ...e, id: i }))
prev.filter((e) => e.id !== id).map((e, i) => ({ ...e, id: i })),
);
if (id === selectedElement.id) {
setSelectedElement((prev) => ({
@@ -82,7 +86,7 @@ export default function AreasContextProvider({ children }) {
};
}
return t;
})
}),
);
};
+8 -4
View File
@@ -3,10 +3,13 @@ import useTransform from "../hooks/useTransform";
import { Action, ObjectType, defaultNoteTheme } from "../data/constants";
import useUndoRedo from "../hooks/useUndoRedo";
import useSelect from "../hooks/useSelect";
import { Toast } from "@douyinfe/semi-ui";
import { useTranslation } from "react-i18next";
export const NotesContext = createContext(null);
export default function NotesContextProvider({ children }) {
const { t } = useTranslation();
const [notes, setNotes] = useState([]);
const { transform } = useTransform();
const { setUndoStack, setRedoStack } = useUndoRedo();
@@ -39,7 +42,7 @@ export default function NotesContextProvider({ children }) {
{
action: Action.ADD,
element: ObjectType.NOTE,
message: `Add new note`,
message: t("add_note"),
},
]);
setRedoStack([]);
@@ -48,19 +51,20 @@ export default function NotesContextProvider({ children }) {
const deleteNote = (id, addToHistory = true) => {
if (addToHistory) {
Toast.success(t("note_deleted"));
setUndoStack((prev) => [
...prev,
{
action: Action.DELETE,
element: ObjectType.NOTE,
data: notes[id],
message: `Delete note`,
message: t("delete_note", { noteTitle: notes[id].title }),
},
]);
setRedoStack([]);
}
setNotes((prev) =>
prev.filter((e) => e.id !== id).map((e, i) => ({ ...e, id: i }))
prev.filter((e) => e.id !== id).map((e, i) => ({ ...e, id: i })),
);
if (id === selectedElement.id) {
setSelectedElement((prev) => ({
@@ -82,7 +86,7 @@ export default function NotesContextProvider({ children }) {
};
}
return t;
})
}),
);
};
+20 -11
View File
@@ -3,10 +3,13 @@ import { Action, ObjectType, defaultBlue } from "../data/constants";
import useTransform from "../hooks/useTransform";
import useUndoRedo from "../hooks/useUndoRedo";
import useSelect from "../hooks/useSelect";
import { Toast } from "@douyinfe/semi-ui";
import { useTranslation } from "react-i18next";
export const TablesContext = createContext(null);
export default function TablesContextProvider({ children }) {
const { t } = useTranslation();
const [tables, setTables] = useState([]);
const [relationships, setRelationships] = useState([]);
const { transform } = useTransform();
@@ -55,7 +58,7 @@ export default function TablesContextProvider({ children }) {
{
action: Action.ADD,
element: ObjectType.TABLE,
message: `Add new table`,
message: t("add_table"),
},
]);
setRedoStack([]);
@@ -64,13 +67,14 @@ export default function TablesContextProvider({ children }) {
const deleteTable = (id, addToHistory = true) => {
if (addToHistory) {
Toast.success(t("table_deleted"));
setUndoStack((prev) => [
...prev,
{
action: Action.DELETE,
element: ObjectType.TABLE,
data: tables[id],
message: `Delete table`,
message: t("delete_table", { tableName: tables[id] }),
},
]);
setRedoStack([]);
@@ -106,7 +110,7 @@ export default function TablesContextProvider({ children }) {
const updateTable = (id, updatedValues) => {
setTables((prev) =>
prev.map((t) => (t.id === id ? { ...t, ...updatedValues } : t))
prev.map((t) => (t.id === id ? { ...t, ...updatedValues } : t)),
);
};
@@ -117,12 +121,12 @@ export default function TablesContextProvider({ children }) {
return {
...table,
fields: table.fields.map((field, j) =>
fid === j ? { ...field, ...updatedValues } : field
fid === j ? { ...field, ...updatedValues } : field,
),
};
}
return table;
})
}),
);
};
@@ -135,7 +139,10 @@ export default function TablesContextProvider({ children }) {
component: "field_delete",
tid: tid,
data: field,
message: `Delete field`,
message: t("edit_table", {
tableName: tables[tid].name,
extra: "[delete field]",
}),
},
]);
setRedoStack([]);
@@ -146,9 +153,9 @@ export default function TablesContextProvider({ children }) {
!(
(e.startTableId === tid && e.startFieldId === field.id) ||
(e.endTableId === tid && e.endFieldId === field.id)
)
),
)
.map((e, i) => ({ ...e, id: i }))
.map((e, i) => ({ ...e, id: i })),
);
setRelationships((prev) => {
return prev.map((e) => {
@@ -185,7 +192,7 @@ export default function TablesContextProvider({ children }) {
action: Action.ADD,
element: ObjectType.RELATIONSHIP,
data: data,
message: `Add new relationship`,
message: t("add_relationship"),
},
]);
setRedoStack([]);
@@ -208,13 +215,15 @@ export default function TablesContextProvider({ children }) {
action: Action.DELETE,
element: ObjectType.RELATIONSHIP,
data: relationships[id],
message: `Delete relationship`,
message: t("delete_relationship", {
refName: relationships[id].name,
}),
},
]);
setRedoStack([]);
}
setRelationships((prev) =>
prev.filter((e) => e.id !== id).map((e, i) => ({ ...e, id: i }))
prev.filter((e) => e.id !== id).map((e, i) => ({ ...e, id: i })),
);
};
+9 -3
View File
@@ -1,10 +1,13 @@
import { createContext, useState } from "react";
import { Action, ObjectType } from "../data/constants";
import useUndoRedo from "../hooks/useUndoRedo";
import { Toast } from "@douyinfe/semi-ui";
import { useTranslation } from "react-i18next";
export const TypesContext = createContext(null);
export default function TypesContextProvider({ children }) {
const { t } = useTranslation();
const [types, setTypes] = useState([]);
const { setUndoStack, setRedoStack } = useUndoRedo();
@@ -31,7 +34,7 @@ export default function TypesContextProvider({ children }) {
{
action: Action.ADD,
element: ObjectType.TYPE,
message: `Add new type`,
message: t("add_type"),
},
]);
setRedoStack([]);
@@ -40,6 +43,7 @@ export default function TypesContextProvider({ children }) {
const deleteType = (id, addToHistory = true) => {
if (addToHistory) {
Toast.success(t("type_deleted"));
setUndoStack((prev) => [
...prev,
{
@@ -47,7 +51,9 @@ export default function TypesContextProvider({ children }) {
element: ObjectType.TYPE,
id: id,
data: types[id],
message: `Delete type`,
message: t("delete_type", {
typeName: types[id].name,
}),
},
]);
setRedoStack([]);
@@ -57,7 +63,7 @@ export default function TypesContextProvider({ children }) {
const updateType = (id, values) => {
setTypes((prev) =>
prev.map((e, i) => (i === id ? { ...e, ...values } : e))
prev.map((e, i) => (i === id ? { ...e, ...values } : e)),
);
};