Skip to content

Commit 7791608

Browse files
committed
ui
1 parent e4d4b88 commit 7791608

82 files changed

Lines changed: 390 additions & 2509 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/release.yml

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,18 @@ jobs:
3030
steps:
3131
- uses: actions/checkout@v4
3232

33+
# Fail fast, before the ~200-minute macOS build, if the changelog wasn't
34+
# updated for this version. The release body links to /changelog, so a
35+
# missing entry ships a release pointing at a page that never mentions it.
36+
- name: Check changelog has an entry for this version
37+
run: |
38+
VERSION=$(node -p "require('./apps/desktop/src-tauri/tauri.conf.json').version")
39+
if ! grep -q "version: '$VERSION'" apps/web/src/lib/changelog.ts; then
40+
echo "::error::No changelog entry for $VERSION. Prepend one to apps/web/src/lib/changelog.ts."
41+
exit 1
42+
fi
43+
echo "Changelog entry found for $VERSION"
44+
3345
- name: Install pnpm
3446
uses: pnpm/action-setup@v4
3547
# version intentionally omitted — taken from package.json "packageManager"
@@ -83,7 +95,7 @@ jobs:
8395
tagName: v__VERSION__
8496
releaseName: MyDevTools v__VERSION__
8597
releaseBody: |
86-
See [CHANGELOG](https://github.com/itsmeakhil/mydevtools/blob/main/CHANGELOG.md) for details.
98+
Full release notes: https://mydevtools.tech/changelog
8799
releaseDraft: false
88100
prerelease: false
89101
args: ${{ matrix.args }}

apps/desktop-ui/messages/af.json

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@
5353
"breakRoom": "Breek Kamer",
5454
"game2048": "2048",
5555
"sudoku": "Sudoku",
56-
"redisCommander": "Redis Bestuurder",
5756
"yamlFormatter": "YAML-formatteerder",
5857
"sshKeyGenerator": "SSH / RSA-sleutelgenerator",
5958
"curlToCode": "cURL to Code",
@@ -529,10 +528,6 @@
529528
"title": "Sudoku",
530529
"description": "Klassieke getal legkaart. 3 moeilikheidsgraad, 150 stadiums elk."
531530
},
532-
"redisCommander": {
533-
"title": "Redis Bestuurder",
534-
"description": "Blaai deur sleutels, inspekteer waardes en voer opdragte op Redis uit."
535-
},
536531
"curlToCode": {
537532
"title": "cURL to Code",
538533
"description": "Convert a curl command into fetch, axios, Python, Go, and more."
@@ -4077,17 +4072,6 @@
40774072
"powerShield": "Een dood oorleef",
40784073
"powerShrink": "Stert verkort"
40794074
},
4080-
"RedisCommander": {
4081-
"page": {
4082-
"title": "Redis Bestuurder",
4083-
"dialogTitle": "Redis Verbindings",
4084-
"heroTitle": "Redis Bestuurder",
4085-
"heroDesc": "Verbind met Redis-instansies. Blaai deur sleutels, redigeer waardes, voer opdragte uit. Geloofsbriewe word in u blaaier versleutel.",
4086-
"heroAddConnection": "Voeg Verbinding By",
4087-
"vaultLockedTitle": "Kluis Gesluit",
4088-
"vaultLockedDesc": "Ontsluit u kluis om toegang tot gestoorde verbindings te kry."
4089-
}
4090-
},
40914075
"Minesweeper": {
40924076
"title": "Mynveer",
40934077
"subtitle": "Vind al die veilige selle sonder om 'n myn te ontplof",

apps/desktop-ui/messages/ar.json

Lines changed: 0 additions & 112 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@
5353
"breakRoom": "غرفة الاستراحة",
5454
"game2048": "2048",
5555
"sudoku": "Sudoku",
56-
"redisCommander": "منفّذ Redis",
5756
"yamlFormatter": "منسق YAML",
5857
"sshKeyGenerator": "مولد مفاتيح SSH / RSA",
5958
"curlToCode": "cURL to Code",
@@ -529,10 +528,6 @@
529528
"title": "سودوكو",
530529
"description": "لغز الأرقام الكلاسيكية. 3 مستويات صعوبة، 150 مرحلة لكل منها."
531530
},
532-
"redisCommander": {
533-
"title": "منفّذ Redis",
534-
"description": "تصفح المفاتيح وافحص القيم ونفّذ الأوامر على أي مثيل Redis."
535-
},
536531
"curlToCode": {
537532
"title": "cURL to Code",
538533
"description": "Convert a curl command into fetch, axios, Python, Go, and more."
@@ -1590,9 +1585,6 @@
15901585
"confirmDeleteConnectionDesc": "This will permanently remove this connection. The database itself will not be affected.",
15911586
"confirmDropDbDesc": "This will permanently delete the database and all its collections. This cannot be undone.",
15921587
"confirmDropCollectionDesc": "This will permanently delete the collection and all its documents. This cannot be undone.",
1593-
"bulkDeleteFailed": "{count, plural, one {فشل حذف # مجموعة} other {فشل حذف # مجموعات}}",
1594-
"bulkDeleted": "{count, plural, one {تم حذف # مجموعة} other {تم حذف # مجموعات}}",
1595-
"bulkDeleteButton": "{count, plural, one {حذف # مجموعة} other {حذف # مجموعات}}",
15961588
"bulkDeleteFailed": "{count, plural, one {فشل حذف مجموعة واحدة} other {فشل حذف # مجموعة}}",
15971589
"bulkDeleted": "{count, plural, one {تم حذف مجموعة واحدة} other {تم حذف # مجموعة}}",
15981590
"bulkDeleteButton": "حذف {count, plural, one {مجموعة واحدة} other {# مجموعة}}"
@@ -1683,24 +1675,6 @@
16831675
"docInsertFailed": "فشل إدراج المستند",
16841676
"docUpdateFailed": "فشل تحديث المستند",
16851677
"indexesLoadFail": "فشل تحميل الفهارس",
1686-
"bulkDeleted": "{count, plural, one {تم حذف # مستند} other {تم حذف # مستندات}}",
1687-
"bulkDeleteFailed": "فشل الحذف الجماعي",
1688-
"selectedCount": "{count, plural, one {تم تحديد # مستند} other {تم تحديد # مستندات}}",
1689-
"deleteSelected": "حذف المحدد",
1690-
"clearSelection": "مسح",
1691-
"statusLoading": "جارٍ التحميل…",
1692-
"statusShowing": "عرض {from}–{to} من {total} مستند",
1693-
"statusEmpty": "0 مستند",
1694-
"statusSelected": "{count} محدد",
1695-
"bulkDeleteTitle": "حذف {count, plural, one {# مستند} other {# مستندات}}؟",
1696-
"bulkDeleteDescription": "سيؤدي هذا إلى حذف {count, plural, one {# مستند} other {# مستندات}} نهائيًا من {collection}. لا يمكن التراجع عن هذا الإجراء.",
1697-
"bulkDeleting": "جارٍ الحذف…",
1698-
"bulkDeleteConfirm": "حذف الكل",
1699-
"queryErrorTitle": "فشل تحميل المستندات",
1700-
"retry": "إعادة المحاولة",
1701-
"docInsertFailed": "فشل إدراج المستند",
1702-
"docUpdateFailed": "فشل تحديث المستند",
1703-
"indexesLoadFail": "فشل تحميل الفهارس",
17041678
"bulkDeleted": "{count, plural, one {تم حذف مستند واحد} other {تم حذف # مستند}}",
17051679
"bulkDeleteFailed": "فشل الحذف الجماعي",
17061680
"selectedCount": "{count, plural, one {تم تحديد مستند واحد} other {تم تحديد # مستند}}",
@@ -1794,7 +1768,6 @@
17941768
"export": "تصدير",
17951769
"sheetName": "بيانات",
17961770
"formatJson": "JSON",
1797-
"pageOnlyNote": "يصدّر الصفحة الحالية فقط ({count, plural, one {# مستند} other {# مستندات}})",
17981771
"pageOnlyNote": "يصدّر الصفحة الحالية فقط ({count, plural, one {مستند واحد} other {# مستند}})"
17991772
},
18001773
"jsonTree": {
@@ -1811,80 +1784,6 @@
18111784
"previewEmpty": "لا توجد مستندات في هذه المرحلة",
18121785
"previewFail": "فشلت المعاينة"
18131786
},
1814-
"indexManager": {
1815-
"loading": "جارٍ تحميل الفهارس…",
1816-
"retry": "إعادة المحاولة",
1817-
"countLabel": "{count, plural, one {# فهرس} other {# فهارس}}",
1818-
"totalSize": "{size} إجمالاً",
1819-
"statsDocs": "{count, plural, one {# مستند} other {# مستند}}",
1820-
"statsStorage": "{size} تخزين",
1821-
"statsAvgObj": "{size} متوسط/مستند",
1822-
"newIndex": "فهرس جديد",
1823-
"createTitle": "إنشاء فهرس",
1824-
"fieldPlaceholder": "اسم الحقل",
1825-
"ascending": "تصاعدي",
1826-
"descending": "تنازلي",
1827-
"addField": "إضافة حقل",
1828-
"unique": "فريد",
1829-
"sparse": "متفرق",
1830-
"ttlLabel": "TTL (ثوانٍ)",
1831-
"ttlPlaceholder": "مثال: 3600",
1832-
"cancel": "إلغاء",
1833-
"create": "إنشاء",
1834-
"creating": "جارٍ الإنشاء…",
1835-
"created": "تم إنشاء الفهرس",
1836-
"createFailed": "فشل إنشاء الفهرس",
1837-
"fieldRequired": "اسم الحقل مطلوب",
1838-
"dropped": "تم حذف الفهرس \"{name}\"",
1839-
"dropFailed": "فشل حذف الفهرس",
1840-
"dropTitle": "حذف الفهرس؟",
1841-
"dropDescription": "سيؤدي هذا إلى حذف الفهرس \"{name}\" نهائيًا. ستصبح الاستعلامات التي تستخدم هذا الفهرس أبطأ.",
1842-
"dropping": "جارٍ الحذف…",
1843-
"dropConfirm": "حذف الفهرس",
1844-
"badgeSystem": "نظام",
1845-
"badgeUnique": "فريد",
1846-
"badgeSparse": "متفرق",
1847-
"badgeTtl": "TTL",
1848-
"empty": "لم يتم العثور على فهارس"
1849-
},
1850-
"importDialog": {
1851-
"title": "استيراد مستندات إلى {collection}",
1852-
"onlyJson": "يتم دعم ملفات .json فقط",
1853-
"invalidStructure": "يجب أن يحتوي الملف على مصفوفة أو كائن JSON",
1854-
"invalidJson": "JSON غير صالح: تعذّر تحليل الملف",
1855-
"imported": "{count, plural, one {تم استيراد # مستند} other {تم استيراد # مستندات}}",
1856-
"importFailed": "فشل الاستيراد",
1857-
"dropHint": "اسحب وأفلت أو انقر للتحميل",
1858-
"dropSubHint": "يدعم مصفوفة JSON أو NDJSON",
1859-
"docsCount": "{count, plural, one {# مستند} other {# مستندات}}",
1860-
"previewLabel": "معاينة (أول 3 مستندات)",
1861-
"moreDocs": "… و{count} مستندات أخرى",
1862-
"cancel": "إلغاء",
1863-
"importing": "جارٍ الاستيراد…",
1864-
"importCount": "{count, plural, one {استيراد # مستند} other {استيراد # مستندات}}",
1865-
"importBtn": "استيراد"
1866-
},
1867-
"schemaView": {
1868-
"analyzing": "جارٍ تحليل المخطط…",
1869-
"loadFailed": "فشل تحليل المخطط",
1870-
"retry": "إعادة المحاولة",
1871-
"noDocs": "لا توجد مستندات للتحليل",
1872-
"sampled": "تم أخذ عينة من {docs} مستند · {fields} حقل",
1873-
"colField": "الحقل",
1874-
"colTypes": "الأنواع",
1875-
"colCoverage": "التغطية",
1876-
"sampleRandom": "Random",
1877-
"sampleFirst": "First",
1878-
"sampleLast": "Last",
1879-
"sampleAll": "All",
1880-
"sampleSizeN": "{n} docs",
1881-
"allCapped": "capped at 10k",
1882-
"validatorTitle": "Validation rules",
1883-
"exportSchemaBtn": "Export",
1884-
"exportJsonSchema": "JSON Schema",
1885-
"exportMongoose": "Mongoose model",
1886-
"exportHtml": "HTML report"
1887-
},
18881787
"indexManager": {
18891788
"loading": "جارٍ تحميل الفهارس...",
18901789
"retry": "إعادة المحاولة",
@@ -4162,17 +4061,6 @@
41624061
"powerShield": "تجنب موت واحد",
41634062
"powerShrink": "اختصار الذيل"
41644063
},
4165-
"RedisCommander": {
4166-
"page": {
4167-
"title": "منفّذ Redis",
4168-
"dialogTitle": "اتصالات Redis",
4169-
"heroTitle": "منفّذ Redis",
4170-
"heroDesc": "اتصل بمثيلات Redis. تصفح المفاتيح، وعدّل القيم، ونفّذ الأوامر. بيانات الاعتماد مشفرة في متصفحك.",
4171-
"heroAddConnection": "إضافة اتصال",
4172-
"vaultLockedTitle": "الخزنة مقفلة",
4173-
"vaultLockedDesc": "افتح الخزنة للوصول إلى الاتصالات المحفوظة."
4174-
}
4175-
},
41764064
"Minesweeper": {
41774065
"title": "كاسحة الألغام",
41784066
"subtitle": "اعثر على جميع الخلايا الآمنة دون تفجير لغم",

apps/desktop-ui/messages/ca.json

Lines changed: 0 additions & 112 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@
5353
"breakRoom": "Sala de descans",
5454
"game2048": "2048",
5555
"sudoku": "Sudoku",
56-
"redisCommander": "Redis Commander",
5756
"yamlFormatter": "Formatador YAML",
5857
"sshKeyGenerator": "Generador de claus SSH / RSA",
5958
"curlToCode": "cURL to Code",
@@ -529,10 +528,6 @@
529528
"title": "Sudoku",
530529
"description": "Trencaclosques de números clàssics. 3 nivells de dificultat, 150 etapes cadascun."
531530
},
532-
"redisCommander": {
533-
"title": "Redis Commander",
534-
"description": "Navega per claus, inspecciona valors i executa ordres en qualsevol instància Redis."
535-
},
536531
"curlToCode": {
537532
"title": "cURL to Code",
538533
"description": "Convert a curl command into fetch, axios, Python, Go, and more."
@@ -1590,9 +1585,6 @@
15901585
"confirmDeleteConnectionDesc": "This will permanently remove this connection. The database itself will not be affected.",
15911586
"confirmDropDbDesc": "This will permanently delete the database and all its collections. This cannot be undone.",
15921587
"confirmDropCollectionDesc": "This will permanently delete the collection and all its documents. This cannot be undone.",
1593-
"bulkDeleteFailed": "{count, plural, one {No s'ha pogut eliminar # col·lecció} other {No s'han pogut eliminar # col·leccions}}",
1594-
"bulkDeleted": "{count, plural, one {# col·lecció eliminada} other {# col·leccions eliminades}}",
1595-
"bulkDeleteButton": "{count, plural, one {Elimina # col·lecció} other {Elimina # col·leccions}}",
15961588
"bulkDeleteFailed": "{count, plural, one {No s'ha pogut suprimir # col·lecció} other {No s'han pogut suprimir # col·leccions}}",
15971589
"bulkDeleted": "{count, plural, one {S'ha suprimit # col·lecció} other {S'han suprimit # col·leccions}}",
15981590
"bulkDeleteButton": "Suprimeix {count, plural, one {# col·lecció} other {# col·leccions}}"
@@ -1683,24 +1675,6 @@
16831675
"docInsertFailed": "No s'ha pogut inserir el document",
16841676
"docUpdateFailed": "No s'ha pogut actualitzar el document",
16851677
"indexesLoadFail": "No s'han pogut carregar els índexs",
1686-
"bulkDeleted": "{count, plural, one {# document eliminat} other {# documents eliminats}}",
1687-
"bulkDeleteFailed": "Ha fallat l'eliminació massiva",
1688-
"selectedCount": "{count, plural, one {# document seleccionat} other {# documents seleccionats}}",
1689-
"deleteSelected": "Elimina els seleccionats",
1690-
"clearSelection": "Neteja",
1691-
"statusLoading": "S'està carregant…",
1692-
"statusShowing": "{from}–{to} de {total} documents",
1693-
"statusEmpty": "0 documents",
1694-
"statusSelected": "{count} seleccionats",
1695-
"bulkDeleteTitle": "Voleu eliminar {count, plural, one {# document} other {# documents}}?",
1696-
"bulkDeleteDescription": "Això eliminarà permanentment {count, plural, one {# document} other {# documents}} de {collection}. No es pot desfer.",
1697-
"bulkDeleting": "S'està eliminant…",
1698-
"bulkDeleteConfirm": "Elimina-ho tot",
1699-
"queryErrorTitle": "No s'han pogut carregar els documents",
1700-
"retry": "Torna-ho a provar",
1701-
"docInsertFailed": "No s'ha pogut inserir el document",
1702-
"docUpdateFailed": "No s'ha pogut actualitzar el document",
1703-
"indexesLoadFail": "No s'han pogut carregar els índexs",
17041678
"bulkDeleted": "{count, plural, one {# document suprimit} other {# documents suprimits}}",
17051679
"bulkDeleteFailed": "Ha fallat la supressió massiva",
17061680
"selectedCount": "{count, plural, one {# document seleccionat} other {# documents seleccionats}}",
@@ -1794,7 +1768,6 @@
17941768
"export": "Exporta",
17951769
"sheetName": "Dades",
17961770
"formatJson": "JSON",
1797-
"pageOnlyNote": "Exporta només la pàgina actual ({count, plural, one {# document} other {# documents}})",
17981771
"pageOnlyNote": "Només exporta la pàgina actual ({count, plural, one {# document} other {# documents}})"
17991772
},
18001773
"jsonTree": {
@@ -1811,80 +1784,6 @@
18111784
"previewEmpty": "Cap document en aquesta etapa",
18121785
"previewFail": "La previsualització ha fallat"
18131786
},
1814-
"indexManager": {
1815-
"loading": "S'estan carregant els índexs…",
1816-
"retry": "Torna-ho a provar",
1817-
"countLabel": "{count, plural, one {# índex} other {# índexs}}",
1818-
"totalSize": "{size} en total",
1819-
"statsDocs": "{count, plural, one {# doc} other {# docs}}",
1820-
"statsStorage": "{size} d'emmagatzematge",
1821-
"statsAvgObj": "{size} mitj./doc",
1822-
"newIndex": "Índex nou",
1823-
"createTitle": "Crea un índex",
1824-
"fieldPlaceholder": "Nom del camp",
1825-
"ascending": "Ascendent",
1826-
"descending": "Descendent",
1827-
"addField": "Afegeix un camp",
1828-
"unique": "Únic",
1829-
"sparse": "Sparse",
1830-
"ttlLabel": "TTL (segons)",
1831-
"ttlPlaceholder": "p. ex. 3600",
1832-
"cancel": "Cancel·la",
1833-
"create": "Crea",
1834-
"creating": "S'està creant…",
1835-
"created": "Índex creat",
1836-
"createFailed": "No s'ha pogut crear l'índex",
1837-
"fieldRequired": "El nom del camp és obligatori",
1838-
"dropped": "Índex \"{name}\" eliminat",
1839-
"dropFailed": "No s'ha pogut eliminar l'índex",
1840-
"dropTitle": "Voleu eliminar l'índex?",
1841-
"dropDescription": "Això eliminarà permanentment l'índex \"{name}\". Les consultes que l'utilitzen seran més lentes.",
1842-
"dropping": "S'està eliminant…",
1843-
"dropConfirm": "Elimina l'índex",
1844-
"badgeSystem": "sistema",
1845-
"badgeUnique": "únic",
1846-
"badgeSparse": "sparse",
1847-
"badgeTtl": "TTL",
1848-
"empty": "No s'ha trobat cap índex"
1849-
},
1850-
"importDialog": {
1851-
"title": "Importa documents a {collection}",
1852-
"onlyJson": "Només s'admeten fitxers .json",
1853-
"invalidStructure": "El fitxer ha de contenir una matriu o un objecte JSON",
1854-
"invalidJson": "JSON no vàlid: no s'ha pogut analitzar el fitxer",
1855-
"imported": "{count, plural, one {# document importat} other {# documents importats}}",
1856-
"importFailed": "Ha fallat la importació",
1857-
"dropHint": "Arrossega i deixa anar o fes clic per pujar",
1858-
"dropSubHint": "Admet matriu JSON o NDJSON",
1859-
"docsCount": "{count, plural, one {# doc} other {# docs}}",
1860-
"previewLabel": "Vista prèvia (primers 3 documents)",
1861-
"moreDocs": "… i {count} documents més",
1862-
"cancel": "Cancel·la",
1863-
"importing": "S'està important…",
1864-
"importCount": "{count, plural, one {Importa # doc} other {Importa # docs}}",
1865-
"importBtn": "Importa"
1866-
},
1867-
"schemaView": {
1868-
"analyzing": "S'està analitzant l'esquema…",
1869-
"loadFailed": "No s'ha pogut analitzar l'esquema",
1870-
"retry": "Torna-ho a provar",
1871-
"noDocs": "No hi ha documents per analitzar",
1872-
"sampled": "{docs} documents mostrejats · {fields} camps",
1873-
"colField": "Camp",
1874-
"colTypes": "Tipus",
1875-
"colCoverage": "Cobertura",
1876-
"sampleRandom": "Random",
1877-
"sampleFirst": "First",
1878-
"sampleLast": "Last",
1879-
"sampleAll": "All",
1880-
"sampleSizeN": "{n} docs",
1881-
"allCapped": "capped at 10k",
1882-
"validatorTitle": "Validation rules",
1883-
"exportSchemaBtn": "Export",
1884-
"exportJsonSchema": "JSON Schema",
1885-
"exportMongoose": "Mongoose model",
1886-
"exportHtml": "HTML report"
1887-
},
18881787
"indexManager": {
18891788
"loading": "S'estan carregant els índexs…",
18901789
"retry": "Torna-ho a provar",
@@ -4193,17 +4092,6 @@
41934092
"paused": "En pausa",
41944093
"gameOver": "Fi de partida"
41954094
},
4196-
"RedisCommander": {
4197-
"page": {
4198-
"title": "Redis Commander",
4199-
"dialogTitle": "Connexions Redis",
4200-
"heroTitle": "Redis Commander",
4201-
"heroDesc": "Connecteu-vos a instàncies Redis. Navegueu per claus, editeu valors i executeu ordres. Les credencials es xifren al vostre navegador.",
4202-
"heroAddConnection": "Afegeix connexió",
4203-
"vaultLockedTitle": "Caixa forta bloquejada",
4204-
"vaultLockedDesc": "Desbloquegeu la caixa forta per accedir a les connexions desades."
4205-
}
4206-
},
42074095
"SshKeyGenerator": {
42084096
"title": "Generador de claus SSH",
42094097
"subtitle": "Genera parells Ed25519 o RSA en OpenSSH i PEM",

0 commit comments

Comments
 (0)