desktop editors: edit in place what App Store Connect and Play Console let the owner edit (listings per language for both stores with live counters and the check / scan rules, store details, App info, age rating, App Review, Play store settings, Data safety and App Privacy answers, promotion blocks, catalog names / prices / offers, TestFlight information, scene order); storebound edit (project.edit) saves into the config by path keeping comments and formatting, the listing files and the review contact, dry run with the diff and the checks first; Apply shows each store's dry run in the window; unsaved edits survive tab switches with undo / redo; tests/edit.test.ts, apps/desktop/tests/edits.test.ts, boot check editor case
This commit is contained in:
parent
714352ec18
commit
3cea2af4e1
37 changed files with 3020 additions and 54 deletions
|
|
@ -1547,4 +1547,182 @@ export const tr: Record<keyof typeof en, string> = {
|
|||
'deps.sdkFrom': 'Bulunduğu yer',
|
||||
'deps.sdkNone': 'Bulunamadı. play build buna ihtiyaç duyar (Android Studio\'yu kurun veya ANDROID_HOME ayarlayın). Bakılan yerler:',
|
||||
'ai.dsFrom': 'kaynak: {source}',
|
||||
'ed.countAria': '{limit} karakterin {n} tanesi',
|
||||
'ed.unsavedField': 'Kaydedilmemiş değişiklik',
|
||||
'ed.was': 'Kayıtlı:',
|
||||
'ed.empty': '(boş)',
|
||||
'ed.removed': '(kaldırıldı)',
|
||||
'ed.reset': 'Geri al',
|
||||
'ed.notSet': 'Ayarlanmadı',
|
||||
'ed.none': 'yok',
|
||||
'ed.notNumber': 'Sayı değil',
|
||||
'ed.notJson': 'Geçerli JSON değil: {error}',
|
||||
'ed.noGit': 'Git klasörü değil',
|
||||
'ed.gitClean': 'Bu dosyalarda commit edilmemiş değişiklik yok',
|
||||
'ed.gitDirty': 'Git\'te commit edilmemiş: {files}. storebound asla commit etmez.',
|
||||
'ed.also': 'aynı bölüm {codes} için de geçerli',
|
||||
'ed.newFile': 'yeni dosya',
|
||||
'ed.masked': 'Kişisel veri: gösterilmiyor.',
|
||||
'ed.unsaved': '{count} kaydedilmemiş değişiklik',
|
||||
'ed.unsaved_one': '1 kaydedilmemiş değişiklik',
|
||||
'ed.noChanges': 'Kaydedilmemiş değişiklik yok',
|
||||
'ed.undo': 'Geri al',
|
||||
'ed.redo': 'Yinele',
|
||||
'ed.discard': 'Vazgeç',
|
||||
'ed.review': 'Gözden geçir ve kaydet',
|
||||
'ed.close': 'Kapat',
|
||||
'ed.fixFirst': 'Önce hataları düzeltin',
|
||||
'ed.save': 'Uygulama klasörüne kaydet',
|
||||
'ed.saved': 'Uygulama klasörüne kaydedildi',
|
||||
'ed.nothingToApply': 'Mağazada değişecek bir şey yok.',
|
||||
'ed.applyNow': 'Mağazaya uygula',
|
||||
'ed.saveFirst': 'Önce düzenlemeleri kaydedin: mağazaya dosyalardaki gönderilir.',
|
||||
'ed.statusDraft': 'Makine taslağı, gözden geçirilmedi',
|
||||
'ed.statusTranslate': 'Henüz çevrilmedi',
|
||||
'ed.alsoServes': 'ayrıca {codes}',
|
||||
'ed.newSection': '{lang} için listeleme dosyasında henüz bölüm yok. Zorunlu alanları doldurun; kaydetmek bölümü ekler.',
|
||||
'ed.keywordsHint': 'Virgülle ayrılmış, virgülden sonra boşluk yok; ad veya alt başlıktaki kelimeleri tekrarlamayın.',
|
||||
'ed.whatsNewApple': 'İlk sürümde kullanılamaz.',
|
||||
'ed.nameHint': 'Boş: yapılandırmadaki uygulama adı.',
|
||||
'ed.supportUrl': 'Destek URL\'si',
|
||||
'ed.marketingUrl': 'Pazarlama URL\'si',
|
||||
'ed.privacyUrl': 'Gizlilik politikası URL\'si',
|
||||
'ed.termsUrl': 'Kullanım koşulları URL\'si',
|
||||
'ed.termsHint': 'Aboneliklerde gerekli (Apple 3.1.2).',
|
||||
'ed.website': 'Web sitesi',
|
||||
'ed.websiteHint': 'Google Play: app-ads.txt dosyasını sunan alan adı.',
|
||||
'ed.contactEmail': 'İletişim e-postası',
|
||||
'ed.copyright': 'Telif hakkı',
|
||||
'ed.video': 'Tanıtım videosu (YouTube URL\'si)',
|
||||
'ed.videoHint': 'Herkese açık veya liste dışı, reklamsız, yerleştirilebilir. Play video yüklemesi almaz.',
|
||||
'ed.listingTitle': 'Listelemeyi düzenle',
|
||||
'ed.listingSub': 'Dil başına, iki mağaza yan yana. Sayaçlar mağaza sınırlarını kullanır; check ve scan denetimleri yazarken çalışır.',
|
||||
'ed.pullPlay': 'Google Play\'den çek',
|
||||
'ed.pullApple': 'App Store\'dan çek',
|
||||
'ed.pulled': 'Listeleme dosyası artık mağazayla aynı',
|
||||
'ed.pullHint': 'Canlı metinleri okur ve dosyalarda bir şey değişmeden önce farkı gösterir.',
|
||||
'ed.pullDirty': 'Kaydedilmemiş düzenlemeleriniz var: çekilen metnin üzerinde bekler.',
|
||||
'ed.pullNote': 'Çekme, farkı gösterdikten sonra listeleme dosyalarını yeniden yazar; kaydedilmemiş düzenlemeler üstte bekler.',
|
||||
'ed.playCode': 'Play dili',
|
||||
'ed.rtl': 'Sağdan sola yazılan dil.',
|
||||
'ed.noStoreForLang': '{lang} yapılandırmada iki mağazada da yok.',
|
||||
'ed.detailsTitle': 'Mağaza ayrıntıları',
|
||||
'ed.detailsSub': 'URL\'ler, iletişim ve telif hakkı, iki mağazada ortak (storebound.config.ts).',
|
||||
'ed.applyTitle': 'Mağazalara uygula',
|
||||
'ed.applySub': 'Her mağaza: pencerede deneme çalıştırması (dil başına eskiden yeniye), sonra onay penceresi, sonra gerçek çalıştırma.',
|
||||
'ed.applyPlay': 'Google Play listelemesi: önizle',
|
||||
'ed.applyApple': 'App Store {version}: önizle',
|
||||
'ed.applyNote': 'Hiçbir şey incelemeye gitmez: metinler sürümü veya değişiklikleri incelemeye gönderene kadar mağazada bekler.',
|
||||
'ed.appleInfoTitle': 'App Store uygulama bilgileri',
|
||||
'ed.appleInfoSub': 'Kategoriler, içerik hakları, fiyat, ihracat uyumluluğu ve App Store adı.',
|
||||
'ed.catPrimary': 'Birincil kategori',
|
||||
'ed.catSub1': 'Oyun alt kategorisi 1',
|
||||
'ed.catSub2': 'Oyun alt kategorisi 2',
|
||||
'ed.catSecondary': 'İkincil kategori',
|
||||
'ed.free': 'Fiyat',
|
||||
'ed.freeHint': 'Ücretsiz: her bölgede ve yenilerinde sunulur.',
|
||||
'ed.encHint': 'Bunu yalnızca siz yanıtlayabilirsiniz: export-compliance becerisi.',
|
||||
'ed.appleName': 'App Store adı',
|
||||
'ed.appleNameHint': 'Uygulama adı App Store\'da alınmışsa.',
|
||||
'ed.ageTitle': 'Yaş derecelendirmesi',
|
||||
'ed.ageSub': 'App Store beyanının her sorusu. Ayarlanmadı: "hiç" yanıtı.',
|
||||
'ed.ageDefault': 'Varsayılan: {value}',
|
||||
'ed.reviewSub': 'App Review için oturum açma, notlar ve iletişim. Demo hesap parolası asla gösterilmez.',
|
||||
'ed.notesHint': 'App Store Connect en fazla {max} bayt alır.',
|
||||
'ed.signInSteps': 'İnceleyiciler için oturum açma adımları',
|
||||
'ed.contact_firstName': 'İletişim adı',
|
||||
'ed.contact_lastName': 'İletişim soyadı',
|
||||
'ed.contact_phone': 'İletişim telefonu',
|
||||
'ed.contact_email': 'İletişim e-postası',
|
||||
'ed.contactHint': 'Kişisel veri: gizli .storebound/ klasöründe (gitignore) tutulur, maskeli gösterilir. Değiştirmek için yazın.',
|
||||
'ed.demoHint': 'Demo hesap yalnızca gizli .storebound/ klasöründe; pencere parolayı asla okumaz.',
|
||||
'ed.game': 'Oyun',
|
||||
'ed.app': 'Uygulama',
|
||||
'ed.playSettingsTitle': 'Google Play mağaza ayarları',
|
||||
'ed.playSettingsSub': 'Kategori, ülkeler, yönetilen yayınlama, hedef kitle, hesap silme sayfası.',
|
||||
'ed.playCategory': 'Uygulama kategorisi',
|
||||
'ed.noApiHint': 'API yok: konsol planı adımı bu değeri kullanır.',
|
||||
'ed.managed': 'Yönetilen yayınlama',
|
||||
'ed.countries': 'Üretim ülkeleri',
|
||||
'ed.countriesHint': 'İki harfli kodlar (US, GB, TR). Boş: tüm ülkeler.',
|
||||
'ed.targetAges': 'Hedef yaş grupları',
|
||||
'ed.targetAgesHint': 'Şunlardan: {groups}.',
|
||||
'ed.deletionUrl': 'Hesap silme sayfası',
|
||||
'ed.declTitle': 'Veri güvenliği ve App Privacy yanıtları',
|
||||
'ed.declSub': 'İki formun doldurulduğu yanıtlar. Bunları yalnızca siz bilirsiniz: uygulamanın ve SDK\'larının gerçekte yaptığını yazın.',
|
||||
'ed.dsTypes': 'Veri türleri (Play)',
|
||||
'ed.dsTypesHint': 'Play veri türü kimliğinden kullanıma: { "PSL_EMAIL": { "shared": false, "collect": ["account"] } }. Listede olmayan: toplanmıyor.',
|
||||
'ed.apAnswers': 'App Privacy (App Store)',
|
||||
'ed.apHint': 'Kaydederken tüm yapılandırmayla denetlenir; App Privacy\'nin API\'si yok (konsolda doldurma).',
|
||||
'ed.promoTitle': 'App Store tanıtımı',
|
||||
'ed.promoSub': 'Öne çıkan satın almalar, özel ürün sayfaları ve uygulama içi etkinlikler.',
|
||||
'ed.promoted': 'Öne çıkan uygulama içi satın almalar',
|
||||
'ed.promotedHint': 'Etkinleştirme terminal adımı olarak kalır (apple promoted --enable).',
|
||||
'ed.cpp': 'Özel ürün sayfaları',
|
||||
'ed.cppHint': 'Sayfayı gönderme ve görünür yapma terminal adımları olarak kalır.',
|
||||
'ed.events': 'Uygulama içi etkinlikler',
|
||||
'ed.eventsHint': 'Yerel ayar başına ad 30, kısa 50, uzun 120 karakter. İncelemeye gönderme terminal adımı olarak kalır.',
|
||||
'ed.applyCpp': 'Özel ürün sayfaları: önizle',
|
||||
'ed.applyEvents': 'Uygulama içi etkinlikler: önizle',
|
||||
'ed.applyInfoSub': 'Uygulama bilgileri, App Review, ihracat uyumluluğu, Veri güvenliği ve Play uygulama ayrıntıları.',
|
||||
'ed.applyPlayDetails': 'Play iletişim e-postası ve web sitesi: önizle',
|
||||
'ed.playConsoleOnly': 'Kategori, ülkeler ve yönetilen yayınlamanın API\'si yok: Uygulama bilgileri > Konsol adımları.',
|
||||
'ed.itemName': 'Ad',
|
||||
'ed.itemDescription': 'Açıklama',
|
||||
'ed.benefits': 'Avantajlar (Play)',
|
||||
'ed.benefitsHint': 'Virgülle ayrılmış, en fazla 4, her biri 40 karakter.',
|
||||
'ed.usd': 'Taban fiyat (USD)',
|
||||
'ed.usdHint': 'Canlı bir ürünün yeni fiyatı kararınızı bekler (Fiyat değişikliklerini uygula).',
|
||||
'ed.refName': 'Referans adı',
|
||||
'ed.reviewNote': 'İnceleme notu',
|
||||
'ed.reviewShot': 'İnceleme ekran görüntüsü',
|
||||
'ed.family': 'Aile Paylaşımı',
|
||||
'ed.offerCodes': 'Teklif kodları',
|
||||
'ed.offerCodesHint': 'Kod oluşturma terminal adımı olarak kalır (kupon gibi çalışırlar).',
|
||||
'ed.level': 'Gruptaki düzey',
|
||||
'ed.levelHint': '1 = en yüksek hizmet düzeyi.',
|
||||
'ed.period': 'Dönem',
|
||||
'ed.periodHint': 'Abonelik onaylandıktan sonra değiştirilemez.',
|
||||
'ed.intro': 'Tanıtım teklifi',
|
||||
'ed.introHint': 'Örneğin { "type": "free", "duration": "P1W" }.',
|
||||
'ed.offers': 'Promosyon teklifleri',
|
||||
'ed.winBack': 'Geri kazanma teklifleri',
|
||||
'ed.winBackHint': 'Oluşturma terminal adımı olarak kalır: başlangıç tarihinde kendiliğinden yayına girer.',
|
||||
'ed.catalogTitle': 'Kataloğu düzenle',
|
||||
'ed.catalogEmpty': 'Yapılandırmada ürün veya abonelik yok',
|
||||
'ed.catalogEmptyText': 'store-iap-setup veya store-subscriptions becerisiyle ekleyin.',
|
||||
'ed.productsTitle': 'Uygulama içi ürünler',
|
||||
'ed.productsSub': 'Dil başına adlar, açıklamalar, fiyat ve inceleme ayrıntıları.',
|
||||
'ed.groupTitle': 'Abonelik grubu {name}',
|
||||
'ed.groupSub': 'Dil başına grup görünen adı ve her abonelik.',
|
||||
'ed.groupName': 'Grup görünen adı',
|
||||
'ed.applyCatalogSub': 'Her mağaza: pencerede ürün başına deneme çalıştırması, sonra onay penceresi.',
|
||||
'ed.applyPlayProducts': 'Play ürünleri: önizle',
|
||||
'ed.applyPlaySubs': 'Play abonelikleri: önizle',
|
||||
'ed.applyAppleIap': 'App Store uygulama içi satın almalar: önizle',
|
||||
'ed.applyAppleSubs': 'App Store abonelikleri: önizle',
|
||||
'ed.applyIapReview': 'İnceleme ekran görüntüleri: önizle',
|
||||
'ed.priceGate': 'Canlı ürünlerin fiyat değişiklikleri burada asla uygulanmaz: sahip eyleminde kararınızı bekler.',
|
||||
'ed.tfTitle': 'TestFlight bilgilerini düzenle',
|
||||
'ed.tfSub': 'Yerel ayar başına Neyi Test Etmeli, beta açıklaması, Beta App Review notları ve gruplar.',
|
||||
'ed.whatToTest': 'Neyi Test Etmeli',
|
||||
'ed.whatToTestHint': 'Boş: Yenilikler metni kullanılır.',
|
||||
'ed.betaDescription': 'Beta Uygulama Açıklaması',
|
||||
'ed.betaDescriptionAll': 'Beta Uygulama Açıklaması (tüm yerel ayarlar)',
|
||||
'ed.betaNotes': 'Beta App Review notları',
|
||||
'ed.tfGroups': 'Beta grupları',
|
||||
'ed.tfGroupsHint': '[{ "name": "Stüdyo ekibi", "internal": true }]. Mevcut gruplar asla değiştirilmez veya silinmez.',
|
||||
'ed.applyTfSub': 'Test bilgileri ve eksik gruplar. Harici test ve Beta App Review terminal adımları olarak kalır.',
|
||||
'ed.applyTfInfo': 'Test bilgileri: önizle',
|
||||
'ed.artTitle': 'Ekran görüntüsü sırası ve kareler',
|
||||
'ed.artSub': 'Mağazalar ekran görüntülerini bu sırayla gösterir. Görüntüsünü değiştirmek için bir sahneyi başka bir kareye yönlendirin.',
|
||||
'ed.artEmpty': 'Yapılandırmada ekran görüntüsü sahnesi yok',
|
||||
'ed.artEmptyText': 'shots ayarını store-screenshots becerisiyle yapın.',
|
||||
'ed.frame': 'Kare',
|
||||
'ed.up': 'Yukarı',
|
||||
'ed.down': 'Aşağı',
|
||||
'ed.moveUp': '{id} sahnesini yukarı taşı',
|
||||
'ed.moveDown': '{id} sahnesini aşağı taşı',
|
||||
'ed.applyArtSub': 'Oluştur, sonra yükle: yükleme mağazadaki ekran görüntüsü setinin yerini alır (önce deneme çalıştırması).',
|
||||
'ed.loadFailed': 'Uygulama klasörünün dosyaları okunamadı: {error}',
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue