Ariver
2026-06-11 2774b3ea8fbcc13dc69bbd2cde9e641eeb105679
Add uncategorized layout reset option
34 files modified
378 ■■■■■ changed files
src/Apptag/AppLibraryController.swift 12 ●●●●● patch | view | raw | blame | history
src/Apptag/DataLayer.swift 13 ●●●●● patch | view | raw | blame | history
src/Apptag/Info.plist 4 ●●●● patch | view | raw | blame | history
src/Apptag/Localization/ar-Najdi.json 8 ●●●●● patch | view | raw | blame | history
src/Apptag/Localization/ar.json 8 ●●●●● patch | view | raw | blame | history
src/Apptag/Localization/cs.json 8 ●●●●● patch | view | raw | blame | history
src/Apptag/Localization/da.json 8 ●●●●● patch | view | raw | blame | history
src/Apptag/Localization/de.json 8 ●●●●● patch | view | raw | blame | history
src/Apptag/Localization/en.json 8 ●●●●● patch | view | raw | blame | history
src/Apptag/Localization/es.json 8 ●●●●● patch | view | raw | blame | history
src/Apptag/Localization/fr.json 8 ●●●●● patch | view | raw | blame | history
src/Apptag/Localization/id.json 8 ●●●●● patch | view | raw | blame | history
src/Apptag/Localization/it.json 8 ●●●●● patch | view | raw | blame | history
src/Apptag/Localization/ja.json 8 ●●●●● patch | view | raw | blame | history
src/Apptag/Localization/ko.json 8 ●●●●● patch | view | raw | blame | history
src/Apptag/Localization/ms.json 8 ●●●●● patch | view | raw | blame | history
src/Apptag/Localization/nb.json 8 ●●●●● patch | view | raw | blame | history
src/Apptag/Localization/nl.json 8 ●●●●● patch | view | raw | blame | history
src/Apptag/Localization/nn.json 8 ●●●●● patch | view | raw | blame | history
src/Apptag/Localization/no.json 8 ●●●●● patch | view | raw | blame | history
src/Apptag/Localization/pl.json 8 ●●●●● patch | view | raw | blame | history
src/Apptag/Localization/pt-BR.json 8 ●●●●● patch | view | raw | blame | history
src/Apptag/Localization/ro.json 8 ●●●●● patch | view | raw | blame | history
src/Apptag/Localization/ru.json 8 ●●●●● patch | view | raw | blame | history
src/Apptag/Localization/sr-Cyrl.json 8 ●●●●● patch | view | raw | blame | history
src/Apptag/Localization/sv.json 8 ●●●●● patch | view | raw | blame | history
src/Apptag/Localization/th.json 8 ●●●●● patch | view | raw | blame | history
src/Apptag/Localization/tr.json 8 ●●●●● patch | view | raw | blame | history
src/Apptag/Localization/uk.json 8 ●●●●● patch | view | raw | blame | history
src/Apptag/Localization/vi.json 8 ●●●●● patch | view | raw | blame | history
src/Apptag/Localization/zh-Hans.json 8 ●●●●● patch | view | raw | blame | history
src/Apptag/Localization/zh-Hant.json 8 ●●●●● patch | view | raw | blame | history
src/Apptag/PreferencesView.swift 110 ●●●●● patch | view | raw | blame | history
src/CHANGELOG.md 7 ●●●●● patch | view | raw | blame | history
src/Apptag/AppLibraryController.swift
@@ -22,6 +22,10 @@
    let summary: SmartStartSummary?
}
struct AppLibraryUncategorizedResetResult {
    let snapshot: AppLibrarySnapshot
}
enum AppLibraryController {
    static func refresh(useCache: Bool = true) -> AppLibraryRefreshResult {
        let scannedApps = AppIndexer.scan(useCache: useCache)
@@ -56,6 +60,14 @@
        )
    }
    static func resetToUncategorized() -> AppLibraryUncategorizedResetResult {
        let scannedApps = AppIndexer.scan(useCache: false)
        let store = TagDatabase.resetAppTagAssignmentsToUncategorized()
        return AppLibraryUncategorizedResetResult(
            snapshot: makeSnapshot(scannedApps: scannedApps, store: store)
        )
    }
    private static func makeSnapshot(
        scannedApps: [AppInfo],
        store: TagDatabase.Store
src/Apptag/DataLayer.swift
@@ -1234,6 +1234,19 @@
        return store
    }
    @discardableResult
    static func resetAppTagAssignmentsToUncategorized() -> Store {
        let previousStore = loadWithEnsuredCategoryScheme()
        var store = previousStore
        store.appTags = [:]
        saveUserCategorySchemeMutation(
            store,
            previous: previousStore,
            reason: "reset-uncategorized"
        )
        return loadWithEnsuredCategoryScheme()
    }
    private static func applyImportedCategorySchemeMetadata(to store: inout Store, importedFileURL url: URL) {
        let importedCreatedAt = importedSchemeCreatedAt(from: url)
        store.categoryScheme.currentCreatedAt = importedCreatedAt
src/Apptag/Info.plist
@@ -19,9 +19,9 @@
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <key>CFBundleShortVersionString</key>
    <string>7.8.29</string>
    <string>7.8.30</string>
    <key>CFBundleVersion</key>
    <string>20260611.1808</string>
    <string>20260611.1858</string>
    <key>LSApplicationCategoryType</key>
    <string>public.app-category.utilities</string>
    <key>LSMinimumSystemVersion</key>
src/Apptag/Localization/ar-Najdi.json
@@ -138,9 +138,17 @@
  "scheme.smartStart": "مخطط Smart Start",
  "scheme.beforeSmartStart": "قبل Smart Start",
  "settings.systemScheme": "مخطط البداية الذكي للنظام:",
  "settings.initialLayout": "تهيئة الترتيب:",
  "settings.initialLayoutUncategorized": "غير مصنف",
  "settings.initialLayoutSmart": "تصنيف ذكي مبدئي",
  "settings.applyScheme": "تطبيق",
  "settings.applySystemSchemeWarningTitle": "الأفضل تسوي نسخة احتياطية",
  "settings.applySystemSchemeWarningMessage": "تطبيق مخطط البداية الذكي للنظام بيستبدل المخطط المحلي الحالي. ما عندك نسخة احتياطية للحين؛ نوصي بقوة تصدر نسخة احتياطية قبل التطبيق.",
  "settings.resetToUncategorizedWarningTitle": "ترجعها لغير مصنف؟",
  "settings.resetToUncategorizedWarningMessage": "هذا بيشيل علاقات التصنيف الحالية بين التطبيقات والوسوم، وكل التطبيقات بترجع غير مصنف. ما راح يحذف تطبيقات ولا وسوم ولا نسخ احتياطية.",
  "settings.confirmResetToUncategorized": "تأكيد الإرجاع",
  "settings.resetToUncategorizedApplied": "تم الإرجاع لغير مصنف",
  "settings.resetToUncategorizedAppliedMessage": "تمت إزالة العلاقات الحالية بين التطبيقات والوسوم. التطبيقات والوسوم والنسخ الاحتياطية باقية.",
  "settings.confirmApplyScheme": "طبّق على أي حال",
  "settings.cancel": "إلغاء",
  "settings.systemSchemeApplied": "تم تطبيق مخطط التصنيف",
src/Apptag/Localization/ar.json
@@ -138,9 +138,17 @@
  "scheme.smartStart": "مخطط Smart Start",
  "scheme.beforeSmartStart": "قبل Smart Start",
  "settings.systemScheme": "مخطط البداية الذكي للنظام:",
  "settings.initialLayout": "تهيئة التخطيط:",
  "settings.initialLayoutUncategorized": "غير مصنف",
  "settings.initialLayoutSmart": "تصنيف أولي ذكي",
  "settings.applyScheme": "تطبيق",
  "settings.applySystemSchemeWarningTitle": "يُوصى بالنسخ الاحتياطي",
  "settings.applySystemSchemeWarningMessage": "سيؤدي تطبيق مخطط البداية الذكي للنظام إلى استبدال المخطط المحلي الحالي. لم تقم بعمل نسخة احتياطية بعد؛ نوصي بشدة بتصدير نسخة احتياطية قبل التطبيق.",
  "settings.resetToUncategorizedWarningTitle": "إعادة التعيين إلى غير مصنف؟",
  "settings.resetToUncategorizedWarningMessage": "سيؤدي هذا إلى إزالة علاقات التصنيف الحالية بين التطبيقات والوسوم، وستعود كل التطبيقات إلى غير مصنف. لن يتم حذف التطبيقات أو الوسوم أو النسخ الاحتياطية.",
  "settings.confirmResetToUncategorized": "تأكيد إعادة التعيين",
  "settings.resetToUncategorizedApplied": "تمت إعادة التعيين إلى غير مصنف",
  "settings.resetToUncategorizedAppliedMessage": "تمت إزالة العلاقات الحالية بين التطبيقات والوسوم. تم الاحتفاظ بالتطبيقات والوسوم والنسخ الاحتياطية.",
  "settings.confirmApplyScheme": "تطبيق على أي حال",
  "settings.cancel": "إلغاء",
  "settings.systemSchemeApplied": "تم تطبيق مخطط التصنيف",
src/Apptag/Localization/cs.json
@@ -138,9 +138,17 @@
  "scheme.smartStart": "Schéma Smart Start",
  "scheme.beforeSmartStart": "Před Smart Start",
  "settings.systemScheme": "Chytré počáteční schéma systému:",
  "settings.initialLayout": "Inicializace rozvrzeni:",
  "settings.initialLayoutUncategorized": "Nezarazeno",
  "settings.initialLayoutSmart": "Chytre pocatecni kategorie",
  "settings.applyScheme": "Použít",
  "settings.applySystemSchemeWarningTitle": "Doporučujeme zálohu",
  "settings.applySystemSchemeWarningMessage": "Použití chytrého počátečního schématu systému nahradí aktuální místní schéma. Ještě nemáte zálohu; důrazně doporučujeme ji před použitím exportovat.",
  "settings.resetToUncategorizedWarningTitle": "Resetovat na Nezarazeno?",
  "settings.resetToUncategorizedWarningMessage": "Tim se odstrani aktualni vztahy mezi aplikacemi a stitky a vsechny aplikace se vrati do Nezarazeno. Aplikace, stitky ani zalohy nebudou smazany.",
  "settings.confirmResetToUncategorized": "Resetovat",
  "settings.resetToUncategorizedApplied": "Resetovano na Nezarazeno",
  "settings.resetToUncategorizedAppliedMessage": "Aktualni vztahy mezi aplikacemi a stitky byly odstraneny. Aplikace, stitky a zalohy zustaly zachovany.",
  "settings.confirmApplyScheme": "Přesto použít",
  "settings.cancel": "Zrušit",
  "settings.systemSchemeApplied": "Schéma kategorií použito",
src/Apptag/Localization/da.json
@@ -138,9 +138,17 @@
  "scheme.smartStart": "Smart Start-skema",
  "scheme.beforeSmartStart": "Før Smart Start",
  "settings.systemScheme": "Systemets smarte startskema:",
  "settings.initialLayout": "Initialiser layout:",
  "settings.initialLayoutUncategorized": "Ukategoriseret",
  "settings.initialLayoutSmart": "Smarte startkategorier",
  "settings.applyScheme": "Anvend",
  "settings.applySystemSchemeWarningTitle": "Sikkerhedskopi anbefales",
  "settings.applySystemSchemeWarningMessage": "Anvendelse af systemets smarte startskema erstatter det aktuelle lokale skema. Du har ikke sikkerhedskopieret endnu; vi anbefaler kraftigt at eksportere en sikkerhedskopi først.",
  "settings.resetToUncategorizedWarningTitle": "Nulstil til Ukategoriseret?",
  "settings.resetToUncategorizedWarningMessage": "Dette fjerner de aktuelle kategori-relationer mellem apps og tags, og alle apps vender tilbage til Ukategoriseret. Apps, tags og sikkerhedskopier slettes ikke.",
  "settings.confirmResetToUncategorized": "Nulstil",
  "settings.resetToUncategorizedApplied": "Nulstillet til Ukategoriseret",
  "settings.resetToUncategorizedAppliedMessage": "De aktuelle relationer mellem apps og tags blev fjernet. Apps, tags og sikkerhedskopier blev bevaret.",
  "settings.confirmApplyScheme": "Anvend alligevel",
  "settings.cancel": "Annuller",
  "settings.systemSchemeApplied": "Kategoriskema anvendt",
src/Apptag/Localization/de.json
@@ -138,9 +138,17 @@
  "scheme.smartStart": "Smart-Start-Schema",
  "scheme.beforeSmartStart": "Vor Smart Start",
  "settings.systemScheme": "Intelligentes System-Startschema:",
  "settings.initialLayout": "Layout initialisieren:",
  "settings.initialLayoutUncategorized": "Nicht kategorisiert",
  "settings.initialLayoutSmart": "Smarte Anfangskategorien",
  "settings.applyScheme": "Anwenden",
  "settings.applySystemSchemeWarningTitle": "Backup empfohlen",
  "settings.applySystemSchemeWarningMessage": "Das Anwenden des intelligenten System-Startschemas ersetzt das aktuelle lokale Schema. Es wurde noch nicht gesichert; wir empfehlen dringend, vor dem Anwenden ein Backup zu exportieren.",
  "settings.resetToUncategorizedWarningTitle": "Auf Nicht kategorisiert zuruecksetzen?",
  "settings.resetToUncategorizedWarningMessage": "Dadurch werden die aktuellen App-Tag-Zuordnungen entfernt und alle Apps kehren zu Nicht kategorisiert zurueck. Apps, Tags und Backups werden nicht geloescht.",
  "settings.confirmResetToUncategorized": "Zuruecksetzen",
  "settings.resetToUncategorizedApplied": "Auf Nicht kategorisiert zurueckgesetzt",
  "settings.resetToUncategorizedAppliedMessage": "Die aktuellen App-Tag-Zuordnungen wurden entfernt. Apps, Tags und Backups wurden beibehalten.",
  "settings.confirmApplyScheme": "Trotzdem anwenden",
  "settings.cancel": "Abbrechen",
  "settings.systemSchemeApplied": "Kategorieschema angewendet",
src/Apptag/Localization/en.json
@@ -138,9 +138,17 @@
  "scheme.smartStart": "Smart Start",
  "scheme.beforeSmartStart": "Before Smart Start",
  "settings.systemScheme": "System initial scheme:",
  "settings.initialLayout": "Layout initialization:",
  "settings.initialLayoutUncategorized": "Uncategorized",
  "settings.initialLayoutSmart": "Smart initial categories",
  "settings.applyScheme": "Apply",
  "settings.applySystemSchemeWarningTitle": "Backup recommended",
  "settings.applySystemSchemeWarningMessage": "Applying the system smart initial scheme will replace the current local scheme. You have not backed it up yet; we strongly recommend exporting a backup before applying.",
  "settings.resetToUncategorizedWarningTitle": "Reset to Uncategorized?",
  "settings.resetToUncategorizedWarningMessage": "This will remove the current app-to-tag category relationships and return all apps to Uncategorized. Apps, tags, and backups will not be deleted.",
  "settings.confirmResetToUncategorized": "Reset",
  "settings.resetToUncategorizedApplied": "Reset to Uncategorized",
  "settings.resetToUncategorizedAppliedMessage": "Current app-to-tag category relationships were removed. Apps, tags, and backups were kept.",
  "settings.confirmApplyScheme": "Apply Anyway",
  "settings.cancel": "Cancel",
  "settings.systemSchemeApplied": "Category scheme applied",
src/Apptag/Localization/es.json
@@ -138,9 +138,17 @@
  "scheme.smartStart": "Esquema Smart Start",
  "scheme.beforeSmartStart": "Antes de Smart Start",
  "settings.systemScheme": "Esquema inicial inteligente del sistema:",
  "settings.initialLayout": "Inicializacion del diseno:",
  "settings.initialLayoutUncategorized": "Sin categorizar",
  "settings.initialLayoutSmart": "Categorias iniciales inteligentes",
  "settings.applyScheme": "Aplicar",
  "settings.applySystemSchemeWarningTitle": "Se recomienda hacer copia de seguridad",
  "settings.applySystemSchemeWarningMessage": "Aplicar el esquema inicial inteligente del sistema reemplazará el esquema local actual. Aún no tienes una copia de seguridad; recomendamos exportarla antes de aplicar.",
  "settings.resetToUncategorizedWarningTitle": "Restablecer a Sin categorizar?",
  "settings.resetToUncategorizedWarningMessage": "Esto eliminara las relaciones actuales entre apps y etiquetas, y todas las apps volveran a Sin categorizar. No se eliminaran apps, etiquetas ni copias de seguridad.",
  "settings.confirmResetToUncategorized": "Restablecer",
  "settings.resetToUncategorizedApplied": "Restablecido a Sin categorizar",
  "settings.resetToUncategorizedAppliedMessage": "Se eliminaron las relaciones actuales entre apps y etiquetas. Se conservaron las apps, etiquetas y copias de seguridad.",
  "settings.confirmApplyScheme": "Aplicar de todos modos",
  "settings.cancel": "Cancelar",
  "settings.systemSchemeApplied": "Esquema de categorías aplicado",
src/Apptag/Localization/fr.json
@@ -138,9 +138,17 @@
  "scheme.smartStart": "Schéma Smart Start",
  "scheme.beforeSmartStart": "Avant Smart Start",
  "settings.systemScheme": "Schéma initial intelligent du système :",
  "settings.initialLayout": "Initialisation de la mise en page :",
  "settings.initialLayoutUncategorized": "Non classe",
  "settings.initialLayoutSmart": "Categories initiales intelligentes",
  "settings.applyScheme": "Appliquer",
  "settings.applySystemSchemeWarningTitle": "Sauvegarde recommandée",
  "settings.applySystemSchemeWarningMessage": "Appliquer le schéma initial intelligent du système remplacera le schéma local actuel. Vous ne l’avez pas encore sauvegardé ; nous vous recommandons fortement d’exporter une sauvegarde avant de l’appliquer.",
  "settings.resetToUncategorizedWarningTitle": "Reinitialiser en Non classe ?",
  "settings.resetToUncategorizedWarningMessage": "Cela supprimera les relations de categorie entre les apps et les etiquettes, et toutes les apps reviendront a Non classe. Les apps, etiquettes et sauvegardes ne seront pas supprimees.",
  "settings.confirmResetToUncategorized": "Reinitialiser",
  "settings.resetToUncategorizedApplied": "Reinitialise en Non classe",
  "settings.resetToUncategorizedAppliedMessage": "Les relations actuelles entre apps et etiquettes ont ete supprimees. Les apps, etiquettes et sauvegardes ont ete conservees.",
  "settings.confirmApplyScheme": "Appliquer quand même",
  "settings.cancel": "Annuler",
  "settings.systemSchemeApplied": "Schéma de catégories appliqué",
src/Apptag/Localization/id.json
@@ -138,9 +138,17 @@
  "scheme.smartStart": "Skema Smart Start",
  "scheme.beforeSmartStart": "Sebelum Smart Start",
  "settings.systemScheme": "Skema awal pintar sistem:",
  "settings.initialLayout": "Inisialisasi tata letak:",
  "settings.initialLayoutUncategorized": "Tanpa kategori",
  "settings.initialLayoutSmart": "Kategori awal cerdas",
  "settings.applyScheme": "Terapkan",
  "settings.applySystemSchemeWarningTitle": "Cadangan disarankan",
  "settings.applySystemSchemeWarningMessage": "Menerapkan skema awal pintar sistem akan mengganti skema lokal saat ini. Anda belum mencadangkannya; kami sangat menyarankan mengekspor cadangan sebelum menerapkan.",
  "settings.resetToUncategorizedWarningTitle": "Setel ulang ke Tanpa kategori?",
  "settings.resetToUncategorizedWarningMessage": "Ini akan menghapus hubungan kategori saat ini antara aplikasi dan label, lalu semua aplikasi kembali ke Tanpa kategori. Aplikasi, label, dan cadangan tidak akan dihapus.",
  "settings.confirmResetToUncategorized": "Setel ulang",
  "settings.resetToUncategorizedApplied": "Disetel ulang ke Tanpa kategori",
  "settings.resetToUncategorizedAppliedMessage": "Hubungan saat ini antara aplikasi dan label telah dihapus. Aplikasi, label, dan cadangan tetap disimpan.",
  "settings.confirmApplyScheme": "Tetap terapkan",
  "settings.cancel": "Batal",
  "settings.systemSchemeApplied": "Skema kategori diterapkan",
src/Apptag/Localization/it.json
@@ -138,9 +138,17 @@
  "scheme.smartStart": "Schema Smart Start",
  "scheme.beforeSmartStart": "Prima di Smart Start",
  "settings.systemScheme": "Schema iniziale intelligente di sistema:",
  "settings.initialLayout": "Inizializzazione layout:",
  "settings.initialLayoutUncategorized": "Non categorizzato",
  "settings.initialLayoutSmart": "Categorie iniziali smart",
  "settings.applyScheme": "Applica",
  "settings.applySystemSchemeWarningTitle": "Backup consigliato",
  "settings.applySystemSchemeWarningMessage": "Applicare lo schema iniziale intelligente di sistema sostituirà lo schema locale attuale. Non hai ancora un backup; consigliamo vivamente di esportarne uno prima di applicare.",
  "settings.resetToUncategorizedWarningTitle": "Reimpostare su Non categorizzato?",
  "settings.resetToUncategorizedWarningMessage": "Questo rimuovera le relazioni attuali tra app e tag, e tutte le app torneranno a Non categorizzato. App, tag e backup non verranno eliminati.",
  "settings.confirmResetToUncategorized": "Reimposta",
  "settings.resetToUncategorizedApplied": "Reimpostato su Non categorizzato",
  "settings.resetToUncategorizedAppliedMessage": "Le relazioni attuali tra app e tag sono state rimosse. App, tag e backup sono stati conservati.",
  "settings.confirmApplyScheme": "Applica comunque",
  "settings.cancel": "Annulla",
  "settings.systemSchemeApplied": "Schema categorie applicato",
src/Apptag/Localization/ja.json
@@ -138,9 +138,17 @@
  "scheme.smartStart": "スマート整理スキーム",
  "scheme.beforeSmartStart": "スマート整理前スキーム",
  "settings.systemScheme": "システム初期スマート分類:",
  "settings.initialLayout": "レイアウト初期化:",
  "settings.initialLayoutUncategorized": "未分類",
  "settings.initialLayoutSmart": "スマート初期分類",
  "settings.applyScheme": "適用",
  "settings.applySystemSchemeWarningTitle": "バックアップをおすすめします",
  "settings.applySystemSchemeWarningMessage": "システム初期スマート分類を適用すると、現在のローカルスキームが置き換えられます。まだバックアップがありません。適用前に「カテゴリとレイアウトをエクスポート」でバックアップすることを強くおすすめします。",
  "settings.resetToUncategorizedWarningTitle": "未分類にリセットしますか?",
  "settings.resetToUncategorizedWarningMessage": "現在のアプリとタグの分類関係を解除し、すべてのアプリを「未分類」に戻します。アプリ、タグ、バックアップは削除されません。",
  "settings.confirmResetToUncategorized": "リセットを確認",
  "settings.resetToUncategorizedApplied": "未分類にリセットしました",
  "settings.resetToUncategorizedAppliedMessage": "現在のアプリとタグの分類関係を解除しました。アプリ、タグ、バックアップは保持されています。",
  "settings.confirmApplyScheme": "このまま適用",
  "settings.cancel": "キャンセル",
  "settings.systemSchemeApplied": "分類スキームを適用しました",
src/Apptag/Localization/ko.json
@@ -138,9 +138,17 @@
  "scheme.smartStart": "스마트 정리 방식",
  "scheme.beforeSmartStart": "스마트 정리 전 방식",
  "settings.systemScheme": "시스템 스마트 초기 분류:",
  "settings.initialLayout": "레이아웃 초기화:",
  "settings.initialLayoutUncategorized": "미분류",
  "settings.initialLayoutSmart": "스마트 초기 분류",
  "settings.applyScheme": "적용",
  "settings.applySystemSchemeWarningTitle": "백업 권장",
  "settings.applySystemSchemeWarningMessage": "시스템 스마트 초기 분류를 적용하면 현재 로컬 방식이 대체됩니다. 아직 백업하지 않았으므로 적용 전에 “분류 및 레이아웃 내보내기”로 백업하는 것을 강력히 권장합니다.",
  "settings.resetToUncategorizedWarningTitle": "미분류로 재설정할까요?",
  "settings.resetToUncategorizedWarningMessage": "현재 앱과 태그의 분류 관계가 제거되고 모든 앱이 미분류로 돌아갑니다. 앱, 태그 또는 백업은 삭제되지 않습니다.",
  "settings.confirmResetToUncategorized": "재설정 확인",
  "settings.resetToUncategorizedApplied": "미분류로 재설정됨",
  "settings.resetToUncategorizedAppliedMessage": "현재 앱과 태그의 분류 관계를 제거했습니다. 앱, 태그, 백업은 유지되었습니다.",
  "settings.confirmApplyScheme": "그래도 적용",
  "settings.cancel": "취소",
  "settings.systemSchemeApplied": "분류 방식 적용됨",
src/Apptag/Localization/ms.json
@@ -138,9 +138,17 @@
  "scheme.smartStart": "Skema Smart Start",
  "scheme.beforeSmartStart": "Sebelum Smart Start",
  "settings.systemScheme": "Skema awal pintar sistem:",
  "settings.initialLayout": "Permulaan susun atur:",
  "settings.initialLayoutUncategorized": "Tidak berkategori",
  "settings.initialLayoutSmart": "Kategori awal pintar",
  "settings.applyScheme": "Guna",
  "settings.applySystemSchemeWarningTitle": "Sandaran disyorkan",
  "settings.applySystemSchemeWarningMessage": "Menggunakan skema awal pintar sistem akan menggantikan skema setempat semasa. Anda belum membuat sandaran; kami sangat mengesyorkan mengeksport sandaran sebelum menggunakan.",
  "settings.resetToUncategorizedWarningTitle": "Tetapkan semula kepada Tidak berkategori?",
  "settings.resetToUncategorizedWarningMessage": "Ini akan membuang hubungan kategori semasa antara aplikasi dan tag, lalu semua aplikasi kembali kepada Tidak berkategori. Aplikasi, tag dan sandaran tidak akan dipadam.",
  "settings.confirmResetToUncategorized": "Tetapkan semula",
  "settings.resetToUncategorizedApplied": "Ditetapkan semula kepada Tidak berkategori",
  "settings.resetToUncategorizedAppliedMessage": "Hubungan semasa antara aplikasi dan tag telah dibuang. Aplikasi, tag dan sandaran dikekalkan.",
  "settings.confirmApplyScheme": "Tetap guna",
  "settings.cancel": "Batal",
  "settings.systemSchemeApplied": "Skema kategori digunakan",
src/Apptag/Localization/nb.json
@@ -138,9 +138,17 @@
  "scheme.smartStart": "Smart Start-skjema",
  "scheme.beforeSmartStart": "Før Smart Start",
  "settings.systemScheme": "Systemets smarte startskjema:",
  "settings.initialLayout": "Initialiser oppsett:",
  "settings.initialLayoutUncategorized": "Ukategorisert",
  "settings.initialLayoutSmart": "Smarte startkategorier",
  "settings.applyScheme": "Bruk",
  "settings.applySystemSchemeWarningTitle": "Sikkerhetskopi anbefales",
  "settings.applySystemSchemeWarningMessage": "Bruk av systemets smarte startskjema erstatter gjeldende lokale skjema. Du har ikke sikkerhetskopiert ennå; vi anbefaler sterkt å eksportere en sikkerhetskopi først.",
  "settings.resetToUncategorizedWarningTitle": "Tilbakestill til Ukategorisert?",
  "settings.resetToUncategorizedWarningMessage": "Dette fjerner gjeldende kategori-relasjoner mellom apper og tagger, og alle apper går tilbake til Ukategorisert. Apper, tagger og sikkerhetskopier slettes ikke.",
  "settings.confirmResetToUncategorized": "Tilbakestill",
  "settings.resetToUncategorizedApplied": "Tilbakestilt til Ukategorisert",
  "settings.resetToUncategorizedAppliedMessage": "Gjeldende relasjoner mellom apper og tagger ble fjernet. Apper, tagger og sikkerhetskopier ble beholdt.",
  "settings.confirmApplyScheme": "Bruk likevel",
  "settings.cancel": "Avbryt",
  "settings.systemSchemeApplied": "Kategoriskjema brukt",
src/Apptag/Localization/nl.json
@@ -138,9 +138,17 @@
  "scheme.smartStart": "Smart Start-schema",
  "scheme.beforeSmartStart": "Vóór Smart Start",
  "settings.systemScheme": "Slim beginschema van systeem:",
  "settings.initialLayout": "Layout initialiseren:",
  "settings.initialLayoutUncategorized": "Niet gecategoriseerd",
  "settings.initialLayoutSmart": "Slimme begincategorieen",
  "settings.applyScheme": "Toepassen",
  "settings.applySystemSchemeWarningTitle": "Back-up aanbevolen",
  "settings.applySystemSchemeWarningMessage": "Het slimme beginschema van het systeem toepassen vervangt het huidige lokale schema. Er is nog geen back-up; we raden sterk aan eerst een back-up te exporteren.",
  "settings.resetToUncategorizedWarningTitle": "Resetten naar Niet gecategoriseerd?",
  "settings.resetToUncategorizedWarningMessage": "Dit verwijdert de huidige app-tagcategorierelaties en zet alle apps terug naar Niet gecategoriseerd. Apps, tags en back-ups worden niet verwijderd.",
  "settings.confirmResetToUncategorized": "Resetten",
  "settings.resetToUncategorizedApplied": "Gerest naar Niet gecategoriseerd",
  "settings.resetToUncategorizedAppliedMessage": "De huidige app-tagcategorierelaties zijn verwijderd. Apps, tags en back-ups zijn behouden.",
  "settings.confirmApplyScheme": "Toch toepassen",
  "settings.cancel": "Annuleren",
  "settings.systemSchemeApplied": "Categorieschema toegepast",
src/Apptag/Localization/nn.json
@@ -138,9 +138,17 @@
  "scheme.smartStart": "Smart Start-skjema",
  "scheme.beforeSmartStart": "Før Smart Start",
  "settings.systemScheme": "Systemets smarte startskjema:",
  "settings.initialLayout": "Initialiser oppsett:",
  "settings.initialLayoutUncategorized": "Ukategorisert",
  "settings.initialLayoutSmart": "Smarte startkategoriar",
  "settings.applyScheme": "Bruk",
  "settings.applySystemSchemeWarningTitle": "Sikkerhetskopi anbefales",
  "settings.applySystemSchemeWarningMessage": "Bruk av systemets smarte startskjema erstattar gjeldande lokale skjema. Du har ikkje teke sikkerheitskopi enno; vi tilrår sterkt å eksportere ein kopi først.",
  "settings.resetToUncategorizedWarningTitle": "Tilbakestill til Ukategorisert?",
  "settings.resetToUncategorizedWarningMessage": "Dette fjernar gjeldande kategori-relasjonar mellom appar og taggar, og alle appar går tilbake til Ukategorisert. Appar, taggar og tryggleikskopiar blir ikkje sletta.",
  "settings.confirmResetToUncategorized": "Tilbakestill",
  "settings.resetToUncategorizedApplied": "Tilbakestilt til Ukategorisert",
  "settings.resetToUncategorizedAppliedMessage": "Gjeldande relasjonar mellom appar og taggar vart fjerna. Appar, taggar og tryggleikskopiar vart bevarte.",
  "settings.confirmApplyScheme": "Bruk likevel",
  "settings.cancel": "Avbryt",
  "settings.systemSchemeApplied": "Kategoriskjema brukt",
src/Apptag/Localization/no.json
@@ -138,9 +138,17 @@
  "scheme.smartStart": "Smart Start-skjema",
  "scheme.beforeSmartStart": "Før Smart Start",
  "settings.systemScheme": "Systemets smarte startskjema:",
  "settings.initialLayout": "Initialiser oppsett:",
  "settings.initialLayoutUncategorized": "Ukategorisert",
  "settings.initialLayoutSmart": "Smarte startkategorier",
  "settings.applyScheme": "Bruk",
  "settings.applySystemSchemeWarningTitle": "Sikkerhetskopi anbefales",
  "settings.applySystemSchemeWarningMessage": "Bruk av systemets smarte startskjema erstatter gjeldende lokale skjema. Du har ikke sikkerhetskopiert ennå; vi anbefaler sterkt å eksportere en sikkerhetskopi først.",
  "settings.resetToUncategorizedWarningTitle": "Tilbakestill til Ukategorisert?",
  "settings.resetToUncategorizedWarningMessage": "Dette fjerner gjeldende kategori-relasjoner mellom apper og tagger, og alle apper går tilbake til Ukategorisert. Apper, tagger og sikkerhetskopier slettes ikke.",
  "settings.confirmResetToUncategorized": "Tilbakestill",
  "settings.resetToUncategorizedApplied": "Tilbakestilt til Ukategorisert",
  "settings.resetToUncategorizedAppliedMessage": "Gjeldende relasjoner mellom apper og tagger ble fjernet. Apper, tagger og sikkerhetskopier ble beholdt.",
  "settings.confirmApplyScheme": "Bruk likevel",
  "settings.cancel": "Avbryt",
  "settings.systemSchemeApplied": "Kategoriskjema brukt",
src/Apptag/Localization/pl.json
@@ -138,9 +138,17 @@
  "scheme.smartStart": "Schemat Smart Start",
  "scheme.beforeSmartStart": "Przed Smart Start",
  "settings.systemScheme": "Inteligentny schemat początkowy systemu:",
  "settings.initialLayout": "Inicjalizacja układu:",
  "settings.initialLayoutUncategorized": "Bez kategorii",
  "settings.initialLayoutSmart": "Inteligentne kategorie poczatkowe",
  "settings.applyScheme": "Zastosuj",
  "settings.applySystemSchemeWarningTitle": "Zalecana kopia zapasowa",
  "settings.applySystemSchemeWarningMessage": "Zastosowanie inteligentnego schematu początkowego systemu zastąpi bieżący schemat lokalny. Nie masz jeszcze kopii zapasowej; zdecydowanie zalecamy jej wyeksportowanie przed zastosowaniem.",
  "settings.resetToUncategorizedWarningTitle": "Zresetowac do Bez kategorii?",
  "settings.resetToUncategorizedWarningMessage": "To usunie obecne relacje kategorii miedzy aplikacjami i tagami, a wszystkie aplikacje wroca do Bez kategorii. Aplikacje, tagi i kopie zapasowe nie zostana usuniete.",
  "settings.confirmResetToUncategorized": "Zresetuj",
  "settings.resetToUncategorizedApplied": "Zresetowano do Bez kategorii",
  "settings.resetToUncategorizedAppliedMessage": "Obecne relacje miedzy aplikacjami i tagami zostaly usuniete. Aplikacje, tagi i kopie zapasowe zachowano.",
  "settings.confirmApplyScheme": "Zastosuj mimo to",
  "settings.cancel": "Anuluj",
  "settings.systemSchemeApplied": "Schemat kategorii zastosowany",
src/Apptag/Localization/pt-BR.json
@@ -138,9 +138,17 @@
  "scheme.smartStart": "Esquema Smart Start",
  "scheme.beforeSmartStart": "Antes do Smart Start",
  "settings.systemScheme": "Esquema inicial inteligente do sistema:",
  "settings.initialLayout": "Inicializacao do layout:",
  "settings.initialLayoutUncategorized": "Sem categoria",
  "settings.initialLayoutSmart": "Categorias iniciais inteligentes",
  "settings.applyScheme": "Aplicar",
  "settings.applySystemSchemeWarningTitle": "Backup recomendado",
  "settings.applySystemSchemeWarningMessage": "Aplicar o esquema inicial inteligente do sistema substituirá o esquema local atual. Você ainda não fez backup; recomendamos exportar um backup antes de aplicar.",
  "settings.resetToUncategorizedWarningTitle": "Redefinir para Sem categoria?",
  "settings.resetToUncategorizedWarningMessage": "Isso removera as relacoes atuais entre apps e tags, e todos os apps voltarao para Sem categoria. Apps, tags e backups nao serao excluidos.",
  "settings.confirmResetToUncategorized": "Redefinir",
  "settings.resetToUncategorizedApplied": "Redefinido para Sem categoria",
  "settings.resetToUncategorizedAppliedMessage": "As relacoes atuais entre apps e tags foram removidas. Apps, tags e backups foram mantidos.",
  "settings.confirmApplyScheme": "Aplicar mesmo assim",
  "settings.cancel": "Cancelar",
  "settings.systemSchemeApplied": "Esquema de categorias aplicado",
src/Apptag/Localization/ro.json
@@ -138,9 +138,17 @@
  "scheme.smartStart": "Schema Smart Start",
  "scheme.beforeSmartStart": "Înainte de Smart Start",
  "settings.systemScheme": "Schema inteligentă inițială a sistemului:",
  "settings.initialLayout": "Initializare aspect:",
  "settings.initialLayoutUncategorized": "Necategorizat",
  "settings.initialLayoutSmart": "Categorii initiale inteligente",
  "settings.applyScheme": "Aplică",
  "settings.applySystemSchemeWarningTitle": "Backup recomandat",
  "settings.applySystemSchemeWarningMessage": "Aplicarea schemei inteligente inițiale a sistemului va înlocui schema locală curentă. Nu ai încă o copie de siguranță; recomandăm să exporți una înainte de aplicare.",
  "settings.resetToUncategorizedWarningTitle": "Resetezi la Necategorizat?",
  "settings.resetToUncategorizedWarningMessage": "Aceasta va elimina relatiile curente dintre aplicatii si etichete, iar toate aplicatiile vor reveni la Necategorizat. Aplicatiile, etichetele si copiile de siguranta nu vor fi sterse.",
  "settings.confirmResetToUncategorized": "Reseteaza",
  "settings.resetToUncategorizedApplied": "Resetat la Necategorizat",
  "settings.resetToUncategorizedAppliedMessage": "Relatiile curente dintre aplicatii si etichete au fost eliminate. Aplicatiile, etichetele si copiile de siguranta au fost pastrate.",
  "settings.confirmApplyScheme": "Aplică oricum",
  "settings.cancel": "Anulează",
  "settings.systemSchemeApplied": "Schema de categorii a fost aplicată",
src/Apptag/Localization/ru.json
@@ -138,9 +138,17 @@
  "scheme.smartStart": "Схема Smart Start",
  "scheme.beforeSmartStart": "До Smart Start",
  "settings.systemScheme": "Интеллектуальная начальная схема системы:",
  "settings.initialLayout": "Инициализация раскладки:",
  "settings.initialLayoutUncategorized": "Без категории",
  "settings.initialLayoutSmart": "Умные начальные категории",
  "settings.applyScheme": "Применить",
  "settings.applySystemSchemeWarningTitle": "Рекомендуется резервная копия",
  "settings.applySystemSchemeWarningMessage": "Применение интеллектуальной начальной схемы системы заменит текущую локальную схему. Резервная копия ещё не создана; настоятельно рекомендуем экспортировать её перед применением.",
  "settings.resetToUncategorizedWarningTitle": "Сбросить в Без категории?",
  "settings.resetToUncategorizedWarningMessage": "Это удалит текущие связи между приложениями и тегами, и все приложения вернутся в «Без категории». Приложения, теги и резервные копии не будут удалены.",
  "settings.confirmResetToUncategorized": "Сбросить",
  "settings.resetToUncategorizedApplied": "Сброшено в Без категории",
  "settings.resetToUncategorizedAppliedMessage": "Текущие связи между приложениями и тегами удалены. Приложения, теги и резервные копии сохранены.",
  "settings.confirmApplyScheme": "Всё равно применить",
  "settings.cancel": "Отмена",
  "settings.systemSchemeApplied": "Схема категорий применена",
src/Apptag/Localization/sr-Cyrl.json
@@ -138,9 +138,17 @@
  "scheme.smartStart": "Smart Start шема",
  "scheme.beforeSmartStart": "Пре Smart Start-а",
  "settings.systemScheme": "Паметна почетна шема система:",
  "settings.initialLayout": "Иницијализација распореда:",
  "settings.initialLayoutUncategorized": "Некатегорисано",
  "settings.initialLayoutSmart": "Паметне почетне категорије",
  "settings.applyScheme": "Примени",
  "settings.applySystemSchemeWarningTitle": "Препоручује се резервна копија",
  "settings.applySystemSchemeWarningMessage": "Примена паметне почетне шеме система замениће тренутну локалну шему. Још немате резервну копију; препоручујемо да је извезете пре примене.",
  "settings.resetToUncategorizedWarningTitle": "Ресетовати на Некатегорисано?",
  "settings.resetToUncategorizedWarningMessage": "Ово ће уклонити тренутне односе категорија између апликација и ознака, и све апликације ће се вратити у Некатегорисано. Апликације, ознаке и резервне копије неће бити обрисане.",
  "settings.confirmResetToUncategorized": "Ресетуј",
  "settings.resetToUncategorizedApplied": "Ресетовано на Некатегорисано",
  "settings.resetToUncategorizedAppliedMessage": "Тренутни односи између апликација и ознака су уклоњени. Апликације, ознаке и резервне копије су сачуване.",
  "settings.confirmApplyScheme": "Ипак примени",
  "settings.cancel": "Откажи",
  "settings.systemSchemeApplied": "Шема категорија примењена",
src/Apptag/Localization/sv.json
@@ -138,9 +138,17 @@
  "scheme.smartStart": "Smart Start-schema",
  "scheme.beforeSmartStart": "Före Smart Start",
  "settings.systemScheme": "Systemets smarta startschema:",
  "settings.initialLayout": "Initiera layout:",
  "settings.initialLayoutUncategorized": "Okategoriserat",
  "settings.initialLayoutSmart": "Smarta startkategorier",
  "settings.applyScheme": "Tillämpa",
  "settings.applySystemSchemeWarningTitle": "Säkerhetskopia rekommenderas",
  "settings.applySystemSchemeWarningMessage": "Att tillämpa systemets smarta startschema ersätter det aktuella lokala schemat. Du har inte säkerhetskopierat det ännu; vi rekommenderar starkt att du exporterar en säkerhetskopia först.",
  "settings.resetToUncategorizedWarningTitle": "Aterstall till Okategoriserat?",
  "settings.resetToUncategorizedWarningMessage": "Detta tar bort nuvarande kategori-relationer mellan appar och taggar, och alla appar atergar till Okategoriserat. Appar, taggar och sakerhetskopior tas inte bort.",
  "settings.confirmResetToUncategorized": "Aterstall",
  "settings.resetToUncategorizedApplied": "Aterstallt till Okategoriserat",
  "settings.resetToUncategorizedAppliedMessage": "Nuvarande relationer mellan appar och taggar har tagits bort. Appar, taggar och sakerhetskopior beholls.",
  "settings.confirmApplyScheme": "Tillämpa ändå",
  "settings.cancel": "Avbryt",
  "settings.systemSchemeApplied": "Kategorischema tillämpat",
src/Apptag/Localization/th.json
@@ -138,9 +138,17 @@
  "scheme.smartStart": "ชุด Smart Start",
  "scheme.beforeSmartStart": "ก่อน Smart Start",
  "settings.systemScheme": "ชุดเริ่มต้นอัจฉริยะของระบบ:",
  "settings.initialLayout": "เริ่มต้นเลย์เอาต์:",
  "settings.initialLayoutUncategorized": "ไม่จัดหมวดหมู่",
  "settings.initialLayoutSmart": "หมวดหมู่เริ่มต้นอัจฉริยะ",
  "settings.applyScheme": "นำไปใช้",
  "settings.applySystemSchemeWarningTitle": "แนะนำให้สำรองข้อมูล",
  "settings.applySystemSchemeWarningMessage": "การใช้ชุดเริ่มต้นอัจฉริยะของระบบจะแทนที่ชุดภายในเครื่องปัจจุบัน คุณยังไม่ได้สำรองข้อมูล เราแนะนำอย่างยิ่งให้ส่งออกข้อมูลสำรองก่อนนำไปใช้",
  "settings.resetToUncategorizedWarningTitle": "รีเซ็ตเป็นไม่จัดหมวดหมู่หรือไม่?",
  "settings.resetToUncategorizedWarningMessage": "การดำเนินการนี้จะลบความสัมพันธ์การจัดหมวดหมู่ปัจจุบันระหว่างแอปกับแท็ก และทำให้ทุกแอปกลับไปเป็นไม่จัดหมวดหมู่ จะไม่ลบแอป แท็ก หรือข้อมูลสำรอง",
  "settings.confirmResetToUncategorized": "ยืนยันรีเซ็ต",
  "settings.resetToUncategorizedApplied": "รีเซ็ตเป็นไม่จัดหมวดหมู่แล้ว",
  "settings.resetToUncategorizedAppliedMessage": "ลบความสัมพันธ์ปัจจุบันระหว่างแอปกับแท็กแล้ว แอป แท็ก และข้อมูลสำรองยังคงอยู่",
  "settings.confirmApplyScheme": "นำไปใช้ต่อไป",
  "settings.cancel": "ยกเลิก",
  "settings.systemSchemeApplied": "นำชุดหมวดหมู่ไปใช้แล้ว",
src/Apptag/Localization/tr.json
@@ -138,9 +138,17 @@
  "scheme.smartStart": "Smart Start şeması",
  "scheme.beforeSmartStart": "Smart Start öncesi",
  "settings.systemScheme": "Sistem akıllı başlangıç şeması:",
  "settings.initialLayout": "Yerlesimi baslat:",
  "settings.initialLayoutUncategorized": "Kategorisiz",
  "settings.initialLayoutSmart": "Akilli ilk kategoriler",
  "settings.applyScheme": "Uygula",
  "settings.applySystemSchemeWarningTitle": "Yedekleme önerilir",
  "settings.applySystemSchemeWarningMessage": "Sistem akıllı başlangıç şemasını uygulamak geçerli yerel şemayı değiştirir. Henüz yedeklemediniz; uygulamadan önce bir yedek dışa aktarmanızı önemle öneririz.",
  "settings.resetToUncategorizedWarningTitle": "Kategorisize sifirlansin mi?",
  "settings.resetToUncategorizedWarningMessage": "Bu islem mevcut uygulama-etiket kategori iliskilerini kaldirir ve tum uygulamalari Kategorisiz durumuna dondurur. Uygulamalar, etiketler veya yedekler silinmez.",
  "settings.confirmResetToUncategorized": "Sifirla",
  "settings.resetToUncategorizedApplied": "Kategorisize sifirlandi",
  "settings.resetToUncategorizedAppliedMessage": "Mevcut uygulama-etiket kategori iliskileri kaldirildi. Uygulamalar, etiketler ve yedekler korundu.",
  "settings.confirmApplyScheme": "Yine de uygula",
  "settings.cancel": "İptal",
  "settings.systemSchemeApplied": "Kategori şeması uygulandı",
src/Apptag/Localization/uk.json
@@ -138,9 +138,17 @@
  "scheme.smartStart": "Схема Smart Start",
  "scheme.beforeSmartStart": "До Smart Start",
  "settings.systemScheme": "Розумна початкова схема системи:",
  "settings.initialLayout": "Ініціалізація розкладки:",
  "settings.initialLayoutUncategorized": "Без категорії",
  "settings.initialLayoutSmart": "Розумні початкові категорії",
  "settings.applyScheme": "Застосувати",
  "settings.applySystemSchemeWarningTitle": "Рекомендується резервна копія",
  "settings.applySystemSchemeWarningMessage": "Застосування розумної початкової схеми системи замінить поточну локальну схему. Ви ще не створили резервну копію; радимо експортувати її перед застосуванням.",
  "settings.resetToUncategorizedWarningTitle": "Скинути до Без категорії?",
  "settings.resetToUncategorizedWarningMessage": "Це вилучить поточні зв’язки між застосунками й тегами, і всі застосунки повернуться до «Без категорії». Застосунки, теги й резервні копії не буде видалено.",
  "settings.confirmResetToUncategorized": "Скинути",
  "settings.resetToUncategorizedApplied": "Скинуто до Без категорії",
  "settings.resetToUncategorizedAppliedMessage": "Поточні зв’язки між застосунками й тегами вилучено. Застосунки, теги й резервні копії збережено.",
  "settings.confirmApplyScheme": "Все одно застосувати",
  "settings.cancel": "Скасувати",
  "settings.systemSchemeApplied": "Схему категорій застосовано",
src/Apptag/Localization/vi.json
@@ -138,9 +138,17 @@
  "scheme.smartStart": "Sơ đồ Smart Start",
  "scheme.beforeSmartStart": "Trước Smart Start",
  "settings.systemScheme": "Sơ đồ khởi tạo thông minh của hệ thống:",
  "settings.initialLayout": "Khởi tạo bố cục:",
  "settings.initialLayoutUncategorized": "Chưa phân loại",
  "settings.initialLayoutSmart": "Phân loại ban đầu thông minh",
  "settings.applyScheme": "Áp dụng",
  "settings.applySystemSchemeWarningTitle": "Nên sao lưu trước",
  "settings.applySystemSchemeWarningMessage": "Áp dụng sơ đồ khởi tạo thông minh của hệ thống sẽ thay thế sơ đồ cục bộ hiện tại. Bạn chưa sao lưu; chúng tôi khuyên bạn nên xuất bản sao lưu trước khi áp dụng.",
  "settings.resetToUncategorizedWarningTitle": "Đặt lại về Chưa phân loại?",
  "settings.resetToUncategorizedWarningMessage": "Thao tác này sẽ xóa quan hệ phân loại hiện tại giữa ứng dụng và nhãn, đưa mọi ứng dụng về Chưa phân loại. Ứng dụng, nhãn và bản sao lưu sẽ không bị xóa.",
  "settings.confirmResetToUncategorized": "Đặt lại",
  "settings.resetToUncategorizedApplied": "Đã đặt lại về Chưa phân loại",
  "settings.resetToUncategorizedAppliedMessage": "Đã xóa quan hệ hiện tại giữa ứng dụng và nhãn. Ứng dụng, nhãn và bản sao lưu vẫn được giữ lại.",
  "settings.confirmApplyScheme": "Vẫn áp dụng",
  "settings.cancel": "Hủy",
  "settings.systemSchemeApplied": "Đã áp dụng sơ đồ phân loại",
src/Apptag/Localization/zh-Hans.json
@@ -138,9 +138,17 @@
  "scheme.smartStart": "智能整理方案",
  "scheme.beforeSmartStart": "智能整理前方案",
  "settings.systemScheme": "系统智能化初始分类:",
  "settings.initialLayout": "布局初始化:",
  "settings.initialLayoutUncategorized": "未分类",
  "settings.initialLayoutSmart": "智能化初始化分类",
  "settings.applyScheme": "应用",
  "settings.applySystemSchemeWarningTitle": "建议先备份",
  "settings.applySystemSchemeWarningMessage": "应用系统智能化初始分类会覆盖当前本地方案。您还没有备份,强烈建议先点击“导出分类与布局”备份后再应用。",
  "settings.resetToUncategorizedWarningTitle": "重置为未分类?",
  "settings.resetToUncategorizedWarningMessage": "这会移除当前应用与标签的分类关系,所有应用将回到“未分类”。不会删除应用、标签或备份。",
  "settings.confirmResetToUncategorized": "确认重置",
  "settings.resetToUncategorizedApplied": "已重置为未分类",
  "settings.resetToUncategorizedAppliedMessage": "已移除当前应用与标签的分类关系。应用、标签和备份均已保留。",
  "settings.confirmApplyScheme": "确认应用",
  "settings.cancel": "取消",
  "settings.systemSchemeApplied": "分类方案已应用",
src/Apptag/Localization/zh-Hant.json
@@ -138,9 +138,17 @@
  "scheme.smartStart": "智慧整理方案",
  "scheme.beforeSmartStart": "智慧整理前方案",
  "settings.systemScheme": "系統智慧化初始分類:",
  "settings.initialLayout": "版面初始化:",
  "settings.initialLayoutUncategorized": "未分類",
  "settings.initialLayoutSmart": "智慧初始化分類",
  "settings.applyScheme": "套用",
  "settings.applySystemSchemeWarningTitle": "建議先備份",
  "settings.applySystemSchemeWarningMessage": "套用系統智慧化初始分類會覆蓋目前本機方案。您尚未備份,強烈建議先點選「匯出分類與佈局」備份後再套用。",
  "settings.resetToUncategorizedWarningTitle": "重置為未分類?",
  "settings.resetToUncategorizedWarningMessage": "這會移除目前應用與標籤的分類關係,所有應用將回到「未分類」。不會刪除應用、標籤或備份。",
  "settings.confirmResetToUncategorized": "確認重置",
  "settings.resetToUncategorizedApplied": "已重置為未分類",
  "settings.resetToUncategorizedAppliedMessage": "已移除目前應用與標籤的分類關係。應用、標籤和備份都已保留。",
  "settings.confirmApplyScheme": "確認套用",
  "settings.cancel": "取消",
  "settings.systemSchemeApplied": "分類方案已套用",
src/Apptag/PreferencesView.swift
@@ -36,6 +36,11 @@
    }
}
private enum InitialLayoutMode: String {
    case uncategorized
    case smart
}
struct PreferencesView: View {
    private let settingsWindowWidth: CGFloat = 1000
    private let settingsWindowHeight: CGFloat = 640
@@ -65,11 +70,14 @@
    @State private var tagColors: [String: Int] = [:]
    @State private var categoryScheme = TagDatabase.CategorySchemeState()
    @State private var isApplyingSystemScheme = false
    @State private var isResettingToUncategorized = false
    @State private var showApplySystemSchemeConfirmation = false
    @State private var showResetToUncategorizedConfirmation = false
    @State private var isDataFilePanelPresented = false
    @State private var hotkeyStatusToast: String? = nil
    @State private var hotkeyStatusToastToken: UUID? = nil
    @State private var selectedTab: SettingsTab = .general
    @State private var selectedInitialLayoutMode: InitialLayoutMode = .smart
    private func scanApps() {
        DispatchQueue.global(qos: .userInitiated).async {
@@ -299,6 +307,18 @@
        }
    }
    private func applySelectedInitialLayout() {
        switch selectedInitialLayoutMode {
        case .uncategorized:
            guard !isResettingToUncategorized else { return }
            withAnimation(.easeOut(duration: 0.16)) {
                showResetToUncategorizedConfirmation = true
            }
        case .smart:
            applySystemInitialScheme()
        }
    }
    private func performApplySystemInitialScheme() {
        guard !isApplyingSystemScheme else { return }
        showApplySystemSchemeConfirmation = false
@@ -326,6 +346,29 @@
                        message: tr("settings.systemSchemeApplyFailed")
                    )
                }
            }
        }
    }
    private func performResetToUncategorized() {
        guard !isResettingToUncategorized else { return }
        showResetToUncategorizedConfirmation = false
        TagDatabase.flushPendingCategorySchemeBackupBatch()
        isResettingToUncategorized = true
        DispatchQueue.global(qos: .userInitiated).async {
            let result = AppLibraryController.resetToUncategorized()
            DispatchQueue.main.async {
                isResettingToUncategorized = false
                allApps = result.snapshot.apps
                tagColors = result.snapshot.tagColors
                refreshDataState()
                notifyDataChanged()
                showDataAlert(
                    title: tr("settings.resetToUncategorizedApplied"),
                    message: tr("settings.resetToUncategorizedAppliedMessage")
                )
            }
        }
    }
@@ -383,6 +426,29 @@
                    .frame(width: 16, height: 16)
                Text(title)
                    .font(.system(size: 13, weight: .medium))
            }
            .foregroundStyle(isSelected ? Color.accentColor : Color.primary)
            .contentShape(Rectangle())
        }
        .buttonStyle(.plain)
    }
    private func initialLayoutOption(
        _ title: String,
        mode: InitialLayoutMode
    ) -> some View {
        let isSelected = selectedInitialLayoutMode == mode
        return Button {
            selectedInitialLayoutMode = mode
        } label: {
            HStack(spacing: 6) {
                Image(systemName: isSelected ? "largecircle.fill.circle" : "circle")
                    .font(.system(size: 13, weight: .medium))
                    .frame(width: 16, height: 16)
                Text(title)
                    .font(.system(size: 13, weight: .medium))
                    .lineLimit(1)
                    .minimumScaleFactor(0.85)
            }
            .foregroundStyle(isSelected ? Color.accentColor : Color.primary)
            .contentShape(Rectangle())
@@ -763,7 +829,7 @@
                VStack(alignment: .center, spacing: 0) {
                    VStack(alignment: .leading, spacing: 12) {
                        HStack(alignment: .center, spacing: 12) {
                            Text(tr("settings.systemScheme"))
                            Text(tr("settings.initialLayout"))
                                .font(.system(size: 13, weight: .semibold))
                                .foregroundStyle(.secondary)
                                .lineLimit(1)
@@ -771,19 +837,24 @@
                                .multilineTextAlignment(.trailing)
                                .frame(width: dataLabelWidth, alignment: .trailing)
                            Text(SmartStartService.systemInitialSchemeName)
                                .font(.system(size: 13, weight: .medium))
                                .foregroundStyle(.primary)
                                .lineLimit(1)
                                .truncationMode(.middle)
                            HStack(spacing: 22) {
                                initialLayoutOption(
                                    tr("settings.initialLayoutUncategorized"),
                                    mode: .uncategorized
                                )
                                initialLayoutOption(
                                    tr("settings.initialLayoutSmart"),
                                    mode: .smart
                                )
                            }
                                .frame(maxWidth: .infinity, alignment: .leading)
                                .layoutPriority(0)
                                .layoutPriority(1)
                            dataActionButton(
                                tr("settings.applyScheme"),
                                prominent: true,
                                enabled: !isApplyingSystemScheme,
                                action: applySystemInitialScheme
                                enabled: !isApplyingSystemScheme && !isResettingToUncategorized,
                                action: applySelectedInitialLayout
                            )
                            .frame(width: dataActionWidth, alignment: .trailing)
                            .layoutPriority(2)
@@ -995,7 +1066,7 @@
            }
            if showApplySystemSchemeConfirmation {
                ApplySystemSchemeConfirmationView(
                SettingsConfirmationView(
                    title: tr("settings.applySystemSchemeWarningTitle"),
                    message: tr("settings.applySystemSchemeWarningMessage"),
                    confirmTitle: tr("settings.confirmApplyScheme"),
@@ -1004,6 +1075,23 @@
                    onCancel: {
                        withAnimation(.easeOut(duration: 0.14)) {
                            showApplySystemSchemeConfirmation = false
                        }
                    }
                )
                .zIndex(3)
                .transition(.opacity)
            }
            if showResetToUncategorizedConfirmation {
                SettingsConfirmationView(
                    title: tr("settings.resetToUncategorizedWarningTitle"),
                    message: tr("settings.resetToUncategorizedWarningMessage"),
                    confirmTitle: tr("settings.confirmResetToUncategorized"),
                    cancelTitle: tr("settings.cancel"),
                    onConfirm: performResetToUncategorized,
                    onCancel: {
                        withAnimation(.easeOut(duration: 0.14)) {
                            showResetToUncategorizedConfirmation = false
                        }
                    }
                )
@@ -1118,7 +1206,7 @@
    }
}
private struct ApplySystemSchemeConfirmationView: View {
private struct SettingsConfirmationView: View {
    let title: String
    let message: String
    let confirmTitle: String
src/CHANGELOG.md
@@ -1,5 +1,12 @@
# TagLauncher Changelog
## [7.8.30] — 2026-06-11
- 设置页数据面板新增“布局初始化”选择:可在“未分类”和“智能化初始化分类”之间选择后点击应用
- 新增“重置为未分类”确认弹窗;确认后仅移除应用与标签的分类关系,使应用回到无普通标签状态,不删除应用、标签或备份
- “智能化初始化分类”继续沿用原有应用前确认与备份建议流程
- 版本号更新为 `7.8.30`,Build 更新为 `20260611.1858`
## [7.8.29] — 2026-06-11
- 修复 App Grid 编辑模式顶部操作区的视觉语义:`添加标签` / `移除标签` 改为 radio 选项样式,不再使用容易误认为主按钮的蓝色填充