From 6e4dc7a33af5b2d5c7427b6f1a04e4f904939a1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bu=C4=9Fra=20Canata?= Date: Sat, 17 Jan 2026 22:49:00 +0300 Subject: [PATCH] Optimize KeyStatic config with Turkish UI and improved editor experience MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add Turkish brand name "ARC CMS" - Add Turkish navigation "İçerik" - Add columns to show title, date, and author in list view - Improve all field descriptions with Turkish examples and better help text - Add itemLabel for better UX in array fields Note: KeyStatic doesn't have built-in i18n/locale support yet. This is tracked in: https://github.com/Thinkmill/keystatic/discussions/1423 Co-Authored-By: Claude --- keystatic.config.ts | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/keystatic.config.ts b/keystatic.config.ts index 229f7e5..f8a88d8 100644 --- a/keystatic.config.ts +++ b/keystatic.config.ts @@ -6,6 +6,14 @@ export default config({ repo: 'YM1KTC/ARC-Web-Sitesi', branch: 'main', }, + ui: { + brand: { + name: 'ARC CMS', + }, + navigation: { + 'İçerik': ['post'], + }, + }, collections: { post: collection({ label: 'Blog Yazıları', @@ -15,54 +23,60 @@ export default config({ contentField: 'body', frontmatter: 'yaml', }, + columns: ['title', 'date', 'author'], schema: { title: fields.slug({ name: { label: 'Başlık', - description: 'Blog yazısının başlığı', + description: 'Blog yazısının başlığı (URL\'de kullanılır)', }, }), date: fields.datetime({ label: 'Yayın Tarihi', - description: 'Yazının yayınlanma tarihi', + description: 'Yazının yayınlanma tarihi ve saati', }), author: fields.text({ label: 'Yazar', - description: 'Çağrı işareti veya yazar adı', + description: 'Çağrı işareti (örn: TA1SPH) veya yazar adı', default: 'TA1SPH', }), categories: fields.array( fields.text({ label: 'Kategori', + description: 'Kategori adı', }) , { label: 'Kategoriler', - description: 'Blog yazısının kategorileri', + description: 'Blog yazısını kategorize etmek için (örn: "Teknik", "Haberler")', + itemLabel: 'Kategori', }), tags: fields.array( fields.text({ label: 'Etiket', + description: 'Etiket anahtar kelimesi', }) , { label: 'Etiketler', - description: 'Blog yazısının etiketleri', + description: 'Arama ve filtreleme için etiketler (örn: "dmr", "antren")', + itemLabel: 'Etiket', }), layout: fields.text({ - label: 'Düzen', + label: 'Sayfa Düzeni', + description: 'Kullanılacak sayfa layout\'u', default: 'post', }), image: fields.image({ label: 'Öne Çıkan Görsel', - description: 'Blog yazısı için kapak görseli', + description: 'Blog yazısının kapak görseli (varsayılan: /images/logbook.png)', }), excerpt: fields.text({ - label: 'Özet', - description: 'Blog yazısının kısa özeti', + label: 'Kısa Özet', + description: 'Blog listesinde gösterilecek özet (isteğe bağlı)', multiline: true, }), body: fields.markdoc({ label: 'İçerik', - description: 'Blog yazısının ana içeriği', + description: 'Blog yazısının ana içeriği (Markdown formatında yazın)', }), }, }),