From 2a028d08370a86aeca124efc9a7b3e52ac32c367 Mon Sep 17 00:00:00 2001
From: Ariver <ar@MacBook-Air.local>
Date: Wed, 13 May 2026 23:53:08 +0800
Subject: [PATCH] Release TagLauncher 5.7.0
---
Apptag/ApptagApp.swift | 93 ++-
Apptag/Localization/tr.json | 67 ++
Apptag/Localization/cs.json | 67 ++
Apptag/Localization/no.json | 67 ++
AppStore_Submission.md | 18
Apptag/Localization/nb.json | 67 ++
Apptag/Localization/ar.json | 67 ++
Apptag/Info.plist | 4
Apptag/Localization/vi.json | 67 ++
Apptag/Localization/id.json | 67 ++
Apptag/Localization/th.json | 67 ++
Apptag/Localization/da.json | 67 ++
Apptag/Localization/uk.json | 67 ++
Apptag/Localization/nl.json | 67 ++
Apptag/Localization/ar-Najdi.json | 67 ++
Apptag/Localization/sr-Cyrl.json | 67 ++
Apptag/Localization/de.json | 67 ++
Apptag/Localization/ms.json | 67 ++
Apptag/Localization/sv.json | 67 ++
Apptag/Localization/ro.json | 67 ++
Apptag/Localization/nn.json | 67 ++
Apptag/Localization/pt-BR.json | 67 ++
Apptag/L10n.swift | 49 +
Apptag/Localization/pl.json | 67 ++
24 files changed, 1,462 insertions(+), 42 deletions(-)
diff --git a/AppStore_Submission.md b/AppStore_Submission.md
index b0335d1..f97e336 100644
--- a/AppStore_Submission.md
+++ b/AppStore_Submission.md
@@ -1,6 +1,6 @@
# Apptag — Mac App Store 提审资料
-> 版本: 5.6.0 | Bundle ID: com.apptag.launcher | 更新日期: 2026-05-13
+> 版本: 5.7.0 | Bundle ID: com.apptag.launcher | 更新日期: 2026-05-13
---
@@ -11,8 +11,8 @@
| **App 名称** | Apptag |
| **副标题** | Tag-Based App Launcher |
| **Bundle ID** | com.apptag.launcher |
-| **版本号** | 5.6.0 |
-| **Build 号** | 560 |
+| **版本号** | 5.7.0 |
+| **Build 号** | 570 |
| **SKU** | apptag-mac-001 |
| **主要类别** | Utilities (工具) |
| **次要类别** | Productivity (效率) |
@@ -36,7 +36,7 @@
- **Container mode** — Each tag group in its own rounded card with material background. Hover to highlight, click tag pills to jump.
- **Zero Finder dependency** — Tags are stored in a local JSON database. No xattr pollution. No SIP permission issues. Export/import your tag setup as a portable JSON file.
- **Privacy-first** — No network access. No analytics. No data collection. Everything stays on your Mac.
-- **9 languages** — English, 简体中文, 繁體中文, 日本語, 한국어, Русский, Français, Italiano, Español.
+- **29 language variants** — English, French, Italian, German, Spanish, Portuguese (Brazil), 简体中文, 繁體中文, Korean, Japanese, Russian, Serbian Cyrillic, Ukrainian, Thai, Vietnamese, Arabic, Arabic (Najdi), Turkish, Indonesian, Czech, Danish, Dutch, Norwegian, Norwegian Nynorsk, Norwegian Bokmål, Malay, Polish, Romanian, Swedish.
- **Hover to reveal** — Hide app names for a clean icon-only grid. Hover to see the name.
**Perfect for:**
@@ -58,7 +58,7 @@
- **容器模式** — 每个标签组独立圆角卡片,毛玻璃背景。悬停高亮,点击标签胶囊跳转。
- **零 Finder 依赖** — 标签存储在本地 JSON 数据库。不污染 xattr。不受 SIP 限制。支持 JSON 文件导入/导出备份。
- **隐私优先** — 无网络访问、无分析统计、无数据收集。一切只留在你的 Mac 上。
-- **9 种语言** — 简繁中、英、日、韩、俄、法、意、西。
+- **29 个语言版本** — 英语、法语、意大利语、德语、西班牙语、巴西葡萄牙语、简体中文、繁体中文、韩语、日语、俄语、西里尔塞尔维亚语、乌克兰语、泰语、越南语、阿拉伯语、Najdi 阿拉伯语、土耳其语、印尼语、捷克语、丹麦语、荷兰语、挪威语、挪威尼诺斯克语、挪威博克马尔语、马来语、波兰语、罗马尼亚语、瑞典语。
- **悬停显示** — 可隐藏 App 名称获得纯粹图标网格。鼠标悬停时显示名称。
**适合:** 重度 App 用户、设计师、开发者、以及厌倦翻 Dock/Launchpad 的所有人。
@@ -187,8 +187,10 @@
## 8. What's New (本次版本更新说明)
```
-Apptag 5.6.0
+Apptag 5.7.0
+- Expanded localization support to 29 language variants
+- Updated the Language preferences tab to a two-column layout for better readability
- Added long-press drag sorting for tag navigation in normal app-list views
- Tag sorting now works from top, left, or right tag navigation positions across all 5 app-list styles
- Tag reorder animations now update both the tag navigation and matching app containers
@@ -196,11 +198,11 @@
- Added a dedicated Language tab in Preferences with live language switching
- Preferences now opens centered above the active TagLauncher overlay, including multi-display setups
- Improved tag reordering in edit mode with live visual feedback and synchronized group layout updates
-- Renamed backup actions to Export/Import Categories & Layout across all 9 languages
+- Renamed backup actions to Export/Import Categories & Layout across all supported languages
- Added Mac App Store sandbox entitlements and App Store build validation
- Hid Launch at Login controls in sandboxed App Store builds
- Removed deprecated app launch API usage
-- Version updated to 5.6.0 (Build 560)
+- Version updated to 5.7.0 (Build 570)
```
---
diff --git a/Apptag/ApptagApp.swift b/Apptag/ApptagApp.swift
index 76f0549..b385c01 100644
--- a/Apptag/ApptagApp.swift
+++ b/Apptag/ApptagApp.swift
@@ -12,7 +12,7 @@
Settings {
PreferencesView()
}
- .defaultSize(width: 880, height: 420)
+ .defaultSize(width: 880, height: 460)
}
}
@@ -24,7 +24,7 @@
}
final class AppDelegate: NSObject, NSApplicationDelegate {
- private var statusItem: NSStatusItem!
+ private var statusItem: NSStatusItem?
private var overlayWindow: NSWindow?
private var settingsWindow: NSWindow? // Track Settings window to keep it above overlay
private var hotkeyRef: EventHotKeyRef?
@@ -150,17 +150,19 @@
// MARK: - Menu Bar
private func setupMenuBar() {
- // Remove old status item if re-creating (language switch, etc.)
- if let existing = statusItem {
- NSStatusBar.system.removeStatusItem(existing)
+ if statusItem == nil {
+ statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.squareLength)
}
- statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength)
+ guard let statusItem else { return }
if let button = statusItem.button {
- button.image = NSImage(
+ let image = NSImage(
systemSymbolName: "tag.fill",
accessibilityDescription: "TagLauncher"
)
+ image?.isTemplate = true
+ button.image = image
+ button.imagePosition = .imageOnly
button.toolTip = "TagLauncher — Tag-based app launcher"
button.action = #selector(toggleOverlay)
button.target = self
@@ -365,8 +367,8 @@
!self.isInEditMode
else { return }
- // Settings/Preferences window → float it above overlay for real-time preview
- if NSApp.windows.contains(keyWindow) {
+ // Settings/Preferences window -> float it above overlay for real-time preview.
+ if self.isSettingsWindowCandidate(keyWindow) {
self.prepareSettingsWindow(keyWindow)
return
}
@@ -377,10 +379,11 @@
/// Settings must always appear centered over the current overlay view and float above it.
private func prepareSettingsWindow(_ window: NSWindow) {
- let settingsSize = NSSize(width: 880, height: max(window.frame.height, 420))
- window.minSize = NSSize(width: 880, height: 420)
- window.maxSize = NSSize(width: 880, height: CGFloat.greatestFiniteMagnitude)
- if abs(window.frame.width - settingsSize.width) > 0.5 || window.frame.height < settingsSize.height {
+ window.identifier = NSUserInterfaceItemIdentifier("TagLauncherPreferencesWindow")
+ let settingsSize = NSSize(width: 880, height: 460)
+ window.minSize = settingsSize
+ window.maxSize = settingsSize
+ if abs(window.frame.width - settingsSize.width) > 0.5 || abs(window.frame.height - settingsSize.height) > 0.5 {
window.setFrame(
NSRect(origin: window.frame.origin, size: settingsSize),
display: false
@@ -399,6 +402,17 @@
window.makeKeyAndOrderFront(nil)
window.orderFrontRegardless()
settingsWindow = window
+ }
+
+ private func isSettingsWindowCandidate(_ window: NSWindow) -> Bool {
+ if window == settingsWindow { return true }
+ if window.identifier?.rawValue == "TagLauncherPreferencesWindow" { return true }
+ guard NSApp.windows.contains(window),
+ window != overlayWindow,
+ window.isVisible,
+ !(window is NSPanel)
+ else { return false }
+ return true
}
private func center(_ window: NSWindow, over rect: NSRect) {
@@ -453,7 +467,7 @@
DispatchQueue.main.asyncAfter(deadline: .now() + 0.03) { [weak self] in
guard let self else { return }
let candidates = NSApp.windows.filter { window in
- window != self.overlayWindow && window.isVisible
+ self.isSettingsWindowCandidate(window)
}
candidates.forEach { self.prepareSettingsWindow($0) }
if candidates.isEmpty && retries > 0 {
@@ -559,7 +573,6 @@
@AppStorage("showDockIcon") private var showDockIcon = false
@AppStorage("launchAtLogin") private var launchAtLogin = true
@State private var selectedLanguage = L10n.currentCode
- @State private var languageRefreshID = UUID()
@State private var isRefreshingLanguage = false
@State private var allApps: [AppInfo] = []
@State private var tagColors: [String: Int] = [:]
@@ -624,25 +637,53 @@
private var buildVersion: String {
Bundle.main.infoDictionary?["CFBundleVersion"] as? String ?? "?"
}
+ private var languageColumns: [GridItem] {
+ [
+ GridItem(.flexible(minimum: 220), spacing: 18, alignment: .top),
+ GridItem(.flexible(minimum: 220), spacing: 18, alignment: .top),
+ ]
+ }
var body: some View {
ZStack {
TabView {
// Tab 1: Language
- Form {
- Section {
- Picker(tr("settings.languagePicker"), selection: $selectedLanguage) {
+ VStack(alignment: .leading, spacing: 10) {
+ Text(tr("settings.language"))
+ .font(.headline)
+ Text(tr("settings.languageDesc"))
+ .font(.caption)
+ .foregroundStyle(.secondary)
+
+ ScrollView {
+ LazyVGrid(columns: languageColumns, alignment: .leading, spacing: 6) {
ForEach(L10n.supported, id: \.code) { language in
- Text(language.name).tag(language.code)
+ Button {
+ selectedLanguage = language.code
+ } label: {
+ HStack(spacing: 8) {
+ Image(systemName: selectedLanguage == language.code ? "checkmark" : "circle")
+ .font(.system(size: 12, weight: .semibold))
+ .foregroundStyle(selectedLanguage == language.code ? Color.accentColor : Color.secondary.opacity(0.28))
+ .frame(width: 16)
+ Text(language.name)
+ .foregroundStyle(.primary)
+ .lineLimit(1)
+ .truncationMode(.tail)
+ Spacer(minLength: 0)
+ }
+ .padding(.horizontal, 8)
+ .padding(.vertical, 5)
+ .contentShape(Rectangle())
+ }
+ .buttonStyle(.plain)
+ .accessibilityLabel("\(tr("settings.languagePicker")) \(language.name)")
}
}
- .pickerStyle(.radioGroup)
- } header: {
- Text(tr("settings.language"))
- } footer: {
- Text(tr("settings.languageDesc"))
+ .padding(.vertical, 4)
}
}
+ .frame(maxWidth: settingsContentWidth, alignment: .leading)
.tabItem { Label(tr("settings.language"), systemImage: "globe") }
.padding()
@@ -812,7 +853,6 @@
.tabItem { Label(tr("settings.about"), systemImage: "info.circle") }
.padding()
}
- .id(languageRefreshID)
.onChange(of: selectedLanguage) { _, code in
L10n.switchTo(code)
}
@@ -835,12 +875,11 @@
.transition(.opacity)
}
}
- .frame(minWidth: settingsWindowWidth, maxWidth: settingsWindowWidth, minHeight: 420)
+ .frame(width: settingsWindowWidth, height: 460)
}
private func showLanguageRefresh() {
isRefreshingLanguage = true
- languageRefreshID = UUID()
DispatchQueue.main.asyncAfter(deadline: .now() + 0.35) {
withAnimation(.easeOut(duration: 0.18)) {
isRefreshingLanguage = false
diff --git a/Apptag/Info.plist b/Apptag/Info.plist
index a9c9d12..e978651 100644
--- a/Apptag/Info.plist
+++ b/Apptag/Info.plist
@@ -19,9 +19,9 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
- <string>5.6.0</string>
+ <string>5.7.0</string>
<key>CFBundleVersion</key>
- <string>560</string>
+ <string>570</string>
<key>LSMinimumSystemVersion</key>
<string>15.0</string>
<key>NSHighResolutionCapable</key>
diff --git a/Apptag/L10n.swift b/Apptag/L10n.swift
index d2d3612..c6c6455 100644
--- a/Apptag/L10n.swift
+++ b/Apptag/L10n.swift
@@ -18,14 +18,34 @@
static let supported: [(code: String, name: String)] = [
("en", "English"),
- ("zh-Hans", "简体中文"),
- ("zh-Hant", "繁體中文"),
- ("ja", "日本語"),
- ("ko", "한국어"),
- ("ru", "Русский"),
("fr", "Français"),
("it", "Italiano"),
+ ("de", "Deutsch"),
("es", "Español"),
+ ("pt-BR", "Português (Brasil)"),
+ ("zh-Hans", "简体中文"),
+ ("zh-Hant", "繁體中文"),
+ ("ko", "한국어"),
+ ("ja", "日本語"),
+ ("ru", "Русский"),
+ ("sr-Cyrl", "Српски (ћирилица)"),
+ ("uk", "Українська"),
+ ("th", "ไทย"),
+ ("vi", "Tiếng Việt"),
+ ("ar", "العربية"),
+ ("ar-Najdi", "العربية (نجدي)"),
+ ("tr", "Türkçe"),
+ ("id", "Bahasa Indonesia"),
+ ("cs", "Čeština"),
+ ("da", "Dansk"),
+ ("nl", "Nederlands"),
+ ("no", "Norsk"),
+ ("nn", "Norsk nynorsk"),
+ ("nb", "Norsk bokmål"),
+ ("ms", "Bahasa Melayu"),
+ ("pl", "Polski"),
+ ("ro", "Română"),
+ ("sv", "Svenska"),
]
static func switchTo(_ code: String) {
@@ -67,12 +87,31 @@
let lang = Locale.preferredLanguages.first ?? "en"
if lang.hasPrefix("zh-Hant") || lang.hasPrefix("zh-HK") || lang.hasPrefix("zh-TW") { return "zh-Hant" }
if lang.hasPrefix("zh") { return "zh-Hans" }
+ if lang.hasPrefix("pt-BR") || lang.hasPrefix("pt_BR") || lang.hasPrefix("pt") { return "pt-BR" }
+ if lang.hasPrefix("sr-Cyrl") || lang.hasPrefix("sr_Cyrl") || lang.hasPrefix("sr") { return "sr-Cyrl" }
+ if lang.hasPrefix("ar") { return "ar" }
+ if lang.hasPrefix("de") { return "de" }
if lang.hasPrefix("ja") { return "ja" }
if lang.hasPrefix("ko") { return "ko" }
if lang.hasPrefix("ru") { return "ru" }
+ if lang.hasPrefix("uk") { return "uk" }
if lang.hasPrefix("fr") { return "fr" }
if lang.hasPrefix("it") { return "it" }
if lang.hasPrefix("es") { return "es" }
+ if lang.hasPrefix("th") { return "th" }
+ if lang.hasPrefix("vi") { return "vi" }
+ if lang.hasPrefix("tr") { return "tr" }
+ if lang.hasPrefix("id") { return "id" }
+ if lang.hasPrefix("cs") { return "cs" }
+ if lang.hasPrefix("da") { return "da" }
+ if lang.hasPrefix("nl") { return "nl" }
+ if lang.hasPrefix("nn") { return "nn" }
+ if lang.hasPrefix("nb") { return "nb" }
+ if lang.hasPrefix("no") { return "no" }
+ if lang.hasPrefix("ms") { return "ms" }
+ if lang.hasPrefix("pl") { return "pl" }
+ if lang.hasPrefix("ro") { return "ro" }
+ if lang.hasPrefix("sv") { return "sv" }
return "en"
}
}
diff --git a/Apptag/Localization/ar-Najdi.json b/Apptag/Localization/ar-Najdi.json
new file mode 100644
index 0000000..447577b
--- /dev/null
+++ b/Apptag/Localization/ar-Najdi.json
@@ -0,0 +1,67 @@
+{
+ "menu.show": "ورّ TagLauncher",
+ "menu.preferences": "التفضيلات…",
+ "menu.quit": "خروج",
+ "menu.language": "اللغة",
+ "menu.version": "الإصدار",
+ "settings.language": "اللغة",
+ "settings.languagePicker": "لغة التطبيق:",
+ "settings.languageDesc": "اختر لغة القوائم والإعدادات.",
+ "settings.general": "عام",
+ "settings.tags": "الوسوم",
+ "settings.data": "البيانات",
+ "settings.about": "عن التطبيق",
+ "settings.launchAtLogin": "يشتغل مع الدخول",
+ "settings.showInDock": "إظهار في Dock",
+ "settings.appListStyle": "شكل قائمة التطبيقات:",
+ "settings.flat": "مسطح",
+ "settings.container": "حاوية بدون لون",
+ "settings.flatDesc": "“مسطح” يعرض التطبيقات مباشرة. الحاويات بدون لون والملونة تستخدم ترتيب masonry. والشبكات بدون لون والملونة ترتب الأيقونات بصفوف متساوية الارتفاع.",
+ "settings.hideAppNames": "إخفاء أسماء التطبيقات",
+ "settings.tagPosition": "مكان الوسوم:",
+ "settings.left": "يسار",
+ "settings.right": "يمين",
+ "settings.top": "فوق",
+ "settings.tagPosDesc": "مكان شريط الوسوم. يسار/يمين يحط الوسوم بالشريط الجانبي.",
+ "settings.tagFontSize": "حجم خط الوسوم:",
+ "settings.tagFontDesc": "يضبط حجم أسماء المجموعات في الواجهة.",
+ "settings.iconSize": "حجم الأيقونات:",
+ "settings.iconSizeDesc": "حجم عرض الأيقونات. أعمدة الشبكة تتعدل تلقائياً.",
+ "settings.backup": "نسخ احتياطي واسترجاع",
+ "settings.export": "تصدير التصنيفات والتخطيط…",
+ "settings.exportFailed": "فشل التصدير",
+ "settings.import": "استيراد التصنيفات والتخطيط…",
+ "settings.backupDesc": "التصدير يحفظ التصنيفات والتخطيط بملف JSON. الاستيراد يستبدل الإعداد الحالي بملف.",
+ "settings.importFailed": "فشل الاستيراد",
+ "edit.exit": "إنهاء التحرير",
+ "edit.tags": "تحرير الوسوم",
+ "edit.title": "تحرير تصنيفات التطبيقات",
+ "edit.confirm": "تأكيد",
+ "edit.selectTags": "اختر الوسوم:",
+ "edit.dragHint": "اسحب لإعادة الترتيب",
+ "edit.success": "تم التصنيف",
+ "edit.noTags": "ما فيه وسوم للحين. اضغط “وسم جديد” عشان تنشئ واحد.",
+ "tag.newTag": "وسم جديد",
+ "tag.name": "اسم الوسم",
+ "tag.save": "حفظ",
+ "tag.cancel": "إلغاء",
+ "tag.add": "إضافة",
+ "tag.newName": "اسم وسم جديد",
+ "app.name": "TagLauncher",
+ "app.description": "مشغل تطبيقات بالوسوم",
+ "app.version": "الإصدار",
+ "app.build": "Build",
+ "group.uncategorized": "غير مصنف",
+ "group.appleBuiltIn": "مدمج",
+ "drop.systemDefaultWarning": "لا تسحب التطبيقات لتصنيفات النظام الافتراضية",
+ "tag.design": "تصميم",
+ "tag.development": "تطوير",
+ "tag.writing": "كتابة",
+ "tag.gaming": "ألعاب",
+ "tag.entertainment": "ترفيه",
+ "tag.system": "نظام",
+ "tag.productivity": "إنتاجية",
+ "settings.coloredContainer": "حاوية ملونة",
+ "settings.gridContainer": "شبكة بدون لون",
+ "settings.coloredGridContainer": "شبكة ملونة"
+}
diff --git a/Apptag/Localization/ar.json b/Apptag/Localization/ar.json
new file mode 100644
index 0000000..b50cf25
--- /dev/null
+++ b/Apptag/Localization/ar.json
@@ -0,0 +1,67 @@
+{
+ "menu.show": "إظهار TagLauncher",
+ "menu.preferences": "التفضيلات…",
+ "menu.quit": "إنهاء",
+ "menu.language": "اللغة",
+ "menu.version": "الإصدار",
+ "settings.language": "اللغة",
+ "settings.languagePicker": "لغة التطبيق:",
+ "settings.languageDesc": "اختر اللغة المستخدمة في القوائم والإعدادات.",
+ "settings.general": "عام",
+ "settings.tags": "الوسوم",
+ "settings.data": "البيانات",
+ "settings.about": "حول",
+ "settings.launchAtLogin": "التشغيل عند تسجيل الدخول",
+ "settings.showInDock": "إظهار في Dock",
+ "settings.appListStyle": "نمط قائمة التطبيقات:",
+ "settings.flat": "مسطح",
+ "settings.container": "حاوية بلا لون",
+ "settings.flatDesc": "يعرض “مسطح” التطبيقات مباشرة. تستخدم الحاويات بلا لون والملونة تخطيط masonry. وتقوم الشبكات بلا لون والملونة بمحاذاة الأيقونات في صفوف متساوية الارتفاع.",
+ "settings.hideAppNames": "إخفاء أسماء التطبيقات",
+ "settings.tagPosition": "موضع الوسوم:",
+ "settings.left": "يسار",
+ "settings.right": "يمين",
+ "settings.top": "أعلى",
+ "settings.tagPosDesc": "مكان ظهور شريط الوسوم. يضع خيار يسار/يمين الوسوم في شريط جانبي.",
+ "settings.tagFontSize": "حجم خط الوسوم:",
+ "settings.tagFontDesc": "يضبط حجم أسماء المجموعات في الواجهة.",
+ "settings.iconSize": "حجم الأيقونات:",
+ "settings.iconSizeDesc": "حجم عرض الأيقونات. تتكيف أعمدة الشبكة تلقائياً.",
+ "settings.backup": "نسخ احتياطي واستعادة",
+ "settings.export": "تصدير التصنيفات والتخطيط…",
+ "settings.exportFailed": "فشل التصدير",
+ "settings.import": "استيراد التصنيفات والتخطيط…",
+ "settings.backupDesc": "يحفظ التصدير التصنيفات والتخطيط في ملف JSON. يستبدل الاستيراد الإعداد الحالي بملف.",
+ "settings.importFailed": "فشل الاستيراد",
+ "edit.exit": "إنهاء التحرير",
+ "edit.tags": "تحرير الوسوم",
+ "edit.title": "تحرير تصنيفات التطبيقات",
+ "edit.confirm": "تأكيد",
+ "edit.selectTags": "اختر الوسوم:",
+ "edit.dragHint": "اسحب لإعادة الترتيب",
+ "edit.success": "تم التصنيف بنجاح",
+ "edit.noTags": "لا توجد وسوم بعد. انقر “وسم جديد” لإنشاء واحد.",
+ "tag.newTag": "وسم جديد",
+ "tag.name": "اسم الوسم",
+ "tag.save": "حفظ",
+ "tag.cancel": "إلغاء",
+ "tag.add": "إضافة",
+ "tag.newName": "اسم وسم جديد",
+ "app.name": "TagLauncher",
+ "app.description": "مشغل تطبيقات قائم على الوسوم",
+ "app.version": "الإصدار",
+ "app.build": "Build",
+ "group.uncategorized": "غير مصنف",
+ "group.appleBuiltIn": "مدمج",
+ "drop.systemDefaultWarning": "لا تسحب التطبيقات إلى التصنيفات الافتراضية للنظام",
+ "tag.design": "تصميم",
+ "tag.development": "تطوير",
+ "tag.writing": "كتابة",
+ "tag.gaming": "ألعاب",
+ "tag.entertainment": "ترفيه",
+ "tag.system": "نظام",
+ "tag.productivity": "إنتاجية",
+ "settings.coloredContainer": "حاوية ملونة",
+ "settings.gridContainer": "شبكة بلا لون",
+ "settings.coloredGridContainer": "شبكة ملونة"
+}
diff --git a/Apptag/Localization/cs.json b/Apptag/Localization/cs.json
new file mode 100644
index 0000000..8d5549c
--- /dev/null
+++ b/Apptag/Localization/cs.json
@@ -0,0 +1,67 @@
+{
+ "menu.show": "Zobrazit TagLauncher",
+ "menu.preferences": "Předvolby…",
+ "menu.quit": "Ukončit",
+ "menu.language": "Jazyk",
+ "menu.version": "Verze",
+ "settings.language": "Jazyk",
+ "settings.languagePicker": "Jazyk aplikace:",
+ "settings.languageDesc": "Vyberte jazyk používaný v nabídkách a nastaveních.",
+ "settings.general": "Obecné",
+ "settings.tags": "Štítky",
+ "settings.data": "Data",
+ "settings.about": "O aplikaci",
+ "settings.launchAtLogin": "Spustit při přihlášení",
+ "settings.showInDock": "Zobrazit v Docku",
+ "settings.appListStyle": "Styl seznamu aplikací:",
+ "settings.flat": "Plochý",
+ "settings.container": "Bezbarvý kontejner",
+ "settings.flatDesc": "„Plochý“ zobrazuje aplikace přímo. „Bezbarvý kontejner“ a „Barevný kontejner“ používají masonry kontejnery. „Bezbarvá mřížka“ a „Barevná mřížka“ zarovnávají ikony do řádků stejné výšky.",
+ "settings.hideAppNames": "Skrýt názvy aplikací",
+ "settings.tagPosition": "Umístění štítků:",
+ "settings.left": "Vlevo",
+ "settings.right": "Vpravo",
+ "settings.top": "Nahoře",
+ "settings.tagPosDesc": "Kde se zobrazí navigační lišta štítků. Vlevo/Vpravo umístí štítky do postranního panelu.",
+ "settings.tagFontSize": "Velikost písma štítků:",
+ "settings.tagFontDesc": "Upravuje velikost názvů skupin v překryvu.",
+ "settings.iconSize": "Velikost ikon:",
+ "settings.iconSizeDesc": "Velikost zobrazení ikon. Sloupce mřížky se přizpůsobí automaticky.",
+ "settings.backup": "Záloha a obnovení",
+ "settings.export": "Exportovat kategorie a rozvržení…",
+ "settings.exportFailed": "Export se nezdařil",
+ "settings.import": "Importovat kategorie a rozvržení…",
+ "settings.backupDesc": "Export uloží kategorie a rozvržení do souboru JSON. Import nahradí aktuální nastavení souborem.",
+ "settings.importFailed": "Import se nezdařil",
+ "edit.exit": "Ukončit úpravy",
+ "edit.tags": "Upravit štítky",
+ "edit.title": "Upravit kategorie aplikací",
+ "edit.confirm": "Potvrdit",
+ "edit.selectTags": "Vyberte štítky:",
+ "edit.dragHint": "Přetažením změňte pořadí",
+ "edit.success": "Kategorizace byla úspěšná",
+ "edit.noTags": "Zatím žádné štítky. Kliknutím na „Nový štítek“ vytvoříte nový.",
+ "tag.newTag": "Nový štítek",
+ "tag.name": "Název štítku",
+ "tag.save": "Uložit",
+ "tag.cancel": "Zrušit",
+ "tag.add": "Přidat",
+ "tag.newName": "Nový název štítku",
+ "app.name": "TagLauncher",
+ "app.description": "Spouštěč aplikací podle štítků",
+ "app.version": "Verze",
+ "app.build": "Build",
+ "group.uncategorized": "Nezařazeno",
+ "group.appleBuiltIn": "Vestavěné",
+ "drop.systemDefaultWarning": "Nepřetahujte aplikace do výchozích systémových kategorií",
+ "tag.design": "Design",
+ "tag.development": "Vývoj",
+ "tag.writing": "Psaní",
+ "tag.gaming": "Hry",
+ "tag.entertainment": "Zábava",
+ "tag.system": "Systém",
+ "tag.productivity": "Produktivita",
+ "settings.coloredContainer": "Barevný kontejner",
+ "settings.gridContainer": "Bezbarvá mřížka",
+ "settings.coloredGridContainer": "Barevná mřížka"
+}
diff --git a/Apptag/Localization/da.json b/Apptag/Localization/da.json
new file mode 100644
index 0000000..75212af
--- /dev/null
+++ b/Apptag/Localization/da.json
@@ -0,0 +1,67 @@
+{
+ "menu.show": "Vis TagLauncher",
+ "menu.preferences": "Indstillinger…",
+ "menu.quit": "Slut",
+ "menu.language": "Sprog",
+ "menu.version": "Version",
+ "settings.language": "Sprog",
+ "settings.languagePicker": "Appsprog:",
+ "settings.languageDesc": "Vælg sproget til menuer og indstillinger.",
+ "settings.general": "Generelt",
+ "settings.tags": "Tags",
+ "settings.data": "Data",
+ "settings.about": "Om",
+ "settings.launchAtLogin": "Start ved login",
+ "settings.showInDock": "Vis i Dock",
+ "settings.appListStyle": "Applistestil:",
+ "settings.flat": "Flad",
+ "settings.container": "Farveløs beholder",
+ "settings.flatDesc": "“Flad” viser apps direkte. “Farveløs beholder” og “Farvet beholder” bruger masonry-beholdere. “Farveløst gitter” og “Farvet gitter” justerer appikoner i gitterrækker med samme højde.",
+ "settings.hideAppNames": "Skjul appnavne",
+ "settings.tagPosition": "Tagplacering:",
+ "settings.left": "Venstre",
+ "settings.right": "Højre",
+ "settings.top": "Top",
+ "settings.tagPosDesc": "Hvor tag-navigationen vises. Venstre/Højre placerer tags i en sidebjælke.",
+ "settings.tagFontSize": "Tag-skriftstørrelse:",
+ "settings.tagFontDesc": "Justerer størrelsen på gruppenavne i overlayet.",
+ "settings.iconSize": "Ikonstørrelse:",
+ "settings.iconSizeDesc": "Ikonernes visningsstørrelse. Gitterkolonner justeres automatisk.",
+ "settings.backup": "Sikkerhedskopi og gendannelse",
+ "settings.export": "Eksporter kategorier og layout…",
+ "settings.exportFailed": "Eksport mislykkedes",
+ "settings.import": "Importer kategorier og layout…",
+ "settings.backupDesc": "Eksport gemmer kategorier og layout i en JSON-fil. Import erstatter den aktuelle opsætning med en fil.",
+ "settings.importFailed": "Import mislykkedes",
+ "edit.exit": "Afslut redigering",
+ "edit.tags": "Rediger tags",
+ "edit.title": "Rediger appkategorier",
+ "edit.confirm": "Bekræft",
+ "edit.selectTags": "Vælg tags:",
+ "edit.dragHint": "Træk for at ændre rækkefølge",
+ "edit.success": "Kategorisering lykkedes",
+ "edit.noTags": "Ingen tags endnu. Klik på “Nyt tag” for at oprette et.",
+ "tag.newTag": "Nyt tag",
+ "tag.name": "Tagnavn",
+ "tag.save": "Gem",
+ "tag.cancel": "Annuller",
+ "tag.add": "Tilføj",
+ "tag.newName": "Nyt tagnavn",
+ "app.name": "TagLauncher",
+ "app.description": "Tagbaseret appstarter",
+ "app.version": "Version",
+ "app.build": "Build",
+ "group.uncategorized": "Ukategoriseret",
+ "group.appleBuiltIn": "Indbygget",
+ "drop.systemDefaultWarning": "Træk ikke apps til systemets standardkategorier",
+ "tag.design": "Design",
+ "tag.development": "Udvikling",
+ "tag.writing": "Skrivning",
+ "tag.gaming": "Spil",
+ "tag.entertainment": "Underholdning",
+ "tag.system": "System",
+ "tag.productivity": "Produktivitet",
+ "settings.coloredContainer": "Farvet beholder",
+ "settings.gridContainer": "Farveløst gitter",
+ "settings.coloredGridContainer": "Farvet gitter"
+}
diff --git a/Apptag/Localization/de.json b/Apptag/Localization/de.json
new file mode 100644
index 0000000..a82c7ca
--- /dev/null
+++ b/Apptag/Localization/de.json
@@ -0,0 +1,67 @@
+{
+ "menu.show": "TagLauncher anzeigen",
+ "menu.preferences": "Einstellungen…",
+ "menu.quit": "Beenden",
+ "menu.language": "Sprache",
+ "menu.version": "Version",
+ "settings.language": "Sprache",
+ "settings.languagePicker": "App-Sprache:",
+ "settings.languageDesc": "Wähle die Sprache für Menüs und Einstellungen.",
+ "settings.general": "Allgemein",
+ "settings.tags": "Tags",
+ "settings.data": "Daten",
+ "settings.about": "Über",
+ "settings.launchAtLogin": "Beim Anmelden starten",
+ "settings.showInDock": "Im Dock anzeigen",
+ "settings.appListStyle": "App-Listenstil:",
+ "settings.flat": "Flach",
+ "settings.container": "Farbloser Container",
+ "settings.flatDesc": "„Flach“ zeigt Apps direkt an. „Farbloser Container“ und „Farbiger Container“ verwenden Masonry-Container. „Farbloses Raster“ und „Farbiges Raster“ richten App-Symbole in gleich hohen Rasterzeilen aus.",
+ "settings.hideAppNames": "App-Namen ausblenden",
+ "settings.tagPosition": "Tag-Position:",
+ "settings.left": "Links",
+ "settings.right": "Rechts",
+ "settings.top": "Oben",
+ "settings.tagPosDesc": "Position der Tag-Navigation. Links/Rechts platziert Tags in einer Seitenleiste.",
+ "settings.tagFontSize": "Tag-Schriftgröße:",
+ "settings.tagFontDesc": "Passt die Größe der Gruppennamen im Overlay an.",
+ "settings.iconSize": "Symbolgröße:",
+ "settings.iconSizeDesc": "Anzeigegröße der Symbole. Rasterspalten passen sich automatisch an.",
+ "settings.backup": "Sichern & Wiederherstellen",
+ "settings.export": "Kategorien & Layout exportieren…",
+ "settings.exportFailed": "Export fehlgeschlagen",
+ "settings.import": "Kategorien & Layout importieren…",
+ "settings.backupDesc": "Der Export speichert Kategorien und Layout als JSON-Datei. Der Import ersetzt die aktuelle Konfiguration durch eine Datei.",
+ "settings.importFailed": "Import fehlgeschlagen",
+ "edit.exit": "Bearbeitung beenden",
+ "edit.tags": "Tags bearbeiten",
+ "edit.title": "App-Kategorien bearbeiten",
+ "edit.confirm": "Bestätigen",
+ "edit.selectTags": "Tags auswählen:",
+ "edit.dragHint": "Zum Sortieren ziehen",
+ "edit.success": "Kategorisierung erfolgreich",
+ "edit.noTags": "Noch keine Tags. Klicke auf „Neuer Tag“, um einen zu erstellen.",
+ "tag.newTag": "Neuer Tag",
+ "tag.name": "Tag-Name",
+ "tag.save": "Sichern",
+ "tag.cancel": "Abbrechen",
+ "tag.add": "Hinzufügen",
+ "tag.newName": "Neuer Tag-Name",
+ "app.name": "TagLauncher",
+ "app.description": "Tag-basierter App-Launcher",
+ "app.version": "Version",
+ "app.build": "Build",
+ "group.uncategorized": "Nicht kategorisiert",
+ "group.appleBuiltIn": "Integriert",
+ "drop.systemDefaultWarning": "Ziehe keine Apps in die Standard-Systemkategorien",
+ "tag.design": "Design",
+ "tag.development": "Entwicklung",
+ "tag.writing": "Schreiben",
+ "tag.gaming": "Spiele",
+ "tag.entertainment": "Unterhaltung",
+ "tag.system": "System",
+ "tag.productivity": "Produktivität",
+ "settings.coloredContainer": "Farbiger Container",
+ "settings.gridContainer": "Farbloses Raster",
+ "settings.coloredGridContainer": "Farbiges Raster"
+}
diff --git a/Apptag/Localization/id.json b/Apptag/Localization/id.json
new file mode 100644
index 0000000..7f22cce
--- /dev/null
+++ b/Apptag/Localization/id.json
@@ -0,0 +1,67 @@
+{
+ "menu.show": "Tampilkan TagLauncher",
+ "menu.preferences": "Preferensi…",
+ "menu.quit": "Keluar",
+ "menu.language": "Bahasa",
+ "menu.version": "Versi",
+ "settings.language": "Bahasa",
+ "settings.languagePicker": "Bahasa aplikasi:",
+ "settings.languageDesc": "Pilih bahasa yang digunakan untuk menu dan pengaturan.",
+ "settings.general": "Umum",
+ "settings.tags": "Tag",
+ "settings.data": "Data",
+ "settings.about": "Tentang",
+ "settings.launchAtLogin": "Mulai saat masuk",
+ "settings.showInDock": "Tampilkan di Dock",
+ "settings.appListStyle": "Gaya daftar app:",
+ "settings.flat": "Datar",
+ "settings.container": "Kontainer tanpa warna",
+ "settings.flatDesc": "“Datar” menampilkan app secara langsung. “Kontainer tanpa warna” dan “Kontainer berwarna” memakai kontainer masonry. “Grid tanpa warna” dan “Grid berwarna” menyelaraskan ikon app dalam baris grid dengan tinggi yang sama.",
+ "settings.hideAppNames": "Sembunyikan nama app",
+ "settings.tagPosition": "Posisi tag:",
+ "settings.left": "Kiri",
+ "settings.right": "Kanan",
+ "settings.top": "Atas",
+ "settings.tagPosDesc": "Tempat bilah navigasi tag muncul. Kiri/Kanan menempatkan tag di bilah samping.",
+ "settings.tagFontSize": "Ukuran font tag:",
+ "settings.tagFontDesc": "Menyesuaikan ukuran label nama grup di overlay.",
+ "settings.iconSize": "Ukuran ikon:",
+ "settings.iconSizeDesc": "Ukuran tampilan ikon. Kolom grid menyesuaikan otomatis.",
+ "settings.backup": "Cadangkan & pulihkan",
+ "settings.export": "Ekspor kategori & tata letak…",
+ "settings.exportFailed": "Ekspor gagal",
+ "settings.import": "Impor kategori & tata letak…",
+ "settings.backupDesc": "Ekspor menyimpan kategori dan tata letak ke file JSON. Impor mengganti pengaturan saat ini dengan file.",
+ "settings.importFailed": "Impor gagal",
+ "edit.exit": "Keluar dari pengeditan",
+ "edit.tags": "Edit tag",
+ "edit.title": "Edit kategori app",
+ "edit.confirm": "Konfirmasi",
+ "edit.selectTags": "Pilih tag:",
+ "edit.dragHint": "Seret untuk mengurutkan",
+ "edit.success": "Kategorisasi berhasil",
+ "edit.noTags": "Belum ada tag. Klik “Tag baru” untuk membuatnya.",
+ "tag.newTag": "Tag baru",
+ "tag.name": "Nama tag",
+ "tag.save": "Simpan",
+ "tag.cancel": "Batal",
+ "tag.add": "Tambah",
+ "tag.newName": "Nama tag baru",
+ "app.name": "TagLauncher",
+ "app.description": "Peluncur app berbasis tag",
+ "app.version": "Versi",
+ "app.build": "Build",
+ "group.uncategorized": "Tanpa kategori",
+ "group.appleBuiltIn": "Bawaan",
+ "drop.systemDefaultWarning": "Jangan seret app ke kategori bawaan sistem",
+ "tag.design": "Desain",
+ "tag.development": "Pengembangan",
+ "tag.writing": "Menulis",
+ "tag.gaming": "Game",
+ "tag.entertainment": "Hiburan",
+ "tag.system": "Sistem",
+ "tag.productivity": "Produktivitas",
+ "settings.coloredContainer": "Kontainer berwarna",
+ "settings.gridContainer": "Grid tanpa warna",
+ "settings.coloredGridContainer": "Grid berwarna"
+}
diff --git a/Apptag/Localization/ms.json b/Apptag/Localization/ms.json
new file mode 100644
index 0000000..da82e7a
--- /dev/null
+++ b/Apptag/Localization/ms.json
@@ -0,0 +1,67 @@
+{
+ "menu.show": "Tunjukkan TagLauncher",
+ "menu.preferences": "Keutamaan…",
+ "menu.quit": "Keluar",
+ "menu.language": "Bahasa",
+ "menu.version": "Versi",
+ "settings.language": "Bahasa",
+ "settings.languagePicker": "Bahasa aplikasi:",
+ "settings.languageDesc": "Pilih bahasa yang digunakan untuk menu dan tetapan.",
+ "settings.general": "Umum",
+ "settings.tags": "Tag",
+ "settings.data": "Data",
+ "settings.about": "Tentang",
+ "settings.launchAtLogin": "Mula semasa log masuk",
+ "settings.showInDock": "Tunjukkan dalam Dock",
+ "settings.appListStyle": "Gaya senarai app:",
+ "settings.flat": "Datar",
+ "settings.container": "Kontainer tanpa warna",
+ "settings.flatDesc": "“Datar” menampilkan app secara langsung. “Kontainer tanpa warna” dan “Kontainer berwarna” memakai kontainer masonry. “Grid tanpa warna” dan “Grid berwarna” menyelaraskan ikon app dalam baris grid dengan tinggi yang sama.",
+ "settings.hideAppNames": "Sembunyikan nama app",
+ "settings.tagPosition": "Posisi tag:",
+ "settings.left": "Kiri",
+ "settings.right": "Kanan",
+ "settings.top": "Atas",
+ "settings.tagPosDesc": "Tempat bilah navigasi tag muncul. Kiri/Kanan menempatkan tag di bilah samping.",
+ "settings.tagFontSize": "Ukuran font tag:",
+ "settings.tagFontDesc": "Menyesuaikan ukuran label nama grup di overlay.",
+ "settings.iconSize": "Ukuran ikon:",
+ "settings.iconSizeDesc": "Ukuran tampilan ikon. Kolom grid menyesuaikan otomatis.",
+ "settings.backup": "Sandaran & pulih",
+ "settings.export": "Eksport kategori & susun atur…",
+ "settings.exportFailed": "Ekspor gagal",
+ "settings.import": "Import kategori & susun atur…",
+ "settings.backupDesc": "Eksport menyimpan kategori dan susun atur ke fail JSON. Import menggantikan tetapan semasa dengan fail.",
+ "settings.importFailed": "Impor gagal",
+ "edit.exit": "Keluar dari pengeditan",
+ "edit.tags": "Edit tag",
+ "edit.title": "Edit kategori app",
+ "edit.confirm": "Konfirmasi",
+ "edit.selectTags": "Pilih tag:",
+ "edit.dragHint": "Seret untuk mengurutkan",
+ "edit.success": "Kategorisasi berhasil",
+ "edit.noTags": "Belum ada tag. Klik “Tag baru” untuk membuatnya.",
+ "tag.newTag": "Tag baru",
+ "tag.name": "Nama tag",
+ "tag.save": "Simpan",
+ "tag.cancel": "Batal",
+ "tag.add": "Tambah",
+ "tag.newName": "Nama tag baru",
+ "app.name": "TagLauncher",
+ "app.description": "Peluncur app berbasis tag",
+ "app.version": "Versi",
+ "app.build": "Build",
+ "group.uncategorized": "Tidak berkategori",
+ "group.appleBuiltIn": "Terbina dalam",
+ "drop.systemDefaultWarning": "Jangan seret app ke kategori bawaan sistem",
+ "tag.design": "Desain",
+ "tag.development": "Pengembangan",
+ "tag.writing": "Menulis",
+ "tag.gaming": "Game",
+ "tag.entertainment": "Hiburan",
+ "tag.system": "Sistem",
+ "tag.productivity": "Produktivitas",
+ "settings.coloredContainer": "Kontainer berwarna",
+ "settings.gridContainer": "Grid tanpa warna",
+ "settings.coloredGridContainer": "Grid berwarna"
+}
diff --git a/Apptag/Localization/nb.json b/Apptag/Localization/nb.json
new file mode 100644
index 0000000..a5c076d
--- /dev/null
+++ b/Apptag/Localization/nb.json
@@ -0,0 +1,67 @@
+{
+ "menu.show": "Vis TagLauncher",
+ "menu.preferences": "Innstillinger…",
+ "menu.quit": "Avslutt",
+ "menu.language": "Språk",
+ "menu.version": "Versjon",
+ "settings.language": "Språk",
+ "settings.languagePicker": "Appspråk:",
+ "settings.languageDesc": "Velg språket som brukes i menyer og innstillinger.",
+ "settings.general": "Generelt",
+ "settings.tags": "Etiketter",
+ "settings.data": "Data",
+ "settings.about": "Om",
+ "settings.launchAtLogin": "Start ved innlogging",
+ "settings.showInDock": "Vis i Dock",
+ "settings.appListStyle": "App-listestil:",
+ "settings.flat": "Flat",
+ "settings.container": "Fargeløs beholder",
+ "settings.flatDesc": "«Flat» viser apper direkte. «Fargeløs beholder» og «Farget beholder» bruker masonry-beholdere. «Fargeløst rutenett» og «Farget rutenett» justerer appikoner i rader med lik høyde.",
+ "settings.hideAppNames": "Skjul appnavn",
+ "settings.tagPosition": "Etikettposisjon:",
+ "settings.left": "Venstre",
+ "settings.right": "Høyre",
+ "settings.top": "Topp",
+ "settings.tagPosDesc": "Hvor etikettnavigasjonen vises. Venstre/Høyre plasserer etiketter i en sidestolpe.",
+ "settings.tagFontSize": "Etikett-skriftstørrelse:",
+ "settings.tagFontDesc": "Justerer størrelsen på gruppenavn i overlegget.",
+ "settings.iconSize": "Ikonstørrelse:",
+ "settings.iconSizeDesc": "Visningsstørrelse for ikoner. Rutenettkolonner justeres automatisk.",
+ "settings.backup": "Sikkerhetskopi og gjenoppretting",
+ "settings.export": "Eksporter kategorier og layout…",
+ "settings.exportFailed": "Eksport mislyktes",
+ "settings.import": "Importer kategorier og layout…",
+ "settings.backupDesc": "Eksport lagrer kategorier og layout i en JSON-fil. Import erstatter gjeldende oppsett med en fil.",
+ "settings.importFailed": "Import mislyktes",
+ "edit.exit": "Avslutt redigering",
+ "edit.tags": "Rediger etiketter",
+ "edit.title": "Rediger appkategorier",
+ "edit.confirm": "Bekreft",
+ "edit.selectTags": "Velg etiketter:",
+ "edit.dragHint": "Dra for å endre rekkefølge",
+ "edit.success": "Kategorisering vellykket",
+ "edit.noTags": "Ingen etiketter ennå. Klikk på «Ny etikett» for å opprette en.",
+ "tag.newTag": "Ny etikett",
+ "tag.name": "Etikettnavn",
+ "tag.save": "Lagre",
+ "tag.cancel": "Avbryt",
+ "tag.add": "Legg til",
+ "tag.newName": "Nytt etikettnavn",
+ "app.name": "TagLauncher",
+ "app.description": "Etikettbasert appstarter",
+ "app.version": "Versjon",
+ "app.build": "Build",
+ "group.uncategorized": "Ukategorisert",
+ "group.appleBuiltIn": "Innebygd",
+ "drop.systemDefaultWarning": "Ikke dra apper til systemets standardkategorier",
+ "tag.design": "Design",
+ "tag.development": "Utvikling",
+ "tag.writing": "Skriving",
+ "tag.gaming": "Spill",
+ "tag.entertainment": "Underholdning",
+ "tag.system": "System",
+ "tag.productivity": "Produktivitet",
+ "settings.coloredContainer": "Farget beholder",
+ "settings.gridContainer": "Fargeløst rutenett",
+ "settings.coloredGridContainer": "Farget rutenett"
+}
diff --git a/Apptag/Localization/nl.json b/Apptag/Localization/nl.json
new file mode 100644
index 0000000..343ac3c
--- /dev/null
+++ b/Apptag/Localization/nl.json
@@ -0,0 +1,67 @@
+{
+ "menu.show": "Toon TagLauncher",
+ "menu.preferences": "Voorkeuren…",
+ "menu.quit": "Stop",
+ "menu.language": "Taal",
+ "menu.version": "Versie",
+ "settings.language": "Taal",
+ "settings.languagePicker": "App-taal:",
+ "settings.languageDesc": "Kies de taal voor menu’s en instellingen.",
+ "settings.general": "Algemeen",
+ "settings.tags": "Tags",
+ "settings.data": "Gegevens",
+ "settings.about": "Over",
+ "settings.launchAtLogin": "Start bij inloggen",
+ "settings.showInDock": "Toon in Dock",
+ "settings.appListStyle": "App-lijststijl:",
+ "settings.flat": "Plat",
+ "settings.container": "Kleurloze container",
+ "settings.flatDesc": "“Plat” toont apps direct. “Kleurloze container” en “Gekleurde container” gebruiken masonry-containers. “Kleurloos raster” en “Gekleurd raster” lijnen app-iconen uit in rijen met gelijke hoogte.",
+ "settings.hideAppNames": "Verberg appnamen",
+ "settings.tagPosition": "Tagpositie:",
+ "settings.left": "Links",
+ "settings.right": "Rechts",
+ "settings.top": "Boven",
+ "settings.tagPosDesc": "Waar de tagnavigatie verschijnt. Links/Rechts plaatst tags in een zijbalk.",
+ "settings.tagFontSize": "Tekstgrootte tags:",
+ "settings.tagFontDesc": "Past de grootte van groepsnamen in de overlay aan.",
+ "settings.iconSize": "Icoongrootte:",
+ "settings.iconSizeDesc": "Weergavegrootte van iconen. Rasterkolommen passen automatisch aan.",
+ "settings.backup": "Back-up en herstel",
+ "settings.export": "Categorieën en lay-out exporteren…",
+ "settings.exportFailed": "Export mislukt",
+ "settings.import": "Categorieën en lay-out importeren…",
+ "settings.backupDesc": "Export slaat categorieën en lay-out op in een JSON-bestand. Import vervangt de huidige instelling door een bestand.",
+ "settings.importFailed": "Import mislukt",
+ "edit.exit": "Bewerken afsluiten",
+ "edit.tags": "Tags bewerken",
+ "edit.title": "App-categorieën bewerken",
+ "edit.confirm": "Bevestigen",
+ "edit.selectTags": "Selecteer tags:",
+ "edit.dragHint": "Sleep om te sorteren",
+ "edit.success": "Categorisatie gelukt",
+ "edit.noTags": "Nog geen tags. Klik op “Nieuwe tag” om er een te maken.",
+ "tag.newTag": "Nieuwe tag",
+ "tag.name": "Tagnaam",
+ "tag.save": "Bewaar",
+ "tag.cancel": "Annuleer",
+ "tag.add": "Voeg toe",
+ "tag.newName": "Nieuwe tagnaam",
+ "app.name": "TagLauncher",
+ "app.description": "Taggebaseerde appstarter",
+ "app.version": "Versie",
+ "app.build": "Build",
+ "group.uncategorized": "Niet gecategoriseerd",
+ "group.appleBuiltIn": "Ingebouwd",
+ "drop.systemDefaultWarning": "Sleep apps niet naar standaard systeemcategorieën",
+ "tag.design": "Ontwerp",
+ "tag.development": "Ontwikkeling",
+ "tag.writing": "Schrijven",
+ "tag.gaming": "Games",
+ "tag.entertainment": "Entertainment",
+ "tag.system": "Systeem",
+ "tag.productivity": "Productiviteit",
+ "settings.coloredContainer": "Gekleurde container",
+ "settings.gridContainer": "Kleurloos raster",
+ "settings.coloredGridContainer": "Gekleurd raster"
+}
diff --git a/Apptag/Localization/nn.json b/Apptag/Localization/nn.json
new file mode 100644
index 0000000..b1628d7
--- /dev/null
+++ b/Apptag/Localization/nn.json
@@ -0,0 +1,67 @@
+{
+ "menu.show": "Vis TagLauncher",
+ "menu.preferences": "Innstillingar…",
+ "menu.quit": "Avslutt",
+ "menu.language": "Språk",
+ "menu.version": "Versjon",
+ "settings.language": "Språk",
+ "settings.languagePicker": "Appspråk:",
+ "settings.languageDesc": "Velg språket som brukes i menyer og innstillinger.",
+ "settings.general": "Generelt",
+ "settings.tags": "Etiketter",
+ "settings.data": "Data",
+ "settings.about": "Om",
+ "settings.launchAtLogin": "Start ved innlogging",
+ "settings.showInDock": "Vis i Dock",
+ "settings.appListStyle": "App-listestil:",
+ "settings.flat": "Flat",
+ "settings.container": "Fargeløs beholder",
+ "settings.flatDesc": "«Flat» viser apper direkte. «Fargeløs beholder» og «Farget beholder» bruker masonry-beholdere. «Fargeløst rutenett» og «Farget rutenett» justerer appikoner i rader med lik høyde.",
+ "settings.hideAppNames": "Gøym appnamn",
+ "settings.tagPosition": "Etikettposisjon:",
+ "settings.left": "Venstre",
+ "settings.right": "Høyre",
+ "settings.top": "Topp",
+ "settings.tagPosDesc": "Hvor etikettnavigasjonen vises. Venstre/Høyre plasserer etiketter i en sidestolpe.",
+ "settings.tagFontSize": "Etikett-skriftstørrelse:",
+ "settings.tagFontDesc": "Justerer størrelsen på gruppenavn i overlegget.",
+ "settings.iconSize": "Ikonstørrelse:",
+ "settings.iconSizeDesc": "Visningsstørrelse for ikoner. Rutenettkolonner justeres automatisk.",
+ "settings.backup": "Sikkerhetskopi og gjenoppretting",
+ "settings.export": "Eksporter kategorier og layout…",
+ "settings.exportFailed": "Eksport mislyktes",
+ "settings.import": "Importer kategorier og layout…",
+ "settings.backupDesc": "Eksport lagrer kategorier og layout i en JSON-fil. Import erstatter gjeldende oppsett med en fil.",
+ "settings.importFailed": "Import mislyktes",
+ "edit.exit": "Avslutt redigering",
+ "edit.tags": "Rediger etiketter",
+ "edit.title": "Rediger appkategorier",
+ "edit.confirm": "Bekreft",
+ "edit.selectTags": "Velg etiketter:",
+ "edit.dragHint": "Dra for å endre rekkjefølgje",
+ "edit.success": "Kategorisering vellykket",
+ "edit.noTags": "Ingen etiketter ennå. Klikk på «Ny etikett» for å opprette en.",
+ "tag.newTag": "Ny etikett",
+ "tag.name": "Etikettnavn",
+ "tag.save": "Lagre",
+ "tag.cancel": "Avbryt",
+ "tag.add": "Legg til",
+ "tag.newName": "Nytt etikettnavn",
+ "app.name": "TagLauncher",
+ "app.description": "Etikettbasert appstartar",
+ "app.version": "Versjon",
+ "app.build": "Build",
+ "group.uncategorized": "Ukategorisert",
+ "group.appleBuiltIn": "Innebygd",
+ "drop.systemDefaultWarning": "Ikke dra apper til systemets standardkategorier",
+ "tag.design": "Design",
+ "tag.development": "Utvikling",
+ "tag.writing": "Skriving",
+ "tag.gaming": "Spill",
+ "tag.entertainment": "Underholdning",
+ "tag.system": "System",
+ "tag.productivity": "Produktivitet",
+ "settings.coloredContainer": "Farget beholder",
+ "settings.gridContainer": "Fargeløst rutenett",
+ "settings.coloredGridContainer": "Farget rutenett"
+}
diff --git a/Apptag/Localization/no.json b/Apptag/Localization/no.json
new file mode 100644
index 0000000..a5c076d
--- /dev/null
+++ b/Apptag/Localization/no.json
@@ -0,0 +1,67 @@
+{
+ "menu.show": "Vis TagLauncher",
+ "menu.preferences": "Innstillinger…",
+ "menu.quit": "Avslutt",
+ "menu.language": "Språk",
+ "menu.version": "Versjon",
+ "settings.language": "Språk",
+ "settings.languagePicker": "Appspråk:",
+ "settings.languageDesc": "Velg språket som brukes i menyer og innstillinger.",
+ "settings.general": "Generelt",
+ "settings.tags": "Etiketter",
+ "settings.data": "Data",
+ "settings.about": "Om",
+ "settings.launchAtLogin": "Start ved innlogging",
+ "settings.showInDock": "Vis i Dock",
+ "settings.appListStyle": "App-listestil:",
+ "settings.flat": "Flat",
+ "settings.container": "Fargeløs beholder",
+ "settings.flatDesc": "«Flat» viser apper direkte. «Fargeløs beholder» og «Farget beholder» bruker masonry-beholdere. «Fargeløst rutenett» og «Farget rutenett» justerer appikoner i rader med lik høyde.",
+ "settings.hideAppNames": "Skjul appnavn",
+ "settings.tagPosition": "Etikettposisjon:",
+ "settings.left": "Venstre",
+ "settings.right": "Høyre",
+ "settings.top": "Topp",
+ "settings.tagPosDesc": "Hvor etikettnavigasjonen vises. Venstre/Høyre plasserer etiketter i en sidestolpe.",
+ "settings.tagFontSize": "Etikett-skriftstørrelse:",
+ "settings.tagFontDesc": "Justerer størrelsen på gruppenavn i overlegget.",
+ "settings.iconSize": "Ikonstørrelse:",
+ "settings.iconSizeDesc": "Visningsstørrelse for ikoner. Rutenettkolonner justeres automatisk.",
+ "settings.backup": "Sikkerhetskopi og gjenoppretting",
+ "settings.export": "Eksporter kategorier og layout…",
+ "settings.exportFailed": "Eksport mislyktes",
+ "settings.import": "Importer kategorier og layout…",
+ "settings.backupDesc": "Eksport lagrer kategorier og layout i en JSON-fil. Import erstatter gjeldende oppsett med en fil.",
+ "settings.importFailed": "Import mislyktes",
+ "edit.exit": "Avslutt redigering",
+ "edit.tags": "Rediger etiketter",
+ "edit.title": "Rediger appkategorier",
+ "edit.confirm": "Bekreft",
+ "edit.selectTags": "Velg etiketter:",
+ "edit.dragHint": "Dra for å endre rekkefølge",
+ "edit.success": "Kategorisering vellykket",
+ "edit.noTags": "Ingen etiketter ennå. Klikk på «Ny etikett» for å opprette en.",
+ "tag.newTag": "Ny etikett",
+ "tag.name": "Etikettnavn",
+ "tag.save": "Lagre",
+ "tag.cancel": "Avbryt",
+ "tag.add": "Legg til",
+ "tag.newName": "Nytt etikettnavn",
+ "app.name": "TagLauncher",
+ "app.description": "Etikettbasert appstarter",
+ "app.version": "Versjon",
+ "app.build": "Build",
+ "group.uncategorized": "Ukategorisert",
+ "group.appleBuiltIn": "Innebygd",
+ "drop.systemDefaultWarning": "Ikke dra apper til systemets standardkategorier",
+ "tag.design": "Design",
+ "tag.development": "Utvikling",
+ "tag.writing": "Skriving",
+ "tag.gaming": "Spill",
+ "tag.entertainment": "Underholdning",
+ "tag.system": "System",
+ "tag.productivity": "Produktivitet",
+ "settings.coloredContainer": "Farget beholder",
+ "settings.gridContainer": "Fargeløst rutenett",
+ "settings.coloredGridContainer": "Farget rutenett"
+}
diff --git a/Apptag/Localization/pl.json b/Apptag/Localization/pl.json
new file mode 100644
index 0000000..0d5f70c
--- /dev/null
+++ b/Apptag/Localization/pl.json
@@ -0,0 +1,67 @@
+{
+ "menu.show": "Pokaż TagLauncher",
+ "menu.preferences": "Preferencje…",
+ "menu.quit": "Zakończ",
+ "menu.language": "Język",
+ "menu.version": "Wersja",
+ "settings.language": "Język",
+ "settings.languagePicker": "Język aplikacji:",
+ "settings.languageDesc": "Wybierz język menu i ustawień.",
+ "settings.general": "Ogólne",
+ "settings.tags": "Tagi",
+ "settings.data": "Dane",
+ "settings.about": "O aplikacji",
+ "settings.launchAtLogin": "Uruchamiaj przy logowaniu",
+ "settings.showInDock": "Pokaż w Docku",
+ "settings.appListStyle": "Styl listy aplikacji:",
+ "settings.flat": "Płaski",
+ "settings.container": "Bezbarwny kontener",
+ "settings.flatDesc": "„Płaski” pokazuje aplikacje bezpośrednio. „Bezbarwny kontener” i „Kolorowy kontener” używają układu masonry. „Bezbarwna siatka” i „Kolorowa siatka” wyrównują ikony w wierszach o tej samej wysokości.",
+ "settings.hideAppNames": "Ukryj nazwy aplikacji",
+ "settings.tagPosition": "Pozycja tagów:",
+ "settings.left": "Lewo",
+ "settings.right": "Prawo",
+ "settings.top": "Góra",
+ "settings.tagPosDesc": "Miejsce paska nawigacji tagów. Lewo/Prawo umieszcza tagi na pasku bocznym.",
+ "settings.tagFontSize": "Rozmiar czcionki tagów:",
+ "settings.tagFontDesc": "Dostosowuje rozmiar nazw grup w nakładce.",
+ "settings.iconSize": "Rozmiar ikon:",
+ "settings.iconSizeDesc": "Rozmiar wyświetlania ikon. Kolumny siatki dopasowują się automatycznie.",
+ "settings.backup": "Kopia zapasowa i przywracanie",
+ "settings.export": "Eksportuj kategorie i układ…",
+ "settings.exportFailed": "Eksport nieudany",
+ "settings.import": "Importuj kategorie i układ…",
+ "settings.backupDesc": "Eksport zapisuje kategorie i układ do pliku JSON. Import zastępuje bieżącą konfigurację plikiem.",
+ "settings.importFailed": "Import nieudany",
+ "edit.exit": "Zakończ edycję",
+ "edit.tags": "Edytuj tagi",
+ "edit.title": "Edytuj kategorie aplikacji",
+ "edit.confirm": "Potwierdź",
+ "edit.selectTags": "Wybierz tagi:",
+ "edit.dragHint": "Przeciągnij, aby zmienić kolejność",
+ "edit.success": "Kategoryzacja zakończona",
+ "edit.noTags": "Brak tagów. Kliknij „Nowy tag”, aby utworzyć.",
+ "tag.newTag": "Nowy tag",
+ "tag.name": "Nazwa tagu",
+ "tag.save": "Zapisz",
+ "tag.cancel": "Anuluj",
+ "tag.add": "Dodaj",
+ "tag.newName": "Nowa nazwa tagu",
+ "app.name": "TagLauncher",
+ "app.description": "Launcher aplikacji oparty na tagach",
+ "app.version": "Wersja",
+ "app.build": "Build",
+ "group.uncategorized": "Bez kategorii",
+ "group.appleBuiltIn": "Wbudowane",
+ "drop.systemDefaultWarning": "Nie przeciągaj aplikacji do domyślnych kategorii systemu",
+ "tag.design": "Projektowanie",
+ "tag.development": "Programowanie",
+ "tag.writing": "Pisanie",
+ "tag.gaming": "Gry",
+ "tag.entertainment": "Rozrywka",
+ "tag.system": "System",
+ "tag.productivity": "Produktywność",
+ "settings.coloredContainer": "Kolorowy kontener",
+ "settings.gridContainer": "Bezbarwna siatka",
+ "settings.coloredGridContainer": "Kolorowa siatka"
+}
diff --git a/Apptag/Localization/pt-BR.json b/Apptag/Localization/pt-BR.json
new file mode 100644
index 0000000..7fab874
--- /dev/null
+++ b/Apptag/Localization/pt-BR.json
@@ -0,0 +1,67 @@
+{
+ "menu.show": "Mostrar TagLauncher",
+ "menu.preferences": "Preferências…",
+ "menu.quit": "Sair",
+ "menu.language": "Idioma",
+ "menu.version": "Versão",
+ "settings.language": "Idioma",
+ "settings.languagePicker": "Idioma do app:",
+ "settings.languageDesc": "Escolha o idioma usado nos menus e ajustes.",
+ "settings.general": "Geral",
+ "settings.tags": "Etiquetas",
+ "settings.data": "Dados",
+ "settings.about": "Sobre",
+ "settings.launchAtLogin": "Iniciar ao fazer login",
+ "settings.showInDock": "Mostrar no Dock",
+ "settings.appListStyle": "Estilo da lista de apps:",
+ "settings.flat": "Plano",
+ "settings.container": "Contêiner sem cor",
+ "settings.flatDesc": "“Plano” mostra os apps diretamente. “Contêiner sem cor” e “Contêiner colorido” usam contêineres em cascata. “Grade sem cor” e “Grade colorida” alinham os ícones em linhas de grade com a mesma altura.",
+ "settings.hideAppNames": "Ocultar nomes dos apps",
+ "settings.tagPosition": "Posição das etiquetas:",
+ "settings.left": "Esquerda",
+ "settings.right": "Direita",
+ "settings.top": "Topo",
+ "settings.tagPosDesc": "Onde aparece a barra de navegação de etiquetas. Esquerda/Direita coloca as etiquetas em uma barra lateral.",
+ "settings.tagFontSize": "Tamanho da fonte das etiquetas:",
+ "settings.tagFontDesc": "Ajusta o tamanho dos nomes de grupos no overlay.",
+ "settings.iconSize": "Tamanho dos ícones:",
+ "settings.iconSizeDesc": "Tamanho de exibição dos ícones. As colunas se ajustam automaticamente.",
+ "settings.backup": "Backup e restauração",
+ "settings.export": "Exportar categorias e layout…",
+ "settings.exportFailed": "Falha ao exportar",
+ "settings.import": "Importar categorias e layout…",
+ "settings.backupDesc": "A exportação salva categorias e layout em um arquivo JSON. A importação substitui a configuração atual por um arquivo.",
+ "settings.importFailed": "Falha ao importar",
+ "edit.exit": "Sair da edição",
+ "edit.tags": "Editar etiquetas",
+ "edit.title": "Editar categorias de apps",
+ "edit.confirm": "Confirmar",
+ "edit.selectTags": "Selecionar etiquetas:",
+ "edit.dragHint": "Arraste para reordenar",
+ "edit.success": "Categorização concluída",
+ "edit.noTags": "Nenhuma etiqueta ainda. Clique em “Nova etiqueta” para criar uma.",
+ "tag.newTag": "Nova etiqueta",
+ "tag.name": "Nome da etiqueta",
+ "tag.save": "Salvar",
+ "tag.cancel": "Cancelar",
+ "tag.add": "Adicionar",
+ "tag.newName": "Novo nome da etiqueta",
+ "app.name": "TagLauncher",
+ "app.description": "Inicializador de apps baseado em etiquetas",
+ "app.version": "Versão",
+ "app.build": "Build",
+ "group.uncategorized": "Sem categoria",
+ "group.appleBuiltIn": "Integrados",
+ "drop.systemDefaultWarning": "Não arraste apps para categorias padrão do sistema",
+ "tag.design": "Design",
+ "tag.development": "Desenvolvimento",
+ "tag.writing": "Escrita",
+ "tag.gaming": "Jogos",
+ "tag.entertainment": "Entretenimento",
+ "tag.system": "Sistema",
+ "tag.productivity": "Produtividade",
+ "settings.coloredContainer": "Contêiner colorido",
+ "settings.gridContainer": "Grade sem cor",
+ "settings.coloredGridContainer": "Grade colorida"
+}
diff --git a/Apptag/Localization/ro.json b/Apptag/Localization/ro.json
new file mode 100644
index 0000000..f9526e8
--- /dev/null
+++ b/Apptag/Localization/ro.json
@@ -0,0 +1,67 @@
+{
+ "menu.show": "Afișează TagLauncher",
+ "menu.preferences": "Preferințe…",
+ "menu.quit": "Ieșire",
+ "menu.language": "Limbă",
+ "menu.version": "Versiune",
+ "settings.language": "Limbă",
+ "settings.languagePicker": "Limba aplicației:",
+ "settings.languageDesc": "Alege limba folosită pentru meniuri și setări.",
+ "settings.general": "General",
+ "settings.tags": "Etichete",
+ "settings.data": "Date",
+ "settings.about": "Despre",
+ "settings.launchAtLogin": "Pornește la autentificare",
+ "settings.showInDock": "Afișează în Dock",
+ "settings.appListStyle": "Stil listă aplicații:",
+ "settings.flat": "Plat",
+ "settings.container": "Container fără culoare",
+ "settings.flatDesc": "„Plat” afișează aplicațiile direct. „Container fără culoare” și „Container colorat” folosesc containere masonry. „Grilă fără culoare” și „Grilă colorată” aliniază pictogramele în rânduri de aceeași înălțime.",
+ "settings.hideAppNames": "Ascunde numele aplicațiilor",
+ "settings.tagPosition": "Poziția etichetelor:",
+ "settings.left": "Stânga",
+ "settings.right": "Dreapta",
+ "settings.top": "Sus",
+ "settings.tagPosDesc": "Unde apare bara de navigare a etichetelor. Stânga/Dreapta plasează etichetele într-o bară laterală.",
+ "settings.tagFontSize": "Dimensiune font etichete:",
+ "settings.tagFontDesc": "Ajustează dimensiunea numelor de grup în overlay.",
+ "settings.iconSize": "Dimensiune pictograme:",
+ "settings.iconSizeDesc": "Dimensiunea de afișare a pictogramelor. Coloanele grilei se ajustează automat.",
+ "settings.backup": "Backup și restaurare",
+ "settings.export": "Exportă categorii și aspect…",
+ "settings.exportFailed": "Export eșuat",
+ "settings.import": "Importă categorii și aspect…",
+ "settings.backupDesc": "Exportul salvează categoriile și aspectul într-un fișier JSON. Importul înlocuiește configurația curentă cu un fișier.",
+ "settings.importFailed": "Import eșuat",
+ "edit.exit": "Ieși din editare",
+ "edit.tags": "Editează etichete",
+ "edit.title": "Editează categorii aplicații",
+ "edit.confirm": "Confirmă",
+ "edit.selectTags": "Selectează etichete:",
+ "edit.dragHint": "Trage pentru reordonare",
+ "edit.success": "Categorizare reușită",
+ "edit.noTags": "Nu există etichete. Apasă „Etichetă nouă” pentru a crea una.",
+ "tag.newTag": "Etichetă nouă",
+ "tag.name": "Nume etichetă",
+ "tag.save": "Salvează",
+ "tag.cancel": "Anulează",
+ "tag.add": "Adaugă",
+ "tag.newName": "Nume nou de etichetă",
+ "app.name": "TagLauncher",
+ "app.description": "Lansator de aplicații bazat pe etichete",
+ "app.version": "Versiune",
+ "app.build": "Build",
+ "group.uncategorized": "Necategorizat",
+ "group.appleBuiltIn": "Integrat",
+ "drop.systemDefaultWarning": "Nu trage aplicații în categoriile implicite ale sistemului",
+ "tag.design": "Design",
+ "tag.development": "Dezvoltare",
+ "tag.writing": "Scriere",
+ "tag.gaming": "Jocuri",
+ "tag.entertainment": "Divertisment",
+ "tag.system": "Sistem",
+ "tag.productivity": "Productivitate",
+ "settings.coloredContainer": "Container colorat",
+ "settings.gridContainer": "Grilă fără culoare",
+ "settings.coloredGridContainer": "Grilă colorată"
+}
diff --git a/Apptag/Localization/sr-Cyrl.json b/Apptag/Localization/sr-Cyrl.json
new file mode 100644
index 0000000..bcf49fe
--- /dev/null
+++ b/Apptag/Localization/sr-Cyrl.json
@@ -0,0 +1,67 @@
+{
+ "menu.show": "Прикажи TagLauncher",
+ "menu.preferences": "Подешавања…",
+ "menu.quit": "Изађи",
+ "menu.language": "Језик",
+ "menu.version": "Верзија",
+ "settings.language": "Језик",
+ "settings.languagePicker": "Језик апликације:",
+ "settings.languageDesc": "Изаберите језик менија и подешавања.",
+ "settings.general": "Опште",
+ "settings.tags": "Ознаке",
+ "settings.data": "Data",
+ "settings.about": "О програму",
+ "settings.launchAtLogin": "Покрени при пријављивању",
+ "settings.showInDock": "Прикажи у Dock-у",
+ "settings.appListStyle": "Стил листе апликација:",
+ "settings.flat": "Равно",
+ "settings.container": "Безбојни контејнер",
+ "settings.flatDesc": "„Равно“ директно приказује апликације. „Безбојни контејнер“ и „Обојени контејнер“ користе masonry контејнере. „Безбојна мрежа“ и „Обојена мрежа“ поравнавају иконе у редове једнаке висине.",
+ "settings.hideAppNames": "Сакриј називе апликација",
+ "settings.tagPosition": "Положај ознака:",
+ "settings.left": "Лево",
+ "settings.right": "Десно",
+ "settings.top": "Горе",
+ "settings.tagPosDesc": "Где се приказује трака ознака. Лево/Десно смешта ознаке у бочну траку.",
+ "settings.tagFontSize": "Величина фонта ознака:",
+ "settings.tagFontDesc": "Подешава величину назива група у преклопу.",
+ "settings.iconSize": "Величина икона:",
+ "settings.iconSizeDesc": "Величина приказа икона. Колоне мреже се аутоматски прилагођавају.",
+ "settings.backup": "Резервна копија и враћање",
+ "settings.export": "Извези категорије и распоред…",
+ "settings.exportFailed": "Извоз није успео",
+ "settings.import": "Увези категорије и распоред…",
+ "settings.backupDesc": "Извоз чува категорије и распоред у JSON датотеку. Увоз замењује тренутна подешавања датотеком.",
+ "settings.importFailed": "Увоз није успео",
+ "edit.exit": "Изађи из уређивања",
+ "edit.tags": "Уреди ознаке",
+ "edit.title": "Уреди категорије апликација",
+ "edit.confirm": "Потврди",
+ "edit.selectTags": "Изаберите ознаке:",
+ "edit.dragHint": "Превуците за промену редоследа",
+ "edit.success": "Категоризација успешна",
+ "edit.noTags": "Још нема ознака. Кликните „Нова ознака“ да је направите.",
+ "tag.newTag": "Нова ознака",
+ "tag.name": "Назив ознаке",
+ "tag.save": "Сачувај",
+ "tag.cancel": "Откажи",
+ "tag.add": "Додај",
+ "tag.newName": "Нови назив ознаке",
+ "app.name": "TagLauncher",
+ "app.description": "Покретач апликација заснован на ознакама",
+ "app.version": "Верзија",
+ "app.build": "Build",
+ "group.uncategorized": "Некатегорисано",
+ "group.appleBuiltIn": "Уграђено",
+ "drop.systemDefaultWarning": "Не превлачите апликације у подразумеване системске категорије",
+ "tag.design": "Дизајн",
+ "tag.development": "Развој",
+ "tag.writing": "Писање",
+ "tag.gaming": "Игре",
+ "tag.entertainment": "Забава",
+ "tag.system": "Систем",
+ "tag.productivity": "Продуктивност",
+ "settings.coloredContainer": "Обојени контејнер",
+ "settings.gridContainer": "Безбојна мрежа",
+ "settings.coloredGridContainer": "Обојена мрежа"
+}
diff --git a/Apptag/Localization/sv.json b/Apptag/Localization/sv.json
new file mode 100644
index 0000000..33c6852
--- /dev/null
+++ b/Apptag/Localization/sv.json
@@ -0,0 +1,67 @@
+{
+ "menu.show": "Visa TagLauncher",
+ "menu.preferences": "Inställningar…",
+ "menu.quit": "Avsluta",
+ "menu.language": "Språk",
+ "menu.version": "Version",
+ "settings.language": "Språk",
+ "settings.languagePicker": "Appspråk:",
+ "settings.languageDesc": "Välj språket som används i menyer och inställningar.",
+ "settings.general": "Allmänt",
+ "settings.tags": "Taggar",
+ "settings.data": "Data",
+ "settings.about": "Om",
+ "settings.launchAtLogin": "Starta vid inloggning",
+ "settings.showInDock": "Visa i Dock",
+ "settings.appListStyle": "Applistestil:",
+ "settings.flat": "Platt",
+ "settings.container": "Färglös behållare",
+ "settings.flatDesc": "”Platt” visar appar direkt. ”Färglös behållare” och ”Färgad behållare” använder masonry-behållare. ”Färglöst rutnät” och ”Färgat rutnät” justerar appikoner i rader med samma höjd.",
+ "settings.hideAppNames": "Dölj appnamn",
+ "settings.tagPosition": "Taggposition:",
+ "settings.left": "Vänster",
+ "settings.right": "Höger",
+ "settings.top": "Överst",
+ "settings.tagPosDesc": "Var taggnavigeringen visas. Vänster/Höger placerar taggar i en sidopanel.",
+ "settings.tagFontSize": "Taggtextstorlek:",
+ "settings.tagFontDesc": "Justerar storleken på gruppnamn i överlägget.",
+ "settings.iconSize": "Ikonstorlek:",
+ "settings.iconSizeDesc": "Visningsstorlek för ikoner. Rutnätskolumner justeras automatiskt.",
+ "settings.backup": "Säkerhetskopiera och återställ",
+ "settings.export": "Exportera kategorier och layout…",
+ "settings.exportFailed": "Export misslyckades",
+ "settings.import": "Importera kategorier och layout…",
+ "settings.backupDesc": "Export sparar kategorier och layout till en JSON-fil. Import ersätter den aktuella konfigurationen med en fil.",
+ "settings.importFailed": "Import misslyckades",
+ "edit.exit": "Avsluta redigering",
+ "edit.tags": "Redigera taggar",
+ "edit.title": "Redigera appkategorier",
+ "edit.confirm": "Bekräfta",
+ "edit.selectTags": "Välj taggar:",
+ "edit.dragHint": "Dra för att ändra ordning",
+ "edit.success": "Kategorisering lyckades",
+ "edit.noTags": "Inga taggar ännu. Klicka på ”Ny tagg” för att skapa en.",
+ "tag.newTag": "Ny tagg",
+ "tag.name": "Taggnamn",
+ "tag.save": "Spara",
+ "tag.cancel": "Avbryt",
+ "tag.add": "Lägg till",
+ "tag.newName": "Nytt taggnamn",
+ "app.name": "TagLauncher",
+ "app.description": "Taggbaserad appstartare",
+ "app.version": "Version",
+ "app.build": "Build",
+ "group.uncategorized": "Okategoriserat",
+ "group.appleBuiltIn": "Inbyggt",
+ "drop.systemDefaultWarning": "Dra inte appar till systemets standardkategorier",
+ "tag.design": "Design",
+ "tag.development": "Utveckling",
+ "tag.writing": "Skrivande",
+ "tag.gaming": "Spel",
+ "tag.entertainment": "Underhållning",
+ "tag.system": "System",
+ "tag.productivity": "Produktivitet",
+ "settings.coloredContainer": "Färgad behållare",
+ "settings.gridContainer": "Färglöst rutnät",
+ "settings.coloredGridContainer": "Färgat rutnät"
+}
diff --git a/Apptag/Localization/th.json b/Apptag/Localization/th.json
new file mode 100644
index 0000000..59939d6
--- /dev/null
+++ b/Apptag/Localization/th.json
@@ -0,0 +1,67 @@
+{
+ "menu.show": "แสดง TagLauncher",
+ "menu.preferences": "การตั้งค่า…",
+ "menu.quit": "ออก",
+ "menu.language": "ภาษา",
+ "menu.version": "เวอร์ชัน",
+ "settings.language": "ภาษา",
+ "settings.languagePicker": "ภาษาของแอป:",
+ "settings.languageDesc": "เลือกภาษาที่ใช้ในเมนูและการตั้งค่า",
+ "settings.general": "ทั่วไป",
+ "settings.tags": "แท็ก",
+ "settings.data": "ข้อมูล",
+ "settings.about": "เกี่ยวกับ",
+ "settings.launchAtLogin": "เปิดเมื่อเข้าสู่ระบบ",
+ "settings.showInDock": "แสดงใน Dock",
+ "settings.appListStyle": "รูปแบบรายการแอป:",
+ "settings.flat": "แบน",
+ "settings.container": "คอนเทนเนอร์ไม่มีสี",
+ "settings.flatDesc": "“แบน” แสดงแอปโดยตรง “คอนเทนเนอร์ไม่มีสี” และ “คอนเทนเนอร์มีสี” ใช้การจัดวางแบบ masonry ส่วน “กริดไม่มีสี” และ “กริดมีสี” จัดไอคอนแอปเป็นแถวสูงเท่ากัน",
+ "settings.hideAppNames": "ซ่อนชื่อแอป",
+ "settings.tagPosition": "ตำแหน่งแท็ก:",
+ "settings.left": "ซ้าย",
+ "settings.right": "ขวา",
+ "settings.top": "บน",
+ "settings.tagPosDesc": "ตำแหน่งแถบนำทางแท็ก ซ้าย/ขวาจะแสดงเป็นแถบด้านข้าง",
+ "settings.tagFontSize": "ขนาดตัวอักษรแท็ก:",
+ "settings.tagFontDesc": "ปรับขนาดชื่อกลุ่มในโอเวอร์เลย์",
+ "settings.iconSize": "ขนาดไอคอน:",
+ "settings.iconSizeDesc": "ขนาดแสดงผลไอคอน คอลัมน์กริดจะปรับอัตโนมัติ",
+ "settings.backup": "สำรองและกู้คืน",
+ "settings.export": "ส่งออกหมวดหมู่และเลย์เอาต์…",
+ "settings.exportFailed": "ส่งออกไม่สำเร็จ",
+ "settings.import": "นำเข้าหมวดหมู่และเลย์เอาต์…",
+ "settings.backupDesc": "การส่งออกจะบันทึกหมวดหมู่และเลย์เอาต์เป็นไฟล์ JSON การนำเข้าจะแทนที่การตั้งค่าปัจจุบันด้วยไฟล์",
+ "settings.importFailed": "นำเข้าไม่สำเร็จ",
+ "edit.exit": "ออกจากการแก้ไข",
+ "edit.tags": "แก้ไขแท็ก",
+ "edit.title": "แก้ไขหมวดหมู่แอป",
+ "edit.confirm": "ยืนยัน",
+ "edit.selectTags": "เลือกแท็ก:",
+ "edit.dragHint": "ลากเพื่อจัดเรียง",
+ "edit.success": "จัดหมวดหมู่สำเร็จ",
+ "edit.noTags": "ยังไม่มีแท็ก คลิก “แท็กใหม่” เพื่อสร้าง",
+ "tag.newTag": "แท็กใหม่",
+ "tag.name": "ชื่อแท็ก",
+ "tag.save": "บันทึก",
+ "tag.cancel": "ยกเลิก",
+ "tag.add": "เพิ่ม",
+ "tag.newName": "ชื่อแท็กใหม่",
+ "app.name": "TagLauncher",
+ "app.description": "ตัวเปิดแอปตามแท็ก",
+ "app.version": "เวอร์ชัน",
+ "app.build": "Build",
+ "group.uncategorized": "ไม่จัดหมวดหมู่",
+ "group.appleBuiltIn": "ในตัว",
+ "drop.systemDefaultWarning": "อย่าลากแอปไปยังหมวดหมู่เริ่มต้นของระบบ",
+ "tag.design": "ออกแบบ",
+ "tag.development": "พัฒนา",
+ "tag.writing": "เขียน",
+ "tag.gaming": "เกม",
+ "tag.entertainment": "บันเทิง",
+ "tag.system": "ระบบ",
+ "tag.productivity": "งาน",
+ "settings.coloredContainer": "คอนเทนเนอร์มีสี",
+ "settings.gridContainer": "กริดไม่มีสี",
+ "settings.coloredGridContainer": "กริดมีสี"
+}
diff --git a/Apptag/Localization/tr.json b/Apptag/Localization/tr.json
new file mode 100644
index 0000000..aff48d8
--- /dev/null
+++ b/Apptag/Localization/tr.json
@@ -0,0 +1,67 @@
+{
+ "menu.show": "TagLauncher’ı Göster",
+ "menu.preferences": "Tercihler…",
+ "menu.quit": "Çık",
+ "menu.language": "Dil",
+ "menu.version": "Sürüm",
+ "settings.language": "Dil",
+ "settings.languagePicker": "Uygulama dili:",
+ "settings.languageDesc": "Menülerde ve ayarlarda kullanılan dili seçin.",
+ "settings.general": "Genel",
+ "settings.tags": "Etiketler",
+ "settings.data": "Veri",
+ "settings.about": "Hakkında",
+ "settings.launchAtLogin": "Girişte başlat",
+ "settings.showInDock": "Dock’ta göster",
+ "settings.appListStyle": "Uygulama listesi stili:",
+ "settings.flat": "Düz",
+ "settings.container": "Renksiz Kapsayıcı",
+ "settings.flatDesc": "“Düz” uygulamaları doğrudan gösterir. “Renksiz Kapsayıcı” ve “Renkli Kapsayıcı” masonry kapsayıcılar kullanır. “Renksiz Izgara” ve “Renkli Izgara” simgeleri eşit yükseklikte satırlara hizalar.",
+ "settings.hideAppNames": "Uygulama adlarını gizle",
+ "settings.tagPosition": "Etiket konumu:",
+ "settings.left": "Sol",
+ "settings.right": "Sağ",
+ "settings.top": "Üst",
+ "settings.tagPosDesc": "Etiket gezinme çubuğunun yeri. Sol/Sağ etiketleri kenar çubuğuna yerleştirir.",
+ "settings.tagFontSize": "Etiket yazı boyutu:",
+ "settings.tagFontDesc": "Overlay’deki grup adı etiketlerinin boyutunu ayarlar.",
+ "settings.iconSize": "Simge boyutu:",
+ "settings.iconSizeDesc": "Simge görüntü boyutu. Izgara sütunları otomatik ayarlanır.",
+ "settings.backup": "Yedekle ve geri yükle",
+ "settings.export": "Kategorileri ve düzeni dışa aktar…",
+ "settings.exportFailed": "Dışa aktarma başarısız",
+ "settings.import": "Kategorileri ve düzeni içe aktar…",
+ "settings.backupDesc": "Dışa aktarma kategorileri ve düzeni JSON dosyasına kaydeder. İçe aktarma mevcut kurulumu dosyadakiyle değiştirir.",
+ "settings.importFailed": "İçe aktarma başarısız",
+ "edit.exit": "Düzenlemeden çık",
+ "edit.tags": "Etiketleri düzenle",
+ "edit.title": "Uygulama kategorilerini düzenle",
+ "edit.confirm": "Onayla",
+ "edit.selectTags": "Etiket seç:",
+ "edit.dragHint": "Sıralamak için sürükle",
+ "edit.success": "Kategorilendirme başarılı",
+ "edit.noTags": "Henüz etiket yok. Oluşturmak için “Yeni Etiket”e tıklayın.",
+ "tag.newTag": "Yeni Etiket",
+ "tag.name": "Etiket adı",
+ "tag.save": "Kaydet",
+ "tag.cancel": "İptal",
+ "tag.add": "Ekle",
+ "tag.newName": "Yeni etiket adı",
+ "app.name": "TagLauncher",
+ "app.description": "Etiket tabanlı uygulama başlatıcı",
+ "app.version": "Sürüm",
+ "app.build": "Build",
+ "group.uncategorized": "Kategorisiz",
+ "group.appleBuiltIn": "Yerleşik",
+ "drop.systemDefaultWarning": "Uygulamaları sistem varsayılan kategorilerine sürüklemeyin",
+ "tag.design": "Tasarım",
+ "tag.development": "Geliştirme",
+ "tag.writing": "Yazma",
+ "tag.gaming": "Oyun",
+ "tag.entertainment": "Eğlence",
+ "tag.system": "Sistem",
+ "tag.productivity": "Verimlilik",
+ "settings.coloredContainer": "Renkli Kapsayıcı",
+ "settings.gridContainer": "Renksiz Izgara",
+ "settings.coloredGridContainer": "Renkli Izgara"
+}
diff --git a/Apptag/Localization/uk.json b/Apptag/Localization/uk.json
new file mode 100644
index 0000000..6b99ad3
--- /dev/null
+++ b/Apptag/Localization/uk.json
@@ -0,0 +1,67 @@
+{
+ "menu.show": "Показати TagLauncher",
+ "menu.preferences": "Параметри…",
+ "menu.quit": "Вийти",
+ "menu.language": "Мова",
+ "menu.version": "Версія",
+ "settings.language": "Мова",
+ "settings.languagePicker": "Мова застосунку:",
+ "settings.languageDesc": "Оберіть мову меню та налаштувань.",
+ "settings.general": "Загальні",
+ "settings.tags": "Теги",
+ "settings.data": "Дані",
+ "settings.about": "Про програму",
+ "settings.launchAtLogin": "Запускати під час входу",
+ "settings.showInDock": "Показувати в Dock",
+ "settings.appListStyle": "Стиль списку застосунків:",
+ "settings.flat": "Плоский",
+ "settings.container": "Безбарвний контейнер",
+ "settings.flatDesc": "«Плоский» показує застосунки напряму. «Безбарвний контейнер» і «Кольоровий контейнер» використовують каскадні контейнери. «Безбарвна сітка» і «Кольорова сітка» вирівнюють іконки в рядках однакової висоти.",
+ "settings.hideAppNames": "Приховати назви застосунків",
+ "settings.tagPosition": "Позиція тегів:",
+ "settings.left": "Ліворуч",
+ "settings.right": "Праворуч",
+ "settings.top": "Згори",
+ "settings.tagPosDesc": "Де відображається панель тегів. Ліворуч/Праворуч розміщує теги в боковій панелі.",
+ "settings.tagFontSize": "Розмір шрифту тегів:",
+ "settings.tagFontDesc": "Налаштовує розмір назв груп в overlay.",
+ "settings.iconSize": "Розмір іконок:",
+ "settings.iconSizeDesc": "Розмір відображення іконок. Стовпці сітки налаштовуються автоматично.",
+ "settings.backup": "Резервне копіювання",
+ "settings.export": "Експорт категорій і макета…",
+ "settings.exportFailed": "Помилка експорту",
+ "settings.import": "Імпорт категорій і макета…",
+ "settings.backupDesc": "Експорт зберігає категорії та макет у JSON-файл. Імпорт замінює поточні налаштування даними з файлу.",
+ "settings.importFailed": "Помилка імпорту",
+ "edit.exit": "Вийти з редагування",
+ "edit.tags": "Редагувати теги",
+ "edit.title": "Редагувати категорії застосунків",
+ "edit.confirm": "Підтвердити",
+ "edit.selectTags": "Виберіть теги:",
+ "edit.dragHint": "Перетягніть для сортування",
+ "edit.success": "Категоризацію завершено",
+ "edit.noTags": "Тегів ще немає. Натисніть «Новий тег», щоб створити.",
+ "tag.newTag": "Новий тег",
+ "tag.name": "Назва тегу",
+ "tag.save": "Зберегти",
+ "tag.cancel": "Скасувати",
+ "tag.add": "Додати",
+ "tag.newName": "Нова назва тегу",
+ "app.name": "TagLauncher",
+ "app.description": "Запускач застосунків на основі тегів",
+ "app.version": "Версія",
+ "app.build": "Build",
+ "group.uncategorized": "Без категорії",
+ "group.appleBuiltIn": "Вбудовані",
+ "drop.systemDefaultWarning": "Не перетягуйте застосунки в системні категорії за замовчуванням",
+ "tag.design": "Дизайн",
+ "tag.development": "Розробка",
+ "tag.writing": "Письмо",
+ "tag.gaming": "Ігри",
+ "tag.entertainment": "Розваги",
+ "tag.system": "Система",
+ "tag.productivity": "Продуктивність",
+ "settings.coloredContainer": "Кольоровий контейнер",
+ "settings.gridContainer": "Безбарвна сітка",
+ "settings.coloredGridContainer": "Кольорова сітка"
+}
diff --git a/Apptag/Localization/vi.json b/Apptag/Localization/vi.json
new file mode 100644
index 0000000..89346dd
--- /dev/null
+++ b/Apptag/Localization/vi.json
@@ -0,0 +1,67 @@
+{
+ "menu.show": "Hiển thị TagLauncher",
+ "menu.preferences": "Tùy chọn…",
+ "menu.quit": "Thoát",
+ "menu.language": "Ngôn ngữ",
+ "menu.version": "Phiên bản",
+ "settings.language": "Ngôn ngữ",
+ "settings.languagePicker": "Ngôn ngữ ứng dụng:",
+ "settings.languageDesc": "Chọn ngôn ngữ dùng cho menu và cài đặt.",
+ "settings.general": "Chung",
+ "settings.tags": "Thẻ",
+ "settings.data": "Dữ liệu",
+ "settings.about": "Giới thiệu",
+ "settings.launchAtLogin": "Khởi động khi đăng nhập",
+ "settings.showInDock": "Hiển thị trong Dock",
+ "settings.appListStyle": "Kiểu danh sách ứng dụng:",
+ "settings.flat": "Phẳng",
+ "settings.container": "Vùng chứa không màu",
+ "settings.flatDesc": "“Phẳng” hiển thị ứng dụng trực tiếp. “Vùng chứa không màu” và “Vùng chứa có màu” dùng bố cục masonry. “Lưới không màu” và “Lưới có màu” căn biểu tượng theo các hàng có chiều cao bằng nhau.",
+ "settings.hideAppNames": "Ẩn tên ứng dụng",
+ "settings.tagPosition": "Vị trí thẻ:",
+ "settings.left": "Trái",
+ "settings.right": "Phải",
+ "settings.top": "Trên",
+ "settings.tagPosDesc": "Vị trí thanh điều hướng thẻ. Trái/Phải đặt thẻ trong thanh bên.",
+ "settings.tagFontSize": "Cỡ chữ thẻ:",
+ "settings.tagFontDesc": "Điều chỉnh kích thước tên nhóm trong overlay.",
+ "settings.iconSize": "Cỡ biểu tượng:",
+ "settings.iconSizeDesc": "Kích thước hiển thị biểu tượng. Cột lưới tự điều chỉnh.",
+ "settings.backup": "Sao lưu & khôi phục",
+ "settings.export": "Xuất danh mục & bố cục…",
+ "settings.exportFailed": "Xuất thất bại",
+ "settings.import": "Nhập danh mục & bố cục…",
+ "settings.backupDesc": "Xuất sẽ lưu danh mục và bố cục thành tệp JSON. Nhập sẽ thay thế thiết lập hiện tại bằng một tệp.",
+ "settings.importFailed": "Nhập thất bại",
+ "edit.exit": "Thoát chỉnh sửa",
+ "edit.tags": "Sửa thẻ",
+ "edit.title": "Sửa danh mục ứng dụng",
+ "edit.confirm": "Xác nhận",
+ "edit.selectTags": "Chọn thẻ:",
+ "edit.dragHint": "Kéo để sắp xếp",
+ "edit.success": "Phân loại thành công",
+ "edit.noTags": "Chưa có thẻ. Bấm “Thẻ mới” để tạo.",
+ "tag.newTag": "Thẻ mới",
+ "tag.name": "Tên thẻ",
+ "tag.save": "Lưu",
+ "tag.cancel": "Hủy",
+ "tag.add": "Thêm",
+ "tag.newName": "Tên thẻ mới",
+ "app.name": "TagLauncher",
+ "app.description": "Trình khởi chạy ứng dụng theo thẻ",
+ "app.version": "Phiên bản",
+ "app.build": "Build",
+ "group.uncategorized": "Chưa phân loại",
+ "group.appleBuiltIn": "Tích hợp",
+ "drop.systemDefaultWarning": "Không kéo ứng dụng vào danh mục mặc định của hệ thống",
+ "tag.design": "Thiết kế",
+ "tag.development": "Phát triển",
+ "tag.writing": "Viết",
+ "tag.gaming": "Trò chơi",
+ "tag.entertainment": "Giải trí",
+ "tag.system": "Hệ thống",
+ "tag.productivity": "Năng suất",
+ "settings.coloredContainer": "Vùng chứa có màu",
+ "settings.gridContainer": "Lưới không màu",
+ "settings.coloredGridContainer": "Lưới có màu"
+}
--
Gitblit v1.9.3