-
+
{database && }
-
+
+
+
+
+
+
diff --git a/src/i18/index.ts b/src/i18/index.ts
index 7f24947..796870d 100644
--- a/src/i18/index.ts
+++ b/src/i18/index.ts
@@ -1,26 +1,50 @@
-import { en, enLanguage } from "./languages/en";
-import { fr, frLanguage } from "./languages/fr";
+
+
import { Language } from "./types";
import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';
import LanguageDetector from 'i18next-browser-languagedetector';
+
+
+import { en, enLanguage } from "./languages/en";
+import { fr, frLanguage } from "./languages/fr";
import { ar, arLanguage } from "./languages/ar";
+import { es, esLanguage } from "./languages/es";
+import { zh, zhLanguage } from "./languages/zh";
+import { hi, hiLanguage } from "./languages/hi";
+import { pt, ptLanguage } from "./languages/pt";
+import { ru, ruLanguage } from "./languages/ru";
+import { de, deLanguage } from "./languages/de";
+
export const languages: Language[] = [
enLanguage,
- frLanguage ,
- arLanguage
+ frLanguage,
+ arLanguage,
+ esLanguage,
+ zhLanguage,
+ hiLanguage,
+ ptLanguage,
+ ruLanguage,
+ deLanguage,
];
+
const resources = {
en,
fr,
- ar
+ ar,
+ es,
+ zh,
+ hi,
+ pt,
+ ru,
+ de,
};
i18n.use(LanguageDetector)
.use(initReactI18next)
.init({
- resources ,
- lng: 'en',
+ resources,
+ lng: 'en',
interpolation: {
escapeValue: false,
diff --git a/src/i18/languages/ar.ts b/src/i18/languages/ar.ts
index a60bb73..6a9aea5 100644
--- a/src/i18/languages/ar.ts
+++ b/src/i18/languages/ar.ts
@@ -1,140 +1,251 @@
import { Language } from "../types";
export const ar = {
- translation: {
- sidebar: {
- tables: "الجداول",
- relationships: "العلاقات"
- },
- modal: {
- close: "إغلاق",
- create: "إنشاء"
- },
- color_picker: {
- default_color: "اللون الافتراضي"
- },
- db_controller: {
- filter: "تصفية",
- add_table: "إضافة جدول",
- add_field: "إضافة حقل",
- add_index: "إضافة فهرس",
- add_relationship: "إضافة علاقة",
- show_code: "عرض الكود",
- fields: "الحقول",
- indexes: "الفهارس",
- note: "ملاحظة",
- name: "الاسم",
- type: "النوع",
- nullable: "يمكن أن يكون فارغًا",
- select_fields: "اختر الحقول",
- unique: "فريد",
- table_note: "ملاحظة الجدول",
- collapse: "طي الكل",
-
- primary_key: "المفتاح الأساسي",
- foreign_key: "المفتاح الخارجي",
-
- source_table: "جدول المصدر",
- target_table: "جدول الهدف",
-
- select_table: "اختر الجدول",
- select_field: "اختر الحقل",
-
- cardinality: {
- name: "التعددية",
- one_to_one: "واحد إلى واحد",
- one_to_many: "واحد إلى متعدد",
- many_to_one: "متعدد إلى واحد",
- many_to_many: "متعدد إلى متعدد"
- },
- delete: "حذف",
- field_setting: "إعدادات الحقل",
- table_actions: "إجراءات الحقل",
- actions: "إجراءات",
-
- field_note: "ملاحظة الحقل",
- delete_field: "حذف الحقل",
-
- create_relationship: "إنشاء علاقة",
- relationship_error: "لإنشاء علاقة، يجب أن يكون نوع مفتاح المصدر ونوع المفتاح المرجعي متماثلين.",
-
- invalid_relationship: {
- title: "علاقة غير صالحة",
- description: "نوع مفتاح المصدر لا يتطابق مع نوع المفتاح المرجعي. يرجى التأكد من أن كلا المفتاحين لهما نفس نوع البيانات."
- }
- },
- table: {
- double_click: "انقر مزدوجًا للتعديل",
- overlapping_tables: "الجداول المتداخلة",
- },
- control_buttons: {
- redo: "إعادة",
- undo: "تراجع",
- zoom_in: "تكبير",
- zoom_out: "تصغير",
- adjust_positions: "تعديل المواقع",
- show_all: "عرض الكل"
- },
- menu: {
- file: "ملف",
- new: "جديد",
- open: "فتح",
- save: "حفظ",
- import: "استيراد",
- json: ".json",
- dbml: ".dbml",
- mysql: "MySql",
- postgresql: "Postgresql",
- export_sql: "تصدير SQL",
- generic: "عام",
- export_orm_models: "تصدير ORM Models",
- delete_project: "حذف المشروع",
- edit: "تحرير",
- undo: "تراجع",
- redo: "إعادة",
- clear: "مسح",
- view: "عرض",
- hide_controller: "إخفاء المتحكم",
- zoom_on_scroll: "التكبير عند التمرير",
- on: "تشغيل",
- off: "إيقاف",
- theme: "الثيم",
- light: "فاتح",
- dark: "داكن",
- help: "مساعدة",
- show_docs: "عرض المستندات",
- join_discord: "الانضمام إلى ديسكورد"
- },
- connection_status: {
- online: "متصل",
- offline: "غير متصل",
- saving: "جارٍ الحفظ",
- saved: "تم الحفظ",
- last_synced: "آخر مزامنة"
- },
- import: {
- instructions: "التعليمات",
- install: "التثبيت",
- run_command: "قم بتشغيل الأمر التالي في الطرفية.",
- example: "مثال",
- copy_code: "انسخ محتوى ملف .sql إلى قسم الكود أدناه.",
- pg_admin: {
- step1: "افتح
Pg Admin.",
- step2: "انقر بزر الفأرة الأيمن على قاعدة البيانات واختر
Backup من القائمة السياقية.",
- step3: "قم بتسمية ملف
.sql، ثم اختر التنسيق
Plain، وحدد
Encoding: UTF8.",
- step4: "تأكد من أن
Only schema محددة، و
Only data غير محددة، وذلك في علامة تبويب
Data Options.",
- step5: "انقر على
Backup لتصدير الملف، ثم انسخ محتواه إلى قسم محرر الكود أدناه."
- },
- workbench: {
- step1: "افتح
MySQL Workbench و
اتصل بخادم MySQL الخاص بك.",
- step2: "من القائمة العلوية، انتقل إلى
Server > Data Export.",
- step3: "في قسم
خيارات التصدير، اختر
Dump Structure Only.",
- step4: "حدد
Export to Self-Contained File، ثم اختر مكان الحفظ واسم ملف الإخراج
.sql.",
- step5: "انقر على
Start Export لبدء عملية التصدير، ثم انسخ محتوى الملف إلى قسم محرر الكود أدناه."
- }
+ translation: {
+ sidebar: {
+ tables: "الجداول",
+ relationships: "العلاقات"
+ },
+ color_picker: {
+ default_color: "اللون الافتراضي"
+ },
+ navbar: {
+ rename_db: "إعادة تسمية قاعدة البيانات",
+ search: "بحث"
+ },
+ db_controller: {
+ filter: "تصفية",
+ add_table: "إضافة جدول",
+ add_field: "إضافة حقل",
+ add_index: "إضافة فهرس",
+ delete_table: "حذف الجدول",
+ duplicate: "تكرار",
+ add_relationship: "إضافة علاقة",
+ show_code: "عرض الكود",
+ fields: "الحقول",
+ indexes: "الفهارس",
+ note: "ملاحظة",
+ name: "الاسم",
+ type: "النوع",
+ nullable: "يسمح بالقيمة الفارغة",
+ select_fields: "اختر الحقول",
+ unique: "فريد",
+ table_note: "ملاحظة الجدول",
+ collapse: "طي الكل",
+ primary_key: "المفتاح الأساسي",
+ foreign_key: "المفتاح الخارجي",
+ source_table: "الجدول المصدر",
+ referenced_table: "الجدول المشار إليه",
+ select_table: "اختر جدولًا",
+ select_field: "اختر حقلًا",
+ empty_list: {
+ no_tables: "لا توجد جداول",
+ no_tables_description: "أنشئ جدولًا للبدء.",
+ no_relationships: "لا توجد علاقات",
+ no_relationships_description: "أنشئ علاقات لربط جدولين"
+ },
+ cardinality: {
+ name: "القرينة",
+ one_to_one: "واحد إلى واحد",
+ one_to_many: "واحد إلى متعدد",
+ many_to_one: "متعدد إلى واحد",
+ many_to_many: "متعدد إلى متعدد"
+ },
+ foreign_key_actions: {
+ title: "إجراءات المفتاح الخارجي",
+ on_delete: "عند الحذف",
+ on_update: "عند التحديث",
+ actions: {
+ no_action: "لا إجراء",
+ cascade: "تسلسل",
+ set_null: "تعيين كـ Null",
+ set_default: "تعيين كافتراضي",
+ restrict: "تقييد"
}
+ },
+ field_settings: {
+ title: "إعدادات الحقل",
+ unique: "فريد",
+ unsigned: "بدون إشارة",
+ numeric_setting: "إعداد رقمي",
+ decimal_setting: "إعداد عشري",
+ zeroFill: "تعبئة بالأصفار",
+ autoIncrement: "زيادة تلقائية",
+ note: "ملاحظة",
+ delete_field: "حذف الحقل",
+ field_note: "ملاحظة الحقل",
+ precision: "الدقة",
+ text_setting: "إعداد النص",
+ charset: "ترميز الحروف",
+ collation: "التجميع",
+ scale: "المقياس",
+ max_length: "الطول الأقصى",
+ integer_width: "عرض العدد الصحيح",
+ width: "العرض",
+ default_value: "القيمة الافتراضية",
+ value: "القيمة",
+ length: "الطول",
+ values: "القيم",
+ type_enter: "اكتب واضغط Enter",
+ precision_def: "إجمالي الأرقام المسموحة (قبل + بعد الفاصلة).",
+ scale_def: "عدد الأرقام بعد الفاصلة.",
+ time_default_value: {
+ no_value: "لا توجد قيمة",
+ custom: "وقت مخصص",
+ now: "الآن"
+ },
+ errors: {
+ max_length: "يجب أن يكون عددًا موجبًا بدون فواصل عشرية.",
+ integer_default_value: "قيمة افتراضية غير صالحة لعدد صحيح",
+ precision: "يجب أن تكون الدقة عددًا موجبًا بدون فواصل عشرية.",
+ scale: "يجب أن يكون المقياس عددًا موجبًا بدون فواصل عشرية.",
+ scale_max_value: "يجب أن يكون المقياس ≤ الدقة."
+ },
+ pick_value: "اختر قيمة"
+ },
+ delete: "حذف",
+ index_setting: "إعدادات الفهرس",
+ table_actions: "إجراءات الجدول",
+ actions: "إجراءات",
+ delete_index: "حذف الفهرس",
+ index_name: "اسم الفهرس",
+ create_relationship: "إنشاء علاقة",
+ relationship_error: "لإنشاء علاقة، يجب أن يكون المفتاح الأساسي والمفتاح الخارجي من نفس النوع.",
+ invalid_relationship: {
+ title: "علاقة غير صالحة",
+ description: "نوع مفتاح المصدر لا يتطابق مع نوع المفتاح المشار إليه. تأكد من أن كليهما من نفس نوع البيانات."
+ },
+ circular_dependency: {
+ title: "تم الكشف عن تبعية دائرية",
+ toast_description: "تم العثور على مرجع دائري بين الجداول. تحقق من المخطط على اليسار وقم بإزالة إحدى العلاقات لإصلاح ذلك.",
+ description: "يحتوي المخطط الخاص بك على علاقة مفتاح خارجي دائرية بين الجداول. لإصلاحها،",
+ suggestion: "قم بإزالة إحدى العلاقات أدناه التي تسبب الدورة.",
+ remove_relationship: "إزالة العلاقة"
+ }
+ },
+ table: {
+ double_click: "انقر مرتين للتعديل",
+ overlapping_tables: "جداول متداخلة",
+ show_more: "عرض المزيد",
+ show_less: "عرض أقل"
+ },
+ control_buttons: {
+ redo: "إعادة",
+ undo: "تراجع",
+ zoom_in: "تكبير",
+ zoom_out: "تصغير",
+ adjust_positions: "ضبط المواقع",
+ show_all: "عرض الكل"
+ },
+ menu: {
+ file: "ملف",
+ new: "جديد",
+ open: "فتح",
+ save: "حفظ",
+ import: "استيراد",
+ json: ".json",
+ dbml: ".dbml",
+ mysql: "MySQL",
+ postgresql: "PostgreSQL",
+ export_sql: "تصدير SQL",
+ generic: "عام",
+ export_orm_models: "تصدير نماذج ORM",
+ delete_project: "حذف المشروع",
+ edit: "تعديل",
+ undo: "تراجع",
+ redo: "إعادة",
+ clear: "مسح",
+ view: "عرض",
+ hide_controller: "إخفاء لوحة التحكم",
+ show_controller: "عرض لوحة التحكم",
+ cardinality_style: "نمط القرينة",
+ hidden: "مخفي",
+ numeric: "رقمي",
+ symbolic: "رمزي",
+ theme: "الثيم",
+ light: "فاتح",
+ dark: "داكن",
+ help: "مساعدة",
+ show_docs: "عرض المستندات",
+ join_discord: "انضم إلى Discord"
+ },
+ modals: {
+ close: "إغلاق",
+ create: "إنشاء",
+ pick_database: "اختر قاعدة البيانات الخاصة بك.",
+ create_database_header: "كل قاعدة بيانات تقدم ميزات مختلفة.",
+ db_name: "اسم قاعدة البيانات",
+ db_name_error: "يرجى إدخال اسم قاعدة البيانات",
+ continue: "متابعة",
+ open: "فتح",
+ open_database: "فتح قاعدة بيانات",
+ open_database_header: "افتح قاعدة بيانات عن طريق اختيار واحدة من القائمة.",
+ delete_database: "حذف قاعدة البيانات",
+ delete_database_content: "هذا الإجراء لا يمكن التراجع عنه وسيمسح المخطط نهائيًا.",
+ delete: "حذف",
+ import_database: {
+ title: "استيراد قاعدة البيانات",
+ import: "استيراد",
+ import_options: "هل ترغب في الاستيراد باستخدام:",
+ import_error: "خطأ في تحليل SQL",
+ import_error_description: "تعذر استيراد SQL الخاص بك بسبب وجود صيغة غير صحيحة.",
+ import_warning: "تحذير تحليل SQL",
+ import_warning_description: "بعض العناصر لم يتم معالجتها بسبب تصريحات غير مدعومة أو غير مكتملة."
+ },
+ export_sql: "تصدير SQL",
+ export_sql_header: "تصدير مخطط قاعدة البيانات على شكل كود SQL"
+ },
+ clipboard: {
+ copy: "نسخ",
+ copied: "تم النسخ"
+ },
+ connection_status: {
+ online: "متصل",
+ offline: "غير متصل",
+ saving: "يتم الحفظ...",
+ saved: "تم الحفظ",
+ last_synced: "آخر مزامنة",
+ min_ago: "دقيقة مضت",
+ hour_ago: "ساعة مضت",
+ just_now: "الآن"
+ },
+ import: {
+ instructions: "التعليمات",
+ install: "تثبيت",
+ run_command: "قم بتشغيل الأمر التالي في الطرفية:",
+ example: "مثال",
+ copy_code: "انسخ محتوى ملف .sql إلى محرر الكود أدناه.",
+ pg_admin: {
+ step1: "افتح
Pg Admin.",
+ step2: "انقر بزر الماوس الأيمن على قاعدة البيانات واختر
Backup.",
+ step3: "قم بتسمية ملف
.sql، حدد Format إلى
Plain، واختر
Encoding: UTF8.",
+ step4: "تأكد من تحديد
Only schema وإلغاء تحديد
Only data في
علامة تبويب خيارات البيانات.",
+ step5: "اضغط
Backup لتصدير الملف، ثم انسخ محتواه إلى محرر الكود أدناه."
+ },
+ workbench: {
+ step1: "افتح
MySQL Workbench واتصل بخادم MySQL الخاص بك.",
+ step2: "من القائمة العلوية، اذهب إلى
Server > Data Export.",
+ step3: "في
خيارات التصدير، اختر
Dump Structure Only.",
+ step4: "حدد
Export to Self-Contained File، ثم اختر مكانًا واسمًا لملف
.sql.",
+ step5: "اضغط على
Start Export، ثم انسخ محتوى الملف إلى محرر الكود أدناه."
+ },
+ heidisql: {
+ step1: "
افتح HeidiSQL واتصل بالخادم.",
+ step2: "في
الشريط الجانبي الأيسر، انقر بزر الماوس الأيمن على قاعدة البيانات التي تريد تصديرها.",
+ step3: "اختر
Export database as SQL.",
+ step4: "حدد
No data وتأكد من تحديد
Create لتصدير البنية فقط.",
+ step5: "انقر على
Export، ثم انسخ محتوى ملف
.sql إلى محرر الكود."
+ },
+ dbbrowser: {
+ step1: "شغل
DB Browser for SQLite.",
+ step2: "اذهب إلى
File > Open Database واختر ملف
.sqlite أو
.db.",
+ step3: "من القائمة، اختر
File > Export > Database to SQL file.",
+ step4: "في النافذة، اختر
Export schema only ثم انقر
Save.",
+ step5: "أخيرًا، انسخ محتوى ملف
.sql إلى محرر الكود أدناه."
+ }
}
-};
+ }
+}
export const arLanguage: Language = {
name: 'Arabic',
diff --git a/src/i18/languages/de.ts b/src/i18/languages/de.ts
new file mode 100644
index 0000000..f49d74f
--- /dev/null
+++ b/src/i18/languages/de.ts
@@ -0,0 +1,254 @@
+import { Language } from "../types";
+
+export const de = {
+ translation: {
+ sidebar: {
+ tables: "Tabellen",
+ relationships: "Beziehungen"
+ },
+ color_picker: {
+ default_color: "Standardfarbe"
+ },
+ navbar: {
+ rename_db: "Datenbank umbenennen",
+ search: "Suchen"
+ },
+ db_controller: {
+ filter: "Filter",
+ add_table: "Tabelle hinzufügen",
+ add_field: "Feld hinzufügen",
+ add_index: "Index hinzufügen",
+ delete_table: "Tabelle löschen",
+ duplicate: "Duplizieren",
+ add_relationship: "Beziehung hinzufügen",
+ show_code: "Code anzeigen",
+ fields: "Felder",
+ indexes: "Indizes",
+ note: "Notiz",
+ name: "Name",
+ type: "Typ",
+ nullable: "Nullwert zulässig",
+ select_fields: "Felder auswählen",
+ unique: "Eindeutig",
+ table_note: "Tabellennotiz",
+ collapse: "Alle einklappen",
+ primary_key: "Primärschlüssel",
+ foreign_key: "Fremdschlüssel",
+ source_table: "Quelltabelle",
+ referenced_table: "Referenzierte Tabelle",
+ select_table: "Tabelle auswählen",
+ select_field: "Feld auswählen",
+ empty_list: {
+ no_tables: "Keine Tabellen",
+ no_tables_description: "Erstelle eine Tabelle, um zu beginnen.",
+ no_relationships: "Keine Beziehungen",
+ no_relationships_description: "Erstelle Beziehungen, um zwei Tabellen zu verbinden"
+ },
+ cardinality: {
+ name: "Kardinalität",
+ one_to_one: "Eins zu eins",
+ one_to_many: "Eins zu viele",
+ many_to_one: "Viele zu eins",
+ many_to_many: "Viele zu viele"
+ },
+ foreign_key_actions: {
+ title: "Fremdschlüssel-Aktionen",
+ on_delete: "Beim Löschen",
+ on_update: "Beim Aktualisieren",
+ actions: {
+ no_action: "Keine Aktion",
+ cascade: "Kaskadieren",
+ set_null: "Auf Null setzen",
+ set_default: "Standardwert setzen",
+ restrict: "Einschränken"
+ }
+ },
+ field_settings: {
+ title: "Feld-Einstellungen",
+ unique: "Eindeutig",
+ unsigned: "Ohne Vorzeichen",
+ numeric_setting: "Numerische Einstellung",
+ decimal_setting: "Dezimaleinstellung",
+ zeroFill: "Mit Nullen auffüllen",
+ autoIncrement: "Automatische Erhöhung",
+ note: "Notiz",
+ delete_field: "Feld löschen",
+ field_note: "Feldnotiz",
+ precision: "Genauigkeit",
+ text_setting: "Texteinstellung",
+ charset: "Zeichensatz",
+ collation: "Sortierung",
+ scale: "Skalierung",
+ max_length: "Maximale Länge",
+ integer_width: "Ganzzahlbreite",
+ width: "Breite",
+ default_value: "Standardwert",
+ value: "Wert",
+ length: "Länge",
+ values: "Werte",
+ type_enter: "Tippen und Enter drücken",
+ precision_def: "Zulässige Gesamtanzahl an Ziffern (vor + nach dem Dezimalpunkt).",
+ scale_def: "Ziffern nach dem Dezimalpunkt.",
+ time_default_value: {
+ no_value: "Kein Wert",
+ custom: "Benutzerdefinierte Zeit",
+ now: "Jetzt"
+ },
+ errors: {
+ max_length: "muss eine positive Zahl ohne Dezimalstellen sein.",
+ integer_default_value: "Ungültiger Standardwert für Ganzzahl",
+ precision: "Genauigkeit muss eine positive Zahl ohne Dezimalstellen sein.",
+ scale: "Skalierung muss eine positive Zahl ohne Dezimalstellen sein.",
+ scale_max_value: "Skalierung muss ≤ Genauigkeit sein."
+ },
+ pick_value: "Wert auswählen"
+ },
+ delete: "Löschen",
+ index_setting: "Index-Einstellungen",
+ table_actions: "Tabellenaktionen",
+ actions: "Aktionen",
+ delete_index: "Index löschen",
+ index_name: "Indexname",
+ create_relationship: "Beziehung erstellen",
+ relationship_error: "Um eine Beziehung zu erstellen, müssen Primär- und Fremdschlüssel denselben Typ haben.",
+ invalid_relationship: {
+ title: "Ungültige Beziehung",
+ description: "Der Typ des Quellschlüssels stimmt nicht mit dem des referenzierten Schlüssels überein. Bitte stelle sicher, dass beide den gleichen Datentyp haben."
+ },
+ circular_dependency: {
+ title: "Zirkuläre Abhängigkeit erkannt",
+ toast_description: "Eine zirkuläre Referenz zwischen Tabellen wurde gefunden. Überprüfe das Diagramm links und entferne eine der Beziehungen.",
+ description: "Dein Schema enthält eine zirkuläre Fremdschlüssel-Beziehung zwischen Tabellen. Um dies zu beheben,",
+ suggestion: "entferne eine der unten aufgeführten Beziehungen, die den Kreis verursachen.",
+ remove_relationship: "Beziehung entfernen"
+ }
+ },
+ table: {
+ double_click: "Doppelklick zum Bearbeiten",
+ overlapping_tables: "Überlappende Tabellen",
+ show_more: "Mehr anzeigen",
+ show_less: "Weniger anzeigen"
+ },
+ control_buttons: {
+ redo: "Wiederholen",
+ undo: "Rückgängig",
+ zoom_in: "Vergrößern",
+ zoom_out: "Verkleinern",
+ adjust_positions: "Positionen anpassen",
+ show_all: "Alles anzeigen"
+ },
+ menu: {
+ file: "Datei",
+ new: "Neu",
+ open: "Öffnen",
+ save: "Speichern",
+ import: "Importieren",
+ json: ".json",
+ dbml: ".dbml",
+ mysql: "MySQL",
+ postgresql: "PostgreSQL",
+ export_sql: "SQL exportieren",
+ generic: "Allgemein",
+ export_orm_models: "ORM-Modelle exportieren",
+ delete_project: "Projekt löschen",
+ edit: "Bearbeiten",
+ undo: "Rückgängig",
+ redo: "Wiederholen",
+ clear: "Leeren",
+ view: "Ansicht",
+ hide_controller: "Controller ausblenden",
+ show_controller: "Controller anzeigen",
+ cardinality_style: "Kardinalitätsstil",
+ hidden: "Versteckt",
+ numeric: "Numerisch",
+ symbolic: "Symbolisch",
+ theme: "Design",
+ light: "Hell",
+ dark: "Dunkel",
+ help: "Hilfe",
+ show_docs: "Dokumentation anzeigen",
+ join_discord: "Discord beitreten"
+ },
+ modals: {
+ close: "Schließen",
+ create: "Erstellen",
+ pick_database: "Wähle deine Datenbank.",
+ create_database_header: "Jede Datenbank bietet unterschiedliche Funktionen.",
+ db_name: "Datenbankname",
+ db_name_error: "Bitte gib einen Datenbanknamen ein",
+ continue: "Weiter",
+ open: "Öffnen",
+ open_database: "Datenbank öffnen",
+ open_database_header: "Wähle eine Datenbank aus der Liste aus.",
+ delete_database: "Datenbank löschen",
+ delete_database_content: "Diese Aktion ist unwiderruflich und wird das Diagramm dauerhaft löschen.",
+ delete: "Löschen",
+ import_database: {
+ title: "Datenbank importieren",
+ import: "Importieren",
+ import_options: "Möchtest du importieren mit:",
+ import_error: "SQL-Parsing-Fehler",
+ import_error_description: "Wir konnten dein SQL nicht importieren, da es ungültige Syntax enthält.",
+ import_warning: "SQL-Parsing-Warnung",
+ import_warning_description: "Einige Elemente konnten aufgrund nicht unterstützter oder unvollständiger Deklarationen nicht verarbeitet werden."
+ },
+ export_sql: "SQL exportieren",
+ export_sql_header: "Exportiere dein Datenbankdiagramm als SQL-Code"
+ },
+ clipboard: {
+ copy: "Kopieren",
+ copied: "Kopiert"
+ },
+ connection_status: {
+ online: "Online",
+ offline: "Offline",
+ saving: "Speichern...",
+ saved: "Gespeichert",
+ last_synced: "Zuletzt synchronisiert",
+ min_ago: "Min. zuvor",
+ hour_ago: "Std. zuvor",
+ just_now: "Gerade eben"
+ },
+ import: {
+ instructions: "Anleitung",
+ install: "Installieren",
+ run_command: "Führe den folgenden Befehl im Terminal aus.",
+ example: "Beispiel",
+ copy_code: "Kopiere den Inhalt der .sql-Datei in den Code-Editor unten.",
+ pg_admin: {
+ step1: "Öffne
Pg Admin.",
+ step2: "Rechtsklicke auf deine Datenbank und wähle
Backup.",
+ step3: "Benenne deine
.sql-Datei, stelle Format auf
Plain und wähle
Encoding: UTF8.",
+ step4: "Stelle sicher, dass
Only schema aktiviert und
Only data deaktiviert ist.",
+ step5: "Klicke auf
Backup, um die Datei zu exportieren, und kopiere dann den Inhalt in den untenstehenden Editor."
+ },
+ workbench: {
+ step1: "Öffne
MySQL Workbench und stelle eine Verbindung zu deinem Server her.",
+ step2: "Gehe im oberen Menü zu
Server > Data Export.",
+ step3: "Wähle unter
Export Options Dump Structure Only.",
+ step4: "Aktiviere
Export to Self-Contained File, wähle einen Speicherort und Dateinamen.",
+ step5: "Klicke auf
Start Export und kopiere den Inhalt in den Code-Editor unten."
+ },
+ heidisql: {
+ step1: "Öffne
HeidiSQL und verbinde dich mit deinem Server.",
+ step2: "Klicke in der
linken Seitenleiste mit der rechten Maustaste auf die Datenbank.",
+ step3: "Wähle
Export database as SQL.",
+ step4: "Wähle
No data und stelle sicher, dass
Create aktiviert ist.",
+ step5: "Klicke auf
Export und kopiere den Inhalt der
.sql-Datei in den Editor."
+ },
+ dbbrowser: {
+ step1: "Starte
DB Browser for SQLite.",
+ step2: "Gehe zu
File > Open Database und wähle deine
.sqlite- oder
.db-Datei.",
+ step3: "Gehe zu
File > Export > Database to SQL file.",
+ step4: "Wähle im Dialog
Export schema only und klicke auf
Save.",
+ step5: "Kopiere abschließend den Inhalt der
.sql-Datei in den Editor."
+ }
+ }
+ }
+}
+
+export const deLanguage: Language = {
+ name: "German",
+ nativeName: "Deutsch",
+ code: "de",
+};
diff --git a/src/i18/languages/en.ts b/src/i18/languages/en.ts
index 2406ee2..1cc70e0 100644
--- a/src/i18/languages/en.ts
+++ b/src/i18/languages/en.ts
@@ -14,6 +14,7 @@ export const en = {
},
navbar: {
rename_db: "Rename database",
+ search : "Search"
},
db_controller: {
filter: "Filter",
diff --git a/src/i18/languages/es.ts b/src/i18/languages/es.ts
new file mode 100644
index 0000000..51c0783
--- /dev/null
+++ b/src/i18/languages/es.ts
@@ -0,0 +1,277 @@
+import { Language } from "../types";
+
+export const es = {
+
+ translation: {
+ sidebar: {
+ tables: "Tablas",
+ relationships: "Relaciones"
+ },
+
+ color_picker: {
+ default_color: "Color predeterminado"
+ },
+ navbar: {
+ rename_db: "Renombrar base de datos",
+ search : "Buscar"
+ },
+ db_controller: {
+ filter: "Filtrar",
+ add_table: "Agregar tabla",
+ add_field: "Agregar campo",
+ add_index: "Agregar índice",
+ delete_table: "Eliminar tabla",
+ duplicate: "Duplicar",
+ add_relationship: "Agregar relación",
+ show_code: "Mostrar código",
+ fields: "Campos",
+ indexes: "Índices",
+ note: "Nota",
+ name: "Nombre",
+ type: "Tipo",
+ nullable: "Permite nulo",
+ select_fields: "Seleccionar campos",
+ unique: "Único",
+ table_note: "Nota de la tabla",
+ collapse: "Colapsar todo",
+ primary_key: "Clave primaria",
+ foreign_key: "Clave foránea",
+
+ source_table: "Tabla de origen",
+ referenced_table: "Tabla referenciada",
+
+ select_table: "Seleccionar tabla",
+ select_field: "Seleccionar campo",
+
+ empty_list : {
+ no_tables : "Sin tablas" ,
+ no_tables_description : "Crea una tabla para comenzar." ,
+
+ no_relationships : "Sin relaciones" ,
+ no_relationships_description : "Crea relaciones para conectar dos tablas"
+ } ,
+
+ cardinality: {
+ name: "Cardinalidad",
+ one_to_one: "Uno a uno",
+ one_to_many: "Uno a muchos",
+ many_to_one: "Muchos a uno",
+ many_to_many: "Muchos a muchos",
+
+ },
+ foreign_key_actions : {
+ title : "Acciones de clave foránea" ,
+ on_delete : "Al eliminar" ,
+ on_update : "Al actualizar" ,
+ actions : {
+ no_action : "Sin acción" ,
+ cascade : "Cascada" ,
+ set_null : "Establecer nulo" ,
+ set_default : "Establecer valor predeterminado" ,
+ restrict : "Restringir"
+ }
+ } ,
+ field_settings: {
+ title: "Configuración de campo",
+ unique: "Único",
+ unsigned: "Sin signo",
+ numeric_setting: "Configuración numérica",
+ decimal_setting: "Configuración decimal",
+ zeroFill: "Relleno con ceros",
+ autoIncrement: "Autoincremento",
+ note: "Nota",
+
+ delete_field: "Eliminar campo",
+ field_note: "Nota del campo",
+ precision: "Precisión",
+ text_setting: "Configuración de texto",
+ charset: "Charset",
+ collation: "Intercalación",
+ scale: "Escala",
+ max_length: "Longitud máxima",
+ integer_width: "Ancho de entero",
+ width: "Ancho",
+ default_value: "Valor predeterminado",
+ value: "Valor",
+ length: "Longitud",
+ values: "Valores",
+ type_enter: "Escribe y presiona enter",
+ precision_def: "Total de dígitos permitidos (antes + después del decimal).",
+ scale_def: "Dígitos permitidos después del decimal.",
+ time_default_value: {
+ no_value: "Sin valor",
+ custom: "Hora personalizada",
+ now: "Ahora"
+ },
+ errors: {
+ max_length: "debe ser un número positivo, sin decimales.",
+ integer_default_value: "Valor predeterminado inválido para entero",
+ precision: "La precisión debe ser un número positivo, sin decimales.",
+ scale: "La escala debe ser un número positivo, sin decimales.",
+ scale_max_value: "La escala debe ser ≤ precisión."
+
+ },
+ pick_value: "Seleccionar valor"
+ },
+ delete: "Eliminar",
+
+ index_setting: "Configuración del índice",
+ table_actions: "Acciones de la tabla",
+ actions: "Acciones",
+ delete_index: "Eliminar índice",
+ index_name: "Nombre del índice",
+ create_relationship: "Crear relación",
+ relationship_error: "Para crear una relación, la clave primaria y la clave foránea deben ser del mismo tipo.",
+
+ invalid_relationship: {
+ title: "Relación inválida",
+ description: "El tipo de clave de origen no coincide con el tipo de clave referenciada. Asegúrese de que ambas claves tengan el mismo tipo de datos."
+ },
+ circular_dependency: {
+ title: "Dependencia circular detectada",
+ toast_description: "Se encontró una referencia circular entre tablas. Revisa el diagrama a la izquierda y elimina una de las relaciones para corregirlo.",
+ description: "Tu esquema contiene una relación foránea circular entre tablas. Para corregirlo",
+ suggestion: "elimina una de las relaciones que se indican a continuación y que están causando el ciclo.",
+ remove_relationship: "Eliminar relación"
+ }
+ },
+ table: {
+ double_click: "Doble clic para editar",
+ overlapping_tables: "Tablas superpuestas",
+ show_more: "Mostrar más",
+ show_less: "Mostrar menos"
+ },
+ control_buttons: {
+ redo: "Rehacer",
+ undo: "Deshacer",
+ zoom_in: "Acercar",
+ zoom_out: "Alejar",
+ adjust_positions: "Ajustar posiciones",
+ show_all: "Mostrar todo"
+ },
+ menu: {
+ file: "Archivo",
+ new: "Nuevo",
+ open: "Abrir",
+ save: "Guardar",
+ import: "Importar",
+ json: ".json",
+ dbml: ".dbml",
+ mysql: "MySql",
+ postgresql: "Postgresql",
+ export_sql: "Exportar SQL",
+ generic: "Genérico",
+ export_orm_models: "Exportar modelos ORM",
+ delete_project: "Eliminar proyecto",
+ edit: "Editar",
+ undo: "Deshacer",
+ redo: "Rehacer",
+ clear: "Limpiar",
+ view: "Vista",
+ hide_controller: "Ocultar controlador",
+ show_controller : "Mostrar controlador" ,
+ cardinality_style: "Estilo de cardinalidad",
+ hidden: "Oculto",
+ numeric: "Numérico",
+ symbolic : "Simbólico" ,
+ theme: "Tema",
+ light: "Claro",
+ dark: "Oscuro",
+ help: "Ayuda",
+ show_docs: "Mostrar documentación",
+ join_discord: "Unirse a Discord",
+
+
+ },
+
+ modals: {
+ close: "Cerrar",
+ create: "Crear",
+ pick_database: "Selecciona tu base de datos.",
+ create_database_header: "Cada base de datos ofrece características y funcionalidades distintas.",
+ db_name: "Nombre de la base de datos",
+ db_name_error: "Por favor, proporciona un nombre para la base de datos",
+ continue: "Continuar",
+ open: "Abrir",
+ open_database: "Abrir base de datos",
+ open_database_header: "Abre una base de datos seleccionando una de la lista.",
+ delete_database: "Eliminar base de datos",
+ delete_database_content: "Esta acción es irreversible y eliminará permanentemente el diagrama.",
+ delete: "Eliminar",
+
+ import_database: {
+ title: "Importar tu base de datos",
+ import: "Importar",
+ import_options: "¿Te gustaría importar usando :" ,
+ import_error : "Error al analizar SQL" ,
+ import_error_description : "No pudimos importar tu SQL porque contiene sintaxis inválida." ,
+ import_warning : "Advertencia al analizar SQL" ,
+ import_warning_description : "Algunos elementos no pudieron ser procesados debido a declaraciones no compatibles o incompletas." ,
+ } ,
+ export_sql : "Exportar SQL" ,
+ export_sql_header : "Exporta tu diagrama de base de datos en código SQL"
+ },
+ clipboard: {
+ copy: "Copiar",
+ copied: "Copiado"
+ },
+
+ connection_status : {
+ online: "En línea" ,
+ offline : "Sin conexión" ,
+ saving : "Guardando" ,
+ saved : "Guardado" ,
+ last_synced : "Última sincronización" ,
+ min_ago : "min atrás" ,
+ hour_ago : "hace una hora" ,
+ just_now : "Justo ahora"
+ },
+ import: {
+ instructions: "Instrucciones",
+ install: "Instalar",
+ run_command: "Ejecuta el siguiente comando en tu terminal.",
+ example: "Ejemplo",
+ copy_code: "Copia el contenido del archivo .sql en la sección de código a continuación.",
+ pg_admin: {
+ "step1": "Abre
Pg Admin.",
+ "step2": "Haz clic derecho en tu base de datos y selecciona
Backup del menú contextual.",
+ "step3": "Nombra tu archivo
.sql, establece el formato en
Plain y elige
Encoding: UTF8.",
+ "step4": "Asegúrate de que
Only schema esté marcado y
Only data desmarcado en la pestaña
Data Options.",
+ "step5": "Haz clic en
Backup para exportar el archivo, luego copia su contenido en el editor de código a continuación."
+ },
+ workbench: {
+ "step1": "Abre
MySQL Workbench y
conéctate a tu servidor MySQL.",
+ "step2": "En el menú superior, ve a
Server > Data Export.",
+ "step3": "En las
Opciones de exportación, elige
Dump Structure Only.",
+ "step4": "Marca
Export to Self-Contained File, luego elige una ubicación y un nombre para el archivo
.sql.",
+ "step5": "Haz clic en
Start Export para iniciar el proceso. Luego copia su contenido en el editor de código."
+
+ },
+ heidisql: {
+ "step1": "
Abre HeidiSQL y conéctate a tu servidor.",
+ "step2": "En la
barra lateral izquierda, haz clic derecho sobre la base de datos que quieres exportar.",
+ "step3": "Selecciona
Exportar base de datos como SQL del menú contextual.",
+ "step4": "Selecciona
Sin datos y asegúrate de que
Crear esté marcado para exportar solo la estructura.",
+ "step5": "Haz clic en el botón
Exportar y finalmente copia el contenido del archivo
.sql en el
editor de código a continuación."
+
+ },
+ dbbrowser: {
+ step1: "Inicia
DB Browser for SQLite.",
+ step2: "Haz clic en
Archivo > Abrir base de datos y selecciona tu archivo
.sqlite o
.db.",
+ step3: "Ve a
Archivo > Exportar > Base de datos a archivo SQL desde el menú superior.",
+ step4: "En el diálogo, elige
Exportar solo esquema y haz clic en
Guardar.",
+ step5: "Finalmente, copia el contenido del archivo
.sql en el
editor de código a continuación."
+
+ },
+
+ }
+
+ }
+
+}
+
+export const esLanguage: Language = {
+ name: "Spanish",
+ nativeName: "Español",
+ code: "es",
+};
diff --git a/src/i18/languages/fr.ts b/src/i18/languages/fr.ts
index 79f7aaf..29178cf 100644
--- a/src/i18/languages/fr.ts
+++ b/src/i18/languages/fr.ts
@@ -7,74 +7,136 @@ export const fr = {
tables: "Tables",
relationships: "Relations"
},
- modal: {
- close: "Fermer",
- create: "Créer"
- },
color_picker: {
default_color: "Couleur par défaut"
},
+ navbar: {
+ rename_db: "Renommer la base de données",
+ search: "Rechercher"
+ },
db_controller: {
filter: "Filtrer",
- add_table: "Ajouter une Table",
- add_field: "Ajouter un Champ",
- add_index: "Ajouter un Index",
- add_relationship: "Ajouter une Relation",
+ add_table: "Ajouter une table",
+ add_field: "Ajouter un champ",
+ add_index: "Ajouter un index",
+ delete_table: "Supprimer la table",
+ duplicate: "Dupliquer",
+ add_relationship: "Ajouter une relation",
show_code: "Afficher le code",
fields: "Champs",
- indexes: "Indexes",
+ indexes: "Index",
note: "Note",
name: "Nom",
type: "Type",
nullable: "Nullable",
select_fields: "Sélectionner les champs",
unique: "Unique",
- table_note: "Note de la Table",
+ table_note: "Note de la table",
collapse: "Tout réduire",
-
primary_key: "Clé primaire",
foreign_key: "Clé étrangère",
-
source_table: "Table source",
- target_table: "Table cible",
-
- select_table: "Sélectionner la table",
- select_field: "Sélectionner le champ",
-
+ referenced_table: "Table référencée",
+ select_table: "Sélectionner une table",
+ select_field: "Sélectionner un champ",
+ empty_list: {
+ no_tables: "Aucune table",
+ no_tables_description: "Créez une table pour commencer.",
+ no_relationships: "Aucune relation",
+ no_relationships_description: "Créez des relations pour connecter deux tables"
+ },
cardinality: {
name: "Cardinalité",
- one_to_one: "Un à Un",
- one_to_many: "Un à Plusieurs",
- many_to_one: "Plusieurs à Un",
- many_to_many: "Plusieurs à Plusieurs"
+ one_to_one: "Un à un",
+ one_to_many: "Un à plusieurs",
+ many_to_one: "Plusieurs à un",
+ many_to_many: "Plusieurs à plusieurs"
+ },
+ foreign_key_actions: {
+ title: "Actions de clé étrangère",
+ on_delete: "Lors de la suppression",
+ on_update: "Lors de la mise à jour",
+ actions: {
+ no_action: "Aucune action",
+ cascade: "Cascade",
+ set_null: "Définir à null",
+ set_default: "Définir par défaut",
+ restrict: "Restreindre"
+ }
+ },
+ field_settings: {
+ title: "Paramètres du champ",
+ unique: "Unique",
+ unsigned: "Non signé",
+ numeric_setting: "Paramètres numériques",
+ decimal_setting: "Paramètres décimaux",
+ zeroFill: "Complément zéro",
+ autoIncrement: "Auto-incrémentation",
+ note: "Note",
+ delete_field: "Supprimer le champ",
+ field_note: "Note du champ",
+ precision: "Précision",
+ text_setting: "Paramètres de texte",
+ charset: "Jeu de caractères",
+ collation: "Collation",
+ scale: "Échelle",
+ max_length: "Longueur max",
+ integer_width: "Largeur entière",
+ width: "Largeur",
+ default_value: "Valeur par défaut",
+ value: "Valeur",
+ length: "Longueur",
+ values: "Valeurs",
+ type_enter: "Tapez et appuyez sur Entrée",
+ precision_def: "Nombre total de chiffres autorisés (avant + après la virgule).",
+ scale_def: "Nombre de chiffres autorisés après la virgule.",
+ time_default_value: {
+ no_value: "Aucune valeur",
+ custom: "Heure personnalisée",
+ now: "Maintenant"
+ },
+ errors: {
+ max_length: "doit être un nombre positif sans décimales.",
+ integer_default_value: "Valeur par défaut invalide pour un entier",
+ precision: "La précision doit être un nombre positif sans décimales.",
+ scale: "L'échelle doit être un nombre positif sans décimales.",
+ scale_max_value: "L'échelle doit être ≤ à la précision."
+ },
+ pick_value: "Choisir une valeur"
},
delete: "Supprimer",
- field_setting: "Paramètres du champ",
- table_actions: "Actions sur le champ",
+ index_setting: "Paramètres de l'index",
+ table_actions: "Actions de table",
actions: "Actions",
-
- field_note: "Note sur le champ",
- delete_field: "Supprimer le champ",
-
- create_relationship: "Créer une Relation",
- relationship_error: "Pour créer une relation, la primary key et la foreign key doivent être du même type.",
-
+ delete_index: "Supprimer l'index",
+ index_name: "Nom de l'index",
+ create_relationship: "Créer une relation",
+ relationship_error: "Pour créer une relation, la clé primaire et la clé étrangère doivent être du même type.",
invalid_relationship: {
title: "Relation invalide",
- description: "Le type de la source key ne correspond pas au type de la referenced key. Veuillez vous assurer que les deux clés ont le même type de données."
+ description: "Le type de la clé source ne correspond pas à celui de la clé référencée. Assurez-vous qu'elles aient le même type de données."
+ },
+ circular_dependency: {
+ title: "Dépendance circulaire détectée",
+ toast_description: "Une référence circulaire entre les tables a été détectée. Vérifiez le diagramme à gauche et supprimez une des relations pour corriger cela.",
+ description: "Votre schéma contient une relation de clé étrangère circulaire entre les tables. Pour corriger cela,",
+ suggestion: "supprimez l’une des relations ci-dessous qui provoque le cycle.",
+ remove_relationship: "Supprimer la relation"
}
},
table: {
- double_click: "Double-cliquez pour éditer",
+ double_click: "Double-cliquez pour modifier",
overlapping_tables: "Tables qui se chevauchent",
+ show_more: "Afficher plus",
+ show_less: "Afficher moins"
},
control_buttons: {
- redo: "Refaire",
+ redo: "Rétablir",
undo: "Annuler",
zoom_in: "Zoom avant",
zoom_out: "Zoom arrière",
adjust_positions: "Ajuster les positions",
- show_all: "Tout afficher"
+ show_all: "Afficher tout"
},
menu: {
file: "Fichier",
@@ -84,21 +146,23 @@ export const fr = {
import: "Importer",
json: ".json",
dbml: ".dbml",
- mysql: "MySql",
- postgresql: "Postgresql",
- export_sql: "Exporter SQL",
+ mysql: "MySQL",
+ postgresql: "PostgreSQL",
+ export_sql: "Exporter en SQL",
generic: "Générique",
- export_orm_models: "Exporter les ORM Models",
+ export_orm_models: "Exporter les modèles ORM",
delete_project: "Supprimer le projet",
edit: "Éditer",
undo: "Annuler",
- redo: "Refaire",
+ redo: "Rétablir",
clear: "Effacer",
- view: "Affichage",
+ view: "Vue",
hide_controller: "Masquer le contrôleur",
- zoom_on_scroll: "Zoom au défilement",
- on: "Activé",
- off: "Désactivé",
+ show_controller: "Afficher le contrôleur",
+ cardinality_style: "Style de cardinalité",
+ hidden: "Caché",
+ numeric: "Numérique",
+ symbolic: "Symbolique",
theme: "Thème",
light: "Clair",
dark: "Sombre",
@@ -106,30 +170,83 @@ export const fr = {
show_docs: "Afficher la documentation",
join_discord: "Rejoindre Discord"
},
-
+ modals: {
+ close: "Fermer",
+ create: "Créer",
+ pick_database: "Choisissez votre base de données.",
+ create_database_header: "Chaque base de données offre des fonctionnalités différentes.",
+ db_name: "Nom de la base de données",
+ db_name_error: "Veuillez saisir un nom de base de données",
+ continue: "Continuer",
+ open: "Ouvrir",
+ open_database: "Ouvrir une base de données",
+ open_database_header: "Ouvrez une base de données en sélectionnant une dans la liste.",
+ delete_database: "Supprimer la base de données",
+ delete_database_content: "Cette action est irréversible et supprimera définitivement le diagramme.",
+ delete: "Supprimer",
+ import_database: {
+ title: "Importer votre base de données",
+ import: "Importer",
+ import_options: "Souhaitez-vous importer en utilisant :",
+ import_error: "Erreur d’analyse SQL",
+ import_error_description: "Nous n'avons pas pu importer votre SQL car il contient une syntaxe invalide.",
+ import_warning: "Avertissement d’analyse SQL",
+ import_warning_description: "Certains éléments n'ont pas pu être traités à cause de déclarations non prises en charge ou incomplètes."
+ },
+ export_sql: "Exporter en SQL",
+ export_sql_header: "Exporter votre diagramme de base de données en code SQL"
+ },
+ clipboard: {
+ copy: "Copier",
+ copied: "Copié"
+ },
+ connection_status: {
+ online: "En ligne",
+ offline: "Hors ligne",
+ saving: "Enregistrement...",
+ saved: "Enregistré",
+ last_synced: "Dernière synchronisation",
+ min_ago: "min auparavant",
+ hour_ago: "heure auparavant",
+ just_now: "À l’instant"
+ },
import: {
instructions: "Instructions",
install: "Installer",
run_command: "Exécutez la commande suivante dans votre terminal.",
example: "Exemple",
- copy_code: "Copiez le contenu du fichier .sql dans la section de code ci-dessous.",
+ copy_code: "Copiez le contenu du fichier .sql dans la section code ci-dessous.",
pg_admin: {
step1: "Ouvrez
Pg Admin.",
- step2: "Faites un clic droit sur votre base de données et sélectionnez
Sauvegarder dans le menu contextuel.",
- step3: "Nommez votre fichier
.sql, définissez le format sur
Plain et choisissez
Encodage : UTF8.",
- step4: "Assurez-vous que
Only schema est coché et que
Only data ne l'est pas dans l'onglet
Data Options.",
- step5: "Cliquez sur
Sauvegarder pour exporter le fichier, puis copiez son contenu dans la section de l'éditeur de code ci-dessous."
+ step2: "Faites un clic droit sur votre base de données et sélectionnez
Sauvegarder.",
+ step3: "Nommez votre fichier
.sql, définissez le format sur
Simple, et choisissez
Encodage : UTF8.",
+ step4: "Assurez-vous que
Schéma uniquement est coché et que
Données uniquement ne l'est pas dans l’
onglet Options de données.",
+ step5: "Cliquez sur
Sauvegarder pour exporter le fichier, puis copiez son contenu dans l’éditeur de code ci-dessous."
},
workbench: {
step1: "Ouvrez
MySQL Workbench et
connectez-vous à votre serveur MySQL.",
- step2: "Dans le menu du haut, allez dans
Server > Data Export.",
- step3: "Dans les
Options d'exportation, choisissez
Dump Structure Only.",
- step4: "Cochez
Export to Self-Contained File, puis choisissez un emplacement et donnez un nom au fichier
.sql de sortie.",
- step5: "Cliquez sur
Démarrer l'exportation pour lancer le processus. Ensuite, copiez son contenu dans la section de l'éditeur de code ci-dessous."
+ step2: "Dans le menu principal, allez à
Serveur > Exportation de données.",
+ step3: "Dans les
Options d’exportation, choisissez
Exporter la structure uniquement.",
+ step4: "Cochez
Exporter dans un fichier autonome, puis choisissez un emplacement et entrez un nom pour le fichier
.sql.",
+ step5: "Cliquez sur
Commencer l’exportation. Ensuite, copiez son contenu dans l’éditeur de code ci-dessous."
+ },
+ heidisql: {
+ step1: "
Ouvrez HeidiSQL et connectez-vous à votre serveur.",
+ step2: "Dans la
barre latérale gauche, faites un clic droit sur la base de données à exporter.",
+ step3: "Choisissez
Exporter la base de données en SQL.",
+ step4: "Sélectionnez
Pas de données et assurez-vous que
Créer est coché pour exporter uniquement la structure.",
+ step5: "Cliquez sur le bouton
Exporter, puis copiez le contenu du fichier
.sql dans l’éditeur de code ci-dessous."
+ },
+ dbbrowser: {
+ step1: "Lancez
DB Browser for SQLite.",
+ step2: "Cliquez sur
Fichier > Ouvrir une base de données et sélectionnez votre fichier
.sqlite ou
.db.",
+ step3: "Allez à
Fichier > Exporter > Base de données vers fichier SQL.",
+ step4: "Dans la fenêtre, sélectionnez
Exporter uniquement le schéma et cliquez sur
Enregistrer.",
+ step5: "Enfin, copiez le contenu du fichier
.sql dans l’éditeur de code ci-dessous."
}
}
}
-};
+}
export const frLanguage: Language = {
name: "French",
diff --git a/src/i18/languages/hi.ts b/src/i18/languages/hi.ts
new file mode 100644
index 0000000..21defbb
--- /dev/null
+++ b/src/i18/languages/hi.ts
@@ -0,0 +1,266 @@
+import { Language } from "../types";
+
+export const hi = {
+ translation: {
+ sidebar: {
+ tables: "तालिकाएँ",
+ relationships: "रिलेशनशिप्स"
+ },
+
+ color_picker: {
+ default_color: "डिफ़ॉल्ट रंग"
+ },
+ navbar: {
+ rename_db: "डेटाबेस का नाम बदलें",
+ search: "खोजें"
+ },
+ db_controller: {
+ filter: "फ़िल्टर",
+ add_table: "तालिका जोड़ें",
+ add_field: "फ़ील्ड जोड़ें",
+ add_index: "इंडेक्स जोड़ें",
+ delete_table: "तालिका हटाएँ",
+ duplicate: "कॉपी करें",
+ add_relationship: "रिलेशनशिप जोड़ें",
+ show_code: "कोड दिखाएं",
+ fields: "फ़ील्ड्स",
+ indexes: "इंडेक्सेस",
+ note: "नोट",
+ name: "नाम",
+ type: "प्रकार",
+ nullable: "नल योग्य",
+ select_fields: "फ़ील्ड चुनें",
+ unique: "अद्वितीय",
+ table_note: "तालिका नोट",
+ collapse: "सभी को संक्षिप्त करें",
+ primary_key: "प्राथमिक कुंजी",
+ foreign_key: "विदेशी कुंजी",
+
+ source_table: "स्रोत तालिका",
+ referenced_table: "संदर्भित तालिका",
+
+ select_table: "तालिका चुनें",
+ select_field: "फ़ील्ड चुनें",
+
+ empty_list: {
+ no_tables: "कोई तालिकाएँ नहीं",
+ no_tables_description: "शुरू करने के लिए एक तालिका बनाएं।",
+
+ no_relationships: "कोई रिलेशनशिप्स नहीं",
+ no_relationships_description: "दो तालिकाओं को जोड़ने के लिए रिलेशनशिप बनाएं"
+ },
+
+ cardinality: {
+ name: "कार्डिनैलिटी",
+ one_to_one: "एक से एक",
+ one_to_many: "एक से अनेक",
+ many_to_one: "अनेक से एक",
+ many_to_many: "अनेक से अनेक"
+ },
+ foreign_key_actions: {
+ title: "विदेशी कुंजी क्रियाएँ",
+ on_delete: "हटाने पर",
+ on_update: "अपडेट पर",
+ actions: {
+ no_action: "कोई क्रिया नहीं",
+ cascade: "कैस्केड",
+ set_null: "नल सेट करें",
+ set_default: "डिफ़ॉल्ट सेट करें",
+ restrict: "प्रतिबंधित करें"
+ }
+ },
+ field_settings: {
+ title: "फ़ील्ड सेटिंग",
+ unique: "अद्वितीय",
+ unsigned: "असाइन किए बिना",
+ numeric_setting: "संख्यात्मक सेटिंग",
+ decimal_setting: "दशमलव सेटिंग",
+ zeroFill: "शून्य भरें",
+ autoIncrement: "स्वतः वृद्धि",
+ note: "नोट",
+
+ delete_field: "फ़ील्ड हटाएं",
+ field_note: "फ़ील्ड नोट",
+ precision: "सटीकता",
+ text_setting: "टेक्स्ट सेटिंग",
+ charset: "अक्षरसेट",
+ collation: "कोलेशन",
+ scale: "स्केल",
+ max_length: "अधिकतम लंबाई",
+ integer_width: "पूर्णांक चौड़ाई",
+ width: "चौड़ाई",
+ default_value: "डिफ़ॉल्ट मान",
+ value: "मान",
+ length: "लंबाई",
+ values: "मान",
+ type_enter: "टाइप करें और एंटर दबाएं",
+ precision_def: "कुल अनुमत अंक (दशमलव से पहले और बाद)।",
+ scale_def: "दशमलव के बाद अनुमत अंक।",
+ time_default_value: {
+ no_value: "कोई मान नहीं",
+ custom: "कस्टम समय",
+ now: "अभी"
+ },
+ errors: {
+ max_length: "सकारात्मक संख्या होनी चाहिए, दशमलव नहीं।",
+ integer_default_value: "पूर्णांक के लिए अमान्य डिफ़ॉल्ट मान",
+ precision: "सटीकता सकारात्मक संख्या होनी चाहिए, दशमलव नहीं।",
+ scale: "स्केल सकारात्मक संख्या होनी चाहिए, दशमलव नहीं।",
+ scale_max_value: "स्केल ≤ सटीकता होनी चाहिए।"
+ },
+ pick_value: "मान चुनें"
+ },
+ delete: "हटाएँ",
+
+ index_setting: "इंडेक्स सेटिंग",
+ table_actions: "तालिका क्रियाएँ",
+ actions: "क्रियाएँ",
+ delete_index: "इंडेक्स हटाएं",
+ index_name: "इंडेक्स नाम",
+ create_relationship: "रिलेशनशिप बनाएं",
+ relationship_error: "रिलेशनशिप बनाने के लिए, प्राथमिक कुंजी और विदेशी कुंजी समान प्रकार की होनी चाहिए।",
+
+ invalid_relationship: {
+ title: "अमान्य रिलेशनशिप",
+ description: "स्रोत कुंजी प्रकार संदर्भित कुंजी प्रकार से मेल नहीं खाता। कृपया सुनिश्चित करें कि दोनों कुंजी एक ही डेटा प्रकार की हों।"
+ },
+ circular_dependency: {
+ title: "परिपत्र निर्भरता मिली",
+ toast_description: "तालिकाओं के बीच परिपत्र संदर्भ पाया गया। बाईं ओर के आरेख की जाँच करें और एक रिलेशनशिप हटाएं।",
+ description: "आपकी स्कीमा में तालिकाओं के बीच एक परिपत्र विदेशी कुंजी संबंध है। इसे ठीक करने के लिए",
+ suggestion: "नीचे दी गई चक्र उत्पन्न करने वाली रिलेशनशिप में से एक को हटाएं।",
+ remove_relationship: "रिलेशनशिप हटाएं"
+ }
+ },
+ table: {
+ double_click: "संपादन के लिए डबल क्लिक करें",
+ overlapping_tables: "ओवरलैपिंग तालिकाएँ",
+ show_more: "और दिखाएं",
+ show_less: "कम दिखाएं"
+ },
+ control_buttons: {
+ redo: "फिर से करें",
+ undo: "पूर्ववत करें",
+ zoom_in: "ज़ूम इन",
+ zoom_out: "ज़ूम आउट",
+ adjust_positions: "स्थिति समायोजित करें",
+ show_all: "सभी दिखाएं"
+ },
+ menu: {
+ file: "फ़ाइल",
+ new: "नया",
+ open: "खोलें",
+ save: "सहेजें",
+ import: "आयात करें",
+ json: ".json",
+ dbml: ".dbml",
+ mysql: "MySQL",
+ postgresql: "PostgreSQL",
+ export_sql: "SQL निर्यात करें",
+ generic: "सामान्य",
+ export_orm_models: "ORM मॉडल निर्यात करें",
+ delete_project: "परियोजना हटाएं",
+ edit: "संपादित करें",
+ undo: "पूर्ववत करें",
+ redo: "फिर से करें",
+ clear: "साफ करें",
+ view: "दृश्य",
+ hide_controller: "कंट्रोलर छिपाएं",
+ show_controller: "कंट्रोलर दिखाएं",
+ cardinality_style: "कार्डिनैलिटी शैली",
+ hidden: "छिपा हुआ",
+ numeric: "संख्यात्मक",
+ symbolic: "प्रतीकात्मक",
+ theme: "थीम",
+ light: "हल्का",
+ dark: "गहरा",
+ help: "मदद",
+ show_docs: "दस्तावेज़ दिखाएं",
+ join_discord: "डिस्कॉर्ड से जुड़ें"
+ },
+
+ modals: {
+ close: "बंद करें",
+ create: "बनाएं",
+ pick_database: "अपना डेटाबेस चुनें।",
+ create_database_header: "हर डेटाबेस विशिष्ट विशेषताएं और कार्यक्षमता प्रदान करता है।",
+ db_name: "डेटाबेस का नाम",
+ db_name_error: "कृपया डेटाबेस का नाम प्रदान करें",
+ continue: "जारी रखें",
+ open: "खोलें",
+ open_database: "डेटाबेस खोलें",
+ open_database_header: "सूची में से एक डेटाबेस चुनकर खोलें।",
+ delete_database: "डेटाबेस हटाएं",
+ delete_database_content: "यह क्रिया अपरिवर्तनीय है और आरेख को स्थायी रूप से हटा देगी।",
+ delete: "हटाएँ",
+
+ import_database: {
+ title: "अपना डेटाबेस आयात करें",
+ import: "आयात करें",
+ import_options: "क्या आप निम्न के माध्यम से आयात करना चाहेंगे:",
+ import_error: "SQL पार्सिंग त्रुटि",
+ import_error_description: "हम आपका SQL आयात नहीं कर सके क्योंकि इसमें अमान्य सिंटैक्स है।",
+ import_warning: "SQL पार्सिंग चेतावनी",
+ import_warning_description: "कुछ तत्वों को समर्थन न होने या अधूरे घोषणाओं के कारण संसाधित नहीं किया जा सका।"
+ },
+ export_sql: "SQL निर्यात करें",
+ export_sql_header: "अपने डेटाबेस आरेख को SQL कोड में निर्यात करें"
+ },
+ clipboard: {
+ copy: "कॉपी करें",
+ copied: "कॉपी किया गया"
+ },
+
+ connection_status: {
+ online: "ऑनलाइन",
+ offline: "ऑफ़लाइन",
+ saving: "सहेजा जा रहा है",
+ saved: "सहेजा गया",
+ last_synced: "अंतिम समन्वय",
+ min_ago: "मिनट पहले",
+ hour_ago: "घंटा पहले",
+ just_now: "अभी"
+ },
+ import: {
+ instructions: "निर्देश",
+ install: "इंस्टॉल करें",
+ run_command: "अपने टर्मिनल में निम्न कमांड चलाएं।",
+ example: "उदाहरण",
+ copy_code: "नीचे दिए गए कोड सेक्शन में .sql फ़ाइल की सामग्री कॉपी करें।",
+ pg_admin: {
+ step1: "
Pg Admin खोलें।",
+ step2: "अपने डेटाबेस पर राइट-क्लिक करें और
Backup चुनें।",
+ step3: "अपनी
.sql फ़ाइल को नाम दें, फॉर्मेट को
Plain पर सेट करें और
Encoding: UTF8 चुनें।",
+ step4: "
Data Options टैब में सुनिश्चित करें कि
Only schema चयनित है और
Only data चयनित नहीं है।",
+ step5: "
Backup पर क्लिक करें और फिर उसकी सामग्री को नीचे दिए गए कोड एडिटर में पेस्ट करें।"
+ },
+ workbench: {
+ step1: "
MySQL Workbench खोलें और अपने MySQL सर्वर से
connect करें।",
+ step2: "शीर्ष मेनू में
Server > Data Export पर जाएं।",
+ step3: "
Export Options में
Dump Structure Only चुनें।",
+ step4: "
Export to Self-Contained File को चेक करें, स्थान और नाम चुनें।",
+ step5: "
Start Export पर क्लिक करें और फिर फ़ाइल की सामग्री को नीचे दिए गए कोड एडिटर में कॉपी करें।"
+ },
+ heidisql: {
+ step1: "
HeidiSQL खोलें और अपने सर्वर से कनेक्ट करें।",
+ step2: "बाएं साइडबार में, उस डेटाबेस पर
राइट-क्लिक करें जिसे आप निर्यात करना चाहते हैं।",
+ step3: "
Export database as SQL चुनें।",
+ step4: "
No data चुनें और सुनिश्चित करें कि
Create चेक किया गया है।",
+ step5: "
Export बटन पर क्लिक करें और फिर
.sql फ़ाइल की सामग्री को नीचे कोड एडिटर में कॉपी करें।"
+ },
+ dbbrowser: {
+ step1: "
DB Browser for SQLite लॉन्च करें।",
+ step2: "
File > Open Database पर क्लिक करें और अपनी
.sqlite या
.db फ़ाइल चुनें।",
+ step3: "शीर्ष मेनू से
File > Export > Database to SQL file पर जाएं।",
+ step4: "डायलॉग में
Export schema only चुनें और
Save पर क्लिक करें।",
+ step5: "अंत में,
.sql फ़ाइल की सामग्री को नीचे दिए गए
code editor में कॉपी करें।"
+ }
+ }
+ }
+};
+
+export const hiLanguage: Language = {
+ name: "Hindi",
+ nativeName: "हिन्दी",
+ code: "hi",
+};
diff --git a/src/i18/languages/pt.ts b/src/i18/languages/pt.ts
new file mode 100644
index 0000000..35a6012
--- /dev/null
+++ b/src/i18/languages/pt.ts
@@ -0,0 +1,265 @@
+import { Language } from "../types";
+
+export const pt = {
+ translation: {
+ sidebar: {
+ tables: "Tabelas",
+ relationships: "Relacionamentos"
+ },
+
+ color_picker: {
+ default_color: "Cor padrão"
+ },
+ navbar: {
+ rename_db: "Renomear banco de dados",
+ search: "Pesquisar"
+ },
+ db_controller: {
+ filter: "Filtrar",
+ add_table: "Adicionar Tabela",
+ add_field: "Adicionar Campo",
+ add_index: "Adicionar Índice",
+ delete_table: "Excluir Tabela",
+ duplicate: "Duplicar",
+ add_relationship: "Adicionar Relacionamento",
+ show_code: "Mostrar código",
+ fields: "Campos",
+ indexes: "Índices",
+ note: "Nota",
+ name: "Nome",
+ type: "Tipo",
+ nullable: "Aceita Nulo",
+ select_fields: "Selecionar campos",
+ unique: "Único",
+ table_note: "Nota da tabela",
+ collapse: "Recolher Tudo",
+ primary_key: "Chave Primária",
+ foreign_key: "Chave Estrangeira",
+
+ source_table: "Tabela de Origem",
+ referenced_table: "Tabela Referenciada",
+
+ select_table: "Selecionar tabela",
+ select_field: "Selecionar campo",
+
+ empty_list: {
+ no_tables: "Nenhuma Tabela",
+ no_tables_description: "Crie uma tabela para começar.",
+ no_relationships: "Nenhum Relacionamento",
+ no_relationships_description: "Crie relacionamentos para conectar duas tabelas"
+ },
+
+ cardinality: {
+ name: "Cardinalidade",
+ one_to_one: "Um para Um",
+ one_to_many: "Um para Muitos",
+ many_to_one: "Muitos para Um",
+ many_to_many: "Muitos para Muitos"
+ },
+ foreign_key_actions: {
+ title: "Ações da Chave Estrangeira",
+ on_delete: "Ao Excluir",
+ on_update: "Ao Atualizar",
+ actions: {
+ no_action: "Nenhuma Ação",
+ cascade: "Cascata",
+ set_null: "Definir como Nulo",
+ set_default: "Definir como Padrão",
+ restrict: "Restringir"
+ }
+ },
+ field_settings: {
+ title: "Configuração de Campo",
+ unique: "Único",
+ unsigned: "Sem Sinal",
+ numeric_setting: "Configuração Numérica",
+ decimal_setting: "Configuração Decimal",
+ zeroFill: "Preencher com Zeros",
+ autoIncrement: "Auto Incremento",
+ note: "Nota",
+
+ delete_field: "Excluir Campo",
+ field_note: "Nota do Campo",
+ precision: "Precisão",
+ text_setting: "Configuração de Texto",
+ charset: "Charset",
+ collation: "Colação",
+ scale: "Escala",
+ max_length: "Comprimento Máximo",
+ integer_width: "Largura do Inteiro",
+ width: "Largura",
+ default_value: "Valor Padrão",
+ value: "Valor",
+ length: "Comprimento",
+ values: "Valores",
+ type_enter: "Digite e pressione enter",
+ precision_def: "Dígitos totais permitidos (antes + depois do decimal).",
+ scale_def: "Dígitos permitidos após o decimal.",
+ time_default_value: {
+ no_value: "Sem valor",
+ custom: "Hora personalizada",
+ now: "Agora"
+ },
+ errors: {
+ max_length: "deve ser um número positivo, sem decimais.",
+ integer_default_value: "Valor padrão inválido para Inteiro",
+ precision: "Precisão deve ser um número positivo, sem decimais.",
+ scale: "Escala deve ser um número positivo, sem decimais.",
+ scale_max_value: "A escala deve ser ≤ à precisão."
+ },
+ pick_value: "Escolher valor"
+ },
+ delete: "Excluir",
+
+ index_setting: "Configuração de Índice",
+ table_actions: "Ações da Tabela",
+ actions: "Ações",
+ delete_index: "Excluir Índice",
+ index_name: "Nome do Índice",
+ create_relationship: "Criar Relacionamento",
+ relationship_error: "Para criar um relacionamento, a chave primária e a chave estrangeira devem ser do mesmo tipo.",
+
+ invalid_relationship: {
+ title: "Relacionamento Inválido",
+ description: "O tipo da chave de origem não corresponde ao tipo da chave referenciada. Verifique se ambos têm o mesmo tipo de dado."
+ },
+ circular_dependency: {
+ title: "Dependência Circular Detectada",
+ toast_description: "Foi encontrado um ciclo entre tabelas. Verifique o diagrama à esquerda e remova um dos relacionamentos para corrigir.",
+ description: "Seu esquema contém uma relação circular de chave estrangeira entre tabelas. Para corrigir,",
+ suggestion: "remova um dos relacionamentos listados abaixo que está causando o ciclo.",
+ remove_relationship: "Remover relacionamento"
+ }
+ },
+ table: {
+ double_click: "Clique duas vezes para editar",
+ overlapping_tables: "Tabelas Sobrepostas",
+ show_more: "Mostrar mais",
+ show_less: "Mostrar menos"
+ },
+ control_buttons: {
+ redo: "Refazer",
+ undo: "Desfazer",
+ zoom_in: "Aumentar Zoom",
+ zoom_out: "Diminuir Zoom",
+ adjust_positions: "Ajustar Posições",
+ show_all: "Mostrar tudo"
+ },
+ menu: {
+ file: "Arquivo",
+ new: "Novo",
+ open: "Abrir",
+ save: "Salvar",
+ import: "Importar",
+ json: ".json",
+ dbml: ".dbml",
+ mysql: "MySQL",
+ postgresql: "PostgreSQL",
+ export_sql: "Exportar SQL",
+ generic: "Genérico",
+ export_orm_models: "Exportar Modelos ORM",
+ delete_project: "Excluir Projeto",
+ edit: "Editar",
+ undo: "Desfazer",
+ redo: "Refazer",
+ clear: "Limpar",
+ view: "Visualizar",
+ hide_controller: "Ocultar Controlador",
+ show_controller: "Mostrar Controlador",
+ cardinality_style: "Estilo de Cardinalidade",
+ hidden: "Oculto",
+ numeric: "Numérico",
+ symbolic: "Simbólico",
+ theme: "Tema",
+ light: "Claro",
+ dark: "Escuro",
+ help: "Ajuda",
+ show_docs: "Mostrar Documentação",
+ join_discord: "Entrar no Discord"
+ },
+
+ modals: {
+ close: "Fechar",
+ create: "Criar",
+ pick_database: "Escolha seu Banco de Dados.",
+ create_database_header: "Cada banco de dados oferece recursos e funcionalidades distintas.",
+ db_name: "Nome do Banco de Dados",
+ db_name_error: "Por favor, forneça um nome para o Banco de Dados",
+ continue: "Continuar",
+ open: "Abrir",
+ open_database: "Abrir Banco de Dados",
+ open_database_header: "Abra um banco de dados selecionando um da lista.",
+ delete_database: "Excluir Banco de Dados",
+ delete_database_content: "Esta ação é irreversível e removerá o diagrama permanentemente.",
+ delete: "Excluir",
+
+ import_database: {
+ title: "Importar seu Banco de Dados",
+ import: "Importar",
+ import_options: "Gostaria de importar usando:",
+ import_error: "Erro de Análise SQL",
+ import_error_description: "Não foi possível importar seu SQL porque contém sintaxe inválida.",
+ import_warning: "Aviso de Análise SQL",
+ import_warning_description: "Alguns elementos não puderam ser processados devido a declarações não suportadas ou incompletas."
+ },
+ export_sql: "Exportar SQL",
+ export_sql_header: "Exporte seu diagrama de banco de dados em código SQL"
+ },
+ clipboard: {
+ copy: "Copiar",
+ copied: "Copiado"
+ },
+
+ connection_status: {
+ online: "Online",
+ offline: "Offline",
+ saving: "Salvando",
+ saved: "Salvo",
+ last_synced: "Última sincronização",
+ min_ago: "min atrás",
+ hour_ago: "hora atrás",
+ just_now: "Agora mesmo"
+ },
+ import: {
+ instructions: "Instruções",
+ install: "Instalar",
+ run_command: "Execute o seguinte comando no seu terminal.",
+ example: "Exemplo",
+ copy_code: "Copie o conteúdo do arquivo .sql na seção de código abaixo.",
+ pg_admin: {
+ step1: "Abra o
Pg Admin.",
+ step2: "Clique com o botão direito no seu banco de dados e selecione
Backup.",
+ step3: "Dê um nome ao seu arquivo
.sql, defina o formato como
Plain e escolha
Encoding: UTF8.",
+ step4: "Certifique-se de que
Apenas esquema esteja marcado e
Apenas dados esteja desmarcado na
aba Opções de Dados.",
+ step5: "Clique em
Backup para exportar o arquivo e depois copie seu conteúdo para o editor de código abaixo."
+ },
+ workbench: {
+ step1: "Abra o
MySQL Workbench e
conecte-se ao seu servidor MySQL.",
+ step2: "No menu superior, vá para
Servidor > Exportação de Dados.",
+ step3: "Nas
Opções de Exportação, escolha
Dump Structure Only.",
+ step4: "Marque
Exportar para Arquivo Autônomo, escolha um local e nome para o arquivo
.sql.",
+ step5: "Clique em
Iniciar Exportação. Depois, copie o conteúdo para o editor de código abaixo."
+ },
+ heidisql: {
+ step1: "Abra o
HeidiSQL e conecte-se ao seu servidor.",
+ step2: "Na
barra lateral esquerda, clique com o botão direito no banco de dados que deseja exportar.",
+ step3: "Escolha
Exportar banco de dados como SQL.",
+ step4: "Selecione
Sem dados e certifique-se de que
Criar esteja marcado para exportar apenas a estrutura.",
+ step5: "Clique em
Exportar e copie o conteúdo do arquivo
.sql para o
editor de código abaixo."
+ },
+ dbbrowser: {
+ step1: "Inicie o
DB Browser for SQLite.",
+ step2: "Clique em
Arquivo > Abrir Banco de Dados e selecione seu arquivo
.sqlite ou
.db.",
+ step3: "Vá para
Arquivo > Exportar > Banco de Dados para Arquivo SQL.",
+ step4: "Na janela de diálogo, escolha
Exportar apenas o esquema e clique em
Salvar.",
+ step5: "Finalmente, copie o conteúdo do arquivo
.sql para o
editor de código abaixo."
+ }
+ }
+ }
+};
+
+export const ptLanguage: Language = {
+ name: "Portuguese",
+ nativeName: "Português",
+ code: "pt",
+};
diff --git a/src/i18/languages/ru.ts b/src/i18/languages/ru.ts
new file mode 100644
index 0000000..516c6e4
--- /dev/null
+++ b/src/i18/languages/ru.ts
@@ -0,0 +1,255 @@
+import { Language } from "../types";
+
+export const ru = {
+ translation: {
+ sidebar: {
+ tables: "Таблицы",
+ relationships: "Связи"
+ },
+ color_picker: {
+ default_color: "Цвет по умолчанию"
+ },
+ navbar: {
+ rename_db: "Переименовать базу данных",
+ search: "Поиск"
+ },
+ db_controller: {
+ filter: "Фильтр",
+ add_table: "Добавить таблицу",
+ add_field: "Добавить поле",
+ add_index: "Добавить индекс",
+ delete_table: "Удалить таблицу",
+ duplicate: "Дублировать",
+ add_relationship: "Добавить связь",
+ show_code: "Показать код",
+ fields: "Поля",
+ indexes: "Индексы",
+ note: "Заметка",
+ name: "Имя",
+ type: "Тип",
+ nullable: "Допускает NULL",
+ select_fields: "Выберите поля",
+ unique: "Уникальный",
+ table_note: "Заметка к таблице",
+ collapse: "Свернуть все",
+ primary_key: "Первичный ключ",
+ foreign_key: "Внешний ключ",
+ source_table: "Исходная таблица",
+ referenced_table: "Связанная таблица",
+ select_table: "Выберите таблицу",
+ select_field: "Выберите поле",
+ empty_list: {
+ no_tables: "Нет таблиц",
+ no_tables_description: "Создайте таблицу, чтобы начать.",
+ no_relationships: "Нет связей",
+ no_relationships_description: "Создайте связи для соединения двух таблиц"
+ },
+ cardinality: {
+ name: "Кардинальность",
+ one_to_one: "Один к одному",
+ one_to_many: "Один ко многим",
+ many_to_one: "Многие к одному",
+ many_to_many: "Многие ко многим"
+ },
+ foreign_key_actions: {
+ title: "Действия внешнего ключа",
+ on_delete: "При удалении",
+ on_update: "При обновлении",
+ actions: {
+ no_action: "Без действия",
+ cascade: "Каскад",
+ set_null: "Установить NULL",
+ set_default: "Установить по умолчанию",
+ restrict: "Ограничить"
+ }
+ },
+ field_settings: {
+ title: "Настройки поля",
+ unique: "Уникальный",
+ unsigned: "Без знака",
+ numeric_setting: "Числовые настройки",
+ decimal_setting: "Десятичные настройки",
+ zeroFill: "Дополнение нулями",
+ autoIncrement: "Автоинкремент",
+ note: "Заметка",
+ delete_field: "Удалить поле",
+ field_note: "Заметка к полю",
+ precision: "Точность",
+ text_setting: "Настройки текста",
+ charset: "Кодировка",
+ collation: "Сравнение",
+ scale: "Масштаб",
+ max_length: "Макс. длина",
+ integer_width: "Ширина целого числа",
+ width: "Ширина",
+ default_value: "Значение по умолчанию",
+ value: "Значение",
+ length: "Длина",
+ values: "Значения",
+ type_enter: "Введите и нажмите Enter",
+ precision_def: "Общее количество допустимых цифр (до и после запятой).",
+ scale_def: "Допустимое количество цифр после запятой.",
+ time_default_value: {
+ no_value: "Нет значения",
+ custom: "Произвольное время",
+ now: "Сейчас"
+ },
+ errors: {
+ max_length: "должно быть положительным числом без десятичных.",
+ integer_default_value: "Недопустимое значение по умолчанию для целого",
+ precision: "Точность должна быть положительным числом без десятичных.",
+ scale: "Масштаб должен быть положительным числом без десятичных.",
+ scale_max_value: "Масштаб должен быть ≤ точности."
+ },
+ pick_value: "Выберите значение"
+ },
+ delete: "Удалить",
+ index_setting: "Настройки индекса",
+ table_actions: "Действия с таблицей",
+ actions: "Действия",
+ delete_index: "Удалить индекс",
+ index_name: "Имя индекса",
+ create_relationship: "Создать связь",
+ relationship_error: "Для создания связи типы первичного и внешнего ключа должны совпадать.",
+ invalid_relationship: {
+ title: "Недопустимая связь",
+ description: "Тип исходного ключа не совпадает с типом связанного ключа. Убедитесь, что оба ключа имеют одинаковый тип данных."
+ },
+ circular_dependency: {
+ title: "Обнаружена циклическая зависимость",
+ toast_description: "Обнаружена циклическая ссылка между таблицами. Проверьте диаграмму слева и удалите одну из связей, чтобы исправить.",
+ description: "В вашей схеме есть циклическая связь между таблицами. Чтобы устранить её,",
+ suggestion: "удалите одну из перечисленных ниже связей, вызывающих цикл.",
+ remove_relationship: "Удалить связь"
+ }
+ },
+ table: {
+ double_click: "Дважды щелкните для редактирования",
+ overlapping_tables: "Перекрывающиеся таблицы",
+ show_more: "Показать больше",
+ show_less: "Показать меньше"
+ },
+ control_buttons: {
+ redo: "Повтор",
+ undo: "Отменить",
+ zoom_in: "Увеличить",
+ zoom_out: "Уменьшить",
+ adjust_positions: "Настроить позиции",
+ show_all: "Показать все"
+ },
+ menu: {
+ file: "Файл",
+ new: "Новый",
+ open: "Открыть",
+ save: "Сохранить",
+ import: "Импорт",
+ json: ".json",
+ dbml: ".dbml",
+ mysql: "MySql",
+ postgresql: "PostgreSQL",
+ export_sql: "Экспорт SQL",
+ generic: "Общий",
+ export_orm_models: "Экспорт ORM моделей",
+ delete_project: "Удалить проект",
+ edit: "Редактировать",
+ undo: "Отменить",
+ redo: "Повторить",
+ clear: "Очистить",
+ view: "Вид",
+ hide_controller: "Скрыть панель управления",
+ show_controller: "Показать панель управления",
+ cardinality_style: "Стиль кардинальности",
+ hidden: "Скрытый",
+ numeric: "Числовой",
+ symbolic: "Символический",
+ theme: "Тема",
+ light: "Светлая",
+ dark: "Тёмная",
+ help: "Помощь",
+ show_docs: "Показать документацию",
+ join_discord: "Присоединиться к Discord"
+ },
+ modals: {
+ close: "Закрыть",
+ create: "Создать",
+ pick_database: "Выберите вашу базу данных.",
+ create_database_header: "Каждая база данных предлагает уникальные функции и возможности.",
+ db_name: "Имя базы данных",
+ db_name_error: "Пожалуйста, укажите имя базы данных",
+ continue: "Продолжить",
+ open: "Открыть",
+ open_database: "Открыть базу данных",
+ open_database_header: "Откройте базу данных, выбрав одну из списка.",
+ delete_database: "Удалить базу данных",
+ delete_database_content: "Это действие необратимо и навсегда удалит диаграмму.",
+ delete: "Удалить",
+ import_database: {
+ title: "Импортируйте вашу базу данных",
+ import: "Импорт",
+ import_options: "Вы хотите импортировать с помощью:",
+ import_error: "Ошибка разбора SQL",
+ import_error_description: "Не удалось импортировать SQL, так как он содержит недопустимый синтаксис.",
+ import_warning: "Предупреждение разбора SQL",
+ import_warning_description: "Некоторые элементы не были обработаны из-за неподдерживаемых или неполных объявлений."
+ },
+ export_sql: "Экспорт SQL",
+ export_sql_header: "Экспортируйте диаграмму базы данных в виде SQL-кода"
+ },
+ clipboard: {
+ copy: "Копировать",
+ copied: "Скопировано"
+ },
+ connection_status: {
+ online: "Онлайн",
+ offline: "Оффлайн",
+ saving: "Сохранение",
+ saved: "Сохранено",
+ last_synced: "Последняя синхронизация",
+ min_ago: "мин назад",
+ hour_ago: "час назад",
+ just_now: "Только что"
+ },
+ import: {
+ instructions: "Инструкции",
+ install: "Установить",
+ run_command: "Выполните следующую команду в терминале.",
+ example: "Пример",
+ copy_code: "Скопируйте содержимое .sql файла в кодовую секцию ниже.",
+ pg_admin: {
+ step1: "Откройте
Pg Admin.",
+ step2: "Щёлкните правой кнопкой мыши по базе данных и выберите
Резервное копирование.",
+ step3: "Назовите файл
.sql, выберите
Формат: Обычный и
Кодировка: UTF8.",
+ step4: "Убедитесь, что
Только схема включена, а
Только данные выключены.",
+ step5: "Нажмите
Резервное копирование для экспорта, затем скопируйте содержимое в редактор кода ниже."
+ },
+ workbench: {
+ step1: "Откройте
MySQL Workbench и
подключитесь к серверу.",
+ step2: "В верхнем меню перейдите в
Сервер > Экспорт данных.",
+ step3: "Выберите
Только структура в
Настройках экспорта.",
+ step4: "Выберите
Экспорт в автономный файл, укажите путь и имя файла
.sql.",
+ step5: "Нажмите
Начать экспорт, затем скопируйте содержимое в редактор кода ниже."
+ },
+ heidisql: {
+ step1: "Откройте
HeidiSQL и подключитесь к серверу.",
+ step2: "В
левой панели щёлкните правой кнопкой по нужной базе.",
+ step3: "Выберите
Экспортировать базу как SQL.",
+ step4: "Выберите
Без данных, включите
Создание для экспорта только структуры.",
+ step5: "Нажмите
Экспорт и скопируйте содержимое файла
.sql в редактор."
+ },
+ dbbrowser: {
+ step1: "Запустите
DB Browser for SQLite.",
+ step2: "Перейдите в
Файл > Открыть базу данных и выберите
.sqlite или
.db файл.",
+ step3: "Выберите
Файл > Экспорт > База данных в SQL файл.",
+ step4: "Выберите
Экспортировать только схему и нажмите
Сохранить.",
+ step5: "Скопируйте содержимое
.sql файла в редактор ниже."
+ }
+ }
+ }
+}
+
+
+export const ruLanguage: Language = {
+ name: "Russian",
+ nativeName: "Русский",
+ code: "ru",
+};
diff --git a/src/i18/languages/zh.ts b/src/i18/languages/zh.ts
new file mode 100644
index 0000000..fb6292b
--- /dev/null
+++ b/src/i18/languages/zh.ts
@@ -0,0 +1,272 @@
+import { Language } from "../types";
+
+export const zh = {
+ translation: {
+ sidebar: {
+ tables: "数据表",
+ relationships: "关系"
+ },
+
+ color_picker: {
+ default_color: "默认颜色"
+ },
+ navbar: {
+ rename_db: "重命名数据库",
+ search: "搜索"
+ },
+ db_controller: {
+ filter: "筛选",
+ add_table: "添加表",
+ add_field: "添加字段",
+ add_index: "添加索引",
+ delete_table: "删除表",
+ duplicate: "复制",
+ add_relationship: "添加关系",
+ show_code: "显示代码",
+ fields: "字段",
+ indexes: "索引",
+ note: "备注",
+ name: "名称",
+ type: "类型",
+ nullable: "可为空",
+ select_fields: "选择字段",
+ unique: "唯一",
+ table_note: "表备注",
+ collapse: "全部折叠",
+ primary_key: "主键",
+ foreign_key: "外键",
+
+ source_table: "源表",
+ referenced_table: "引用表",
+
+ select_table: "选择表",
+ select_field: "选择字段",
+
+ empty_list: {
+ no_tables: "暂无数据表",
+ no_tables_description: "创建一个表以开始。",
+ no_relationships: "暂无关系",
+ no_relationships_description: "创建关系以连接两个表"
+ },
+
+ cardinality: {
+ name: "基数",
+ one_to_one: "一对一",
+ one_to_many: "一对多",
+ many_to_one: "多对一",
+ many_to_many: "多对多"
+ },
+
+ foreign_key_actions: {
+ title: "外键操作",
+ on_delete: "删除时",
+ on_update: "更新时",
+ actions: {
+ no_action: "无操作",
+ cascade: "级联",
+ set_null: "设为 NULL",
+ set_default: "设为默认值",
+ restrict: "限制"
+ }
+ },
+
+ field_settings: {
+ title: "字段设置",
+ unique: "唯一",
+ unsigned: "无符号",
+ numeric_setting: "数值设置",
+ decimal_setting: "小数设置",
+ zeroFill: "零填充",
+ autoIncrement: "自动递增",
+ note: "备注",
+ delete_field: "删除字段",
+ field_note: "字段备注",
+ precision: "精度",
+ text_setting: "文本设置",
+ charset: "字符集",
+ collation: "排序规则",
+ scale: "小数位数",
+ max_length: "最大长度",
+ integer_width: "整数宽度",
+ width: "宽度",
+ default_value: "默认值",
+ value: "值",
+ length: "长度",
+ values: "值集合",
+ type_enter: "输入并按回车",
+ precision_def: "允许的总位数(小数点前+后)。",
+ scale_def: "小数点后的位数。",
+ time_default_value: {
+ no_value: "无值",
+ custom: "自定义时间",
+ now: "当前时间"
+ },
+ errors: {
+ max_length: "必须为正整数,不能为小数。",
+ integer_default_value: "整数默认值无效",
+ precision: "精度必须为正整数,不能为小数。",
+ scale: "小数位数必须为正整数,不能为小数。",
+ scale_max_value: "小数位数必须小于等于精度值。"
+ },
+ pick_value: "选择值"
+ },
+
+ delete: "删除",
+ index_setting: "索引设置",
+ table_actions: "表操作",
+ actions: "操作",
+ delete_index: "删除索引",
+ index_name: "索引名称",
+ create_relationship: "创建关系",
+ relationship_error: "要创建关系,主键和外键的数据类型必须相同。",
+
+ invalid_relationship: {
+ title: "无效关系",
+ description: "源键类型与引用键类型不匹配,请确保两个键的数据类型一致。"
+ },
+
+ circular_dependency: {
+ title: "检测到循环依赖",
+ toast_description: "发现表之间存在循环引用。请检查左侧图表并移除其中一个关系以修复。",
+ description: "您的架构中存在表之间的循环外键关系。要修复它,",
+ suggestion: "请移除以下导致循环的关系之一。",
+ remove_relationship: "移除关系"
+ }
+ },
+
+ table: {
+ double_click: "双击进行编辑",
+ overlapping_tables: "表重叠",
+ show_more: "显示更多",
+ show_less: "显示更少"
+ },
+
+ control_buttons: {
+ redo: "重做",
+ undo: "撤销",
+ zoom_in: "放大",
+ zoom_out: "缩小",
+ adjust_positions: "调整位置",
+ show_all: "显示全部"
+ },
+
+ menu: {
+ file: "文件",
+ new: "新建",
+ open: "打开",
+ save: "保存",
+ import: "导入",
+ json: ".json",
+ dbml: ".dbml",
+ mysql: "MySql",
+ postgresql: "Postgresql",
+ export_sql: "导出 SQL",
+ generic: "通用",
+ export_orm_models: "导出 ORM 模型",
+ delete_project: "删除项目",
+ edit: "编辑",
+ undo: "撤销",
+ redo: "重做",
+ clear: "清除",
+ view: "视图",
+ hide_controller: "隐藏控制器",
+ show_controller: "显示控制器",
+ cardinality_style: "基数样式",
+ hidden: "隐藏",
+ numeric: "数值",
+ symbolic: "符号",
+ theme: "主题",
+ light: "浅色",
+ dark: "深色",
+ help: "帮助",
+ show_docs: "查看文档",
+ join_discord: "加入 Discord"
+ },
+
+ modals: {
+ close: "关闭",
+ create: "创建",
+ pick_database: "选择您的数据库。",
+ create_database_header: "每种数据库提供不同的功能与特性。",
+ db_name: "数据库名称",
+ db_name_error: "请输入数据库名称",
+ continue: "继续",
+ open: "打开",
+ open_database: "打开数据库",
+ open_database_header: "从列表中选择一个数据库进行打开。",
+ delete_database: "删除数据库",
+ delete_database_content: "该操作不可撤销,将永久删除该图表。",
+ delete: "删除",
+
+ import_database: {
+ title: "导入数据库",
+ import: "导入",
+ import_options: "请选择导入方式:",
+ import_error: "SQL 解析错误",
+ import_error_description: "我们无法导入您的 SQL,因为它包含无效语法。",
+ import_warning: "SQL 解析警告",
+ import_warning_description: "由于不支持或不完整的声明,某些元素无法处理。"
+ },
+ export_sql: "导出 SQL",
+ export_sql_header: "将您的数据库图导出为 SQL 代码"
+ },
+
+ clipboard: {
+ copy: "复制",
+ copied: "已复制"
+ },
+
+ connection_status: {
+ online: "在线",
+ offline: "离线",
+ saving: "保存中",
+ saved: "已保存",
+ last_synced: "上次同步",
+ min_ago: "分钟前",
+ hour_ago: "小时前",
+ just_now: "刚刚"
+ },
+
+ import: {
+ instructions: "说明",
+ install: "安装",
+ run_command: "在终端中运行以下命令。",
+ example: "示例",
+ copy_code: "将 .sql 文件的内容复制到下方代码区域。",
+ pg_admin: {
+ step1: "打开
Pg Admin。",
+ step2: "右键点击数据库并选择
备份。",
+ step3: "命名
.sql 文件,设置格式为
纯文本,编码为
UTF8。",
+ step4: "确保
仅结构 选中,
仅数据 未选中。",
+ step5: "点击
备份 进行导出,然后将内容复制到下方代码编辑器。"
+ },
+ workbench: {
+ step1: "打开
MySQL Workbench 并连接到服务器。",
+ step2: "顶部菜单选择
Server > 数据导出。",
+ step3: "在
导出选项 中选择
仅导出结构。",
+ step4: "勾选
导出为自包含文件,设置保存位置和文件名。",
+ step5: "点击
开始导出,然后复制 .sql 文件内容至代码编辑器。"
+ },
+ heidisql: {
+ step1: "
打开 HeidiSQL 并连接到服务器。",
+ step2: "在
左侧栏中右键 要导出的数据库。",
+ step3: "选择
导出为 SQL。",
+ step4: "选择
无数据,并勾选
创建 以仅导出结构。",
+ step5: "点击
导出,将 .sql 文件内容复制到下方代码编辑器中。"
+ },
+ dbbrowser: {
+ step1: "启动
DB Browser for SQLite。",
+ step2: "点击
文件 > 打开数据库,选择您的
.sqlite 或
.db 文件。",
+ step3: "顶部菜单选择
文件 > 导出 > 导出为 SQL 文件。",
+ step4: "选择
仅导出结构 并点击
保存。",
+ step5: "将 .sql 文件内容复制到下方
代码编辑器 中。"
+ }
+ }
+ }
+};
+
+export const zhLanguage: Language = {
+ name: "Chinese",
+ nativeName: "简体中文",
+ code: "zh",
+};
diff --git a/src/pages/database/db-controller/relationship-controller/relationship-controller.tsx b/src/pages/database/db-controller/relationship-controller/relationship-controller.tsx
index 1f7abe7..e68101e 100644
--- a/src/pages/database/db-controller/relationship-controller/relationship-controller.tsx
+++ b/src/pages/database/db-controller/relationship-controller/relationship-controller.tsx
@@ -27,7 +27,7 @@ const RelationshipController: React.FC = ({ }) => {
const { open } = useModal();
- const { database, isSyncing } = useDatabase();
+ const { database ,isLoading } = useDatabase();
const { relationships: allRelationships } = database || { relationships: [] };
const [relationships, setRelationships] = useState
(allRelationships);
@@ -169,7 +169,7 @@ const RelationshipController: React.FC = ({ }) => {
{
- !isSyncing && allRelationships.length == 0 &&
+ !isLoading && allRelationships.length == 0 &&